@itwin/itwinui-react 2.12.6 → 2.12.8

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.
@@ -1,5 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import type { PopoverProps } from '../utils/index.js';
3
+ import 'tippy.js/animations/shift-away.css';
3
4
  declare type ComboBoxDropdownProps = PopoverProps & {
4
5
  children: JSX.Element;
5
6
  };
@@ -5,6 +5,7 @@
5
5
  import * as React from 'react';
6
6
  import { Popover, useSafeContext } from '../utils/index.js';
7
7
  import { ComboBoxStateContext, ComboBoxActionContext, ComboBoxRefsContext, } from './helpers.js';
8
+ import 'tippy.js/animations/shift-away.css';
8
9
  export const ComboBoxDropdown = React.forwardRef((props, forwardedRef) => {
9
10
  const { children, ...rest } = props;
10
11
  const { isOpen } = useSafeContext(ComboBoxStateContext);
@@ -1,14 +1,13 @@
1
1
  /// <reference types="react" />
2
2
  import type { TimePickerProps } from '../TimePicker/index.js';
3
+ export declare type DatePickerLocalizedNames = {
4
+ [key in 'months' | 'shortDays' | 'days']: string[];
5
+ };
3
6
  /**
4
7
  * Generate localized months and days strings using `Intl.DateTimeFormat` for passed locale to use in DatePicker component.
5
8
  * If locale is not passed, browser locale will be used.
6
9
  */
7
- export declare const generateLocalizedStrings: (locale?: string) => {
8
- months: string[];
9
- shortDays: string[];
10
- days: string[];
11
- };
10
+ export declare const generateLocalizedStrings: (locale?: string) => DatePickerLocalizedNames;
12
11
  export declare type DateRangePickerProps = {
13
12
  /**
14
13
  * Enable date range support.
@@ -42,9 +41,7 @@ export declare type DatePickerProps = {
42
41
  * Pass localized week days (start from sunday) and months.
43
42
  * Use helper function `generateLocalizedStrings` to generate strings using `Intl.DateTimeFormat`.
44
43
  */
45
- localizedNames?: {
46
- [key in 'months' | 'shortDays' | 'days']: string[];
47
- };
44
+ localizedNames?: DatePickerLocalizedNames;
48
45
  /**
49
46
  * Set focus on selected day or today.
50
47
  * @default false
@@ -3,6 +3,7 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import * as React from 'react';
6
+ import cx from 'classnames';
6
7
  import { useTheme, Popover, mergeRefs } from '../utils/index.js';
7
8
  import { Menu } from '../Menu/index.js';
8
9
  /**
@@ -44,7 +45,7 @@ export const DropdownMenu = (props) => {
44
45
  onHide === null || onHide === void 0 ? void 0 : onHide(instance);
45
46
  }, [onHide]);
46
47
  useTheme();
47
- return (React.createElement(Popover, { content: React.createElement(Menu, { className: className, style: style, role: role, id: id }, React.useMemo(() => menuItems(close), [menuItems, close])), visible: trigger === undefined ? isVisible : undefined, onClickOutside: close, placement: placement, onShow: onShowHandler, onHide: onHideHandler, trigger: visible === undefined ? trigger : undefined, ...rest }, React.cloneElement(children, {
48
+ return (React.createElement(Popover, { content: React.createElement(Menu, { className: cx('iui-scroll', className), style: style, role: role, id: id }, React.useMemo(() => menuItems(close), [menuItems, close])), visible: trigger === undefined ? isVisible : undefined, onClickOutside: close, placement: placement, onShow: onShowHandler, onHide: onHideHandler, trigger: visible === undefined ? trigger : undefined, ...rest }, React.cloneElement(children, {
48
49
  ref: mergeRefs(targetRef, props.children.ref),
49
50
  onClick: (args) => {
50
51
  var _a, _b;
@@ -76,13 +76,13 @@ export const MenuItem = React.forwardRef((props, ref) => {
76
76
  className: cx(badge.props.className, 'iui-icon'),
77
77
  })));
78
78
  return subMenuItems.length === 0 ? (listItem) : (React.createElement(MenuItemContext.Provider, { value: { ref: menuItemRef } },
79
- React.createElement(Popover, { placement: 'right-start', visible: isSubmenuVisible, appendTo: 'parent', content: React.createElement("div", { onMouseLeave: () => setIsSubmenuVisible(false), onBlur: (e) => {
79
+ React.createElement(Popover, { placement: 'right-start', visible: isSubmenuVisible, appendTo: 'parent', delay: 100, content: React.createElement("div", { onMouseLeave: () => setIsSubmenuVisible(false), onBlur: (e) => {
80
80
  var _a, _b;
81
81
  !!(e.relatedTarget instanceof Node) &&
82
82
  !((_a = subMenuRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.relatedTarget)) &&
83
83
  !((_b = subMenuRef.current) === null || _b === void 0 ? void 0 : _b.isEqualNode(e.relatedTarget)) &&
84
84
  setIsSubmenuVisible(false);
85
85
  } },
86
- React.createElement(Menu, { ref: subMenuRef }, subMenuItems)) }, listItem)));
86
+ React.createElement(Menu, { ref: subMenuRef, className: 'iui-scroll' }, subMenuItems)) }, listItem)));
87
87
  });
88
88
  export default MenuItem;
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import type { LabeledInputProps } from '../../../LabeledInput/index.js';
3
+ import type { DatePickerLocalizedNames } from '../../../DatePicker/DatePicker.js';
3
4
  export declare type DatePickerInputProps = {
4
5
  date?: Date;
5
6
  onChange: (date?: Date) => void;
@@ -13,6 +14,10 @@ export declare type DatePickerInputProps = {
13
14
  * The 'to' date for the 'from' DatePickerInput or the 'from' date for the 'to' DatePickerInput
14
15
  */
15
16
  selectedDate?: Date;
17
+ /**
18
+ * Months, short days and days localized names for DatePicker
19
+ */
20
+ localizedNames?: DatePickerLocalizedNames;
16
21
  } & Omit<LabeledInputProps, 'value' | 'onChange' | 'svgIcon' | 'displayStyle'>;
17
22
  declare const DatePickerInput: (props: DatePickerInputProps) => JSX.Element;
18
23
  export default DatePickerInput;
@@ -8,7 +8,7 @@ import { LabeledInput } from '../../../LabeledInput/index.js';
8
8
  import { DatePicker } from '../../../DatePicker/index.js';
9
9
  import { IconButton } from '../../../Buttons/index.js';
10
10
  const DatePickerInput = (props) => {
11
- const { onChange, date, parseInput, formatDate, isFromOrTo, selectedDate, ...rest } = props;
11
+ const { onChange, date, parseInput, formatDate, isFromOrTo, selectedDate, localizedNames, ...rest } = props;
12
12
  const isDateDisabled = (date) => {
13
13
  if (isFromOrTo === 'to') {
14
14
  return isBefore(date, selectedDate);
@@ -43,7 +43,7 @@ const DatePickerInput = (props) => {
43
43
  onChange(parsedDate);
44
44
  }
45
45
  }, [onChange, parseInput]);
46
- return (React.createElement(Popover, { content: React.createElement(DatePicker, { date: date, onChange: onDateSelected, setFocus: true, isDateDisabled: isDateDisabled }), placement: 'bottom', visible: isVisible, onClickOutside: (_, e) => {
46
+ return (React.createElement(Popover, { content: React.createElement(DatePicker, { date: date, onChange: onDateSelected, setFocus: true, isDateDisabled: isDateDisabled, localizedNames: localizedNames }), placement: 'bottom', visible: isVisible, onClickOutside: (_, e) => {
47
47
  var _a;
48
48
  if (!((_a = buttonRef.current) === null || _a === void 0 ? void 0 : _a.contains(e.target))) {
49
49
  close();
@@ -1,9 +1,11 @@
1
1
  /// <reference types="react" />
2
2
  import type { FilterButtonBarTranslation } from '../FilterButtonBar.js';
3
3
  import type { TableFilterProps } from '../types.js';
4
+ import type { DatePickerLocalizedNames } from '../../../DatePicker/DatePicker.js';
4
5
  export declare type DateRangeTranslation = {
5
6
  from: string;
6
7
  to: string;
8
+ datePicker?: DatePickerLocalizedNames;
7
9
  };
8
10
  export declare type DateRangeFilterProps<T extends Record<string, unknown>> = TableFilterProps<T> & {
9
11
  formatDate?: (date: Date) => string;
@@ -58,7 +58,7 @@ export const DateRangeFilter = (props) => {
58
58
  }
59
59
  };
60
60
  return (React.createElement(BaseFilter, null,
61
- React.createElement(DatePickerInput, { label: translatedStrings.from, date: from, onChange: onFromChange, formatDate: formatDate, parseInput: parseInput, onKeyDown: onKeyDown, placeholder: placeholder, selectedDate: to, isFromOrTo: 'from', setFocus: true }),
62
- React.createElement(DatePickerInput, { label: translatedStrings.to, date: to, onChange: onToChange, formatDate: formatDate, parseInput: parseInput, onKeyDown: onKeyDown, placeholder: placeholder, selectedDate: from, isFromOrTo: 'to' }),
61
+ React.createElement(DatePickerInput, { label: translatedStrings.from, date: from, onChange: onFromChange, formatDate: formatDate, parseInput: parseInput, onKeyDown: onKeyDown, placeholder: placeholder, selectedDate: to, isFromOrTo: 'from', localizedNames: translatedStrings.datePicker, setFocus: true }),
62
+ React.createElement(DatePickerInput, { label: translatedStrings.to, date: to, onChange: onToChange, formatDate: formatDate, parseInput: parseInput, onKeyDown: onKeyDown, placeholder: placeholder, selectedDate: from, isFromOrTo: 'to', localizedNames: translatedStrings.datePicker }),
63
63
  React.createElement(FilterButtonBar, { setFilter: () => setFilter([from, to]), clearFilter: clearFilter, translatedLabels: translatedLabels })));
64
64
  };