@itwin/itwinui-react 1.34.0 → 1.35.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 (74) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/cjs/core/ButtonGroup/ButtonGroup.js +1 -0
  3. package/cjs/core/Carousel/Carousel.d.ts +68 -0
  4. package/cjs/core/Carousel/Carousel.js +130 -0
  5. package/cjs/core/Carousel/CarouselContext.d.ts +37 -0
  6. package/cjs/core/Carousel/CarouselContext.js +12 -0
  7. package/cjs/core/Carousel/CarouselDot.d.ts +13 -0
  8. package/cjs/core/Carousel/CarouselDot.js +46 -0
  9. package/cjs/core/Carousel/CarouselDotsList.d.ts +32 -0
  10. package/cjs/core/Carousel/CarouselDotsList.js +132 -0
  11. package/cjs/core/Carousel/CarouselNavigation.d.ts +15 -0
  12. package/cjs/core/Carousel/CarouselNavigation.js +88 -0
  13. package/cjs/core/Carousel/CarouselSlide.d.ts +14 -0
  14. package/cjs/core/Carousel/CarouselSlide.js +63 -0
  15. package/cjs/core/Carousel/CarouselSlider.d.ts +5 -0
  16. package/cjs/core/Carousel/CarouselSlider.js +94 -0
  17. package/cjs/core/Carousel/index.d.ts +4 -0
  18. package/cjs/core/Carousel/index.js +10 -0
  19. package/cjs/core/ComboBox/ComboBox.js +2 -2
  20. package/cjs/core/DatePicker/DatePicker.d.ts +5 -0
  21. package/cjs/core/DatePicker/DatePicker.js +38 -13
  22. package/cjs/core/Modal/Modal.d.ts +5 -0
  23. package/cjs/core/Modal/Modal.js +11 -9
  24. package/cjs/core/Modal/ModalContent.d.ts +14 -0
  25. package/cjs/core/Modal/ModalContent.js +46 -0
  26. package/cjs/core/Modal/index.d.ts +2 -0
  27. package/cjs/core/Modal/index.js +3 -1
  28. package/cjs/core/Table/Table.js +8 -7
  29. package/cjs/core/Table/filters/DateRangeFilter/DateRangeFilter.js +18 -2
  30. package/cjs/core/index.d.ts +4 -2
  31. package/cjs/core/index.js +6 -2
  32. package/cjs/core/utils/hooks/index.d.ts +1 -0
  33. package/cjs/core/utils/hooks/index.js +1 -0
  34. package/cjs/core/utils/hooks/useMediaQuery.d.ts +2 -0
  35. package/cjs/core/utils/hooks/useMediaQuery.js +46 -0
  36. package/cjs/core/utils/hooks/useTheme.d.ts +5 -0
  37. package/cjs/core/utils/hooks/useTheme.js +20 -14
  38. package/esm/core/ButtonGroup/ButtonGroup.js +1 -0
  39. package/esm/core/Carousel/Carousel.d.ts +68 -0
  40. package/esm/core/Carousel/Carousel.js +124 -0
  41. package/esm/core/Carousel/CarouselContext.d.ts +37 -0
  42. package/esm/core/Carousel/CarouselContext.js +6 -0
  43. package/esm/core/Carousel/CarouselDot.d.ts +13 -0
  44. package/esm/core/Carousel/CarouselDot.js +40 -0
  45. package/esm/core/Carousel/CarouselDotsList.d.ts +32 -0
  46. package/esm/core/Carousel/CarouselDotsList.js +126 -0
  47. package/esm/core/Carousel/CarouselNavigation.d.ts +15 -0
  48. package/esm/core/Carousel/CarouselNavigation.js +82 -0
  49. package/esm/core/Carousel/CarouselSlide.d.ts +14 -0
  50. package/esm/core/Carousel/CarouselSlide.js +57 -0
  51. package/esm/core/Carousel/CarouselSlider.d.ts +5 -0
  52. package/esm/core/Carousel/CarouselSlider.js +88 -0
  53. package/esm/core/Carousel/index.d.ts +4 -0
  54. package/esm/core/Carousel/index.js +6 -0
  55. package/esm/core/ComboBox/ComboBox.js +2 -2
  56. package/esm/core/DatePicker/DatePicker.d.ts +5 -0
  57. package/esm/core/DatePicker/DatePicker.js +38 -13
  58. package/esm/core/Modal/Modal.d.ts +5 -0
  59. package/esm/core/Modal/Modal.js +11 -9
  60. package/esm/core/Modal/ModalContent.d.ts +14 -0
  61. package/esm/core/Modal/ModalContent.js +39 -0
  62. package/esm/core/Modal/index.d.ts +2 -0
  63. package/esm/core/Modal/index.js +1 -0
  64. package/esm/core/Table/Table.js +8 -7
  65. package/esm/core/Table/filters/DateRangeFilter/DateRangeFilter.js +18 -2
  66. package/esm/core/index.d.ts +4 -2
  67. package/esm/core/index.js +2 -1
  68. package/esm/core/utils/hooks/index.d.ts +1 -0
  69. package/esm/core/utils/hooks/index.js +1 -0
  70. package/esm/core/utils/hooks/useMediaQuery.d.ts +2 -0
  71. package/esm/core/utils/hooks/useMediaQuery.js +39 -0
  72. package/esm/core/utils/hooks/useTheme.d.ts +5 -0
  73. package/esm/core/utils/hooks/useTheme.js +20 -14
  74. package/package.json +3 -2
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.CarouselSlide = void 0;
29
+ /*---------------------------------------------------------------------------------------------
30
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
31
+ * See LICENSE.md in the project root for license terms and full copyright notice.
32
+ *--------------------------------------------------------------------------------------------*/
33
+ var react_1 = __importDefault(require("react"));
34
+ var classnames_1 = __importDefault(require("classnames"));
35
+ var utils_1 = require("../utils");
36
+ var CarouselContext_1 = require("./CarouselContext");
37
+ /**
38
+ * `CarouselSlide` is used for the actual slide content. The content can be specified through `children`.
39
+ *
40
+ * It is recommended that the slide content bring its own dimensions (esp. height) and that
41
+ * the dimensions should be the same for all slides.
42
+ */
43
+ exports.CarouselSlide = react_1.default.forwardRef(function (props, ref) {
44
+ var index = props.index, className = props.className, children = props.children, rest = __rest(props, ["index", "className", "children"]);
45
+ var context = react_1.default.useContext(CarouselContext_1.CarouselContext);
46
+ if (!context || index == null) {
47
+ throw new Error('CarouselSlide must be used within Carousel');
48
+ }
49
+ var currentIndex = context.currentIndex, isManuallyUpdating = context.isManuallyUpdating, setCurrentIndex = context.setCurrentIndex;
50
+ var updateActiveIndexOnScroll = react_1.default.useCallback(function () {
51
+ // only update index if scroll was triggered by browser
52
+ if (!isManuallyUpdating.current && currentIndex !== index) {
53
+ setCurrentIndex(index);
54
+ }
55
+ // when manual scroll completes, reset the state of `isManuallyUpdating` so that it's ready for future actions
56
+ if (currentIndex === index) {
57
+ isManuallyUpdating.current = false;
58
+ }
59
+ }, [currentIndex, index, isManuallyUpdating, setCurrentIndex]);
60
+ var intersectionRef = (0, utils_1.useIntersection)(updateActiveIndexOnScroll, { threshold: 0.5 }, false);
61
+ var refs = (0, utils_1.useMergedRefs)(intersectionRef, ref);
62
+ return (react_1.default.createElement("li", __assign({ className: (0, classnames_1.default)('iui-carousel-slider-item', className), role: 'tabpanel', "aria-roledescription": 'slide', ref: refs }, rest), children));
63
+ });
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ /**
3
+ * `CarouselSlider` is the scrollable list that should consist of `CarouselSlide` components.
4
+ */
5
+ export declare const CarouselSlider: React.ForwardRefExoticComponent<Pick<React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement>, "key" | keyof React.OlHTMLAttributes<HTMLOListElement>> & React.RefAttributes<HTMLOListElement>>;
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.CarouselSlider = void 0;
29
+ /*---------------------------------------------------------------------------------------------
30
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
31
+ * See LICENSE.md in the project root for license terms and full copyright notice.
32
+ *--------------------------------------------------------------------------------------------*/
33
+ var react_1 = __importDefault(require("react"));
34
+ var classnames_1 = __importDefault(require("classnames"));
35
+ var CarouselContext_1 = require("./CarouselContext");
36
+ var utils_1 = require("../utils");
37
+ /**
38
+ * `CarouselSlider` is the scrollable list that should consist of `CarouselSlide` components.
39
+ */
40
+ exports.CarouselSlider = react_1.default.forwardRef(function (props, ref) {
41
+ var children = props.children, className = props.className, rest = __rest(props, ["children", "className"]);
42
+ var context = react_1.default.useContext(CarouselContext_1.CarouselContext);
43
+ if (!context) {
44
+ throw new Error('CarouselSlider must be used within Carousel');
45
+ }
46
+ var currentIndex = context.currentIndex, setSlideCount = context.setSlideCount, idPrefix = context.idPrefix, isManuallyUpdating = context.isManuallyUpdating, scrollInstantly = context.scrollInstantly;
47
+ var items = react_1.default.useMemo(function () {
48
+ var _a;
49
+ return (_a = react_1.default.Children.map(children, function (child, index) {
50
+ return react_1.default.isValidElement(child)
51
+ ? react_1.default.cloneElement(child, {
52
+ id: idPrefix + "--slide-" + index,
53
+ index: index,
54
+ })
55
+ : child;
56
+ })) !== null && _a !== void 0 ? _a : [];
57
+ }, [children, idPrefix]);
58
+ react_1.default.useLayoutEffect(function () {
59
+ setSlideCount(items.length);
60
+ }, [items.length, setSlideCount]);
61
+ var _a = react_1.default.useState(), width = _a[0], setWidth = _a[1];
62
+ var resizeRef = (0, utils_1.useResizeObserver)(function (_a) {
63
+ var width = _a.width;
64
+ return setWidth(width);
65
+ })[0];
66
+ var sliderRef = react_1.default.useRef(null);
67
+ var refs = (0, utils_1.useMergedRefs)(sliderRef, resizeRef, ref);
68
+ var justMounted = react_1.default.useRef(true);
69
+ var previousWidth = react_1.default.useRef();
70
+ react_1.default.useLayoutEffect(function () {
71
+ var _a, _b, _c;
72
+ var slideToShow = (_a = sliderRef.current) === null || _a === void 0 ? void 0 : _a.children.item(currentIndex);
73
+ if (!sliderRef.current ||
74
+ !slideToShow ||
75
+ (!isManuallyUpdating.current && previousWidth.current === width)) {
76
+ return;
77
+ }
78
+ // instant scroll on first mount
79
+ if (justMounted.current) {
80
+ scrollInstantly.current = true;
81
+ justMounted.current = false;
82
+ }
83
+ var motionOk = (_c = (_b = (0, utils_1.getWindow)()) === null || _b === void 0 ? void 0 : _b.matchMedia('(prefers-reduced-motion: no-preference)')) === null || _c === void 0 ? void 0 : _c.matches;
84
+ sliderRef.current.scrollTo({
85
+ left: slideToShow.offsetLeft - sliderRef.current.offsetLeft,
86
+ behavior: (scrollInstantly.current || !motionOk
87
+ ? 'instant'
88
+ : 'smooth'), // scrollTo accepts 'instant' but ScrollBehavior type is wrong
89
+ });
90
+ scrollInstantly.current = false;
91
+ previousWidth.current = width;
92
+ }, [currentIndex, isManuallyUpdating, scrollInstantly, width]);
93
+ return (react_1.default.createElement("ol", __assign({ "aria-live": 'polite', className: (0, classnames_1.default)('iui-carousel-slider', className), ref: refs }, rest), items));
94
+ });
@@ -0,0 +1,4 @@
1
+ export { Carousel } from './Carousel';
2
+ export type { CarouselProps } from './Carousel';
3
+ declare const _default: "./Carousel";
4
+ export default _default;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Carousel = void 0;
4
+ /*---------------------------------------------------------------------------------------------
5
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
6
+ * See LICENSE.md in the project root for license terms and full copyright notice.
7
+ *--------------------------------------------------------------------------------------------*/
8
+ var Carousel_1 = require("./Carousel");
9
+ Object.defineProperty(exports, "Carousel", { enumerable: true, get: function () { return Carousel_1.Carousel; } });
10
+ exports.default = './Carousel';
@@ -300,9 +300,9 @@ var ComboBox = function (props) {
300
300
  }
301
301
  (_a = dropdownMenuProps === null || dropdownMenuProps === void 0 ? void 0 : dropdownMenuProps.onHide) === null || _a === void 0 ? void 0 : _a.call(dropdownMenuProps, instance);
302
302
  } }),
303
- react_1.default.createElement(Input_1.Input, __assign({ ref: inputRef, onKeyDown: onKeyDown, onFocus: function () { return setIsOpen(true); }, onChange: onInput, value: inputValue, "aria-activedescendant": isOpen && focusedIndex > -1
303
+ react_1.default.createElement(Input_1.Input, __assign({ ref: inputRef, onKeyDown: onKeyDown, onFocus: function () { return setIsOpen(true); }, value: inputValue, "aria-activedescendant": isOpen && focusedIndex > -1
304
304
  ? getOptionId(focusedIndex)
305
- : undefined, role: 'combobox', "aria-controls": isOpen ? id + "-list" : undefined, "aria-autocomplete": 'list', spellCheck: false, autoCapitalize: 'none', autoCorrect: 'off' }, inputProps))),
305
+ : undefined, role: 'combobox', "aria-controls": isOpen ? id + "-list" : undefined, "aria-autocomplete": 'list', spellCheck: false, autoCapitalize: 'none', autoCorrect: 'off' }, inputProps, { onChange: onInput }))),
306
306
  react_1.default.createElement("span", { ref: toggleButtonRef, className: (0, classnames_1.default)('iui-end-icon', {
307
307
  'iui-actionable': !(inputProps === null || inputProps === void 0 ? void 0 : inputProps.disabled),
308
308
  'iui-disabled': inputProps === null || inputProps === void 0 ? void 0 : inputProps.disabled,
@@ -36,6 +36,11 @@ export declare type DatePickerProps = {
36
36
  * @default false
37
37
  */
38
38
  showTime?: boolean;
39
+ /**
40
+ * Show additional buttons to select year.
41
+ * @default false
42
+ */
43
+ showYearSelection?: boolean;
39
44
  } & Omit<TimePickerProps, 'date' | 'onChange' | 'setFocusHour'>;
40
45
  /**
41
46
  * Date picker component
@@ -32,6 +32,8 @@ exports.DatePicker = exports.generateLocalizedStrings = void 0;
32
32
  *--------------------------------------------------------------------------------------------*/
33
33
  var ChevronLeft_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/ChevronLeft"));
34
34
  var ChevronRight_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/ChevronRight"));
35
+ var ChevronLeftDouble_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/ChevronLeftDouble"));
36
+ var ChevronRightDouble_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/ChevronRightDouble"));
35
37
  var classnames_1 = __importDefault(require("classnames"));
36
38
  var react_1 = __importDefault(require("react"));
37
39
  var utils_1 = require("../utils");
@@ -127,15 +129,15 @@ exports.generateLocalizedStrings = generateLocalizedStrings;
127
129
  */
128
130
  var DatePicker = function (props) {
129
131
  var _a, _b, _c;
130
- var date = props.date, onChange = props.onChange, localizedNames = props.localizedNames, className = props.className, style = props.style, _d = props.setFocus, setFocus = _d === void 0 ? false : _d, _e = props.showTime, showTime = _e === void 0 ? false : _e, _f = props.use12Hours, use12Hours = _f === void 0 ? false : _f, precision = props.precision, hourStep = props.hourStep, minuteStep = props.minuteStep, secondStep = props.secondStep, rest = __rest(props, ["date", "onChange", "localizedNames", "className", "style", "setFocus", "showTime", "use12Hours", "precision", "hourStep", "minuteStep", "secondStep"]);
132
+ var date = props.date, onChange = props.onChange, localizedNames = props.localizedNames, className = props.className, style = props.style, _d = props.setFocus, setFocus = _d === void 0 ? false : _d, _e = props.showTime, showTime = _e === void 0 ? false : _e, _f = props.use12Hours, use12Hours = _f === void 0 ? false : _f, precision = props.precision, hourStep = props.hourStep, minuteStep = props.minuteStep, secondStep = props.secondStep, _g = props.showYearSelection, showYearSelection = _g === void 0 ? false : _g, rest = __rest(props, ["date", "onChange", "localizedNames", "className", "style", "setFocus", "showTime", "use12Hours", "precision", "hourStep", "minuteStep", "secondStep", "showYearSelection"]);
131
133
  (0, utils_1.useTheme)();
132
134
  var monthNames = (_a = localizedNames === null || localizedNames === void 0 ? void 0 : localizedNames.months) !== null && _a !== void 0 ? _a : defaultMonths;
133
135
  var shortDays = (_b = localizedNames === null || localizedNames === void 0 ? void 0 : localizedNames.shortDays) !== null && _b !== void 0 ? _b : defaultShortDays;
134
136
  var longDays = (_c = localizedNames === null || localizedNames === void 0 ? void 0 : localizedNames.days) !== null && _c !== void 0 ? _c : defaultLongDays;
135
- var _g = react_1.default.useState(date), selectedDay = _g[0], setSelectedDay = _g[1];
136
- var _h = react_1.default.useState(selectedDay !== null && selectedDay !== void 0 ? selectedDay : new Date()), focusedDay = _h[0], setFocusedDay = _h[1];
137
- var _j = react_1.default.useState(selectedDay ? selectedDay.getMonth() : new Date().getMonth()), displayedMonthIndex = _j[0], setDisplayedMonthIndex = _j[1];
138
- var _k = react_1.default.useState(selectedDay ? selectedDay.getFullYear() : new Date().getFullYear()), displayedYear = _k[0], setDisplayedYear = _k[1];
137
+ var _h = react_1.default.useState(date), selectedDay = _h[0], setSelectedDay = _h[1];
138
+ var _j = react_1.default.useState(selectedDay !== null && selectedDay !== void 0 ? selectedDay : new Date()), focusedDay = _j[0], setFocusedDay = _j[1];
139
+ var _k = react_1.default.useState(selectedDay ? selectedDay.getMonth() : new Date().getMonth()), displayedMonthIndex = _k[0], setDisplayedMonthIndex = _k[1];
140
+ var _l = react_1.default.useState(selectedDay ? selectedDay.getFullYear() : new Date().getFullYear()), displayedYear = _l[0], setDisplayedYear = _l[1];
139
141
  // Used to focus days only when days are changed
140
142
  // e.g. without this, when changing months day would be focused
141
143
  var needFocus = react_1.default.useRef(setFocus);
@@ -181,6 +183,16 @@ var DatePicker = function (props) {
181
183
  var newDate = new Date(newYear, newMonth, currentDate.getDate(), currentDate.getHours(), currentDate.getMinutes(), currentDate.getSeconds());
182
184
  return newDate;
183
185
  };
186
+ var handleMoveToPreviousYear = function () {
187
+ var newYear = displayedYear - 1;
188
+ setMonthAndYear(displayedMonthIndex, newYear);
189
+ setFocusedDay(getNewFocusedDate(newYear, displayedMonthIndex));
190
+ };
191
+ var handleMoveToNextYear = function () {
192
+ var newYear = displayedYear + 1;
193
+ setMonthAndYear(displayedMonthIndex, newYear);
194
+ setFocusedDay(getNewFocusedDate(newYear, displayedMonthIndex));
195
+ };
184
196
  var handleMoveToPreviousMonth = function () {
185
197
  var newMonth = displayedMonthIndex !== 0 ? displayedMonthIndex - 1 : 11;
186
198
  var newYear = displayedMonthIndex !== 0 ? displayedYear : displayedYear - 1;
@@ -253,26 +265,39 @@ var DatePicker = function (props) {
253
265
  break;
254
266
  }
255
267
  };
268
+ var getDayClass = function (day) {
269
+ if (day.getMonth() !== displayedMonthIndex) {
270
+ return 'iui-calendar-day-outside-month';
271
+ }
272
+ var dayClass = 'iui-calendar-day';
273
+ if (isSameDay(day, selectedDay)) {
274
+ dayClass += '-selected';
275
+ }
276
+ if (isSameDay(day, new Date())) {
277
+ dayClass += '-today';
278
+ }
279
+ return dayClass;
280
+ };
256
281
  return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-date-picker', className), style: style }, rest),
257
282
  react_1.default.createElement("div", null,
258
283
  react_1.default.createElement("div", { className: 'iui-calendar-month-year' },
259
- react_1.default.createElement(IconButton_1.IconButton, { styleType: 'borderless', onClick: handleMoveToPreviousMonth, "aria-label": 'Previous month' },
284
+ showYearSelection && (react_1.default.createElement(IconButton_1.IconButton, { styleType: 'borderless', onClick: handleMoveToPreviousYear, "aria-label": 'Previous year', size: 'small' },
285
+ react_1.default.createElement(ChevronLeftDouble_1.default, null))),
286
+ react_1.default.createElement(IconButton_1.IconButton, { styleType: 'borderless', onClick: handleMoveToPreviousMonth, "aria-label": 'Previous month', size: 'small' },
260
287
  react_1.default.createElement(ChevronLeft_1.default, null)),
261
288
  react_1.default.createElement("span", { "aria-live": 'polite' },
262
289
  react_1.default.createElement("span", { className: 'iui-calendar-month', title: monthNames[displayedMonthIndex] }, monthNames[displayedMonthIndex]),
263
290
  "\u00A0",
264
291
  displayedYear),
265
- react_1.default.createElement(IconButton_1.IconButton, { styleType: 'borderless', onClick: handleMoveToNextMonth, "aria-label": 'Next month' },
266
- react_1.default.createElement(ChevronRight_1.default, null))),
292
+ react_1.default.createElement(IconButton_1.IconButton, { styleType: 'borderless', onClick: handleMoveToNextMonth, "aria-label": 'Next month', size: 'small' },
293
+ react_1.default.createElement(ChevronRight_1.default, null)),
294
+ showYearSelection && (react_1.default.createElement(IconButton_1.IconButton, { styleType: 'borderless', onClick: handleMoveToNextYear, "aria-label": 'Next year', size: 'small' },
295
+ react_1.default.createElement(ChevronRightDouble_1.default, null)))),
267
296
  react_1.default.createElement("div", { className: 'iui-calendar-weekdays' }, shortDays.map(function (day, index) { return (react_1.default.createElement("div", { key: day, title: longDays[index] }, day)); })),
268
297
  react_1.default.createElement("div", { onKeyDown: handleCalendarKeyDown, role: 'listbox' }, weeks.map(function (weekDays, weekIndex) {
269
298
  return (react_1.default.createElement("div", { key: "week-" + displayedMonthIndex + "-" + weekIndex, className: 'iui-calendar-week' }, weekDays.map(function (weekDay, dayIndex) {
270
299
  var dateValue = weekDay.getDate();
271
- return (react_1.default.createElement("div", { key: "day-" + displayedMonthIndex + "-" + dayIndex, className: (0, classnames_1.default)('iui-calendar-day', {
272
- 'iui-outside-month': weekDay.getMonth() !== displayedMonthIndex,
273
- 'iui-today': isSameDay(weekDay, new Date()),
274
- 'iui-selected': isSameDay(weekDay, selectedDay),
275
- }), onClick: function () { return onDayClick(weekDay); }, role: 'option', tabIndex: isSameDay(weekDay, focusedDay) ? 0 : -1, ref: function (element) {
300
+ return (react_1.default.createElement("div", { key: "day-" + displayedMonthIndex + "-" + dayIndex, className: getDayClass(weekDay), onClick: function () { return onDayClick(weekDay); }, role: 'option', tabIndex: isSameDay(weekDay, focusedDay) ? 0 : -1, ref: function (element) {
276
301
  return isSameDay(weekDay, focusedDay) &&
277
302
  needFocus.current &&
278
303
  (element === null || element === void 0 ? void 0 : element.focus());
@@ -45,6 +45,11 @@ export declare type ModalProps = {
45
45
  * @default document
46
46
  */
47
47
  ownerDocument?: Document;
48
+ /**
49
+ * Type of the modal.
50
+ * @default 'default'
51
+ */
52
+ styleType?: 'default' | 'fullPage';
48
53
  /**
49
54
  * Content of the modal.
50
55
  */
@@ -37,6 +37,7 @@ var Close_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/Clos
37
37
  var utils_1 = require("../utils");
38
38
  require("@itwin/itwinui-css/css/modal.css");
39
39
  var IconButton_1 = require("../Buttons/IconButton");
40
+ var react_transition_group_1 = require("react-transition-group");
40
41
  /**
41
42
  * Modal component which can wrap any content.
42
43
  * @example
@@ -59,7 +60,7 @@ var IconButton_1 = require("../Buttons/IconButton");
59
60
  * </Modal>
60
61
  */
61
62
  var Modal = function (props) {
62
- var _a = props.isOpen, isOpen = _a === void 0 ? false : _a, _b = props.isDismissible, isDismissible = _b === void 0 ? true : _b, _c = props.closeOnEsc, closeOnEsc = _c === void 0 ? true : _c, _d = props.closeOnExternalClick, closeOnExternalClick = _d === void 0 ? true : _d, onClose = props.onClose, title = props.title, onKeyDown = props.onKeyDown, id = props.id, className = props.className, style = props.style, children = props.children, _e = props.modalRootId, modalRootId = _e === void 0 ? 'iui-react-portal-container' : _e, _f = props.ownerDocument, ownerDocument = _f === void 0 ? (0, utils_1.getDocument)() : _f, rest = __rest(props, ["isOpen", "isDismissible", "closeOnEsc", "closeOnExternalClick", "onClose", "title", "onKeyDown", "id", "className", "style", "children", "modalRootId", "ownerDocument"]);
63
+ var _a = props.isOpen, isOpen = _a === void 0 ? false : _a, _b = props.isDismissible, isDismissible = _b === void 0 ? true : _b, _c = props.closeOnEsc, closeOnEsc = _c === void 0 ? true : _c, _d = props.closeOnExternalClick, closeOnExternalClick = _d === void 0 ? true : _d, onClose = props.onClose, title = props.title, onKeyDown = props.onKeyDown, id = props.id, className = props.className, style = props.style, children = props.children, _e = props.styleType, styleType = _e === void 0 ? 'default' : _e, _f = props.modalRootId, modalRootId = _f === void 0 ? 'iui-react-portal-container' : _f, _g = props.ownerDocument, ownerDocument = _g === void 0 ? (0, utils_1.getDocument)() : _g, rest = __rest(props, ["isOpen", "isDismissible", "closeOnEsc", "closeOnExternalClick", "onClose", "title", "onKeyDown", "id", "className", "style", "children", "styleType", "modalRootId", "ownerDocument"]);
63
64
  (0, utils_1.useTheme)();
64
65
  var container = (0, utils_1.getContainer)(modalRootId, ownerDocument);
65
66
  var overlayRef = react_1.default.useRef(null);
@@ -117,14 +118,15 @@ var Modal = function (props) {
117
118
  onClose(event);
118
119
  }
119
120
  };
120
- return !!container ? (react_dom_1.default.createPortal(isOpen && (react_1.default.createElement(utils_1.FocusTrap, null,
121
- react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-modal', 'iui-modal-visible', className), tabIndex: -1, onKeyDown: handleKeyDown, ref: overlayRef, onMouseDown: handleMouseDown }, rest),
122
- react_1.default.createElement("div", { className: 'iui-modal-dialog', id: id, style: style, role: 'dialog', "aria-modal": 'true' },
123
- react_1.default.createElement("div", { className: 'iui-title-bar' },
124
- react_1.default.createElement("div", { className: 'iui-title' }, title),
125
- isDismissible && (react_1.default.createElement(IconButton_1.IconButton, { size: 'small', styleType: 'borderless', onClick: onClose, "aria-label": 'Close' },
126
- react_1.default.createElement(Close_1.default, null)))),
127
- children)))), container)) : (react_1.default.createElement(react_1.default.Fragment, null));
121
+ return !!container ? (react_dom_1.default.createPortal(react_1.default.createElement(react_transition_group_1.CSSTransition, { in: isOpen, classNames: 'iui-modal-animation', timeout: { exit: 600 }, unmountOnExit: true },
122
+ react_1.default.createElement(utils_1.FocusTrap, null,
123
+ react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-modal', { 'iui-modal-full-page': styleType === 'fullPage' }, { 'iui-modal-visible': isOpen }, className), tabIndex: -1, onKeyDown: handleKeyDown, ref: overlayRef, onMouseDown: handleMouseDown }, rest),
124
+ react_1.default.createElement("div", { className: 'iui-modal-dialog', id: id, style: style, role: 'dialog', "aria-modal": 'true' },
125
+ react_1.default.createElement("div", { className: 'iui-title-bar' },
126
+ react_1.default.createElement("div", { className: 'iui-title' }, title),
127
+ isDismissible && (react_1.default.createElement(IconButton_1.IconButton, { size: 'small', styleType: 'borderless', onClick: onClose, "aria-label": 'Close' },
128
+ react_1.default.createElement(Close_1.default, null)))),
129
+ children)))), container)) : (react_1.default.createElement(react_1.default.Fragment, null));
128
130
  };
129
131
  exports.Modal = Modal;
130
132
  exports.default = exports.Modal;
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ import { CommonProps } from '../utils';
3
+ import '@itwin/itwinui-css/css/modal.css';
4
+ export declare type ModalContentProps = {
5
+ /**
6
+ * Main content in the `Modal`.
7
+ */
8
+ children: React.ReactNode;
9
+ } & Omit<CommonProps, 'title'>;
10
+ /**
11
+ * Container for content in `Modal`.
12
+ */
13
+ export declare const ModalContent: (props: ModalContentProps) => JSX.Element;
14
+ export default ModalContent;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __rest = (this && this.__rest) || function (s, e) {
14
+ var t = {};
15
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
16
+ t[p] = s[p];
17
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
18
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
19
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
20
+ t[p[i]] = s[p[i]];
21
+ }
22
+ return t;
23
+ };
24
+ var __importDefault = (this && this.__importDefault) || function (mod) {
25
+ return (mod && mod.__esModule) ? mod : { "default": mod };
26
+ };
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.ModalContent = void 0;
29
+ /*---------------------------------------------------------------------------------------------
30
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
31
+ * See LICENSE.md in the project root for license terms and full copyright notice.
32
+ *--------------------------------------------------------------------------------------------*/
33
+ var react_1 = __importDefault(require("react"));
34
+ var classnames_1 = __importDefault(require("classnames"));
35
+ var utils_1 = require("../utils");
36
+ require("@itwin/itwinui-css/css/modal.css");
37
+ /**
38
+ * Container for content in `Modal`.
39
+ */
40
+ var ModalContent = function (props) {
41
+ var children = props.children, className = props.className, rest = __rest(props, ["children", "className"]);
42
+ (0, utils_1.useTheme)();
43
+ return (react_1.default.createElement("div", __assign({ className: (0, classnames_1.default)('iui-modal-content', className) }, rest), children));
44
+ };
45
+ exports.ModalContent = ModalContent;
46
+ exports.default = exports.ModalContent;
@@ -2,5 +2,7 @@ export { Modal } from './Modal';
2
2
  export type { ModalProps } from './Modal';
3
3
  export { ModalButtonBar } from './ModalButtonBar';
4
4
  export type { ModalButtonBarProps } from './ModalButtonBar';
5
+ export { ModalContent } from './ModalContent';
6
+ export type { ModalContentProps } from './ModalContent';
5
7
  declare const _default: "./Modal";
6
8
  export default _default;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ModalButtonBar = exports.Modal = void 0;
3
+ exports.ModalContent = exports.ModalButtonBar = exports.Modal = void 0;
4
4
  /*---------------------------------------------------------------------------------------------
5
5
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
6
6
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -9,4 +9,6 @@ var Modal_1 = require("./Modal");
9
9
  Object.defineProperty(exports, "Modal", { enumerable: true, get: function () { return Modal_1.Modal; } });
10
10
  var ModalButtonBar_1 = require("./ModalButtonBar");
11
11
  Object.defineProperty(exports, "ModalButtonBar", { enumerable: true, get: function () { return ModalButtonBar_1.ModalButtonBar; } });
12
+ var ModalContent_1 = require("./ModalContent");
13
+ Object.defineProperty(exports, "ModalContent", { enumerable: true, get: function () { return ModalContent_1.ModalContent; } });
12
14
  exports.default = './Modal';
@@ -234,11 +234,12 @@ var Table = function (props) {
234
234
  });
235
235
  var headerRef = react_1.default.useRef(null);
236
236
  var bodyRef = react_1.default.useRef(null);
237
- var getPreparedRow = react_1.default.useCallback(function (row) {
237
+ var getPreparedRow = react_1.default.useCallback(function (index) {
238
+ var row = page[index];
238
239
  prepareRow(row);
239
- return (react_1.default.createElement(TableRowMemoized_1.TableRowMemoized, { row: row, rowProps: rowProps, isLast: row.index === data.length - 1, onRowInViewport: onRowInViewportRef, onBottomReached: onBottomReachedRef, intersectionMargin: intersectionMargin, state: state, key: row.getRowProps().key, onClick: onRowClickHandler, subComponent: subComponent, isDisabled: !!(isRowDisabled === null || isRowDisabled === void 0 ? void 0 : isRowDisabled(row.original)), tableHasSubRows: hasAnySubRows, tableInstance: instance, expanderCell: expanderCell }));
240
+ return (react_1.default.createElement(TableRowMemoized_1.TableRowMemoized, { row: row, rowProps: rowProps, isLast: index === page.length - 1, onRowInViewport: onRowInViewportRef, onBottomReached: onBottomReachedRef, intersectionMargin: intersectionMargin, state: state, key: row.getRowProps().key, onClick: onRowClickHandler, subComponent: subComponent, isDisabled: !!(isRowDisabled === null || isRowDisabled === void 0 ? void 0 : isRowDisabled(row.original)), tableHasSubRows: hasAnySubRows, tableInstance: instance, expanderCell: expanderCell }));
240
241
  }, [
241
- data.length,
242
+ page,
242
243
  expanderCell,
243
244
  hasAnySubRows,
244
245
  instance,
@@ -250,7 +251,7 @@ var Table = function (props) {
250
251
  state,
251
252
  subComponent,
252
253
  ]);
253
- var virtualizedItemRenderer = react_1.default.useCallback(function (index) { return getPreparedRow(page[index]); }, [getPreparedRow, page]);
254
+ var virtualizedItemRenderer = react_1.default.useCallback(function (index) { return getPreparedRow(index); }, [getPreparedRow]);
254
255
  return (react_1.default.createElement(react_1.default.Fragment, null,
255
256
  react_1.default.createElement("div", __assign({ ref: function (element) {
256
257
  setOwnerDocument(element === null || element === void 0 ? void 0 : element.ownerDocument);
@@ -274,8 +275,8 @@ var Table = function (props) {
274
275
  }
275
276
  } }),
276
277
  column.render('Header'),
277
- !isLoading && (data.length != 0 || areFiltersSet) && (react_1.default.createElement(filters_1.FilterToggle, { column: column, ownerDocument: ownerDocument })),
278
- !isLoading && data.length != 0 && column.canSort && (react_1.default.createElement("div", { className: 'iui-cell-end-icon' }, column.isSorted && column.isSortedDesc ? (react_1.default.createElement(SortUp_1.default, { className: 'iui-icon iui-sort', "aria-hidden": true })) : (react_1.default.createElement(SortDown_1.default, { className: 'iui-icon iui-sort', "aria-hidden": true })))),
278
+ (data.length !== 0 || areFiltersSet) && (react_1.default.createElement(filters_1.FilterToggle, { column: column, ownerDocument: ownerDocument })),
279
+ data.length !== 0 && column.canSort && (react_1.default.createElement("div", { className: 'iui-cell-end-icon' }, column.isSorted && column.isSortedDesc ? (react_1.default.createElement(SortUp_1.default, { className: 'iui-icon iui-sort', "aria-hidden": true })) : (react_1.default.createElement(SortDown_1.default, { className: 'iui-icon iui-sort', "aria-hidden": true })))),
279
280
  isResizable &&
280
281
  column.isResizerVisible &&
281
282
  index !== headerGroup.headers.length - 1 && (react_1.default.createElement("div", __assign({}, column.getResizerProps(), { className: 'iui-resizer' }),
@@ -293,7 +294,7 @@ var Table = function (props) {
293
294
  headerRef.current.scrollLeft = bodyRef.current.scrollLeft;
294
295
  }
295
296
  }, tabIndex: -1 }),
296
- data.length !== 0 && (react_1.default.createElement(react_1.default.Fragment, null, enableVirtualization ? (react_1.default.createElement(VirtualScroll_1.default, { itemsLength: page.length, itemRenderer: virtualizedItemRenderer })) : (page.map(function (row) { return getPreparedRow(row); })))),
297
+ data.length !== 0 && (react_1.default.createElement(react_1.default.Fragment, null, enableVirtualization ? (react_1.default.createElement(VirtualScroll_1.default, { itemsLength: page.length, itemRenderer: virtualizedItemRenderer })) : (page.map(function (_, index) { return getPreparedRow(index); })))),
297
298
  isLoading && data.length === 0 && (react_1.default.createElement("div", { className: 'iui-table-empty' },
298
299
  react_1.default.createElement(ProgressIndicators_1.ProgressRadial, { indeterminate: true }))),
299
300
  isLoading && data.length !== 0 && (react_1.default.createElement("div", { className: 'iui-row' },
@@ -50,15 +50,31 @@ var DateRangeFilter = function (props) {
50
50
  (0, utils_1.useTheme)();
51
51
  var translatedStrings = __assign(__assign({}, defaultStrings), translatedLabels);
52
52
  var _h = react_1.default.useState(((_a = column.filterValue) === null || _a === void 0 ? void 0 : _a[0]) ? new Date((_b = column.filterValue) === null || _b === void 0 ? void 0 : _b[0]) : undefined), from = _h[0], setFrom = _h[1];
53
+ var onFromChange = react_1.default.useCallback(function (date) {
54
+ setFrom(function (prevDate) {
55
+ if (prevDate || !date) {
56
+ return date;
57
+ }
58
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0, 0);
59
+ });
60
+ }, []);
53
61
  var _j = react_1.default.useState(((_c = column.filterValue) === null || _c === void 0 ? void 0 : _c[1]) ? new Date((_d = column.filterValue) === null || _d === void 0 ? void 0 : _d[1]) : undefined), to = _j[0], setTo = _j[1];
62
+ var onToChange = react_1.default.useCallback(function (date) {
63
+ setTo(function (prevDate) {
64
+ if (prevDate || !date) {
65
+ return date;
66
+ }
67
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), 23, 59, 59, 999);
68
+ });
69
+ }, []);
54
70
  var onKeyDown = function (event) {
55
71
  if (event.key === 'Enter') {
56
72
  setFilter([from, to]);
57
73
  }
58
74
  };
59
75
  return (react_1.default.createElement(BaseFilter_1.BaseFilter, null,
60
- react_1.default.createElement(DatePickerInput_1.default, { label: translatedStrings.from, date: from, onChange: setFrom, formatDate: formatDate, parseInput: parseInput, onKeyDown: onKeyDown, placeholder: placeholder, setFocus: true }),
61
- react_1.default.createElement(DatePickerInput_1.default, { label: translatedStrings.to, date: to, onChange: setTo, formatDate: formatDate, parseInput: parseInput, onKeyDown: onKeyDown, placeholder: placeholder }),
76
+ react_1.default.createElement(DatePickerInput_1.default, { label: translatedStrings.from, date: from, onChange: onFromChange, formatDate: formatDate, parseInput: parseInput, onKeyDown: onKeyDown, placeholder: placeholder, setFocus: true }),
77
+ react_1.default.createElement(DatePickerInput_1.default, { label: translatedStrings.to, date: to, onChange: onToChange, formatDate: formatDate, parseInput: parseInput, onKeyDown: onKeyDown, placeholder: placeholder }),
62
78
  react_1.default.createElement(FilterButtonBar_1.FilterButtonBar, { setFilter: function () { return setFilter([from, to]); }, clearFilter: clearFilter, translatedLabels: translatedLabels })));
63
79
  };
64
80
  exports.DateRangeFilter = DateRangeFilter;
@@ -8,6 +8,8 @@ export { Button, DropdownButton, IconButton, IdeasButton, SplitButton, } from '.
8
8
  export type { ButtonProps, DropdownButtonProps, IconButtonProps, IdeasButtonProps, SplitButtonProps, } from './Buttons';
9
9
  export { ButtonGroup } from './ButtonGroup';
10
10
  export type { ButtonGroupProps } from './ButtonGroup';
11
+ export { Carousel } from './Carousel';
12
+ export type { CarouselProps } from './Carousel';
11
13
  export { Checkbox } from './Checkbox';
12
14
  export type { CheckboxProps } from './Checkbox';
13
15
  export { ColorPicker, ColorSwatch, ColorBuilder, ColorInputPanel, ColorPalette, } from './ColorPicker';
@@ -48,8 +50,8 @@ export { LabeledTextarea } from './LabeledTextarea';
48
50
  export type { LabeledTextareaProps } from './LabeledTextarea';
49
51
  export { Menu, MenuItem, MenuDivider, MenuExtraContent } from './Menu';
50
52
  export type { MenuProps, MenuItemProps, MenuDividerProps, MenuExtraContentProps, } from './Menu';
51
- export { Modal, ModalButtonBar } from './Modal';
52
- export type { ModalProps, ModalButtonBarProps } from './Modal';
53
+ export { Modal, ModalButtonBar, ModalContent } from './Modal';
54
+ export type { ModalProps, ModalButtonBarProps, ModalContentProps, } from './Modal';
53
55
  export { ProgressLinear, ProgressRadial } from './ProgressIndicators';
54
56
  export type { ProgressLinearProps, ProgressRadialProps, } from './ProgressIndicators';
55
57
  export { Radio } from './Radio';
package/cjs/core/index.js CHANGED
@@ -3,8 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ModalButtonBar = exports.Modal = exports.MenuExtraContent = exports.MenuDivider = exports.MenuItem = exports.Menu = exports.LabeledTextarea = exports.LabeledSelect = exports.InputGroup = exports.LabeledInput = exports.Label = exports.Input = exports.InformationPanelContent = exports.InformationPanelBody = exports.InformationPanelHeader = exports.InformationPanelWrapper = exports.InformationPanel = exports.HorizontalTab = exports.HorizontalTabs = exports.Tab = exports.VerticalTabs = exports.HeaderLogo = exports.HeaderButton = exports.HeaderBreadcrumbs = exports.Header = exports.Footer = exports.FileUploadTemplate = exports.FileUpload = exports.Fieldset = exports.ExpandableBlock = exports.ErrorPage = exports.DropdownMenu = exports.generateLocalizedStrings = exports.DatePicker = exports.ComboBox = exports.ColorPalette = exports.ColorInputPanel = exports.ColorBuilder = exports.ColorSwatch = exports.ColorPicker = exports.Checkbox = exports.ButtonGroup = exports.SplitButton = exports.IdeasButton = exports.IconButton = exports.DropdownButton = exports.Button = exports.Breadcrumbs = exports.Badge = exports.Alert = void 0;
7
- exports.MiddleTextTruncation = exports.ColorValue = exports.useTheme = exports.getUserColor = exports.Wizard = exports.UserIconGroup = exports.UserIcon = exports.Text = exports.KbdKeys = exports.Kbd = exports.Code = exports.Blockquote = exports.Title = exports.Subheading = exports.Small = exports.Leading = exports.Headline = exports.Body = exports.Anchor = exports.TreeNodeExpander = exports.TreeNode = exports.Tree = exports.Tooltip = exports.ToggleSwitch = exports.ThemeProvider = exports.toaster = exports.TimePicker = exports.Tile = exports.Textarea = exports.TagContainer = exports.Tag = exports.TablePaginator = exports.EditableCell = exports.DefaultCell = exports.FilterButtonBar = exports.tableFilters = exports.Table = exports.StatusMessage = exports.Slider = exports.SidenavSubmenuHeader = exports.SidenavSubmenu = exports.SidenavButton = exports.SideNavigation = exports.Select = exports.RadioTileGroup = exports.RadioTile = exports.Radio = exports.ProgressRadial = exports.ProgressLinear = void 0;
6
+ exports.Modal = exports.MenuExtraContent = exports.MenuDivider = exports.MenuItem = exports.Menu = exports.LabeledTextarea = exports.LabeledSelect = exports.InputGroup = exports.LabeledInput = exports.Label = exports.Input = exports.InformationPanelContent = exports.InformationPanelBody = exports.InformationPanelHeader = exports.InformationPanelWrapper = exports.InformationPanel = exports.HorizontalTab = exports.HorizontalTabs = exports.Tab = exports.VerticalTabs = exports.HeaderLogo = exports.HeaderButton = exports.HeaderBreadcrumbs = exports.Header = exports.Footer = exports.FileUploadTemplate = exports.FileUpload = exports.Fieldset = exports.ExpandableBlock = exports.ErrorPage = exports.DropdownMenu = exports.generateLocalizedStrings = exports.DatePicker = exports.ComboBox = exports.ColorPalette = exports.ColorInputPanel = exports.ColorBuilder = exports.ColorSwatch = exports.ColorPicker = exports.Checkbox = exports.Carousel = exports.ButtonGroup = exports.SplitButton = exports.IdeasButton = exports.IconButton = exports.DropdownButton = exports.Button = exports.Breadcrumbs = exports.Badge = exports.Alert = void 0;
7
+ exports.ColorValue = exports.useTheme = exports.getUserColor = exports.Wizard = exports.UserIconGroup = exports.UserIcon = exports.Text = exports.KbdKeys = exports.Kbd = exports.Code = exports.Blockquote = exports.Title = exports.Subheading = exports.Small = exports.Leading = exports.Headline = exports.Body = exports.Anchor = exports.TreeNodeExpander = exports.TreeNode = exports.Tree = exports.Tooltip = exports.ToggleSwitch = exports.ThemeProvider = exports.toaster = exports.TimePicker = exports.Tile = exports.Textarea = exports.TagContainer = exports.Tag = exports.TablePaginator = exports.EditableCell = exports.DefaultCell = exports.FilterButtonBar = exports.tableFilters = exports.Table = exports.StatusMessage = exports.Slider = exports.SidenavSubmenuHeader = exports.SidenavSubmenu = exports.SidenavButton = exports.SideNavigation = exports.Select = exports.RadioTileGroup = exports.RadioTile = exports.Radio = exports.ProgressRadial = exports.ProgressLinear = exports.ModalContent = exports.ModalButtonBar = void 0;
8
+ exports.MiddleTextTruncation = void 0;
8
9
  /*---------------------------------------------------------------------------------------------
9
10
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
10
11
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -23,6 +24,8 @@ Object.defineProperty(exports, "IdeasButton", { enumerable: true, get: function
23
24
  Object.defineProperty(exports, "SplitButton", { enumerable: true, get: function () { return Buttons_1.SplitButton; } });
24
25
  var ButtonGroup_1 = require("./ButtonGroup");
25
26
  Object.defineProperty(exports, "ButtonGroup", { enumerable: true, get: function () { return ButtonGroup_1.ButtonGroup; } });
27
+ var Carousel_1 = require("./Carousel");
28
+ Object.defineProperty(exports, "Carousel", { enumerable: true, get: function () { return Carousel_1.Carousel; } });
26
29
  var Checkbox_1 = require("./Checkbox");
27
30
  Object.defineProperty(exports, "Checkbox", { enumerable: true, get: function () { return Checkbox_1.Checkbox; } });
28
31
  var ColorPicker_1 = require("./ColorPicker");
@@ -85,6 +88,7 @@ Object.defineProperty(exports, "MenuExtraContent", { enumerable: true, get: func
85
88
  var Modal_1 = require("./Modal");
86
89
  Object.defineProperty(exports, "Modal", { enumerable: true, get: function () { return Modal_1.Modal; } });
87
90
  Object.defineProperty(exports, "ModalButtonBar", { enumerable: true, get: function () { return Modal_1.ModalButtonBar; } });
91
+ Object.defineProperty(exports, "ModalContent", { enumerable: true, get: function () { return Modal_1.ModalContent; } });
88
92
  var ProgressIndicators_1 = require("./ProgressIndicators");
89
93
  Object.defineProperty(exports, "ProgressLinear", { enumerable: true, get: function () { return ProgressIndicators_1.ProgressLinear; } });
90
94
  Object.defineProperty(exports, "ProgressRadial", { enumerable: true, get: function () { return ProgressIndicators_1.ProgressRadial; } });
@@ -5,3 +5,4 @@ export * from './useResizeObserver';
5
5
  export * from './useContainerWidth';
6
6
  export * from './useTheme';
7
7
  export * from './useIntersection';
8
+ export * from './useMediaQuery';
@@ -21,3 +21,4 @@ __exportStar(require("./useResizeObserver"), exports);
21
21
  __exportStar(require("./useContainerWidth"), exports);
22
22
  __exportStar(require("./useTheme"), exports);
23
23
  __exportStar(require("./useIntersection"), exports);
24
+ __exportStar(require("./useMediaQuery"), exports);
@@ -0,0 +1,2 @@
1
+ export declare const useMediaQuery: (queryString: string) => boolean;
2
+ export default useMediaQuery;