@varlet/cli 2.0.0-alpha.1663499244572 → 2.0.0-alpha.1664031123039

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 (229) hide show
  1. package/LICENCE +21 -21
  2. package/README.en-US.md +401 -401
  3. package/README.md +396 -396
  4. package/lib/commands/build.d.ts +1 -1
  5. package/lib/commands/build.js +67 -18
  6. package/lib/commands/changelog.d.ts +6 -6
  7. package/lib/commands/changelog.js +27 -26
  8. package/lib/commands/commitLint.d.ts +1 -1
  9. package/lib/commands/commitLint.js +21 -50
  10. package/lib/commands/compile.d.ts +7 -7
  11. package/lib/commands/compile.js +119 -43
  12. package/lib/commands/create.d.ts +8 -8
  13. package/lib/commands/create.js +166 -90
  14. package/lib/commands/dev.d.ts +5 -5
  15. package/lib/commands/dev.js +123 -44
  16. package/lib/commands/gen.d.ts +8 -8
  17. package/lib/commands/gen.js +135 -85
  18. package/lib/commands/jest.d.ts +8 -0
  19. package/lib/commands/jest.js +85 -0
  20. package/lib/commands/lint.d.ts +1 -1
  21. package/lib/commands/lint.js +123 -48
  22. package/lib/commands/preview.d.ts +1 -1
  23. package/lib/commands/preview.js +74 -23
  24. package/lib/commands/release.d.ts +5 -5
  25. package/lib/commands/release.js +270 -132
  26. package/lib/commands/vite.d.ts +3 -3
  27. package/lib/commands/vite.js +69 -20
  28. package/lib/compiler/compileModule.d.ts +5 -5
  29. package/lib/compiler/compileModule.js +190 -79
  30. package/lib/compiler/compileSFC.d.ts +2 -2
  31. package/lib/compiler/compileSFC.js +135 -86
  32. package/lib/compiler/compileScript.d.ts +17 -17
  33. package/lib/compiler/compileScript.js +194 -152
  34. package/lib/compiler/compileSiteEntry.d.ts +13 -13
  35. package/lib/compiler/compileSiteEntry.js +237 -140
  36. package/lib/compiler/compileStyle.d.ts +11 -11
  37. package/lib/compiler/compileStyle.js +91 -43
  38. package/lib/compiler/compileTemplateHighlight.d.ts +10 -10
  39. package/lib/compiler/compileTemplateHighlight.js +193 -145
  40. package/lib/compiler/compileTypes.d.ts +2 -2
  41. package/lib/compiler/compileTypes.js +85 -49
  42. package/lib/config/babel.config.d.ts +2 -2
  43. package/lib/config/babel.config.js +31 -30
  44. package/lib/config/babel.sfc.transform.d.ts +1 -1
  45. package/lib/config/babel.sfc.transform.js +18 -18
  46. package/lib/config/jest.config.d.ts +1 -0
  47. package/lib/config/jest.config.js +37 -0
  48. package/lib/config/jest.media.mock.d.ts +0 -0
  49. package/lib/config/jest.media.mock.js +2 -0
  50. package/lib/config/jest.style.mock.d.ts +0 -0
  51. package/lib/config/jest.style.mock.js +2 -0
  52. package/lib/config/varlet.config.d.ts +1 -1
  53. package/lib/config/varlet.config.js +24 -23
  54. package/lib/config/vite.config.d.ts +5 -5
  55. package/lib/config/vite.config.js +162 -157
  56. package/lib/index.d.ts +2 -2
  57. package/lib/index.js +102 -84
  58. package/lib/shared/constant.d.ts +43 -44
  59. package/lib/shared/constant.js +50 -51
  60. package/lib/shared/fsUtils.d.ts +12 -12
  61. package/lib/shared/fsUtils.js +108 -61
  62. package/lib/shared/logger.d.ts +8 -8
  63. package/lib/shared/logger.js +23 -23
  64. package/package.json +11 -11
  65. package/preset.js +3 -3
  66. package/site/components/button/Button.vue +106 -106
  67. package/site/components/button/button.less +183 -183
  68. package/site/components/button/index.ts +10 -10
  69. package/site/components/button/props.ts +78 -78
  70. package/site/components/cell/Cell.vue +54 -54
  71. package/site/components/cell/cell.less +78 -78
  72. package/site/components/cell/index.ts +10 -10
  73. package/site/components/cell/props.ts +27 -27
  74. package/site/components/code-example/CodeExample.vue +137 -137
  75. package/site/components/code-example/codeExample.less +41 -41
  76. package/site/components/code-example/index.ts +10 -10
  77. package/site/components/context/index.ts +21 -21
  78. package/site/components/context/lock.ts +92 -92
  79. package/site/components/context/zIndex.ts +20 -20
  80. package/site/components/icon/Icon.vue +75 -75
  81. package/site/components/icon/icon.less +26 -26
  82. package/site/components/icon/index.ts +10 -10
  83. package/site/components/icon/props.ts +24 -24
  84. package/site/components/loading/Loading.vue +84 -84
  85. package/site/components/loading/index.ts +10 -10
  86. package/site/components/loading/loading.less +505 -505
  87. package/site/components/loading/props.ts +42 -42
  88. package/site/components/popup/Popup.tsx +102 -102
  89. package/site/components/popup/index.ts +10 -10
  90. package/site/components/popup/popup.less +125 -125
  91. package/site/components/popup/props.ts +63 -63
  92. package/site/components/progress/Progress.vue +112 -112
  93. package/site/components/progress/index.ts +10 -10
  94. package/site/components/progress/progress.less +101 -101
  95. package/site/components/progress/props.ts +55 -55
  96. package/site/components/ripple/index.ts +188 -188
  97. package/site/components/ripple/ripple.less +20 -20
  98. package/site/components/snackbar/Snackbar.vue +41 -41
  99. package/site/components/snackbar/core.vue +132 -132
  100. package/site/components/snackbar/index.tsx +270 -270
  101. package/site/components/snackbar/props.ts +97 -97
  102. package/site/components/snackbar/snackbar.less +135 -135
  103. package/site/components/styles/common.less +64 -64
  104. package/site/components/styles/elevation.less +126 -126
  105. package/site/components/styles/var.less +27 -27
  106. package/site/components/utils/components.ts +117 -117
  107. package/site/components/utils/elements.ts +102 -102
  108. package/site/index.html +49 -49
  109. package/site/mobile/App.vue +291 -291
  110. package/site/mobile/components/AppHome.vue +134 -134
  111. package/site/mobile/components/AppType.vue +22 -22
  112. package/site/mobile/components/app-bar/AppBar.vue +65 -65
  113. package/site/mobile/components/app-bar/appBar.less +57 -57
  114. package/site/mobile/components/app-bar/index.ts +10 -10
  115. package/site/mobile/components/app-bar/props.ts +25 -25
  116. package/site/mobile/main.ts +78 -78
  117. package/site/mobile.html +41 -41
  118. package/site/module.d.ts +5 -5
  119. package/site/pc/App.vue +43 -43
  120. package/site/pc/Layout.vue +423 -423
  121. package/site/pc/components/AnimationBox.vue +33 -33
  122. package/site/pc/components/AppHeader.vue +368 -368
  123. package/site/pc/components/AppMobile.vue +60 -60
  124. package/site/pc/components/AppSidebar.vue +143 -143
  125. package/site/pc/components/LogoAnimation.vue +117 -117
  126. package/site/pc/floating.ts +9 -9
  127. package/site/pc/main.ts +100 -100
  128. package/site/pc/pages/index/index.less +176 -176
  129. package/site/pc/pages/index/index.vue +130 -130
  130. package/site/pc/pages/index/locale/en-US.ts +1 -1
  131. package/site/pc/pages/index/locale/zh-CN.ts +1 -1
  132. package/site/tsconfig.json +11 -11
  133. package/site/useProgress.ts +72 -72
  134. package/site/utils.ts +165 -167
  135. package/template/create/{tsx.ejs → [ComponentName].tsx.ejs} +13 -13
  136. package/template/create/{vue.ejs → [ComponentName].vue.ejs} +17 -17
  137. package/template/create/{less.ejs → [componentName].less.ejs} +3 -3
  138. package/template/create/__tests__/{index.spec.ejs → index.spec.js.ejs} +13 -8
  139. package/template/create/example/{index.ejs → index.vue.ejs} +15 -15
  140. package/template/create/example/locale/en-US.ts +3 -3
  141. package/template/create/example/locale/index.ts +23 -23
  142. package/template/create/example/locale/zh-CN.ts +3 -3
  143. package/template/create/{index.ejs → index.ts.ejs} +11 -12
  144. package/template/create/props.ts +1 -1
  145. package/template/generators/base/.prettierignore +14 -9
  146. package/template/generators/base/.prettierrc +5 -5
  147. package/template/generators/base/README.md +82 -82
  148. package/template/generators/base/babel.config.js +10 -10
  149. package/template/generators/base/public/logo.svg +30 -1
  150. package/template/generators/base/shims/shims-md.d.ts +4 -4
  151. package/template/generators/base/shims/shims-vue.d.ts +6 -6
  152. package/template/generators/base/tsconfig.json +13 -13
  153. package/template/generators/config/default/base/docs/home.zh-CN.md +2 -10
  154. package/template/generators/config/default/base/package.json +112 -105
  155. package/template/generators/config/default/base/types/basicComponent.d.ts +7 -7
  156. package/template/generators/config/default/base/types/button.d.ts +12 -12
  157. package/template/generators/config/default/base/types/index.d.ts +6 -6
  158. package/template/generators/config/default/base/varlet.config.js +45 -110
  159. package/template/generators/config/default/sfc/src/button/Button.vue +31 -30
  160. package/template/generators/config/default/sfc/src/button/__tests__/index.spec.js +7 -7
  161. package/template/generators/config/default/sfc/src/button/button.less +14 -14
  162. package/template/generators/config/default/sfc/src/button/docs/zh-CN.md +38 -47
  163. package/template/generators/config/default/sfc/src/button/example/BasicUse.vue +7 -7
  164. package/template/generators/config/default/sfc/src/button/example/ModifyColor.vue +7 -7
  165. package/template/generators/config/default/sfc/src/button/example/index.vue +12 -13
  166. package/template/generators/config/default/sfc/src/button/index.ts +10 -10
  167. package/template/generators/config/default/tsx/src/button/Button.tsx +29 -29
  168. package/template/generators/config/default/tsx/src/button/__tests__/index.spec.js +7 -7
  169. package/template/generators/config/default/tsx/src/button/button.less +14 -14
  170. package/template/generators/config/default/tsx/src/button/docs/zh-CN.md +38 -47
  171. package/template/generators/config/default/tsx/src/button/example/BasicUse.vue +7 -7
  172. package/template/generators/config/default/tsx/src/button/example/ModifyColor.vue +7 -7
  173. package/template/generators/config/default/tsx/src/button/example/index.vue +12 -13
  174. package/template/generators/config/default/tsx/src/button/index.ts +10 -10
  175. package/template/generators/config/i18n/base/docs/home.en-US.md +3 -11
  176. package/template/generators/config/i18n/base/docs/home.zh-CN.md +2 -10
  177. package/template/generators/config/i18n/base/package.json +112 -105
  178. package/template/generators/config/i18n/base/types/basicComponent.d.ts +7 -7
  179. package/template/generators/config/i18n/base/types/button.d.ts +12 -12
  180. package/template/generators/config/i18n/base/types/index.d.ts +7 -7
  181. package/template/generators/config/i18n/base/types/locale.d.ts +24 -24
  182. package/template/generators/config/i18n/base/varlet.config.js +47 -122
  183. package/template/generators/config/i18n/sfc/src/button/Button.vue +37 -36
  184. package/template/generators/config/i18n/sfc/src/button/__tests__/index.spec.js +7 -7
  185. package/template/generators/config/i18n/sfc/src/button/button.less +14 -14
  186. package/template/generators/config/i18n/sfc/src/button/docs/en-US.md +38 -34
  187. package/template/generators/config/i18n/sfc/src/button/docs/zh-CN.md +38 -34
  188. package/template/generators/config/i18n/sfc/src/button/example/BasicUse.vue +11 -11
  189. package/template/generators/config/i18n/sfc/src/button/example/ModifyColor.vue +11 -11
  190. package/template/generators/config/i18n/sfc/src/button/example/index.vue +16 -13
  191. package/template/generators/config/i18n/sfc/src/button/example/locale/en-US.ts +5 -5
  192. package/template/generators/config/i18n/sfc/src/button/example/locale/index.ts +23 -23
  193. package/template/generators/config/i18n/sfc/src/button/example/locale/zh-CN.ts +5 -5
  194. package/template/generators/config/i18n/sfc/src/button/index.ts +10 -10
  195. package/template/generators/config/i18n/sfc/src/locale/__tests__/index.spec.js +51 -51
  196. package/template/generators/config/i18n/sfc/src/locale/docs/en-US.md +26 -26
  197. package/template/generators/config/i18n/sfc/src/locale/docs/zh-CN.md +25 -25
  198. package/template/generators/config/i18n/sfc/src/locale/en-US.d.ts +5 -5
  199. package/template/generators/config/i18n/sfc/src/locale/en-US.ts +7 -7
  200. package/template/generators/config/i18n/sfc/src/locale/index.ts +67 -67
  201. package/template/generators/config/i18n/sfc/src/locale/zh-CN.d.ts +5 -5
  202. package/template/generators/config/i18n/sfc/src/locale/zh-CN.ts +7 -7
  203. package/template/generators/config/i18n/tsx/src/button/Button.tsx +31 -33
  204. package/template/generators/config/i18n/tsx/src/button/__tests__/index.spec.js +7 -7
  205. package/template/generators/config/i18n/tsx/src/button/button.less +14 -14
  206. package/template/generators/config/i18n/tsx/src/button/docs/en-US.md +38 -34
  207. package/template/generators/config/i18n/tsx/src/button/docs/zh-CN.md +38 -34
  208. package/template/generators/config/i18n/tsx/src/button/example/BasicUse.vue +11 -11
  209. package/template/generators/config/i18n/tsx/src/button/example/ModifyColor.vue +11 -11
  210. package/template/generators/config/i18n/tsx/src/button/example/index.vue +15 -13
  211. package/template/generators/config/i18n/tsx/src/button/example/locale/en-US.ts +5 -5
  212. package/template/generators/config/i18n/tsx/src/button/example/locale/index.ts +23 -23
  213. package/template/generators/config/i18n/tsx/src/button/example/locale/zh-CN.ts +5 -5
  214. package/template/generators/config/i18n/tsx/src/button/index.ts +10 -10
  215. package/template/generators/config/i18n/tsx/src/locale/__tests__/index.spec.js +51 -51
  216. package/template/generators/config/i18n/tsx/src/locale/docs/en-US.md +26 -26
  217. package/template/generators/config/i18n/tsx/src/locale/docs/zh-CN.md +25 -25
  218. package/template/generators/config/i18n/tsx/src/locale/en-US.d.ts +5 -5
  219. package/template/generators/config/i18n/tsx/src/locale/en-US.ts +7 -7
  220. package/template/generators/config/i18n/tsx/src/locale/index.ts +67 -67
  221. package/template/generators/config/i18n/tsx/src/locale/zh-CN.d.ts +5 -5
  222. package/template/generators/config/i18n/tsx/src/locale/zh-CN.ts +7 -7
  223. package/tsconfig.json +14 -15
  224. package/varlet.default.config.js +3 -3
  225. package/lib/commands/test.d.ts +0 -7
  226. package/lib/commands/test.js +0 -26
  227. package/lib/config/vitest.config.d.ts +0 -2
  228. package/lib/config/vitest.config.js +0 -28
  229. package/template/generators/base/public/highlight.css +0 -1
@@ -1,112 +1,112 @@
1
- <template>
2
- <div :class="n()">
3
- <div :class="n('linear')" v-if="mode === 'linear'">
4
- <div :class="n('linear-block')" :style="{ height: toSizeUnit(lineWidth) }" v-bind="$attrs">
5
- <div :class="n('linear-background')" v-if="track" :style="{ background: trackColor }"></div>
6
- <div
7
- :class="classes(n('linear-certain'), [ripple, n('linear-ripple')])"
8
- :style="{ background: color, width: linearProps.width }"
9
- ></div>
10
- </div>
11
- <div :class="n('linear-label')" v-bind="$attrs" v-if="label">
12
- <slot>
13
- {{ linearProps.roundValue }}
14
- </slot>
15
- </div>
16
- </div>
17
-
18
- <div :class="n('circle')" v-if="mode === 'circle'" :style="{ width: toSizeUnit(size), height: toSizeUnit(size) }">
19
- <svg :class="n('circle-svg')" :style="{ transform: `rotate(${rotate - 90}deg)` }" :viewBox="circleProps.viewBox">
20
- <circle
21
- v-if="track"
22
- :class="n('circle-background')"
23
- :cx="multiplySizeUnit(size, 0.5)"
24
- :cy="multiplySizeUnit(size, 0.5)"
25
- :r="circleProps.radius"
26
- fill="transparent"
27
- :stroke-width="toSizeUnit(lineWidth)"
28
- :style="{
29
- strokeDasharray: circleProps.perimeter,
30
- stroke: trackColor,
31
- }"
32
- ></circle>
33
- <circle
34
- :class="n('circle-certain')"
35
- :cx="multiplySizeUnit(size, 0.5)"
36
- :cy="multiplySizeUnit(size, 0.5)"
37
- :r="circleProps.radius"
38
- fill="transparent"
39
- :stroke-width="toSizeUnit(lineWidth)"
40
- :style="{
41
- strokeDasharray: circleProps.strokeDasharray,
42
- stroke: color,
43
- }"
44
- ></circle>
45
- </svg>
46
-
47
- <div :class="n('circle-label')" v-if="label" v-bind="$attrs">
48
- <slot>
49
- {{ circleProps.roundValue }}
50
- </slot>
51
- </div>
52
- </div>
53
- </div>
54
- </template>
55
-
56
- <script lang="ts">
57
- import { defineComponent, computed } from 'vue'
58
- import { props } from './props'
59
- import { toNumber } from '@varlet/shared'
60
- import { toSizeUnit, multiplySizeUnit, toPxNum } from '../utils/elements'
61
- import { createNamespace } from '../utils/components'
62
-
63
- const { n, classes } = createNamespace('progress')
64
-
65
- export default defineComponent({
66
- name: 'VarProgress',
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 ${toPxNum(size)} ${toPxNum(size)}`
84
- const roundValue = toNumber(value) > 100 ? 100 : Math.round(toNumber(value))
85
- const radius = (toPxNum(size) - toPxNum(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
- n,
99
- classes,
100
- toSizeUnit,
101
- multiplySizeUnit,
102
- linearProps,
103
- circleProps,
104
- }
105
- },
106
- })
107
- </script>
108
-
109
- <style lang="less">
110
- @import '../styles/common';
111
- @import './progress';
112
- </style>
1
+ <template>
2
+ <div :class="n()">
3
+ <div :class="n('linear')" v-if="mode === 'linear'">
4
+ <div :class="n('linear-block')" :style="{ height: toSizeUnit(lineWidth) }" v-bind="$attrs">
5
+ <div :class="n('linear-background')" v-if="track" :style="{ background: trackColor }"></div>
6
+ <div
7
+ :class="classes(n('linear-certain'), [ripple, n('linear-ripple')])"
8
+ :style="{ background: color, width: linearProps.width }"
9
+ ></div>
10
+ </div>
11
+ <div :class="n('linear-label')" v-bind="$attrs" v-if="label">
12
+ <slot>
13
+ {{ linearProps.roundValue }}
14
+ </slot>
15
+ </div>
16
+ </div>
17
+
18
+ <div :class="n('circle')" v-if="mode === 'circle'" :style="{ width: toSizeUnit(size), height: toSizeUnit(size) }">
19
+ <svg :class="n('circle-svg')" :style="{ transform: `rotate(${rotate - 90}deg)` }" :viewBox="circleProps.viewBox">
20
+ <circle
21
+ v-if="track"
22
+ :class="n('circle-background')"
23
+ :cx="multiplySizeUnit(size, 0.5)"
24
+ :cy="multiplySizeUnit(size, 0.5)"
25
+ :r="circleProps.radius"
26
+ fill="transparent"
27
+ :stroke-width="toSizeUnit(lineWidth)"
28
+ :style="{
29
+ strokeDasharray: circleProps.perimeter,
30
+ stroke: trackColor,
31
+ }"
32
+ ></circle>
33
+ <circle
34
+ :class="n('circle-certain')"
35
+ :cx="multiplySizeUnit(size, 0.5)"
36
+ :cy="multiplySizeUnit(size, 0.5)"
37
+ :r="circleProps.radius"
38
+ fill="transparent"
39
+ :stroke-width="toSizeUnit(lineWidth)"
40
+ :style="{
41
+ strokeDasharray: circleProps.strokeDasharray,
42
+ stroke: color,
43
+ }"
44
+ ></circle>
45
+ </svg>
46
+
47
+ <div :class="n('circle-label')" v-if="label" v-bind="$attrs">
48
+ <slot>
49
+ {{ circleProps.roundValue }}
50
+ </slot>
51
+ </div>
52
+ </div>
53
+ </div>
54
+ </template>
55
+
56
+ <script lang="ts">
57
+ import { defineComponent, computed } from 'vue'
58
+ import { props } from './props'
59
+ import { toNumber } from '@varlet/shared'
60
+ import { toSizeUnit, multiplySizeUnit, toPxNum } from '../utils/elements'
61
+ import { createNamespace } from '../utils/components'
62
+
63
+ const { n, classes } = createNamespace('progress')
64
+
65
+ export default defineComponent({
66
+ name: 'VarProgress',
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 ${toPxNum(size)} ${toPxNum(size)}`
84
+ const roundValue = toNumber(value) > 100 ? 100 : Math.round(toNumber(value))
85
+ const radius = (toPxNum(size) - toPxNum(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
+ n,
99
+ classes,
100
+ toSizeUnit,
101
+ multiplySizeUnit,
102
+ linearProps,
103
+ circleProps,
104
+ }
105
+ },
106
+ })
107
+ </script>
108
+
109
+ <style lang="less">
110
+ @import '../styles/common';
111
+ @import './progress';
112
+ </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,101 +1,101 @@
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(--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
- height: 4px;
26
- }
27
-
28
- &-background,
29
- &-certain {
30
- width: 100%;
31
- height: 100%;
32
- }
33
-
34
- &-ripple {
35
- &::after {
36
- position: absolute;
37
- width: 0;
38
- background-color: var(--site-progress-ripple-color);
39
- height: 100%;
40
- opacity: 0;
41
- animation: ripple 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
42
- content: '';
43
- }
44
- }
45
-
46
- &-background {
47
- background-color: var(--site-progress-track-color);
48
- }
49
-
50
- &-certain {
51
- position: absolute;
52
- background-color: var(--site-progress-background);
53
- top: 0;
54
- left: 0;
55
- transition: all 0.2s, background-color 0.8s;
56
- }
57
-
58
- &-label {
59
- margin-left: 8px;
60
- flex: 0;
61
- }
62
-
63
- @keyframes ripple {
64
- 0% {
65
- width: 0;
66
- opacity: 0.1;
67
- }
68
- 20% {
69
- width: 0;
70
- opacity: 0.5;
71
- }
72
- 80% {
73
- width: 100%;
74
- opacity: 0;
75
- }
76
- }
77
- }
78
-
79
- &__circle {
80
- position: relative;
81
- width: 40px;
82
- height: 40px;
83
-
84
- &-background {
85
- stroke: var(--site-progress-track-color);
86
- }
87
-
88
- &-certain {
89
- transition: all 0.2s;
90
- stroke: var(--site-progress-background);
91
- position: absolute;
92
- }
93
-
94
- &-label {
95
- position: absolute;
96
- left: 50%;
97
- top: 50%;
98
- transform: translate(-50%, -50%);
99
- }
100
- }
101
- }
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(--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
+ height: 4px;
26
+ }
27
+
28
+ &-background,
29
+ &-certain {
30
+ width: 100%;
31
+ height: 100%;
32
+ }
33
+
34
+ &-ripple {
35
+ &::after {
36
+ position: absolute;
37
+ width: 0;
38
+ background-color: var(--site-progress-ripple-color);
39
+ height: 100%;
40
+ opacity: 0;
41
+ animation: ripple 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite;
42
+ content: '';
43
+ }
44
+ }
45
+
46
+ &-background {
47
+ background-color: var(--site-progress-track-color);
48
+ }
49
+
50
+ &-certain {
51
+ position: absolute;
52
+ background-color: var(--site-progress-background);
53
+ top: 0;
54
+ left: 0;
55
+ transition: all 0.2s, background-color 0.8s;
56
+ }
57
+
58
+ &-label {
59
+ margin-left: 8px;
60
+ flex: 0;
61
+ }
62
+
63
+ @keyframes ripple {
64
+ 0% {
65
+ width: 0;
66
+ opacity: 0.1;
67
+ }
68
+ 20% {
69
+ width: 0;
70
+ opacity: 0.5;
71
+ }
72
+ 80% {
73
+ width: 100%;
74
+ opacity: 0;
75
+ }
76
+ }
77
+ }
78
+
79
+ &__circle {
80
+ position: relative;
81
+ width: 40px;
82
+ height: 40px;
83
+
84
+ &-background {
85
+ stroke: var(--site-progress-track-color);
86
+ }
87
+
88
+ &-certain {
89
+ transition: all 0.2s;
90
+ stroke: var(--site-progress-background);
91
+ position: absolute;
92
+ }
93
+
94
+ &-label {
95
+ position: absolute;
96
+ left: 50%;
97
+ top: 50%;
98
+ transform: translate(-50%, -50%);
99
+ }
100
+ }
101
+ }
@@ -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, String],
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, String],
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
+ }