@synerise/ds-dropdown 1.0.33 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +1 -1
  3. package/dist/Dropdown.const.d.ts +14 -0
  4. package/dist/Dropdown.const.js +25 -0
  5. package/dist/Dropdown.d.ts +8 -14
  6. package/dist/Dropdown.js +72 -68
  7. package/dist/Dropdown.styles.d.ts +0 -1
  8. package/dist/Dropdown.styles.js +4 -5
  9. package/dist/Dropdown.types.d.ts +54 -0
  10. package/dist/components/BackAction/BackAction.d.ts +3 -0
  11. package/dist/{elements → components}/BackAction/BackAction.js +3 -6
  12. package/dist/{elements → components}/BackAction/BackAction.styles.js +7 -7
  13. package/dist/components/BottomAction/BottomAction.d.ts +3 -0
  14. package/dist/{elements → components}/BottomAction/BottomAction.js +2 -3
  15. package/dist/{elements → components}/BottomAction/BottomAction.styles.js +3 -3
  16. package/dist/components/DropdownFooter/DropdownFooter.d.ts +3 -0
  17. package/dist/components/DropdownFooter/DropdownFooter.js +10 -0
  18. package/dist/components/DropdownFooter/DropdownFooter.styles.d.ts +5 -0
  19. package/dist/components/DropdownFooter/DropdownFooter.styles.js +17 -0
  20. package/dist/components/DropdownFooter/DropdownFooter.types.d.ts +8 -0
  21. package/dist/components/DropdownFooter/DropdownFooter.types.js +1 -0
  22. package/dist/components/DropdownMenu/DropdownMenu.d.ts +4 -0
  23. package/dist/components/DropdownMenu/DropdownMenu.js +132 -0
  24. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +18 -0
  25. package/dist/components/DropdownMenu/DropdownMenu.types.js +1 -0
  26. package/dist/components/DropdownMenuList/DropdownMenuList.d.ts +4 -0
  27. package/dist/components/DropdownMenuList/DropdownMenuList.js +84 -0
  28. package/dist/components/DropdownMenuList/DropdownMenuList.styles.d.ts +40 -0
  29. package/dist/components/DropdownMenuList/DropdownMenuList.styles.js +23 -0
  30. package/dist/components/DropdownMenuList/DropdownMenuList.types.d.ts +7 -0
  31. package/dist/components/DropdownMenuList/DropdownMenuList.types.js +1 -0
  32. package/dist/components/DropdownOverlay/DropdownOverlay.d.ts +7 -0
  33. package/dist/components/DropdownOverlay/DropdownOverlay.js +73 -0
  34. package/dist/components/DropdownOverlay/DropdownOverlay.styles.d.ts +4 -0
  35. package/dist/components/DropdownOverlay/DropdownOverlay.styles.js +12 -0
  36. package/dist/components/DropdownOverlay/DropdownOverlay.types.d.ts +8 -0
  37. package/dist/components/DropdownOverlay/DropdownOverlay.types.js +1 -0
  38. package/dist/components/DropdownPopover/DropdownPopover.d.ts +3 -0
  39. package/dist/components/DropdownPopover/DropdownPopover.js +79 -0
  40. package/dist/components/DropdownPopover/DropdownPopover.types.d.ts +8 -0
  41. package/dist/components/DropdownPopover/DropdownPopover.types.js +1 -0
  42. package/dist/components/TextTrigger/TextTrigger.d.ts +3 -0
  43. package/dist/{elements → components}/TextTrigger/TextTrigger.js +6 -5
  44. package/dist/{elements → components}/TextTrigger/TextTrigger.styles.js +2 -2
  45. package/dist/{elements → components}/TextTrigger/TextTrigger.types.d.ts +1 -1
  46. package/dist/components/TextTrigger/TextTrigger.types.js +1 -0
  47. package/dist/hooks/useDefaultTexts.d.ts +2 -0
  48. package/dist/hooks/useDefaultTexts.js +21 -0
  49. package/dist/hooks/useDropdownVisibility.d.ts +10 -0
  50. package/dist/hooks/useDropdownVisibility.js +40 -0
  51. package/dist/index.d.ts +9 -1
  52. package/dist/index.js +6 -1
  53. package/dist/utils/getDropdownWidth.d.ts +2 -0
  54. package/dist/utils/getDropdownWidth.js +18 -0
  55. package/dist/utils/getPlacement.d.ts +3 -0
  56. package/dist/utils/getPlacement.js +4 -0
  57. package/dist/utils/getTransitionConfig.d.ts +4 -0
  58. package/dist/utils/getTransitionConfig.js +15 -0
  59. package/dist/utils/index.d.ts +4 -0
  60. package/dist/utils/index.js +4 -0
  61. package/dist/utils/isSplitFooter.d.ts +2 -0
  62. package/dist/utils/isSplitFooter.js +3 -0
  63. package/package.json +16 -8
  64. package/dist/elements/BackAction/BackAction.d.ts +0 -4
  65. package/dist/elements/BottomAction/BottomAction.d.ts +0 -4
  66. package/dist/elements/TextTrigger/TextTrigger.d.ts +0 -4
  67. package/dist/style/index.css +0 -1
  68. /package/dist/{elements/BackAction/BackAction.types.js → Dropdown.types.js} +0 -0
  69. /package/dist/{elements → components}/BackAction/BackAction.styles.d.ts +0 -0
  70. /package/dist/{elements → components}/BackAction/BackAction.types.d.ts +0 -0
  71. /package/dist/{elements/BottomAction/BottomAction.types.js → components/BackAction/BackAction.types.js} +0 -0
  72. /package/dist/{elements → components}/BottomAction/BottomAction.styles.d.ts +0 -0
  73. /package/dist/{elements → components}/BottomAction/BottomAction.types.d.ts +0 -0
  74. /package/dist/{elements/TextTrigger/TextTrigger.types.js → components/BottomAction/BottomAction.types.js} +0 -0
  75. /package/dist/{elements → components}/TextTrigger/TextTrigger.styles.d.ts +0 -0
@@ -0,0 +1,40 @@
1
+ import { useCallback, useEffect, useRef, useState } from 'react';
2
+ export var useDropdownVisibility = function useDropdownVisibility(_ref) {
3
+ var open = _ref.open,
4
+ onOpenChange = _ref.onOpenChange;
5
+ var _useState = useState(open),
6
+ internalOpen = _useState[0],
7
+ setInternalOpen = _useState[1];
8
+ var skipDuplicates = useRef(0);
9
+ var controlledComponent = open !== undefined;
10
+ var actualOpen = controlledComponent ? open : internalOpen;
11
+ useEffect(function () {
12
+ skipDuplicates.current = 0;
13
+ }, [internalOpen]);
14
+ useEffect(function () {
15
+ if (controlledComponent && open !== internalOpen) {
16
+ if (skipDuplicates.current === 0) {
17
+ skipDuplicates.current += 1;
18
+ onOpenChange == null || onOpenChange(open);
19
+ }
20
+ setInternalOpen(open);
21
+ }
22
+ // eslint-disable-next-line react-hooks/exhaustive-deps
23
+ }, [controlledComponent, open]);
24
+ var toggleOpen = useCallback(function (openState) {
25
+ if (openState !== internalOpen) {
26
+ setInternalOpen(openState);
27
+ }
28
+ // PopupTrigger fires toggleOpen onClick
29
+ // the trigger in the implementation may or may not have an onClick that changes `open` state
30
+ // this prevents duplicated onOpenChange calls if both have onClicks defined
31
+ if (skipDuplicates.current === 0) {
32
+ skipDuplicates.current += 1;
33
+ onOpenChange == null || onOpenChange(openState);
34
+ }
35
+ }, [internalOpen, onOpenChange]);
36
+ return {
37
+ toggleOpen: toggleOpen,
38
+ open: actualOpen
39
+ };
40
+ };
package/dist/index.d.ts CHANGED
@@ -1 +1,9 @@
1
- export { default, type DropdownProps } from './Dropdown';
1
+ export { default, Dropdown } from './Dropdown';
2
+ export { DropdownMenu } from './components/DropdownMenu/DropdownMenu';
3
+ export { DropdownOverlay } from './components/DropdownOverlay/DropdownOverlay';
4
+ export { TextTrigger } from './components/TextTrigger/TextTrigger';
5
+ export { BackAction } from './components/BackAction/BackAction';
6
+ export { BottomAction } from './components/BottomAction/BottomAction';
7
+ export type { DropdownPlacement, DropdownProps, DropdownSharedProps, DropdownSize, } from './Dropdown.types';
8
+ export { type DropdownMenuProps } from './components/DropdownMenu/DropdownMenu.types';
9
+ export { type DropdownMenuListItemProps } from './components/DropdownMenuList/DropdownMenuList.types';
package/dist/index.js CHANGED
@@ -1 +1,6 @@
1
- export { default } from './Dropdown';
1
+ export { default, Dropdown } from './Dropdown';
2
+ export { DropdownMenu } from './components/DropdownMenu/DropdownMenu';
3
+ export { DropdownOverlay } from './components/DropdownOverlay/DropdownOverlay';
4
+ export { TextTrigger } from './components/TextTrigger/TextTrigger';
5
+ export { BackAction } from './components/BackAction/BackAction';
6
+ export { BottomAction } from './components/BottomAction/BottomAction';
@@ -0,0 +1,2 @@
1
+ import { type DropdownSize } from '../Dropdown.types';
2
+ export declare const getDropdownWidth: (size?: DropdownSize | number) => number | null;
@@ -0,0 +1,18 @@
1
+ export var getDropdownWidth = function getDropdownWidth(size) {
2
+ if (typeof size === 'number') {
3
+ return size;
4
+ }
5
+ switch (size) {
6
+ case 'small':
7
+ return 216;
8
+ case 'large':
9
+ return 588;
10
+ case 'medium':
11
+ return 282;
12
+ case 'auto':
13
+ case 'match-trigger':
14
+ case 'min-match-trigger':
15
+ default:
16
+ return null;
17
+ }
18
+ };
@@ -0,0 +1,3 @@
1
+ import { type Placement } from '@floating-ui/react';
2
+ import { type DropdownPlacement } from '../Dropdown.types';
3
+ export declare const getPlacement: (placement: DropdownPlacement) => Placement;
@@ -0,0 +1,4 @@
1
+ import { PLACEMENT_MAP } from '../Dropdown.const';
2
+ export var getPlacement = function getPlacement(placement) {
3
+ return PLACEMENT_MAP[placement];
4
+ };
@@ -0,0 +1,4 @@
1
+ import { type Placement, type UseTransitionStylesProps } from '@floating-ui/react';
2
+ export declare const getTransitionConfig: ({ placement, }: {
3
+ placement: Placement;
4
+ }) => Partial<UseTransitionStylesProps>;
@@ -0,0 +1,15 @@
1
+ export var getTransitionConfig = function getTransitionConfig(_ref) {
2
+ var placement = _ref.placement;
3
+ var isTop = placement.indexOf('top');
4
+ return {
5
+ open: {
6
+ transform: 'scaleY(1)'
7
+ },
8
+ initial: {
9
+ transform: 'scaleY(0)'
10
+ },
11
+ common: {
12
+ transformOrigin: isTop ? 'top' : 'bottom'
13
+ }
14
+ };
15
+ };
@@ -0,0 +1,4 @@
1
+ export * from './getPlacement';
2
+ export * from './getTransitionConfig';
3
+ export * from './isSplitFooter';
4
+ export * from './getDropdownWidth';
@@ -0,0 +1,4 @@
1
+ export * from './getPlacement';
2
+ export * from './getTransitionConfig';
3
+ export * from './isSplitFooter';
4
+ export * from './getDropdownWidth';
@@ -0,0 +1,2 @@
1
+ import type { DropdownFooterProps, DropdownFooterSplit } from '../components/DropdownFooter/DropdownFooter.types';
2
+ export declare const isSplitFooter: (footer: DropdownFooterProps["footer"]) => footer is DropdownFooterSplit;
@@ -0,0 +1,3 @@
1
+ export var isSplitFooter = function isSplitFooter(footer) {
2
+ return !!(footer && typeof footer === 'object' && ('left' in footer || 'right' in footer));
3
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synerise/ds-dropdown",
3
- "version": "1.0.33",
3
+ "version": "1.1.0",
4
4
  "description": "Dropdown UI Component for the Synerise Design System",
5
5
  "license": "ISC",
6
6
  "repository": "synerise/synerise-design",
@@ -35,17 +35,25 @@
35
35
  ],
36
36
  "types": "dist/index.d.ts",
37
37
  "dependencies": {
38
- "@synerise/ds-divider": "^1.2.0",
39
- "@synerise/ds-icon": "^1.7.3",
40
- "@synerise/ds-search-bar": "^1.3.18",
41
- "@synerise/ds-typography": "^1.0.22",
42
- "@synerise/ds-utils": "^1.5.0"
38
+ "@floating-ui/react": "^0.27.13",
39
+ "@synerise/ds-divider": "^1.2.1",
40
+ "@synerise/ds-empty-states": "^1.0.21",
41
+ "@synerise/ds-icon": "^1.8.0",
42
+ "@synerise/ds-list-item": "^1.2.0",
43
+ "@synerise/ds-popover": "^1.1.0",
44
+ "@synerise/ds-scrollbar": "^1.2.0",
45
+ "@synerise/ds-search-bar": "^1.4.0",
46
+ "@synerise/ds-tooltip": "^1.3.0",
47
+ "@synerise/ds-typography": "^1.0.23",
48
+ "@synerise/ds-utils": "^1.5.0",
49
+ "classnames": "^2.2.6",
50
+ "react-window": "^1.8.11"
43
51
  },
44
52
  "peerDependencies": {
45
53
  "@synerise/ds-core": "*",
46
- "antd": "4.24.16",
47
54
  "react": ">=16.9.0 <= 18.3.1",
55
+ "react-intl": "^6.8.7",
48
56
  "styled-components": "^5.3.3"
49
57
  },
50
- "gitHead": "a40fca2cc78eda64afa96d18dc4d177538a22404"
58
+ "gitHead": "cbbb7d9f155735bcc4035d8fd8a7813878d6e051"
51
59
  }
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { type Props } from './BackAction.types';
3
- declare const BackAction: ({ label, onClick, tooltip, tooltipProps }: Props) => React.JSX.Element;
4
- export default BackAction;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { type BottomActionProps } from './BottomAction.types';
3
- declare const BottomAction: ({ onClickAction, children, icon, ...rest }: BottomActionProps) => React.JSX.Element;
4
- export default BottomAction;
@@ -1,4 +0,0 @@
1
- import React from 'react';
2
- import { type TextTriggerProps } from './TextTrigger.types';
3
- declare const TextTrigger: React.FC<TextTriggerProps>;
4
- export default TextTrigger;
@@ -1 +0,0 @@
1
- .ant-dropdown-menu-item.ant-dropdown-menu-item-danger{color:#f52922}.ant-dropdown-menu-item.ant-dropdown-menu-item-danger:hover{color:#fff;background-color:#f52922}.ant-dropdown{box-sizing:border-box;margin:0;padding:0;color:#6a7580;font-size:13px;font-variant:tabular-nums;line-height:1.38;list-style:none;font-feature-settings:'tnum';position:absolute;top:-9999px;left:-9999px;z-index:991050;display:block}.ant-dropdown::before{position:absolute;top:-4px;right:0;bottom:-4px;left:-7px;z-index:-9999;opacity:.0001;content:' '}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{font-size:10px}.ant-dropdown-wrap .anticon-down::before{transition:transform .2s}.ant-dropdown-wrap-open .anticon-down::before{transform:rotate(180deg)}.ant-dropdown-hidden,.ant-dropdown-menu-hidden,.ant-dropdown-menu-submenu-hidden{display:none}.ant-dropdown-show-arrow.ant-dropdown-placement-top,.ant-dropdown-show-arrow.ant-dropdown-placement-topLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-topRight{padding-bottom:9px}.ant-dropdown-show-arrow.ant-dropdown-placement-bottom,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomLeft,.ant-dropdown-show-arrow.ant-dropdown-placement-bottomRight{padding-top:9px}.ant-dropdown-arrow{position:absolute;z-index:1;display:block;width:5px;height:5px;border-radius:0 0 2px;pointer-events:none}.ant-dropdown-arrow::before{position:absolute;top:-5px;left:-5px;width:15px;height:15px;background:#fff;background-repeat:no-repeat;background-position:-4px -4px;content:'';clip-path:inset(33% 33%);clip-path:path('M 3.5355339059327373 11.464466094067262 A 5 5 0 0 1 7.071067811865475 10 L 8 10 A 2 2 0 0 0 10 8 L 10 7.071067811865475 A 5 5 0 0 1 11.464466094067262 3.5355339059327373 L 10.464466094067262 3.5355339059327373 L 3.5355339059327373 10.464466094067262 Z')}.ant-dropdown-placement-top>.ant-dropdown-arrow,.ant-dropdown-placement-topLeft>.ant-dropdown-arrow,.ant-dropdown-placement-topRight>.ant-dropdown-arrow{bottom:5.53553391px;box-shadow:3px 3px 7px -3px rgba(0,0,0,.1);transform:rotate(45deg)}.ant-dropdown-placement-top>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(45deg)}.ant-dropdown-placement-topLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-topRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-placement-bottom>.ant-dropdown-arrow,.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow,.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{top:4.94974747px;box-shadow:2px 2px 5px -2px rgba(0,0,0,.1);transform:rotate(-135deg) translateY(-.5px)}.ant-dropdown-placement-bottom>.ant-dropdown-arrow{left:50%;transform:translateX(-50%) rotate(-135deg) translateY(-.5px)}.ant-dropdown-placement-bottomLeft>.ant-dropdown-arrow{left:16px}.ant-dropdown-placement-bottomRight>.ant-dropdown-arrow{right:16px}.ant-dropdown-menu{position:relative;margin:0;padding:4px 0;text-align:left;list-style-type:none;background-color:#fff;background-clip:padding-box;border-radius:3px;outline:0;box-shadow:0 2px 6px rgba(171,178,183,.12)}.ant-dropdown-menu-item-group-title{padding:5px 16px;color:#232936;transition:all .3s}.ant-dropdown-menu-submenu-popup{position:absolute;z-index:991050;background:0 0;box-shadow:none;transform-origin:0 0}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-right:.3em;margin-left:.3em}.ant-dropdown-menu-item{position:relative;display:flex;align-items:center}.ant-dropdown-menu-item-icon{min-width:12px;margin-right:8px;font-size:11px}.ant-dropdown-menu-title-content{flex:auto}.ant-dropdown-menu-title-content>a{color:inherit;transition:all .3s}.ant-dropdown-menu-title-content>a:hover{color:inherit}.ant-dropdown-menu-title-content>a::after{position:absolute;top:0;right:0;bottom:0;left:0;content:''}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;margin:0;padding:5px 16px;color:#6a7580;font-weight:400;font-size:13px;line-height:22px;cursor:pointer;transition:all .3s}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-submenu-title-selected{color:#0b68ff;background-color:#d9eeff}.ant-dropdown-menu-item.ant-dropdown-menu-item-active,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-active,.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-active,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-active,.ant-dropdown-menu-submenu-title:hover{background-color:#f4faff}.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled{color:#b5bdc3;cursor:not-allowed}.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled:hover,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled:hover{color:#b5bdc3;background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-item.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-item.ant-dropdown-menu-submenu-title-disabled a,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-item-disabled a,.ant-dropdown-menu-submenu-title.ant-dropdown-menu-submenu-title-disabled a{pointer-events:none}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{height:1px;margin:4px 0;overflow:hidden;line-height:0;background-color:#e9edee}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{position:absolute;right:8px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-right:0!important;color:#232936;font-size:10px;font-style:normal}.ant-dropdown-menu-item-group-list{margin:0 8px;padding:0;list-style:none}.ant-dropdown-menu-submenu-title{padding-right:27px}.ant-dropdown-menu-submenu-vertical{position:relative}.ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{position:absolute;top:0;left:100%;min-width:100%;margin-left:4px;transform-origin:0 0}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:#b5bdc3;background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#0b68ff}.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-appear.ant-slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-enter.ant-slide-down-enter-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpIn}.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-appear.ant-slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-enter.ant-slide-up-enter-active.ant-dropdown-placement-topRight{animation-name:antSlideDownIn}.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottom,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.ant-slide-down-leave.ant-slide-down-leave-active.ant-dropdown-placement-bottomRight{animation-name:antSlideUpOut}.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-top,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.ant-slide-up-leave.ant-slide-up-leave-active.ant-dropdown-placement-topRight{animation-name:antSlideDownOut}.ant-dropdown-button>.anticon.anticon-down,.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{font-size:10px;vertical-align:baseline}.ant-dropdown-button{white-space:nowrap}.ant-dropdown-button.ant-btn-group>.ant-btn-loading,.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn{cursor:default;pointer-events:none}.ant-dropdown-button.ant-btn-group>.ant-btn-loading+.ant-btn::before{display:block}.ant-dropdown-button.ant-btn-group>.ant-btn:last-child:not(:first-child):not(.ant-btn-icon-only){padding-right:8px;padding-left:8px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title{color:#f9fafb}.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow::after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow::after{color:#f9fafb}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>.anticon+span>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{color:#fff;background:0 0}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{color:#fff;background:#0b68ff}.ant-dropdown-rtl{direction:rtl}.ant-dropdown-rtl.ant-dropdown::before{right:-7px;left:0}.ant-dropdown-menu.ant-dropdown-menu-rtl{direction:rtl;text-align:right}.ant-dropdown-menu-submenu-rtl .ant-dropdown-menu-item-group-title,.ant-dropdown-rtl .ant-dropdown-menu-item-group-title{direction:rtl;text-align:right}.ant-dropdown-menu-submenu-popup.ant-dropdown-menu-submenu-rtl{transform-origin:100% 0}.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul{text-align:right}.ant-dropdown-rtl .ant-dropdown-menu-item,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{text-align:right}.ant-dropdown-rtl .ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>span>.anticon:first-child{margin-right:0;margin-left:8px}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon{right:auto;left:8px}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-expand-icon .ant-dropdown-menu-submenu-arrow-icon{margin-left:0!important;transform:scaleX(-1)}.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{padding-right:16px;padding-left:27px}.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{right:100%;left:0;margin-right:4px;margin-left:0}.ant-dropdown{border-radius:3px;overflow:hidden}.ant-dropdown.ant-dropdown{box-shadow:0 16px 32px 0 rgba(35,41,54,.1);background:#fff;margin-top:0;padding-top:0}.ant-dropdown.ant-dropdown>div{box-shadow:none;margin:0;border-radius:3px;overflow:visible}.ant-dropdown:before{display:none!important}.ant-dropdown-menu{padding:8px 0}.ant-dropdown-menu-item-group-title{padding:4px 16px}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{font-size:13px;font-weight:500!important;min-width:175px;min-height:32px;padding:4px 16px}.ant-dropdown-menu-item>.icon,.ant-dropdown-menu-submenu-title>.icon{margin-right:8px;vertical-align:top}.ant-dropdown-menu-item>a,.ant-dropdown-menu-submenu-title>a{padding:4px 16px;margin:-4px -16px}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{color:#384350;background-color:#f4faff}.ant-dropdown-menu-item-selected{background-color:#f4faff;color:#384350}.ant-dropdown-trigger:after{animation:none;animation-fill-mode:none}