@tendaui/components 1.3.0 → 1.3.1

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 (142) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +176 -176
  3. package/button/_example/ghost.tsx +2 -5
  4. package/color-picker/utils/color-picker/cmyk.ts +89 -89
  5. package/color-picker/utils/color-picker/color.ts +467 -467
  6. package/color-picker/utils/color-picker/constants.ts +187 -187
  7. package/color-picker/utils/color-picker/draggable.ts +99 -99
  8. package/color-picker/utils/color-picker/format.ts +90 -90
  9. package/color-picker/utils/color-picker/gradient.ts +237 -237
  10. package/color-picker/utils/color-picker/index.ts +7 -7
  11. package/color-picker/utils/color-picker/types.ts +33 -33
  12. package/dialog/hooks/useDialogPosition.ts +35 -35
  13. package/form/type.ts +519 -519
  14. package/global-config/default-config.ts +95 -95
  15. package/global-config/locale/ar_KW.ts +259 -259
  16. package/global-config/locale/en_US.ts +265 -265
  17. package/global-config/locale/it_IT.ts +264 -264
  18. package/global-config/locale/ja_JP.ts +264 -264
  19. package/global-config/locale/ko_KR.ts +264 -264
  20. package/global-config/locale/ru_RU.ts +277 -277
  21. package/global-config/locale/zh_CN.ts +265 -265
  22. package/global-config/locale/zh_TW.ts +265 -265
  23. package/global-config/mobile/default-config.ts +6 -6
  24. package/global-config/mobile/locale/ar_KW.ts +112 -112
  25. package/global-config/mobile/locale/en_US.ts +113 -113
  26. package/global-config/mobile/locale/it_IT.ts +113 -113
  27. package/global-config/mobile/locale/ja_JP.ts +100 -100
  28. package/global-config/mobile/locale/ko_KR.ts +100 -100
  29. package/global-config/mobile/locale/ru_RU.ts +112 -112
  30. package/global-config/mobile/locale/zh_CN.ts +100 -100
  31. package/global-config/mobile/locale/zh_TW.ts +100 -100
  32. package/global-config/t.ts +111 -111
  33. package/input-number/InputNumber.tsx +124 -124
  34. package/input-number/defaultProps.ts +17 -17
  35. package/input-number/index.ts +9 -9
  36. package/input-number/style/css.js +1 -1
  37. package/input-number/style/index.js +1 -1
  38. package/input-number/useInputNumber.tsx +270 -270
  39. package/list/ListItem.tsx +36 -36
  40. package/list/ListItemMeta.tsx +40 -40
  41. package/list/defaultProps.ts +11 -11
  42. package/list/hooks/useListVirtualScroll.ts +82 -82
  43. package/list/style/css.js +1 -1
  44. package/list/style/index.js +1 -1
  45. package/locale/LocalReceiver.ts +55 -55
  46. package/locale/ar_KW.ts +7 -7
  47. package/locale/en_US.ts +7 -7
  48. package/locale/it_IT.ts +6 -6
  49. package/locale/ja_JP.ts +6 -6
  50. package/locale/ko_KR.ts +6 -6
  51. package/locale/ru_RU.ts +6 -6
  52. package/locale/zh_CN.ts +5 -5
  53. package/locale/zh_TW.ts +7 -7
  54. package/package.json +2 -2
  55. package/radio/_example/default.tsx +2 -2
  56. package/select/type.ts +382 -382
  57. package/select-input/type.ts +280 -280
  58. package/slider/SliderHandleButton.tsx +50 -50
  59. package/slider/defaultProps.ts +15 -15
  60. package/slider/style/css.js +1 -1
  61. package/slider/style/index.js +1 -1
  62. package/styles/_global.scss +40 -40
  63. package/styles/_vars.scss +374 -374
  64. package/styles/components/alert/_index.scss +175 -175
  65. package/styles/components/alert/_vars.scss +41 -41
  66. package/styles/components/badge/_index.scss +71 -71
  67. package/styles/components/badge/_vars.scss +26 -26
  68. package/styles/components/button/_index.scss +499 -499
  69. package/styles/components/button/_mixins.scss +40 -40
  70. package/styles/components/button/_vars.scss +121 -121
  71. package/styles/components/checkbox/_index.scss +158 -158
  72. package/styles/components/checkbox/_var.scss +59 -59
  73. package/styles/components/color-picker/_index.scss +586 -586
  74. package/styles/components/color-picker/_vars.scss +79 -79
  75. package/styles/components/dialog/_animate.scss +133 -133
  76. package/styles/components/dialog/_index.scss +310 -310
  77. package/styles/components/dialog/_vars.scss +60 -60
  78. package/styles/components/drawer/_index.scss +206 -206
  79. package/styles/components/drawer/_var.scss +55 -55
  80. package/styles/components/fireworks/_index.scss +86 -86
  81. package/styles/components/fireworks/_vars.scss +5 -5
  82. package/styles/components/form/_index.scss +175 -175
  83. package/styles/components/form/_mixins.scss +74 -74
  84. package/styles/components/form/_vars.scss +101 -101
  85. package/styles/components/input/_index.scss +350 -350
  86. package/styles/components/input/_mixins.scss +120 -120
  87. package/styles/components/input/_vars.scss +130 -130
  88. package/styles/components/input-number/_index.scss +327 -327
  89. package/styles/components/input-number/_vars.scss +56 -56
  90. package/styles/components/ip-input/_index.scss +277 -277
  91. package/styles/components/layout/_index.scss +47 -47
  92. package/styles/components/layout/_vars.scss +19 -19
  93. package/styles/components/layout/doc.scss +74 -74
  94. package/styles/components/list/_index.scss +172 -172
  95. package/styles/components/list/_vars.scss +42 -42
  96. package/styles/components/loading/_index.scss +113 -113
  97. package/styles/components/loading/_vars.scss +40 -40
  98. package/styles/components/notification/_index.scss +140 -140
  99. package/styles/components/notification/_mixins.scss +13 -13
  100. package/styles/components/notification/_vars.scss +60 -60
  101. package/styles/components/popup/_index.scss +78 -78
  102. package/styles/components/popup/_mixin.scss +149 -149
  103. package/styles/components/popup/_vars.scss +33 -33
  104. package/styles/components/radio/_index.scss +376 -376
  105. package/styles/components/radio/_vars.scss +89 -89
  106. package/styles/components/select/_index.scss +291 -291
  107. package/styles/components/select/_var.scss +64 -64
  108. package/styles/components/select-input/_index.scss +5 -5
  109. package/styles/components/select-input/_var.scss +4 -4
  110. package/styles/components/slider/_index.scss +241 -241
  111. package/styles/components/slider/_vars.scss +51 -51
  112. package/styles/components/switch/_index.scss +175 -175
  113. package/styles/components/switch/_vars.scss +63 -63
  114. package/styles/components/table/_index.scss +194 -194
  115. package/styles/components/table/_var.scss +52 -52
  116. package/styles/components/tabs/_index.scss +165 -165
  117. package/styles/components/tabs/_mixins.scss +11 -11
  118. package/styles/components/tabs/_vars.scss +72 -72
  119. package/styles/components/tag/_index.scss +317 -317
  120. package/styles/components/tag/_var.scss +86 -86
  121. package/styles/components/tag-input/_index.scss +164 -164
  122. package/styles/components/tag-input/_vars.scss +17 -17
  123. package/styles/mixins/_focus.scss +8 -8
  124. package/styles/mixins/_layout.scss +32 -32
  125. package/styles/mixins/_reset.scss +11 -11
  126. package/styles/mixins/_scrollbar.scss +32 -32
  127. package/styles/mixins/_text.scss +50 -50
  128. package/styles/themes/_dark.scss +169 -169
  129. package/styles/themes/_font.scss +69 -69
  130. package/styles/themes/_index.scss +5 -5
  131. package/styles/themes/_light.scss +170 -170
  132. package/styles/themes/_radius.scss +9 -9
  133. package/styles/themes/_size.scss +68 -68
  134. package/styles/utilities/_animation.scss +58 -58
  135. package/styles/utilities/_tips.scss +10 -10
  136. package/switch/_example/with-label.tsx +1 -1
  137. package/utils/input-number/large-number.ts +423 -423
  138. package/utils/input-number/number.ts +257 -257
  139. package/utils/log/index.ts +3 -3
  140. package/utils/log/log.ts +29 -29
  141. package/utils/log/types.ts +9 -9
  142. package/utils/style.ts +58 -58
@@ -1,13 +1,13 @@
1
- @use "../../_vars.scss" as *;
2
- @mixin notification() {
3
- font: $notification-font;
4
- outline: 0;
5
- border: 0;
6
- background-color: $notification-color-block;
7
- display: flex;
8
- box-shadow: $notification-shadow;
9
- box-sizing: border-box;
10
- border-radius: $border-radius-medium;
11
- width: $notification-width-default;
12
- padding: $notification-padding-default;
13
- }
1
+ @use "../../_vars.scss" as *;
2
+ @mixin notification() {
3
+ font: $notification-font;
4
+ outline: 0;
5
+ border: 0;
6
+ background-color: $notification-color-block;
7
+ display: flex;
8
+ box-shadow: $notification-shadow;
9
+ box-sizing: border-box;
10
+ border-radius: $border-radius-medium;
11
+ width: $notification-width-default;
12
+ padding: $notification-padding-default;
13
+ }
@@ -1,60 +1,60 @@
1
- @use "../../_vars.scss" as *;
2
- // 组件变量
3
- // 名称可按如下规则定义//
4
- // <component>-[type]-[attrtype]-<attr>-[status]
5
-
6
- // component: 组件名,如 button
7
- // type: 组件类型,如 button 的次要按钮(line)
8
- // attrtype: 属性的具体应用场景。如颜色,用于背景(bg)、文本(text)、边框(border)等
9
- // attr: 属性名称,如 color、height、radius
10
- // status: 表示组件状态或尺寸,如 hover、disabled、s、l
11
-
12
- // 如:$button-line-bg-color-hover
13
- // 如:$button-line-height-s
14
-
15
- // 颜色
16
- $notification-close-icon-color: $text-color-secondary;
17
- $notification-color-block: $bg-color-container;
18
- $notification-title-color: $text-color-primary;
19
- $notification-content-color: $text-color-secondary;
20
- $notification-detail-item-color-hover: inherit;
21
- $notification-detail-item-bg-color-hover: $bg-color-container-hover;
22
- $notification-detail-item-color-active: inherit;
23
- $notification-detail-item-bg-color-active: $bg-color-container-active;
24
- $notification-detail-item-is-active-color: $brand-color;
25
- $notification-icon-info-color: $brand-color;
26
- $notification-icon-success-color: $success-color;
27
- $notification-icon-warning-color: $warning-color;
28
- $notification-icon-error-color: $error-color-6;
29
- $notification-detail-item-color: inherit;
30
- $notification-close-bg-color-hover: $bg-color-container-hover;
31
- $notification-close-bg-color-active: $bg-color-container-active;
32
-
33
- // 尺寸
34
- $notification-width-default: 360px;
35
- $notification-content-max-height: 66px;
36
- $notification-icon-width: calc($font-size-l + 8px);
37
- $notification-icon-font-size: calc($font-size-l + 8px);
38
- $notification-icon-close-font-size: $font-size-l;
39
-
40
- // 圆角
41
- $notification-detail-item-border-radius: $border-radius-medium;
42
- $notification-close-border-radius: $border-radius-medium;
43
-
44
- // 阴影
45
- $notification-shadow: $shadow-2-inset;
46
-
47
- //字号
48
- $notification-font: $font-body-medium;
49
- $notification-detail-font: $font-body-medium;
50
- $notification-content-font: $font-body-medium;
51
- $notification-title-font: $font-title-medium;
52
-
53
- // padding
54
- $notification-padding-default: $comp-paddingTB-l $comp-paddingLR-l;
55
-
56
- //margin
57
- $notification-detail-margin-top: $comp-margin-l;
58
- $notification-content-margin-top: $comp-margin-s;
59
- $notification-icon-margin-right: $comp-margin-s;
60
- $notification-detail-item-margin-left: $comp-margin-s;
1
+ @use "../../_vars.scss" as *;
2
+ // 组件变量
3
+ // 名称可按如下规则定义//
4
+ // <component>-[type]-[attrtype]-<attr>-[status]
5
+
6
+ // component: 组件名,如 button
7
+ // type: 组件类型,如 button 的次要按钮(line)
8
+ // attrtype: 属性的具体应用场景。如颜色,用于背景(bg)、文本(text)、边框(border)等
9
+ // attr: 属性名称,如 color、height、radius
10
+ // status: 表示组件状态或尺寸,如 hover、disabled、s、l
11
+
12
+ // 如:$button-line-bg-color-hover
13
+ // 如:$button-line-height-s
14
+
15
+ // 颜色
16
+ $notification-close-icon-color: $text-color-secondary;
17
+ $notification-color-block: $bg-color-container;
18
+ $notification-title-color: $text-color-primary;
19
+ $notification-content-color: $text-color-secondary;
20
+ $notification-detail-item-color-hover: inherit;
21
+ $notification-detail-item-bg-color-hover: $bg-color-container-hover;
22
+ $notification-detail-item-color-active: inherit;
23
+ $notification-detail-item-bg-color-active: $bg-color-container-active;
24
+ $notification-detail-item-is-active-color: $brand-color;
25
+ $notification-icon-info-color: $brand-color;
26
+ $notification-icon-success-color: $success-color;
27
+ $notification-icon-warning-color: $warning-color;
28
+ $notification-icon-error-color: $error-color-6;
29
+ $notification-detail-item-color: inherit;
30
+ $notification-close-bg-color-hover: $bg-color-container-hover;
31
+ $notification-close-bg-color-active: $bg-color-container-active;
32
+
33
+ // 尺寸
34
+ $notification-width-default: 360px;
35
+ $notification-content-max-height: 66px;
36
+ $notification-icon-width: calc($font-size-l + 8px);
37
+ $notification-icon-font-size: calc($font-size-l + 8px);
38
+ $notification-icon-close-font-size: $font-size-l;
39
+
40
+ // 圆角
41
+ $notification-detail-item-border-radius: $border-radius-medium;
42
+ $notification-close-border-radius: $border-radius-medium;
43
+
44
+ // 阴影
45
+ $notification-shadow: $shadow-2-inset;
46
+
47
+ //字号
48
+ $notification-font: $font-body-medium;
49
+ $notification-detail-font: $font-body-medium;
50
+ $notification-content-font: $font-body-medium;
51
+ $notification-title-font: $font-title-medium;
52
+
53
+ // padding
54
+ $notification-padding-default: $comp-paddingTB-l $comp-paddingLR-l;
55
+
56
+ //margin
57
+ $notification-detail-margin-top: $comp-margin-l;
58
+ $notification-content-margin-top: $comp-margin-s;
59
+ $notification-icon-margin-right: $comp-margin-s;
60
+ $notification-detail-item-margin-left: $comp-margin-s;
@@ -1,78 +1,78 @@
1
- @use "../../_vars.scss" as *;
2
- @use "./_vars.scss" as *;
3
- @use "./_mixin.scss" as *;
4
-
5
- @use "../../mixins/_layout.scss" as *;
6
-
7
- @use "../../mixins/_reset.scss" as *;
8
-
9
- .#{$prefix}-popup {
10
- @include reset;
11
-
12
- color: $popup-text-color;
13
- display: inline-block;
14
- z-index: $z-index-Popup;
15
-
16
- &__content {
17
- position: relative;
18
- background: $popup-bg;
19
- box-shadow: $popup-shadow;
20
- border-radius: $border-radius-medium;
21
- padding: $popup-padding;
22
- font-size: $popup-content-font-size;
23
- line-height: $popup-content-line-height;
24
- box-sizing: border-box;
25
- word-break: break-all;
26
- }
27
- }
28
-
29
- .#{$prefix}-popup__arrow {
30
- position: absolute;
31
- z-index: 1;
32
- width: $popup-arrow-width;
33
- height: $popup-arrow-height;
34
-
35
- &::before {
36
- position: absolute;
37
- content: "";
38
- width: $popup-arrow-width;
39
- height: $popup-arrow-height;
40
- transform: rotate(45deg);
41
- background: $arrow-bg;
42
- }
43
- }
44
- @include content-placement-top();
45
- @include content-placement-bottom();
46
- @include content-placement-left();
47
- @include content-placement-right();
48
-
49
- @include arrow-placement-top();
50
- @include arrow-placement-bottom();
51
- @include arrow-placement-left();
52
- @include arrow-placement-right();
53
-
54
- // animation
55
- .#{$popup-flow}-enter,
56
- .#{$popup-flow}-enter-from,
57
- .#{$popup-flow}-exiting,
58
- .#{$popup-flow}-leave-to {
59
- opacity: 0;
60
- visibility: hidden;
61
- }
62
-
63
- .#{$popup-flow}-enter-to,
64
- .#{$popup-flow}-entering,
65
- .#{$popup-flow}-leave-from,
66
- .#{$popup-flow}-leave {
67
- opacity: 1;
68
- visibility: visible;
69
- transform: none;
70
- }
71
-
72
- .#{$popup-flow}-enter-active {
73
- transition: $popup-flow-transition-enter;
74
- }
75
-
76
- .#{$popup-flow}-leave-active {
77
- transition: $popup-flow-transition-leave;
78
- }
1
+ @use "../../_vars.scss" as *;
2
+ @use "./_vars.scss" as *;
3
+ @use "./_mixin.scss" as *;
4
+
5
+ @use "../../mixins/_layout.scss" as *;
6
+
7
+ @use "../../mixins/_reset.scss" as *;
8
+
9
+ .#{$prefix}-popup {
10
+ @include reset;
11
+
12
+ color: $popup-text-color;
13
+ display: inline-block;
14
+ z-index: $z-index-Popup;
15
+
16
+ &__content {
17
+ position: relative;
18
+ background: $popup-bg;
19
+ box-shadow: $popup-shadow;
20
+ border-radius: $border-radius-medium;
21
+ padding: $popup-padding;
22
+ font-size: $popup-content-font-size;
23
+ line-height: $popup-content-line-height;
24
+ box-sizing: border-box;
25
+ word-break: break-all;
26
+ }
27
+ }
28
+
29
+ .#{$prefix}-popup__arrow {
30
+ position: absolute;
31
+ z-index: 1;
32
+ width: $popup-arrow-width;
33
+ height: $popup-arrow-height;
34
+
35
+ &::before {
36
+ position: absolute;
37
+ content: "";
38
+ width: $popup-arrow-width;
39
+ height: $popup-arrow-height;
40
+ transform: rotate(45deg);
41
+ background: $arrow-bg;
42
+ }
43
+ }
44
+ @include content-placement-top();
45
+ @include content-placement-bottom();
46
+ @include content-placement-left();
47
+ @include content-placement-right();
48
+
49
+ @include arrow-placement-top();
50
+ @include arrow-placement-bottom();
51
+ @include arrow-placement-left();
52
+ @include arrow-placement-right();
53
+
54
+ // animation
55
+ .#{$popup-flow}-enter,
56
+ .#{$popup-flow}-enter-from,
57
+ .#{$popup-flow}-exiting,
58
+ .#{$popup-flow}-leave-to {
59
+ opacity: 0;
60
+ visibility: hidden;
61
+ }
62
+
63
+ .#{$popup-flow}-enter-to,
64
+ .#{$popup-flow}-entering,
65
+ .#{$popup-flow}-leave-from,
66
+ .#{$popup-flow}-leave {
67
+ opacity: 1;
68
+ visibility: visible;
69
+ transform: none;
70
+ }
71
+
72
+ .#{$popup-flow}-enter-active {
73
+ transition: $popup-flow-transition-enter;
74
+ }
75
+
76
+ .#{$popup-flow}-leave-active {
77
+ transition: $popup-flow-transition-leave;
78
+ }
@@ -1,149 +1,149 @@
1
- @use "../../_vars.scss" as *;
2
- @use "./_vars.scss" as *;
3
- @mixin content-placement-top {
4
- .#{$prefix}-popup[data-popper-placement^="top"] {
5
- .#{$prefix}-popup__content {
6
- margin-bottom: $popup-content-margin;
7
-
8
- &--arrow {
9
- margin-bottom: $popup-content-arrow-spacer;
10
- }
11
- }
12
- }
13
- }
14
-
15
- @mixin content-placement-bottom {
16
- .#{$prefix}-popup[data-popper-placement^="bottom"] {
17
- .#{$prefix}-popup__content {
18
- margin-top: $popup-content-margin;
19
-
20
- &--arrow {
21
- margin-top: $popup-content-arrow-spacer;
22
- }
23
- }
24
- }
25
- }
26
-
27
- @mixin content-placement-left {
28
- .#{$prefix}-popup[data-popper-placement^="left"] {
29
- .#{$prefix}-popup__content {
30
- margin-right: $popup-content-margin;
31
-
32
- &--arrow {
33
- margin-right: $popup-content-arrow-spacer;
34
- }
35
-
36
- &--text {
37
- max-width: 480px;
38
- }
39
- }
40
- }
41
- }
42
-
43
- @mixin content-placement-right {
44
- .#{$prefix}-popup[data-popper-placement^="right"] {
45
- .#{$prefix}-popup__content {
46
- margin-left: $popup-content-margin;
47
-
48
- &--arrow {
49
- margin-left: $popup-content-arrow-spacer;
50
- }
51
-
52
- &--text {
53
- max-width: 480px;
54
- }
55
- }
56
- }
57
- }
58
-
59
- @mixin arrow-placement-top() {
60
- .#{$prefix}-popup[data-popper-placement^="top"] .#{$prefix}-popup__arrow {
61
- &::before {
62
- border-top-left-radius: 100%;
63
- box-shadow: $popup-top-arrow-shadow;
64
- }
65
- }
66
-
67
- .#{$prefix}-popup[data-popper-placement="top-start"] .#{$prefix}-popup__arrow {
68
- left: $popup-arrow-width;
69
- }
70
-
71
- .#{$prefix}-popup[data-popper-placement="top"] .#{$prefix}-popup__arrow {
72
- left: 50%;
73
- margin-left: calc(-#{$popup-arrow-width} / 2);
74
- }
75
-
76
- .#{$prefix}-popup[data-popper-placement="top-end"] .#{$prefix}-popup__arrow {
77
- left: calc(100% - $popup-arrow-width * 2);
78
- }
79
- }
80
-
81
- @mixin arrow-placement-bottom() {
82
- .#{$prefix}-popup[data-popper-placement^="bottom"] .#{$prefix}-popup__arrow {
83
- top: calc(-#{$popup-arrow-width} / 2);
84
-
85
- &::before {
86
- border-bottom-right-radius: 100%;
87
- box-shadow: $popup-bottom-arrow-shadow;
88
- }
89
- }
90
-
91
- .#{$prefix}-popup[data-popper-placement="bottom-start"] .#{$prefix}-popup__arrow {
92
- left: $popup-arrow-width;
93
- }
94
-
95
- .#{$prefix}-popup[data-popper-placement="bottom"] .#{$prefix}-popup__arrow {
96
- left: 50%;
97
- margin-left: calc(-#{$popup-arrow-width} / 2);
98
- }
99
-
100
- .#{$prefix}-popup[data-popper-placement="bottom-end"] .#{$prefix}-popup__arrow {
101
- left: calc(100% - $popup-arrow-width * 2);
102
- }
103
- }
104
-
105
- @mixin arrow-placement-left() {
106
- .#{$prefix}-popup[data-popper-placement^="left"] .#{$prefix}-popup__arrow {
107
- right: calc(-#{$popup-arrow-width} / 2);
108
-
109
- &::before {
110
- box-shadow: $popup-left-arrow-shadow;
111
- }
112
- }
113
-
114
- .#{$prefix}-popup[data-popper-placement="left-start"] .#{$prefix}-popup__arrow {
115
- top: $popup-arrow-width;
116
- }
117
-
118
- .#{$prefix}-popup[data-popper-placement="left"] .#{$prefix}-popup__arrow {
119
- top: 50%;
120
- margin-top: calc(-#{$popup-arrow-width} / 2);
121
- }
122
-
123
- .#{$prefix}-popup[data-popper-placement="left-end"] .#{$prefix}-popup__arrow {
124
- top: calc(100% - $popup-arrow-width * 2);
125
- }
126
- }
127
-
128
- @mixin arrow-placement-right() {
129
- .#{$prefix}-popup[data-popper-placement^="right"] .#{$prefix}-popup__arrow {
130
- left: calc(-#{$popup-arrow-width} / 2);
131
-
132
- &::before {
133
- box-shadow: $popup-right-arrow-shadow;
134
- }
135
- }
136
-
137
- .#{$prefix}-popup[data-popper-placement="right-start"] .#{$prefix}-popup__arrow {
138
- top: $popup-arrow-width;
139
- }
140
-
141
- .#{$prefix}-popup[data-popper-placement="right"] .#{$prefix}-popup__arrow {
142
- top: 50%;
143
- margin-top: calc(-#{$popup-arrow-width} / 2);
144
- }
145
-
146
- .#{$prefix}-popup[data-popper-placement="right-end"] .#{$prefix}-popup__arrow {
147
- top: calc(100% - $popup-arrow-width * 2);
148
- }
149
- }
1
+ @use "../../_vars.scss" as *;
2
+ @use "./_vars.scss" as *;
3
+ @mixin content-placement-top {
4
+ .#{$prefix}-popup[data-popper-placement^="top"] {
5
+ .#{$prefix}-popup__content {
6
+ margin-bottom: $popup-content-margin;
7
+
8
+ &--arrow {
9
+ margin-bottom: $popup-content-arrow-spacer;
10
+ }
11
+ }
12
+ }
13
+ }
14
+
15
+ @mixin content-placement-bottom {
16
+ .#{$prefix}-popup[data-popper-placement^="bottom"] {
17
+ .#{$prefix}-popup__content {
18
+ margin-top: $popup-content-margin;
19
+
20
+ &--arrow {
21
+ margin-top: $popup-content-arrow-spacer;
22
+ }
23
+ }
24
+ }
25
+ }
26
+
27
+ @mixin content-placement-left {
28
+ .#{$prefix}-popup[data-popper-placement^="left"] {
29
+ .#{$prefix}-popup__content {
30
+ margin-right: $popup-content-margin;
31
+
32
+ &--arrow {
33
+ margin-right: $popup-content-arrow-spacer;
34
+ }
35
+
36
+ &--text {
37
+ max-width: 480px;
38
+ }
39
+ }
40
+ }
41
+ }
42
+
43
+ @mixin content-placement-right {
44
+ .#{$prefix}-popup[data-popper-placement^="right"] {
45
+ .#{$prefix}-popup__content {
46
+ margin-left: $popup-content-margin;
47
+
48
+ &--arrow {
49
+ margin-left: $popup-content-arrow-spacer;
50
+ }
51
+
52
+ &--text {
53
+ max-width: 480px;
54
+ }
55
+ }
56
+ }
57
+ }
58
+
59
+ @mixin arrow-placement-top() {
60
+ .#{$prefix}-popup[data-popper-placement^="top"] .#{$prefix}-popup__arrow {
61
+ &::before {
62
+ border-top-left-radius: 100%;
63
+ box-shadow: $popup-top-arrow-shadow;
64
+ }
65
+ }
66
+
67
+ .#{$prefix}-popup[data-popper-placement="top-start"] .#{$prefix}-popup__arrow {
68
+ left: $popup-arrow-width;
69
+ }
70
+
71
+ .#{$prefix}-popup[data-popper-placement="top"] .#{$prefix}-popup__arrow {
72
+ left: 50%;
73
+ margin-left: calc(-#{$popup-arrow-width} / 2);
74
+ }
75
+
76
+ .#{$prefix}-popup[data-popper-placement="top-end"] .#{$prefix}-popup__arrow {
77
+ left: calc(100% - $popup-arrow-width * 2);
78
+ }
79
+ }
80
+
81
+ @mixin arrow-placement-bottom() {
82
+ .#{$prefix}-popup[data-popper-placement^="bottom"] .#{$prefix}-popup__arrow {
83
+ top: calc(-#{$popup-arrow-width} / 2);
84
+
85
+ &::before {
86
+ border-bottom-right-radius: 100%;
87
+ box-shadow: $popup-bottom-arrow-shadow;
88
+ }
89
+ }
90
+
91
+ .#{$prefix}-popup[data-popper-placement="bottom-start"] .#{$prefix}-popup__arrow {
92
+ left: $popup-arrow-width;
93
+ }
94
+
95
+ .#{$prefix}-popup[data-popper-placement="bottom"] .#{$prefix}-popup__arrow {
96
+ left: 50%;
97
+ margin-left: calc(-#{$popup-arrow-width} / 2);
98
+ }
99
+
100
+ .#{$prefix}-popup[data-popper-placement="bottom-end"] .#{$prefix}-popup__arrow {
101
+ left: calc(100% - $popup-arrow-width * 2);
102
+ }
103
+ }
104
+
105
+ @mixin arrow-placement-left() {
106
+ .#{$prefix}-popup[data-popper-placement^="left"] .#{$prefix}-popup__arrow {
107
+ right: calc(-#{$popup-arrow-width} / 2);
108
+
109
+ &::before {
110
+ box-shadow: $popup-left-arrow-shadow;
111
+ }
112
+ }
113
+
114
+ .#{$prefix}-popup[data-popper-placement="left-start"] .#{$prefix}-popup__arrow {
115
+ top: $popup-arrow-width;
116
+ }
117
+
118
+ .#{$prefix}-popup[data-popper-placement="left"] .#{$prefix}-popup__arrow {
119
+ top: 50%;
120
+ margin-top: calc(-#{$popup-arrow-width} / 2);
121
+ }
122
+
123
+ .#{$prefix}-popup[data-popper-placement="left-end"] .#{$prefix}-popup__arrow {
124
+ top: calc(100% - $popup-arrow-width * 2);
125
+ }
126
+ }
127
+
128
+ @mixin arrow-placement-right() {
129
+ .#{$prefix}-popup[data-popper-placement^="right"] .#{$prefix}-popup__arrow {
130
+ left: calc(-#{$popup-arrow-width} / 2);
131
+
132
+ &::before {
133
+ box-shadow: $popup-right-arrow-shadow;
134
+ }
135
+ }
136
+
137
+ .#{$prefix}-popup[data-popper-placement="right-start"] .#{$prefix}-popup__arrow {
138
+ top: $popup-arrow-width;
139
+ }
140
+
141
+ .#{$prefix}-popup[data-popper-placement="right"] .#{$prefix}-popup__arrow {
142
+ top: 50%;
143
+ margin-top: calc(-#{$popup-arrow-width} / 2);
144
+ }
145
+
146
+ .#{$prefix}-popup[data-popper-placement="right-end"] .#{$prefix}-popup__arrow {
147
+ top: calc(100% - $popup-arrow-width * 2);
148
+ }
149
+ }
@@ -1,33 +1,33 @@
1
- @use "../../_vars.scss" as *;
2
- // 颜色
3
- $popup-bg: $bg-color-container;
4
- $arrow-bg: $bg-color-container;
5
- $popup-text-color: $text-color-primary;
6
-
7
- // 间距
8
- $popup-padding: $comp-paddingTB-xs $comp-paddingLR-s;
9
- $popup-content-line-height: $text-line-height-base;
10
- $popup-arrow-width: 8px;
11
- $popup-arrow-height: 8px;
12
- $popup-content-arrow-spacer: $comp-margin-l;
13
- $popup-content-margin: $comp-margin-s;
14
-
15
- // 箭头位置偏移
16
- $popup-arrow-position: $popup-arrow-width;
17
- $popup-content-font-size: $font-size-base;
18
-
19
- // 阴影
20
- $popup-shadow: $shadow-2-inset;
21
- $popup-top-arrow-shadow: $shadow-inset-left, $shadow-inset-bottom;
22
- $popup-left-arrow-shadow: $shadow-inset-left, $shadow-inset-top;
23
- $popup-bottom-arrow-shadow: $shadow-inset-top, $shadow-inset-right;
24
- $popup-right-arrow-shadow: $shadow-inset-right, $shadow-inset-bottom;
25
-
26
- // 动画
27
- $popup-flow: "#{prefix}-popup--animation";
28
- $popup-flow-duration: $anim-duration-base;
29
- $popup-flow-fn: $anim-time-fn-ease-in;
30
- $popup-flow-transition-enter: opacity $popup-flow-duration linear;
31
- $popup-flow-transition-leave:
32
- opacity $popup-flow-duration $anim-time-fn-ease-out,
33
- visibility $popup-flow-duration $popup-flow-fn;
1
+ @use "../../_vars.scss" as *;
2
+ // 颜色
3
+ $popup-bg: $bg-color-container;
4
+ $arrow-bg: $bg-color-container;
5
+ $popup-text-color: $text-color-primary;
6
+
7
+ // 间距
8
+ $popup-padding: $comp-paddingTB-xs $comp-paddingLR-s;
9
+ $popup-content-line-height: $text-line-height-base;
10
+ $popup-arrow-width: 8px;
11
+ $popup-arrow-height: 8px;
12
+ $popup-content-arrow-spacer: $comp-margin-l;
13
+ $popup-content-margin: $comp-margin-s;
14
+
15
+ // 箭头位置偏移
16
+ $popup-arrow-position: $popup-arrow-width;
17
+ $popup-content-font-size: $font-size-base;
18
+
19
+ // 阴影
20
+ $popup-shadow: $shadow-2-inset;
21
+ $popup-top-arrow-shadow: $shadow-inset-left, $shadow-inset-bottom;
22
+ $popup-left-arrow-shadow: $shadow-inset-left, $shadow-inset-top;
23
+ $popup-bottom-arrow-shadow: $shadow-inset-top, $shadow-inset-right;
24
+ $popup-right-arrow-shadow: $shadow-inset-right, $shadow-inset-bottom;
25
+
26
+ // 动画
27
+ $popup-flow: "#{prefix}-popup--animation";
28
+ $popup-flow-duration: $anim-duration-base;
29
+ $popup-flow-fn: $anim-time-fn-ease-in;
30
+ $popup-flow-transition-enter: opacity $popup-flow-duration linear;
31
+ $popup-flow-transition-leave:
32
+ opacity $popup-flow-duration $anim-time-fn-ease-out,
33
+ visibility $popup-flow-duration $popup-flow-fn;