@itwin/itwinui-react 1.40.1 → 1.43.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 (148) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/cjs/core/Backdrop/Backdrop.d.ts +10 -0
  3. package/cjs/core/Backdrop/Backdrop.js +41 -0
  4. package/cjs/core/Backdrop/index.d.ts +2 -0
  5. package/cjs/core/Backdrop/index.js +9 -0
  6. package/cjs/core/Breadcrumbs/Breadcrumbs.js +18 -18
  7. package/cjs/core/ButtonGroup/ButtonGroup.js +11 -4
  8. package/cjs/core/ComboBox/ComboBox.js +22 -18
  9. package/cjs/core/Dialog/Dialog.d.ts +41 -0
  10. package/cjs/core/Dialog/Dialog.js +59 -0
  11. package/cjs/core/Dialog/DialogBackdrop.d.ts +12 -0
  12. package/cjs/core/Dialog/DialogBackdrop.js +61 -0
  13. package/cjs/core/Dialog/DialogButtonBar.d.ts +18 -0
  14. package/cjs/core/Dialog/DialogButtonBar.js +50 -0
  15. package/cjs/core/Dialog/DialogContent.d.ts +17 -0
  16. package/cjs/core/Dialog/DialogContent.js +49 -0
  17. package/cjs/core/Dialog/DialogContext.d.ts +39 -0
  18. package/cjs/core/Dialog/DialogContext.js +16 -0
  19. package/cjs/core/Dialog/DialogMain.d.ts +36 -0
  20. package/cjs/core/Dialog/DialogMain.js +120 -0
  21. package/cjs/core/Dialog/DialogTitleBar.d.ts +34 -0
  22. package/cjs/core/Dialog/DialogTitleBar.js +69 -0
  23. package/cjs/core/Dialog/DialogTitleBarTitle.d.ts +15 -0
  24. package/cjs/core/Dialog/DialogTitleBarTitle.js +47 -0
  25. package/cjs/core/Dialog/index.d.ts +8 -0
  26. package/cjs/core/Dialog/index.js +10 -0
  27. package/cjs/core/ErrorPage/ErrorPage.d.ts +3 -1
  28. package/cjs/core/ErrorPage/ErrorPage.js +31 -1
  29. package/cjs/core/Footer/Footer.d.ts +16 -2
  30. package/cjs/core/Footer/Footer.js +57 -45
  31. package/cjs/core/Footer/FooterItem.d.ts +8 -0
  32. package/cjs/core/Footer/FooterItem.js +46 -0
  33. package/cjs/core/Footer/FooterList.d.ts +8 -0
  34. package/cjs/core/Footer/FooterList.js +46 -0
  35. package/cjs/core/Footer/FooterSeparator.d.ts +8 -0
  36. package/cjs/core/Footer/FooterSeparator.js +46 -0
  37. package/cjs/core/Footer/index.d.ts +1 -1
  38. package/cjs/core/Footer/index.js +2 -1
  39. package/cjs/core/Modal/Modal.d.ts +4 -13
  40. package/cjs/core/Modal/Modal.js +9 -71
  41. package/cjs/core/Modal/ModalButtonBar.d.ts +1 -2
  42. package/cjs/core/Modal/ModalButtonBar.js +2 -39
  43. package/cjs/core/Modal/ModalContent.d.ts +1 -2
  44. package/cjs/core/Modal/ModalContent.js +2 -39
  45. package/cjs/core/Slider/Slider.d.ts +10 -0
  46. package/cjs/core/Slider/Slider.js +20 -14
  47. package/cjs/core/Slider/Thumb.d.ts +2 -1
  48. package/cjs/core/Slider/Thumb.js +5 -3
  49. package/cjs/core/Slider/Track.d.ts +2 -1
  50. package/cjs/core/Slider/Track.js +23 -4
  51. package/cjs/core/Table/Table.d.ts +24 -0
  52. package/cjs/core/Table/Table.js +21 -10
  53. package/cjs/core/Table/TableRowMemoized.d.ts +4 -0
  54. package/cjs/core/Table/TableRowMemoized.js +15 -3
  55. package/cjs/core/Table/cells/EditableCell.js +7 -2
  56. package/cjs/core/Table/columns/actionColumn.d.ts +8 -3
  57. package/cjs/core/Table/columns/actionColumn.js +33 -2
  58. package/cjs/core/Table/hooks/index.d.ts +1 -0
  59. package/cjs/core/Table/hooks/index.js +3 -1
  60. package/cjs/core/Table/hooks/useScrollToRow.d.ts +11 -0
  61. package/cjs/core/Table/hooks/useScrollToRow.js +49 -0
  62. package/cjs/core/Tree/Tree.d.ts +9 -0
  63. package/cjs/core/Tree/Tree.js +67 -19
  64. package/cjs/core/Tree/TreeContext.d.ts +4 -0
  65. package/cjs/core/Tree/TreeNode.js +8 -9
  66. package/cjs/core/Typography/Small/Small.js +1 -1
  67. package/cjs/core/index.d.ts +3 -1
  68. package/cjs/core/index.js +6 -3
  69. package/cjs/core/utils/components/FocusTrap.js +1 -1
  70. package/cjs/core/utils/components/MiddleTextTruncation.js +1 -1
  71. package/cjs/core/utils/hooks/index.d.ts +1 -0
  72. package/cjs/core/utils/hooks/index.js +1 -0
  73. package/cjs/core/utils/hooks/useLatestRef.d.ts +9 -0
  74. package/cjs/core/utils/hooks/useLatestRef.js +26 -0
  75. package/esm/core/Backdrop/Backdrop.d.ts +10 -0
  76. package/esm/core/Backdrop/Backdrop.js +35 -0
  77. package/esm/core/Backdrop/index.d.ts +2 -0
  78. package/esm/core/Backdrop/index.js +5 -0
  79. package/esm/core/Breadcrumbs/Breadcrumbs.js +18 -18
  80. package/esm/core/ButtonGroup/ButtonGroup.js +11 -4
  81. package/esm/core/ComboBox/ComboBox.js +23 -19
  82. package/esm/core/Dialog/Dialog.d.ts +41 -0
  83. package/esm/core/Dialog/Dialog.js +53 -0
  84. package/esm/core/Dialog/DialogBackdrop.d.ts +12 -0
  85. package/esm/core/Dialog/DialogBackdrop.js +55 -0
  86. package/esm/core/Dialog/DialogButtonBar.d.ts +18 -0
  87. package/esm/core/Dialog/DialogButtonBar.js +44 -0
  88. package/esm/core/Dialog/DialogContent.d.ts +17 -0
  89. package/esm/core/Dialog/DialogContent.js +43 -0
  90. package/esm/core/Dialog/DialogContext.d.ts +39 -0
  91. package/esm/core/Dialog/DialogContext.js +9 -0
  92. package/esm/core/Dialog/DialogMain.d.ts +36 -0
  93. package/esm/core/Dialog/DialogMain.js +114 -0
  94. package/esm/core/Dialog/DialogTitleBar.d.ts +34 -0
  95. package/esm/core/Dialog/DialogTitleBar.js +63 -0
  96. package/esm/core/Dialog/DialogTitleBarTitle.d.ts +15 -0
  97. package/esm/core/Dialog/DialogTitleBarTitle.js +41 -0
  98. package/esm/core/Dialog/index.d.ts +8 -0
  99. package/esm/core/Dialog/index.js +6 -0
  100. package/esm/core/ErrorPage/ErrorPage.d.ts +3 -1
  101. package/esm/core/ErrorPage/ErrorPage.js +31 -1
  102. package/esm/core/Footer/Footer.d.ts +16 -2
  103. package/esm/core/Footer/Footer.js +56 -43
  104. package/esm/core/Footer/FooterItem.d.ts +8 -0
  105. package/esm/core/Footer/FooterItem.js +39 -0
  106. package/esm/core/Footer/FooterList.d.ts +8 -0
  107. package/esm/core/Footer/FooterList.js +39 -0
  108. package/esm/core/Footer/FooterSeparator.d.ts +8 -0
  109. package/esm/core/Footer/FooterSeparator.js +39 -0
  110. package/esm/core/Footer/index.d.ts +1 -1
  111. package/esm/core/Footer/index.js +1 -1
  112. package/esm/core/Modal/Modal.d.ts +4 -13
  113. package/esm/core/Modal/Modal.js +10 -72
  114. package/esm/core/Modal/ModalButtonBar.d.ts +1 -2
  115. package/esm/core/Modal/ModalButtonBar.js +2 -35
  116. package/esm/core/Modal/ModalContent.d.ts +1 -2
  117. package/esm/core/Modal/ModalContent.js +2 -35
  118. package/esm/core/Slider/Slider.d.ts +10 -0
  119. package/esm/core/Slider/Slider.js +20 -14
  120. package/esm/core/Slider/Thumb.d.ts +2 -1
  121. package/esm/core/Slider/Thumb.js +5 -3
  122. package/esm/core/Slider/Track.d.ts +2 -1
  123. package/esm/core/Slider/Track.js +23 -4
  124. package/esm/core/Table/Table.d.ts +24 -0
  125. package/esm/core/Table/Table.js +23 -12
  126. package/esm/core/Table/TableRowMemoized.d.ts +4 -0
  127. package/esm/core/Table/TableRowMemoized.js +15 -3
  128. package/esm/core/Table/cells/EditableCell.js +7 -2
  129. package/esm/core/Table/columns/actionColumn.d.ts +8 -3
  130. package/esm/core/Table/columns/actionColumn.js +33 -2
  131. package/esm/core/Table/hooks/index.d.ts +1 -0
  132. package/esm/core/Table/hooks/index.js +1 -0
  133. package/esm/core/Table/hooks/useScrollToRow.d.ts +11 -0
  134. package/esm/core/Table/hooks/useScrollToRow.js +42 -0
  135. package/esm/core/Tree/Tree.d.ts +9 -0
  136. package/esm/core/Tree/Tree.js +68 -20
  137. package/esm/core/Tree/TreeContext.d.ts +4 -0
  138. package/esm/core/Tree/TreeNode.js +8 -9
  139. package/esm/core/Typography/Small/Small.js +1 -1
  140. package/esm/core/index.d.ts +3 -1
  141. package/esm/core/index.js +2 -1
  142. package/esm/core/utils/components/FocusTrap.js +1 -1
  143. package/esm/core/utils/components/MiddleTextTruncation.js +1 -1
  144. package/esm/core/utils/hooks/index.d.ts +1 -0
  145. package/esm/core/utils/hooks/index.js +1 -0
  146. package/esm/core/utils/hooks/useLatestRef.d.ts +9 -0
  147. package/esm/core/utils/hooks/useLatestRef.js +19 -0
  148. package/package.json +8 -7
@@ -34,7 +34,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
34
34
  return (mod && mod.__esModule) ? mod : { "default": mod };
35
35
  };
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
- exports.Footer = void 0;
37
+ exports.Footer = exports.defaultFooterElements = void 0;
38
38
  /*---------------------------------------------------------------------------------------------
39
39
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
40
40
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -43,6 +43,9 @@ var react_1 = __importDefault(require("react"));
43
43
  var classnames_1 = __importDefault(require("classnames"));
44
44
  var utils_1 = require("../utils");
45
45
  require("@itwin/itwinui-css/css/footer.css");
46
+ var FooterItem_1 = require("./FooterItem");
47
+ var FooterSeparator_1 = require("./FooterSeparator");
48
+ var FooterList_1 = require("./FooterList");
46
49
  var footerTranslations = {
47
50
  cookies: 'Cookies',
48
51
  legalNotices: 'Legal notices',
@@ -50,6 +53,37 @@ var footerTranslations = {
50
53
  termsOfService: 'Terms of service',
51
54
  termsOfUse: 'Terms of use',
52
55
  };
56
+ exports.defaultFooterElements = [
57
+ {
58
+ key: 'copyright',
59
+ title: "\u00A9 ".concat(new Date().getFullYear(), " Bentley Systems, Incorporated"),
60
+ },
61
+ {
62
+ key: 'termsOfService',
63
+ title: footerTranslations.termsOfService,
64
+ url: 'https://connect-agreementportal.bentley.com/AgreementApp/Home/Eula/view/readonly/BentleyConnect',
65
+ },
66
+ {
67
+ key: 'privacy',
68
+ title: footerTranslations.privacy,
69
+ url: 'https://www.bentley.com/en/privacy-policy',
70
+ },
71
+ {
72
+ key: 'termsOfUse',
73
+ title: footerTranslations.termsOfUse,
74
+ url: 'https://www.bentley.com/en/terms-of-use-and-select-online-agreement',
75
+ },
76
+ {
77
+ key: 'cookies',
78
+ title: footerTranslations.cookies,
79
+ url: 'https://www.bentley.com/en/cookie-policy',
80
+ },
81
+ {
82
+ key: 'legalNotices',
83
+ title: footerTranslations.legalNotices,
84
+ url: 'https://connect.bentley.com/Legal',
85
+ },
86
+ ];
53
87
  /**
54
88
  * Footer element with all needed legal and info links.
55
89
  * Be sure to place it manually at the bottom of your page.
@@ -63,54 +97,32 @@ var footerTranslations = {
63
97
  * @example <caption>Changing a url</caption>
64
98
  * <Footer customElements={(defaultElements) => defaultElements.map(element => ({ ...element, url: element.key === 'privacy' ? customPrivacyUrl : element.url }))} />
65
99
  */
66
- var Footer = function (props) {
67
- var customElements = props.customElements, translatedTitles = props.translatedTitles, className = props.className, rest = __rest(props, ["customElements", "translatedTitles", "className"]);
100
+ exports.Footer = Object.assign(function (props) {
101
+ var children = props.children, customElements = props.customElements, translatedTitles = props.translatedTitles, className = props.className, rest = __rest(props, ["children", "customElements", "translatedTitles", "className"]);
68
102
  (0, utils_1.useTheme)();
69
103
  var titles = __assign(__assign({}, footerTranslations), translatedTitles);
70
- var defaultElements = [
71
- {
72
- key: 'copyright',
73
- title: "\u00A9 ".concat(new Date().getFullYear(), " Bentley Systems, Incorporated"),
74
- },
75
- {
76
- key: 'termsOfService',
77
- title: titles.termsOfService,
78
- url: 'https://connect-agreementportal.bentley.com/AgreementApp/Home/Eula/view/readonly/BentleyConnect',
79
- },
80
- {
81
- key: 'privacy',
82
- title: titles.privacy,
83
- url: 'https://www.bentley.com/en/privacy-policy',
84
- },
85
- {
86
- key: 'termsOfUse',
87
- title: titles.termsOfUse,
88
- url: 'https://www.bentley.com/en/terms-of-use-and-select-online-agreement',
89
- },
90
- {
91
- key: 'cookies',
92
- title: titles.cookies,
93
- url: 'https://www.bentley.com/en/cookie-policy',
94
- },
95
- {
96
- key: 'legalNotices',
97
- title: titles.legalNotices,
98
- url: 'https://connect.bentley.com/Legal',
99
- },
100
- ];
101
- var elements = defaultElements;
104
+ var translatedElements = exports.defaultFooterElements.map(function (element) {
105
+ if (element.key && titles.hasOwnProperty(element.key)) {
106
+ var key = element.key;
107
+ return __assign(__assign({}, element), { title: titles[key] });
108
+ }
109
+ return element;
110
+ });
111
+ var elements = translatedElements;
102
112
  if (customElements) {
103
113
  elements =
104
114
  typeof customElements === 'function'
105
- ? customElements(defaultElements)
106
- : __spreadArray(__spreadArray([], defaultElements, true), customElements, true);
115
+ ? customElements(translatedElements)
116
+ : __spreadArray(__spreadArray([], translatedElements, true), customElements, true);
107
117
  }
108
- return (react_1.default.createElement("footer", __assign({ className: (0, classnames_1.default)('iui-legal-footer', className) }, rest),
109
- react_1.default.createElement("ul", null, elements.map(function (element, index) {
110
- return (react_1.default.createElement("li", { key: element.key || "".concat(element.title, "-").concat(index) },
111
- index > 0 && react_1.default.createElement("span", { className: 'iui-separator' }),
112
- element.url ? (react_1.default.createElement("a", { href: element.url, target: '_blank', rel: 'noreferrer' }, element.title)) : (element.title)));
113
- }))));
114
- };
115
- exports.Footer = Footer;
118
+ return (react_1.default.createElement("footer", __assign({ className: (0, classnames_1.default)('iui-legal-footer', className) }, rest), children ? (children) : (react_1.default.createElement(FooterList_1.FooterList, null, elements.map(function (element, index) {
119
+ return (react_1.default.createElement(react_1.default.Fragment, { key: element.key || "".concat(element.title, "-").concat(index) },
120
+ index > 0 && react_1.default.createElement(FooterSeparator_1.FooterSeparator, null),
121
+ react_1.default.createElement(FooterItem_1.FooterItem, null, element.url ? (react_1.default.createElement("a", { href: element.url, target: '_blank', rel: 'noreferrer' }, element.title)) : (element.title))));
122
+ })))));
123
+ }, {
124
+ List: FooterList_1.FooterList,
125
+ Item: FooterItem_1.FooterItem,
126
+ Separator: FooterSeparator_1.FooterSeparator,
127
+ });
116
128
  exports.default = exports.Footer;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import '@itwin/itwinui-css/css/footer.css';
3
+ export declare type FooterItemProps = React.ComponentPropsWithRef<'li'>;
4
+ /**
5
+ * Footer item. Recommended to use inside `Footer.List`.
6
+ */
7
+ export declare const FooterItem: (props: FooterItemProps) => JSX.Element;
8
+ export default FooterItem;
@@ -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.FooterItem = 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 utils_1 = require("../utils");
35
+ var classnames_1 = __importDefault(require("classnames"));
36
+ require("@itwin/itwinui-css/css/footer.css");
37
+ /**
38
+ * Footer item. Recommended to use inside `Footer.List`.
39
+ */
40
+ var FooterItem = 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("li", __assign({ className: (0, classnames_1.default)('iui-legal-footer-item', className) }, rest), children));
44
+ };
45
+ exports.FooterItem = FooterItem;
46
+ exports.default = exports.FooterItem;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import '@itwin/itwinui-css/css/footer.css';
3
+ export declare type FooterListProps = React.ComponentPropsWithRef<'ul'>;
4
+ /**
5
+ * Footer list. Recommended to use inside `Footer` with `Footer.Item` and `Footer.Separator`.
6
+ */
7
+ export declare const FooterList: (props: FooterListProps) => JSX.Element;
8
+ export default FooterList;
@@ -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.FooterList = 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 utils_1 = require("../utils");
35
+ var classnames_1 = __importDefault(require("classnames"));
36
+ require("@itwin/itwinui-css/css/footer.css");
37
+ /**
38
+ * Footer list. Recommended to use inside `Footer` with `Footer.Item` and `Footer.Separator`.
39
+ */
40
+ var FooterList = function (props) {
41
+ var className = props.className, children = props.children, rest = __rest(props, ["className", "children"]);
42
+ (0, utils_1.useTheme)();
43
+ return (react_1.default.createElement("ul", __assign({ className: (0, classnames_1.default)('iui-legal-footer-list', className) }, rest), children));
44
+ };
45
+ exports.FooterList = FooterList;
46
+ exports.default = exports.FooterList;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import '@itwin/itwinui-css/css/footer.css';
3
+ export declare type FooterSeparatorProps = Omit<React.ComponentPropsWithRef<'li'>, 'children'>;
4
+ /**
5
+ * Footer separator. Recommended to use inside `Footer.List`.
6
+ */
7
+ export declare const FooterSeparator: (props: FooterSeparatorProps) => JSX.Element;
8
+ export default FooterSeparator;
@@ -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.FooterSeparator = 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 utils_1 = require("../utils");
35
+ var classnames_1 = __importDefault(require("classnames"));
36
+ require("@itwin/itwinui-css/css/footer.css");
37
+ /**
38
+ * Footer separator. Recommended to use inside `Footer.List`.
39
+ */
40
+ var FooterSeparator = function (props) {
41
+ var className = props.className, rest = __rest(props, ["className"]);
42
+ (0, utils_1.useTheme)();
43
+ return (react_1.default.createElement("li", __assign({ className: (0, classnames_1.default)('iui-legal-footer-separator', className), "aria-hidden": true }, rest)));
44
+ };
45
+ exports.FooterSeparator = FooterSeparator;
46
+ exports.default = exports.FooterSeparator;
@@ -1,4 +1,4 @@
1
- export { Footer } from './Footer';
1
+ export { Footer, defaultFooterElements } from './Footer';
2
2
  export type { FooterElement, FooterProps, TitleTranslations } from './Footer';
3
3
  declare const _default: "./Footer";
4
4
  export default _default;
@@ -1,10 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Footer = void 0;
3
+ exports.defaultFooterElements = exports.Footer = 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.
7
7
  *--------------------------------------------------------------------------------------------*/
8
8
  var Footer_1 = require("./Footer");
9
9
  Object.defineProperty(exports, "Footer", { enumerable: true, get: function () { return Footer_1.Footer; } });
10
+ Object.defineProperty(exports, "defaultFooterElements", { enumerable: true, get: function () { return Footer_1.defaultFooterElements; } });
10
11
  exports.default = './Footer';
@@ -1,12 +1,8 @@
1
1
  import React from 'react';
2
2
  import { CommonProps } from '../utils';
3
3
  import '@itwin/itwinui-css/css/dialog.css';
4
+ import { DialogMainProps } from '../Dialog';
4
5
  export declare type ModalProps = {
5
- /**
6
- * Flag whether modal should be shown.
7
- * @default false
8
- */
9
- isOpen?: boolean;
10
6
  /**
11
7
  * Modal title.
12
8
  */
@@ -45,16 +41,11 @@ export declare type ModalProps = {
45
41
  * @default document
46
42
  */
47
43
  ownerDocument?: Document;
48
- /**
49
- * Type of the modal.
50
- * @default 'default'
51
- */
52
- styleType?: 'default' | 'fullPage';
53
44
  /**
54
45
  * Content of the modal.
55
46
  */
56
47
  children: React.ReactNode;
57
- } & Omit<CommonProps, 'title'>;
48
+ } & Pick<DialogMainProps, 'isOpen' | 'styleType'> & Omit<CommonProps, 'title'>;
58
49
  /**
59
50
  * Modal component which can wrap any content.
60
51
  * @example
@@ -63,9 +54,9 @@ export declare type ModalProps = {
63
54
  * title='My modal'
64
55
  * onClose={onClose}
65
56
  * >
66
- * <div>
57
+ * <ModalContent>
67
58
  * Here is my modal content
68
- * </div>
59
+ * </ModalContent>
69
60
  * <ModalButtonBar>
70
61
  * <Button styleType='high-visibility'>
71
62
  * Primary button
@@ -32,12 +32,9 @@ exports.Modal = void 0;
32
32
  *--------------------------------------------------------------------------------------------*/
33
33
  var react_1 = __importDefault(require("react"));
34
34
  var react_dom_1 = __importDefault(require("react-dom"));
35
- var classnames_1 = __importDefault(require("classnames"));
36
- var Close_1 = __importDefault(require("@itwin/itwinui-icons-react/cjs/icons/Close"));
37
35
  var utils_1 = require("../utils");
38
36
  require("@itwin/itwinui-css/css/dialog.css");
39
- var IconButton_1 = require("../Buttons/IconButton");
40
- var react_transition_group_1 = require("react-transition-group");
37
+ var Dialog_1 = require("../Dialog");
41
38
  /**
42
39
  * Modal component which can wrap any content.
43
40
  * @example
@@ -46,9 +43,9 @@ var react_transition_group_1 = require("react-transition-group");
46
43
  * title='My modal'
47
44
  * onClose={onClose}
48
45
  * >
49
- * <div>
46
+ * <ModalContent>
50
47
  * Here is my modal content
51
- * </div>
48
+ * </ModalContent>
52
49
  * <ModalButtonBar>
53
50
  * <Button styleType='high-visibility'>
54
51
  * Primary button
@@ -60,73 +57,14 @@ var react_transition_group_1 = require("react-transition-group");
60
57
  * </Modal>
61
58
  */
62
59
  var Modal = function (props) {
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"]);
60
+ 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, 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", "children", "modalRootId", "ownerDocument"]);
64
61
  (0, utils_1.useTheme)();
65
62
  var container = (0, utils_1.getContainer)(modalRootId, ownerDocument);
66
- var overlayRef = react_1.default.useRef(null);
67
- var originalBodyOverflow = react_1.default.useRef('');
68
- var previousFocusedElement = react_1.default.useRef();
69
- // Give focus to overlay for key handling to work.
70
- react_1.default.useLayoutEffect(function () {
71
- var _a, _b;
72
- if (isOpen) {
73
- previousFocusedElement.current = document.activeElement;
74
- (_a = overlayRef.current) === null || _a === void 0 ? void 0 : _a.focus();
75
- }
76
- else {
77
- (_b = previousFocusedElement.current) === null || _b === void 0 ? void 0 : _b.focus();
78
- }
79
- var modalOverlayRef = overlayRef.current;
80
- return function () {
81
- var _a;
82
- (modalOverlayRef === null || modalOverlayRef === void 0 ? void 0 : modalOverlayRef.contains(document.activeElement)) &&
83
- ((_a = previousFocusedElement.current) === null || _a === void 0 ? void 0 : _a.focus());
84
- };
85
- }, [isOpen]);
86
- react_1.default.useEffect(function () {
87
- if (!ownerDocument) {
88
- return;
89
- }
90
- if (isOpen) {
91
- originalBodyOverflow.current = ownerDocument.body.style.overflow;
92
- ownerDocument.body.style.overflow = 'hidden';
93
- }
94
- else {
95
- ownerDocument.body.style.overflow = originalBodyOverflow.current;
96
- }
97
- return function () {
98
- ownerDocument.body.style.overflow = originalBodyOverflow.current;
99
- };
100
- }, [isOpen, ownerDocument]);
101
- var handleKeyDown = function (event) {
102
- // Prevents React from resetting its properties
103
- event.persist();
104
- if (isDismissible && closeOnEsc && event.key === 'Escape' && onClose) {
105
- onClose(event);
106
- }
107
- if (onKeyDown) {
108
- onKeyDown(event);
109
- }
110
- };
111
- var handleMouseDown = function (event) {
112
- // Prevents React from resetting its properties
113
- event.persist();
114
- if (event.target !== overlayRef.current) {
115
- return;
116
- }
117
- if (isDismissible && closeOnExternalClick && onClose) {
118
- onClose(event);
119
- }
120
- };
121
- return !!container ? (react_dom_1.default.createPortal(react_1.default.createElement(react_transition_group_1.CSSTransition, { in: isOpen, classNames: 'iui-dialog-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-dialog-backdrop', { 'iui-dialog-default': styleType === 'default' }, { 'iui-dialog-full-page': styleType === 'fullPage' }, { 'iui-dialog-visible': isOpen }, className), tabIndex: -1, onKeyDown: handleKeyDown, ref: overlayRef, onMouseDown: handleMouseDown }, rest),
124
- react_1.default.createElement("div", { className: 'iui-dialog', id: id, style: style, role: 'dialog', "aria-modal": 'true' },
125
- react_1.default.createElement("div", { className: 'iui-dialog-title-bar' },
126
- react_1.default.createElement("div", { className: 'iui-dialog-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));
63
+ return !!container ? (react_dom_1.default.createPortal(react_1.default.createElement(Dialog_1.Dialog, { isOpen: isOpen, closeOnEsc: closeOnEsc, closeOnExternalClick: closeOnExternalClick, isDismissible: isDismissible, onClose: onClose, preventDocumentScroll: true, trapFocus: true },
64
+ react_1.default.createElement(Dialog_1.Dialog.Backdrop, null),
65
+ react_1.default.createElement(Dialog_1.Dialog.Main, __assign({ "aria-modal": true }, rest),
66
+ react_1.default.createElement(Dialog_1.Dialog.TitleBar, { titleText: title }),
67
+ children)), container)) : (react_1.default.createElement(react_1.default.Fragment, null));
130
68
  };
131
69
  exports.Modal = Modal;
132
70
  exports.default = exports.Modal;
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { CommonProps } from '../utils';
3
- import '@itwin/itwinui-css/css/dialog.css';
4
3
  export declare type ModalButtonBarProps = {
5
4
  /**
6
5
  * Buttons in the modal bar.
@@ -10,5 +9,5 @@ export declare type ModalButtonBarProps = {
10
9
  /**
11
10
  * Container for Buttons in modal.
12
11
  */
13
- export declare const ModalButtonBar: (props: ModalButtonBarProps) => JSX.Element;
12
+ export declare const ModalButtonBar: React.ForwardRefExoticComponent<Pick<import("../Dialog/DialogButtonBar").DialogButtonBarProps, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>>;
14
13
  export default ModalButtonBar;
@@ -1,46 +1,9 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
28
3
  exports.ModalButtonBar = 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/dialog.css");
4
+ var DialogButtonBar_1 = require("../Dialog/DialogButtonBar");
37
5
  /**
38
6
  * Container for Buttons in modal.
39
7
  */
40
- var ModalButtonBar = 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-dialog-button-bar', className) }, rest), children));
44
- };
45
- exports.ModalButtonBar = ModalButtonBar;
8
+ exports.ModalButtonBar = DialogButtonBar_1.DialogButtonBar;
46
9
  exports.default = exports.ModalButtonBar;
@@ -1,6 +1,5 @@
1
1
  import React from 'react';
2
2
  import { CommonProps } from '../utils';
3
- import '@itwin/itwinui-css/css/dialog.css';
4
3
  export declare type ModalContentProps = {
5
4
  /**
6
5
  * Main content in the `Modal`.
@@ -10,5 +9,5 @@ export declare type ModalContentProps = {
10
9
  /**
11
10
  * Container for content in `Modal`.
12
11
  */
13
- export declare const ModalContent: (props: ModalContentProps) => JSX.Element;
12
+ export declare const ModalContent: React.ForwardRefExoticComponent<Pick<import("../Dialog/DialogContent").DialogContentProps, "key" | keyof React.HTMLAttributes<HTMLDivElement>> & React.RefAttributes<HTMLDivElement>>;
14
13
  export default ModalContent;
@@ -1,46 +1,9 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
28
3
  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/dialog.css");
4
+ var DialogContent_1 = require("../Dialog/DialogContent");
37
5
  /**
38
6
  * Container for content in `Modal`.
39
7
  */
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-dialog-content', className) }, rest), children));
44
- };
45
- exports.ModalContent = ModalContent;
8
+ exports.ModalContent = DialogContent_1.DialogContent;
46
9
  exports.default = exports.ModalContent;
@@ -96,6 +96,11 @@ export declare type SliderProps = {
96
96
  * high-volume of updates will occur when dragging.
97
97
  */
98
98
  onUpdate?: (values: ReadonlyArray<number>) => void;
99
+ /**
100
+ * The orientation of slider
101
+ * @default 'horizontal'
102
+ */
103
+ orientation?: 'horizontal' | 'vertical';
99
104
  } & Omit<CommonProps, 'title'>;
100
105
  /**
101
106
  * Slider component that display Thumbs for each value specified along a Rail.
@@ -195,5 +200,10 @@ export declare const Slider: React.ForwardRefExoticComponent<{
195
200
  * high-volume of updates will occur when dragging.
196
201
  */
197
202
  onUpdate?: ((values: ReadonlyArray<number>) => void) | undefined;
203
+ /**
204
+ * The orientation of slider
205
+ * @default 'horizontal'
206
+ */
207
+ orientation?: "horizontal" | "vertical" | undefined;
198
208
  } & Omit<CommonProps, "title"> & React.RefAttributes<HTMLDivElement>>;
199
209
  export default Slider;