tntd 2.8.0-beta.3 → 2.8.0-beta.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 (257) hide show
  1. package/es/alert/alert.js +70 -0
  2. package/es/alert/alert.js.map +1 -0
  3. package/es/alert/alert.less +128 -0
  4. package/es/breadcrumb/style/index.less +2 -1
  5. package/es/button/button.less +72 -0
  6. package/es/cascader/style/index.less +2 -2
  7. package/es/checkbox/check.png +0 -0
  8. package/es/checkbox/checkbox.js +48 -0
  9. package/es/checkbox/checkbox.js.map +1 -0
  10. package/es/checkbox/checkbox.less +69 -0
  11. package/es/collapse/style/index.less +2 -1
  12. package/es/color-picker/index.less +4 -1
  13. package/es/date-picker/DatePicker.js +101 -0
  14. package/es/date-picker/DatePicker.js.map +1 -0
  15. package/es/date-picker/index.less +294 -0
  16. package/es/date-picker/style/Picker.less +2 -1
  17. package/es/drawer/index.less +154 -0
  18. package/es/drawer/style/drawer.less +4 -2
  19. package/es/dropdown/style/index.less +2 -1
  20. package/es/form/form.less +36 -0
  21. package/es/grid/RowContext.js +3 -0
  22. package/es/grid/RowContext.js.map +1 -0
  23. package/es/grid/col.js +103 -0
  24. package/es/grid/col.js.map +1 -0
  25. package/es/grid/hooks/useBreakpoint.js +18 -0
  26. package/es/grid/hooks/useBreakpoint.js.map +1 -0
  27. package/es/grid/row.js +154 -0
  28. package/es/grid/row.js.map +1 -0
  29. package/es/grid/style/rtl.less +69 -0
  30. package/es/icon/index.js +2 -1
  31. package/es/icon/index.js.map +1 -1
  32. package/es/icon/style/index.js +2 -1
  33. package/es/icon/style/index.js.map +1 -1
  34. package/es/icon/style/style.less +6 -0
  35. package/es/input/style/mixin.less +1 -1
  36. package/es/input-number/inputNumber.js +29 -0
  37. package/es/input-number/inputNumber.js.map +1 -0
  38. package/es/input-number/inputNumber.less +12 -0
  39. package/es/modal/index.less +36 -0
  40. package/es/modal/style/confirm.less +1 -1
  41. package/es/modal/style/modal.less +5 -1
  42. package/es/notification/assets/index.js +2 -0
  43. package/es/notification/assets/index.js.map +1 -0
  44. package/es/notification/assets/svg-error-tip.js +145 -0
  45. package/es/notification/assets/svg-error-tip.js.map +1 -0
  46. package/es/notification/assets/svg-success-tip.js +162 -0
  47. package/es/notification/assets/svg-success-tip.js.map +1 -0
  48. package/es/notification/notification.js +80 -0
  49. package/es/notification/notification.js.map +1 -0
  50. package/es/notification/notification.less +59 -0
  51. package/es/notification/style/index.less +4 -2
  52. package/es/popconfirm/index.less +32 -0
  53. package/es/popconfirm/popconfirm.js +43 -0
  54. package/es/popconfirm/popconfirm.js.map +1 -0
  55. package/es/popover/index.less +57 -0
  56. package/es/popover/popover.js +34 -0
  57. package/es/popover/popover.js.map +1 -0
  58. package/es/popover/style/index.less +2 -1
  59. package/es/progress/progress.js +132 -0
  60. package/es/progress/progress.js.map +1 -0
  61. package/es/progress/progress.less +82 -0
  62. package/es/query-form/Field/Composition/FieldPopover.js +284 -0
  63. package/es/query-form/Field/Composition/FieldPopover.js.map +1 -0
  64. package/es/query-form/Field/Composition/FieldPopover.less +35 -0
  65. package/es/query-form/Field/Composition/Select.js +108 -0
  66. package/es/query-form/Field/Composition/Select.js.map +1 -0
  67. package/es/query-form/Field/Composition/index.js +275 -0
  68. package/es/query-form/Field/Composition/index.js.map +1 -0
  69. package/es/query-form/Field/Composition/index.less +106 -0
  70. package/es/query-form/Field/Composition/utils.js +19 -0
  71. package/es/query-form/Field/Composition/utils.js.map +1 -0
  72. package/es/radio/radio.js +57 -0
  73. package/es/radio/radio.js.map +1 -0
  74. package/es/radio/radio.less +43 -0
  75. package/es/select/style/index.less +2 -1
  76. package/es/steps/assets/background_left.svg +12 -0
  77. package/es/steps/assets/background_right.svg +12 -0
  78. package/es/steps/assets/horizontal_line.svg +3 -0
  79. package/es/steps/assets/vertical_line.svg +3 -0
  80. package/es/steps/stepStyle/icon.less +51 -0
  81. package/es/steps/stepStyle/progress-dot.less +10 -0
  82. package/es/steps/stepStyle/variables.less +8 -0
  83. package/es/steps/stepStyle/vertical.less +41 -0
  84. package/es/style/mixins/iconfont.less +3 -2
  85. package/es/style/themes/default.less +3 -2
  86. package/es/switch/index.less +46 -0
  87. package/es/tabs/tabs.less +114 -0
  88. package/es/tag/color.less +43 -0
  89. package/es/tag/tag.js +171 -0
  90. package/es/tag/tag.js.map +1 -0
  91. package/es/tag/tag.less +193 -0
  92. package/es/time-picker/TimePicker.js +36 -0
  93. package/es/time-picker/TimePicker.js.map +1 -0
  94. package/es/time-picker/index.less +38 -0
  95. package/es/time-picker/style/index.less +2 -1
  96. package/es/timeline/style/index.less +1 -1
  97. package/es/tntd-action/Action.js +66 -0
  98. package/es/tntd-action/Action.js.map +1 -0
  99. package/es/tntd-action/index.less +53 -0
  100. package/es/tooltip/index.less +29 -0
  101. package/es/tooltip/tooltip.js +33 -0
  102. package/es/tooltip/tooltip.js.map +1 -0
  103. package/lib/alert/alert.d.ts +12 -0
  104. package/lib/alert/alert.d.ts.map +1 -0
  105. package/lib/alert/alert.js +92 -0
  106. package/lib/alert/alert.js.map +1 -0
  107. package/lib/alert/alert.less +128 -0
  108. package/lib/breadcrumb/style/index.less +2 -1
  109. package/lib/button/button.less +72 -0
  110. package/lib/cascader/style/index.less +2 -2
  111. package/lib/checkbox/check.png +0 -0
  112. package/lib/checkbox/checkbox.d.ts +16 -0
  113. package/lib/checkbox/checkbox.d.ts.map +1 -0
  114. package/lib/checkbox/checkbox.js +65 -0
  115. package/lib/checkbox/checkbox.js.map +1 -0
  116. package/lib/checkbox/checkbox.less +69 -0
  117. package/lib/collapse/style/index.less +2 -1
  118. package/lib/color-picker/index.less +4 -1
  119. package/lib/date-picker/DatePicker.d.ts +21 -0
  120. package/lib/date-picker/DatePicker.d.ts.map +1 -0
  121. package/lib/date-picker/DatePicker.js +128 -0
  122. package/lib/date-picker/DatePicker.js.map +1 -0
  123. package/lib/date-picker/index.less +294 -0
  124. package/lib/date-picker/style/Picker.less +2 -1
  125. package/lib/drawer/index.less +154 -0
  126. package/lib/drawer/style/drawer.less +4 -2
  127. package/lib/dropdown/style/index.less +2 -1
  128. package/lib/form/form.less +36 -0
  129. package/lib/grid/RowContext.d.ts +9 -0
  130. package/lib/grid/RowContext.d.ts.map +1 -0
  131. package/lib/grid/RowContext.js +9 -0
  132. package/lib/grid/RowContext.js.map +1 -0
  133. package/lib/grid/col.d.ts +29 -0
  134. package/lib/grid/col.d.ts.map +1 -0
  135. package/lib/grid/col.js +100 -0
  136. package/lib/grid/col.js.map +1 -0
  137. package/lib/grid/hooks/useBreakpoint.d.ts +4 -0
  138. package/lib/grid/hooks/useBreakpoint.d.ts.map +1 -0
  139. package/lib/grid/hooks/useBreakpoint.js +28 -0
  140. package/lib/grid/hooks/useBreakpoint.js.map +1 -0
  141. package/lib/grid/row.d.ts +21 -0
  142. package/lib/grid/row.d.ts.map +1 -0
  143. package/lib/grid/row.js +183 -0
  144. package/lib/grid/row.js.map +1 -0
  145. package/lib/grid/style/rtl.less +69 -0
  146. package/lib/icon/index.d.ts +1 -0
  147. package/lib/icon/index.d.ts.map +1 -1
  148. package/lib/icon/index.js +2 -1
  149. package/lib/icon/index.js.map +1 -1
  150. package/lib/icon/style/index.d.ts +1 -0
  151. package/lib/icon/style/index.d.ts.map +1 -1
  152. package/lib/icon/style/index.js +2 -1
  153. package/lib/icon/style/index.js.map +1 -1
  154. package/lib/icon/style/style.less +6 -0
  155. package/lib/input/style/mixin.less +1 -1
  156. package/lib/input-number/inputNumber.d.ts +10 -0
  157. package/lib/input-number/inputNumber.d.ts.map +1 -0
  158. package/lib/input-number/inputNumber.js +48 -0
  159. package/lib/input-number/inputNumber.js.map +1 -0
  160. package/lib/input-number/inputNumber.less +12 -0
  161. package/lib/modal/index.less +36 -0
  162. package/lib/modal/style/confirm.less +1 -1
  163. package/lib/modal/style/modal.less +5 -1
  164. package/lib/notification/assets/index.d.ts +3 -0
  165. package/lib/notification/assets/index.d.ts.map +1 -0
  166. package/lib/notification/assets/index.js +20 -0
  167. package/lib/notification/assets/index.js.map +1 -0
  168. package/lib/notification/assets/svg-error-tip.d.ts +4 -0
  169. package/lib/notification/assets/svg-error-tip.d.ts.map +1 -0
  170. package/lib/notification/assets/svg-error-tip.js +154 -0
  171. package/lib/notification/assets/svg-error-tip.js.map +1 -0
  172. package/lib/notification/assets/svg-success-tip.d.ts +4 -0
  173. package/lib/notification/assets/svg-success-tip.d.ts.map +1 -0
  174. package/lib/notification/assets/svg-success-tip.js +171 -0
  175. package/lib/notification/assets/svg-success-tip.js.map +1 -0
  176. package/lib/notification/notification.d.ts +9 -0
  177. package/lib/notification/notification.d.ts.map +1 -0
  178. package/lib/notification/notification.js +105 -0
  179. package/lib/notification/notification.js.map +1 -0
  180. package/lib/notification/notification.less +59 -0
  181. package/lib/notification/style/index.less +4 -2
  182. package/lib/popconfirm/index.less +32 -0
  183. package/lib/popconfirm/popconfirm.d.ts +8 -0
  184. package/lib/popconfirm/popconfirm.d.ts.map +1 -0
  185. package/lib/popconfirm/popconfirm.js +61 -0
  186. package/lib/popconfirm/popconfirm.js.map +1 -0
  187. package/lib/popover/index.less +57 -0
  188. package/lib/popover/popover.d.ts +14 -0
  189. package/lib/popover/popover.d.ts.map +1 -0
  190. package/lib/popover/popover.js +55 -0
  191. package/lib/popover/popover.js.map +1 -0
  192. package/lib/popover/style/index.less +2 -1
  193. package/lib/progress/progress.d.ts +12 -0
  194. package/lib/progress/progress.d.ts.map +1 -0
  195. package/lib/progress/progress.js +148 -0
  196. package/lib/progress/progress.js.map +1 -0
  197. package/lib/progress/progress.less +82 -0
  198. package/lib/query-form/Field/Composition/FieldPopover.d.ts +17 -0
  199. package/lib/query-form/Field/Composition/FieldPopover.d.ts.map +1 -0
  200. package/lib/query-form/Field/Composition/FieldPopover.js +319 -0
  201. package/lib/query-form/Field/Composition/FieldPopover.js.map +1 -0
  202. package/lib/query-form/Field/Composition/FieldPopover.less +35 -0
  203. package/lib/query-form/Field/Composition/Select.d.ts +4 -0
  204. package/lib/query-form/Field/Composition/Select.d.ts.map +1 -0
  205. package/lib/query-form/Field/Composition/Select.js +132 -0
  206. package/lib/query-form/Field/Composition/Select.js.map +1 -0
  207. package/lib/query-form/Field/Composition/index.d.ts +14 -0
  208. package/lib/query-form/Field/Composition/index.d.ts.map +1 -0
  209. package/lib/query-form/Field/Composition/index.js +330 -0
  210. package/lib/query-form/Field/Composition/index.js.map +1 -0
  211. package/lib/query-form/Field/Composition/index.less +106 -0
  212. package/lib/query-form/Field/Composition/utils.d.ts +6 -0
  213. package/lib/query-form/Field/Composition/utils.d.ts.map +1 -0
  214. package/lib/query-form/Field/Composition/utils.js +27 -0
  215. package/lib/query-form/Field/Composition/utils.js.map +1 -0
  216. package/lib/radio/radio.d.ts +17 -0
  217. package/lib/radio/radio.d.ts.map +1 -0
  218. package/lib/radio/radio.js +75 -0
  219. package/lib/radio/radio.js.map +1 -0
  220. package/lib/radio/radio.less +43 -0
  221. package/lib/select/style/index.less +2 -1
  222. package/lib/steps/assets/background_left.svg +12 -0
  223. package/lib/steps/assets/background_right.svg +12 -0
  224. package/lib/steps/assets/horizontal_line.svg +3 -0
  225. package/lib/steps/assets/vertical_line.svg +3 -0
  226. package/lib/steps/stepStyle/icon.less +51 -0
  227. package/lib/steps/stepStyle/progress-dot.less +10 -0
  228. package/lib/steps/stepStyle/variables.less +8 -0
  229. package/lib/steps/stepStyle/vertical.less +41 -0
  230. package/lib/style/mixins/iconfont.less +3 -2
  231. package/lib/style/themes/default.less +3 -2
  232. package/lib/switch/index.less +46 -0
  233. package/lib/tabs/tabs.less +114 -0
  234. package/lib/tag/color.less +43 -0
  235. package/lib/tag/tag.d.ts +41 -0
  236. package/lib/tag/tag.d.ts.map +1 -0
  237. package/lib/tag/tag.js +183 -0
  238. package/lib/tag/tag.js.map +1 -0
  239. package/lib/tag/tag.less +193 -0
  240. package/lib/time-picker/TimePicker.d.ts +9 -0
  241. package/lib/time-picker/TimePicker.d.ts.map +1 -0
  242. package/lib/time-picker/TimePicker.js +55 -0
  243. package/lib/time-picker/TimePicker.js.map +1 -0
  244. package/lib/time-picker/index.less +38 -0
  245. package/lib/time-picker/style/index.less +2 -1
  246. package/lib/timeline/style/index.less +1 -1
  247. package/lib/tntd-action/Action.d.ts +6 -0
  248. package/lib/tntd-action/Action.d.ts.map +1 -0
  249. package/lib/tntd-action/Action.js +86 -0
  250. package/lib/tntd-action/Action.js.map +1 -0
  251. package/lib/tntd-action/index.less +53 -0
  252. package/lib/tooltip/index.less +29 -0
  253. package/lib/tooltip/tooltip.d.ts +9 -0
  254. package/lib/tooltip/tooltip.d.ts.map +1 -0
  255. package/lib/tooltip/tooltip.js +53 -0
  256. package/lib/tooltip/tooltip.js.map +1 -0
  257. package/package.json +3 -3
@@ -0,0 +1,8 @@
1
+ @td-steps-icon-size: 40px;
2
+ @td-steps-small-icon-size: 24px;
3
+ @td-steps-title-height: 24px;
4
+ @td-steps-desc-height: 20px;
5
+ @nav-min-height: 44px;
6
+ @nav-small-min-height: 28px;
7
+ @finish-border-color: @primary-color;
8
+
@@ -0,0 +1,41 @@
1
+ .@{tnt-steps-cls}.@{steps-prefix-cls}-vertical:not(.@{steps-prefix-cls}-dot):not(.@{steps-prefix-cls}-navigation):not(.@{steps-prefix-cls}-small).@{steps-prefix-cls}{
2
+ .@{steps-prefix-cls}-item{
3
+ &-icon >.@{steps-prefix-cls}-icon{
4
+ i{
5
+ vertical-align: middle;
6
+ }
7
+ }
8
+
9
+ &-content {
10
+ min-height: 94px;
11
+ }
12
+
13
+ > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail{
14
+ padding: calc(@td-steps-icon-size + 15px) 0 15px;
15
+ left: 18px;
16
+ &::after{
17
+ width:0;
18
+ border-radius: 2px;
19
+ background-color: transparent;
20
+ }
21
+ }
22
+
23
+ &-finish > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {
24
+ &::after {
25
+ border-left: 2px solid @finish-border-color;
26
+ }
27
+ }
28
+
29
+ &-wait, &-error, &-process {
30
+ > .@{steps-prefix-cls}-item-container > .@{steps-prefix-cls}-item-tail {
31
+ &::after {
32
+ border-left: 2px solid transparent;
33
+ background-color: @border-color;
34
+ mask: url(../assets/vertical_line.svg) repeat-y 0 0;
35
+ -webkit-mask:url(../assets/vertical_line.svg) repeat-y 0 0;
36
+ }
37
+ }
38
+ }
39
+ }
40
+ }
41
+
@@ -33,11 +33,12 @@
33
33
  display: inline-block;
34
34
  @font-scale: unit(@size / 12px);
35
35
 
36
- font-size: 12px;
36
+ font-size: 16px;
37
37
  // IE9
38
38
  font-size: ~'@{size} \9';
39
39
  transform: scale(@font-scale) rotate(@rotate);
40
40
  :root & {
41
- font-size: @font-size-sm; // reset IE9 and above
41
+ // font-size: @font-size-sm; // reset IE9 and above
42
+ font-size: 16px; // reset IE9 and above
42
43
  }
43
44
  }
@@ -418,7 +418,8 @@
418
418
  @menu-item-active-bg: @item-active-bg;
419
419
  @menu-item-active-border-width: 3px;
420
420
  @menu-item-group-title-color: @text-color-secondary;
421
- @menu-icon-size: @font-size-base;
421
+ // @menu-icon-size: @font-size-base;
422
+ @menu-icon-size: 16px;
422
423
  @menu-icon-size-lg: @font-size-lg;
423
424
 
424
425
  @menu-item-vertical-margin: 4px;
@@ -561,7 +562,7 @@
561
562
  // ---
562
563
  @switch-height: 22px;
563
564
  @switch-sm-height: 16px;
564
- @switch-sm-checked-margin-left: calc(-(@switch-sm-height - 3px));
565
+ @switch-sm-checked-margin-left: calc(3px - @switch-sm-height);
565
566
  @switch-disabled-opacity: 0.4;
566
567
  @switch-color: @primary-color;
567
568
  @switch-shadow-color: fade(#00230b, 20%);
@@ -0,0 +1,46 @@
1
+ @switch-prefix-cls: ~'@{ant-prefix}-switch';
2
+
3
+ .@{switch-prefix-cls} {
4
+ &-small{
5
+ min-width: 36px;
6
+ }
7
+
8
+ &-checked{
9
+ &:hover{
10
+ background-color:@blue-5;
11
+ }
12
+ }
13
+
14
+ &-disabled{
15
+ background-color: @blue-5;
16
+ }
17
+
18
+
19
+ &-wrap{
20
+ display: flex;
21
+ }
22
+
23
+ &-text-wrap{
24
+ margin-left: @margin-xs;
25
+ font-weight: 400;
26
+ }
27
+
28
+ &-text{
29
+ font-size: 14px;
30
+ color: @text-color;
31
+ }
32
+
33
+ &-text-disabled{
34
+ color: @text-color-tertiary;
35
+ }
36
+
37
+ &-subtext{
38
+ font-size: 12px;
39
+ color: tint(@text-color, 50%);
40
+ line-height: 20px;
41
+ }
42
+
43
+ &-subtext-disabled{
44
+ color: @text-color-tertiary;
45
+ }
46
+ }
@@ -0,0 +1,114 @@
1
+ // Tabs 自定义梯形页签样式
2
+ @tab-prefix-cls: ~'@{ant-prefix}-tabs';
3
+
4
+ .tnt-tabs.@{tab-prefix-cls}.@{tab-prefix-cls}-ladder-card.@{tab-prefix-cls}-top {
5
+
6
+ padding: 0 12px;
7
+ position: relative;
8
+ left: -12px;
9
+ padding-bottom: 20px;
10
+
11
+ .@{tab-prefix-cls}-tab {
12
+ position: relative;
13
+ min-width: 106px;
14
+ height: 40px;
15
+ line-height: 40px;
16
+ border-top-left-radius: @border-radius-lg;
17
+ filter: drop-shadow(0px 0px 10px rgba(0, 0, 0, 0.10));
18
+ box-shadow: 0px 0px 2px -5px rgba(0, 0, 0, 0.05);
19
+ border: none;
20
+ margin: 0px 30px 0px 0px;
21
+ padding: 0px 12px 0;
22
+ background: @fill-color-quaternary;
23
+ text-align: right;
24
+ color: @text-color-secondary;
25
+
26
+ &::after {
27
+ content: '';
28
+ position: absolute;
29
+ top: 0;
30
+ right: -52px;
31
+ height: 100%;
32
+ width: 64px;
33
+ z-index: 1;
34
+ background: inherit;
35
+ clip-path: path('M0 0H22.3875C28.4632 0 34.2094 2.76179 38.0049 7.5061L64 40H0V0Z');
36
+ }
37
+
38
+ }
39
+
40
+ .@{tab-prefix-cls}-nav {
41
+ margin-top: 12px;
42
+ padding-left: 12px;
43
+ }
44
+
45
+ .@{tab-prefix-cls}-nav-container {
46
+ height: auto;
47
+ position: relative;
48
+ left: -12px;
49
+ width: calc(100% + 12px);
50
+ }
51
+
52
+ .@{tab-prefix-cls}-bar.@{tab-prefix-cls}-top-bar.@{tab-prefix-cls}-card-bar {
53
+ border-bottom: none;
54
+ margin-bottom: 0;
55
+ }
56
+
57
+
58
+ // 鼠标选中时,active状态在上层
59
+ .@{tab-prefix-cls}-tab-active {
60
+ z-index: 3;
61
+ background: @tabs-active-background;
62
+ }
63
+
64
+ .@{tab-prefix-cls}-tabpane{
65
+ background: @white;
66
+ box-shadow: 0px 0px 20px 0px rgba(0, 0, 0, 0.1);
67
+ padding: 20px 12px 12px;
68
+ border-bottom-right-radius: @border-radius-lg;
69
+ border-bottom-left-radius: @border-radius-lg;
70
+ border-top-right-radius: @border-radius-lg;
71
+ }
72
+ }
73
+
74
+ // // Tabs top类型 全局样式修改
75
+ .tnt-tabs.@{tab-prefix-cls}.@{tab-prefix-cls}-top.@{tab-prefix-cls}-line {
76
+ .@{tab-prefix-cls}-bar {
77
+ border-bottom: none !important;
78
+ }
79
+
80
+ .@{tab-prefix-cls}-nav-container {
81
+ margin-bottom: none;
82
+ }
83
+
84
+ .@{tab-prefix-cls}-tab {
85
+ border-bottom: 1px solid transparent;
86
+ margin-bottom: 1px;
87
+ height: 40px;
88
+ line-height: 37px;
89
+ padding: 2px 12px 0;
90
+ }
91
+
92
+ .@{tab-prefix-cls}-tab:hover{
93
+ border-color: @border-color-secondary;
94
+ }
95
+ }
96
+
97
+ .tnt-tabs.@{tab-prefix-cls} {
98
+ .@{tab-prefix-cls}-nav {
99
+ .@{tab-prefix-cls}-tab {
100
+ color: @tabs-tab-color;
101
+ // 自定义图标默认都是 16px
102
+ i.anticon {
103
+ font-size: @font-size-lg;
104
+ margin-right: 4px;
105
+ }
106
+ }
107
+ .@{tab-prefix-cls}-tab.@{tab-prefix-cls}-tab-active {
108
+ color: @tabs-active-color;
109
+ }
110
+ .@{tab-prefix-cls}-tab.@{tab-prefix-cls}-tab:hover {
111
+ color: @tabs-hover-color;
112
+ }
113
+ }
114
+ }
@@ -0,0 +1,43 @@
1
+ @preset-colors-custom: grey, blue, green, red, gold, lightblue, bluegrey, purplegrey, purple, lightpurple, lightgreen, pink, rose, orange, magenta, volcano, yellow, cyan, lime, geekblue, tnt-pink, tnt-orange, tnt-purple;
2
+
3
+
4
+ @grey-7: @text-color-secondary;
5
+ @grey-4: @border-color-base;
6
+ @grey-1: @tag-default-bg;
7
+
8
+ @rose-7:#D8395E;
9
+ @rose-4: #FEA3B4;
10
+ @rose-1: #FFF1F3;
11
+
12
+ @lightblue-7: #1AA9E6;
13
+ @lightblue-4: #8FE0FF;
14
+ @lightblue-1: #F0F9FF;
15
+
16
+ @bluegrey-7: #486FBB;
17
+ @bluegrey-4: #A1BCEF;
18
+ @bluegrey-1: #F4F8FF;
19
+
20
+ @purplegrey-7: #4E5BA6;
21
+ @purplegrey-4: #AFB5D9;
22
+ @purplegrey-1: #F8F9FC;
23
+
24
+ @tnt-purple-7: #6E54D4;
25
+ @tnt-purple-4: #BDB4FE;
26
+ @tnt-purple-1: #F4F3FF;
27
+
28
+ @lightpurple-7: #5161D7;
29
+ @lightpurple-4: #A4BCFD;
30
+ @lightpurple-1: #EEF4FF;
31
+
32
+ @lightgreen-7: #2E9C98;
33
+ @lightgreen-4: #8CE0DD;
34
+ @lightgreen-1: #F1FBFB;
35
+
36
+ @tnt-pink-7: #D03E93;
37
+ @tnt-pink-4: #FAA7E0;
38
+ @tnt-pink-1: #FDF2FA;
39
+
40
+ @tnt-orange-7:#DF5F28;
41
+ @tnt-orange-4: #FEB173;
42
+ @tnt-orange-1: #FFF6ED;
43
+
package/es/tag/tag.js ADDED
@@ -0,0 +1,171 @@
1
+ var __rest = this && this.__rest || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
4
+ if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
5
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];
6
+ }
7
+ return t;
8
+ };
9
+ /*
10
+ * @Author: 周泽飞 zefei.zhou@tongdun.net
11
+ * @Date: 2024-03-04 19:15:22
12
+ * @LastEditors: 周泽飞 zefei.zhou@tongdun.net
13
+ * @LastEditTime: 2024-03-11 10:10:31
14
+ * @FilePath: /tntd/packages/tntd/src/tag/tag.tsx
15
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
16
+ */
17
+ import React, { forwardRef } from 'react';
18
+ import { ConfigConsumer } from 'antd/es/config-provider';
19
+ import { default as AntdTag } from 'antd/es/tag';
20
+ import classNames from 'classnames';
21
+ import Ellipsis from '../ellipsis';
22
+ import Icon from '../icon';
23
+ export * from 'antd/es/tag';
24
+ export var TagColors;
25
+ (function (TagColors) {
26
+ TagColors["grey"] = "grey";
27
+ TagColors["rose"] = "rose";
28
+ TagColors["lightblue"] = "lightblue";
29
+ TagColors["bluegrey"] = "bluegrey";
30
+ TagColors["purplegrey"] = "purplegrey";
31
+ TagColors["lightpurple"] = "lightpurple";
32
+ TagColors["lightgreen"] = "lightgreen";
33
+ TagColors["tnt-pink"] = "tnt-pink";
34
+ TagColors["tnt-orange"] = "tnt-orange";
35
+ TagColors["tnt-purple"] = "tnt-purple";
36
+ })(TagColors || (TagColors = {}));
37
+ // 内置的状态
38
+ const statusMap = {
39
+ success: {
40
+ icon: 'check-circle',
41
+ color: 'green'
42
+ },
43
+ info: {
44
+ icon: 'info-circle',
45
+ color: 'blue'
46
+ },
47
+ error: {
48
+ icon: 'close-circle',
49
+ color: 'red'
50
+ },
51
+ warning: {
52
+ icon: 'info-circle',
53
+ color: 'orange'
54
+ }
55
+ };
56
+ const getDisplayEllipsisOptions = (props, prefixCls) => {
57
+ var _a;
58
+ const {
59
+ ellipsisOptions,
60
+ addonContent,
61
+ addonType,
62
+ addonPosition,
63
+ children
64
+ } = props || {};
65
+ const options = Object.assign({}, ellipsisOptions);
66
+ let addonContentInfo = null;
67
+ if (addonContent) {
68
+ addonContentInfo = addonContent;
69
+ } else if (addonType && statusMap[addonType]) {
70
+ addonContentInfo = React.createElement(Icon, {
71
+ type: (_a = statusMap[addonType]) === null || _a === void 0 ? void 0 : _a.icon
72
+ });
73
+ }
74
+ if (addonContentInfo) {
75
+ addonContentInfo = React.createElement("span", {
76
+ className: `${prefixCls}-addon`
77
+ }, addonContentInfo);
78
+ if (addonPosition === 'prefix') {
79
+ options.prefix = addonContentInfo;
80
+ }
81
+ if (addonPosition === 'suffix') {
82
+ options.suffix = addonContentInfo;
83
+ }
84
+ if (options.Popover === true) {
85
+ options.content = children;
86
+ } else {
87
+ options.title = children;
88
+ }
89
+ options.contentInfo = addonContentInfo;
90
+ }
91
+ return options;
92
+ };
93
+ export const Tag = forwardRef((props, ref) => {
94
+ var _a;
95
+ const {
96
+ className,
97
+ border = true,
98
+ size,
99
+ addonType,
100
+ addonContent,
101
+ addonPosition = 'prefix',
102
+ ellipsisOptions,
103
+ children
104
+ } = props,
105
+ restProps = __rest(props, ["className", "border", "size", "addonType", "addonContent", "addonPosition", "ellipsisOptions", "children"]);
106
+ let {
107
+ color
108
+ } = props || {};
109
+ if (!color && addonType) {
110
+ color = (_a = statusMap[addonType]) === null || _a === void 0 ? void 0 : _a.color;
111
+ }
112
+ return React.createElement(ConfigConsumer, null, ({
113
+ getPrefixCls
114
+ }) => {
115
+ var _a, _b, _c, _d, _e;
116
+ const prefixCls = getPrefixCls('tag');
117
+ const displayEllipsisOptions = getDisplayEllipsisOptions({
118
+ ellipsisOptions,
119
+ addonContent,
120
+ addonType,
121
+ addonPosition,
122
+ children
123
+ }, prefixCls);
124
+ // 只有一个icon时 padding距离存在差异
125
+ const onlyIcon = React.isValidElement(children) && React.Children.only(children) && (children === null || children === void 0 ? void 0 : children.type) instanceof Function && ((_c = (_b = (_a = children === null || children === void 0 ? void 0 : children.type) === null || _a === void 0 ? void 0 : _a.name) === null || _b === void 0 ? void 0 : _b.toLowerCase) === null || _c === void 0 ? void 0 : _c.call(_b)) === 'icon';
126
+ // 前缀是图片 只处理一层节点下是图片的,否则就用户自定义样式
127
+ const addonIsImg = React.isValidElement(addonContent) && (addonContent === null || addonContent === void 0 ? void 0 : addonContent.type) && typeof (addonContent === null || addonContent === void 0 ? void 0 : addonContent.type) === 'string' && ((_e = (_d = addonContent === null || addonContent === void 0 ? void 0 : addonContent.type) === null || _d === void 0 ? void 0 : _d.toLowerCase) === null || _e === void 0 ? void 0 : _e.call(_d)) === 'img';
128
+ return React.createElement(AntdTag, Object.assign({
129
+ className: classNames({
130
+ [`${prefixCls}-${color}`]: color && !!TagColors[color]
131
+ }, 'tnt-tag', `${prefixCls}-${size || 'middle'}`, {
132
+ [`${prefixCls}-no-border`]: !border
133
+ }, {
134
+ [`${prefixCls}-only-child`]: !children || onlyIcon
135
+ }, {
136
+ [`${prefixCls}-addon-img`]: !!addonIsImg
137
+ }, className || '')
138
+ }, restProps, {
139
+ color: !TagColors[color] ? color : '',
140
+ ref: ref
141
+ }), !addonContent && !addonType && !ellipsisOptions && children, (!!addonContent || !!addonType || !!ellipsisOptions) && React.createElement("span", {
142
+ className: `${prefixCls}-addon-wrap`
143
+ }, !!children && React.createElement(Ellipsis, Object.assign({}, displayEllipsisOptions), children), !children && (displayEllipsisOptions === null || displayEllipsisOptions === void 0 ? void 0 : displayEllipsisOptions.contentInfo)));
144
+ });
145
+ });
146
+ Tag.CheckableTag = forwardRef((props, ref) => {
147
+ // 默认没有border
148
+ const _a = props || {},
149
+ {
150
+ onChange,
151
+ disabled,
152
+ border = false,
153
+ className
154
+ } = _a,
155
+ rest = __rest(_a, ["onChange", "disabled", "border", "className"]);
156
+ return React.createElement(ConfigConsumer, null, ({
157
+ getPrefixCls
158
+ }) => {
159
+ const prefixCls = getPrefixCls('tag-checkable');
160
+ return React.createElement(AntdTag.CheckableTag, Object.assign({}, !disabled && {
161
+ onChange
162
+ }, {
163
+ className: classNames('tnt-tag', {
164
+ [`${prefixCls}-disabled`]: disabled,
165
+ [`${prefixCls}-border`]: !!border
166
+ })
167
+ }, rest, {
168
+ ref: ref
169
+ }));
170
+ });
171
+ });
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/tag/tag.tsx"],"names":[],"mappings":"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","sourcesContent":["/*\n * @Author: 周泽飞 zefei.zhou@tongdun.net\n * @Date: 2024-03-04 19:15:22\n * @LastEditors: 周泽飞 zefei.zhou@tongdun.net\n * @LastEditTime: 2024-03-11 10:10:31\n * @FilePath: /tntd/packages/tntd/src/tag/tag.tsx\n * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\n */\nimport React, { useMemo, forwardRef } from 'react'\nimport type { TagProps as AntdTagProps } from 'antd/es/tag'\nimport type { CheckableTagProps as AntdCheckableTagProps } from 'antd/es/tag'\nimport { ConfigConsumer } from 'antd/es/config-provider'\nimport { default as AntdTag } from 'antd/es/tag'\nimport type AntdCheckableTag from 'antd/es/tag/CheckableTag'\nimport classNames from 'classnames'\nimport Ellipsis from '../ellipsis'\nimport Icon from '../icon'\n\nexport * from 'antd/es/tag'\n\nexport enum TagColors {\n grey = 'grey',\n rose = 'rose',\n lightblue = 'lightblue',\n bluegrey = 'bluegrey',\n purplegrey = 'purplegrey',\n lightpurple = 'lightpurple',\n lightgreen = 'lightgreen',\n 'tnt-pink' = 'tnt-pink',\n 'tnt-orange' = 'tnt-orange',\n 'tnt-purple' = 'tnt-purple',\n}\n\n// 内置的状态\nconst statusMap = {\n success: {\n icon: 'check-circle',\n color: 'green',\n },\n info: {\n icon: 'info-circle',\n color: 'blue',\n },\n error: {\n icon: 'close-circle',\n color: 'red',\n },\n warning: {\n icon: 'info-circle',\n color: 'orange',\n },\n}\n\nexport interface TagProps extends AntdTagProps {\n color?: TagColors | string\n size?: 'small' | 'middle' | 'large'\n border?: boolean\n addonContent?: React.ReactNode\n addonPosition?: 'prefix' | 'suffix'\n addonType?: 'success' | 'info' | 'warning' | 'error'\n ellipsisOptions?: {\n Popover?: boolean\n emptyText?: string\n widthLimit?: number | string\n lines?: number\n [key: string]: unknown\n }\n}\n\nexport interface CheckableTagProps extends AntdCheckableTagProps {\n disabled?: boolean\n border?: boolean\n}\n\ninterface TagComponent\n extends React.ForwardRefExoticComponent<TagProps & React.RefAttributes<AntdTag>> {\n CheckableTag: React.FC<CheckableTagProps>\n}\n\nconst getDisplayEllipsisOptions = (props: TagProps, prefixCls: string) => {\n const { ellipsisOptions, addonContent, addonType, addonPosition, children } = props || {}\n const options = {\n ...ellipsisOptions,\n }\n\n let addonContentInfo = null\n if (addonContent) {\n addonContentInfo = addonContent\n } else if (addonType && statusMap[addonType]) {\n addonContentInfo = <Icon type={statusMap[addonType]?.icon} />\n }\n\n if (addonContentInfo) {\n addonContentInfo = <span className={`${prefixCls}-addon`}>{addonContentInfo}</span>\n if (addonPosition === 'prefix') {\n options.prefix = addonContentInfo\n }\n\n if (addonPosition === 'suffix') {\n options.suffix = addonContentInfo\n }\n\n if (options.Popover === true) {\n options.content = children\n } else {\n options.title = children\n }\n options.contentInfo = addonContentInfo\n }\n\n return options\n}\n\nexport const Tag = forwardRef<AntdTag, TagProps & { capitalize?: boolean }>((props, ref) => {\n const {\n className,\n border = true,\n size,\n addonType,\n addonContent,\n addonPosition = 'prefix',\n ellipsisOptions,\n children,\n ...restProps\n } = props\n\n let { color } = props || {}\n if (!color && addonType) {\n color = statusMap[addonType]?.color\n }\n\n return (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefixCls = getPrefixCls('tag')\n\n const displayEllipsisOptions = getDisplayEllipsisOptions(\n {\n ellipsisOptions,\n addonContent,\n addonType,\n addonPosition,\n children,\n },\n prefixCls\n )\n\n // 只有一个icon时 padding距离存在差异\n const onlyIcon =\n React.isValidElement(children) &&\n React.Children.only(children) &&\n children?.type instanceof Function &&\n children?.type?.name?.toLowerCase?.() === 'icon'\n\n // 前缀是图片 只处理一层节点下是图片的,否则就用户自定义样式\n const addonIsImg =\n React.isValidElement(addonContent) &&\n addonContent?.type &&\n typeof addonContent?.type === 'string' &&\n addonContent?.type?.toLowerCase?.() === 'img'\n\n return (\n <AntdTag\n className={classNames(\n {\n [`${prefixCls}-${color}`]: color && !!TagColors[color as keyof typeof TagColors],\n },\n 'tnt-tag',\n `${prefixCls}-${size || 'middle'}`,\n {\n [`${prefixCls}-no-border`]: !border,\n },\n {\n [`${prefixCls}-only-child`]: !children || onlyIcon,\n },\n {\n [`${prefixCls}-addon-img`]: !!addonIsImg,\n },\n className || ''\n )}\n {...restProps}\n color={!TagColors[color as keyof typeof TagColors] ? color : ''}\n ref={ref}\n >\n {!addonContent && !addonType && !ellipsisOptions && children}\n {(!!addonContent || !!addonType || !!ellipsisOptions) && (\n <span className={`${prefixCls}-addon-wrap`}>\n {!!children && <Ellipsis {...displayEllipsisOptions}>{children}</Ellipsis>}\n {!children && displayEllipsisOptions?.contentInfo}\n </span>\n )}\n </AntdTag>\n )\n }}\n </ConfigConsumer>\n )\n}) as TagComponent\n\nTag.CheckableTag = forwardRef<AntdCheckableTag, CheckableTagProps>(\n (props: CheckableTagProps, ref) => {\n // 默认没有border\n const { onChange, disabled, border = false, className, ...rest } = props || {}\n return (\n <ConfigConsumer>\n {({ getPrefixCls }) => {\n const prefixCls = getPrefixCls('tag-checkable')\n return (\n <AntdTag.CheckableTag\n {...(!disabled && { onChange })}\n className={classNames('tnt-tag', {\n [`${prefixCls}-disabled`]: disabled,\n [`${prefixCls}-border`]: !!border,\n })}\n {...rest}\n ref={ref}\n />\n )\n }}\n </ConfigConsumer>\n )\n }\n)\n"]}
@@ -0,0 +1,193 @@
1
+ @import '../style/mixins/index';
2
+ @import './color.less';
3
+ @tag-prefix-cls: ~'@{ant-prefix}-tag';
4
+ // 默认
5
+ @tag-height: 20px;
6
+ @tag-small-size: 0 8px;
7
+ @tag-middle-size: 1px 10px;
8
+ @tag-large-size: 3px 12px;
9
+
10
+ // img tag
11
+ @tag-img-small-size: 1px 5px 1px 3px;
12
+ @tag-img-middle-size: 2px 6px 2px 3px;
13
+ @tag-img-large-size: 3px 12px 3px 4px;
14
+
15
+ // 只有icon的尺寸
16
+ @tag-only-icon-small-size: 5px;
17
+ @tag-only-icon-middle-size: 6px;
18
+ @tag-only-icon-large-size: 7px;
19
+
20
+ .tnt-tag.@{tag-prefix-cls} {
21
+ line-height: @tag-height;
22
+
23
+ .@{iconfont-css-prefix}-close {
24
+ .iconfont-size-under-12px(12px);
25
+ vertical-align: middle;
26
+ line-height: 1;
27
+ }
28
+
29
+ .anticon{
30
+ font-size: @font-size-sm;
31
+ }
32
+
33
+ // 头像插件 可以为icon 图片
34
+ .@{tag-prefix-cls}-addon-wrap{
35
+ display: inline-block;
36
+ vertical-align: middle;
37
+ margin-top: -1px;
38
+ .@{tag-prefix-cls}-addon{
39
+ .iconfont-size-under-12px(12px);
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: center;
43
+ }
44
+
45
+ .tntd-ellipsis,.tnt-ellipsis{
46
+ align-items: center;
47
+ .@{tag-prefix-cls}-addon{
48
+ >*{
49
+ border-radius: 100%;
50
+ overflow: hidden;
51
+ display: block;
52
+ }
53
+ +*{
54
+ margin-left: 4px;
55
+ }
56
+ }
57
+ }
58
+ }
59
+
60
+ &-small{
61
+ padding: @tag-small-size;
62
+ }
63
+ &-middle{
64
+ padding: @tag-middle-size;
65
+ }
66
+ &-large{
67
+ padding: @tag-large-size;
68
+ font-size: 14px;
69
+ }
70
+
71
+ // 不带边框
72
+ &.@{tag-prefix-cls}-no-border{
73
+ border-color:transparent;
74
+ }
75
+
76
+ // 只有一个icon
77
+ &.@{tag-prefix-cls}-only-child{
78
+ line-height: @font-size-sm;
79
+ &.@{tag-prefix-cls}-small{
80
+ padding: @tag-only-icon-small-size;
81
+ }
82
+ &.@{tag-prefix-cls}-middle{
83
+ padding: @tag-only-icon-middle-size;
84
+ }
85
+ &.@{tag-prefix-cls}-large{
86
+ padding: @tag-only-icon-large-size;
87
+ }
88
+ }
89
+
90
+ // 带图片
91
+ &.@{tag-prefix-cls}-addon-img{
92
+ &.@{tag-prefix-cls}-small{
93
+ padding: @tag-img-small-size;
94
+ .@{tag-prefix-cls}-addon{
95
+ width: 16px;
96
+ height: 16px;
97
+ }
98
+ }
99
+ &.@{tag-prefix-cls}-middle{
100
+ padding: @tag-img-middle-size;
101
+ .@{tag-prefix-cls}-addon{
102
+ width: 18px;
103
+ height: 18px;
104
+ }
105
+ }
106
+ &.@{tag-prefix-cls}-large{
107
+ padding: @tag-img-large-size;
108
+ .@{tag-prefix-cls}-addon{
109
+ width: 20px;
110
+ height: 20px;
111
+ }
112
+ }
113
+ }
114
+
115
+ // mixin to iterate over colors and create CSS class for each one
116
+ .make-color-classes(@i: length(@preset-colors-custom)) when (@i > 0) {
117
+ .make-color-classes(@i - 1);
118
+ @color: extract(@preset-colors-custom, @i);
119
+ @lightColor: '@{color}-1';
120
+ @lightBorderColor: '@{color}-4';
121
+ @darkColor: '@{color}-7';
122
+ &.@{tag-prefix-cls}-@{color} {
123
+ color: @@darkColor;
124
+ background: @@lightColor;
125
+ border-color: @@lightBorderColor;
126
+ >.@{iconfont-css-prefix}-close {
127
+ color: @@darkColor;//fade(@@darkColor,80%);
128
+ opacity: .8;
129
+ }
130
+ &.@{tag-prefix-cls}-no-border{
131
+ border-color:transparent;
132
+ }
133
+ }
134
+ &.@{tag-prefix-cls}-@{color}-inverse {
135
+ color: @text-color-inverse;
136
+ background: @@darkColor;
137
+ border-color: @@darkColor;
138
+
139
+ &.@{tag-prefix-cls}-no-border{
140
+ border-color:transparent;
141
+ }
142
+ }
143
+ }
144
+
145
+ .make-color-classes();
146
+
147
+
148
+
149
+ // 可选
150
+ &.@{tag-prefix-cls}-checkable {
151
+ background-color: @tag-default-bg;
152
+ border-color: transparent;
153
+ padding: 2px 12px;
154
+ cursor: pointer;
155
+ &-border{
156
+ border-color: @border-color-base;
157
+ }
158
+
159
+ &:active,
160
+ &-checked {
161
+ color: @primary-7;
162
+ background-color: @primary-1;
163
+ &.@{tag-prefix-cls}-checkable-border{
164
+ border-color: @primary-3;
165
+ }
166
+ }
167
+
168
+ &-checked {
169
+ &.@{tag-prefix-cls}-checkable-disabled:hover {
170
+ color: @primary-color;
171
+ }
172
+ }
173
+
174
+ &:not(&-checked){
175
+ &.@{tag-prefix-cls}-checkable-disabled:hover {
176
+ color: inherit;
177
+ }
178
+ }
179
+
180
+ &-disabled{
181
+ opacity: 0.5;
182
+ cursor: not-allowed;
183
+ &:hover{
184
+ opacity: 0.5;
185
+ color: inherit;
186
+ }
187
+ }
188
+ }
189
+
190
+ }
191
+
192
+
193
+