@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.
Files changed (61) hide show
  1. package/CHANGELOG.md +28 -12
  2. package/DEV-cjs/core/Breadcrumbs/Breadcrumbs.js +1 -1
  3. package/DEV-cjs/core/Buttons/IconButton.js +1 -1
  4. package/DEV-cjs/core/Footer/Footer.js +7 -7
  5. package/DEV-cjs/core/Menu/MenuItem.js +1 -1
  6. package/DEV-cjs/core/Popover/Popover.js +16 -26
  7. package/DEV-cjs/core/Table/Table.js +3 -3
  8. package/DEV-cjs/core/Table/cells/DefaultCell.js +5 -5
  9. package/DEV-cjs/core/ThemeProvider/ThemeProvider.js +1 -1
  10. package/DEV-cjs/styles.js +1 -1
  11. package/DEV-cjs/utils/functions/dev.js +3 -23
  12. package/DEV-cjs/utils/hooks/index.js +1 -0
  13. package/DEV-cjs/utils/hooks/useWarningLogger.js +43 -0
  14. package/DEV-esm/core/Breadcrumbs/Breadcrumbs.js +2 -2
  15. package/DEV-esm/core/Buttons/IconButton.js +2 -2
  16. package/DEV-esm/core/Footer/Footer.js +7 -7
  17. package/DEV-esm/core/Menu/MenuItem.js +2 -2
  18. package/DEV-esm/core/Popover/Popover.js +17 -30
  19. package/DEV-esm/core/Table/Table.js +4 -4
  20. package/DEV-esm/core/Table/cells/DefaultCell.js +5 -5
  21. package/DEV-esm/core/ThemeProvider/ThemeProvider.js +1 -1
  22. package/DEV-esm/styles.js +1 -1
  23. package/DEV-esm/utils/functions/dev.js +1 -12
  24. package/DEV-esm/utils/hooks/index.js +1 -0
  25. package/DEV-esm/utils/hooks/useWarningLogger.js +31 -0
  26. package/cjs/core/Breadcrumbs/Breadcrumbs.js +1 -1
  27. package/cjs/core/Buttons/IconButton.js +1 -1
  28. package/cjs/core/Footer/Footer.d.ts +5 -5
  29. package/cjs/core/Footer/Footer.js +7 -7
  30. package/cjs/core/Menu/MenuItem.js +1 -1
  31. package/cjs/core/Popover/Popover.js +16 -26
  32. package/cjs/core/Table/Table.js +3 -3
  33. package/cjs/core/Table/cells/DefaultCell.js +5 -5
  34. package/cjs/core/Table/utils.d.ts +2 -2
  35. package/cjs/core/ThemeProvider/ThemeProvider.js +1 -1
  36. package/cjs/styles.js +1 -1
  37. package/cjs/utils/functions/dev.d.ts +1 -16
  38. package/cjs/utils/functions/dev.js +3 -13
  39. package/cjs/utils/hooks/index.d.ts +1 -0
  40. package/cjs/utils/hooks/index.js +1 -0
  41. package/cjs/utils/hooks/useWarningLogger.d.ts +15 -0
  42. package/cjs/utils/hooks/useWarningLogger.js +17 -0
  43. package/esm/core/Breadcrumbs/Breadcrumbs.js +2 -2
  44. package/esm/core/Buttons/IconButton.js +2 -2
  45. package/esm/core/Footer/Footer.d.ts +5 -5
  46. package/esm/core/Footer/Footer.js +7 -7
  47. package/esm/core/Menu/MenuItem.js +2 -2
  48. package/esm/core/Popover/Popover.js +17 -30
  49. package/esm/core/Table/Table.js +4 -4
  50. package/esm/core/Table/cells/DefaultCell.js +5 -5
  51. package/esm/core/Table/utils.d.ts +2 -2
  52. package/esm/core/ThemeProvider/ThemeProvider.js +1 -1
  53. package/esm/styles.js +1 -1
  54. package/esm/utils/functions/dev.d.ts +1 -16
  55. package/esm/utils/functions/dev.js +1 -2
  56. package/esm/utils/hooks/index.d.ts +1 -0
  57. package/esm/utils/hooks/index.js +1 -0
  58. package/esm/utils/hooks/useWarningLogger.d.ts +15 -0
  59. package/esm/utils/hooks/useWarningLogger.js +5 -0
  60. package/package.json +1 -1
  61. package/styles.css +8 -8
package/DEV-esm/styles.js CHANGED
@@ -1,4 +1,4 @@
1
- const t = '3.14.0';
1
+ const t = '3.14.2';
2
2
  const u = new Proxy(
3
3
  {},
4
4
  {
@@ -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
- let createWarningLogger = isUnitTest
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 };
@@ -14,3 +14,4 @@ export * from './useId.js';
14
14
  export * from './useControlledState.js';
15
15
  export * from './useSyncExternalStore.js';
16
16
  export * from './useVirtualScroll.js';
17
+ export * from './useWarningLogger.js';
@@ -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: string;
5
- privacy: string;
6
- termsOfUse: string;
7
- cookies: string;
8
- legalNotices: string;
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 footerTranslations = {
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: footerTranslations.termsOfService,
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: footerTranslations.privacy,
48
+ title: defaultTranslatedTitles.privacy,
49
49
  url: 'https://www.bentley.com/en/privacy-policy',
50
50
  },
51
51
  {
52
52
  key: 'termsOfUse',
53
- title: footerTranslations.termsOfUse,
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: footerTranslations.cookies,
58
+ title: defaultTranslatedTitles.cookies,
59
59
  url: 'https://www.bentley.com/en/cookie-policy',
60
60
  },
61
61
  {
62
62
  key: 'legalNotices',
63
- title: footerTranslations.legalNotices,
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
- ...footerTranslations,
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
- _ThemeProvider.ThemeProvider,
256
+ _react1.FloatingFocusManager,
260
257
  {
261
- portalContainer: popoverElement,
258
+ context: popover.context,
259
+ modal: false,
262
260
  },
263
- _react.createElement(DisplayContents, null),
264
261
  _react.createElement(
265
- _react1.FloatingFocusManager,
262
+ _index.Box,
266
263
  {
267
- context: popover.context,
268
- modal: false,
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
- _react.createElement(
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
  )
@@ -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 columnsProp = _react.useContext(_utils.TableColumnsContext);
19
+ let instanceColumns = _react.useContext(_utils.TableColumnsContext);
19
20
  let isCustomCell = _react.useMemo(
20
21
  () =>
21
- columnsProp
22
- .find(({ id }) => props.cellProps.column.id === id)
23
- ?.hasOwnProperty('Cell'),
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, Column } from '../../react-table/react-table.js';
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<Column<Record<string, unknown>>[]>;
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
- 'https://cdn.jsdelivr.net/npm/@itwin/itwinui-react@3/styles.css',
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,6 +1,6 @@
1
1
  'use strict';
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3
- const e = '3.14.0';
3
+ const e = '3.14.2';
4
4
  const u = new Proxy(
5
5
  {},
6
6
  {
@@ -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
- function _export(target, all) {
6
- for (var name in all)
7
- Object.defineProperty(target, name, {
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 = () => () => {};
@@ -14,3 +14,4 @@ export * from './useId.js';
14
14
  export * from './useControlledState.js';
15
15
  export * from './useSyncExternalStore.js';
16
16
  export * from './useVirtualScroll.js';
17
+ export * from './useWarningLogger.js';
@@ -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
- createWarningLogger,
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, createWarningLogger } from '../../utils/index.js';
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: string;
5
- privacy: string;
6
- termsOfUse: string;
7
- cookies: string;
8
- legalNotices: string;
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 footerTranslations = {
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: footerTranslations.termsOfService,
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: footerTranslations.privacy,
27
+ title: defaultTranslatedTitles.privacy,
28
28
  url: 'https://www.bentley.com/en/privacy-policy',
29
29
  },
30
30
  {
31
31
  key: 'termsOfUse',
32
- title: footerTranslations.termsOfUse,
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: footerTranslations.cookies,
37
+ title: defaultTranslatedTitles.cookies,
38
38
  url: 'https://www.bentley.com/en/cookie-policy',
39
39
  },
40
40
  {
41
41
  key: 'legalNotices',
42
- title: footerTranslations.legalNotices,
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
- ...footerTranslations,
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
- createWarningLogger,
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 [popoverElement, setPopoverElement] = React.useState();
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
- ThemeProvider,
255
+ FloatingFocusManager,
262
256
  {
263
- portalContainer: popoverElement,
257
+ context: popover.context,
258
+ modal: false,
264
259
  },
265
- React.createElement(DisplayContents, null),
266
260
  React.createElement(
267
- FloatingFocusManager,
261
+ Box,
268
262
  {
269
- context: popover.context,
270
- modal: false,
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
- React.createElement(
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
  )