@itwin/itwinui-react 3.14.0 → 3.14.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -12
- package/DEV-cjs/core/Breadcrumbs/Breadcrumbs.js +1 -1
- package/DEV-cjs/core/Buttons/IconButton.js +1 -1
- package/DEV-cjs/core/Footer/Footer.js +7 -7
- package/DEV-cjs/core/Menu/MenuItem.js +1 -1
- package/DEV-cjs/core/Popover/Popover.js +16 -26
- package/DEV-cjs/core/Table/Table.js +3 -3
- package/DEV-cjs/core/Table/cells/DefaultCell.js +5 -5
- package/DEV-cjs/core/ThemeProvider/ThemeProvider.js +1 -1
- package/DEV-cjs/styles.js +1 -1
- package/DEV-cjs/utils/functions/dev.js +3 -23
- package/DEV-cjs/utils/hooks/index.js +1 -0
- package/DEV-cjs/utils/hooks/useWarningLogger.js +43 -0
- package/DEV-esm/core/Breadcrumbs/Breadcrumbs.js +2 -2
- package/DEV-esm/core/Buttons/IconButton.js +2 -2
- package/DEV-esm/core/Footer/Footer.js +7 -7
- package/DEV-esm/core/Menu/MenuItem.js +2 -2
- package/DEV-esm/core/Popover/Popover.js +17 -30
- package/DEV-esm/core/Table/Table.js +4 -4
- package/DEV-esm/core/Table/cells/DefaultCell.js +5 -5
- package/DEV-esm/core/ThemeProvider/ThemeProvider.js +1 -1
- package/DEV-esm/styles.js +1 -1
- package/DEV-esm/utils/functions/dev.js +1 -12
- package/DEV-esm/utils/hooks/index.js +1 -0
- package/DEV-esm/utils/hooks/useWarningLogger.js +31 -0
- package/cjs/core/Breadcrumbs/Breadcrumbs.js +1 -1
- package/cjs/core/Buttons/IconButton.js +1 -1
- package/cjs/core/Footer/Footer.d.ts +5 -5
- package/cjs/core/Footer/Footer.js +7 -7
- package/cjs/core/Menu/MenuItem.js +1 -1
- package/cjs/core/Popover/Popover.js +16 -26
- package/cjs/core/Table/Table.js +3 -3
- package/cjs/core/Table/cells/DefaultCell.js +5 -5
- package/cjs/core/Table/utils.d.ts +2 -2
- package/cjs/core/ThemeProvider/ThemeProvider.js +1 -1
- package/cjs/styles.js +1 -1
- package/cjs/utils/functions/dev.d.ts +1 -16
- package/cjs/utils/functions/dev.js +3 -13
- package/cjs/utils/hooks/index.d.ts +1 -0
- package/cjs/utils/hooks/index.js +1 -0
- package/cjs/utils/hooks/useWarningLogger.d.ts +15 -0
- package/cjs/utils/hooks/useWarningLogger.js +17 -0
- package/esm/core/Breadcrumbs/Breadcrumbs.js +2 -2
- package/esm/core/Buttons/IconButton.js +2 -2
- package/esm/core/Footer/Footer.d.ts +5 -5
- package/esm/core/Footer/Footer.js +7 -7
- package/esm/core/Menu/MenuItem.js +2 -2
- package/esm/core/Popover/Popover.js +17 -30
- package/esm/core/Table/Table.js +4 -4
- package/esm/core/Table/cells/DefaultCell.js +5 -5
- package/esm/core/Table/utils.d.ts +2 -2
- package/esm/core/ThemeProvider/ThemeProvider.js +1 -1
- package/esm/styles.js +1 -1
- package/esm/utils/functions/dev.d.ts +1 -16
- package/esm/utils/functions/dev.js +1 -2
- package/esm/utils/hooks/index.d.ts +1 -0
- package/esm/utils/hooks/index.js +1 -0
- package/esm/utils/hooks/useWarningLogger.d.ts +15 -0
- package/esm/utils/hooks/useWarningLogger.js +5 -0
- package/package.json +1 -1
- package/styles.css +8 -8
package/DEV-esm/styles.js
CHANGED
|
@@ -5,15 +5,4 @@ let isMocha =
|
|
|
5
5
|
`${globalThis.beforeEach}`.replace(/\s/g, '');
|
|
6
6
|
let isVitest = void 0 !== globalThis.__vitest_index__;
|
|
7
7
|
let isUnitTest = isJest || isVitest || isMocha;
|
|
8
|
-
|
|
9
|
-
? () => () => {}
|
|
10
|
-
: () => {
|
|
11
|
-
let logged = false;
|
|
12
|
-
return (message) => {
|
|
13
|
-
if (!logged) {
|
|
14
|
-
console.warn(message);
|
|
15
|
-
logged = true;
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
};
|
|
19
|
-
export { isUnitTest, createWarningLogger };
|
|
8
|
+
export { isUnitTest };
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { isUnitTest } from '../functions/dev.js';
|
|
3
|
+
let _React = React;
|
|
4
|
+
let ReactInternals = _React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
5
|
+
export const useWarningLogger = isUnitTest
|
|
6
|
+
? () => () => {}
|
|
7
|
+
: function () {
|
|
8
|
+
let loggedRef = React.useRef(false);
|
|
9
|
+
let timeoutRef = React.useRef(null);
|
|
10
|
+
let stack = ReactInternals?.ReactDebugCurrentFrame?.getCurrentStack?.();
|
|
11
|
+
let componentName = stack?.trim().split('\n')[1]?.trim();
|
|
12
|
+
let prefix = componentName ? `Warning (${componentName}):` : 'Warning:';
|
|
13
|
+
let logWarning = React.useCallback(
|
|
14
|
+
(message) => {
|
|
15
|
+
timeoutRef.current = window.setTimeout(() => {
|
|
16
|
+
if (!loggedRef.current) {
|
|
17
|
+
console.error(prefix, message);
|
|
18
|
+
loggedRef.current = true;
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
},
|
|
22
|
+
[prefix],
|
|
23
|
+
);
|
|
24
|
+
React.useEffect(
|
|
25
|
+
() => () => {
|
|
26
|
+
if (timeoutRef.current) window.clearTimeout(timeoutRef.current);
|
|
27
|
+
},
|
|
28
|
+
[],
|
|
29
|
+
);
|
|
30
|
+
return logWarning;
|
|
31
|
+
};
|
|
@@ -15,7 +15,6 @@ const _classnames = _interop_require_default._(require('classnames'));
|
|
|
15
15
|
const _index = require('../../utils/index.js');
|
|
16
16
|
const _Button = require('../Buttons/Button.js');
|
|
17
17
|
const _Anchor = require('../Typography/Anchor.js');
|
|
18
|
-
const logWarning = (0, _index.createWarningLogger)();
|
|
19
18
|
const BreadcrumbsComponent = _react.forwardRef((props, ref) => {
|
|
20
19
|
let {
|
|
21
20
|
children: items,
|
|
@@ -108,6 +107,7 @@ const BreadcrumbsComponent = _react.forwardRef((props, ref) => {
|
|
|
108
107
|
});
|
|
109
108
|
const ListItem = ({ item, isActive }) => {
|
|
110
109
|
let children = item;
|
|
110
|
+
let logWarning = (0, _index.useWarningLogger)();
|
|
111
111
|
if (
|
|
112
112
|
children?.type === 'span' ||
|
|
113
113
|
children?.type === 'a' ||
|
|
@@ -17,7 +17,6 @@ const _Tooltip = require('../Tooltip/Tooltip.js');
|
|
|
17
17
|
const _VisuallyHidden = require('../VisuallyHidden/VisuallyHidden.js');
|
|
18
18
|
const _ButtonGroup = require('../ButtonGroup/ButtonGroup.js');
|
|
19
19
|
const _Popover = require('../Popover/Popover.js');
|
|
20
|
-
const logWarning = (0, _index.createWarningLogger)();
|
|
21
20
|
const IconButton = _react.forwardRef((props, ref) => {
|
|
22
21
|
let {
|
|
23
22
|
isActive,
|
|
@@ -35,6 +34,7 @@ const IconButton = _react.forwardRef((props, ref) => {
|
|
|
35
34
|
_ButtonGroup.ButtonGroupContext,
|
|
36
35
|
);
|
|
37
36
|
let hasPopoverOpen = _react.useContext(_Popover.PopoverOpenContext);
|
|
37
|
+
let logWarning = (0, _index.useWarningLogger)();
|
|
38
38
|
let button = _react.createElement(
|
|
39
39
|
_index.ButtonBase,
|
|
40
40
|
{
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { CommonProps } from '../../utils/index.js';
|
|
3
3
|
export type TitleTranslations = {
|
|
4
|
-
termsOfService
|
|
5
|
-
privacy
|
|
6
|
-
termsOfUse
|
|
7
|
-
cookies
|
|
8
|
-
legalNotices
|
|
4
|
+
termsOfService?: string;
|
|
5
|
+
privacy?: string;
|
|
6
|
+
termsOfUse?: string;
|
|
7
|
+
cookies?: string;
|
|
8
|
+
legalNotices?: string;
|
|
9
9
|
};
|
|
10
10
|
type FooterProps = {
|
|
11
11
|
/**
|
|
@@ -26,7 +26,7 @@ const _FooterItem = require('./FooterItem.js');
|
|
|
26
26
|
const _FooterSeparator = require('./FooterSeparator.js');
|
|
27
27
|
const _FooterList = require('./FooterList.js');
|
|
28
28
|
const _Anchor = require('../Typography/Anchor.js');
|
|
29
|
-
const
|
|
29
|
+
const defaultTranslatedTitles = {
|
|
30
30
|
cookies: 'Cookies',
|
|
31
31
|
legalNotices: 'Legal notices',
|
|
32
32
|
privacy: 'Privacy',
|
|
@@ -40,27 +40,27 @@ const defaultFooterElements = [
|
|
|
40
40
|
},
|
|
41
41
|
{
|
|
42
42
|
key: 'termsOfService',
|
|
43
|
-
title:
|
|
43
|
+
title: defaultTranslatedTitles.termsOfService,
|
|
44
44
|
url: 'https://connect-agreementportal.bentley.com/AgreementApp/Home/Eula/view/readonly/BentleyConnect',
|
|
45
45
|
},
|
|
46
46
|
{
|
|
47
47
|
key: 'privacy',
|
|
48
|
-
title:
|
|
48
|
+
title: defaultTranslatedTitles.privacy,
|
|
49
49
|
url: 'https://www.bentley.com/en/privacy-policy',
|
|
50
50
|
},
|
|
51
51
|
{
|
|
52
52
|
key: 'termsOfUse',
|
|
53
|
-
title:
|
|
53
|
+
title: defaultTranslatedTitles.termsOfUse,
|
|
54
54
|
url: 'https://www.bentley.com/en/terms-of-use-and-select-online-agreement',
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
key: 'cookies',
|
|
58
|
-
title:
|
|
58
|
+
title: defaultTranslatedTitles.cookies,
|
|
59
59
|
url: 'https://www.bentley.com/en/cookie-policy',
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
key: 'legalNotices',
|
|
63
|
-
title:
|
|
63
|
+
title: defaultTranslatedTitles.legalNotices,
|
|
64
64
|
url: 'https://connect.bentley.com/Legal',
|
|
65
65
|
},
|
|
66
66
|
];
|
|
@@ -69,7 +69,7 @@ const Footer = Object.assign(
|
|
|
69
69
|
let { children, customElements, translatedTitles, className, ...rest } =
|
|
70
70
|
props;
|
|
71
71
|
let titles = {
|
|
72
|
-
...
|
|
72
|
+
...defaultTranslatedTitles,
|
|
73
73
|
...translatedTitles,
|
|
74
74
|
};
|
|
75
75
|
let translatedElements = defaultFooterElements.map((element) => {
|
|
@@ -15,7 +15,6 @@ const _index = require('../../utils/index.js');
|
|
|
15
15
|
const _Menu = require('./Menu.js');
|
|
16
16
|
const _ListItem = require('../List/ListItem.js');
|
|
17
17
|
const _classnames = _interop_require_default._(require('classnames'));
|
|
18
|
-
const logWarning = (0, _index.createWarningLogger)();
|
|
19
18
|
const MenuItem = _react.forwardRef((props, forwardedRef) => {
|
|
20
19
|
let {
|
|
21
20
|
className,
|
|
@@ -34,6 +33,7 @@ const MenuItem = _react.forwardRef((props, forwardedRef) => {
|
|
|
34
33
|
subMenuItems = [],
|
|
35
34
|
...rest
|
|
36
35
|
} = props;
|
|
36
|
+
let logWarning = (0, _index.useWarningLogger)();
|
|
37
37
|
let parentMenu = _react.useContext(_Menu.MenuContext);
|
|
38
38
|
let menuItemRef = _react.useRef(null);
|
|
39
39
|
let submenuId = (0, _index.useId)();
|
|
@@ -27,7 +27,6 @@ const _classnames = _interop_require_default._(require('classnames'));
|
|
|
27
27
|
const _react1 = require('@floating-ui/react');
|
|
28
28
|
const _index = require('../../utils/index.js');
|
|
29
29
|
const _Portal = require('../../utils/components/Portal.js');
|
|
30
|
-
const _ThemeProvider = require('../ThemeProvider/ThemeProvider.js');
|
|
31
30
|
const PopoverOpenContext = _react.createContext(void 0);
|
|
32
31
|
const usePopover = (options) => {
|
|
33
32
|
let {
|
|
@@ -222,11 +221,9 @@ const Popover = _react.forwardRef((props, forwardedRef) => {
|
|
|
222
221
|
role: 'dialog',
|
|
223
222
|
middleware,
|
|
224
223
|
});
|
|
225
|
-
let [popoverElement, setPopoverElement] = _react.useState();
|
|
226
224
|
let popoverRef = (0, _index.useMergedRefs)(
|
|
227
225
|
popover.refs.setFloating,
|
|
228
226
|
forwardedRef,
|
|
229
|
-
setPopoverElement,
|
|
230
227
|
);
|
|
231
228
|
let triggerId = `${(0, _index.useId)()}-trigger`;
|
|
232
229
|
let hasAriaLabel = !!props['aria-labelledby'] || !!props['aria-label'];
|
|
@@ -256,34 +253,27 @@ const Popover = _react.forwardRef((props, forwardedRef) => {
|
|
|
256
253
|
portal: portal,
|
|
257
254
|
},
|
|
258
255
|
_react.createElement(
|
|
259
|
-
|
|
256
|
+
_react1.FloatingFocusManager,
|
|
260
257
|
{
|
|
261
|
-
|
|
258
|
+
context: popover.context,
|
|
259
|
+
modal: false,
|
|
262
260
|
},
|
|
263
|
-
_react.createElement(DisplayContents, null),
|
|
264
261
|
_react.createElement(
|
|
265
|
-
|
|
262
|
+
_index.Box,
|
|
266
263
|
{
|
|
267
|
-
|
|
268
|
-
|
|
264
|
+
className: (0, _classnames.default)(
|
|
265
|
+
{
|
|
266
|
+
'iui-popover-surface': applyBackground,
|
|
267
|
+
},
|
|
268
|
+
className,
|
|
269
|
+
),
|
|
270
|
+
'aria-labelledby': hasAriaLabel
|
|
271
|
+
? void 0
|
|
272
|
+
: popover.refs.domReference.current?.id,
|
|
273
|
+
...popover.getFloatingProps(rest),
|
|
274
|
+
ref: popoverRef,
|
|
269
275
|
},
|
|
270
|
-
|
|
271
|
-
_index.Box,
|
|
272
|
-
{
|
|
273
|
-
className: (0, _classnames.default)(
|
|
274
|
-
{
|
|
275
|
-
'iui-popover-surface': applyBackground,
|
|
276
|
-
},
|
|
277
|
-
className,
|
|
278
|
-
),
|
|
279
|
-
'aria-labelledby': hasAriaLabel
|
|
280
|
-
? void 0
|
|
281
|
-
: popover.refs.domReference.current?.id,
|
|
282
|
-
...popover.getFloatingProps(rest),
|
|
283
|
-
ref: popoverRef,
|
|
284
|
-
},
|
|
285
|
-
content,
|
|
286
|
-
),
|
|
276
|
+
content,
|
|
287
277
|
),
|
|
288
278
|
),
|
|
289
279
|
)
|
package/cjs/core/Table/Table.js
CHANGED
|
@@ -35,7 +35,6 @@ const singleRowSelectedAction = 'singleRowSelected';
|
|
|
35
35
|
const shiftRowSelectedAction = 'shiftRowSelected';
|
|
36
36
|
const tableResizeStartAction = 'tableResizeStart';
|
|
37
37
|
const tableResizeEndAction = 'tableResizeEnd';
|
|
38
|
-
const logWarning = (0, _index.createWarningLogger)();
|
|
39
38
|
const flattenColumns = (columns) => {
|
|
40
39
|
let flatColumns = [];
|
|
41
40
|
columns.forEach((column) => {
|
|
@@ -282,6 +281,7 @@ const Table = (props) => {
|
|
|
282
281
|
setGlobalFilter,
|
|
283
282
|
} = instance;
|
|
284
283
|
let headerGroups = _headerGroups;
|
|
284
|
+
let logWarning = (0, _index.useWarningLogger)();
|
|
285
285
|
if (1 === columns.length && 'columns' in columns[0])
|
|
286
286
|
headerGroups = _headerGroups.slice(1);
|
|
287
287
|
let ariaDataAttributes = Object.entries(rest).reduce(
|
|
@@ -510,7 +510,7 @@ const Table = (props) => {
|
|
|
510
510
|
return _react.createElement(
|
|
511
511
|
_utils.TableColumnsContext.Provider,
|
|
512
512
|
{
|
|
513
|
-
value: columns,
|
|
513
|
+
value: instance.columns,
|
|
514
514
|
},
|
|
515
515
|
_react.createElement(
|
|
516
516
|
_index.Box,
|
|
@@ -571,7 +571,7 @@ const Table = (props) => {
|
|
|
571
571
|
let dragAndDropProps = column.getDragAndDropProps();
|
|
572
572
|
return _react.createElement(_ColumnHeader.ColumnHeader, {
|
|
573
573
|
...dragAndDropProps,
|
|
574
|
-
key: dragAndDropProps.key,
|
|
574
|
+
key: dragAndDropProps.key || column.id || index,
|
|
575
575
|
columnRefs: columnRefs,
|
|
576
576
|
column: column,
|
|
577
577
|
index: index,
|
|
@@ -11,17 +11,17 @@ Object.defineProperty(exports, 'DefaultCell', {
|
|
|
11
11
|
const _interop_require_default = require('@swc/helpers/_/_interop_require_default');
|
|
12
12
|
const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard');
|
|
13
13
|
const _react = _interop_require_wildcard._(require('react'));
|
|
14
|
+
const _reacttable = require('react-table');
|
|
14
15
|
const _classnames = _interop_require_default._(require('classnames'));
|
|
15
16
|
const _index = require('../../../utils/index.js');
|
|
16
17
|
const _utils = require('../utils.js');
|
|
17
18
|
const DefaultCell = (props) => {
|
|
18
|
-
let
|
|
19
|
+
let instanceColumns = _react.useContext(_utils.TableColumnsContext);
|
|
19
20
|
let isCustomCell = _react.useMemo(
|
|
20
21
|
() =>
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
[props.cellProps.column.id, columnsProp],
|
|
22
|
+
instanceColumns.find(({ id }) => props.cellProps.column.id === id)
|
|
23
|
+
?.Cell !== _reacttable.defaultColumn.Cell,
|
|
24
|
+
[instanceColumns, props.cellProps.column.id],
|
|
25
25
|
);
|
|
26
26
|
let {
|
|
27
27
|
cellElementProps: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
|
-
import type { ColumnInstance
|
|
2
|
+
import type { ColumnInstance } from '../../react-table/react-table.js';
|
|
3
3
|
export declare const getCellStyle: <T extends Record<string, unknown>>(column: ColumnInstance<T>, isTableResizing: boolean) => React.CSSProperties | undefined;
|
|
4
4
|
export declare const getStickyStyle: <T extends Record<string, unknown>>(column: ColumnInstance<T>, columnList: ColumnInstance<T>[]) => React.CSSProperties;
|
|
5
5
|
export declare const getSubRowStyle: ({ density, depth }: {
|
|
@@ -8,4 +8,4 @@ export declare const getSubRowStyle: ({ density, depth }: {
|
|
|
8
8
|
}) => {
|
|
9
9
|
paddingInlineStart: number;
|
|
10
10
|
};
|
|
11
|
-
export declare const TableColumnsContext: React.Context<
|
|
11
|
+
export declare const TableColumnsContext: React.Context<ColumnInstance<{}>[]>;
|
|
@@ -246,7 +246,7 @@ const FallbackStyles = ({ root }) => {
|
|
|
246
246
|
} catch (error) {
|
|
247
247
|
console.log('Error loading styles.css locally', error);
|
|
248
248
|
let css = await (0, _index.importCss)(
|
|
249
|
-
|
|
249
|
+
`https://cdn.jsdelivr.net/npm/@itwin/itwinui-react@${_meta.meta.version}/styles.css`,
|
|
250
250
|
);
|
|
251
251
|
document.adoptedStyleSheets = [
|
|
252
252
|
...document.adoptedStyleSheets,
|
package/cjs/styles.js
CHANGED
|
@@ -1,17 +1,2 @@
|
|
|
1
1
|
declare const isUnitTest: boolean;
|
|
2
|
-
|
|
3
|
-
* Returns a function that can be used to log one-time warnings in dev environments.
|
|
4
|
-
*
|
|
5
|
-
* **Note**: The actual log call should be wrapped in a check against `process.env.NODE_ENV === 'development'`
|
|
6
|
-
* to ensure that it is removed from the production build output (by SWC).
|
|
7
|
-
* Read more about the [`NODE_ENV` convention](https://nodejs.org/en/learn/getting-started/nodejs-the-difference-between-development-and-production).
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* const logWarning = createWarningLogger();
|
|
11
|
-
*
|
|
12
|
-
* if (process.env.NODE_ENV === 'development') {
|
|
13
|
-
* logWarning("please don't use this")
|
|
14
|
-
* }
|
|
15
|
-
*/
|
|
16
|
-
declare const createWarningLogger: () => (message: string) => void;
|
|
17
|
-
export { isUnitTest, createWarningLogger };
|
|
2
|
+
export { isUnitTest };
|
|
@@ -2,18 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, '__esModule', {
|
|
3
3
|
value: true,
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
enumerable: true,
|
|
9
|
-
get: all[name],
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
_export(exports, {
|
|
13
|
-
createWarningLogger: function () {
|
|
14
|
-
return createWarningLogger;
|
|
15
|
-
},
|
|
16
|
-
isUnitTest: function () {
|
|
5
|
+
Object.defineProperty(exports, 'isUnitTest', {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function () {
|
|
17
8
|
return isUnitTest;
|
|
18
9
|
},
|
|
19
10
|
});
|
|
@@ -24,4 +15,3 @@ const isMocha =
|
|
|
24
15
|
`${globalThis.beforeEach}`.replace(/\s/g, '');
|
|
25
16
|
const isVitest = void 0 !== globalThis.__vitest_index__;
|
|
26
17
|
const isUnitTest = isJest || isVitest || isMocha;
|
|
27
|
-
const createWarningLogger = () => () => {};
|
package/cjs/utils/hooks/index.js
CHANGED
|
@@ -19,3 +19,4 @@ _export_star._(require('./useId.js'), exports);
|
|
|
19
19
|
_export_star._(require('./useControlledState.js'), exports);
|
|
20
20
|
_export_star._(require('./useSyncExternalStore.js'), exports);
|
|
21
21
|
_export_star._(require('./useVirtualScroll.js'), exports);
|
|
22
|
+
_export_star._(require('./useWarningLogger.js'), exports);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a function that can be used to log one-time warnings in dev environments.
|
|
3
|
+
*
|
|
4
|
+
* **Note**: The actual log call should be wrapped in a check against `process.env.NODE_ENV === 'development'`
|
|
5
|
+
* to ensure that it is removed from the production build output (by SWC).
|
|
6
|
+
* Read more about the [`NODE_ENV` convention](https://nodejs.org/en/learn/getting-started/nodejs-the-difference-between-development-and-production).
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const logWarning = useWarningLogger();
|
|
10
|
+
*
|
|
11
|
+
* if (process.env.NODE_ENV === 'development') {
|
|
12
|
+
* logWarning("please don't use this")
|
|
13
|
+
* }
|
|
14
|
+
*/
|
|
15
|
+
export declare const useWarningLogger: () => (message: string) => void;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
Object.defineProperty(exports, '__esModule', {
|
|
3
|
+
value: true,
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, 'useWarningLogger', {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function () {
|
|
8
|
+
return useWarningLogger;
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard');
|
|
12
|
+
const _react = _interop_require_wildcard._(require('react'));
|
|
13
|
+
const _dev = require('../functions/dev.js');
|
|
14
|
+
const _React = _react;
|
|
15
|
+
const ReactInternals =
|
|
16
|
+
_React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
|
|
17
|
+
const useWarningLogger = () => () => {};
|
|
@@ -5,11 +5,10 @@ import {
|
|
|
5
5
|
useOverflow,
|
|
6
6
|
SvgChevronRight,
|
|
7
7
|
Box,
|
|
8
|
-
|
|
8
|
+
useWarningLogger,
|
|
9
9
|
} from '../../utils/index.js';
|
|
10
10
|
import { Button } from '../Buttons/Button.js';
|
|
11
11
|
import { Anchor } from '../Typography/Anchor.js';
|
|
12
|
-
let logWarning = createWarningLogger();
|
|
13
12
|
let BreadcrumbsComponent = React.forwardRef((props, ref) => {
|
|
14
13
|
let {
|
|
15
14
|
children: items,
|
|
@@ -102,6 +101,7 @@ let BreadcrumbsComponent = React.forwardRef((props, ref) => {
|
|
|
102
101
|
});
|
|
103
102
|
let ListItem = ({ item, isActive }) => {
|
|
104
103
|
let children = item;
|
|
104
|
+
let logWarning = useWarningLogger();
|
|
105
105
|
if (
|
|
106
106
|
children?.type === 'span' ||
|
|
107
107
|
children?.type === 'a' ||
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import cx from 'classnames';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { Box, ButtonBase,
|
|
3
|
+
import { Box, ButtonBase, useWarningLogger } from '../../utils/index.js';
|
|
4
4
|
import { Tooltip } from '../Tooltip/Tooltip.js';
|
|
5
5
|
import { VisuallyHidden } from '../VisuallyHidden/VisuallyHidden.js';
|
|
6
6
|
import { ButtonGroupContext } from '../ButtonGroup/ButtonGroup.js';
|
|
7
7
|
import { PopoverOpenContext } from '../Popover/Popover.js';
|
|
8
|
-
let logWarning = createWarningLogger();
|
|
9
8
|
export const IconButton = React.forwardRef((props, ref) => {
|
|
10
9
|
let {
|
|
11
10
|
isActive,
|
|
@@ -21,6 +20,7 @@ export const IconButton = React.forwardRef((props, ref) => {
|
|
|
21
20
|
} = props;
|
|
22
21
|
let buttonGroupOrientation = React.useContext(ButtonGroupContext);
|
|
23
22
|
let hasPopoverOpen = React.useContext(PopoverOpenContext);
|
|
23
|
+
let logWarning = useWarningLogger();
|
|
24
24
|
let button = React.createElement(
|
|
25
25
|
ButtonBase,
|
|
26
26
|
{
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { CommonProps } from '../../utils/index.js';
|
|
3
3
|
export type TitleTranslations = {
|
|
4
|
-
termsOfService
|
|
5
|
-
privacy
|
|
6
|
-
termsOfUse
|
|
7
|
-
cookies
|
|
8
|
-
legalNotices
|
|
4
|
+
termsOfService?: string;
|
|
5
|
+
privacy?: string;
|
|
6
|
+
termsOfUse?: string;
|
|
7
|
+
cookies?: string;
|
|
8
|
+
legalNotices?: string;
|
|
9
9
|
};
|
|
10
10
|
type FooterProps = {
|
|
11
11
|
/**
|
|
@@ -5,7 +5,7 @@ import { FooterItem } from './FooterItem.js';
|
|
|
5
5
|
import { FooterSeparator } from './FooterSeparator.js';
|
|
6
6
|
import { FooterList } from './FooterList.js';
|
|
7
7
|
import { Anchor } from '../Typography/Anchor.js';
|
|
8
|
-
let
|
|
8
|
+
let defaultTranslatedTitles = {
|
|
9
9
|
cookies: 'Cookies',
|
|
10
10
|
legalNotices: 'Legal notices',
|
|
11
11
|
privacy: 'Privacy',
|
|
@@ -19,27 +19,27 @@ export const defaultFooterElements = [
|
|
|
19
19
|
},
|
|
20
20
|
{
|
|
21
21
|
key: 'termsOfService',
|
|
22
|
-
title:
|
|
22
|
+
title: defaultTranslatedTitles.termsOfService,
|
|
23
23
|
url: 'https://connect-agreementportal.bentley.com/AgreementApp/Home/Eula/view/readonly/BentleyConnect',
|
|
24
24
|
},
|
|
25
25
|
{
|
|
26
26
|
key: 'privacy',
|
|
27
|
-
title:
|
|
27
|
+
title: defaultTranslatedTitles.privacy,
|
|
28
28
|
url: 'https://www.bentley.com/en/privacy-policy',
|
|
29
29
|
},
|
|
30
30
|
{
|
|
31
31
|
key: 'termsOfUse',
|
|
32
|
-
title:
|
|
32
|
+
title: defaultTranslatedTitles.termsOfUse,
|
|
33
33
|
url: 'https://www.bentley.com/en/terms-of-use-and-select-online-agreement',
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
key: 'cookies',
|
|
37
|
-
title:
|
|
37
|
+
title: defaultTranslatedTitles.cookies,
|
|
38
38
|
url: 'https://www.bentley.com/en/cookie-policy',
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
key: 'legalNotices',
|
|
42
|
-
title:
|
|
42
|
+
title: defaultTranslatedTitles.legalNotices,
|
|
43
43
|
url: 'https://connect.bentley.com/Legal',
|
|
44
44
|
},
|
|
45
45
|
];
|
|
@@ -48,7 +48,7 @@ export const Footer = Object.assign(
|
|
|
48
48
|
let { children, customElements, translatedTitles, className, ...rest } =
|
|
49
49
|
props;
|
|
50
50
|
let titles = {
|
|
51
|
-
...
|
|
51
|
+
...defaultTranslatedTitles,
|
|
52
52
|
...translatedTitles,
|
|
53
53
|
};
|
|
54
54
|
let translatedElements = defaultFooterElements.map((element) => {
|
|
@@ -3,12 +3,11 @@ import {
|
|
|
3
3
|
SvgCaretRightSmall,
|
|
4
4
|
useMergedRefs,
|
|
5
5
|
useId,
|
|
6
|
-
|
|
6
|
+
useWarningLogger,
|
|
7
7
|
} from '../../utils/index.js';
|
|
8
8
|
import { Menu, MenuContext } from './Menu.js';
|
|
9
9
|
import { ListItem } from '../List/ListItem.js';
|
|
10
10
|
import cx from 'classnames';
|
|
11
|
-
let logWarning = createWarningLogger();
|
|
12
11
|
export const MenuItem = React.forwardRef((props, forwardedRef) => {
|
|
13
12
|
let {
|
|
14
13
|
className,
|
|
@@ -27,6 +26,7 @@ export const MenuItem = React.forwardRef((props, forwardedRef) => {
|
|
|
27
26
|
subMenuItems = [],
|
|
28
27
|
...rest
|
|
29
28
|
} = props;
|
|
29
|
+
let logWarning = useWarningLogger();
|
|
30
30
|
let parentMenu = React.useContext(MenuContext);
|
|
31
31
|
let menuItemRef = React.useRef(null);
|
|
32
32
|
let submenuId = useId();
|
|
@@ -32,7 +32,6 @@ import {
|
|
|
32
32
|
useMergedRefs,
|
|
33
33
|
} from '../../utils/index.js';
|
|
34
34
|
import { usePortalTo } from '../../utils/components/Portal.js';
|
|
35
|
-
import { ThemeProvider } from '../ThemeProvider/ThemeProvider.js';
|
|
36
35
|
export const PopoverOpenContext = React.createContext(void 0);
|
|
37
36
|
export const usePopover = (options) => {
|
|
38
37
|
let {
|
|
@@ -224,12 +223,7 @@ export const Popover = React.forwardRef((props, forwardedRef) => {
|
|
|
224
223
|
role: 'dialog',
|
|
225
224
|
middleware,
|
|
226
225
|
});
|
|
227
|
-
let
|
|
228
|
-
let popoverRef = useMergedRefs(
|
|
229
|
-
popover.refs.setFloating,
|
|
230
|
-
forwardedRef,
|
|
231
|
-
setPopoverElement,
|
|
232
|
-
);
|
|
226
|
+
let popoverRef = useMergedRefs(popover.refs.setFloating, forwardedRef);
|
|
233
227
|
let triggerId = `${useId()}-trigger`;
|
|
234
228
|
let hasAriaLabel = !!props['aria-labelledby'] || !!props['aria-label'];
|
|
235
229
|
useLayoutEffect(() => {
|
|
@@ -258,34 +252,27 @@ export const Popover = React.forwardRef((props, forwardedRef) => {
|
|
|
258
252
|
portal: portal,
|
|
259
253
|
},
|
|
260
254
|
React.createElement(
|
|
261
|
-
|
|
255
|
+
FloatingFocusManager,
|
|
262
256
|
{
|
|
263
|
-
|
|
257
|
+
context: popover.context,
|
|
258
|
+
modal: false,
|
|
264
259
|
},
|
|
265
|
-
React.createElement(DisplayContents, null),
|
|
266
260
|
React.createElement(
|
|
267
|
-
|
|
261
|
+
Box,
|
|
268
262
|
{
|
|
269
|
-
|
|
270
|
-
|
|
263
|
+
className: cx(
|
|
264
|
+
{
|
|
265
|
+
'iui-popover-surface': applyBackground,
|
|
266
|
+
},
|
|
267
|
+
className,
|
|
268
|
+
),
|
|
269
|
+
'aria-labelledby': hasAriaLabel
|
|
270
|
+
? void 0
|
|
271
|
+
: popover.refs.domReference.current?.id,
|
|
272
|
+
...popover.getFloatingProps(rest),
|
|
273
|
+
ref: popoverRef,
|
|
271
274
|
},
|
|
272
|
-
|
|
273
|
-
Box,
|
|
274
|
-
{
|
|
275
|
-
className: cx(
|
|
276
|
-
{
|
|
277
|
-
'iui-popover-surface': applyBackground,
|
|
278
|
-
},
|
|
279
|
-
className,
|
|
280
|
-
),
|
|
281
|
-
'aria-labelledby': hasAriaLabel
|
|
282
|
-
? void 0
|
|
283
|
-
: popover.refs.domReference.current?.id,
|
|
284
|
-
...popover.getFloatingProps(rest),
|
|
285
|
-
ref: popoverRef,
|
|
286
|
-
},
|
|
287
|
-
content,
|
|
288
|
-
),
|
|
275
|
+
content,
|
|
289
276
|
),
|
|
290
277
|
),
|
|
291
278
|
)
|