@synerise/ds-dropdown 1.3.0 → 1.3.2

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 (68) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +17 -10
  3. package/dist/Dropdown.const.d.ts +4 -4
  4. package/dist/Dropdown.const.js +31 -21
  5. package/dist/Dropdown.d.ts +3 -3
  6. package/dist/Dropdown.js +64 -81
  7. package/dist/Dropdown.styles.d.ts +1 -1
  8. package/dist/Dropdown.styles.js +7 -6
  9. package/dist/Dropdown.types.d.ts +4 -4
  10. package/dist/Dropdown.types.js +1 -1
  11. package/dist/components/BackAction/BackAction.d.ts +2 -2
  12. package/dist/components/BackAction/BackAction.js +20 -25
  13. package/dist/components/BackAction/BackAction.styles.d.ts +4 -4
  14. package/dist/components/BackAction/BackAction.styles.js +15 -17
  15. package/dist/components/BackAction/BackAction.types.d.ts +2 -2
  16. package/dist/components/BackAction/BackAction.types.js +1 -1
  17. package/dist/components/BottomAction/BottomAction.d.ts +2 -2
  18. package/dist/components/BottomAction/BottomAction.js +15 -17
  19. package/dist/components/BottomAction/BottomAction.styles.d.ts +3 -3
  20. package/dist/components/BottomAction/BottomAction.styles.js +11 -18
  21. package/dist/components/BottomAction/BottomAction.types.d.ts +2 -2
  22. package/dist/components/BottomAction/BottomAction.types.js +1 -1
  23. package/dist/components/DropdownFooter/DropdownFooter.d.ts +2 -2
  24. package/dist/components/DropdownFooter/DropdownFooter.js +15 -10
  25. package/dist/components/DropdownFooter/DropdownFooter.styles.d.ts +3 -3
  26. package/dist/components/DropdownFooter/DropdownFooter.styles.js +11 -10
  27. package/dist/components/DropdownFooter/DropdownFooter.types.d.ts +1 -1
  28. package/dist/components/DropdownFooter/DropdownFooter.types.js +1 -1
  29. package/dist/components/DropdownMenu/DropdownMenu.d.ts +3 -3
  30. package/dist/components/DropdownMenu/DropdownMenu.js +71 -118
  31. package/dist/components/DropdownMenu/DropdownMenu.types.d.ts +3 -3
  32. package/dist/components/DropdownMenu/DropdownMenu.types.js +1 -1
  33. package/dist/components/DropdownMenuList/DropdownMenuList.d.ts +3 -3
  34. package/dist/components/DropdownMenuList/DropdownMenuList.js +62 -76
  35. package/dist/components/DropdownMenuList/DropdownMenuList.styles.d.ts +5 -5
  36. package/dist/components/DropdownMenuList/DropdownMenuList.styles.js +16 -9
  37. package/dist/components/DropdownMenuList/DropdownMenuList.types.d.ts +2 -2
  38. package/dist/components/DropdownMenuList/DropdownMenuList.types.js +1 -1
  39. package/dist/components/DropdownOverlay/DropdownOverlay.d.ts +2 -2
  40. package/dist/components/DropdownOverlay/DropdownOverlay.js +45 -53
  41. package/dist/components/DropdownOverlay/DropdownOverlay.styles.d.ts +1 -1
  42. package/dist/components/DropdownOverlay/DropdownOverlay.styles.js +7 -10
  43. package/dist/components/DropdownOverlay/DropdownOverlay.types.d.ts +2 -2
  44. package/dist/components/DropdownOverlay/DropdownOverlay.types.js +1 -1
  45. package/dist/components/DropdownPopover/DropdownPopover.d.ts +2 -2
  46. package/dist/components/DropdownPopover/DropdownPopover.js +44 -74
  47. package/dist/components/DropdownPopover/DropdownPopover.types.d.ts +1 -1
  48. package/dist/components/DropdownPopover/DropdownPopover.types.js +1 -1
  49. package/dist/components/TextTrigger/TextTrigger.d.ts +2 -2
  50. package/dist/components/TextTrigger/TextTrigger.js +24 -31
  51. package/dist/components/TextTrigger/TextTrigger.styles.d.ts +3 -3
  52. package/dist/components/TextTrigger/TextTrigger.styles.js +9 -23
  53. package/dist/components/TextTrigger/TextTrigger.types.d.ts +1 -1
  54. package/dist/components/TextTrigger/TextTrigger.types.js +1 -1
  55. package/dist/hooks/useDefaultTexts.d.ts +1 -1
  56. package/dist/hooks/useDefaultTexts.js +18 -20
  57. package/dist/hooks/useDropdownVisibility.js +19 -21
  58. package/dist/index.js +15 -6
  59. package/dist/modules.d.js +1 -1
  60. package/dist/modules.d.ts +0 -0
  61. package/dist/utils/getDropdownWidth.d.ts +1 -1
  62. package/dist/utils/getDropdownWidth.js +12 -9
  63. package/dist/utils/getTransitionConfig.d.ts +1 -1
  64. package/dist/utils/getTransitionConfig.js +11 -7
  65. package/dist/utils/index.js +8 -3
  66. package/dist/utils/isSplitFooter.d.ts +1 -1
  67. package/dist/utils/isSplitFooter.js +6 -3
  68. package/package.json +16 -16
@@ -1,73 +1,65 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import classnames from 'classnames';
3
- import React, { forwardRef, useEffect, useRef, useState } from 'react';
4
- import { useMergeRefs } from '@floating-ui/react';
5
- import { getDropdownWidth } from '../../utils';
6
- import { OverlayWrapper } from './DropdownOverlay.styles';
7
- export var DropdownOverlay = /*#__PURE__*/forwardRef(function (_ref, ref) {
8
- var _getDropdownWidth;
9
- var content = _ref.content,
10
- size = _ref.size,
11
- overlayStyle = _ref.overlayStyle,
12
- overlayClassName = _ref.overlayClassName,
13
- htmlAttributes = _ref.htmlAttributes,
14
- hideOnItemClick = _ref.hideOnItemClick,
15
- handleItemClick = _ref.handleItemClick,
16
- triggerRef = _ref.triggerRef;
17
- var overlayWrapperRef = useRef(null);
18
- var mergedRef = useMergeRefs([overlayWrapperRef, ref]);
19
- var _useState = useState((_getDropdownWidth = getDropdownWidth(size)) != null ? _getDropdownWidth : 0),
20
- overlaySize = _useState[0],
21
- setOverlaySize = _useState[1];
22
- useEffect(function () {
23
- if (triggerRef.current && (size === 'match-trigger' || size === 'min-match-trigger')) {
1
+ import { jsx } from "react/jsx-runtime";
2
+ import classnames from "classnames";
3
+ import { forwardRef, useRef, useState, useEffect } from "react";
4
+ import { useMergeRefs } from "@floating-ui/react";
5
+ import { getDropdownWidth } from "../../utils/getDropdownWidth.js";
6
+ import { OverlayWrapper } from "./DropdownOverlay.styles.js";
7
+ const DropdownOverlay = forwardRef(({
8
+ content,
9
+ size,
10
+ overlayStyle,
11
+ overlayClassName,
12
+ htmlAttributes,
13
+ hideOnItemClick,
14
+ handleItemClick,
15
+ triggerRef
16
+ }, ref) => {
17
+ const overlayWrapperRef = useRef(null);
18
+ const mergedRef = useMergeRefs([overlayWrapperRef, ref]);
19
+ const [overlaySize, setOverlaySize] = useState(getDropdownWidth(size) ?? 0);
20
+ useEffect(() => {
21
+ if (triggerRef.current && (size === "match-trigger" || size === "min-match-trigger")) {
24
22
  setOverlaySize(triggerRef.current.clientWidth);
25
23
  } else {
26
- var _getDropdownWidth2;
27
- setOverlaySize((_getDropdownWidth2 = getDropdownWidth(size)) != null ? _getDropdownWidth2 : 0);
24
+ setOverlaySize(getDropdownWidth(size) ?? 0);
28
25
  }
29
- // eslint-disable-next-line react-hooks/exhaustive-deps
30
26
  }, [size]);
31
- useEffect(function () {
32
- var handleItemSelect = function handleItemSelect(element) {
33
- var _overlayWrapperRef$cu;
34
- var itemSelector = typeof hideOnItemClick === 'string' ? hideOnItemClick : '[role="menuitem"]';
35
- var listItem = element.closest(itemSelector);
36
- if ((_overlayWrapperRef$cu = overlayWrapperRef.current) != null && _overlayWrapperRef$cu.contains(listItem)) {
37
- setTimeout(function () {
38
- handleItemClick == null || handleItemClick();
27
+ useEffect(() => {
28
+ const handleItemSelect = (element) => {
29
+ const itemSelector = typeof hideOnItemClick === "string" ? hideOnItemClick : '[role="menuitem"]';
30
+ const listItem = element.closest(itemSelector);
31
+ if (overlayWrapperRef.current?.contains(listItem)) {
32
+ setTimeout(() => {
33
+ handleItemClick?.();
39
34
  }, 0);
40
35
  }
41
36
  };
42
- var handleOverlayClick = function handleOverlayClick(event) {
43
- if (overlayWrapperRef.current && typeof hideOnItemClick === 'string' && event.target instanceof HTMLElement) {
37
+ const handleOverlayClick = (event) => {
38
+ if (overlayWrapperRef.current && typeof hideOnItemClick === "string" && event.target instanceof HTMLElement) {
44
39
  handleItemSelect(event.target);
45
40
  }
46
41
  };
47
- var handleItemEnterPress = function handleItemEnterPress(event) {
48
- if (event.key === 'Enter') {
49
- if (overlayWrapperRef.current && typeof hideOnItemClick === 'string' && event.target instanceof HTMLElement) {
42
+ const handleItemEnterPress = (event) => {
43
+ if (event.key === "Enter") {
44
+ if (overlayWrapperRef.current && typeof hideOnItemClick === "string" && event.target instanceof HTMLElement) {
50
45
  handleItemSelect(event.target);
51
46
  }
52
47
  }
53
48
  };
54
- var overlayNode = overlayWrapperRef.current;
49
+ const overlayNode = overlayWrapperRef.current;
55
50
  if (overlayNode) {
56
- overlayNode.addEventListener('click', handleOverlayClick);
57
- overlayNode.addEventListener('keydown', handleItemEnterPress);
51
+ overlayNode.addEventListener("click", handleOverlayClick);
52
+ overlayNode.addEventListener("keydown", handleItemEnterPress);
58
53
  }
59
- return function () {
54
+ return () => {
60
55
  if (overlayNode) {
61
- overlayNode.removeEventListener('click', handleOverlayClick);
62
- overlayNode.removeEventListener('keydown', handleItemEnterPress);
56
+ overlayNode.removeEventListener("click", handleOverlayClick);
57
+ overlayNode.removeEventListener("keydown", handleItemEnterPress);
63
58
  }
64
59
  };
65
60
  });
66
- return /*#__PURE__*/React.createElement(OverlayWrapper, _extends({
67
- style: overlayStyle,
68
- className: classnames(overlayClassName, htmlAttributes == null ? void 0 : htmlAttributes.className),
69
- $width: overlaySize,
70
- widthProperty: size === 'min-match-trigger' ? 'min-width' : 'width',
71
- ref: mergedRef
72
- }, htmlAttributes), content);
73
- });
61
+ return /* @__PURE__ */ jsx(OverlayWrapper, { style: overlayStyle, className: classnames(overlayClassName, htmlAttributes?.className), $width: overlaySize, widthProperty: size === "min-match-trigger" ? "min-width" : "width", ref: mergedRef, ...htmlAttributes, children: content });
62
+ });
63
+ export {
64
+ DropdownOverlay
65
+ };
@@ -1,4 +1,4 @@
1
- export declare const OverlayWrapper: import("styled-components").StyledComponent<"div", any, {
1
+ export declare const OverlayWrapper: import('styled-components').StyledComponent<"div", any, {
2
2
  $width?: number;
3
3
  widthProperty: string;
4
4
  }, never>;
@@ -1,12 +1,9 @@
1
- import styled from 'styled-components';
2
- import { Wrapper as ListItemWrapper } from '@synerise/ds-list-item/dist/components/Text/Text.styles';
3
- export var OverlayWrapper = styled.div.withConfig({
1
+ import styled from "styled-components";
2
+ import { Wrapper } from "@synerise/ds-list-item/dist/components/Text/Text.styles";
3
+ const OverlayWrapper = /* @__PURE__ */ styled.div.withConfig({
4
4
  displayName: "DropdownOverlaystyles__OverlayWrapper",
5
5
  componentId: "sc-hy0f4i-0"
6
- })(["background:", ";box-shadow:", ";border-radius:3px;", ";overflow:hidden;", "{min-width:0;}"], function (props) {
7
- return props.theme.palette.white;
8
- }, function (props) {
9
- return props.theme.variables['box-shadow-2'];
10
- }, function (props) {
11
- return props.$width && props.widthProperty + ": " + props.$width + "px";
12
- }, ListItemWrapper);
6
+ })(["background:", ";box-shadow:", ";border-radius:3px;", ";overflow:hidden;", "{min-width:0;}"], (props) => props.theme.palette.white, (props) => props.theme.variables["box-shadow-2"], (props) => props.$width && `${props.widthProperty}: ${props.$width}px`, Wrapper);
7
+ export {
8
+ OverlayWrapper
9
+ };
@@ -1,5 +1,5 @@
1
- import { type HTMLAttributes, type ReactNode, type RefObject } from 'react';
2
- import { type DropdownProps } from '../../Dropdown.types';
1
+ import { HTMLAttributes, ReactNode, RefObject } from 'react';
2
+ import { DropdownProps } from '../../Dropdown.types';
3
3
  export type DropdownOverlayProps = Pick<DropdownProps, 'size' | 'overlayStyle' | 'hideOnItemClick' | 'overlayClassName'> & {
4
4
  content: ReactNode;
5
5
  triggerRef: RefObject<HTMLElement>;
@@ -1 +1 @@
1
- export {};
1
+
@@ -1,3 +1,3 @@
1
- import React from 'react';
2
- import { type DropdownPopoverProps } from './DropdownPopover.types';
1
+ import { default as React } from 'react';
2
+ import { DropdownPopoverProps } from './DropdownPopover.types';
3
3
  export declare const DropdownPopover: ({ placement, children, popoverProps, popoverTriggerProps, getPopupContainer, trigger, open, onDismiss, overlay, handleOpenChange, size, handleItemClick, handleTriggerClick, hideOnItemClick, asChild, overlayStyle, overlayClassName, overlayHTMLAttributes, activeIndex, setActiveIndex, }: DropdownPopoverProps) => React.JSX.Element;
@@ -1,79 +1,49 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React, { useRef } from 'react';
3
- import { FloatingList } from '@floating-ui/react';
4
- import { DropdownContextProvider } from '@synerise/ds-core';
5
- import { Popover, PopoverContent, PopoverTrigger, getPlacement } from '@synerise/ds-popover';
6
- import { POPOVER_FLIP_CONFIG, POPOVER_OFFSET_CONFIG, POPOVER_SHIFT_CONFIG, POPOVER_TRANSITION_DURATION } from '../../Dropdown.const';
7
- import { getTransitionConfig } from '../../utils';
8
- import { DropdownOverlay } from '../DropdownOverlay/DropdownOverlay';
9
- export var DropdownPopover = function DropdownPopover(_ref) {
10
- var _ref$placement = _ref.placement,
11
- placement = _ref$placement === void 0 ? 'bottomLeft' : _ref$placement,
12
- children = _ref.children,
13
- popoverProps = _ref.popoverProps,
14
- popoverTriggerProps = _ref.popoverTriggerProps,
15
- getPopupContainer = _ref.getPopupContainer,
16
- trigger = _ref.trigger,
17
- open = _ref.open,
18
- onDismiss = _ref.onDismiss,
19
- overlay = _ref.overlay,
20
- handleOpenChange = _ref.handleOpenChange,
21
- size = _ref.size,
22
- handleItemClick = _ref.handleItemClick,
23
- handleTriggerClick = _ref.handleTriggerClick,
24
- hideOnItemClick = _ref.hideOnItemClick,
25
- asChild = _ref.asChild,
26
- overlayStyle = _ref.overlayStyle,
27
- overlayClassName = _ref.overlayClassName,
28
- overlayHTMLAttributes = _ref.overlayHTMLAttributes,
29
- activeIndex = _ref.activeIndex,
30
- setActiveIndex = _ref.setActiveIndex;
31
- var floatingPlacement = getPlacement(placement);
32
- var triggerRef = useRef(null);
33
- var elementsRef = useRef([]);
34
- var listNavigationConfig = {
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { useRef } from "react";
3
+ import { FloatingList } from "@floating-ui/react";
4
+ import { DropdownContextProvider } from "@synerise/ds-core";
5
+ import { getPlacement, Popover, PopoverTrigger, PopoverContent } from "@synerise/ds-popover";
6
+ import { POPOVER_SHIFT_CONFIG, POPOVER_FLIP_CONFIG, POPOVER_OFFSET_CONFIG, POPOVER_TRANSITION_DURATION } from "../../Dropdown.const.js";
7
+ import { getTransitionConfig } from "../../utils/getTransitionConfig.js";
8
+ import { DropdownOverlay } from "../DropdownOverlay/DropdownOverlay.js";
9
+ const DropdownPopover = ({
10
+ placement = "bottomLeft",
11
+ children,
12
+ popoverProps,
13
+ popoverTriggerProps,
14
+ getPopupContainer,
15
+ trigger,
16
+ open,
17
+ onDismiss,
18
+ overlay,
19
+ handleOpenChange,
20
+ size,
21
+ handleItemClick,
22
+ handleTriggerClick,
23
+ hideOnItemClick,
24
+ asChild,
25
+ overlayStyle,
26
+ overlayClassName,
27
+ overlayHTMLAttributes,
28
+ activeIndex,
29
+ setActiveIndex
30
+ }) => {
31
+ const floatingPlacement = getPlacement(placement);
32
+ const triggerRef = useRef(null);
33
+ const elementsRef = useRef([]);
34
+ const listNavigationConfig = {
35
35
  enabled: true,
36
- activeIndex: activeIndex,
37
- onNavigate: function onNavigate(newIndex) {
36
+ activeIndex,
37
+ onNavigate: (newIndex) => {
38
38
  setActiveIndex(newIndex);
39
39
  },
40
40
  listRef: elementsRef
41
41
  };
42
- return /*#__PURE__*/React.createElement(Popover, _extends({
43
- placement: floatingPlacement,
44
- trigger: trigger,
45
- modal: false,
46
- open: open,
47
- onOpenChange: handleOpenChange,
48
- onDismiss: onDismiss,
49
- transitionDuration: POPOVER_TRANSITION_DURATION,
50
- autoUpdate: true,
51
- offsetConfig: POPOVER_OFFSET_CONFIG,
52
- flipConfig: POPOVER_FLIP_CONFIG,
53
- shiftConfig: POPOVER_SHIFT_CONFIG,
54
- getTransitionConfig: getTransitionConfig,
55
- getPopupContainer: getPopupContainer,
56
- listNavigationConfig: listNavigationConfig,
57
- testId: "dropdown"
58
- }, popoverProps), /*#__PURE__*/React.createElement(PopoverTrigger, _extends({
59
- ref: triggerRef,
60
- asChild: asChild,
61
- onClick: handleTriggerClick
62
- }, popoverTriggerProps), children), /*#__PURE__*/React.createElement(PopoverContent, null, /*#__PURE__*/React.createElement(DropdownContextProvider, {
63
- hideOnItemClick: hideOnItemClick,
64
- activeIndex: activeIndex,
65
- setIsOpen: handleOpenChange,
66
- isOpen: !!open
67
- }, /*#__PURE__*/React.createElement(FloatingList, {
68
- elementsRef: elementsRef
69
- }, /*#__PURE__*/React.createElement(DropdownOverlay, {
70
- size: size,
71
- triggerRef: triggerRef,
72
- htmlAttributes: overlayHTMLAttributes,
73
- overlayStyle: overlayStyle,
74
- overlayClassName: overlayClassName,
75
- hideOnItemClick: hideOnItemClick,
76
- content: overlay,
77
- handleItemClick: handleItemClick
78
- })))));
79
- };
42
+ return /* @__PURE__ */ jsxs(Popover, { placement: floatingPlacement, trigger, modal: false, open, onOpenChange: handleOpenChange, onDismiss, transitionDuration: POPOVER_TRANSITION_DURATION, autoUpdate: true, offsetConfig: POPOVER_OFFSET_CONFIG, flipConfig: POPOVER_FLIP_CONFIG, shiftConfig: POPOVER_SHIFT_CONFIG, getTransitionConfig, getPopupContainer, listNavigationConfig, testId: "dropdown", ...popoverProps, children: [
43
+ /* @__PURE__ */ jsx(PopoverTrigger, { ref: triggerRef, asChild, onClick: handleTriggerClick, ...popoverTriggerProps, children }),
44
+ /* @__PURE__ */ jsx(PopoverContent, { children: /* @__PURE__ */ jsx(DropdownContextProvider, { hideOnItemClick, activeIndex, setIsOpen: handleOpenChange, isOpen: !!open, children: /* @__PURE__ */ jsx(FloatingList, { elementsRef, children: /* @__PURE__ */ jsx(DropdownOverlay, { size, triggerRef, htmlAttributes: overlayHTMLAttributes, overlayStyle, overlayClassName, hideOnItemClick, content: overlay, handleItemClick }) }) }) })
45
+ ] });
46
+ };
47
+ export {
48
+ DropdownPopover
49
+ };
@@ -1,4 +1,4 @@
1
- import { type DropdownProps } from '../../Dropdown.types';
1
+ import { DropdownProps } from '../../Dropdown.types';
2
2
  export type DropdownPopoverProps = Pick<DropdownProps, 'asChild' | 'children' | 'onDismiss' | 'onOpenChange' | 'getPopupContainer' | 'placement' | 'popoverProps' | 'popoverTriggerProps' | 'overlay' | 'overlayClassName' | 'overlayHTMLAttributes' | 'overlayStyle' | 'open' | 'hideOnItemClick' | 'size' | 'trigger'> & {
3
3
  handleOpenChange: (newVal: boolean) => void;
4
4
  handleItemClick?: () => void;
@@ -1 +1 @@
1
- export {};
1
+
@@ -1,3 +1,3 @@
1
- import React from 'react';
2
- import { type TextTriggerProps } from './TextTrigger.types';
1
+ import { default as React } from 'react';
2
+ import { TextTriggerProps } from './TextTrigger.types';
3
3
  export declare const TextTrigger: React.ForwardRefExoticComponent<TextTriggerProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,31 +1,24 @@
1
- import React, { forwardRef } from 'react';
2
- import { useTheme } from '@synerise/ds-core';
3
- import Icon, { AngleDownS } from '@synerise/ds-icon';
4
- import { Title } from '@synerise/ds-typography';
5
- import * as S from './TextTrigger.styles';
6
- export var TextTrigger = /*#__PURE__*/forwardRef(function (_ref, ref) {
7
- var value = _ref.value,
8
- expanded = _ref.expanded,
9
- size = _ref.size,
10
- _ref$inactiveColor = _ref.inactiveColor,
11
- inactiveColor = _ref$inactiveColor === void 0 ? 'grey-800' : _ref$inactiveColor,
12
- onClick = _ref.onClick,
13
- onFocus = _ref.onFocus,
14
- _ref$isDisabled = _ref.isDisabled,
15
- isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled;
16
- var theme = useTheme();
17
- return /*#__PURE__*/React.createElement(S.TextTrigger, {
18
- onFocus: isDisabled ? undefined : onFocus,
19
- inactiveColor: theme.palette[inactiveColor],
20
- tabIndex: 0,
21
- ref: ref,
22
- onClick: isDisabled ? undefined : onClick,
23
- isDisabled: isDisabled
24
- }, /*#__PURE__*/React.createElement(Title, {
25
- level: size
26
- }, value), /*#__PURE__*/React.createElement(S.IconWrapper, {
27
- expanded: expanded
28
- }, /*#__PURE__*/React.createElement(Icon, {
29
- component: /*#__PURE__*/React.createElement(AngleDownS, null)
30
- })));
31
- });
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ import { forwardRef } from "react";
3
+ import { useTheme } from "@synerise/ds-core";
4
+ import Icon, { AngleDownS } from "@synerise/ds-icon";
5
+ import { Title } from "@synerise/ds-typography";
6
+ import { TextTrigger as TextTrigger$1, IconWrapper } from "./TextTrigger.styles.js";
7
+ const TextTrigger = forwardRef(({
8
+ value,
9
+ expanded,
10
+ size,
11
+ inactiveColor = "grey-800",
12
+ onClick,
13
+ onFocus,
14
+ isDisabled = false
15
+ }, ref) => {
16
+ const theme = useTheme();
17
+ return /* @__PURE__ */ jsxs(TextTrigger$1, { onFocus: isDisabled ? void 0 : onFocus, inactiveColor: theme.palette[inactiveColor], tabIndex: 0, ref, onClick: isDisabled ? void 0 : onClick, isDisabled, children: [
18
+ /* @__PURE__ */ jsx(Title, { level: size, children: value }),
19
+ /* @__PURE__ */ jsx(IconWrapper, { expanded, children: /* @__PURE__ */ jsx(Icon, { component: /* @__PURE__ */ jsx(AngleDownS, {}) }) })
20
+ ] });
21
+ });
22
+ export {
23
+ TextTrigger
24
+ };
@@ -1,9 +1,9 @@
1
- import { type ThemeProps } from '@synerise/ds-core';
2
- export declare const TextTrigger: import("styled-components").StyledComponent<"div", any, {
1
+ import { ThemeProps } from '@synerise/ds-core';
2
+ export declare const TextTrigger: import('styled-components').StyledComponent<"div", any, {
3
3
  inactiveColor: string;
4
4
  onFocus?: () => void;
5
5
  isDisabled?: boolean;
6
6
  }, never>;
7
- export declare const IconWrapper: import("styled-components").StyledComponent<"div", any, {
7
+ export declare const IconWrapper: import('styled-components').StyledComponent<"div", any, {
8
8
  expanded?: boolean;
9
9
  } & ThemeProps, never>;
@@ -1,27 +1,13 @@
1
- import styled from 'styled-components';
2
- export var TextTrigger = styled.div.withConfig({
1
+ import styled from "styled-components";
2
+ const TextTrigger = /* @__PURE__ */ styled.div.withConfig({
3
3
  displayName: "TextTriggerstyles__TextTrigger",
4
4
  componentId: "sc-xuqby2-0"
5
- })(["display:flex;flex-direction:row;align-items:center;justify-content:center;cursor:", ";opacity:", ";.ds-title{margin:0;}.ds-title,svg{color:", ";fill:", ";}&&&:focus{.ds-title,svg{color:", ";fill:", ";}}}&:hover{.ds-title,svg{color:", ";fill:", ";}}"], function (props) {
6
- return props.isDisabled ? 'default' : 'pointer';
7
- }, function (props) {
8
- return props.isDisabled ? 0.4 : 1;
9
- }, function (props) {
10
- return props.inactiveColor;
11
- }, function (props) {
12
- return props.inactiveColor;
13
- }, function (props) {
14
- return props.theme.palette['blue-700'];
15
- }, function (props) {
16
- return props.theme.palette['blue-700'];
17
- }, function (props) {
18
- return props.theme.palette['blue-600'];
19
- }, function (props) {
20
- return props.theme.palette['blue-600'];
21
- });
22
- export var IconWrapper = styled.div.withConfig({
5
+ })(["display:flex;flex-direction:row;align-items:center;justify-content:center;cursor:", ";opacity:", ";.ds-title{margin:0;}.ds-title,svg{color:", ";fill:", ";}&&&:focus{.ds-title,svg{color:", ";fill:", ";}}}&:hover{.ds-title,svg{color:", ";fill:", ";}}"], (props) => props.isDisabled ? "default" : "pointer", (props) => props.isDisabled ? 0.4 : 1, (props) => props.inactiveColor, (props) => props.inactiveColor, (props) => props.theme.palette["blue-700"], (props) => props.theme.palette["blue-700"], (props) => props.theme.palette["blue-600"], (props) => props.theme.palette["blue-600"]);
6
+ const IconWrapper = /* @__PURE__ */ styled.div.withConfig({
23
7
  displayName: "TextTriggerstyles__IconWrapper",
24
8
  componentId: "sc-xuqby2-1"
25
- })(["&&&{svg{transition:transform 0.1s linear;transform:rotateZ( ", " );}}"], function (props) {
26
- return props.expanded ? '180deg' : '0deg';
27
- });
9
+ })(["&&&{svg{transition:transform 0.1s linear;transform:rotateZ( ", " );}}"], (props) => props.expanded ? "180deg" : "0deg");
10
+ export {
11
+ IconWrapper,
12
+ TextTrigger
13
+ };
@@ -1,4 +1,4 @@
1
- import type React from 'react';
1
+ import { default as React } from 'react';
2
2
  export type TextTriggerProps = {
3
3
  value: string | React.ReactNode | undefined;
4
4
  inactiveColor?: string;
@@ -1 +1 @@
1
- export {};
1
+
@@ -1,2 +1,2 @@
1
- import { type DropdownMenuTexts } from '../components/DropdownMenu/DropdownMenu.types';
1
+ import { DropdownMenuTexts } from '../components/DropdownMenu/DropdownMenu.types';
2
2
  export declare const useDefaultTexts: (customTexts?: Partial<DropdownMenuTexts>) => DropdownMenuTexts;
@@ -1,21 +1,19 @@
1
- function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
2
- import React from 'react';
3
- import { FormattedMessage, useIntl } from 'react-intl';
4
- export var useDefaultTexts = function useDefaultTexts(customTexts) {
5
- var _useIntl = useIntl(),
6
- formatMessage = _useIntl.formatMessage;
7
- return _extends({
8
- noSearchResults: /*#__PURE__*/React.createElement(FormattedMessage, {
9
- id: "DS.DROPDOWN-MENU.NO-SEARCH-RESULTS",
10
- defaultMessage: "No results"
11
- }),
12
- searchClearTooltip: /*#__PURE__*/React.createElement(FormattedMessage, {
13
- id: "DS.CONFIRMATION.SEARCH-CLEAR-TOOLTIP",
14
- defaultMessage: "Clear"
15
- }),
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { useIntl, FormattedMessage } from "react-intl";
3
+ const useDefaultTexts = (customTexts) => {
4
+ const {
5
+ formatMessage
6
+ } = useIntl();
7
+ return {
8
+ noSearchResults: /* @__PURE__ */ jsx(FormattedMessage, { id: "DS.DROPDOWN-MENU.NO-SEARCH-RESULTS", defaultMessage: "No results" }),
9
+ searchClearTooltip: /* @__PURE__ */ jsx(FormattedMessage, { id: "DS.CONFIRMATION.SEARCH-CLEAR-TOOLTIP", defaultMessage: "Clear" }),
16
10
  searchPlaceholder: formatMessage({
17
- id: 'DS.DROPDOWN-MENU.SEARCH-PLACEHOLDER',
18
- defaultMessage: 'Search'
19
- })
20
- }, customTexts || {});
21
- };
11
+ id: "DS.DROPDOWN-MENU.SEARCH-PLACEHOLDER",
12
+ defaultMessage: "Search"
13
+ }),
14
+ ...customTexts || {}
15
+ };
16
+ };
17
+ export {
18
+ useDefaultTexts
19
+ };
@@ -1,40 +1,38 @@
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 () {
1
+ import { useState, useRef, useEffect, useCallback } from "react";
2
+ const useDropdownVisibility = ({
3
+ open,
4
+ onOpenChange
5
+ }) => {
6
+ const [internalOpen, setInternalOpen] = useState(open);
7
+ const skipDuplicates = useRef(0);
8
+ const controlledComponent = open !== void 0;
9
+ const actualOpen = controlledComponent ? open : internalOpen;
10
+ useEffect(() => {
12
11
  skipDuplicates.current = 0;
13
12
  }, [internalOpen]);
14
- useEffect(function () {
13
+ useEffect(() => {
15
14
  if (controlledComponent && open !== internalOpen) {
16
15
  if (skipDuplicates.current === 0) {
17
16
  skipDuplicates.current += 1;
18
- onOpenChange == null || onOpenChange(open);
17
+ onOpenChange?.(open);
19
18
  }
20
19
  setInternalOpen(open);
21
20
  }
22
- // eslint-disable-next-line react-hooks/exhaustive-deps
23
21
  }, [controlledComponent, open]);
24
- var toggleOpen = useCallback(function (openState) {
22
+ const toggleOpen = useCallback((openState) => {
25
23
  if (openState !== internalOpen) {
26
24
  setInternalOpen(openState);
27
25
  }
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
26
  if (skipDuplicates.current === 0) {
32
27
  skipDuplicates.current += 1;
33
- onOpenChange == null || onOpenChange(openState);
28
+ onOpenChange?.(openState);
34
29
  }
35
30
  }, [internalOpen, onOpenChange]);
36
31
  return {
37
- toggleOpen: toggleOpen,
32
+ toggleOpen,
38
33
  open: actualOpen
39
34
  };
40
- };
35
+ };
36
+ export {
37
+ useDropdownVisibility
38
+ };
package/dist/index.js CHANGED
@@ -1,6 +1,15 @@
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';
1
+ import { Dropdown, Dropdown as Dropdown2 } from "./Dropdown.js";
2
+ import { DropdownMenu } from "./components/DropdownMenu/DropdownMenu.js";
3
+ import { DropdownOverlay } from "./components/DropdownOverlay/DropdownOverlay.js";
4
+ import { TextTrigger } from "./components/TextTrigger/TextTrigger.js";
5
+ import { BackAction } from "./components/BackAction/BackAction.js";
6
+ import { BottomAction } from "./components/BottomAction/BottomAction.js";
7
+ export {
8
+ BackAction,
9
+ BottomAction,
10
+ Dropdown,
11
+ DropdownMenu,
12
+ DropdownOverlay,
13
+ TextTrigger,
14
+ Dropdown2 as default
15
+ };
package/dist/modules.d.js CHANGED
@@ -1 +1 @@
1
- import '@testing-library/jest-dom';
1
+ import "@testing-library/jest-dom";
File without changes
@@ -1,2 +1,2 @@
1
- import { type DropdownSize } from '../Dropdown.types';
1
+ import { DropdownSize } from '../Dropdown.types';
2
2
  export declare const getDropdownWidth: (size?: DropdownSize | number) => number | null;
@@ -1,18 +1,21 @@
1
- export var getDropdownWidth = function getDropdownWidth(size) {
2
- if (typeof size === 'number') {
1
+ const getDropdownWidth = (size) => {
2
+ if (typeof size === "number") {
3
3
  return size;
4
4
  }
5
5
  switch (size) {
6
- case 'small':
6
+ case "small":
7
7
  return 216;
8
- case 'large':
8
+ case "large":
9
9
  return 588;
10
- case 'medium':
10
+ case "medium":
11
11
  return 282;
12
- case 'auto':
13
- case 'match-trigger':
14
- case 'min-match-trigger':
12
+ case "auto":
13
+ case "match-trigger":
14
+ case "min-match-trigger":
15
15
  default:
16
16
  return null;
17
17
  }
18
- };
18
+ };
19
+ export {
20
+ getDropdownWidth
21
+ };
@@ -1,4 +1,4 @@
1
- import { type Placement, type UseTransitionStylesProps } from '@floating-ui/react';
1
+ import { Placement, UseTransitionStylesProps } from '@floating-ui/react';
2
2
  export declare const getTransitionConfig: ({ placement, }: {
3
3
  placement: Placement;
4
4
  }) => Partial<UseTransitionStylesProps>;