@varlet/cli 1.27.16 → 1.27.17-alpha.1656907860130

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 (210) hide show
  1. package/LICENCE +21 -21
  2. package/README.en-US.md +401 -401
  3. package/README.md +396 -396
  4. package/generators/base/.prettierignore +9 -9
  5. package/generators/base/.prettierrc +5 -5
  6. package/generators/base/README.md +82 -82
  7. package/generators/base/babel.config.js +10 -10
  8. package/generators/base/public/highlight.css +1 -1
  9. package/generators/base/public/logo.svg +1 -1
  10. package/generators/base/shims/shims-md.d.ts +4 -4
  11. package/generators/base/shims/shims-vue.d.ts +6 -6
  12. package/generators/base/tsconfig.json +13 -13
  13. package/generators/config/default/base/docs/home.zh-CN.md +10 -10
  14. package/generators/config/default/base/package.json +1 -0
  15. package/generators/config/default/base/types/basicComponent.d.ts +7 -7
  16. package/generators/config/default/base/types/button.d.ts +12 -12
  17. package/generators/config/default/base/types/index.d.ts +6 -6
  18. package/generators/config/default/base/varlet.config.js +110 -110
  19. package/generators/config/default/sfc/src/button/Button.vue +30 -30
  20. package/generators/config/default/sfc/src/button/__tests__/index.spec.js +7 -7
  21. package/generators/config/default/sfc/src/button/button.less +14 -14
  22. package/generators/config/default/sfc/src/button/docs/zh-CN.md +47 -47
  23. package/generators/config/default/sfc/src/button/example/BasicUse.vue +7 -7
  24. package/generators/config/default/sfc/src/button/example/ModifyColor.vue +7 -7
  25. package/generators/config/default/sfc/src/button/example/index.vue +13 -13
  26. package/generators/config/default/sfc/src/button/index.ts +10 -10
  27. package/generators/config/default/tsx/src/button/Button.tsx +31 -31
  28. package/generators/config/default/tsx/src/button/__tests__/index.spec.js +7 -7
  29. package/generators/config/default/tsx/src/button/button.less +14 -14
  30. package/generators/config/default/tsx/src/button/docs/zh-CN.md +47 -47
  31. package/generators/config/default/tsx/src/button/example/BasicUse.vue +7 -7
  32. package/generators/config/default/tsx/src/button/example/ModifyColor.vue +7 -7
  33. package/generators/config/default/tsx/src/button/example/index.vue +13 -13
  34. package/generators/config/default/tsx/src/button/index.ts +10 -10
  35. package/generators/config/i18n/base/docs/home.en-US.md +11 -11
  36. package/generators/config/i18n/base/docs/home.zh-CN.md +10 -10
  37. package/generators/config/i18n/base/package.json +1 -0
  38. package/generators/config/i18n/base/types/basicComponent.d.ts +7 -7
  39. package/generators/config/i18n/base/types/button.d.ts +12 -12
  40. package/generators/config/i18n/base/types/index.d.ts +7 -7
  41. package/generators/config/i18n/base/types/locale.d.ts +24 -24
  42. package/generators/config/i18n/base/varlet.config.js +122 -122
  43. package/generators/config/i18n/sfc/src/button/Button.vue +36 -36
  44. package/generators/config/i18n/sfc/src/button/__tests__/index.spec.js +7 -7
  45. package/generators/config/i18n/sfc/src/button/button.less +14 -14
  46. package/generators/config/i18n/sfc/src/button/docs/en-US.md +34 -34
  47. package/generators/config/i18n/sfc/src/button/docs/zh-CN.md +34 -34
  48. package/generators/config/i18n/sfc/src/button/example/BasicUse.vue +11 -11
  49. package/generators/config/i18n/sfc/src/button/example/ModifyColor.vue +11 -11
  50. package/generators/config/i18n/sfc/src/button/example/index.vue +13 -13
  51. package/generators/config/i18n/sfc/src/button/example/locale/en-US.ts +5 -5
  52. package/generators/config/i18n/sfc/src/button/example/locale/index.ts +23 -23
  53. package/generators/config/i18n/sfc/src/button/example/locale/zh-CN.ts +5 -5
  54. package/generators/config/i18n/sfc/src/button/index.ts +10 -10
  55. package/generators/config/i18n/sfc/src/locale/__tests__/index.spec.js +51 -51
  56. package/generators/config/i18n/sfc/src/locale/docs/en-US.md +26 -26
  57. package/generators/config/i18n/sfc/src/locale/docs/zh-CN.md +25 -25
  58. package/generators/config/i18n/sfc/src/locale/en-US.d.ts +5 -5
  59. package/generators/config/i18n/sfc/src/locale/en-US.ts +7 -7
  60. package/generators/config/i18n/sfc/src/locale/index.ts +67 -67
  61. package/generators/config/i18n/sfc/src/locale/zh-CN.d.ts +5 -5
  62. package/generators/config/i18n/sfc/src/locale/zh-CN.ts +7 -7
  63. package/generators/config/i18n/tsx/src/button/Button.tsx +35 -35
  64. package/generators/config/i18n/tsx/src/button/__tests__/index.spec.js +7 -7
  65. package/generators/config/i18n/tsx/src/button/button.less +14 -14
  66. package/generators/config/i18n/tsx/src/button/docs/en-US.md +34 -34
  67. package/generators/config/i18n/tsx/src/button/docs/zh-CN.md +34 -34
  68. package/generators/config/i18n/tsx/src/button/example/BasicUse.vue +11 -11
  69. package/generators/config/i18n/tsx/src/button/example/ModifyColor.vue +11 -11
  70. package/generators/config/i18n/tsx/src/button/example/index.vue +13 -13
  71. package/generators/config/i18n/tsx/src/button/example/locale/en-US.ts +5 -5
  72. package/generators/config/i18n/tsx/src/button/example/locale/index.ts +23 -23
  73. package/generators/config/i18n/tsx/src/button/example/locale/zh-CN.ts +5 -5
  74. package/generators/config/i18n/tsx/src/button/index.ts +10 -10
  75. package/generators/config/i18n/tsx/src/locale/__tests__/index.spec.js +51 -51
  76. package/generators/config/i18n/tsx/src/locale/docs/en-US.md +26 -26
  77. package/generators/config/i18n/tsx/src/locale/docs/zh-CN.md +25 -25
  78. package/generators/config/i18n/tsx/src/locale/en-US.d.ts +5 -5
  79. package/generators/config/i18n/tsx/src/locale/en-US.ts +7 -7
  80. package/generators/config/i18n/tsx/src/locale/index.ts +67 -67
  81. package/generators/config/i18n/tsx/src/locale/zh-CN.d.ts +5 -5
  82. package/generators/config/i18n/tsx/src/locale/zh-CN.ts +7 -7
  83. package/lib/commands/build.d.ts +1 -1
  84. package/lib/commands/build.js +67 -67
  85. package/lib/commands/changelog.d.ts +6 -6
  86. package/lib/commands/changelog.js +27 -27
  87. package/lib/commands/commitLint.d.ts +1 -1
  88. package/lib/commands/commitLint.js +21 -21
  89. package/lib/commands/compile.d.ts +5 -5
  90. package/lib/commands/compile.js +119 -119
  91. package/lib/commands/create.d.ts +3 -3
  92. package/lib/commands/create.js +132 -132
  93. package/lib/commands/dev.d.ts +3 -3
  94. package/lib/commands/dev.js +123 -123
  95. package/lib/commands/gen.d.ts +1 -1
  96. package/lib/commands/gen.js +112 -112
  97. package/lib/commands/jest.d.ts +8 -8
  98. package/lib/commands/jest.js +81 -81
  99. package/lib/commands/lint.d.ts +1 -1
  100. package/lib/commands/lint.js +123 -123
  101. package/lib/commands/preview.d.ts +1 -1
  102. package/lib/commands/preview.js +74 -74
  103. package/lib/commands/release.d.ts +3 -3
  104. package/lib/commands/release.js +267 -269
  105. package/lib/compiler/compileModule.d.ts +5 -5
  106. package/lib/compiler/compileModule.js +186 -186
  107. package/lib/compiler/compileSFC.d.ts +2 -2
  108. package/lib/compiler/compileSFC.js +132 -132
  109. package/lib/compiler/compileScript.d.ts +17 -17
  110. package/lib/compiler/compileScript.js +202 -202
  111. package/lib/compiler/compileSiteEntry.d.ts +13 -13
  112. package/lib/compiler/compileSiteEntry.js +237 -237
  113. package/lib/compiler/compileStyle.d.ts +11 -11
  114. package/lib/compiler/compileStyle.js +101 -101
  115. package/lib/compiler/compileTemplateHighlight.d.ts +10 -10
  116. package/lib/compiler/compileTemplateHighlight.js +193 -193
  117. package/lib/compiler/compileTypes.d.ts +2 -2
  118. package/lib/compiler/compileTypes.js +88 -88
  119. package/lib/config/babel.config.d.ts +2 -2
  120. package/lib/config/babel.config.js +31 -31
  121. package/lib/config/babel.sfc.transform.d.ts +1 -1
  122. package/lib/config/babel.sfc.transform.js +18 -18
  123. package/lib/config/jest.config.d.ts +1 -1
  124. package/lib/config/jest.config.js +36 -36
  125. package/lib/config/jest.media.mock.js +2 -2
  126. package/lib/config/jest.style.mock.js +2 -2
  127. package/lib/config/varlet.config.d.ts +1 -1
  128. package/lib/config/varlet.config.js +24 -24
  129. package/lib/config/vite.config.d.ts +5 -5
  130. package/lib/config/vite.config.js +162 -162
  131. package/lib/index.d.ts +2 -2
  132. package/lib/index.js +83 -83
  133. package/lib/shared/constant.d.ts +43 -43
  134. package/lib/shared/constant.js +50 -50
  135. package/lib/shared/fsUtils.d.ts +12 -12
  136. package/lib/shared/fsUtils.js +108 -108
  137. package/lib/shared/logger.d.ts +7 -7
  138. package/lib/shared/logger.js +20 -20
  139. package/package.json +7 -8
  140. package/preset.js +3 -3
  141. package/site/components/button/Button.vue +84 -84
  142. package/site/components/button/button.less +183 -183
  143. package/site/components/button/index.ts +10 -10
  144. package/site/components/button/props.ts +70 -70
  145. package/site/components/cell/Cell.vue +42 -42
  146. package/site/components/cell/cell.less +74 -74
  147. package/site/components/cell/index.ts +10 -10
  148. package/site/components/cell/props.ts +27 -27
  149. package/site/components/code-example/CodeExample.vue +143 -143
  150. package/site/components/code-example/codeExample.less +41 -41
  151. package/site/components/code-example/index.ts +10 -10
  152. package/site/components/context/index.ts +17 -17
  153. package/site/components/context/lock.ts +103 -103
  154. package/site/components/context/zIndex.ts +20 -20
  155. package/site/components/icon/Icon.vue +68 -68
  156. package/site/components/icon/icon.less +26 -26
  157. package/site/components/icon/index.ts +10 -10
  158. package/site/components/icon/props.ts +24 -24
  159. package/site/components/loading/Loading.vue +55 -55
  160. package/site/components/loading/index.ts +10 -10
  161. package/site/components/loading/loading.less +420 -420
  162. package/site/components/loading/props.ts +37 -37
  163. package/site/components/progress/Progress.vue +108 -108
  164. package/site/components/progress/index.ts +10 -10
  165. package/site/components/progress/progress.less +98 -98
  166. package/site/components/progress/props.ts +55 -55
  167. package/site/components/ripple/index.ts +167 -167
  168. package/site/components/ripple/ripple.less +17 -17
  169. package/site/components/snackbar/Snackbar.vue +38 -38
  170. package/site/components/snackbar/core.vue +117 -117
  171. package/site/components/snackbar/index.tsx +270 -270
  172. package/site/components/snackbar/props.ts +94 -94
  173. package/site/components/snackbar/snackbar.less +135 -135
  174. package/site/components/styles/common.less +64 -64
  175. package/site/components/styles/elevation.less +126 -126
  176. package/site/components/styles/var.less +27 -27
  177. package/site/components/utils/components.ts +69 -69
  178. package/site/components/utils/elements.ts +85 -85
  179. package/site/index.html +49 -49
  180. package/site/mobile/App.vue +291 -291
  181. package/site/mobile/components/AppHome.vue +134 -134
  182. package/site/mobile/components/AppType.vue +22 -22
  183. package/site/mobile/components/app-bar/AppBar.vue +69 -69
  184. package/site/mobile/components/app-bar/appBar.less +56 -56
  185. package/site/mobile/components/app-bar/index.ts +10 -10
  186. package/site/mobile/components/app-bar/props.ts +25 -25
  187. package/site/mobile/components/styles/common.less +64 -64
  188. package/site/mobile/components/styles/elevation.less +126 -126
  189. package/site/mobile/components/styles/var.less +27 -27
  190. package/site/mobile/main.ts +74 -74
  191. package/site/mobile.html +41 -41
  192. package/site/module.d.ts +5 -5
  193. package/site/pc/App.vue +43 -43
  194. package/site/pc/Layout.vue +397 -397
  195. package/site/pc/components/AnimationBox.vue +45 -45
  196. package/site/pc/components/AppHeader.vue +355 -355
  197. package/site/pc/components/AppMobile.vue +54 -54
  198. package/site/pc/components/AppSidebar.vue +134 -134
  199. package/site/pc/components/LogoAnimation.vue +119 -119
  200. package/site/pc/floating.ts +9 -9
  201. package/site/pc/main.ts +94 -94
  202. package/site/pc/pages/index/index.less +194 -194
  203. package/site/pc/pages/index/index.vue +128 -125
  204. package/site/pc/pages/index/locale/en-US.ts +3 -5
  205. package/site/pc/pages/index/locale/zh-CN.ts +3 -5
  206. package/site/tsconfig.json +11 -11
  207. package/site/useProgress.ts +75 -75
  208. package/site/utils.ts +153 -153
  209. package/tsconfig.json +14 -14
  210. package/varlet.default.config.js +151 -145
@@ -1,37 +1,37 @@
1
- import type { PropType } from 'vue'
2
-
3
- export type LoadingType = 'circle' | 'wave' | 'cube' | 'rect' | 'disappear'
4
-
5
- export type LoadingSize = 'normal' | 'mini' | 'small' | 'large'
6
-
7
- export function typeValidator(type: string): boolean {
8
- return ['circle', 'wave', 'cube', 'rect', 'disappear'].includes(type)
9
- }
10
-
11
- export function sizeValidator(size: string): boolean {
12
- return ['normal', 'mini', 'small', 'large'].includes(size)
13
- }
14
-
15
- export const props = {
16
- // loading类型
17
- type: {
18
- type: String as PropType<LoadingType>,
19
- default: 'circle',
20
- validator: typeValidator,
21
- },
22
- radius: {
23
- type: [String, Number],
24
- default: 15,
25
- },
26
- // loading尺寸
27
- size: {
28
- type: String as PropType<LoadingSize>,
29
- default: 'normal',
30
- validator: sizeValidator,
31
- },
32
- // loading颜色
33
- color: {
34
- type: String,
35
- default: 'currentColor',
36
- },
37
- }
1
+ import type { PropType } from 'vue'
2
+
3
+ export type LoadingType = 'circle' | 'wave' | 'cube' | 'rect' | 'disappear'
4
+
5
+ export type LoadingSize = 'normal' | 'mini' | 'small' | 'large'
6
+
7
+ export function typeValidator(type: string): boolean {
8
+ return ['circle', 'wave', 'cube', 'rect', 'disappear'].includes(type)
9
+ }
10
+
11
+ export function sizeValidator(size: string): boolean {
12
+ return ['normal', 'mini', 'small', 'large'].includes(size)
13
+ }
14
+
15
+ export const props = {
16
+ // loading类型
17
+ type: {
18
+ type: String as PropType<LoadingType>,
19
+ default: 'circle',
20
+ validator: typeValidator,
21
+ },
22
+ radius: {
23
+ type: [String, Number],
24
+ default: 15,
25
+ },
26
+ // loading尺寸
27
+ size: {
28
+ type: String as PropType<LoadingSize>,
29
+ default: 'normal',
30
+ validator: sizeValidator,
31
+ },
32
+ // loading颜色
33
+ color: {
34
+ type: String,
35
+ default: 'currentColor',
36
+ },
37
+ }
@@ -1,108 +1,108 @@
1
- <template>
2
- <div class="var-site-progress">
3
- <div class="var-site-progress-linear" v-if="mode === 'linear'">
4
- <div class="var-site-progress-linear__block" :style="{ height: `${lineWidth}px` }" v-bind="$attrs">
5
- <div class="var-site-progress-linear__background" v-if="track" :style="{ background: trackColor }"></div>
6
- <div
7
- :class="`var-site-progress-linear__certain${ripple ? ' var-site-progress-linear__ripple' : ''}`"
8
- :style="{ background: color, width: linearProps.width }"
9
- ></div>
10
- </div>
11
- <div class="var-site-progress-linear__label" v-bind="$attrs" v-if="label">
12
- <slot>
13
- {{ linearProps.roundValue }}
14
- </slot>
15
- </div>
16
- </div>
17
-
18
- <div class="var-site-progress-circle" v-if="mode === 'circle'" :style="{ width: `${size}px`, height: `${size}px` }">
19
- <svg
20
- class="var-site-progress-circle__svg"
21
- :style="{ transform: `rotate(${rotate - 90}deg)` }"
22
- :viewBox="circleProps.viewBox"
23
- >
24
- <circle
25
- v-if="track"
26
- class="var-site-progress-circle__background"
27
- :cx="size / 2"
28
- :cy="size / 2"
29
- :r="circleProps.radius"
30
- fill="transparent"
31
- :stroke-width="lineWidth"
32
- :style="{
33
- strokeDasharray: circleProps.perimeter,
34
- stroke: trackColor,
35
- }"
36
- ></circle>
37
- <circle
38
- class="var-site-progress-circle__certain"
39
- :cx="size / 2"
40
- :cy="size / 2"
41
- :r="circleProps.radius"
42
- fill="transparent"
43
- :stroke-width="lineWidth"
44
- :style="{
45
- strokeDasharray: circleProps.strokeDasharray,
46
- stroke: color,
47
- }"
48
- ></circle>
49
- </svg>
50
-
51
- <div class="var-site-progress-circle__label" v-if="label" v-bind="$attrs">
52
- <slot>
53
- {{ circleProps.roundValue }}
54
- </slot>
55
- </div>
56
- </div>
57
- </div>
58
- </template>
59
-
60
- <script lang="ts">
61
- import { defineComponent, computed } from 'vue'
62
- import { props } from './props'
63
- import { toNumber } from '@varlet/shared'
64
-
65
- export default defineComponent({
66
- name: 'VarSiteProgress',
67
- inheritAttrs: false,
68
- props,
69
- setup(props) {
70
- const linearProps = computed(() => {
71
- const value = toNumber(props.value)
72
- const width = value > 100 ? 100 : value
73
- const roundValue = value > 100 ? 100 : Math.round(value)
74
-
75
- return {
76
- width: `${width}%`,
77
- roundValue: `${roundValue}%`,
78
- }
79
- })
80
-
81
- const circleProps = computed(() => {
82
- const { size, lineWidth, value } = props
83
- const viewBox = `0 0 ${size} ${size}`
84
- const roundValue = toNumber(value) > 100 ? 100 : Math.round(toNumber(value))
85
- const radius = (size - toNumber(lineWidth)) / 2
86
- const perimeter = 2 * Math.PI * radius
87
- const strokeDasharray = `${(roundValue / 100) * perimeter}, ${perimeter}`
88
-
89
- return {
90
- viewBox,
91
- radius,
92
- strokeDasharray,
93
- perimeter,
94
- roundValue: `${roundValue}%`,
95
- }
96
- })
97
- return {
98
- linearProps,
99
- circleProps,
100
- }
101
- },
102
- })
103
- </script>
104
-
105
- <style lang="less">
106
- @import '../styles/common';
107
- @import './progress';
108
- </style>
1
+ <template>
2
+ <div class="var-site-progress">
3
+ <div class="var-site-progress-linear" v-if="mode === 'linear'">
4
+ <div class="var-site-progress-linear__block" :style="{ height: `${lineWidth}px` }" v-bind="$attrs">
5
+ <div class="var-site-progress-linear__background" v-if="track" :style="{ background: trackColor }"></div>
6
+ <div
7
+ :class="`var-site-progress-linear__certain${ripple ? ' var-site-progress-linear__ripple' : ''}`"
8
+ :style="{ background: color, width: linearProps.width }"
9
+ ></div>
10
+ </div>
11
+ <div class="var-site-progress-linear__label" v-bind="$attrs" v-if="label">
12
+ <slot>
13
+ {{ linearProps.roundValue }}
14
+ </slot>
15
+ </div>
16
+ </div>
17
+
18
+ <div class="var-site-progress-circle" v-if="mode === 'circle'" :style="{ width: `${size}px`, height: `${size}px` }">
19
+ <svg
20
+ class="var-site-progress-circle__svg"
21
+ :style="{ transform: `rotate(${rotate - 90}deg)` }"
22
+ :viewBox="circleProps.viewBox"
23
+ >
24
+ <circle
25
+ v-if="track"
26
+ class="var-site-progress-circle__background"
27
+ :cx="size / 2"
28
+ :cy="size / 2"
29
+ :r="circleProps.radius"
30
+ fill="transparent"
31
+ :stroke-width="lineWidth"
32
+ :style="{
33
+ strokeDasharray: circleProps.perimeter,
34
+ stroke: trackColor,
35
+ }"
36
+ ></circle>
37
+ <circle
38
+ class="var-site-progress-circle__certain"
39
+ :cx="size / 2"
40
+ :cy="size / 2"
41
+ :r="circleProps.radius"
42
+ fill="transparent"
43
+ :stroke-width="lineWidth"
44
+ :style="{
45
+ strokeDasharray: circleProps.strokeDasharray,
46
+ stroke: color,
47
+ }"
48
+ ></circle>
49
+ </svg>
50
+
51
+ <div class="var-site-progress-circle__label" v-if="label" v-bind="$attrs">
52
+ <slot>
53
+ {{ circleProps.roundValue }}
54
+ </slot>
55
+ </div>
56
+ </div>
57
+ </div>
58
+ </template>
59
+
60
+ <script lang="ts">
61
+ import { defineComponent, computed } from 'vue'
62
+ import { props } from './props'
63
+ import { toNumber } from '@varlet/shared'
64
+
65
+ export default defineComponent({
66
+ name: 'VarSiteProgress',
67
+ inheritAttrs: false,
68
+ props,
69
+ setup(props) {
70
+ const linearProps = computed(() => {
71
+ const value = toNumber(props.value)
72
+ const width = value > 100 ? 100 : value
73
+ const roundValue = value > 100 ? 100 : Math.round(value)
74
+
75
+ return {
76
+ width: `${width}%`,
77
+ roundValue: `${roundValue}%`,
78
+ }
79
+ })
80
+
81
+ const circleProps = computed(() => {
82
+ const { size, lineWidth, value } = props
83
+ const viewBox = `0 0 ${size} ${size}`
84
+ const roundValue = toNumber(value) > 100 ? 100 : Math.round(toNumber(value))
85
+ const radius = (size - toNumber(lineWidth)) / 2
86
+ const perimeter = 2 * Math.PI * radius
87
+ const strokeDasharray = `${(roundValue / 100) * perimeter}, ${perimeter}`
88
+
89
+ return {
90
+ viewBox,
91
+ radius,
92
+ strokeDasharray,
93
+ perimeter,
94
+ roundValue: `${roundValue}%`,
95
+ }
96
+ })
97
+ return {
98
+ linearProps,
99
+ circleProps,
100
+ }
101
+ },
102
+ })
103
+ </script>
104
+
105
+ <style lang="less">
106
+ @import '../styles/common';
107
+ @import './progress';
108
+ </style>
@@ -1,10 +1,10 @@
1
- import type { App } from 'vue'
2
- import Progress from './Progress.vue'
3
-
4
- Progress.install = function (app: App) {
5
- app.component(Progress.name, Progress)
6
- }
7
-
8
- export const _ProgressComponent = Progress
9
-
10
- export default Progress
1
+ import type { App } from 'vue'
2
+ import Progress from './Progress.vue'
3
+
4
+ Progress.install = function (app: App) {
5
+ app.component(Progress.name, Progress)
6
+ }
7
+
8
+ export const _ProgressComponent = Progress
9
+
10
+ export default Progress
@@ -1,98 +1,98 @@
1
- @site-progress-font-size: var(--site-font-size-sm);
2
- @site-progress-ripple-color: #fff;
3
- @site-progress-track-color: #d8d8d8;
4
- @site-progress-background: var(--site-color-primary);
5
-
6
- :root {
7
- --site-progress-font-size: @site-progress-font-size;
8
- --site-progress-ripple-color: @site-progress-ripple-color;
9
- --site-progress-track-color: @site-progress-track-color;
10
- --site-progress-background: @site-progress-background;
11
- }
12
-
13
- .var-site-progress {
14
- position: relative;
15
- font-size: var(--site-progress-font-size);
16
-
17
- &-linear {
18
- display: flex;
19
- align-items: center;
20
-
21
- &__block {
22
- flex: 1;
23
- position: relative;
24
- overflow: hidden;
25
- }
26
-
27
- &__background,
28
- &__certain {
29
- width: 100%;
30
- height: 100%;
31
- }
32
-
33
- &__ripple {
34
- &::after {
35
- position: absolute;
36
- width: 0;
37
- background-color: var(--site-progress-ripple-color);
38
- height: 100%;
39
- opacity: 0;
40
- animation: ripple 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
41
- content: '';
42
- }
43
- }
44
-
45
- &__background {
46
- background-color: var(--site-progress-track-color);
47
- }
48
-
49
- &__certain {
50
- position: absolute;
51
- background-color: var(--site-progress-background);
52
- top: 0;
53
- left: 0;
54
- transition: all 0.2s, background-color 0.8s;
55
- }
56
-
57
- &__label {
58
- margin-left: 8px;
59
- flex: 0;
60
- }
61
-
62
- @keyframes ripple {
63
- 0% {
64
- width: 0;
65
- opacity: 0.1;
66
- }
67
- 20% {
68
- width: 0;
69
- opacity: 0.5;
70
- }
71
- 80% {
72
- width: 100%;
73
- opacity: 0;
74
- }
75
- }
76
- }
77
-
78
- &-circle {
79
- position: relative;
80
-
81
- &__background {
82
- stroke: var(--site-progress-track-color);
83
- }
84
-
85
- &__certain {
86
- transition: all 0.2s;
87
- stroke: var(--site-progress-background);
88
- position: absolute;
89
- }
90
-
91
- &__label {
92
- position: absolute;
93
- left: 50%;
94
- top: 50%;
95
- transform: translate(-50%, -50%);
96
- }
97
- }
98
- }
1
+ @site-progress-font-size: var(--site-font-size-sm);
2
+ @site-progress-ripple-color: #fff;
3
+ @site-progress-track-color: #d8d8d8;
4
+ @site-progress-background: var(--site-color-primary);
5
+
6
+ :root {
7
+ --site-progress-font-size: @site-progress-font-size;
8
+ --site-progress-ripple-color: @site-progress-ripple-color;
9
+ --site-progress-track-color: @site-progress-track-color;
10
+ --site-progress-background: @site-progress-background;
11
+ }
12
+
13
+ .var-site-progress {
14
+ position: relative;
15
+ font-size: var(--site-progress-font-size);
16
+
17
+ &-linear {
18
+ display: flex;
19
+ align-items: center;
20
+
21
+ &__block {
22
+ flex: 1;
23
+ position: relative;
24
+ overflow: hidden;
25
+ }
26
+
27
+ &__background,
28
+ &__certain {
29
+ width: 100%;
30
+ height: 100%;
31
+ }
32
+
33
+ &__ripple {
34
+ &::after {
35
+ position: absolute;
36
+ width: 0;
37
+ background-color: var(--site-progress-ripple-color);
38
+ height: 100%;
39
+ opacity: 0;
40
+ animation: ripple 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
41
+ content: '';
42
+ }
43
+ }
44
+
45
+ &__background {
46
+ background-color: var(--site-progress-track-color);
47
+ }
48
+
49
+ &__certain {
50
+ position: absolute;
51
+ background-color: var(--site-progress-background);
52
+ top: 0;
53
+ left: 0;
54
+ transition: all 0.2s, background-color 0.8s;
55
+ }
56
+
57
+ &__label {
58
+ margin-left: 8px;
59
+ flex: 0;
60
+ }
61
+
62
+ @keyframes ripple {
63
+ 0% {
64
+ width: 0;
65
+ opacity: 0.1;
66
+ }
67
+ 20% {
68
+ width: 0;
69
+ opacity: 0.5;
70
+ }
71
+ 80% {
72
+ width: 100%;
73
+ opacity: 0;
74
+ }
75
+ }
76
+ }
77
+
78
+ &-circle {
79
+ position: relative;
80
+
81
+ &__background {
82
+ stroke: var(--site-progress-track-color);
83
+ }
84
+
85
+ &__certain {
86
+ transition: all 0.2s;
87
+ stroke: var(--site-progress-background);
88
+ position: absolute;
89
+ }
90
+
91
+ &__label {
92
+ position: absolute;
93
+ left: 50%;
94
+ top: 50%;
95
+ transform: translate(-50%, -50%);
96
+ }
97
+ }
98
+ }
@@ -1,55 +1,55 @@
1
- function modeValidator(mode: string): boolean {
2
- return ['linear', 'circle'].includes(mode)
3
- }
4
-
5
- export const props = {
6
- // progress 模式
7
- mode: {
8
- type: String,
9
- default: 'linear',
10
- validator: modeValidator,
11
- },
12
- // progress 线宽
13
- lineWidth: {
14
- type: [Number, String],
15
- default: 4,
16
- },
17
- // progress 颜色
18
- color: {
19
- type: String,
20
- },
21
- // progress 轨道颜色
22
- trackColor: {
23
- type: String,
24
- },
25
- // 是否添加水波纹效果
26
- ripple: {
27
- type: Boolean,
28
- default: false,
29
- },
30
- // progress 值
31
- value: {
32
- type: [Number, String],
33
- default: 0,
34
- },
35
- // 是否显示label
36
- label: {
37
- type: Boolean,
38
- default: false,
39
- },
40
- // circle 的尺寸
41
- size: {
42
- type: Number,
43
- default: 40,
44
- },
45
- // circle的原点
46
- rotate: {
47
- type: Number,
48
- default: 0,
49
- },
50
- // 是否显示 circle 轨道
51
- track: {
52
- type: Boolean,
53
- default: true,
54
- },
55
- }
1
+ function modeValidator(mode: string): boolean {
2
+ return ['linear', 'circle'].includes(mode)
3
+ }
4
+
5
+ export const props = {
6
+ // progress 模式
7
+ mode: {
8
+ type: String,
9
+ default: 'linear',
10
+ validator: modeValidator,
11
+ },
12
+ // progress 线宽
13
+ lineWidth: {
14
+ type: [Number, String],
15
+ default: 4,
16
+ },
17
+ // progress 颜色
18
+ color: {
19
+ type: String,
20
+ },
21
+ // progress 轨道颜色
22
+ trackColor: {
23
+ type: String,
24
+ },
25
+ // 是否添加水波纹效果
26
+ ripple: {
27
+ type: Boolean,
28
+ default: false,
29
+ },
30
+ // progress 值
31
+ value: {
32
+ type: [Number, String],
33
+ default: 0,
34
+ },
35
+ // 是否显示label
36
+ label: {
37
+ type: Boolean,
38
+ default: false,
39
+ },
40
+ // circle 的尺寸
41
+ size: {
42
+ type: Number,
43
+ default: 40,
44
+ },
45
+ // circle的原点
46
+ rotate: {
47
+ type: Number,
48
+ default: 0,
49
+ },
50
+ // 是否显示 circle 轨道
51
+ track: {
52
+ type: Boolean,
53
+ default: true,
54
+ },
55
+ }