@synerise/ds-date-picker 1.2.18 → 1.3.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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,17 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [1.3.0](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-picker@1.2.18...@synerise/ds-date-picker@1.3.0) (2025-11-06)
7
+
8
+
9
+ ### Features
10
+
11
+ * **dropdown:** dropdownMenu component ([f0ec827](https://github.com/Synerise/synerise-design/commit/f0ec82792cdcb021fa9a454912f6e7a892e53895))
12
+
13
+
14
+
15
+
16
+
6
17
  ## [1.2.18](https://github.com/Synerise/synerise-design/compare/@synerise/ds-date-picker@1.2.17...@synerise/ds-date-picker@1.2.18) (2025-10-31)
7
18
 
8
19
  **Note:** Version bump only for package @synerise/ds-date-picker
@@ -0,0 +1,5 @@
1
+ export declare const TRIGGER_PROPS: {
2
+ style: {
3
+ display: string;
4
+ };
5
+ };
@@ -0,0 +1,5 @@
1
+ export var TRIGGER_PROPS = {
2
+ style: {
3
+ display: 'block'
4
+ }
5
+ };
@@ -1,10 +1,10 @@
1
1
  var _excluded = ["autoFocus", "disabled", "texts", "format", "valueFormatOptions", "value", "onApply", "showTime", "onValueChange", "onClear", "errorText", "popoverPlacement", "prefixel", "error", "onDropdownVisibleChange", "dropdownProps", "suffixel", "hideNow", "readOnly", "renderTrigger", "inputProps", "allowClear", "overlayHTMLAttributes", "triggerHTMLAttributes"];
2
2
  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); }
3
3
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
4
- import React, { useCallback, useEffect, useRef, useState } from 'react';
4
+ import React, { useCallback, useEffect, useState } from 'react';
5
5
  import { useIntl } from 'react-intl';
6
6
  import Dropdown from '@synerise/ds-dropdown';
7
- import { useOnClickOutside } from '@synerise/ds-utils';
7
+ import { TRIGGER_PROPS } from './DatePicker.const';
8
8
  import * as S from './DatePicker.styles';
9
9
  import PickerInput from './Elements/PickerInput/PickerInput';
10
10
  import RawDatePicker from './RawDatePicker/RawDatePicker';
@@ -42,12 +42,8 @@ var DatePicker = function DatePicker(_ref) {
42
42
  var _useState2 = useState(value),
43
43
  selectedDate = _useState2[0],
44
44
  setSelectedDate = _useState2[1];
45
- var ref = useRef(null);
46
45
  var intl = useIntl();
47
46
  var allTexts = getDefaultTexts(intl, texts);
48
- useOnClickOutside(ref, function () {
49
- !!dropVisible && setDropVisible(false);
50
- });
51
47
  useEffect(function () {
52
48
  setSelectedDate(value);
53
49
  }, [value]);
@@ -59,6 +55,11 @@ var DatePicker = function DatePicker(_ref) {
59
55
  setSelectedDate(val);
60
56
  setDropVisible(false);
61
57
  }, [onApply]);
58
+ var handleOpenChange = useCallback(function (newOpen) {
59
+ onDropdownVisibleChange == null || onDropdownVisibleChange(newOpen);
60
+ dropdownProps == null || dropdownProps.onOpenChange == null || dropdownProps.onOpenChange(newOpen);
61
+ setDropVisible(newOpen);
62
+ }, [dropdownProps, onDropdownVisibleChange]);
62
63
  var handleClear = useCallback(function () {
63
64
  setDropVisible(false);
64
65
  setSelectedDate(undefined);
@@ -88,8 +89,7 @@ var DatePicker = function DatePicker(_ref) {
88
89
  }));
89
90
  return readOnly ? trigger : /*#__PURE__*/React.createElement(Dropdown, _extends({
90
91
  overlay: /*#__PURE__*/React.createElement(S.OverlayContainer, _extends({
91
- "data-testid": "date-picker-overlay-container",
92
- ref: ref
92
+ "data-testid": "date-picker-overlay-container"
93
93
  }, overlayHTMLAttributes), /*#__PURE__*/React.createElement(RawDatePicker, _extends({}, rest, {
94
94
  showTime: showTime,
95
95
  texts: allTexts,
@@ -98,14 +98,18 @@ var DatePicker = function DatePicker(_ref) {
98
98
  value: selectedDate,
99
99
  hideNow: hideNow
100
100
  }))),
101
- overlayStyle: {
102
- boxShadow: '0 4px 12px 0 rgba(35, 41, 54, 0.07)'
103
- },
104
- onVisibleChange: onDropdownVisibleChange,
105
101
  trigger: ['click'],
106
102
  placement: popoverPlacement,
107
- visible: !!dropVisible && !disabled,
108
- disabled: disabled
109
- }, dropdownProps), trigger);
103
+ disabled: disabled,
104
+ size: "min-match-trigger",
105
+ asChild: false
106
+ }, dropdownProps, {
107
+ onOpenChange: handleOpenChange,
108
+ open: (dropVisible || (dropdownProps == null ? void 0 : dropdownProps.open)) && !disabled,
109
+ popoverProps: _extends({
110
+ testId: 'date-picker'
111
+ }, dropdownProps == null ? void 0 : dropdownProps.popoverProps),
112
+ popoverTriggerProps: _extends({}, TRIGGER_PROPS, dropdownProps == null ? void 0 : dropdownProps.popoverTriggerProps)
113
+ }), trigger);
110
114
  };
111
115
  export default DatePicker;
@@ -20,4 +20,4 @@ export var PickerWrapper = styled.div.withConfig({
20
20
  export var OverlayContainer = styled.div.withConfig({
21
21
  displayName: "DatePickerstyles__OverlayContainer",
22
22
  componentId: "sc-1kprsne-3"
23
- })(["overflow:visible;"]);
23
+ })(["overflow:visible;min-width:318px;"]);
@@ -1,7 +1,7 @@
1
1
  import type { HTMLAttributes, ReactElement, ReactNode } from 'react';
2
2
  import type { IntlShape } from 'react-intl';
3
3
  import type { DateToFormatOptions } from '@synerise/ds-core';
4
- import type { DropdownProps } from '@synerise/ds-dropdown';
4
+ import type { DropdownSharedProps } from '@synerise/ds-dropdown';
5
5
  import type { InputProps } from '@synerise/ds-input';
6
6
  import type { DataAttributes } from '@synerise/ds-utils';
7
7
  export type QuickPick = {
@@ -15,7 +15,7 @@ export type DatePickerProps = {
15
15
  disabledHours?: number[];
16
16
  disabledMinutes?: number[];
17
17
  disabledSeconds?: number[];
18
- dropdownProps?: Partial<DropdownProps>;
18
+ dropdownProps?: Partial<Omit<DropdownSharedProps, 'children' | 'overlay'>>;
19
19
  /**
20
20
  * @deprecated use `valueFormatOptions` instead
21
21
  */
@@ -1,5 +1,31 @@
1
- import Button from '@synerise/ds-button';
2
1
  export declare const Container: import("styled-components").StyledComponent<"div", any, {}, never>;
3
2
  export declare const Actions: import("styled-components").StyledComponent<"div", any, {}, never>;
4
- export declare const Range: import("styled-components").StyledComponent<typeof Button, any, {}, never>;
3
+ export declare const Range: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Omit<Partial<{
4
+ href: string;
5
+ target?: string;
6
+ onClick?: React.MouseEventHandler<HTMLElement>;
7
+ } & import("antd/lib/button/button").BaseButtonProps & Omit<import("react").AnchorHTMLAttributes<any>, "type" | "onClick"> & {
8
+ htmlType?: import("antd/lib/button/button").ButtonHTMLType;
9
+ onClick?: React.MouseEventHandler<HTMLElement>;
10
+ } & Omit<import("react").ButtonHTMLAttributes<any>, "type" | "onClick">>, "type" | "ghost"> & {
11
+ type?: import("@synerise/ds-utils").LiteralStringUnion<import("@synerise/ds-button/dist/Button.types").ButtonType>;
12
+ mode?: import("@synerise/ds-utils").LiteralStringUnion<"single-icon" | "split" | "two-icons" | "label-icon" | "icon-label">;
13
+ color?: import("@synerise/ds-utils").LiteralStringUnion<"blue" | "grey" | "red" | "green" | "yellow" | "pink" | "mars" | "orange" | "fern" | "cyan" | "purple" | "violet">;
14
+ groupVariant?: import("@synerise/ds-utils").LiteralStringUnion<"left-rounded" | "squared" | "right-rounded">;
15
+ justifyContent?: string;
16
+ loading?: boolean | {
17
+ delay?: number;
18
+ };
19
+ onClick?: (event: import("react").MouseEvent<HTMLElement>) => void;
20
+ iconColor?: import("@synerise/ds-utils").LiteralStringUnion<"blue" | "grey" | "red" | "green" | "yellow" | "pink" | "mars" | "orange" | "fern" | "cyan" | "purple" | "violet">;
21
+ error?: boolean;
22
+ readOnly?: boolean;
23
+ tagProps?: import("@synerise/ds-tag").TagProps;
24
+ tooltipProps?: import("@synerise/ds-tooltip").TooltipProps;
25
+ } & import("react").RefAttributes<HTMLButtonElement>> & {
26
+ Creator: import("react").ForwardRefExoticComponent<Omit<import("@synerise/ds-button").CreatorProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
27
+ Expander: ({ size, expanded, disabled, onClick, className, }: import("@synerise/ds-button").ExpanderProps) => import("react").JSX.Element;
28
+ Star: (props: import("@synerise/ds-button").StarButtonProps) => React.ReactElement;
29
+ Checkbox: (props: import("@synerise/ds-button").CheckboxButtonProps) => React.ReactElement;
30
+ }, any, {}, never>;
5
31
  export declare const ActionsPlaceholder: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -1,6 +1,32 @@
1
- import Button from '@synerise/ds-button';
2
1
  import { type ThemeProps } from '@synerise/ds-core';
3
- export declare const NavButton: import("styled-components").StyledComponent<typeof Button, any, {
2
+ export declare const NavButton: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<Omit<Partial<{
3
+ href: string;
4
+ target?: string;
5
+ onClick?: React.MouseEventHandler<HTMLElement>;
6
+ } & import("antd/lib/button/button").BaseButtonProps & Omit<import("react").AnchorHTMLAttributes<any>, "type" | "onClick"> & {
7
+ htmlType?: import("antd/lib/button/button").ButtonHTMLType;
8
+ onClick?: React.MouseEventHandler<HTMLElement>;
9
+ } & Omit<import("react").ButtonHTMLAttributes<any>, "type" | "onClick">>, "type" | "ghost"> & {
10
+ type?: import("@synerise/ds-utils").LiteralStringUnion<import("@synerise/ds-button/dist/Button.types").ButtonType>;
11
+ mode?: import("@synerise/ds-utils").LiteralStringUnion<"single-icon" | "split" | "two-icons" | "label-icon" | "icon-label">;
12
+ color?: import("@synerise/ds-utils").LiteralStringUnion<"blue" | "grey" | "red" | "green" | "yellow" | "pink" | "mars" | "orange" | "fern" | "cyan" | "purple" | "violet">;
13
+ groupVariant?: import("@synerise/ds-utils").LiteralStringUnion<"left-rounded" | "squared" | "right-rounded">;
14
+ justifyContent?: string;
15
+ loading?: boolean | {
16
+ delay?: number;
17
+ };
18
+ onClick?: (event: import("react").MouseEvent<HTMLElement>) => void;
19
+ iconColor?: import("@synerise/ds-utils").LiteralStringUnion<"blue" | "grey" | "red" | "green" | "yellow" | "pink" | "mars" | "orange" | "fern" | "cyan" | "purple" | "violet">;
20
+ error?: boolean;
21
+ readOnly?: boolean;
22
+ tagProps?: import("@synerise/ds-tag").TagProps;
23
+ tooltipProps?: import("@synerise/ds-tooltip").TooltipProps;
24
+ } & import("react").RefAttributes<HTMLButtonElement>> & {
25
+ Creator: import("react").ForwardRefExoticComponent<Omit<import("@synerise/ds-button").CreatorProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
26
+ Expander: ({ size, expanded, disabled, onClick, className, }: import("@synerise/ds-button").ExpanderProps) => import("react").JSX.Element;
27
+ Star: (props: import("@synerise/ds-button").StarButtonProps) => React.ReactElement;
28
+ Checkbox: (props: import("@synerise/ds-button").CheckboxButtonProps) => React.ReactElement;
29
+ }, any, {
4
30
  hidden?: boolean;
5
31
  }, never>;
6
32
  export declare const ArrowPlaceholder: import("styled-components").StyledComponent<"div", any, {}, never>;
@@ -1,4 +1,25 @@
1
1
  import React from 'react';
2
- import { type PickerInputProps } from './PickerInput.types';
3
- declare const PickerInput: ({ disabled, readOnly, value, format: dateFormat, valueFormatOptions, onChange, showTime, onClear, onClick, clearTooltip, highlight, prefixel, suffixel, allowClear, triggerHTMLAttributes, ...rest }: PickerInputProps) => React.JSX.Element;
2
+ declare const PickerInput: React.ForwardRefExoticComponent<Pick<import("@synerise/ds-input").InputProps, "autoResize"> & {
3
+ autoFocus?: boolean;
4
+ size?: import("antd/lib/button").ButtonSize;
5
+ format?: string;
6
+ valueFormatOptions?: import("@synerise/ds-core").DateToFormatOptions;
7
+ showTime?: boolean;
8
+ allowClear?: boolean;
9
+ value?: Date | string;
10
+ onChange?: (dateValue: Date | undefined | null, stringifiedDate: string) => void;
11
+ style?: React.CSSProperties;
12
+ placeholder?: string;
13
+ disabled?: boolean;
14
+ readOnly?: boolean;
15
+ onClick?: () => void;
16
+ onClear?: () => void;
17
+ clearTooltip?: React.ReactNode;
18
+ highlight?: boolean;
19
+ error?: boolean;
20
+ errorText?: React.ReactNode;
21
+ prefixel?: React.ReactNode;
22
+ suffixel?: React.ReactNode;
23
+ triggerHTMLAttributes?: React.HTMLAttributes<HTMLDivElement> & import("@synerise/ds-utils").DataAttributes;
24
+ } & React.RefAttributes<HTMLDivElement>>;
4
25
  export default PickerInput;
@@ -2,14 +2,14 @@ var _excluded = ["disabled", "readOnly", "value", "format", "valueFormatOptions"
2
2
  _excluded2 = ["className"];
3
3
  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); }
4
4
  function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
5
- import React, { useCallback, useMemo, useState } from 'react';
5
+ import React, { forwardRef, useCallback, useMemo, useState } from 'react';
6
6
  import { legacyParse } from '@date-fns/upgrade/v2';
7
7
  import { getDefaultDataTimeOptions, useDataFormat, useTheme } from '@synerise/ds-core';
8
8
  import Icon, { CalendarM, Close3S } from '@synerise/ds-icon';
9
9
  import Tooltip from '@synerise/ds-tooltip';
10
10
  import format from '../../format';
11
11
  import * as S from './PickerInput.styles';
12
- var PickerInput = function PickerInput(_ref) {
12
+ var PickerInput = /*#__PURE__*/forwardRef(function (_ref, ref) {
13
13
  var disabled = _ref.disabled,
14
14
  readOnly = _ref.readOnly,
15
15
  value = _ref.value,
@@ -74,6 +74,7 @@ var PickerInput = function PickerInput(_ref) {
74
74
  className = _ref2.className,
75
75
  restAttributes = _objectWithoutPropertiesLoose(_ref2, _excluded2);
76
76
  return /*#__PURE__*/React.createElement(S.PickerInputWrapper, _extends({
77
+ ref: ref,
77
78
  prefixel: !!prefixel,
78
79
  suffixel: !!suffixel,
79
80
  className: "ds-date-input " + (className || '')
@@ -94,5 +95,5 @@ var PickerInput = function PickerInput(_ref) {
94
95
  readOnly: readOnly,
95
96
  disabled: disabled
96
97
  }, rest))), !!suffixel && /*#__PURE__*/React.createElement(S.Suffixel, null, suffixel));
97
- };
98
+ });
98
99
  export default PickerInput;
@@ -1,8 +1,24 @@
1
1
  import { type ThemeProps } from '@synerise/ds-core';
2
- import { type InputProps } from '@synerise/ds-input';
3
2
  export declare const Prefixel: import("styled-components").StyledComponent<"div", any, ThemeProps, never>;
4
3
  export declare const Suffixel: import("styled-components").StyledComponent<"div", any, ThemeProps, never>;
5
- export declare const Input: import("styled-components").StyledComponent<({ className, errorText, label, description, counterLimit, tooltip, tooltipConfig, icon1, icon1Tooltip, autoResize, icon2, icon2Tooltip, resetMargin, handleInputRef, prefixel, suffixel, error, expandable, expandableTooltip, renderCustomCounter, autoResizeProps, ...antdInputProps }: InputProps) => React.JSX.Element, any, {
4
+ export declare const Input: import("styled-components").StyledComponent<import("react").ForwardRefExoticComponent<{
5
+ error?: boolean;
6
+ className?: string;
7
+ counterLimit?: number;
8
+ renderCustomCounter?: (count?: number) => React.ReactNode;
9
+ icon1?: React.ReactElement;
10
+ icon1Tooltip?: React.ReactElement;
11
+ icon2?: React.ReactElement;
12
+ icon2Tooltip?: React.ReactElement;
13
+ resetMargin?: boolean;
14
+ handleInputRef?: ((ref: React.MutableRefObject<HTMLInputElement | null>) => void) | undefined;
15
+ prefixel?: React.ReactNode;
16
+ suffixel?: React.ReactNode;
17
+ autoResize?: import("@synerise/ds-input").AutoResizeProp;
18
+ autoResizeProps?: Partial<Pick<import("@synerise/ds-input").AutosizeInputProps, "placeholderIsMinWidth" | "wrapperClassName" | "wrapperStyle" | "extraWidth">>;
19
+ expandable?: boolean;
20
+ expandableTooltip?: React.ReactNode;
21
+ } & Omit<import("@synerise/ds-form-field").ContentAboveProps, "id" | "rightSide"> & import("@synerise/ds-form-field").ContentBelowProps & import("antd/lib/input").InputProps & import("react").RefAttributes<HTMLDivElement>>, any, {
6
22
  error?: boolean;
7
23
  className?: string;
8
24
  counterLimit?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@synerise/ds-date-picker",
3
- "version": "1.2.18",
3
+ "version": "1.3.0",
4
4
  "description": "DatePicker UI Component for the Synerise Design System",
5
5
  "license": "ISC",
6
6
  "repository": "Synerise/synerise-design",
@@ -36,12 +36,12 @@
36
36
  "types": "dist/index.d.ts",
37
37
  "dependencies": {
38
38
  "@date-fns/upgrade": "^1.0.3",
39
- "@synerise/ds-button": "^1.4.16",
40
- "@synerise/ds-dropdown": "^1.0.34",
41
- "@synerise/ds-icon": "^1.7.3",
42
- "@synerise/ds-input": "^1.4.2",
43
- "@synerise/ds-time-picker": "^1.1.29",
44
- "@synerise/ds-tooltip": "^1.2.1",
39
+ "@synerise/ds-button": "^1.5.0",
40
+ "@synerise/ds-dropdown": "^1.1.0",
41
+ "@synerise/ds-icon": "^1.8.0",
42
+ "@synerise/ds-input": "^1.5.0",
43
+ "@synerise/ds-time-picker": "^1.2.0",
44
+ "@synerise/ds-tooltip": "^1.3.0",
45
45
  "@synerise/ds-utils": "^1.5.0",
46
46
  "classnames": "^2.5.1",
47
47
  "date-fns": "2.16.1",
@@ -56,5 +56,5 @@
56
56
  "react-intl": ">=3.12.0 <= 6.8",
57
57
  "styled-components": "^5.3.3"
58
58
  },
59
- "gitHead": "73989f3707121812fcd54f3e89e80f6228298689"
59
+ "gitHead": "cbbb7d9f155735bcc4035d8fd8a7813878d6e051"
60
60
  }