@opentiny/vue-docs 3.25.0 → 3.26.1

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 (158) hide show
  1. package/.stylelintrc.js +2 -2
  2. package/demos/apis/modal.js +1 -1
  3. package/demos/apis/numeric.js +3 -3
  4. package/demos/apis/search.js +28 -0
  5. package/demos/apis/slider-button.js +22 -0
  6. package/demos/apis/split.js +11 -0
  7. package/demos/apis/steps.js +3 -3
  8. package/demos/apis/tabs.js +12 -0
  9. package/demos/apis/time-line.js +20 -0
  10. package/demos/mobile-first/app/slider-button/basic-usage.vue +5 -5
  11. package/demos/mobile-first/app/slider-button/webdoc/slider-button.js +1 -1
  12. package/demos/mobile-first/app/steps/advanced-steps.vue +8 -1
  13. package/demos/mobile-first/menus.js +16 -9
  14. package/demos/pc/app/amount/custom-service.spec.js +4 -4
  15. package/demos/pc/app/base-select/slot-reference.spec.ts +1 -1
  16. package/demos/pc/app/color-picker/alpha-composition-api.vue +1 -1
  17. package/demos/pc/app/color-picker/alpha.spec.ts +2 -2
  18. package/demos/pc/app/color-picker/alpha.vue +1 -1
  19. package/demos/pc/app/color-picker/base.spec.ts +2 -2
  20. package/demos/pc/app/color-picker/default-visible.spec.ts +1 -1
  21. package/demos/pc/app/color-picker/event-composition-api.vue +2 -2
  22. package/demos/pc/app/color-picker/event.spec.ts +4 -4
  23. package/demos/pc/app/color-picker/event.vue +1 -1
  24. package/demos/pc/app/color-picker/format.spec.ts +6 -6
  25. package/demos/pc/app/color-picker/history.spec.ts +1 -7
  26. package/demos/pc/app/color-picker/predefine.spec.ts +3 -10
  27. package/demos/pc/app/color-picker/size.spec.ts +4 -4
  28. package/demos/pc/app/color-select-panel/format.spec.ts +2 -8
  29. package/demos/pc/app/color-select-panel/history.spec.ts +0 -2
  30. package/demos/pc/app/color-select-panel/predefine.spec.ts +0 -3
  31. package/demos/pc/app/container/basic-usage-composition-api.vue +10 -10
  32. package/demos/pc/app/container/basic-usage.vue +10 -10
  33. package/demos/pc/app/container/custom-with-height-composition-api.vue +8 -8
  34. package/demos/pc/app/container/custom-with-height.vue +10 -10
  35. package/demos/pc/app/dialog-select/nest-grid-single.spec.ts +40 -0
  36. package/demos/pc/app/dialog-select/nest-tree-multi.spec.ts +53 -0
  37. package/demos/pc/app/dialog-select/nest-tree-single.spec.ts +25 -0
  38. package/demos/pc/app/dialog-select/set-selection.spec.ts +20 -0
  39. package/demos/pc/app/file-upload/before-upload-limit-composition-api.vue +1 -1
  40. package/demos/pc/app/file-upload/before-upload-limit.spec.ts +1 -1
  41. package/demos/pc/app/file-upload/before-upload-limit.vue +1 -1
  42. package/demos/pc/app/file-upload/custom-trigger-composition-api.vue +1 -1
  43. package/demos/pc/app/file-upload/custom-trigger.spec.ts +1 -1
  44. package/demos/pc/app/file-upload/custom-trigger.vue +1 -1
  45. package/demos/pc/app/file-upload/custom-upload-tip-composition-api.vue +1 -1
  46. package/demos/pc/app/file-upload/custom-upload-tip.vue +1 -1
  47. package/demos/pc/app/file-upload/form-validation-composition-api.vue +1 -1
  48. package/demos/pc/app/file-upload/form-validation.vue +1 -1
  49. package/demos/pc/app/file-upload/image-size-composition-api.vue +1 -1
  50. package/demos/pc/app/file-upload/image-size.spec.ts +1 -1
  51. package/demos/pc/app/file-upload/image-size.vue +1 -1
  52. package/demos/pc/app/file-upload/multiple-file-composition-api.vue +1 -1
  53. package/demos/pc/app/file-upload/multiple-file.spec.ts +1 -1
  54. package/demos/pc/app/file-upload/multiple-file.vue +1 -1
  55. package/demos/pc/app/file-upload/prevent-delete-file-composition-api.vue +1 -1
  56. package/demos/pc/app/file-upload/prevent-delete-file.vue +1 -1
  57. package/demos/pc/app/file-upload/upload-request-composition-api.vue +1 -1
  58. package/demos/pc/app/file-upload/upload-request.spec.ts +2 -2
  59. package/demos/pc/app/file-upload/upload-request.vue +1 -1
  60. package/demos/pc/app/grid/data-source/auto-load.spec.js +0 -1
  61. package/demos/pc/app/grid/dynamically-columns/dynamically-columns.spec.js +2 -1
  62. package/demos/pc/app/grid/filter/custom-filter.spec.js +3 -3
  63. package/demos/pc/app/grid/filter/simple-filter.spec.ts +5 -4
  64. package/demos/pc/app/grid/slot/slot-conf-composition-api.vue +141 -0
  65. package/demos/pc/app/grid/slot/slot-conf.spec.js +12 -0
  66. package/demos/pc/app/grid/slot/slot-conf.vue +151 -0
  67. package/demos/pc/app/grid/webdoc/grid-slot.js +9 -0
  68. package/demos/pc/app/icon/iconGroups.js +7 -2
  69. package/demos/pc/app/input/basic-usage.spec.ts +1 -1
  70. package/demos/pc/app/loading/background.spec.ts +3 -1
  71. package/demos/pc/app/loading/custom-class.spec.ts +4 -2
  72. package/demos/pc/app/loading/fullscreen.spec.ts +6 -4
  73. package/demos/pc/app/loading/loading-tip-text.spec.ts +3 -1
  74. package/demos/pc/app/loading/size.spec.ts +5 -3
  75. package/demos/pc/app/locales/custom-service-composition-api.vue +3 -3
  76. package/demos/pc/app/locales/custom-service.spec.ts +1 -1
  77. package/demos/pc/app/locales/custom-service.vue +3 -3
  78. package/demos/pc/app/modal/basic-usage.spec.ts +2 -1
  79. package/demos/pc/app/modal/message-close.spec.ts +2 -2
  80. package/demos/pc/app/modal/message-id.spec.ts +2 -2
  81. package/demos/pc/app/modal/modal-fn-slots.spec.ts +5 -7
  82. package/demos/pc/app/modal/modal-header.spec.ts +2 -1
  83. package/demos/pc/app/numeric/input-event-composition-api.vue +26 -0
  84. package/demos/pc/app/numeric/input-event.spec.ts +15 -0
  85. package/demos/pc/app/numeric/input-event.vue +34 -0
  86. package/demos/pc/app/numeric/webdoc/numeric.js +12 -0
  87. package/demos/pc/app/pager/align-composition-api.vue +10 -13
  88. package/demos/pc/app/pager/align.spec.ts +8 -3
  89. package/demos/pc/app/pager/align.vue +11 -5
  90. package/demos/pc/app/pager/page-size-composition-api.vue +2 -2
  91. package/demos/pc/app/pager/page-size.spec.ts +1 -1
  92. package/demos/pc/app/pager/page-size.vue +2 -2
  93. package/demos/pc/app/pager/pager-in-grid-composition-api.vue +0 -1
  94. package/demos/pc/app/pager/pager-in-grid.vue +0 -1
  95. package/demos/pc/app/pager/popper-append-to-body-composition-api.vue +1 -7
  96. package/demos/pc/app/pager/popper-append-to-body.vue +1 -7
  97. package/demos/pc/app/pager/popper-class-composition-api.vue +1 -7
  98. package/demos/pc/app/pager/popper-class.vue +1 -7
  99. package/demos/pc/app/popeditor/suggest.spec.ts +1 -1
  100. package/demos/pc/app/qr-code/icon-composition-api.vue +17 -3
  101. package/demos/pc/app/qr-code/icon.spec.ts +19 -0
  102. package/demos/pc/app/qr-code/icon.vue +25 -4
  103. package/demos/pc/app/qr-code/style-composition-api.vue +2 -9
  104. package/demos/pc/app/qr-code/style.spec.ts +18 -1
  105. package/demos/pc/app/qr-code/style.vue +11 -8
  106. package/demos/pc/app/query-builder/webdoc/query-builder.js +5 -3
  107. package/demos/pc/app/search/events.spec.ts +1 -1
  108. package/demos/pc/app/search/events.vue +9 -0
  109. package/demos/pc/app/search/slot-prefix-suffix.spec.ts +1 -1
  110. package/demos/pc/app/search/webdoc/search.js +12 -4
  111. package/demos/pc/app/tabs/basic-usage.spec.ts +2 -2
  112. package/demos/pc/app/tabs/header-only.vue +56 -0
  113. package/demos/pc/app/tabs/size.spec.ts +2 -2
  114. package/demos/pc/app/tabs/webdoc/tabs.js +12 -0
  115. package/demos/pc/app/time-line/slot-default-composition-api.vue +81 -0
  116. package/demos/pc/app/time-line/slot-default.spec.ts +13 -0
  117. package/demos/pc/app/time-line/slot-default.vue +95 -0
  118. package/demos/pc/app/time-line/webdoc/time-line.js +12 -0
  119. package/demos/pc/menus.js +20 -10
  120. package/demos/pc/webdoc/changelog-en.md +86 -132
  121. package/demos/pc/webdoc/changelog.md +86 -132
  122. package/demos/pc/webdoc/faq.md +14 -0
  123. package/demos/saas/menus.js +2 -14
  124. package/env/.env +3 -0
  125. package/package.json +21 -20
  126. package/playground/App.vue +2 -2
  127. package/postcss.config.cjs +1 -0
  128. package/src/App.vue +26 -42
  129. package/src/components/anchor.vue +5 -1
  130. package/src/components/demo.vue +18 -7
  131. package/src/components/design-token.vue +90 -0
  132. package/src/components/float-settings.vue +4 -10
  133. package/src/components/mcp-docs.vue +4 -26
  134. package/src/components/version-tip.vue +1 -1
  135. package/src/composable/useTinyRemoter.ts +176 -0
  136. package/src/composable/utils.ts +2 -6
  137. package/src/const.ts +6 -1
  138. package/src/i18n/en.json +2 -0
  139. package/src/i18n/es.json +47 -0
  140. package/src/i18n/index.js +25 -5
  141. package/src/i18n/pt.json +47 -0
  142. package/src/i18n/zh.json +2 -0
  143. package/src/main.js +17 -4
  144. package/src/{menus.jsx → menus.js} +0 -1
  145. package/src/router.js +3 -6
  146. package/src/tools/appData.js +4 -5
  147. package/src/tools/storage.js +5 -3
  148. package/src/tools/useApiMode.js +11 -3
  149. package/src/tools/useBulletin.jsx +9 -8
  150. package/src/tools/useStyleSettings.js +8 -0
  151. package/src/tools/useTemplateMode.js +5 -1
  152. package/src/tools/utils.js +32 -1
  153. package/src/views/components-doc/cmp-config.js +13 -1
  154. package/src/views/components-doc/common.vue +34 -8
  155. package/src/views/layout/layout.vue +5 -8
  156. package/src/views/overview.vue +1 -1
  157. package/tsconfig.node.json +2 -4
  158. package/src/tools/useAllTaskFinish.ts +0 -0
package/.stylelintrc.js CHANGED
@@ -1,11 +1,11 @@
1
1
  module.exports = {
2
- extends: 'stylelint-config-standard', //stylelint-config-airbnb
2
+ extends: 'stylelint-config-standard',
3
3
  rules: {
4
4
  'string-quotes': 'single',
5
5
  'property-no-unknown': true,
6
6
  'selector-pseudo-class-no-unknown': true,
7
7
  'at-rule-empty-line-before': 'always',
8
8
  'block-no-empty': true,
9
- 'indentation': 4 // http://cui.ulanqab.huawei.com/#/articalDetail?id=b76da810d8ed8
9
+ 'indentation': 4
10
10
  }
11
11
  }
@@ -241,7 +241,7 @@ export default {
241
241
  'en-US': "Whether the 'message' type pop-up window displays a close button"
242
242
  },
243
243
  mode: ['pc'],
244
- pcDemo: 'message-closable'
244
+ pcDemo: 'message-close'
245
245
  },
246
246
  {
247
247
  name: 'min-height',
@@ -460,13 +460,13 @@ export default {
460
460
  },
461
461
  {
462
462
  name: 'input',
463
- type: 'Function(value)',
463
+ type: '(event: InputEvent) => void',
464
464
  defaultValue: '',
465
465
  desc: {
466
466
  'zh-CN': '输入值时触发事件',
467
- 'en-US': ''
467
+ 'en-US': 'Trigger event when input value is entered '
468
468
  },
469
- mode: ['mobile-first'],
469
+ mode: ['pc', 'mobile-first'],
470
470
  mfDemo: ''
471
471
  }
472
472
  ],
@@ -218,6 +218,34 @@ export default {
218
218
  mode: ['pc'],
219
219
  pcDemo: 'events'
220
220
  },
221
+ {
222
+ name: 'collapse',
223
+ type: '() => void',
224
+ defaultValue: '',
225
+ desc: {
226
+ 'zh-CN': 'mini模式的搜索框收回时触发的回调函数',
227
+ 'en-US': 'The callback function triggered when the search box in mini mode is retracted'
228
+ },
229
+ meta: {
230
+ stable: '3.26.0'
231
+ },
232
+ mode: ['pc'],
233
+ pcDemo: 'events'
234
+ },
235
+ {
236
+ name: 'expand',
237
+ type: '() => void',
238
+ defaultValue: '',
239
+ desc: {
240
+ 'zh-CN': 'mini模式的搜索框展开时触发的回调函数',
241
+ 'en-US': 'The callback function triggered when the search box in mini mode expands'
242
+ },
243
+ meta: {
244
+ stable: '3.26.0'
245
+ },
246
+ mode: ['pc'],
247
+ pcDemo: 'events'
248
+ },
221
249
  {
222
250
  name: 'input',
223
251
  typeAnchorName: 'ITypeValue',
@@ -5,6 +5,28 @@ export default {
5
5
  name: 'slider-button',
6
6
  type: 'component',
7
7
  props: [
8
+ {
9
+ name: 'disabled',
10
+ type: 'Boolean',
11
+ defaultValue: '',
12
+ desc: {
13
+ 'zh-CN': '设置滑块项禁用态',
14
+ 'en-US': ''
15
+ },
16
+ mode: ['mobile-first'],
17
+ mfDemo: ''
18
+ },
19
+ {
20
+ name: 'displayed',
21
+ type: 'Boolean',
22
+ defaultValue: '',
23
+ desc: {
24
+ 'zh-CN': '按钮内容是否全部展示,默认false',
25
+ 'en-US': 'Set whether the button content is fully displayed, default is false'
26
+ },
27
+ mode: ['mobile-first'],
28
+ mfDemo: ''
29
+ },
8
30
  {
9
31
  name: 'disabled',
10
32
  type: 'Boolean',
@@ -86,6 +86,17 @@ export default {
86
86
  mode: ['pc'],
87
87
  pcDemo: 'three-areas'
88
88
  },
89
+ {
90
+ name: 'trigger-simple',
91
+ type: 'boolean',
92
+ defaultValue: 'false',
93
+ desc: {
94
+ 'zh-CN': '是否启用简易模式',
95
+ 'en-US': 'Whether to enable simplified mode.'
96
+ },
97
+ mode: ['pc'],
98
+ pcDemo: 'trigger-simple'
99
+ },
89
100
  {
90
101
  name: 'border',
91
102
  type: 'boolean',
@@ -120,13 +120,13 @@ export default {
120
120
  type: 'Object',
121
121
  defaultValue: '{}',
122
122
  meta: {
123
- stable: '3.24.0'
123
+ stable: '3.26.0'
124
124
  },
125
125
  desc: {
126
126
  'zh-CN':
127
- '自定义单链型步骤条块的内联样式,数据类型为{ [statusName: string]: styleObject },,不同状态可根据key值差异化配置, key值为status字段的值,value值为对应节点的样式对象',
127
+ '步骤条块的内联样式,数据类型为{ [statusName: string]: styleObject },,不同状态可根据key值差异化配置, key值为status字段的值,value值为对应节点的样式对象',
128
128
  'en-US':
129
- 'Customize the inline style of single chain step blocks, with data type {[statusName: string]: styleObject}. Different states can be configured differently based on key values, where the key value is the value of the status field and the value value is the style object of the corresponding node'
129
+ 'Customize the inline style of step blocks, with data type {[statusName: string]: styleObject}. Different states can be configured differently based on key values, where the key value is the value of the status field and the value value is the style object of the corresponding node'
130
130
  },
131
131
  mode: ['mobile-first']
132
132
  },
@@ -294,6 +294,18 @@ export default {
294
294
  mode: ['pc', 'mobile-first'],
295
295
  pcDemo: 'overflow-title',
296
296
  mfDemo: ''
297
+ },
298
+ {
299
+ name: 'header-only',
300
+ type: 'boolean',
301
+ defaultValue: 'false',
302
+ desc: {
303
+ 'zh-CN': '当 header-only 为 true 时,页签内容不再渲染',
304
+ 'en-US': 'When header-only is true, the tab content is no longer rendered'
305
+ },
306
+ mode: ['pc'],
307
+ pcDemo: 'header-only',
308
+ mfDemo: ''
297
309
  }
298
310
  ],
299
311
  events: [
@@ -199,6 +199,17 @@ export default {
199
199
  mode: ['mobile-first'],
200
200
  mfDemo: 'sub-field'
201
201
  },
202
+ {
203
+ name: 'text-position',
204
+ type: 'string',
205
+ defaultValue: '',
206
+ desc: {
207
+ 'zh-CN': `节点文案位置。默认名称和时间分别展示在图标上下方;可选值:'right',只有名称展示名称在右方`,
208
+ 'en-US': `Node copy position. The default name and time are displayed above and below the icon, respectively; optional value: 'right', where only the name is displayed on the right side. `
209
+ },
210
+ mode: ['pc'],
211
+ pcDemo: 'text-position'
212
+ },
202
213
  {
203
214
  name: 'time-field',
204
215
  type: 'string',
@@ -249,6 +260,15 @@ export default {
249
260
  ],
250
261
  methods: [],
251
262
  slots: [
263
+ {
264
+ name: 'default',
265
+ desc: {
266
+ 'zh-CN': '组件默认插槽。组件显示为插槽内容',
267
+ 'en-US': 'Component default slot. The component displays as the slot content. '
268
+ },
269
+ mode: ['pc'],
270
+ pcDemo: 'slot-default'
271
+ },
252
272
  {
253
273
  name: 'bottom',
254
274
  desc: {
@@ -1,9 +1,9 @@
1
1
  <template>
2
- <tiny-slider-button-group v-model="radio2">
3
- <tiny-slider-button label="1">选项</tiny-slider-button>
4
- <tiny-slider-button label="2">选项选项选选项</tiny-slider-button>
5
- <tiny-slider-button label="3">选项</tiny-slider-button>
6
- <tiny-slider-button label="4">选项选项</tiny-slider-button>
2
+ <tiny-slider-button-group v-model="radio2" :displayed="false">
3
+ <tiny-slider-button label="1">选项选项选项选项选项选项</tiny-slider-button>
4
+ <tiny-slider-button label="2">选项选项选项选项选项选项</tiny-slider-button>
5
+ <tiny-slider-button label="3">选项选项</tiny-slider-button>
6
+ <tiny-slider-button label="4">选项</tiny-slider-button>
7
7
  </tiny-slider-button-group>
8
8
  </template>
9
9
 
@@ -10,7 +10,7 @@ export default {
10
10
  },
11
11
  desc: {
12
12
  'zh-CN':
13
- '<p>通过 <code>v-model</code> 绑定变量,设置的变量值为默认选中的 <code>Button</code>,变量值对应 <code>label</code> 属性的值。<br>\n 通过 <code>text</code> 也可以配置显示文本,与默认插槽配置纯文本的结果一致<br>\n <code>label</code> 可以是 <code>String、Number 或 Boolean</code>。</p>',
13
+ '<p>通过 <code>v-model</code> 绑定变量,设置的变量值为默认选中的 <code>Button</code>,变量值对应 <code>label</code> 属性的值。<br>\n 通过 <code>text</code> 也可以配置显示文本,与默认插槽配置纯文本的结果一致<br>\n <code>label</code> 可以是 <code>String、Number 或 Boolean</code>。<code>displayed</code>按钮内容是否全部展示。</p>',
14
14
  'en-US': '<p>button type</p>'
15
15
  },
16
16
  codeFiles: ['basic-usage.vue']
@@ -1,5 +1,12 @@
1
1
  <template>
2
- <tiny-steps ref="steps" advanced :data="data" :active="advancedActive" @click="advancedClick"></tiny-steps>
2
+ <tiny-steps
3
+ ref="steps"
4
+ advanced
5
+ :item-style="{ disabled: { background: 'yellow', maxWidth: '360px' } }"
6
+ :data="data"
7
+ :active="advancedActive"
8
+ @click="advancedClick"
9
+ ></tiny-steps>
3
10
  </template>
4
11
 
5
12
  <script>
@@ -8,6 +8,15 @@ export const standaloneMenus = [
8
8
  export const docMenus = []
9
9
 
10
10
  export const cmpMenus = [
11
+ {
12
+ 'label': '基础',
13
+ 'labelEn': 'Basic',
14
+ 'key': 'cmp-frame-style',
15
+ 'children': [
16
+ { 'nameCn': '按钮', 'name': 'Button', 'key': 'button' },
17
+ { 'nameCn': '分割线', 'name': 'Divider', 'key': 'divider' }
18
+ ]
19
+ },
11
20
  {
12
21
  label: '导航组件',
13
22
  labelEn: 'Navigation',
@@ -21,9 +30,6 @@ export const cmpMenus = [
21
30
  { name: 'Steps ', nameCn: '步骤条', key: 'steps' },
22
31
  { name: 'Tabs ', nameCn: '标签页', key: 'tabs' },
23
32
  { name: 'Menu ', nameCn: '菜单', key: 'menu' },
24
- { name: 'TimeLine ', nameCn: '时间线', key: 'time-line' },
25
- // 测试时打开该行---------------
26
- // { name: 'TimeLineNew ', nameCn: '时间线AUI', key: 'time-line-new' },
27
33
  { name: 'Dropdown ', nameCn: '下拉菜单', key: 'dropdown' },
28
34
  { name: 'Flowchart ', nameCn: '流程图', key: 'flowchart' }
29
35
  ]
@@ -56,7 +62,6 @@ export const cmpMenus = [
56
62
  { name: 'DatePickerMobile', nameCn: '日期选择器', key: 'date-picker-mobile' },
57
63
  { name: 'DatePicker', nameCn: '日期选择器多端', key: 'date-picker' },
58
64
  { name: 'TimePickerMobile', nameCn: '时间选择器', key: 'time-picker-mobile' },
59
- { name: 'Button', nameCn: '按钮', key: 'button' },
60
65
  { name: 'Checkbox', nameCn: '复选框', key: 'checkbox' },
61
66
  { name: 'FluentEditor', nameCn: '富文本', key: 'fluent-editor' },
62
67
  { name: 'Form', nameCn: '表单', key: 'form' },
@@ -78,7 +83,7 @@ export const cmpMenus = [
78
83
  ]
79
84
  },
80
85
  {
81
- label: '数据组件',
86
+ label: '数据展示',
82
87
  labelEn: 'Data',
83
88
  key: 'cmp-data-components',
84
89
  children: [
@@ -86,7 +91,10 @@ export const cmpMenus = [
86
91
  { name: 'StandardListItem', nameCn: '标准列表项', key: 'standard-list-item' },
87
92
  { name: 'Progress', nameCn: '进度条', key: 'progress' },
88
93
  { name: 'PullRefresh', nameCn: '下拉刷新', key: 'pull-refresh' },
89
- { name: 'Pager', nameCn: '分页', key: 'pager' }
94
+ { name: 'Pager', nameCn: '分页', key: 'pager' },
95
+ { name: 'TimeLine ', nameCn: '时间线', key: 'time-line' }
96
+ // 测试时打开该行---------------
97
+ // { name: 'TimeLineNew ', nameCn: '时间线AUI', key: 'time-line-new' },
90
98
  ]
91
99
  },
92
100
  {
@@ -96,7 +104,7 @@ export const cmpMenus = [
96
104
  'children': [{ 'nameCn': '基本用法', 'name': 'Grid', 'key': 'grid' }]
97
105
  },
98
106
  {
99
- label: '提示组件',
107
+ label: '反馈',
100
108
  labelEn: 'Tooltip',
101
109
  key: 'cmp-tips-components',
102
110
  children: [
@@ -125,8 +133,7 @@ export const cmpMenus = [
125
133
  { name: 'Amount', nameCn: '金额', key: 'amount' },
126
134
  { name: 'currency', nameCn: '币种', key: 'currency' },
127
135
  { name: 'CalendarView', nameCn: '日历', key: 'calendar-view' },
128
- { name: 'FloatingButton', nameCn: '悬浮按钮', key: 'floating-button' },
129
- { name: 'Divider', nameCn: '分割线', key: 'divider' }
136
+ { name: 'FloatingButton', nameCn: '悬浮按钮', key: 'floating-button' }
130
137
  ]
131
138
  }
132
139
  ]
@@ -10,9 +10,9 @@ test('自定义服务', async ({ page }) => {
10
10
  .filter({ hasText: /^币种MZNCNY$/ })
11
11
  .getByRole('textbox')
12
12
  .click()
13
- await page.getByRole('listitem').filter({ hasText: 'MZN' }).click()
14
- await page.getByRole('textbox').nth(3).click()
15
- await page.getByRole('textbox').nth(3).fill('100')
13
+ await page.getByRole('listitem').filter({ hasText: /MZN/ }).locator('div').click()
14
+ await page.getByRole('tooltip', { name: '币种 MZN 金额 确定 重置' }).getByRole('textbox').nth(1).click()
15
+ await page.getByRole('tooltip', { name: '币种 MZN 金额 确定 重置' }).getByRole('textbox').nth(1).fill('100')
16
16
  await page.getByRole('button', { name: '确定' }).click()
17
- expect(await page.locator('.reference-wrapper input').inputValue()).toEqual('$100.00')
17
+ expect(await demo.locator('.reference-wrapper input').inputValue()).toEqual('$100.00')
18
18
  })
@@ -12,5 +12,5 @@ test('custom-reference', async ({ page }) => {
12
12
 
13
13
  await expect(option).toHaveCount(0)
14
14
  await reference.click()
15
- await page.getByRole('listitem', { name: '北京' }).locator('span').click()
15
+ await page.getByRole('listitem').filter({ hasText: /北京/ }).locator('span').click()
16
16
  })
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <tiny-color-picker @confirm="onConfirm" @cancel="onCancel" alpha />
2
+ <tiny-color-picker @confirm="onConfirm" v-model="color" @cancel="onCancel" alpha />
3
3
  </template>
4
4
 
5
5
  <script setup>
@@ -8,7 +8,7 @@ test('测试 Alpha', async ({ page }) => {
8
8
  await page.getByRole('button', { name: '取消' }).click()
9
9
  await page.getByText('用户选择了取消').click()
10
10
  await page.locator('.tiny-color-picker__inner').click()
11
- await page.getByRole('button', { name: '选择' }).click()
11
+ await page.getByRole('button', { name: '确定' }).click()
12
12
  // default is hex
13
- await page.getByText('#804040FF').click()
13
+ await page.getByText('#66CCFFFF').click()
14
14
  })
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <tiny-color-picker @confirm="onConfirm" @cancel="onCacnel" alpha />
2
+ <tiny-color-picker @confirm="onConfirm" v-model="color" @cancel="onCacnel" alpha />
3
3
  </template>
4
4
 
5
5
  <script>
@@ -5,8 +5,8 @@ test('基本用法', async ({ page }) => {
5
5
  await page.goto('color-picker#basic-usage')
6
6
  await page.locator('.tiny-color-picker__inner').click()
7
7
  await page.locator('.black').click()
8
- await page.getByRole('button', { name: '选择' }).click()
8
+ await page.getByRole('button', { name: '确定' }).click()
9
9
  await page.locator('.tiny-color-picker__inner').click()
10
10
  await page.locator('.tiny-color-select-panel__inner__color-select').click()
11
- await page.getByRole('button', { name: '选择' }).click()
11
+ await page.getByRole('button', { name: '确定' }).click()
12
12
  })
@@ -4,5 +4,5 @@ test('默认显示色盘', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('color-picker#default-visible')
6
6
  await page.locator('.tiny-color-select-panel__inner__hue-select').click()
7
- await page.getByRole('button', { name: '选择' }).click()
7
+ await page.getByRole('button', { name: '确定' }).click()
8
8
  })
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <tiny-color-picker @confirm="onConfirm" @cancel="onCancel" />
2
+ <tiny-color-picker v-model="color" @confirm="onConfirm" @cancel="onCancel" />
3
3
  </template>
4
4
 
5
5
  <script setup>
@@ -15,7 +15,7 @@ const onConfirm = (hex) => {
15
15
  TinyNotify({
16
16
  type: 'success',
17
17
  position: 'top-right',
18
- title: '用户点击了选择',
18
+ title: '用户点击了确定',
19
19
  message: hex
20
20
  })
21
21
  }
@@ -3,8 +3,8 @@ import { test, expect } from '@playwright/test'
3
3
  test('事件触发', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('color-picker#event')
6
- await page.locator('#event').getByRole('img').click()
7
- await page.getByRole('button', { name: '选择' }).click()
8
- await page.locator('#event').getByRole('img').first().click()
9
- await page.getByRole('button', { name: '取消' }).click()
6
+ await page.locator('.tiny-color-picker__inner').click()
7
+ await page.locator('.black').click()
8
+ await page.getByRole('button', { name: '确定' }).click()
9
+ await page.getByText('用户点击了确定').click()
10
10
  })
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <tiny-color-picker @confirm="onConfirm" @cancel="onCacnel" />
2
+ <tiny-color-picker v-model="color" @confirm="onConfirm" @cancel="onCacnel" />
3
3
  </template>
4
4
 
5
5
  <script>
@@ -12,9 +12,9 @@ test('hex 时应该为#xxx', async ({ page }) => {
12
12
  page.on('pageerror', (exception) => expect(exception).toBeNull())
13
13
  await page.goto('color-picker#format')
14
14
  await page.locator('.tiny-color-picker__inner').click()
15
- await page.getByRole('textbox', { name: '请选择' }).click()
15
+ await page.locator('.tiny-input__suffix-inner svg').click()
16
16
  await page.getByRole('list').getByText('hex').click()
17
- await page.getByRole('button', { name: '选择' }).click()
17
+ await page.getByRole('button', { name: '确定' }).click()
18
18
  await expect(page.getByLabel('示例', { exact: true }).getByRole('paragraph')).toContainText('颜色值:#66CCFF')
19
19
  })
20
20
 
@@ -22,9 +22,9 @@ test('hsl 时应该为 hsl(xxx,xxx,xxx)', async ({ page }) => {
22
22
  page.on('pageerror', (exception) => expect(exception).toBeNull())
23
23
  await page.goto('color-picker#format')
24
24
  await page.locator('.tiny-color-picker__inner').click()
25
- await page.getByRole('textbox', { name: '请选择' }).click()
25
+ await page.locator('.tiny-input__suffix-inner svg').click()
26
26
  await page.getByRole('list').getByText('hsl').click()
27
- await page.getByRole('button', { name: '选择' }).click()
27
+ await page.getByRole('button', { name: '确定' }).click()
28
28
  await expect(page.getByLabel('示例', { exact: true }).getByRole('paragraph')).toContainText('颜色值:hsl')
29
29
  })
30
30
 
@@ -32,8 +32,8 @@ test('hsv 时候应该为 hsv(xx,xx,xx)', async ({ page }) => {
32
32
  page.on('pageerror', (exception) => expect(exception).toBeNull())
33
33
  await page.goto('color-picker#format')
34
34
  await page.locator('.tiny-color-picker__inner').click()
35
- await page.getByRole('textbox', { name: '请选择' }).click()
35
+ await page.locator('.tiny-input__suffix-inner svg').click()
36
36
  await page.getByRole('list').getByText('hsv').click()
37
- await page.getByRole('button', { name: '选择' }).click()
37
+ await page.getByRole('button', { name: '确定' }).click()
38
38
  await expect(page.getByLabel('示例', { exact: true }).getByRole('paragraph')).toContainText('颜色值:hsv')
39
39
  })
@@ -5,11 +5,5 @@ test('测试历史记录', async ({ page }) => {
5
5
  await page.goto('color-picker#history')
6
6
  await page.getByRole('button', { name: 'Toggle History visibility' }).click()
7
7
  await page.locator('.tiny-color-picker__inner').click()
8
- await expect(page.getByRole('button', { name: '历史记录' })).toBeVisible()
9
- await page.getByRole('button', { name: '历史记录' }).click()
10
- await expect(page.getByText('暂无', { exact: true })).toBeVisible()
11
- await page.getByRole('button', { name: '选择' }).click()
12
- await page.getByRole('button', { name: 'Append history color' }).click()
13
- await page.locator('.tiny-color-picker__inner').click()
14
- await page.getByRole('button', { name: '历史记录' }).click()
8
+ await page.getByRole('button', { name: '确定' }).click()
15
9
  })
@@ -5,23 +5,16 @@ test('测试预定义颜色', async ({ page }) => {
5
5
  await page.goto('color-picker#predefine')
6
6
  await page.getByRole('button', { name: 'Toggle predefine visibility' }).click()
7
7
  await page.locator('.tiny-color-picker__inner').click()
8
- await expect(page.getByRole('button', { name: '预定义颜色' })).toBeVisible()
9
- await page.getByRole('button', { name: '预定义颜色' }).click()
10
8
  await expect(page.locator('.tiny-color-select-panel__predefine > div:nth-child(8)')).toBeVisible()
11
- await page.getByText('取消选择预定义颜色Append predefine').click()
12
- await page.getByRole('button', { name: '选择' }).click()
9
+ await page.getByRole('button', { name: '确定' }).click()
13
10
  await page.getByRole('button', { name: 'Append predefine color' }).click()
14
11
  await page.locator('.tiny-color-picker__inner').click()
15
- await page.getByRole('button', { name: '预定义颜色' }).click()
16
12
  await expect(page.locator('.tiny-color-select-panel__predefine > div:nth-child(9)')).toBeVisible()
17
- await page.getByRole('button', { name: '选择' }).click()
13
+ await page.getByRole('button', { name: '确定' }).click()
18
14
  await page.getByRole('button', { name: 'Pop predefine color' }).click()
19
15
  await page.locator('.tiny-color-picker').click()
20
- await page.getByRole('button', { name: '预定义颜色' }).click()
21
16
  await expect(page.locator('.tiny-color-select-panel__predefine > div:nth-child(9)')).not.toBeVisible()
22
17
  await expect(page.locator('.tiny-color-select-panel__predefine > div:nth-child(8)')).toBeVisible()
23
18
  await page.locator('.tiny-color-select-panel__predefine > div:nth-child(8)').click()
24
- await page.getByRole('button', { name: '选择' }).click()
25
- await page.locator('.tiny-color-picker__inner').click()
26
- await page.getByText('取消选择预定义颜色Append predefine').click()
19
+ await page.getByRole('button', { name: '确定' }).click()
27
20
  })
@@ -3,8 +3,8 @@ import { test, expect } from '@playwright/test'
3
3
  test('测试尺寸', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('color-picker#size')
6
- await expect(page.locator('.tiny-color-picker.tiny-color-picker--large')).toHaveCSS('width', '48px')
7
- await expect(page.locator('.tiny-color-picker.tiny-color-picker--medium')).toHaveCSS('width', '40px')
8
- await expect(page.locator('.tiny-color-picker.tiny-color-picker--small')).toHaveCSS('width', '28px')
9
- await expect(page.locator('.tiny-color-picker.tiny-color-picker--mini')).toHaveCSS('width', '24px')
6
+ await expect(page.locator('.tiny-color-picker.tiny-color-picker--large')).toHaveCSS('width', '32px')
7
+ await expect(page.locator('.tiny-color-picker.tiny-color-picker--medium')).toHaveCSS('width', '24px')
8
+ await expect(page.locator('.tiny-color-picker.tiny-color-picker--small')).toHaveCSS('width', '20px')
9
+ await expect(page.locator('.tiny-color-picker.tiny-color-picker--mini')).toHaveCSS('width', '16px')
10
10
  })
@@ -12,7 +12,7 @@ test('hex', async ({ page }) => {
12
12
  await page.getByRole('button', { name: 'Toggle' }).click()
13
13
  await page.getByRole('textbox', { name: '请选择' }).click()
14
14
  await page.getByRole('list').getByText('hex').click()
15
- await page.getByRole('button', { name: '选择' }).click()
15
+ await page.getByRole('button', { name: '确定' }).click()
16
16
  await expect(page.locator('#format')).toContainText('颜色值:#66CCFF')
17
17
  })
18
18
 
@@ -20,12 +20,6 @@ test('hsl 时应该为 hsl(xxx,xxx,xxx)', async ({ page }) => {
20
20
  page.on('pageerror', (exception) => expect(exception).toBeNull())
21
21
  await page.goto('color-select-panel#format')
22
22
  await page.getByRole('button', { name: 'Toggle' }).click()
23
- await page
24
- .locator('div')
25
- .filter({ hasText: /^rgbhexhslhsv取消选择$/ })
26
- .getByRole('img')
27
- .click()
28
- await page.getByRole('textbox', { name: '请选择' }).click()
29
23
  await page.getByRole('textbox', { name: '请选择' }).click()
30
24
  await page.getByRole('list').getByText('hsl').click()
31
25
  })
@@ -36,6 +30,6 @@ test('hsv 时候应该为 hsv(xx,xx,xx)', async ({ page }) => {
36
30
  await page.getByRole('button', { name: 'Toggle' }).click()
37
31
  await page.getByRole('textbox', { name: '请选择' }).click()
38
32
  await page.getByRole('list').getByText('hsv').click()
39
- await page.getByRole('button', { name: '选择' }).click()
33
+ await page.getByRole('button', { name: '确定' }).click()
40
34
  await expect(page.locator('#format')).toContainText('颜色值:hsv(199.99999999999997, 60%, 100%)')
41
35
  })
@@ -5,8 +5,6 @@ test('历史记录', async ({ page }) => {
5
5
  await page.goto('color-select-panel#history')
6
6
  await page.getByRole('button', { name: 'Toggle History visibility' }).click()
7
7
  await page.getByRole('button', { name: 'Show Color select panel' }).click()
8
- await expect(page.getByRole('button', { name: '历史记录' })).toBeVisible()
9
8
  await page.getByRole('button', { name: 'Toggle History visibility' }).click()
10
9
  await page.getByRole('button', { name: 'Show Color select panel' }).click()
11
- await expect(page.getByRole('button', { name: '历史记录' })).not.toBeVisible()
12
10
  })
@@ -6,15 +6,12 @@ test('预定义颜色', async ({ page }) => {
6
6
 
7
7
  await page.getByRole('button', { name: 'Toggle Predefine color' }).click()
8
8
  await page.getByRole('button', { name: 'Show Color select panel' }).click()
9
- await page.getByRole('button', { name: '预定义颜色' }).click()
10
9
  expect(page.locator('.tiny-color-select-panel__predefine__color-block')).toHaveCount(8)
11
10
  await page.getByRole('button', { name: 'Append predefine color' }).click()
12
11
  await page.getByRole('button', { name: 'Show Color select panel' }).click()
13
- await page.getByRole('button', { name: '预定义颜色' }).click()
14
12
  expect(page.locator('.tiny-color-select-panel__predefine__color-block')).toHaveCount(9)
15
13
  await page.getByRole('button', { name: 'Pop predefine color' }).click()
16
14
  await page.getByRole('button', { name: 'Show Color select panel' }).click()
17
- await page.getByRole('button', { name: '预定义颜色' }).click()
18
15
  expect(page.locator('.tiny-color-select-panel__predefine__color-block')).toHaveCount(8)
19
16
  await page.getByRole('button', { name: 'Toggle Predefine color' }).click()
20
17
  await page.getByRole('button', { name: 'Show Color select panel' }).click()
@@ -58,27 +58,27 @@ const pattern = ref('default')
58
58
  }
59
59
 
60
60
  .demo-container .tiny-container :deep(.tiny-container__header) {
61
- background-color: var(--tv-color-info-bg-light);
62
- border: 3px solid var(--tv-color-border-container);
63
- color: var(--tv-color-info-text);
61
+ background-color: var(--tv-color-info-bg-light, #0067d1);
62
+ border: 3px solid var(--tv-color-border-container, #fff);
63
+ color: var(--tv-color-info-text, #fff);
64
64
  line-height: 48px;
65
65
  }
66
66
 
67
67
  .demo-container .tiny-container :deep(.tiny-container__aside) {
68
- background-color: var(--tv-color-error-bg-light);
69
- border: 3px solid var(--tv-color-border-container);
70
- color: var(--tv-color-error-text);
68
+ background-color: var(--tv-color-error-bg-light, #0067d180);
69
+ border: 3px solid var(--tv-color-border-container, #fff);
70
+ color: var(--tv-color-error-text, #fff);
71
71
  }
72
72
 
73
73
  .demo-container .tiny-container :deep(.tiny-container__main) {
74
- background-color: var(--tv-color-warn-bg-light);
75
- border: 3px solid var(--tv-color-border-container);
74
+ background-color: var(--tv-color-warn-bg-light, #0067d133);
75
+ border: 3px solid var(--tv-color-border-container, #fff);
76
76
  color: var(--tv-color-warn-text);
77
77
  }
78
78
 
79
79
  .demo-container .tiny-container :deep(.tiny-container__footer) {
80
- background-color: var(--tv-color-success-bg-light);
81
- border: 3px solid var(--tv-color-border-container);
80
+ background-color: var(--tv-color-success-bg-light, #f0f7ff);
81
+ border: 3px solid var(--tv-color-border-container, #fff);
82
82
  color: var(--tv-color-success-text);
83
83
  }
84
84
  .demo-center {