@tendaui/components 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (245) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +176 -0
  3. package/alert/Alert.tsx +147 -0
  4. package/alert/defaultProps.ts +3 -0
  5. package/alert/index.ts +9 -0
  6. package/alert/style/css.js +1 -0
  7. package/alert/style/index.js +1 -0
  8. package/alert/type.ts +44 -0
  9. package/badge/Badge.tsx +85 -0
  10. package/badge/defaultProps.ts +10 -0
  11. package/badge/index.ts +9 -0
  12. package/badge/style/css.js +1 -0
  13. package/badge/style/index.js +1 -0
  14. package/badge/type.ts +51 -0
  15. package/button/Button.tsx +95 -0
  16. package/button/defaultProps.ts +13 -0
  17. package/button/index.ts +7 -0
  18. package/button/style/css.js +1 -0
  19. package/button/style/index.js +1 -0
  20. package/button/type.ts +82 -0
  21. package/checkbox/Checkbox.tsx +19 -0
  22. package/checkbox/CheckboxGroup.tsx +207 -0
  23. package/checkbox/defaultProps.ts +14 -0
  24. package/checkbox/index.ts +10 -0
  25. package/checkbox/style/css.js +1 -0
  26. package/checkbox/style/index.js +1 -0
  27. package/checkbox/type.ts +117 -0
  28. package/common/Check.tsx +131 -0
  29. package/common/FakeArrow.tsx +36 -0
  30. package/common/PluginContainer.tsx +21 -0
  31. package/common/Portal.tsx +67 -0
  32. package/common.ts +76 -0
  33. package/config-provider/ConfigContext.tsx +21 -0
  34. package/config-provider/ConfigProvider.tsx +53 -0
  35. package/config-provider/index.ts +9 -0
  36. package/config-provider/type.ts +1062 -0
  37. package/dialog/Dialog.tsx +254 -0
  38. package/dialog/DialogCard.tsx +152 -0
  39. package/dialog/defaultProps.ts +25 -0
  40. package/dialog/hooks/useDialogDrag.ts +50 -0
  41. package/dialog/hooks/useDialogEsc.ts +31 -0
  42. package/dialog/hooks/useDialogPosition.ts +36 -0
  43. package/dialog/hooks/useLockStyle.ts +54 -0
  44. package/dialog/index.ts +13 -0
  45. package/dialog/plugin.tsx +78 -0
  46. package/dialog/style/css.js +1 -0
  47. package/dialog/style/index.js +1 -0
  48. package/dialog/type.ts +241 -0
  49. package/dialog/utils.ts +4 -0
  50. package/form/Form.tsx +136 -0
  51. package/form/FormContext.tsx +64 -0
  52. package/form/FormItem.tsx +554 -0
  53. package/form/FormList.tsx +303 -0
  54. package/form/const.ts +6 -0
  55. package/form/defaultProps.ts +26 -0
  56. package/form/formModel.ts +117 -0
  57. package/form/hooks/interface.ts +20 -0
  58. package/form/hooks/useForm.ts +122 -0
  59. package/form/hooks/useFormItemInitialData.ts +95 -0
  60. package/form/hooks/useFormItemStyle.tsx +122 -0
  61. package/form/hooks/useInstance.tsx +275 -0
  62. package/form/hooks/useWatch.ts +42 -0
  63. package/form/index.ts +11 -0
  64. package/form/style/css.js +1 -0
  65. package/form/style/index.js +1 -0
  66. package/form/type.ts +519 -0
  67. package/form/utils/index.ts +69 -0
  68. package/hooks/useAttach.ts +24 -0
  69. package/hooks/useCommonClassName.ts +45 -0
  70. package/hooks/useConfig.ts +3 -0
  71. package/hooks/useControlled.ts +39 -0
  72. package/hooks/useDefaultProps.ts +16 -0
  73. package/hooks/useDomCallback.ts +13 -0
  74. package/hooks/useDomRefCallback.ts +12 -0
  75. package/hooks/useDragSorter.tsx +151 -0
  76. package/hooks/useEventCallback.ts +47 -0
  77. package/hooks/useGlobalConfig.ts +14 -0
  78. package/hooks/useGlobalIcon.ts +14 -0
  79. package/hooks/useLastest.ts +13 -0
  80. package/hooks/useLayoutEffect.ts +7 -0
  81. package/hooks/useMouseEvent.ts +142 -0
  82. package/hooks/useMutationObserver.ts +56 -0
  83. package/hooks/usePopper.ts +189 -0
  84. package/hooks/useRipple.ts +0 -0
  85. package/hooks/useSetState.ts +25 -0
  86. package/hooks/useVirtualScroll.ts +246 -0
  87. package/hooks/useWindowSize.ts +31 -0
  88. package/index.ts +70 -0
  89. package/input/Input.tsx +383 -0
  90. package/input/InputGroup.tsx +29 -0
  91. package/input/defaultProps.ts +22 -0
  92. package/input/index.ts +11 -0
  93. package/input/style/css.js +1 -0
  94. package/input/style/index.js +1 -0
  95. package/input/type.ts +219 -0
  96. package/loading/Gradient.tsx +36 -0
  97. package/loading/Loading.tsx +169 -0
  98. package/loading/circleAdapter.ts +44 -0
  99. package/loading/defaultProps.ts +12 -0
  100. package/loading/index.ts +13 -0
  101. package/loading/style/css.js +1 -0
  102. package/loading/style/index.js +1 -0
  103. package/loading/type.ts +71 -0
  104. package/loading/utils/setStyle.ts +13 -0
  105. package/myform/index.ts +0 -0
  106. package/notification/Notify.ts +24 -0
  107. package/notification/NotifyContainer.tsx +90 -0
  108. package/notification/NotifyContext.tsx +173 -0
  109. package/notification/NotifyItem.tsx +121 -0
  110. package/notification/index.ts +3 -0
  111. package/notification/style/css.js +1 -0
  112. package/notification/style/index.js +1 -0
  113. package/notification/type.ts +23 -0
  114. package/package.json +52 -0
  115. package/popup/Popup.tsx +264 -0
  116. package/popup/defaultProps.ts +13 -0
  117. package/popup/hooks/useTrigger.ts +276 -0
  118. package/popup/index.ts +6 -0
  119. package/popup/style/css.js +1 -0
  120. package/popup/style/index.js +1 -0
  121. package/popup/type.ts +130 -0
  122. package/portal/Portal.tsx +63 -0
  123. package/portal/index.ts +1 -0
  124. package/select/Option.tsx +162 -0
  125. package/select/OptionGroup.tsx +30 -0
  126. package/select/PopupContent.tsx +271 -0
  127. package/select/Select.tsx +586 -0
  128. package/select/defaultProps.ts +27 -0
  129. package/select/hooks/useOptions.ts +120 -0
  130. package/select/hooks/usePanelVirtualScroll.ts +111 -0
  131. package/select/index.ts +9 -0
  132. package/select/style/css.js +1 -0
  133. package/select/style/index.js +2 -0
  134. package/select/type.ts +382 -0
  135. package/select/utils/helper.ts +256 -0
  136. package/select-input/SelectInput.tsx +98 -0
  137. package/select-input/defaultProps.ts +15 -0
  138. package/select-input/hook/useMultiple.tsx +100 -0
  139. package/select-input/hook/useOverlayInnerStyle.ts +84 -0
  140. package/select-input/hook/useSingle.tsx +112 -0
  141. package/select-input/index.ts +6 -0
  142. package/select-input/interface.ts +18 -0
  143. package/select-input/style/css.js +1 -0
  144. package/select-input/style/index.js +1 -0
  145. package/select-input/type.ts +280 -0
  146. package/space/defaultProps.ts +0 -0
  147. package/space/index.ts +0 -0
  148. package/space/type.ts +0 -0
  149. package/style/index.js +2 -0
  150. package/styles/_global.scss +39 -0
  151. package/styles/_vars.scss +386 -0
  152. package/styles/components/alert/_index.scss +175 -0
  153. package/styles/components/alert/_vars.scss +39 -0
  154. package/styles/components/badge/_index.scss +70 -0
  155. package/styles/components/badge/_vars.scss +25 -0
  156. package/styles/components/button/_index.scss +511 -0
  157. package/styles/components/button/_mixins.scss +39 -0
  158. package/styles/components/button/_vars.scss +122 -0
  159. package/styles/components/checkbox/_index.scss +158 -0
  160. package/styles/components/checkbox/_mixin.scss +0 -0
  161. package/styles/components/checkbox/_var.scss +60 -0
  162. package/styles/components/dialog/_animate.scss +135 -0
  163. package/styles/components/dialog/_index.scss +311 -0
  164. package/styles/components/dialog/_mixins.scss +0 -0
  165. package/styles/components/dialog/_vars.scss +59 -0
  166. package/styles/components/form/_index.scss +174 -0
  167. package/styles/components/form/_mixins.scss +76 -0
  168. package/styles/components/form/_vars.scss +100 -0
  169. package/styles/components/input/_index.scss +349 -0
  170. package/styles/components/input/_map.scss +0 -0
  171. package/styles/components/input/_mixins.scss +116 -0
  172. package/styles/components/input/_vars.scss +134 -0
  173. package/styles/components/loading/_index.scss +112 -0
  174. package/styles/components/loading/_vars.scss +39 -0
  175. package/styles/components/notification/_index.scss +160 -0
  176. package/styles/components/notification/_mixins.scss +12 -0
  177. package/styles/components/notification/_vars.scss +59 -0
  178. package/styles/components/popup/_index.scss +82 -0
  179. package/styles/components/popup/_mixin.scss +149 -0
  180. package/styles/components/popup/_var.scss +31 -0
  181. package/styles/components/select/_index.scss +290 -0
  182. package/styles/components/select/_var.scss +65 -0
  183. package/styles/components/select-input/_index.scss +5 -0
  184. package/styles/components/select-input/_var.scss +3 -0
  185. package/styles/components/switch/_index.scss +279 -0
  186. package/styles/components/switch/_mixins.scss +0 -0
  187. package/styles/components/switch/_vars.scss +61 -0
  188. package/styles/components/tag/_index.scss +316 -0
  189. package/styles/components/tag/_var.scss +85 -0
  190. package/styles/components/tag-input/_index.scss +163 -0
  191. package/styles/components/tag-input/_vars.scss +16 -0
  192. package/styles/globals.css +250 -0
  193. package/styles/mixins/_focus.scss +7 -0
  194. package/styles/mixins/_layout.scss +32 -0
  195. package/styles/mixins/_reset.scss +10 -0
  196. package/styles/mixins/_scrollbar.scss +31 -0
  197. package/styles/mixins/_text.scss +48 -0
  198. package/styles/rillple.css +16 -0
  199. package/styles/scrollbar.css +42 -0
  200. package/styles/themes/_dark.scss +191 -0
  201. package/styles/themes/_font.scss +79 -0
  202. package/styles/themes/_index.scss +5 -0
  203. package/styles/themes/_light.scss +190 -0
  204. package/styles/themes/_radius.scss +9 -0
  205. package/styles/themes/_size.scss +68 -0
  206. package/styles/themes.css +66 -0
  207. package/styles/utilities/_animation.scss +57 -0
  208. package/styles/utilities/_tips.scss +9 -0
  209. package/switch/Switch.tsx +120 -0
  210. package/switch/defaultProps.ts +3 -0
  211. package/switch/index.ts +7 -0
  212. package/switch/style/css.js +1 -0
  213. package/switch/style/index.js +1 -0
  214. package/switch/type.ts +46 -0
  215. package/tag/Tag.tsx +149 -0
  216. package/tag/defaultProps.ts +19 -0
  217. package/tag/index.ts +8 -0
  218. package/tag/style/css.js +1 -0
  219. package/tag/style/index.js +1 -0
  220. package/tag/type.ts +170 -0
  221. package/tag-input/TagInput.tsx +215 -0
  222. package/tag-input/defaultProps.ts +15 -0
  223. package/tag-input/hooks/useHover.ts +28 -0
  224. package/tag-input/hooks/useTagList.tsx +131 -0
  225. package/tag-input/hooks/useTagScroll.ts +105 -0
  226. package/tag-input/index.ts +9 -0
  227. package/tag-input/style/css.js +1 -0
  228. package/tag-input/style/index.js +1 -0
  229. package/tag-input/type.ts +224 -0
  230. package/tag-input/useTagList.tsx +131 -0
  231. package/utils/composeRefs.ts +14 -0
  232. package/utils/dom.ts +29 -0
  233. package/utils/forwardRefWithStatics.ts +12 -0
  234. package/utils/getScrollbarWidth.ts +11 -0
  235. package/utils/helper.ts +161 -0
  236. package/utils/isFragment.ts +22 -0
  237. package/utils/listener.ts +37 -0
  238. package/utils/noop.ts +3 -0
  239. package/utils/parentTNode.ts +38 -0
  240. package/utils/parseTNode.ts +38 -0
  241. package/utils/react-render.ts +108 -0
  242. package/utils/ref.ts +6 -0
  243. package/utils/refs.ts +81 -0
  244. package/utils/style.ts +60 -0
  245. package/utils/transition.ts +28 -0
@@ -0,0 +1,386 @@
1
+ // 公共前缀
2
+ $prefix: t;
3
+
4
+ // 颜色色板
5
+
6
+ $brand-color-1: var(--td-brand-color-1);
7
+ $brand-color-2: var(--td-brand-color-2);
8
+ $brand-color-3: var(--td-brand-color-3);
9
+ $brand-color-4: var(--td-brand-color-4);
10
+ $brand-color-5: var(--td-brand-color-5);
11
+ $brand-color-6: var(--td-brand-color-6);
12
+ $brand-color-7: var(--td-brand-color-7);
13
+ $brand-color-8: var(--td-brand-color-8);
14
+ $brand-color-9: var(--td-brand-color-9);
15
+ $brand-color-10: var(--td-brand-color-10);
16
+
17
+ $warning-color-1: var(--td-warning-color-1);
18
+ $warning-color-2: var(--td-warning-color-2);
19
+ $warning-color-3: var(--td-warning-color-3);
20
+ $warning-color-4: var(--td-warning-color-4);
21
+ $warning-color-5: var(--td-warning-color-5);
22
+ $warning-color-6: var(--td-warning-color-6);
23
+ $warning-color-7: var(--td-warning-color-7);
24
+ $warning-color-8: var(--td-warning-color-8);
25
+ $warning-color-9: var(--td-warning-color-9);
26
+ $warning-color-10: var(--td-warning-color-10);
27
+
28
+ $error-color-1: var(--td-error-color-1);
29
+ $error-color-2: var(--td-error-color-2);
30
+ $error-color-3: var(--td-error-color-3);
31
+ $error-color-4: var(--td-error-color-4);
32
+ $error-color-5: var(--td-error-color-5);
33
+ $error-color-6: var(--td-error-color-6);
34
+ $error-color-7: var(--td-error-color-7);
35
+ $error-color-8: var(--td-error-color-8);
36
+ $error-color-9: var(--td-error-color-9);
37
+ $error-color-10: var(--td-error-color-10);
38
+
39
+ $success-color-1: var(--td-success-color-1);
40
+ $success-color-2: var(--td-success-color-2);
41
+ $success-color-3: var(--td-success-color-3);
42
+ $success-color-4: var(--td-success-color-4);
43
+ $success-color-5: var(--td-success-color-5);
44
+ $success-color-6: var(--td-success-color-6);
45
+ $success-color-7: var(--td-success-color-7);
46
+ $success-color-8: var(--td-success-color-8);
47
+ $success-color-9: var(--td-success-color-9);
48
+ $success-color-10: var(--td-success-color-10);
49
+
50
+ $gray-color-1: var(--td-gray-color-1);
51
+ $gray-color-2: var(--td-gray-color-2);
52
+ $gray-color-3: var(--td-gray-color-3);
53
+ $gray-color-4: var(--td-gray-color-4);
54
+ $gray-color-5: var(--td-gray-color-5);
55
+ $gray-color-6: var(--td-gray-color-6);
56
+ $gray-color-7: var(--td-gray-color-7);
57
+ $gray-color-8: var(--td-gray-color-8);
58
+ $gray-color-9: var(--td-gray-color-9);
59
+ $gray-color-10: var(--td-gray-color-10);
60
+ $gray-color-11: var(--td-gray-color-11);
61
+ $gray-color-12: var(--td-gray-color-12);
62
+ $gray-color-13: var(--td-gray-color-13);
63
+ $gray-color-14: var(--td-gray-color-14);
64
+
65
+ // 文字 & 图标 颜色
66
+ $font-white-1: var(--td-font-white-1);
67
+ $font-white-2: var(--td-font-white-2);
68
+ $font-white-3: var(--td-font-white-3);
69
+ $font-white-4: var(--td-font-white-4);
70
+
71
+ $font-gray-1: var(--td-font-gray-1);
72
+ $font-gray-2: var(--td-font-gray-2);
73
+ $font-gray-3: var(--td-font-gray-3);
74
+ $font-gray-4: var(--td-font-gray-4);
75
+
76
+ // 基础颜色
77
+ $brand-color: var(--td-brand-color); // 色彩-品牌-可操作
78
+ $warning-color: var(--td-warning-color); // 色彩-功能-警告
79
+ $error-color: var(--td-error-color); // 色彩-功能-失败
80
+ $success-color: var(--td-success-color); // 色彩-功能-成功
81
+
82
+ // 基础颜色的扩展 用于 hover / 聚焦 / 禁用 / 点击 等状态
83
+ $brand-color-hover: var(--td-brand-color-hover); // hover态
84
+ $brand-color-focus: var(--td-brand-color-focus); // focus态,包括鼠标和键盘
85
+ $brand-color-active: var(--td-brand-color-active); // 点击态
86
+ $brand-color-disabled: var(--td-brand-color-disabled); // 禁用态
87
+ $brand-color-light: var(--td-brand-color-light); // 浅色的选中态
88
+ $brand-color-light-hover: var(--td-brand-color-light-hover);
89
+
90
+ // 警告色扩展
91
+ $warning-color-hover: var(--td-warning-color-hover);
92
+ $warning-color-focus: var(--td-warning-color-focus);
93
+ $warning-color-active: var(--td-warning-color-active);
94
+ $warning-color-disabled: var(--td-warning-color-disabled);
95
+ $warning-color-light: var(--td-warning-color-light);
96
+ $warning-color-light-hover: var(--td-warning-color-light-hover);
97
+
98
+ // 失败/错误色扩展
99
+ $error-color-hover: var(--td-error-color-hover);
100
+ $error-color-focus: var(--td-error-color-focus);
101
+ $error-color-active: var(--td-error-color-active);
102
+ $error-color-disabled: var(--td-error-color-disabled);
103
+ $error-color-light: var(--td-error-color-light);
104
+ $error-color-light-hover: var(--td-error-color-light-hover);
105
+
106
+ // 成功色扩展
107
+ $success-color-hover: var(--td-success-color-hover);
108
+ $success-color-focus: var(--td-success-color-focus);
109
+ $success-color-active: var(--td-success-color-active);
110
+ $success-color-disabled: var(--td-success-color-disabled);
111
+ $success-color-light: var(--td-success-color-light);
112
+ $success-color-light-hover: var(--td-success-color-light-hover);
113
+
114
+ // 遮罩
115
+ $mask-active: var(--td-mask-active); // 遮罩-弹出
116
+ $mask-disabled: var(--td-mask-disabled); // 遮罩-禁用
117
+ $mask-bg: var(--td-mask-background); // 二维码遮罩
118
+
119
+ // 背景色
120
+ $bg-color-page: var(--td-bg-color-page); // 色彩 - page
121
+ $bg-color-container: var(--td-bg-color-container); // 色彩 - 容器
122
+ $bg-color-container-hover: var(
123
+ --td-bg-color-container-hover
124
+ ); // 色彩 - 容器 - hover
125
+ $bg-color-container-active: var(
126
+ --td-bg-color-container-active
127
+ ); // 色彩 - 容器 - active
128
+ $bg-color-container-select: var(
129
+ --td-bg-color-container-select
130
+ ); // 色彩 - 容器 - select
131
+
132
+ $bg-color-secondarycontainer: var(
133
+ --td-bg-color-secondarycontainer
134
+ ); // 色彩 - 次级容器
135
+ $bg-color-secondarycontainer-hover: var(
136
+ --td-bg-color-secondarycontainer-hover
137
+ ); // 色彩 - 次级容器 - hover
138
+ $bg-color-secondarycontainer-active: var(
139
+ --td-bg-color-secondarycontainer-active
140
+ ); // 色彩 - 次级容器 - active
141
+
142
+ $bg-color-component: var(--td-bg-color-component); // 色彩 - 组件
143
+ $bg-color-component-hover: var(
144
+ --td-bg-color-component-hover
145
+ ); // 色彩 - 组件 - hover
146
+ $bg-color-component-active: var(
147
+ --td-bg-color-component-active
148
+ ); // 色彩 - 组件 - active
149
+
150
+ $bg-color-secondarycomponent: var(
151
+ --td-bg-color-secondarycomponent
152
+ ); // 色彩 - 次级组件
153
+ $bg-color-secondarycomponent-hover: var(
154
+ --td-bg-color-secondarycomponent-hover
155
+ ); // 色彩 - 次级组件 - hover
156
+ $bg-color-secondarycomponent-active: var(
157
+ --td-bg-color-secondarycomponent-active
158
+ ); // 色彩 - 次级组件 - active
159
+
160
+ $bg-color-component-disabled: var(
161
+ --td-bg-color-component-disabled
162
+ ); // 色彩 - 组件 - disabled
163
+
164
+ // TODO: 考虑是否在组件内部做判断,不增加额外变量
165
+ // 特殊组件背景色,目前只用于 button、input 组件多主题场景,浅色主题下固定为白色,深色主题下为 transparent 适配背景颜色
166
+ $bg-color-specialcomponent: var(--td-bg-color-specialcomponent);
167
+
168
+ // 文本颜色
169
+ $text-color-primary: var(--td-text-color-primary); // 色彩-文字-主要
170
+ $text-color-secondary: var(--td-text-color-secondary); // 色彩-文字-次要
171
+ $text-color-placeholder: var(
172
+ --td-text-color-placeholder
173
+ ); // 色彩-文字-占位符/说明
174
+ $text-color-disabled: var(--td-text-color-disabled); // 色彩-文字-禁用
175
+ $text-color-anti: var(--td-text-color-anti); // 色彩-文字-反色
176
+ $text-color-brand: var(--td-text-color-brand); // 色彩-文字-品牌
177
+ $text-color-link: var(--td-text-color-link); // 色彩-文字-链接
178
+
179
+ // 分割线
180
+ $border-level-1-color: var(--td-border-level-1-color);
181
+ $component-stroke: var(--td-component-stroke);
182
+ // 边框
183
+ $border-level-2-color: var(--td-border-level-2-color);
184
+ $component-border: var(--td-component-border);
185
+
186
+ // shadow
187
+
188
+ // 基础/下层 投影 hover 使用的组件包括:表格 /
189
+ $shadow-1: var(--td-shadow-1);
190
+ // 中层投影 下拉 使用的组件包括:下拉菜单 / 气泡确认框 / 选择器 /
191
+ $shadow-2: var(--td-shadow-2);
192
+ // 上层投影(警示/弹窗)使用的组件包括:全局提示 / 消息通知
193
+ $shadow-3: var(--td-shadow-3);
194
+
195
+ // 内投影 用于弹窗类组件(气泡确认框 / 全局提示 / 消息通知)的内描边
196
+ $shadow-inset-top: var(--td-shadow-inset-top);
197
+ $shadow-inset-right: var(--td-shadow-inset-right);
198
+ $shadow-inset-bottom: var(--td-shadow-inset-bottom);
199
+ $shadow-inset-left: var(--td-shadow-inset-left);
200
+ $shadow-inset:
201
+ $shadow-inset-top, $shadow-inset-right, $shadow-inset-bottom,
202
+ $shadow-inset-left;
203
+
204
+ // 融合阴影
205
+ $shadow-2-inset: $shadow-2, $shadow-inset;
206
+ $shadow-3-inset: $shadow-3, $shadow-inset;
207
+
208
+ $size-1: var(--td-size-1);
209
+ $size-2: var(--td-size-2);
210
+ $size-3: var(--td-size-3);
211
+ $size-4: var(--td-size-4);
212
+ $size-5: var(--td-size-5);
213
+ $size-6: var(--td-size-6);
214
+ $size-7: var(--td-size-7);
215
+ $size-8: var(--td-size-8);
216
+ $size-9: var(--td-size-9);
217
+ $size-10: var(--td-size-10);
218
+ $size-11: var(--td-size-11);
219
+ $size-12: var(--td-size-12);
220
+ $size-13: var(--td-size-13);
221
+ $size-14: var(--td-size-14);
222
+ $size-15: var(--td-size-15);
223
+ $size-16: var(--td-size-16);
224
+
225
+ // component 组件尺寸高度相关 token
226
+ $comp-size-xxxs: var(--td-comp-size-xxxs);
227
+ $comp-size-xxs: var(--td-comp-size-xxs);
228
+ $comp-size-xs: var(--td-comp-size-xs);
229
+ $comp-size-s: var(--td-comp-size-s);
230
+ $comp-size-m: var(--td-comp-size-m);
231
+ $comp-size-l: var(--td-comp-size-l);
232
+ $comp-size-xl: var(--td-comp-size-xl);
233
+ $comp-size-xxl: var(--td-comp-size-xxl);
234
+ $comp-size-xxxl: var(--td-comp-size-xxxl);
235
+ $comp-size-xxxxl: var(--td-comp-size-xxxxl);
236
+ $comp-size-xxxxxl: var(--td-comp-size-xxxxxl);
237
+
238
+ // popup 弹出层整体边距 token
239
+ $pop-padding-s: var(--td-pop-padding-s);
240
+ $pop-padding-m: var(--td-pop-padding-m);
241
+ $pop-padding-l: var(--td-pop-padding-l);
242
+ $pop-padding-xl: var(--td-pop-padding-xl);
243
+ $pop-padding-xxl: var(--td-pop-padding-xxl);
244
+
245
+ // component 组件左右边距 token
246
+ $comp-paddingLR-xxs: var(--td-comp-paddingLR-xxs);
247
+ $comp-paddingLR-xs: var(--td-comp-paddingLR-xs);
248
+ $comp-paddingLR-s: var(--td-comp-paddingLR-s);
249
+ $comp-paddingLR-m: var(--td-comp-paddingLR-m);
250
+ $comp-paddingLR-l: var(--td-comp-paddingLR-l);
251
+ $comp-paddingLR-xl: var(--td-comp-paddingLR-xl);
252
+ $comp-paddingLR-xxl: var(--td-comp-paddingLR-xxl);
253
+
254
+ // component 组件上下边距 token
255
+ $comp-paddingTB-xxs: var(--td-comp-paddingTB-xxs);
256
+ $comp-paddingTB-xs: var(--td-comp-paddingTB-xs);
257
+ $comp-paddingTB-s: var(--td-comp-paddingTB-s);
258
+ $comp-paddingTB-m: var(--td-comp-paddingTB-m);
259
+ $comp-paddingTB-l: var(--td-comp-paddingTB-l);
260
+ $comp-paddingTB-xl: var(--td-comp-paddingTB-xl);
261
+ $comp-paddingTB-xxl: var(--td-comp-paddingTB-xxl);
262
+
263
+ // component 组件间距 token
264
+ $comp-margin-xxs: var(--td-comp-margin-xxs);
265
+ $comp-margin-xs: var(--td-comp-margin-xs);
266
+ $comp-margin-s: var(--td-comp-margin-s);
267
+ $comp-margin-m: var(--td-comp-margin-m);
268
+ $comp-margin-l: var(--td-comp-margin-l);
269
+ $comp-margin-xl: var(--td-comp-margin-xl);
270
+ $comp-margin-xxl: var(--td-comp-margin-xxl);
271
+ $comp-margin-xxxl: var(--td-comp-margin-xxxl);
272
+ $comp-margin-xxxxl: var(--td-comp-margin-xxxxl);
273
+
274
+ // Spacer 【deprecated】
275
+ $spacer: 8px;
276
+ $spacer-s: $spacer * 0.5; // 间距-4
277
+ $spacer-m: $spacer * 0.75; // 间距-6
278
+ $spacer-l: $spacer * 1.5; // 间距-12
279
+ $spacer-1: $spacer; // 间距-8
280
+ $spacer-2: $spacer * 2; // 间距-16
281
+ $spacer-3: $spacer * 3; // 间距-24
282
+ $spacer-4: $spacer * 4; // 间距-32
283
+ $spacer-5: $spacer * 5; // 间距-大-40
284
+ $spacer-6: $spacer * 6; // 间距-大-48
285
+ $spacer-7: $spacer * 7; // 间距-大-48
286
+ $spacer-8: $spacer * 8; // 间距-大-48
287
+ $spacer-9: $spacer * 9; // 间距-大-48
288
+ $spacer-10: $spacer * 10; // 间距-大-80
289
+
290
+ $text-line-height-s: var(--td-line-height-body-small);
291
+ $text-line-height-base: var(--td-line-height-body-medium);
292
+ $text-line-height-l: var(--td-line-height-body-large);
293
+ $text-line-height-xl: var(--td-line-height-title-large);
294
+ $text-line-height-xxl: var(--td-line-height-headline-large);
295
+
296
+ // Font
297
+ $font-size: 10px;
298
+ $font-size-s: var(--td-font-size-body-small);
299
+ $font-size-base: var(--td-font-size-body-medium);
300
+ $font-size-l: var(--td-font-size-body-large);
301
+ $font-size-xl: var(--td-font-size-title-large);
302
+ $font-size-xxl: var(--td-font-size-headline-large);
303
+
304
+ $font-family: var(--td-font-family); // 字体-磅数-常规
305
+ $font-family-medium: var(--td-font-family-medium); // 字体-磅数-粗体
306
+
307
+ // 使用以下与Design Token对应的font token开发组件对应字体、行高
308
+ $font-link-small: var(--td-font-link-small);
309
+ $font-link-medium: var(--td-font-link-medium);
310
+ $font-link-large: var(--td-font-link-large);
311
+ $font-mark-small: var(--td-font-mark-small);
312
+ $font-mark-medium: var(--td-font-mark-medium);
313
+ $font-body-small: var(--td-font-body-small);
314
+ $font-body-medium: var(--td-font-body-medium);
315
+ $font-body-large: var(--td-font-body-large);
316
+ $font-title-small: var(--td-font-title-small);
317
+ $font-title-medium: var(--td-font-title-medium);
318
+ $font-title-large: var(--td-font-title-large);
319
+ $font-title-extraLarge: var(--td-font-title-extraLarge);
320
+ $font-headline-small: var(--td-font-headline-small);
321
+ $font-headline-medium: var(--td-font-headline-medium);
322
+ $font-headline-large: var(--td-font-headline-large);
323
+ $font-display-medium: var(--td-font-display-medium);
324
+ $font-display-large: var(--td-font-display-large);
325
+
326
+ // Border Radius
327
+ $border-radius-small: var(--td-radius-small); // 圆角-2
328
+ $border-radius-default: var(--td-radius-default); // 圆角-3
329
+ $border-radius-medium: var(--td-radius-medium); // 圆角-6
330
+ $border-radius-large: var(--td-radius-large); // 圆角-9
331
+ $border-radius-extraLarge: var(--td-radius-extraLarge); // 圆角-12
332
+ $border-radius-round: var(--td-radius-round); // 圆角-999
333
+ $border-radius-circle: var(--td-radius-circle); // 圆角-全圆角
334
+
335
+ // 表单相关
336
+ $form-height: 30px;
337
+ $form-text-color: $text-color-primary;
338
+ $form-bg-color: $bg-color-container;
339
+ $form-border-color: $border-level-2-color;
340
+
341
+ // 图标尺寸
342
+ $icon-default: 16px;
343
+ $icon-l: 24px;
344
+
345
+ // 滚动条颜色
346
+ $scrollbar-color: var(--td-scrollbar-color);
347
+ // 滚动条悬浮颜色
348
+ $scrollbar-hover-color: var(--td-scrollbar-hover-color);
349
+ // 滚动条轨道颜色
350
+ $scroll-track-color: var(--td-scroll-track-color);
351
+
352
+ // 响应式断点
353
+ $screen-xs: 320px;
354
+ $screen-xs-min: $screen-xs;
355
+ $screen-sm: 768px;
356
+ $screen-sm-min: $screen-sm;
357
+ $screen-md: 992px;
358
+ $screen-md-min: $screen-md;
359
+ $screen-lg: 1200px;
360
+ $screen-lg-min: $screen-lg;
361
+ $screen-xl: 1400px;
362
+ $screen-xl-min: $screen-xl;
363
+ $screen-xxl: 1880px;
364
+ $screen-xxl-min: $screen-xxl;
365
+
366
+ // 动画
367
+ $anim-time-fn-easing: cubic-bezier(0.38, 0, 0.24, 1);
368
+ $anim-time-fn-ease-out: cubic-bezier(0, 0, 0.15, 1);
369
+ $anim-time-fn-ease-in: cubic-bezier(0.82, 0, 1, 0.9);
370
+ $anim-duration-base: 0.2s;
371
+ $anim-duration-moderate: 0.24s;
372
+ $anim-duration-slow: 0.28s;
373
+
374
+ // 统一管理各组件层级关系
375
+ $z-index-back-top: 300;
376
+ $z-index-affix: 500;
377
+ $z-index-drawer: 1500;
378
+ $z-index-dialog: 2500;
379
+ $z-index-image-viewer: 3000;
380
+ $z-index-loading: 3500;
381
+ $z-index-message: 5000;
382
+ $z-index-Popup: 5500;
383
+ $z-index-Tooltip: 5600;
384
+ $z-index-Notification: 6000;
385
+ $z-index-dragging: 6500;
386
+ $z-index-guide: 999999;
@@ -0,0 +1,175 @@
1
+ // 组件允许单个组件打包,因此默认引入公共基础样式
2
+
3
+ @import '../../_vars.scss';
4
+
5
+ @import './_vars.scss';
6
+
7
+ @import '../../mixins/_reset.scss';
8
+
9
+ /* Alert */
10
+ .#{$prefix}-alert {
11
+ @include reset;
12
+
13
+ display: flex;
14
+ align-items: flex-start;
15
+ padding: $alert-padding;
16
+ opacity: 1;
17
+ transition: opacity 0.2s;
18
+ border-radius: $border-radius-medium;
19
+
20
+ &.#{$prefix}-is-hidden {
21
+ /* 隐藏 */
22
+ display: none;
23
+ }
24
+
25
+ &--closing {
26
+ opacity: 0;
27
+ }
28
+
29
+ &--info {
30
+ background-color: $alert-info-bg-color;
31
+
32
+ .#{$prefix}-alert__icon {
33
+ color: $alert-info-icon-color;
34
+ }
35
+
36
+ .#{$prefix}-alert__swiper-trigger-wrap {
37
+ color: $alert-info-trigger-color;
38
+ }
39
+
40
+ .#{$prefix}-alert__swiper-trigger--active {
41
+ color: $alert-info-trigger-active-color;
42
+ }
43
+ }
44
+
45
+ &--success {
46
+ background-color: $alert-success-bg-color;
47
+
48
+ .#{$prefix}-alert__icon {
49
+ color: $alert-success-icon-color;
50
+ }
51
+
52
+ .#{$prefix}-alert__swiper-trigger-wrap {
53
+ color: $alert-success-trigger-color;
54
+ }
55
+
56
+ .#{$prefix}-alert__swiper-trigger--active {
57
+ color: $alert-success-trigger-active-color;
58
+ }
59
+ }
60
+
61
+ &--warning {
62
+ background-color: $alert-warning-bg-color;
63
+
64
+ .#{$prefix}-alert__icon {
65
+ color: $alert-warning-icon-color;
66
+ }
67
+
68
+ .#{$prefix}-alert__swiper-trigger-wrap {
69
+ color: $alert-warning-trigger-color;
70
+ }
71
+
72
+ .#{$prefix}-alert__swiper-trigger--active {
73
+ color: $alert-warning-trigger-active-color;
74
+ }
75
+ }
76
+
77
+ &--error {
78
+ background-color: $alert-error-bg-color;
79
+
80
+ .#{$prefix}-alert__icon {
81
+ color: $alert-error-icon-color;
82
+ }
83
+
84
+ .#{$prefix}-alert__swiper-trigger-wrap {
85
+ color: $alert-error-trigger-color;
86
+ }
87
+
88
+ .#{$prefix}-alert__swiper-trigger--active {
89
+ color: $alert-error-trigger-active-color;
90
+ }
91
+ }
92
+ }
93
+
94
+ .#{$prefix}-alert__icon {
95
+ font-size: $alert-icon-size;
96
+ display: inherit;
97
+ }
98
+
99
+ .#{$prefix}-alert__icon,
100
+ .#{$prefix}-alert__close {
101
+ flex: 0 0 auto;
102
+ line-height: $text-line-height-s;
103
+ }
104
+
105
+ .#{$prefix}-alert__content {
106
+ flex: 1 1 0;
107
+ font-size: $alert-font-size;
108
+ line-height: $alert-line-height;
109
+ overflow: hidden;
110
+ }
111
+
112
+ .#{$prefix}-alert__title,
113
+ .#{$prefix}-alert__message {
114
+ width: 100%;
115
+ display: flex;
116
+ }
117
+
118
+ .#{$prefix}-alert__title {
119
+ color: $alert-title-color;
120
+ font-weight: bold;
121
+
122
+ + .#{$prefix}-alert__message {
123
+ margin-top: $alert-description-margin-top;
124
+ }
125
+ }
126
+
127
+ .#{$prefix}-alert__description {
128
+ color: $alert-description-color;
129
+ flex: 0 1 auto;
130
+ transition: height $anim-duration-base;
131
+ }
132
+
133
+ .#{$prefix}-alert__operation {
134
+ flex: 0 0 auto;
135
+ padding: $alert-operation-padding;
136
+ color: $brand-color;
137
+ cursor: pointer;
138
+ transition: color $anim-duration-base;
139
+
140
+ &:hover {
141
+ color: $brand-color-hover;
142
+ }
143
+
144
+ &:active {
145
+ color: $brand-color-active;
146
+ }
147
+ }
148
+
149
+ .#{$prefix}-alert__icon + .#{$prefix}-alert__content {
150
+ margin-left: $alert-margin-left;
151
+ }
152
+
153
+ .#{$prefix}-alert__collapse {
154
+ margin-top: $alert-collapse-margin-top;
155
+ color: $brand-color;
156
+ cursor: pointer;
157
+ }
158
+
159
+ .#{$prefix}-alert__close {
160
+ display: inline-flex;
161
+ align-items: center;
162
+ margin-left: $alert-close-margin-left;
163
+ color: $alert-close-color;
164
+ cursor: pointer;
165
+ transition: color $anim-duration-base;
166
+
167
+ &:hover {
168
+ color: $alert-close-color-hover;
169
+ }
170
+
171
+ > .t-icon {
172
+ font-size: $alert-close-size;
173
+ padding: $alert-close-padding;
174
+ }
175
+ }
@@ -0,0 +1,39 @@
1
+ $alert-success-bg-color: $success-color-focus;
2
+ $alert-info-bg-color: $brand-color-focus;
3
+ $alert-warning-bg-color: $warning-color-focus;
4
+ $alert-error-bg-color: $error-color-focus;
5
+ $alert-title-color: $text-color-primary;
6
+ $alert-description-color: $text-color-secondary;
7
+
8
+ $alert-success-icon-color: $success-color;
9
+ $alert-info-icon-color: $brand-color;
10
+ $alert-warning-icon-color: $warning-color;
11
+ $alert-error-icon-color: $error-color;
12
+
13
+ $alert-close-color: $text-color-secondary;
14
+ $alert-close-color-hover: $text-color-primary;
15
+
16
+ $alert-success-trigger-color: $success-color-focus;
17
+ $alert-info-trigger-color: $brand-color;
18
+ $alert-warning-trigger-color: $warning-color-focus;
19
+ $alert-error-trigger-color: $error-color-focus;
20
+
21
+ $alert-success-trigger-active-color: $success-color;
22
+ $alert-info-trigger-active-color: $brand-color;
23
+ $alert-warning-trigger-active-color: $warning-color;
24
+ $alert-error-trigger-active-color: $error-color;
25
+
26
+ // size
27
+ $alert-font-size: $font-size-base;
28
+ $alert-line-height: $text-line-height-base;
29
+ $alert-icon-size: $alert-line-height;
30
+ $alert-close-size: calc($alert-line-height - 2px);
31
+
32
+ // 间距
33
+ $alert-padding: $comp-paddingTB-l $comp-paddingLR-xl;
34
+ $alert-operation-padding: 0 $comp-paddingLR-s;
35
+ $alert-margin-left: $comp-margin-s;
36
+ $alert-close-margin-left: $comp-margin-l;
37
+ $alert-close-padding: calc(($alert-line-height - $alert-close-size) / 2 ) 0;
38
+ $alert-description-margin-top: $comp-margin-s;
39
+ $alert-collapse-margin-top: $comp-margin-s;
@@ -0,0 +1,70 @@
1
+ // 组件允许单个组件打包,因此默认引入公共基础样式.#{$prefix}
2
+
3
+ @import '../../_vars.scss';
4
+
5
+ @import './_vars.scss';
6
+
7
+ @import '../../mixins/_reset.scss';
8
+
9
+ // Badge
10
+ .#{$prefix}-badge {
11
+ @include reset;
12
+
13
+ position: relative;
14
+ display: inline-block;
15
+
16
+ &--dot,
17
+ &--circle,
18
+ &--round {
19
+ position: absolute;
20
+ top: 0;
21
+ right: 0;
22
+ color: $badge-text-color;
23
+ text-align: center;
24
+ font: $badge-font;
25
+ transform: translate(50%, -50%);
26
+ transform-origin: 100% 0;
27
+ box-sizing: content-box;
28
+ }
29
+
30
+ &--static {
31
+ position: static;
32
+ display: inline-block;
33
+ transform: none;
34
+ }
35
+
36
+ &--dot {
37
+ right: 1px;
38
+ margin-top: 1px;
39
+ width: $badge-dot-size;
40
+ height: $badge-dot-size;
41
+ border-radius: $border-radius-circle;
42
+ background-color: $badge-color;
43
+ }
44
+
45
+ &--circle,
46
+ &--round {
47
+ padding-right: $badge-padding;
48
+ padding-left: $badge-padding;
49
+ min-width: $badge-min-width;
50
+ height: $badge-height;
51
+ background-color: $badge-color;
52
+ line-height: $badge-height;
53
+
54
+ &.#{$prefix}-size-s {
55
+ padding-right: $badge-padding-s;
56
+ padding-left: $badge-padding-s;
57
+ min-width: $badge-min-width;
58
+ height: $badge-height-s;
59
+ line-height: $badge-height-s;
60
+ }
61
+ }
62
+
63
+ &--circle {
64
+ border-radius: $badge-shape-circle;
65
+ }
66
+
67
+ &--round {
68
+ border-radius: $badge-shape-round;
69
+ }
70
+ }
@@ -0,0 +1,25 @@
1
+ $badge-text-color: $text-color-anti;
2
+ $badge-color: $error-color;
3
+
4
+ // 尺寸
5
+ // 默认尺寸 circle/round 高度
6
+ $badge-height: $comp-size-xxs;
7
+ // 小尺寸 circle/round 高度
8
+ $badge-height-s: $comp-size-xxxs;
9
+ // dot 宽/高
10
+ $badge-dot-size: 6px;
11
+ // $badge-status-size: 6px;
12
+ $badge-min-width: 8px;
13
+
14
+ // 字体
15
+ $badge-font: $font-body-small;
16
+
17
+ // 间距
18
+ // 默认尺寸circle/round 左右padding
19
+ $badge-padding: calc(($badge-height - $badge-min-width) / 2);
20
+ // 小尺寸circle/round 左右padding
21
+ $badge-padding-s: calc(($badge-height-s - $badge-min-width) / 2);
22
+
23
+ //边框
24
+ $badge-shape-circle: calc($badge-height / 2);
25
+ $badge-shape-round: $border-radius-default;