@opentiny/vue-docs 3.17.2 → 3.17.4

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 (212) hide show
  1. package/demos/apis/action-sheet.js +1 -1
  2. package/demos/apis/autocomplete.js +2 -2
  3. package/demos/apis/button-group.js +3 -0
  4. package/demos/apis/cascader.js +1 -1
  5. package/demos/apis/chart-attributes-demo.js +397 -291
  6. package/demos/apis/chart-autonavi-map.js +394 -296
  7. package/demos/apis/chart-baidu-map.js +394 -296
  8. package/demos/apis/chart-bar.js +394 -296
  9. package/demos/apis/chart-boxplot.js +394 -297
  10. package/demos/apis/chart-candle.js +394 -296
  11. package/demos/apis/chart-demo.js +397 -291
  12. package/demos/apis/chart-docs.js +403 -0
  13. package/demos/apis/chart-events.js +397 -291
  14. package/demos/apis/chart-funnel.js +394 -296
  15. package/demos/apis/chart-gauge.js +394 -296
  16. package/demos/apis/chart-graph.js +394 -296
  17. package/demos/apis/chart-heatmap.js +394 -296
  18. package/demos/apis/chart-histogram.js +394 -296
  19. package/demos/apis/chart-line.js +394 -296
  20. package/demos/apis/chart-liquidfill.js +394 -296
  21. package/demos/apis/chart-map.js +394 -296
  22. package/demos/apis/chart-pie.js +395 -297
  23. package/demos/apis/chart-process.js +28 -28
  24. package/demos/apis/chart-question.js +397 -291
  25. package/demos/apis/chart-radar.js +394 -296
  26. package/demos/apis/chart-ring.js +394 -296
  27. package/demos/apis/chart-sankey.js +394 -296
  28. package/demos/apis/chart-scatter.js +394 -296
  29. package/demos/apis/chart-sunburst.js +394 -296
  30. package/demos/apis/chart-tree.js +394 -296
  31. package/demos/apis/chart-waterfall.js +394 -296
  32. package/demos/apis/chart-wordcloud.js +394 -296
  33. package/demos/apis/chart.js +199 -81
  34. package/demos/apis/dialog-box.js +1 -1
  35. package/demos/apis/dialog-select.js +14 -0
  36. package/demos/apis/dropdown.js +16 -0
  37. package/demos/apis/file-upload.js +2 -1
  38. package/demos/apis/fluent-editor.js +110 -0
  39. package/demos/apis/form.js +1 -1
  40. package/demos/apis/grid.js +24 -0
  41. package/demos/apis/guide.js +1 -1
  42. package/demos/apis/input.js +15 -0
  43. package/demos/apis/numeric.js +6 -6
  44. package/demos/apis/search.js +11 -0
  45. package/demos/apis/switch.js +24 -0
  46. package/demos/apis/tabs.js +3 -5
  47. package/demos/apis/tree-menu.js +2 -13
  48. package/demos/apis/tree-select.js +192 -15
  49. package/demos/apis/tree.js +11 -0
  50. package/demos/mobile-first/app/file-upload/file-size-array.vue +19 -0
  51. package/demos/mobile-first/app/file-upload/file-size.vue +76 -0
  52. package/demos/mobile-first/app/file-upload/webdoc/file-upload.js +24 -0
  53. package/demos/mobile-first/app/grid/basic-usage.vue +5 -1
  54. package/demos/pc/app/cascader-panel/multiple-composition-api.vue +226 -0
  55. package/demos/pc/app/cascader-panel/multiple.spec.ts +15 -0
  56. package/demos/pc/app/cascader-panel/multiple.vue +234 -0
  57. package/demos/pc/app/cascader-panel/webdoc/cascader-panel.js +12 -0
  58. package/demos/pc/app/chart/webdoc/chart-docs.cn.md +126 -0
  59. package/demos/pc/app/chart/webdoc/chart-docs.en.md +127 -0
  60. package/demos/pc/app/chart/webdoc/chart-docs.js +6 -0
  61. package/demos/pc/app/chart/webdoc/chart-docs.json.cn.md +126 -0
  62. package/demos/pc/app/chart/webdoc/chart-docs.json.en.md +127 -0
  63. package/demos/pc/app/chart/webdoc/chart.cn.md +1 -1
  64. package/demos/pc/app/chart/webdoc/chart.en.md +1 -1
  65. package/demos/pc/app/color-picker/base.vue +1 -0
  66. package/demos/pc/app/dialog-box/webdoc/dialog-box.js +4 -2
  67. package/demos/pc/app/directives/highlight-query/avoid-composition-api.vue +52 -0
  68. package/demos/pc/app/directives/highlight-query/avoid.spec.js +15 -0
  69. package/demos/pc/app/directives/highlight-query/avoid.vue +65 -0
  70. package/demos/pc/app/directives/highlight-query/basic-usage-composition-api.vue +31 -0
  71. package/demos/pc/app/directives/highlight-query/basic-usage.spec.js +12 -0
  72. package/demos/pc/app/directives/highlight-query/basic-usage.vue +40 -0
  73. package/demos/pc/app/directives/webdoc/directives-highlight-query.cn.md +7 -0
  74. package/demos/pc/app/directives/webdoc/directives-highlight-query.en.md +7 -0
  75. package/demos/pc/app/directives/webdoc/directives-highlight-query.js +39 -0
  76. package/demos/pc/app/dropdown/lazy-show-popper-composition-api.vue +43 -0
  77. package/demos/pc/app/dropdown/lazy-show-popper.spec.ts +20 -0
  78. package/demos/pc/app/dropdown/lazy-show-popper.vue +47 -0
  79. package/demos/pc/app/dropdown/webdoc/dropdown.js +13 -0
  80. package/demos/pc/app/file-upload/file-size-array.vue +85 -0
  81. package/demos/pc/app/file-upload/file-size.vue +78 -0
  82. package/demos/pc/app/file-upload/webdoc/file-upload.js +24 -0
  83. package/demos/pc/app/form/message-type-composition-api.vue +1 -1
  84. package/demos/pc/app/form/message-type.vue +1 -1
  85. package/demos/pc/app/form/webdoc/form.js +2 -2
  86. package/demos/pc/app/grid/dynamically-columns/column-switching-scroll-composition-api.vue +81 -0
  87. package/demos/pc/app/grid/dynamically-columns/column-switching-scroll.spec.js +14 -0
  88. package/demos/pc/app/grid/dynamically-columns/column-switching-scroll.vue +89 -0
  89. package/demos/pc/app/grid/webdoc/grid-dynamically-columns.js +12 -0
  90. package/demos/pc/app/grid/webdoc/grid-pager.js +1 -1
  91. package/demos/pc/app/icon/iconGroups.js +278 -157
  92. package/demos/pc/app/input/basic-usage.spec.ts +1 -1
  93. package/demos/pc/app/input/show-tooltip-composition-api.vue +27 -0
  94. package/demos/pc/app/input/show-tooltip.spec.ts +10 -0
  95. package/demos/pc/app/input/show-tooltip.vue +34 -0
  96. package/demos/pc/app/input/webdoc/input.js +13 -0
  97. package/demos/pc/app/numeric/numeric-size-composition-api.vue +2 -0
  98. package/demos/pc/app/numeric/numeric-size.vue +2 -0
  99. package/demos/pc/app/numeric/webdoc/numeric.js +2 -2
  100. package/demos/pc/app/rich-text-editor/basic-usage.vue +2 -0
  101. package/demos/pc/app/search/slot-prefix-composition-api.vue +10 -2
  102. package/demos/pc/app/search/slot-prefix.spec.ts +1 -1
  103. package/demos/pc/app/search/slot-prefix.vue +16 -5
  104. package/demos/pc/app/search/webdoc/search.js +5 -4
  105. package/demos/pc/app/select/popup-style-position-composition-api.vue +1 -2
  106. package/demos/pc/app/select/popup-style-position.vue +1 -2
  107. package/demos/pc/app/slider/about-step-composition-api.vue +6 -0
  108. package/demos/pc/app/slider/about-step.vue +6 -0
  109. package/demos/pc/app/slider/basic-usage-composition-api.vue +6 -0
  110. package/demos/pc/app/slider/basic-usage.vue +6 -0
  111. package/demos/pc/app/slider/dynamic-disable-composition-api.vue +6 -0
  112. package/demos/pc/app/slider/dynamic-disable.vue +6 -0
  113. package/demos/pc/app/slider/format-tooltip-composition-api.vue +6 -0
  114. package/demos/pc/app/slider/format-tooltip.vue +6 -0
  115. package/demos/pc/app/slider/marks-composition-api.vue +7 -5
  116. package/demos/pc/app/slider/marks.vue +7 -5
  117. package/demos/pc/app/slider/max-min-composition-api.vue +6 -0
  118. package/demos/pc/app/slider/max-min.vue +6 -0
  119. package/demos/pc/app/slider/range-select-composition-api.vue +6 -0
  120. package/demos/pc/app/slider/range-select.vue +6 -0
  121. package/demos/pc/app/slider/shortcut-operation-composition-api.vue +6 -0
  122. package/demos/pc/app/slider/shortcut-operation.vue +6 -0
  123. package/demos/pc/app/slider/show-input-composition-api.vue +6 -0
  124. package/demos/pc/app/slider/show-input.vue +6 -0
  125. package/demos/pc/app/slider/show-tip-composition-api.vue +6 -0
  126. package/demos/pc/app/slider/show-tip.vue +6 -0
  127. package/demos/pc/app/slider/slider-event-composition-api.vue +6 -0
  128. package/demos/pc/app/slider/slider-event.vue +6 -0
  129. package/demos/pc/app/slider/slider-slot-composition-api.vue +6 -0
  130. package/demos/pc/app/slider/slider-slot.vue +6 -0
  131. package/demos/pc/app/slider/vertical-mode-composition-api.vue +6 -0
  132. package/demos/pc/app/slider/vertical-mode.vue +6 -0
  133. package/demos/pc/app/switch/custom-open-close-icon-composition-api.vue +20 -0
  134. package/demos/pc/app/switch/custom-open-close-icon.spec.ts +15 -0
  135. package/demos/pc/app/switch/custom-open-close-icon.vue +23 -0
  136. package/demos/pc/app/switch/webdoc/switch.js +13 -0
  137. package/demos/pc/app/tabs/basic-usage-composition-api.vue +1 -1
  138. package/demos/pc/app/tabs/basic-usage.vue +1 -1
  139. package/demos/pc/app/tabs/size-composition-api.vue +31 -0
  140. package/demos/pc/app/tabs/size.spec.ts +15 -0
  141. package/demos/pc/app/tabs/size.vue +41 -0
  142. package/demos/pc/app/tabs/tabs-second-layer-composition-api.vue +0 -1
  143. package/demos/pc/app/tabs/tabs-second-layer.vue +0 -1
  144. package/demos/pc/app/tabs/tabs-separator-composition-api.vue +3 -1
  145. package/demos/pc/app/tabs/tabs-separator.vue +3 -1
  146. package/demos/pc/app/tabs/webdoc/tabs.js +12 -0
  147. package/demos/pc/app/time-picker/default-value.spec.ts +1 -1
  148. package/demos/pc/app/time-picker/picker-options.spec.ts +4 -3
  149. package/demos/pc/app/tree/filter-view-composition-api.vue +9 -0
  150. package/demos/pc/app/tree/filter-view.spec.ts +8 -0
  151. package/demos/pc/app/tree/filter-view.vue +9 -0
  152. package/demos/pc/app/tree/webdoc/tree.js +2 -0
  153. package/demos/pc/app/tree-menu/custom-icon-composition-api.vue +1 -1
  154. package/demos/pc/app/tree-menu/custom-icon.vue +1 -1
  155. package/demos/pc/app/tree-menu/webdoc/tree-menu.js +2 -2
  156. package/demos/pc/app/tree-select/basic-usage.vue +1 -0
  157. package/demos/pc/app/tree-select/collapse-tags-composition-api.vue +71 -0
  158. package/demos/pc/app/tree-select/collapse-tags.vue +78 -0
  159. package/demos/pc/app/tree-select/copy-composition-api.vue +70 -0
  160. package/demos/pc/app/tree-select/copy.vue +78 -0
  161. package/demos/pc/app/tree-select/disabled-composition-api.vue +69 -0
  162. package/demos/pc/app/tree-select/disabled.vue +76 -0
  163. package/demos/pc/app/tree-select/map-field-composition-api.vue +55 -0
  164. package/demos/pc/app/tree-select/map-field.vue +62 -0
  165. package/demos/pc/app/tree-select/multiple-composition-api.vue +55 -0
  166. package/demos/pc/app/tree-select/multiple.vue +62 -0
  167. package/demos/pc/app/tree-select/native-properties-composition-api.vue +61 -0
  168. package/demos/pc/app/tree-select/native-properties.vue +68 -0
  169. package/demos/pc/app/tree-select/panel-style-composition-api.vue +73 -0
  170. package/demos/pc/app/tree-select/panel-style.vue +80 -0
  171. package/demos/pc/app/tree-select/reference-style-composition-api.vue +76 -0
  172. package/demos/pc/app/tree-select/reference-style.vue +83 -0
  173. package/demos/pc/app/tree-select/size-composition-api.vue +69 -0
  174. package/demos/pc/app/tree-select/size.vue +76 -0
  175. package/demos/pc/app/tree-select/webdoc/tree-select.js +124 -0
  176. package/demos/pc/menus.js +5 -1
  177. package/demos/pc/overviewimage/chart-docs.svg +44 -0
  178. package/package.json +7 -7
  179. package/playground/App.vue +1 -0
  180. package/src/assets/images/Infinitely-icon.png +0 -0
  181. package/src/assets/images/Infinitely.png +0 -0
  182. package/src/assets/images/glaciers-icon.png +0 -0
  183. package/src/assets/images/glaciers.png +0 -0
  184. package/src/assets/images/oceanic-icon.png +0 -0
  185. package/src/assets/images/oceanic.png +0 -0
  186. package/src/assets/images/starry-sky-icon.png +0 -0
  187. package/src/assets/images/starry-sky.png +0 -0
  188. package/src/i18n/en.json +4 -2
  189. package/src/i18n/zh.json +4 -2
  190. package/src/style.css +10 -2
  191. package/src/tools/appData.js +7 -10
  192. package/src/tools/useApiMode.js +5 -0
  193. package/src/tools/useStyleSettings.js +16 -0
  194. package/src/tools/useTheme.js +39 -4
  195. package/src/views/components/components.vue +14 -6
  196. package/src/views/components/demo.vue +4 -4
  197. package/src/views/components/float-settings.vue +124 -98
  198. package/src/views/layout/layout.vue +1 -1
  199. package/vite.config.ts +2 -1
  200. package/demos/mobile-first/app/time-line-new/auto-slot.vue +0 -50
  201. package/demos/mobile-first/app/time-line-new/basic-usage.vue +0 -23
  202. package/demos/mobile-first/app/time-line-new/fold-time.vue +0 -29
  203. package/demos/mobile-first/app/time-line-new/limited-nodes.vue +0 -29
  204. package/demos/mobile-first/app/time-line-new/many-status.vue +0 -24
  205. package/demos/mobile-first/app/time-line-new/node-max.vue +0 -26
  206. package/demos/mobile-first/app/time-line-new/node-toset.vue +0 -32
  207. package/demos/mobile-first/app/time-line-new/single-status.vue +0 -40
  208. package/demos/mobile-first/app/time-line-new/sub-field.vue +0 -23
  209. package/demos/mobile-first/app/time-line-new/webdoc/time-line-new.cn.md +0 -9
  210. package/demos/mobile-first/app/time-line-new/webdoc/time-line-new.en.md +0 -9
  211. package/demos/mobile-first/app/time-line-new/webdoc/time-line-new.js +0 -120
  212. /package/demos/pc/app/slider/{show-iput.spec.ts → show-input.spec.ts} +0 -0
@@ -5,6 +5,8 @@
5
5
  <tiny-numeric v-model="value" size="small"></tiny-numeric>
6
6
  <br /><br />
7
7
  <tiny-numeric v-model="value" size="mini"></tiny-numeric>
8
+ <br /><br />
9
+ <tiny-numeric v-model="value"></tiny-numeric>
8
10
  </div>
9
11
  </template>
10
12
 
@@ -101,9 +101,9 @@ export default {
101
101
  },
102
102
  desc: {
103
103
  'zh-CN':
104
- '可通过<code>size</code> 属性设置计数器尺寸,可选值有<code>medium</code><code>small</code><code>mini</code>。',
104
+ '可通过 <code>size</code> 属性设置计数器尺寸,可选值有 <code>medium</code><code>small</code><code>mini</code>。',
105
105
  'en-US':
106
- 'You can set the counter size through the<code>size</code>attribute.The value can be <code>medium</code><code>small</code><code>mini</code>. '
106
+ 'You can set the counter size through the<code>size</code>attribute,the value can be <code>medium</code><code>small</code><code>mini</code>. '
107
107
  },
108
108
  codeFiles: ['numeric-size.vue']
109
109
  },
@@ -2,6 +2,8 @@
2
2
  <div>
3
3
  <tiny-rich-text-editor v-model="value"></tiny-rich-text-editor>
4
4
  <div class="result">
5
+ <hr />
6
+ <textarea v-model="value" style="width: 100%" rows="5" />
5
7
  <hr />
6
8
  <pre>{{ value }}</pre>
7
9
  </div>
@@ -1,20 +1,28 @@
1
1
  <template>
2
2
  <div>
3
- <tiny-search v-model="value" placeholder="请输入关键字搜索" clearable>
3
+ <tiny-button class="mb10" @click="changeDisabled"
4
+ >点击切换为“{{ disabled ? '非禁用状态' : '禁用状态' }}”</tiny-button
5
+ >
6
+ <tiny-search class="mb10" v-model="value" placeholder="请输入关键字搜索" :disabled="disabled" clearable>
4
7
  <template #prefix>
5
8
  <tiny-icon-search />
6
9
  </template>
7
10
  </tiny-search>
11
+ <tiny-search v-model="value" placeholder="请输入关键词" :disabled="disabled"></tiny-search>
8
12
  <div class="mt10">{{ value }}</div>
9
13
  </div>
10
14
  </template>
11
15
 
12
16
  <script setup lang="jsx">
13
17
  import { ref } from 'vue'
14
- import { Search as TinySearch } from '@opentiny/vue'
18
+ import { Search as TinySearch, Button as TinyButton } from '@opentiny/vue'
15
19
  import { iconSearch } from '@opentiny/vue-icon'
16
20
 
17
21
  const value = ref('')
22
+ const disabled = ref(false)
18
23
 
19
24
  const TinyIconSearch = iconSearch()
25
+ const changeDisabled = () => {
26
+ disabled.value = !disabled.value
27
+ }
20
28
  </script>
@@ -4,7 +4,7 @@ test('左侧插槽是否正常显示', async ({ page }) => {
4
4
  page.on('pageerror', (exception) => expect(exception).toBeNull())
5
5
  await page.goto('search#slot-prefix')
6
6
 
7
- const search = page.locator('.tiny-search')
7
+ const search = page.locator('.tiny-search').first()
8
8
  const prefix = search.locator('.tiny-search__prefix > svg')
9
9
 
10
10
  await expect(prefix).toBeVisible()
@@ -1,26 +1,37 @@
1
1
  <template>
2
2
  <div>
3
- <tiny-search v-model="value" placeholder="请输入关键字搜索" clearable>
3
+ <tiny-button class="mb10" @click="changeDisabled"
4
+ >点击切换为“{{ disabled ? '非禁用状态' : '禁用状态' }}”</tiny-button
5
+ >
6
+ <tiny-search class="mb10" v-model="value" placeholder="请输入关键字搜索" :disabled="disabled" clearable>
4
7
  <template #prefix>
5
- <icon-search />
8
+ <tiny-icon-search />
6
9
  </template>
7
10
  </tiny-search>
11
+ <tiny-search v-model="value" placeholder="请输入关键词" :disabled="disabled"></tiny-search>
8
12
  <div class="mt10">{{ value }}</div>
9
13
  </div>
10
14
  </template>
11
15
 
12
16
  <script lang="jsx">
13
- import { Search } from '@opentiny/vue'
17
+ import { Search, Button } from '@opentiny/vue'
14
18
  import { iconSearch } from '@opentiny/vue-icon'
15
19
 
16
20
  export default {
17
21
  components: {
18
22
  TinySearch: Search,
19
- IconSearch: iconSearch()
23
+ TinyButton: Button,
24
+ TinyIconSearch: iconSearch()
20
25
  },
21
26
  data() {
22
27
  return {
23
- value: ''
28
+ value: '',
29
+ disabled: false
30
+ }
31
+ },
32
+ methods: {
33
+ changeDisabled() {
34
+ this.disabled = !this.disabled
24
35
  }
25
36
  }
26
37
  }
@@ -92,12 +92,13 @@ export default {
92
92
  {
93
93
  demoId: 'slot-prefix',
94
94
  name: {
95
- 'zh-CN': '左侧插槽',
96
- 'en-US': 'Left slot'
95
+ 'zh-CN': '左侧插槽与禁用',
96
+ 'en-US': 'Left slot and Disabled'
97
97
  },
98
98
  desc: {
99
- 'zh-CN': '通过 <code>prefix</code> 插槽自定义左侧内容。',
100
- 'en-US': 'Customize the left content through the <code>prefix</code> slot.'
99
+ 'zh-CN': '通过 <code>prefix</code> 插槽自定义左侧内容, <code>disabled</code> 控制禁用状态。',
100
+ 'en-US':
101
+ 'Customize the left content through the <code>prefix</code> slot, <code>disabled</code>Control the disabled state.'
101
102
  },
102
103
  codeFiles: ['slot-prefix.vue']
103
104
  },
@@ -12,8 +12,7 @@ const options = reactive([
12
12
  { value: '选项1', label: '北京' },
13
13
  { value: '选项2', label: '上海' },
14
14
  { value: '选项3', label: '天津' },
15
- { value: '选项4', label: '重庆' },
16
- { value: '选项5', label: '深圳' }
15
+ { value: '选项4', label: '重庆' }
17
16
  ])
18
17
  const value = ref('')
19
18
  </script>
@@ -18,8 +18,7 @@ export default {
18
18
  { value: '选项1', label: '北京' },
19
19
  { value: '选项2', label: '上海' },
20
20
  { value: '选项3', label: '天津' },
21
- { value: '选项4', label: '重庆' },
22
- { value: '选项5', label: '深圳' }
21
+ { value: '选项4', label: '重庆' }
23
22
  ],
24
23
  value: ''
25
24
  }
@@ -8,3 +8,9 @@ import { Slider as TinySlider } from '@opentiny/vue'
8
8
 
9
9
  const value = ref(20)
10
10
  </script>
11
+
12
+ <style scoped>
13
+ .tiny-slider-container {
14
+ margin-top: 50px;
15
+ }
16
+ </style>
@@ -16,3 +16,9 @@ export default {
16
16
  }
17
17
  }
18
18
  </script>
19
+
20
+ <style scoped>
21
+ .tiny-slider-container {
22
+ margin-top: 50px;
23
+ }
24
+ </style>
@@ -15,3 +15,9 @@ function setValue() {
15
15
  value.value = 50
16
16
  }
17
17
  </script>
18
+
19
+ <style scoped>
20
+ .tiny-slider-container {
21
+ margin-top: 32px;
22
+ }
23
+ </style>
@@ -25,3 +25,9 @@ export default {
25
25
  }
26
26
  }
27
27
  </script>
28
+
29
+ <style scoped>
30
+ .tiny-slider-container {
31
+ margin-top: 32px;
32
+ }
33
+ </style>
@@ -8,3 +8,9 @@ import { Slider as TinySlider } from '@opentiny/vue'
8
8
 
9
9
  const value = ref(40)
10
10
  </script>
11
+
12
+ <style scoped>
13
+ .tiny-slider-container {
14
+ margin-top: 50px;
15
+ }
16
+ </style>
@@ -16,3 +16,9 @@ export default {
16
16
  }
17
17
  }
18
18
  </script>
19
+
20
+ <style scoped>
21
+ .tiny-slider-container {
22
+ margin-top: 50px;
23
+ }
24
+ </style>
@@ -12,3 +12,9 @@ function format(value) {
12
12
  return '当前值为:' + value
13
13
  }
14
14
  </script>
15
+
16
+ <style scoped>
17
+ .tiny-slider-container {
18
+ margin-top: 50px;
19
+ }
20
+ </style>
@@ -21,3 +21,9 @@ export default {
21
21
  }
22
22
  }
23
23
  </script>
24
+
25
+ <style scoped>
26
+ .tiny-slider-container {
27
+ margin-top: 50px;
28
+ }
29
+ </style>
@@ -1,9 +1,5 @@
1
1
  <template>
2
- <div>
3
- <div>
4
- <tiny-slider v-model="value" :marks="marks"></tiny-slider>
5
- </div>
6
- </div>
2
+ <tiny-slider v-model="value" :marks="marks"></tiny-slider>
7
3
  </template>
8
4
 
9
5
  <script setup>
@@ -18,3 +14,9 @@ const marks = ref({
18
14
 
19
15
  const value = ref(20)
20
16
  </script>
17
+
18
+ <style scoped>
19
+ .tiny-slider-container {
20
+ margin-top: 50px;
21
+ }
22
+ </style>
@@ -1,9 +1,5 @@
1
1
  <template>
2
- <div>
3
- <div>
4
- <tiny-slider v-model="value" :marks="marks"></tiny-slider>
5
- </div>
6
- </div>
2
+ <tiny-slider v-model="value" :marks="marks"></tiny-slider>
7
3
  </template>
8
4
 
9
5
  <script>
@@ -25,3 +21,9 @@ export default {
25
21
  }
26
22
  }
27
23
  </script>
24
+
25
+ <style scoped>
26
+ .tiny-slider-container {
27
+ margin-top: 50px;
28
+ }
29
+ </style>
@@ -8,3 +8,9 @@ import { Slider as TinySlider } from '@opentiny/vue'
8
8
 
9
9
  const value = ref(30)
10
10
  </script>
11
+
12
+ <style scoped>
13
+ .tiny-slider-container {
14
+ margin-top: 50px;
15
+ }
16
+ </style>
@@ -16,3 +16,9 @@ export default {
16
16
  }
17
17
  }
18
18
  </script>
19
+
20
+ <style scoped>
21
+ .tiny-slider-container {
22
+ margin-top: 50px;
23
+ }
24
+ </style>
@@ -8,3 +8,9 @@ import { Slider as TinySlider } from '@opentiny/vue'
8
8
 
9
9
  const value = ref([20, 40])
10
10
  </script>
11
+
12
+ <style scoped>
13
+ .tiny-slider-container {
14
+ margin-top: 50px;
15
+ }
16
+ </style>
@@ -16,3 +16,9 @@ export default {
16
16
  }
17
17
  }
18
18
  </script>
19
+
20
+ <style scoped>
21
+ .tiny-slider-container {
22
+ margin-top: 50px;
23
+ }
24
+ </style>
@@ -8,3 +8,9 @@ import { Slider as TinySlider } from '@opentiny/vue'
8
8
 
9
9
  const value = ref(40)
10
10
  </script>
11
+
12
+ <style scoped>
13
+ .tiny-slider-container {
14
+ margin-top: 50px;
15
+ }
16
+ </style>
@@ -16,3 +16,9 @@ export default {
16
16
  }
17
17
  }
18
18
  </script>
19
+
20
+ <style scoped>
21
+ .tiny-slider-container {
22
+ margin-top: 50px;
23
+ }
24
+ </style>
@@ -10,3 +10,9 @@ import { Slider as TinySlider } from '@opentiny/vue'
10
10
  const value = ref(40)
11
11
  const value2 = ref([40, 60])
12
12
  </script>
13
+
14
+ <style scoped>
15
+ .tiny-slider-container {
16
+ margin-top: 50px;
17
+ }
18
+ </style>
@@ -18,3 +18,9 @@ export default {
18
18
  }
19
19
  }
20
20
  </script>
21
+
22
+ <style scoped>
23
+ .tiny-slider-container {
24
+ margin-top: 50px;
25
+ }
26
+ </style>
@@ -12,3 +12,9 @@ function format(value) {
12
12
  return '当前值为:' + value
13
13
  }
14
14
  </script>
15
+
16
+ <style scoped>
17
+ .tiny-slider-container {
18
+ margin-top: 50px;
19
+ }
20
+ </style>
@@ -21,3 +21,9 @@ export default {
21
21
  }
22
22
  }
23
23
  </script>
24
+
25
+ <style scoped>
26
+ .tiny-slider-container {
27
+ margin-top: 50px;
28
+ }
29
+ </style>
@@ -32,3 +32,9 @@ function stop(val) {
32
32
  })
33
33
  }
34
34
  </script>
35
+
36
+ <style scoped>
37
+ .tiny-slider-container {
38
+ margin-top: 50px;
39
+ }
40
+ </style>
@@ -39,3 +39,9 @@ export default {
39
39
  }
40
40
  }
41
41
  </script>
42
+
43
+ <style scoped>
44
+ .tiny-slider-container {
45
+ margin-top: 50px;
46
+ }
47
+ </style>
@@ -12,3 +12,9 @@ import { Slider as TinySlider } from '@opentiny/vue'
12
12
 
13
13
  const value = ref(40)
14
14
  </script>
15
+
16
+ <style scoped>
17
+ .tiny-slider-container {
18
+ margin-top: 50px;
19
+ }
20
+ </style>
@@ -20,3 +20,9 @@ export default {
20
20
  }
21
21
  }
22
22
  </script>
23
+
24
+ <style scoped>
25
+ .tiny-slider-container {
26
+ margin-top: 50px;
27
+ }
28
+ </style>
@@ -8,3 +8,9 @@ import { Slider as TinySlider } from '@opentiny/vue'
8
8
 
9
9
  const value = ref(30)
10
10
  </script>
11
+
12
+ <style scoped>
13
+ .tiny-slider-container {
14
+ margin-top: 50px;
15
+ }
16
+ </style>
@@ -16,3 +16,9 @@ export default {
16
16
  }
17
17
  }
18
18
  </script>
19
+
20
+ <style scoped>
21
+ .tiny-slider-container {
22
+ margin-top: 50px;
23
+ }
24
+ </style>
@@ -0,0 +1,20 @@
1
+ <template>
2
+ <tiny-switch>
3
+ <template #active-icon>
4
+ <TinyIconArrowLeft />
5
+ </template>
6
+ <template #inactive-icon>
7
+ <TinyIconArrowRight />
8
+ </template>
9
+ </tiny-switch>
10
+ </template>
11
+
12
+ <script setup>
13
+ import { Switch } from '@opentiny/vue'
14
+ import { IconArrowLeft, IconArrowRight } from '@opentiny/vue-icon'
15
+
16
+ const TinyIconArrowLeft = IconArrowLeft()
17
+ const TinyIconArrowRight = IconArrowRight()
18
+
19
+ const TinySwitch = Switch
20
+ </script>
@@ -0,0 +1,15 @@
1
+ import { test, expect } from '@playwright/test'
2
+
3
+ test('自定义开关图标', async ({ page }) => {
4
+ page.on('pageerror', (exception) => expect(exception).toBeNull())
5
+ await page.goto('switch#custom-open-close-icon')
6
+
7
+ const demo = page.locator('#custom-open-close-icon')
8
+ const switchContainer = demo.locator('.tiny-switch')
9
+
10
+ const switchBtn = switchContainer.locator('.tiny-switch__button').first()
11
+
12
+ const switchIcon = switchBtn.locator('.tiny-svg').first()
13
+
14
+ await expect(switchIcon).not.toBeNull()
15
+ })
@@ -0,0 +1,23 @@
1
+ <template>
2
+ <tiny-switch>
3
+ <template #active-icon>
4
+ <TinyIconArrowLeft />
5
+ </template>
6
+ <template #inactive-icon>
7
+ <TinyIconArrowRight />
8
+ </template>
9
+ </tiny-switch>
10
+ </template>
11
+
12
+ <script>
13
+ import { Switch } from '@opentiny/vue'
14
+ import { IconArrowLeft, IconArrowRight } from '@opentiny/vue-icon'
15
+
16
+ export default {
17
+ components: {
18
+ TinySwitch: Switch,
19
+ TinyIconArrowLeft: IconArrowLeft(),
20
+ TinyIconArrowRight: IconArrowRight()
21
+ }
22
+ }
23
+ </script>
@@ -79,6 +79,19 @@ export default {
79
79
  },
80
80
  codeFiles: ['dynamic-disable.vue']
81
81
  },
82
+ {
83
+ demoId: 'custom-open-close-icon',
84
+ name: {
85
+ 'zh-CN': '自定义开关图标',
86
+ 'en-US': 'Custom switch icon'
87
+ },
88
+ desc: {
89
+ 'zh-CN': '<p>通过具名插槽 <code>active-icon</code> 和 <code>inactive-icon</code> 自定义开关图标。</p>',
90
+ 'en-US':
91
+ '<p>Customize switch icons through named slots<code>active icon</code>and<code>inactive icon</code> .</p>'
92
+ },
93
+ codeFiles: ['custom-open-close-icon.vue']
94
+ },
82
95
  {
83
96
  demoId: 'event-change',
84
97
  name: {
@@ -16,7 +16,7 @@ import { Tabs as TinyTabs, TabItem as TinyTabItem } from '@opentiny/vue'
16
16
  const activeName = ref('second')
17
17
  </script>
18
18
 
19
- <style>
19
+ <style scoped>
20
20
  .pc-demo .tiny-tabs__content {
21
21
  line-height: 2;
22
22
  }
@@ -25,7 +25,7 @@ export default {
25
25
  }
26
26
  </script>
27
27
 
28
- <style>
28
+ <style scoped>
29
29
  .pc-demo .tiny-tabs__content {
30
30
  line-height: 2;
31
31
  }
@@ -0,0 +1,31 @@
1
+ <template>
2
+ <div>
3
+ <tiny-tabs v-model="activeName" size="small">
4
+ <tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
5
+ </tiny-tabs>
6
+ <tiny-tabs v-model="activeName" separator size="small">
7
+ <tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
8
+ </tiny-tabs>
9
+ <tiny-tabs v-model="activeName" tab-style="button-card" size="small">
10
+ <tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
11
+ </tiny-tabs>
12
+ </div>
13
+ </template>
14
+
15
+ <script setup lang="jsx">
16
+ import { ref, reactive } from 'vue'
17
+ import { Tabs as TinyTabs, TabItem as TinyTabItem } from '@opentiny/vue'
18
+
19
+ const activeName = ref('1')
20
+ const Tabs = reactive([])
21
+
22
+ // 创建tabs
23
+ for (let i = 1; i < 5; i++) {
24
+ const title = `Tab ${i}`
25
+ Tabs.push({
26
+ title,
27
+ name: i + '',
28
+ content: `${title} content `
29
+ })
30
+ }
31
+ </script>
@@ -0,0 +1,15 @@
1
+ import { test, expect } from '@playwright/test'
2
+
3
+ test('小尺寸', async ({ page }) => {
4
+ page.on('pageerror', (exception) => expect(exception).toBeNull())
5
+ await page.goto('tabs#size')
6
+
7
+ const headerBox = page.locator('.tiny-tabs .tiny-tabs__nav-scroll')
8
+
9
+ await expect(headerBox.nth(0)).toHaveCSS('height', '40px')
10
+ await expect(headerBox.nth(0)).toHaveCSS('font-size', '16px')
11
+ await expect(headerBox.nth(1)).toHaveCSS('height', '24px')
12
+ await expect(headerBox.nth(1)).toHaveCSS('font-size', '14px')
13
+ await expect(headerBox.nth(2)).toHaveCSS('height', '24px')
14
+ await expect(headerBox.nth(2)).toHaveCSS('font-size', '12px')
15
+ })
@@ -0,0 +1,41 @@
1
+ <template>
2
+ <div>
3
+ <tiny-tabs v-model="activeName" size="small">
4
+ <tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
5
+ </tiny-tabs>
6
+ <tiny-tabs v-model="activeName" separator size="small">
7
+ <tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
8
+ </tiny-tabs>
9
+ <tiny-tabs v-model="activeName" tab-style="button-card" size="small">
10
+ <tiny-tab-item :key="item.name" v-for="item in Tabs" :title="item.title" :name="item.name"> </tiny-tab-item>
11
+ </tiny-tabs>
12
+ </div>
13
+ </template>
14
+
15
+ <script lang="jsx">
16
+ import { Tabs, TabItem } from '@opentiny/vue'
17
+
18
+ export default {
19
+ components: {
20
+ TinyTabs: Tabs,
21
+ TinyTabItem: TabItem
22
+ },
23
+ data() {
24
+ return {
25
+ activeName: '1',
26
+ Tabs: []
27
+ }
28
+ },
29
+ created() {
30
+ // 创建tabs
31
+ for (let i = 1; i < 5; i++) {
32
+ const title = `Tab ${i}`
33
+ this.Tabs.push({
34
+ title,
35
+ name: i + '',
36
+ content: `${title} content `
37
+ })
38
+ }
39
+ }
40
+ }
41
+ </script>