@rainbow-oh/yee-c 0.8.8 → 0.8.9

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rainbow-oh/yee-c",
3
- "version": "0.8.8",
3
+ "version": "0.8.9",
4
4
  "description": "yee basic components",
5
5
  "keywords": [
6
6
  "react",
@@ -33,6 +33,9 @@ const Popover = (baseprops: PopoverProps) => {
33
33
  ...rest
34
34
  } = props;
35
35
 
36
+ const mergedArrow =
37
+ arrow === true ? { className: `${prefixCls}-arrow` } : arrow;
38
+
36
39
  const [mergedOpen, setMergedOpen] = useMergedState(false, {
37
40
  value: open,
38
41
  defaultValue: defaultOpen,
@@ -49,7 +52,7 @@ const Popover = (baseprops: PopoverProps) => {
49
52
 
50
53
  return (
51
54
  <div
52
- className={clsx(prefixCls, [`${prefixCls}-${placement}`], className)}
55
+ className={clsx(`${prefixCls}-container`, className)}
53
56
  style={style}
54
57
  role="dialog"
55
58
  ref={popupRef}
@@ -96,12 +99,12 @@ const Popover = (baseprops: PopoverProps) => {
96
99
  return (
97
100
  <Trigger
98
101
  {...rest}
99
- arrow={arrow}
102
+ arrow={mergedArrow}
100
103
  trigger={trigger}
101
104
  placement={placement}
102
105
  popup={popup}
103
106
  open={mergedOpen}
104
- popupClassName={clsx(`${prefixCls}-popup`, popupClassName)}
107
+ popupClassName={clsx(`${prefixCls}`, popupClassName)}
105
108
  onOpenChange={handleOpenChange}
106
109
  >
107
110
  {children}
@@ -2,11 +2,14 @@
2
2
 
3
3
  @{pls} {
4
4
  max-width: var(--yee-popover-max-width);
5
- padding: var(--yee-popover-padding);
6
5
  color: var(--yee-color-text);
7
6
  background-color: var(--yee-popover-bg-color);
8
7
  border-radius: var(--yee-popover-border-radius);
9
- overflow: hidden;
8
+
9
+ &-container {
10
+ padding: var(--yee-popover-padding);
11
+ overflow: auto;
12
+ }
10
13
 
11
14
  &-header {
12
15
  margin-bottom: var(--yee-popover-header-margin-bottom);
@@ -72,8 +72,6 @@
72
72
  }
73
73
 
74
74
  &-filter {
75
- padding: var(--yee-table-filter-popup-padding);
76
-
77
75
  &-trigger {
78
76
  display: inline-flex;
79
77
  cursor: pointer;
@@ -24,7 +24,7 @@ const getStrLower = (str: any) => {
24
24
  };
25
25
 
26
26
  const HeaderFilter = React.memo((props: any) => {
27
- const { filter, column, getContainer, onInternalFilter } = props;
27
+ const { filter, column, getPopupContainer, onInternalFilter } = props;
28
28
  const { prefixCls } = useContext(TableCtx);
29
29
  const { locale } = useLocale();
30
30
  const { table: tableLocale } = locale;
@@ -36,11 +36,13 @@ const HeaderFilter = React.memo((props: any) => {
36
36
  const [searchValue, setSearchValue] = useState('');
37
37
 
38
38
  useEffect(() => {
39
- if (open) {
40
- requestAnimationFrame(() => {
41
- inputRef.current?.focus({ preventScroll: true });
42
- });
43
- }
39
+ if (!open) return;
40
+
41
+ const raf = requestAnimationFrame(() => {
42
+ inputRef.current?.focus({ preventScroll: true });
43
+ });
44
+
45
+ return () => cancelAnimationFrame(raf);
44
46
  }, [open]);
45
47
 
46
48
  const inputChange = (value: string) => {
@@ -187,12 +189,12 @@ const HeaderFilter = React.memo((props: any) => {
187
189
  <Popover
188
190
  trigger="click"
189
191
  placement="bottomRight"
190
- className={clsx(`${prefixCls}-filter`)}
192
+ popupClassName={clsx(`${prefixCls}-filter`)}
191
193
  content={popup}
192
194
  arrow
193
195
  open={open}
194
196
  hideOnClick={false}
195
- getPopupContainer={getContainer}
197
+ getPopupContainer={getPopupContainer}
196
198
  onOpenChange={handleOpenChange}
197
199
  >
198
200
  {renderTrigger()}
@@ -3,6 +3,7 @@
3
3
  @{pls} {
4
4
  position: absolute;
5
5
  z-index: var(--yee-trigger-z-index);
6
+ border-radius: var(--yee-trigger-border-radius);
6
7
 
7
8
  &-hidden {
8
9
  display: none;
@@ -393,9 +393,9 @@
393
393
  /* --Popover-- */
394
394
  --yee-popover-z-index: var(--yee-z-index-tooltip);
395
395
  --yee-popover-max-width: 704px;
396
- --yee-popover-padding: 16px;
396
+ --yee-popover-padding: 12px;
397
397
  --yee-popover-border-radius: 4px;
398
- --yee-popover-header-margin-bottom: 16px;
398
+ --yee-popover-header-margin-bottom: 8px;
399
399
  --yee-popover-header-font-weight: 500;
400
400
  --yee-popover-header-font-size: 16px;
401
401
  --yee-popover-header-line-height: 24px;
@@ -849,6 +849,7 @@
849
849
 
850
850
  /* --Trigger-- */
851
851
  --yee-trigger-z-index: var(--yee-z-index-popup);
852
+ --yee-trigger-border-radius: 6px;
852
853
  --yee-trigger-box-shadow: 0 8px 24px 0 var(--yee-box-shadow-color);
853
854
  --yee-trigger-arrow-margin-left: -4px;
854
855
  --yee-trigger-animation-duration: 0.2s;
@@ -35,7 +35,9 @@ const focusInitialElement = (entry: FocusStackEntry) => {
35
35
 
36
36
  const firstFocusable =
37
37
  entry.container.querySelector<HTMLElement>(focusableSelector);
38
- (firstFocusable ?? entry.container).focus();
38
+ // Focusing popup content must not move the page or a scrollable ancestor.
39
+ // Consumers can still scroll explicitly after focus when that behavior is needed.
40
+ (firstFocusable ?? entry.container).focus({ preventScroll: true });
39
41
  };
40
42
 
41
43
  export const pushFocus = (
package/src/version.ts CHANGED
@@ -4,7 +4,7 @@ declare global {
4
4
  }
5
5
  }
6
6
 
7
- export const version = "0.8.8";
7
+ export const version = "0.8.9";
8
8
 
9
9
  if (typeof window !== 'undefined') {
10
10
  window.__yee_c_version__ = version;