antd-mobile 5.0.0-rc.23 → 5.0.0-rc.24

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 (135) hide show
  1. package/2x/README.md +6 -6
  2. package/2x/cjs/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  3. package/2x/cjs/components/date-picker/date-picker.d.ts +1 -1
  4. package/2x/cjs/components/date-picker-view/date-picker-view.d.ts +3 -2
  5. package/2x/cjs/components/form/form-item.css +3 -2
  6. package/2x/cjs/components/form/form-item.d.ts +2 -2
  7. package/2x/cjs/components/form/form-item.js +9 -5
  8. package/2x/cjs/components/form/form.css +3 -3
  9. package/2x/cjs/components/form/form.d.ts +5 -4
  10. package/2x/cjs/components/form/index.css +6 -5
  11. package/2x/cjs/components/form/index.d.ts +5 -4
  12. package/2x/cjs/components/input/input.d.ts +2 -2
  13. package/2x/cjs/components/input/input.js +3 -1
  14. package/2x/cjs/components/list/list.css +2 -6
  15. package/2x/cjs/components/picker/picker.css +10 -2
  16. package/2x/cjs/components/picker/picker.d.ts +1 -1
  17. package/2x/cjs/components/picker-view/picker-view.css +2 -1
  18. package/2x/cjs/components/picker-view/picker-view.d.ts +1 -1
  19. package/2x/cjs/components/popover/arrow.d.ts +3 -0
  20. package/2x/cjs/components/popover/arrow.js +26 -0
  21. package/2x/cjs/components/popover/index.d.ts +7 -15
  22. package/2x/cjs/components/popover/index.js +4 -2
  23. package/2x/cjs/components/popover/popover-menu.css +63 -0
  24. package/2x/cjs/components/popover/popover-menu.d.ts +20 -0
  25. package/{cjs/components/popover/pop-menu.js → 2x/cjs/components/popover/popover-menu.js} +23 -26
  26. package/2x/cjs/components/popover/popover.css +90 -318
  27. package/2x/cjs/components/popover/popover.d.ts +9 -8
  28. package/2x/cjs/components/popover/popover.js +11 -17
  29. package/2x/cjs/components/text-area/text-area.css +9 -9
  30. package/2x/cjs/components/text-area/text-area.d.ts +2 -2
  31. package/2x/cjs/components/text-area/text-area.js +40 -32
  32. package/2x/es/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  33. package/2x/es/components/date-picker/date-picker.d.ts +1 -1
  34. package/2x/es/components/date-picker-view/date-picker-view.d.ts +3 -2
  35. package/2x/es/components/form/form-item.css +3 -2
  36. package/2x/es/components/form/form-item.d.ts +2 -2
  37. package/2x/es/components/form/form-item.js +9 -5
  38. package/2x/es/components/form/form.css +3 -3
  39. package/2x/es/components/form/form.d.ts +5 -4
  40. package/2x/es/components/form/index.css +6 -5
  41. package/2x/es/components/form/index.d.ts +5 -4
  42. package/2x/es/components/input/input.d.ts +2 -2
  43. package/2x/es/components/input/input.js +3 -1
  44. package/2x/es/components/list/list.css +2 -6
  45. package/2x/es/components/picker/picker.css +10 -2
  46. package/2x/es/components/picker/picker.d.ts +1 -1
  47. package/2x/es/components/picker-view/picker-view.css +2 -1
  48. package/2x/es/components/picker-view/picker-view.d.ts +1 -1
  49. package/2x/es/components/popover/arrow.d.ts +3 -0
  50. package/2x/es/components/popover/arrow.js +12 -0
  51. package/2x/es/components/popover/index.d.ts +7 -15
  52. package/2x/es/components/popover/index.js +3 -2
  53. package/2x/es/components/popover/popover-menu.css +63 -0
  54. package/2x/es/components/popover/popover-menu.d.ts +20 -0
  55. package/2x/es/components/popover/popover-menu.js +52 -0
  56. package/2x/es/components/popover/popover.css +90 -318
  57. package/2x/es/components/popover/popover.d.ts +9 -8
  58. package/2x/es/components/popover/popover.js +10 -17
  59. package/2x/es/components/text-area/text-area.css +9 -9
  60. package/2x/es/components/text-area/text-area.d.ts +2 -2
  61. package/2x/es/components/text-area/text-area.js +40 -31
  62. package/2x/package.json +1 -1
  63. package/README.md +6 -6
  64. package/cjs/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  65. package/cjs/components/date-picker/date-picker.d.ts +1 -1
  66. package/cjs/components/date-picker-view/date-picker-view.d.ts +3 -2
  67. package/cjs/components/form/form-item.css +3 -2
  68. package/cjs/components/form/form-item.d.ts +2 -2
  69. package/cjs/components/form/form-item.js +9 -5
  70. package/cjs/components/form/form.css +3 -3
  71. package/cjs/components/form/form.d.ts +5 -4
  72. package/cjs/components/form/index.css +6 -5
  73. package/cjs/components/form/index.d.ts +5 -4
  74. package/cjs/components/input/input.d.ts +2 -2
  75. package/cjs/components/input/input.js +3 -1
  76. package/cjs/components/list/list.css +2 -5
  77. package/cjs/components/picker/picker.css +9 -2
  78. package/cjs/components/picker/picker.d.ts +1 -1
  79. package/cjs/components/picker-view/picker-view.css +2 -1
  80. package/cjs/components/picker-view/picker-view.d.ts +1 -1
  81. package/cjs/components/popover/arrow.d.ts +3 -0
  82. package/cjs/components/popover/arrow.js +26 -0
  83. package/cjs/components/popover/index.d.ts +7 -15
  84. package/cjs/components/popover/index.js +4 -2
  85. package/cjs/components/popover/popover-menu.css +52 -0
  86. package/cjs/components/popover/popover-menu.d.ts +20 -0
  87. package/{2x/cjs/components/popover/pop-menu.js → cjs/components/popover/popover-menu.js} +23 -26
  88. package/cjs/components/popover/popover.css +83 -276
  89. package/cjs/components/popover/popover.d.ts +9 -8
  90. package/cjs/components/popover/popover.js +11 -17
  91. package/cjs/components/text-area/text-area.css +9 -9
  92. package/cjs/components/text-area/text-area.d.ts +2 -2
  93. package/cjs/components/text-area/text-area.js +40 -32
  94. package/es/components/cascade-picker-view/cascade-picker-view.d.ts +1 -2
  95. package/es/components/date-picker/date-picker.d.ts +1 -1
  96. package/es/components/date-picker-view/date-picker-view.d.ts +3 -2
  97. package/es/components/form/form-item.css +3 -2
  98. package/es/components/form/form-item.d.ts +2 -2
  99. package/es/components/form/form-item.js +9 -5
  100. package/es/components/form/form.css +3 -3
  101. package/es/components/form/form.d.ts +5 -4
  102. package/es/components/form/index.css +6 -5
  103. package/es/components/form/index.d.ts +5 -4
  104. package/es/components/input/input.d.ts +2 -2
  105. package/es/components/input/input.js +3 -1
  106. package/es/components/list/list.css +2 -5
  107. package/es/components/picker/picker.css +9 -2
  108. package/es/components/picker/picker.d.ts +1 -1
  109. package/es/components/picker-view/picker-view.css +2 -1
  110. package/es/components/picker-view/picker-view.d.ts +1 -1
  111. package/es/components/popover/arrow.d.ts +3 -0
  112. package/es/components/popover/arrow.js +12 -0
  113. package/es/components/popover/index.d.ts +7 -15
  114. package/es/components/popover/index.js +3 -2
  115. package/es/components/popover/popover-menu.css +52 -0
  116. package/es/components/popover/popover-menu.d.ts +20 -0
  117. package/es/components/popover/popover-menu.js +52 -0
  118. package/es/components/popover/popover.css +83 -276
  119. package/es/components/popover/popover.d.ts +9 -8
  120. package/es/components/popover/popover.js +10 -17
  121. package/es/components/text-area/text-area.css +9 -9
  122. package/es/components/text-area/text-area.d.ts +2 -2
  123. package/es/components/text-area/text-area.js +40 -31
  124. package/package.json +1 -1
  125. package/umd/antd-mobile.js +1 -1
  126. package/2x/cjs/components/popover/animation.css +0 -111
  127. package/2x/cjs/components/popover/pop-menu.d.ts +0 -28
  128. package/2x/es/components/popover/animation.css +0 -111
  129. package/2x/es/components/popover/pop-menu.d.ts +0 -28
  130. package/2x/es/components/popover/pop-menu.js +0 -54
  131. package/cjs/components/popover/animation.css +0 -96
  132. package/cjs/components/popover/pop-menu.d.ts +0 -28
  133. package/es/components/popover/animation.css +0 -96
  134. package/es/components/popover/pop-menu.d.ts +0 -28
  135. package/es/components/popover/pop-menu.js +0 -54
@@ -0,0 +1,52 @@
1
+ .adm-popover-menu {
2
+ --border-color: var(--adm-border-color);
3
+ }
4
+ .adm-popover-menu.adm-popover {
5
+ --content-padding: 0;
6
+ }
7
+ .adm-popover-menu-list {
8
+ overflow: hidden;
9
+ min-width: 120px;
10
+ }
11
+ .adm-popover-menu-list-inner {
12
+ margin-top: -1px;
13
+ }
14
+ .adm-popover-menu-item {
15
+ display: flex;
16
+ padding-left: 20px;
17
+ justify-content: flex-start;
18
+ align-items: center;
19
+ position: relative;
20
+ }
21
+ .adm-popover-menu-item-icon {
22
+ flex: none;
23
+ padding-right: 8px;
24
+ font-size: 20px;
25
+ }
26
+ .adm-popover-menu-item-text {
27
+ flex: auto;
28
+ padding: 14px 20px 14px 0;
29
+ border-top: solid 1px var(--border-color);
30
+ }
31
+ .adm-popover-menu-item-disabled {
32
+ cursor: not-allowed;
33
+ }
34
+ .adm-popover-menu-item-disabled > * {
35
+ opacity: 0.4;
36
+ }
37
+ .adm-popover-menu-item:active:not(.adm-popover-menu-item-disabled) {
38
+ background-color: var(--border-color);
39
+ }
40
+ .adm-popover-menu-item:active:not(.adm-popover-menu-item-disabled)::after {
41
+ content: ' ';
42
+ display: block;
43
+ position: absolute;
44
+ width: 100%;
45
+ bottom: -1px;
46
+ left: 0;
47
+ border-bottom: solid 1px var(--border-color);
48
+ }
49
+ .adm-popover.adm-popover-dark.adm-popover-menu {
50
+ --border-color: #333333;
51
+ --background: rgba(0, 0, 0, 0.9);
52
+ }
@@ -0,0 +1,20 @@
1
+ import React, { ReactElement, Ref } from 'react';
2
+ import { PopoverProps, PopoverRef } from './popover';
3
+ export declare type Action = {
4
+ text: React.ReactNode;
5
+ icon?: React.ReactNode;
6
+ disabled?: boolean;
7
+ key?: string;
8
+ onClick?: () => void;
9
+ [key: string]: any;
10
+ };
11
+ export declare type PopoverMenuProps<T> = Omit<PopoverProps, 'content'> & {
12
+ actions: T[];
13
+ onAction?: (text: T) => void;
14
+ };
15
+ export declare const PopoverMenu: <T extends Action = Action>(props: Pick<PopoverProps, "children" | "style" | "visible" | "className" | "tabIndex" | "mode" | "align" | "getContainer" | "stopPropagation" | "trigger" | "defaultVisible" | "onVisibleChange" | "placement" | "destroyOnHide"> & {
16
+ actions: T[];
17
+ onAction?: ((text: T) => void) | undefined;
18
+ } & {
19
+ ref?: ((instance: PopoverRef | null) => void) | React.RefObject<PopoverRef> | null | undefined;
20
+ }) => ReactElement;
@@ -0,0 +1,52 @@
1
+ import React, { forwardRef, useCallback, useImperativeHandle, useMemo, useRef } from 'react';
2
+ import classNames from 'classnames';
3
+ import { Popover } from './popover';
4
+ const classPrefix = `adm-popover-menu`;
5
+ export const PopoverMenu = forwardRef((props, ref) => {
6
+ const innerRef = useRef(null);
7
+ useImperativeHandle(ref, () => innerRef.current, []);
8
+ const onClick = useCallback(e => {
9
+ var _a;
10
+
11
+ const {
12
+ onAction
13
+ } = props;
14
+
15
+ if (onAction) {
16
+ onAction(e);
17
+ }
18
+
19
+ (_a = innerRef.current) === null || _a === void 0 ? void 0 : _a.hide();
20
+ }, [props.onAction]);
21
+ const overlay = useMemo(() => {
22
+ return React.createElement("div", {
23
+ className: `${classPrefix}-list`
24
+ }, React.createElement("div", {
25
+ className: `${classPrefix}-list-inner`
26
+ }, props.actions.map((action, index) => {
27
+ var _a;
28
+
29
+ return React.createElement("a", {
30
+ key: (_a = action.key) !== null && _a !== void 0 ? _a : index,
31
+ className: classNames(`${classPrefix}-item`, 'adm-plain-anchor', action.disabled && `${classPrefix}-item-disabled`),
32
+ onClick: () => {
33
+ var _a;
34
+
35
+ if (action.disabled) return;
36
+ onClick(action);
37
+ (_a = action.onClick) === null || _a === void 0 ? void 0 : _a.call(action);
38
+ }
39
+ }, action.icon && React.createElement("div", {
40
+ className: `${classPrefix}-item-icon`
41
+ }, action.icon), React.createElement("div", {
42
+ className: `${classPrefix}-item-text`
43
+ }, action.text));
44
+ })));
45
+ }, [props.actions, onClick]);
46
+ return React.createElement(Popover, Object.assign({
47
+ ref: innerRef
48
+ }, props, {
49
+ className: classNames(classPrefix, props.className),
50
+ content: overlay
51
+ }), props.children);
52
+ });
@@ -1,120 +1,26 @@
1
- @keyframes amSlideDownIn {
2
- 0% {
3
- transform: scaleY(0.8);
4
- transform-origin: 0% 0%;
5
- opacity: 0;
6
- }
7
- 100% {
8
- transform: scaleY(1);
9
- transform-origin: 0% 0%;
10
- opacity: 1;
11
- }
12
- }
13
- @keyframes amSlideDownOut {
14
- 0% {
15
- transform: scaleY(1);
16
- transform-origin: 0% 0%;
17
- opacity: 1;
18
- }
19
- 100% {
20
- transform: scaleY(0.8);
21
- transform-origin: 0% 0%;
22
- opacity: 0;
23
- }
24
- }
25
- @keyframes amSlideUpIn {
26
- 0% {
27
- transform: scaleY(0.8);
28
- transform-origin: 100% 100%;
29
- opacity: 0;
30
- }
31
- 100% {
32
- transform: scaleY(1);
33
- transform-origin: 100% 100%;
34
- opacity: 1;
35
- }
36
- }
37
- @keyframes amSlideUpOut {
38
- 0% {
39
- transform: scaleY(1);
40
- transform-origin: 100% 100%;
41
- opacity: 1;
42
- }
43
- 100% {
44
- transform: scaleY(0.8);
45
- transform-origin: 100% 100%;
46
- opacity: 0;
47
- }
48
- }
49
- @keyframes amSlideRightIn {
50
- 0% {
51
- transform: scaleX(0.8);
52
- transform-origin: 0% 0%;
53
- opacity: 0;
54
- }
55
- 100% {
56
- transform: scaleX(1);
57
- transform-origin: 0% 0%;
58
- opacity: 1;
59
- }
60
- }
61
- @keyframes amSlideRightOut {
62
- 0% {
63
- transform: scaleX(1);
64
- transform-origin: 0% 0%;
65
- opacity: 1;
66
- }
67
- 100% {
68
- transform: scaleX(0.8);
69
- transform-origin: 0% 0%;
70
- opacity: 0;
71
- }
72
- }
73
- @keyframes amSlideLeftIn {
74
- 0% {
75
- transform: scaleX(0.8);
76
- transform-origin: 100% 0%;
77
- opacity: 0;
78
- }
79
- 100% {
80
- transform: scaleX(1);
81
- transform-origin: 100% 0%;
82
- opacity: 1;
83
- }
84
- }
85
- @keyframes amSlideLeftOut {
86
- 0% {
87
- transform: scaleX(1);
88
- transform-origin: 100% 0%;
89
- opacity: 1;
90
- }
91
- 100% {
92
- transform: scaleX(0.8);
93
- transform-origin: 100% 0%;
94
- opacity: 0;
95
- }
96
- }
97
1
  .adm-popover {
98
2
  --z-index: var(--adm-popover-z-index, 1030);
3
+ --background: #ffffff;
4
+ --arrow-size: 8px;
5
+ --content-padding: 8px 12px;
99
6
  position: absolute;
100
7
  top: 0;
101
8
  left: 0;
102
9
  z-index: var(--z-index);
103
- font-weight: normal;
104
10
  white-space: normal;
105
11
  text-align: left;
106
12
  cursor: auto;
107
13
  user-select: text;
108
14
  animation: none;
109
15
  }
110
- .adm-popover-light {
111
- --popover-bg: #ffffff;
112
- }
113
- .adm-popover-dark {
114
- --popover-bg: rgba(0, 0, 0);
16
+ .adm-popover.adm-popover-dark {
17
+ --background: rgba(0, 0, 0, 0.75);
115
18
  --adm-color-text: #ffffff;
116
19
  color: white;
117
20
  }
21
+ .adm-popover.adm-popover-dark .adm-popover-inner {
22
+ box-shadow: none;
23
+ }
118
24
  .adm-popover::after {
119
25
  position: absolute;
120
26
  background: rgba(255, 255, 255, 0.01);
@@ -126,215 +32,116 @@
126
32
  .adm-popover-placement-top,
127
33
  .adm-popover-placement-topLeft,
128
34
  .adm-popover-placement-topRight {
129
- padding-bottom: 12px;
35
+ padding-bottom: var(--arrow-size);
36
+ }
37
+ .adm-popover-placement-top .adm-popover-arrow,
38
+ .adm-popover-placement-topLeft .adm-popover-arrow,
39
+ .adm-popover-placement-topRight .adm-popover-arrow {
40
+ bottom: 0;
41
+ --arrow-icon-rotate: 0deg;
42
+ }
43
+ .adm-popover-placement-top .adm-popover-arrow {
44
+ left: 50%;
45
+ transform: translateX(-50%);
130
46
  }
131
- .adm-popover-placement-top.leaving,
132
- .adm-popover-placement-topLeft.leaving,
133
- .adm-popover-placement-topRight.leaving {
134
- animation-name: amSlideUpOut;
135
- animation-duration: 200ms;
47
+ .adm-popover-placement-topLeft .adm-popover-arrow {
48
+ left: 12px;
136
49
  }
137
- .adm-popover-placement-top.entering,
138
- .adm-popover-placement-topLeft.entering,
139
- .adm-popover-placement-topRight.entering {
140
- animation-name: amSlideUpIn;
141
- animation-duration: 200ms;
50
+ .adm-popover-placement-topRight .adm-popover-arrow {
51
+ right: 12px;
142
52
  }
143
53
  .adm-popover-placement-right,
144
54
  .adm-popover-placement-rightTop,
145
55
  .adm-popover-placement-rightBottom {
146
- padding-left: 12px;
56
+ padding-left: var(--arrow-size);
57
+ }
58
+ .adm-popover-placement-right .adm-popover-arrow,
59
+ .adm-popover-placement-rightTop .adm-popover-arrow,
60
+ .adm-popover-placement-rightBottom .adm-popover-arrow {
61
+ left: 0;
62
+ --arrow-icon-rotate: 90deg;
63
+ }
64
+ .adm-popover-placement-right .adm-popover-arrow {
65
+ top: 50%;
66
+ transform: translateY(-50%);
147
67
  }
148
- .adm-popover-placement-right.leaving,
149
- .adm-popover-placement-rightTop.leaving,
150
- .adm-popover-placement-rightBottom.leaving {
151
- animation-name: amSlideRightOut;
152
- animation-duration: 200ms;
68
+ .adm-popover-placement-rightTop .adm-popover-arrow {
69
+ top: 12px;
153
70
  }
154
- .adm-popover-placement-right.entering,
155
- .adm-popover-placement-rightTop.entering,
156
- .adm-popover-placement-rightBottom.entering {
157
- animation-name: amSlideRightIn;
158
- animation-duration: 200ms;
71
+ .adm-popover-placement-rightBottom .adm-popover-arrow {
72
+ bottom: 12px;
159
73
  }
160
74
  .adm-popover-placement-bottom,
161
75
  .adm-popover-placement-bottomLeft,
162
76
  .adm-popover-placement-bottomRight {
163
- padding-top: 12px;
77
+ padding-top: var(--arrow-size);
164
78
  }
165
- .adm-popover-placement-bottom.leaving,
166
- .adm-popover-placement-bottomLeft.leaving,
167
- .adm-popover-placement-bottomRight.leaving {
168
- animation-name: amSlideDownOut;
169
- animation-duration: 200ms;
79
+ .adm-popover-placement-bottom .adm-popover-arrow,
80
+ .adm-popover-placement-bottomLeft .adm-popover-arrow,
81
+ .adm-popover-placement-bottomRight .adm-popover-arrow {
82
+ top: 0;
83
+ --arrow-icon-rotate: 180deg;
170
84
  }
171
- .adm-popover-placement-bottom.entering,
172
- .adm-popover-placement-bottomLeft.entering,
173
- .adm-popover-placement-bottomRight.entering {
174
- animation-name: amSlideDownIn;
175
- animation-duration: 200ms;
85
+ .adm-popover-placement-bottom .adm-popover-arrow {
86
+ left: 50%;
87
+ transform: translateX(-50%);
88
+ }
89
+ .adm-popover-placement-bottomLeft .adm-popover-arrow {
90
+ left: 12px;
91
+ }
92
+ .adm-popover-placement-bottomRight .adm-popover-arrow {
93
+ right: 12px;
176
94
  }
177
95
  .adm-popover-placement-left,
178
96
  .adm-popover-placement-leftTop,
179
97
  .adm-popover-placement-leftBottom {
180
- padding-right: 12px;
98
+ padding-right: var(--arrow-size);
99
+ }
100
+ .adm-popover-placement-left .adm-popover-arrow,
101
+ .adm-popover-placement-leftTop .adm-popover-arrow,
102
+ .adm-popover-placement-leftBottom .adm-popover-arrow {
103
+ right: 0;
104
+ --arrow-icon-rotate: 270deg;
181
105
  }
182
- .adm-popover-placement-left.leaving,
183
- .adm-popover-placement-leftTop.leaving,
184
- .adm-popover-placement-leftBottom.leaving {
185
- animation-name: amSlideLeftOut;
186
- animation-duration: 200ms;
106
+ .adm-popover-placement-left .adm-popover-arrow {
107
+ top: 50%;
108
+ transform: translateY(-50%);
187
109
  }
188
- .adm-popover-placement-left.entering,
189
- .adm-popover-placement-leftTop.entering,
190
- .adm-popover-placement-leftBottom.entering {
191
- animation-name: amSlideLeftIn;
192
- animation-duration: 200ms;
110
+ .adm-popover-placement-leftTop .adm-popover-arrow {
111
+ top: 12px;
112
+ }
113
+ .adm-popover-placement-leftBottom .adm-popover-arrow {
114
+ bottom: 12px;
193
115
  }
194
116
  .adm-popover-inner {
195
- background-color: var(--popover-bg);
117
+ background-color: var(--background);
196
118
  background-clip: padding-box;
197
- border-radius: 4px;
198
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
199
- box-shadow: 0 0 8px rgba(0, 0, 0, 0.15) \9;
119
+ border-radius: 8px;
120
+ box-shadow: 0 0 30px 0 rgba(51, 51, 51, 0.2);
121
+ font-size: 15px;
200
122
  min-width: 32px;
201
- min-height: 32px;
202
123
  overflow-y: hidden;
203
124
  }
204
125
  .adm-popover-inner-content {
205
- padding: 12px;
206
- }
207
- .adm-popover-inner-menu {
208
- min-width: 120px;
209
- display: flex;
210
- justify-content: center;
211
- align-items: center;
212
- cursor: pointer;
213
- border-bottom: 1px solid var(--adm-border-color);
214
- }
215
- .adm-popover-inner-menu-with-icon {
216
- min-width: 140px;
217
- }
218
- .adm-popover-inner-menu-icon {
219
- margin-right: 12px;
220
- font-size: 20px;
221
- line-height: 1;
222
- vertical-align: -0.075em;
223
- }
224
- .adm-popover-inner-menu:last-child {
225
- border-bottom: none;
226
- }
227
- .adm-popover-inner-menu button {
228
- border-radius: 0;
229
- padding: 10px 12px;
230
- text-align: left;
231
- }
232
- .adm-popover-menu .adm-popover-inner-content {
233
- padding: 0;
234
- }
235
- @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
236
- .adm-popover {
237
- /* IE10+ */
238
- }
239
- .adm-popover-inner {
240
- box-shadow: 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 9px 28px 8px rgba(0, 0, 0, 0.05);
241
- }
126
+ padding: var(--content-padding);
242
127
  }
243
128
  .adm-popover-arrow {
244
129
  position: absolute;
245
130
  display: block;
246
- width: 16.97056275px;
247
- height: 16.97056275px;
131
+ height: var(--arrow-size);
132
+ width: var(--arrow-size);
133
+ overflow: visible;
248
134
  background: transparent;
249
135
  }
250
- .adm-popover-arrow-content {
251
- position: absolute;
252
- width: 12px;
253
- height: 12px;
254
- inset: 0;
136
+ .adm-popover-arrow-icon {
255
137
  display: block;
256
- margin: auto;
257
- background-color: var(--popover-bg);
258
- content: '';
259
- pointer-events: auto;
260
- }
261
- .adm-popover-placement-top > .adm-popover-content > .adm-popover-arrow,
262
- .adm-popover-placement-topLeft > .adm-popover-content > .adm-popover-arrow,
263
- .adm-popover-placement-topRight > .adm-popover-content > .adm-popover-arrow {
264
- bottom: 1px;
265
- }
266
- .adm-popover-placement-top > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content,
267
- .adm-popover-placement-topLeft > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content,
268
- .adm-popover-placement-topRight > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content {
269
- transform: translateY(-4.24264069px) rotate(45deg);
270
- }
271
- .adm-popover-placement-top > .adm-popover-content > .adm-popover-arrow {
272
- left: 50%;
273
- transform: translateX(-50%);
274
- }
275
- .adm-popover-placement-topLeft > .adm-popover-content > .adm-popover-arrow {
276
- left: 16px;
277
- }
278
- .adm-popover-placement-topRight > .adm-popover-content > .adm-popover-arrow {
279
- right: 16px;
280
- }
281
- .adm-popover-placement-right > .adm-popover-content > .adm-popover-arrow,
282
- .adm-popover-placement-rightTop > .adm-popover-content > .adm-popover-arrow,
283
- .adm-popover-placement-rightBottom > .adm-popover-content > .adm-popover-arrow {
284
- left: 1px;
285
- }
286
- .adm-popover-placement-right > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content,
287
- .adm-popover-placement-rightTop > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content,
288
- .adm-popover-placement-rightBottom > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content {
289
- transform: translate(4.24264069px) rotate(45deg);
290
- }
291
- .adm-popover-placement-right > .adm-popover-content > .adm-popover-arrow {
138
+ height: var(--arrow-size);
139
+ width: 15px;
140
+ position: absolute;
292
141
  top: 50%;
293
- transform: translateY(-50%);
294
- }
295
- .adm-popover-placement-rightTop > .adm-popover-content > .adm-popover-arrow {
296
- top: 12px;
297
- }
298
- .adm-popover-placement-rightBottom > .adm-popover-content > .adm-popover-arrow {
299
- bottom: 12px;
300
- }
301
- .adm-popover-placement-bottom > .adm-popover-content > .adm-popover-arrow,
302
- .adm-popover-placement-bottomLeft > .adm-popover-content > .adm-popover-arrow,
303
- .adm-popover-placement-bottomRight > .adm-popover-content > .adm-popover-arrow {
304
- top: 1px;
305
- }
306
- .adm-popover-placement-bottom > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content,
307
- .adm-popover-placement-bottomLeft > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content,
308
- .adm-popover-placement-bottomRight > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content {
309
- transform: translateY(4.24264069px) rotate(45deg);
310
- }
311
- .adm-popover-placement-bottom > .adm-popover-content > .adm-popover-arrow {
312
142
  left: 50%;
313
- transform: translateX(-50%);
314
- }
315
- .adm-popover-placement-bottomLeft > .adm-popover-content > .adm-popover-arrow {
316
- left: 16px;
143
+ transform: translate(-50%, -50%) rotate(var(--arrow-icon-rotate));
317
144
  }
318
- .adm-popover-placement-bottomRight > .adm-popover-content > .adm-popover-arrow {
319
- right: 16px;
320
- }
321
- .adm-popover-placement-left > .adm-popover-content > .adm-popover-arrow,
322
- .adm-popover-placement-leftTop > .adm-popover-content > .adm-popover-arrow,
323
- .adm-popover-placement-leftBottom > .adm-popover-content > .adm-popover-arrow {
324
- right: 1px;
325
- }
326
- .adm-popover-placement-left > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content,
327
- .adm-popover-placement-leftTop > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content,
328
- .adm-popover-placement-leftBottom > .adm-popover-content > .adm-popover-arrow > .adm-popover-arrow-content {
329
- transform: translate(-4.24264069px) rotate(45deg);
330
- }
331
- .adm-popover-placement-left > .adm-popover-content > .adm-popover-arrow {
332
- top: 50%;
333
- transform: translateY(-50%);
334
- }
335
- .adm-popover-placement-leftTop > .adm-popover-content > .adm-popover-arrow {
336
- top: 12px;
337
- }
338
- .adm-popover-placement-leftBottom > .adm-popover-content > .adm-popover-arrow {
339
- bottom: 12px;
145
+ .adm-popover .adm-popover-arrow {
146
+ color: var(--background);
340
147
  }
@@ -2,28 +2,29 @@ import React, { ReactElement } from 'react';
2
2
  import type { TooltipProps } from 'rc-tooltip/lib/Tooltip';
3
3
  import { NativeProps } from '../../utils/native-props';
4
4
  import { PropagationEvent } from '../../utils/with-stop-propagation';
5
- export declare type BasePopoverProps = {
6
- getContainer?: () => HTMLElement;
5
+ import { GetContainer } from '../../utils/render-to-container';
6
+ export declare type PopoverProps = {
7
+ getContainer?: GetContainer;
7
8
  destroyOnHide?: boolean;
8
9
  children: ReactElement;
9
10
  mode?: 'light' | 'dark';
10
11
  trigger?: 'click';
11
- placement: 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
12
+ placement?: 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
12
13
  stopPropagation?: PropagationEvent[];
13
- } & Pick<TooltipProps, 'defaultVisible' | 'visible' | 'onVisibleChange' | 'overlayStyle' | 'overlayClassName' | 'align' | 'zIndex'> & NativeProps<'--z-index'>;
14
+ content: React.ReactNode;
15
+ } & Pick<TooltipProps, 'defaultVisible' | 'visible' | 'onVisibleChange' | 'align'> & NativeProps<'--z-index'>;
14
16
  export declare type PopoverRef = {
15
17
  show: () => void;
16
18
  hide: () => void;
17
19
  visible: boolean;
18
20
  };
19
21
  export declare const Popover: React.ForwardRefExoticComponent<{
20
- getContainer?: (() => HTMLElement) | undefined;
22
+ getContainer?: HTMLElement | (() => HTMLElement) | null | undefined;
21
23
  destroyOnHide?: boolean | undefined;
22
24
  children: ReactElement;
23
25
  mode?: "dark" | "light" | undefined;
24
26
  trigger?: "click" | undefined;
25
- placement: 'top' | 'left' | 'right' | 'bottom' | 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
27
+ placement?: "left" | "right" | "bottom" | "top" | "topLeft" | "topRight" | "bottomLeft" | "bottomRight" | "leftTop" | "leftBottom" | "rightTop" | "rightBottom" | undefined;
26
28
  stopPropagation?: "click"[] | undefined;
27
- } & Pick<TooltipProps, "visible" | "zIndex" | "align" | "defaultVisible" | "onVisibleChange" | "overlayStyle" | "overlayClassName"> & NativeProps<"--z-index"> & {
28
29
  content: React.ReactNode;
29
- } & React.RefAttributes<PopoverRef>>;
30
+ } & Pick<TooltipProps, "visible" | "align" | "defaultVisible" | "onVisibleChange"> & NativeProps<"--z-index"> & React.RefAttributes<PopoverRef>>;
@@ -4,12 +4,13 @@ import classNames from 'classnames';
4
4
  import { usePropsValue } from '../../utils/use-props-value';
5
5
  import { mergeProps } from '../../utils/with-default-props';
6
6
  import { withStopPropagation } from '../../utils/with-stop-propagation';
7
+ import { Arrow } from './arrow';
7
8
  const classPrefix = `adm-popover`;
8
- const enterClassName = 'entering';
9
- const leaveClassName = 'leaving';
10
9
  const defaultProps = {
10
+ placement: 'top',
11
11
  defaultVisible: false,
12
- stopPropagation: ['click']
12
+ stopPropagation: ['click'],
13
+ getContainer: () => document.body
13
14
  };
14
15
  export const Popover = forwardRef((p, ref) => {
15
16
  var _a;
@@ -34,27 +35,19 @@ export const Popover = forwardRef((p, ref) => {
34
35
  className: `${classPrefix}-inner-content`
35
36
  }, props.content));
36
37
  return React.createElement(Tooltip, Object.assign({}, props, {
37
- overlayClassName: classNames(`${classPrefix}-${mode}`, props.overlayClassName),
38
+ placement: props.placement,
39
+ align: props.align,
40
+ overlayClassName: classNames(`${classPrefix}-${mode}`, props.className),
41
+ overlayStyle: props.style,
38
42
  destroyTooltipOnHide: props.destroyOnHide,
39
43
  prefixCls: classPrefix,
40
44
  getTooltipContainer: props.getContainer || (() => document.body),
41
45
  visible: visible,
42
- arrowContent: React.createElement("span", {
43
- className: `${classPrefix}-arrow-content`
46
+ arrowContent: React.createElement(Arrow, {
47
+ className: `${classPrefix}-arrow-icon`
44
48
  }),
45
49
  onVisibleChange: setVisible,
46
50
  trigger: (_a = props.trigger) !== null && _a !== void 0 ? _a : [],
47
- motion: {
48
- motionName: {
49
- appear: enterClassName,
50
- appearActive: enterClassName,
51
- enter: enterClassName,
52
- enterActive: enterClassName,
53
- leaveActive: leaveClassName,
54
- leave: leaveClassName
55
- },
56
- motionDeadline: 200
57
- },
58
51
  overlay: overlay
59
52
  }), props.children);
60
53
  });
@@ -1,4 +1,4 @@
1
- .adm-text-area-wrapper {
1
+ .adm-text-area {
2
2
  --font-size: 17px;
3
3
  --color: var(--adm-color-text);
4
4
  --placeholder-color: var(--adm-color-light);
@@ -7,7 +7,7 @@
7
7
  max-width: 100%;
8
8
  max-height: 100%;
9
9
  }
10
- .adm-text-area {
10
+ .adm-text-area-element {
11
11
  font-family: var(--adm-font-family);
12
12
  resize: none;
13
13
  flex: auto;
@@ -27,29 +27,29 @@
27
27
  appearance: none;
28
28
  min-height: 1.5em;
29
29
  }
30
- .adm-text-area::placeholder {
30
+ .adm-text-area-element::placeholder {
31
31
  color: var(--placeholder-color);
32
32
  font-family: inherit;
33
33
  }
34
- .adm-text-area:-webkit-autofill {
34
+ .adm-text-area-element:-webkit-autofill {
35
35
  background-color: transparent;
36
36
  }
37
- .adm-text-area:disabled {
37
+ .adm-text-area-element:disabled {
38
38
  color: var(--disabled-color);
39
39
  cursor: not-allowed;
40
40
  opacity: 1;
41
41
  -webkit-text-fill-color: var(--disabled-color);
42
42
  }
43
- .adm-text-area:read-only {
43
+ .adm-text-area-element:read-only {
44
44
  cursor: default;
45
45
  }
46
- .adm-text-area:invalid {
46
+ .adm-text-area-element:invalid {
47
47
  box-shadow: none;
48
48
  }
49
- .adm-text-area::-ms-clear {
49
+ .adm-text-area-element::-ms-clear {
50
50
  display: none;
51
51
  }
52
- .adm-text-area[readonly] {
52
+ .adm-text-area-element[readonly] {
53
53
  pointer-events: none;
54
54
  }
55
55
  .adm-text-area-count {