@itwin/appui-react 5.30.1 → 5.32.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 (68) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/lib/appui-react/UiFramework.d.ts.map +1 -1
  3. package/lib/appui-react/UiFramework.js +2 -0
  4. package/lib/appui-react/UiFramework.js.map +1 -1
  5. package/lib/appui-react/UiFramework.json +4 -1
  6. package/lib/appui-react/backstage/Backstage.d.ts +33 -0
  7. package/lib/appui-react/backstage/Backstage.d.ts.map +1 -0
  8. package/lib/appui-react/backstage/Backstage.js +88 -0
  9. package/lib/appui-react/backstage/Backstage.js.map +1 -0
  10. package/lib/appui-react/backstage/Backstage.scss +42 -0
  11. package/lib/appui-react/backstage/BackstageComposer.d.ts +2 -2
  12. package/lib/appui-react/backstage/BackstageComposer.d.ts.map +1 -1
  13. package/lib/appui-react/backstage/BackstageComposer.js +25 -19
  14. package/lib/appui-react/backstage/BackstageComposer.js.map +1 -1
  15. package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts +12 -0
  16. package/lib/appui-react/configurableui/ConfigurableUiContent.d.ts.map +1 -1
  17. package/lib/appui-react/configurableui/ConfigurableUiContent.js.map +1 -1
  18. package/lib/appui-react/frontstage/ModalFrontstage.d.ts +27 -15
  19. package/lib/appui-react/frontstage/ModalFrontstage.d.ts.map +1 -1
  20. package/lib/appui-react/frontstage/ModalFrontstage.js +16 -20
  21. package/lib/appui-react/frontstage/ModalFrontstage.js.map +1 -1
  22. package/lib/appui-react/frontstage/ModalFrontstage.scss +11 -17
  23. package/lib/appui-react/hooks/useActiveModalFrontstage.d.ts +8 -0
  24. package/lib/appui-react/hooks/useActiveModalFrontstage.d.ts.map +1 -0
  25. package/lib/appui-react/hooks/useActiveModalFrontstage.js +23 -0
  26. package/lib/appui-react/hooks/useActiveModalFrontstage.js.map +1 -0
  27. package/lib/appui-react/layout/StandardLayout.d.ts +1 -2
  28. package/lib/appui-react/layout/StandardLayout.d.ts.map +1 -1
  29. package/lib/appui-react/layout/StandardLayout.js +9 -9
  30. package/lib/appui-react/layout/StandardLayout.js.map +1 -1
  31. package/lib/appui-react/widget-panels/Frontstage.d.ts.map +1 -1
  32. package/lib/appui-react/widget-panels/Frontstage.js +9 -4
  33. package/lib/appui-react/widget-panels/Frontstage.js.map +1 -1
  34. package/lib/appui-react/widget-panels/ModalFrontstageComposer.d.ts +1 -6
  35. package/lib/appui-react/widget-panels/ModalFrontstageComposer.d.ts.map +1 -1
  36. package/lib/appui-react/widget-panels/ModalFrontstageComposer.js +7 -16
  37. package/lib/appui-react/widget-panels/ModalFrontstageComposer.js.map +1 -1
  38. package/lib/cjs/appui-react/backstage/Backstage.scss +42 -0
  39. package/lib/cjs/appui-react/frontstage/ModalFrontstage.scss +11 -17
  40. package/lib/esm/appui-react/backstage/Backstage.scss +42 -0
  41. package/lib/esm/appui-react/frontstage/ModalFrontstage.scss +11 -17
  42. package/lib/public/locales/en/UiFramework.json +4 -1
  43. package/package.json +7 -7
  44. package/lib/appui-react/backstage/BackstageComposerItem.d.ts +0 -29
  45. package/lib/appui-react/backstage/BackstageComposerItem.d.ts.map +0 -1
  46. package/lib/appui-react/backstage/BackstageComposerItem.js +0 -66
  47. package/lib/appui-react/backstage/BackstageComposerItem.js.map +0 -1
  48. package/lib/appui-react/layout/backstage/Backstage.d.ts +0 -42
  49. package/lib/appui-react/layout/backstage/Backstage.d.ts.map +0 -1
  50. package/lib/appui-react/layout/backstage/Backstage.js +0 -46
  51. package/lib/appui-react/layout/backstage/Backstage.js.map +0 -1
  52. package/lib/appui-react/layout/backstage/Backstage.scss +0 -90
  53. package/lib/appui-react/layout/backstage/Item.d.ts +0 -38
  54. package/lib/appui-react/layout/backstage/Item.d.ts.map +0 -1
  55. package/lib/appui-react/layout/backstage/Item.js +0 -29
  56. package/lib/appui-react/layout/backstage/Item.js.map +0 -1
  57. package/lib/appui-react/layout/backstage/Item.scss +0 -107
  58. package/lib/appui-react/layout/backstage/Separator.d.ts +0 -13
  59. package/lib/appui-react/layout/backstage/Separator.d.ts.map +0 -1
  60. package/lib/appui-react/layout/backstage/Separator.js +0 -21
  61. package/lib/appui-react/layout/backstage/Separator.js.map +0 -1
  62. package/lib/appui-react/layout/backstage/Separator.scss +0 -10
  63. package/lib/cjs/appui-react/layout/backstage/Backstage.scss +0 -90
  64. package/lib/cjs/appui-react/layout/backstage/Item.scss +0 -107
  65. package/lib/cjs/appui-react/layout/backstage/Separator.scss +0 -10
  66. package/lib/esm/appui-react/layout/backstage/Backstage.scss +0 -90
  67. package/lib/esm/appui-react/layout/backstage/Item.scss +0 -107
  68. package/lib/esm/appui-react/layout/backstage/Separator.scss +0 -10
@@ -0,0 +1,42 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ @use "~@itwin/core-react/lib/core-react/z-index" as zIndex;
6
+
7
+ .uifw-backstage-backstage_wrapper {
8
+ @include zIndex.uicore-z-index(backstage);
9
+ }
10
+
11
+ .uifw-backstage-backstage {
12
+ inset-block-end: 0;
13
+ border-radius: 0;
14
+ margin-block-start: 0;
15
+ margin-inline-start: 0;
16
+ }
17
+
18
+ .uifw-backstage-backstage_backdrop {
19
+ &:where(.uifw-transparent) {
20
+ background-color: transparent;
21
+ }
22
+ }
23
+
24
+ .uifw-backstage-backstage_content {
25
+ padding-inline: var(--iui-size-xs);
26
+ }
27
+
28
+ .uifw-backstage-backstage_divider {
29
+ $margin-block: var(--iui-size-2xs);
30
+ $margin-inline: calc(-1 * var(--iui-size-xs));
31
+
32
+ margin-block-start: $margin-block;
33
+ margin-block-end: $margin-block;
34
+ margin-inline-start: $margin-inline;
35
+ margin-inline-end: $margin-inline;
36
+ }
37
+
38
+ .uifw-backstage-backstage_badge {
39
+ position: absolute;
40
+ inset-block-start: 0;
41
+ inset-inline-start: 0;
42
+ }
@@ -13,15 +13,21 @@
13
13
  pointer-events: none;
14
14
  visibility: hidden;
15
15
  overflow: hidden;
16
- background: transparent;
16
+ background: color-mix(
17
+ in srgb,
18
+ var(--iui-color-background-backdrop),
19
+ transparent 5%
20
+ );
17
21
  transition: background 0.25s ease, visibility 0s ease 0.275s;
18
22
 
19
- display: flex;
20
- flex-direction: column;
21
- align-items: stretch;
22
-
23
23
  @include uicore-z-index(modal-frontstage);
24
24
 
25
+ &:not(.uifw-no-header) {
26
+ display: flex;
27
+ flex-direction: column;
28
+ align-items: stretch;
29
+ }
30
+
25
31
  .uifw-modal-app-bar {
26
32
  transition: transform 0.125s;
27
33
  padding: 10px;
@@ -62,15 +68,3 @@
62
68
  }
63
69
  }
64
70
  }
65
-
66
- .uifw-modal-frontstage-overlay {
67
- position: absolute;
68
- left: 0px;
69
- width: 100%;
70
- top: 0px;
71
- height: 100%;
72
- opacity: 0.95;
73
- background: var(--iui-color-background-backdrop);
74
-
75
- @include uicore-z-index(modal-frontstage-overlay);
76
- }
@@ -0,0 +1,42 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ @use "~@itwin/core-react/lib/core-react/z-index" as zIndex;
6
+
7
+ .uifw-backstage-backstage_wrapper {
8
+ @include zIndex.uicore-z-index(backstage);
9
+ }
10
+
11
+ .uifw-backstage-backstage {
12
+ inset-block-end: 0;
13
+ border-radius: 0;
14
+ margin-block-start: 0;
15
+ margin-inline-start: 0;
16
+ }
17
+
18
+ .uifw-backstage-backstage_backdrop {
19
+ &:where(.uifw-transparent) {
20
+ background-color: transparent;
21
+ }
22
+ }
23
+
24
+ .uifw-backstage-backstage_content {
25
+ padding-inline: var(--iui-size-xs);
26
+ }
27
+
28
+ .uifw-backstage-backstage_divider {
29
+ $margin-block: var(--iui-size-2xs);
30
+ $margin-inline: calc(-1 * var(--iui-size-xs));
31
+
32
+ margin-block-start: $margin-block;
33
+ margin-block-end: $margin-block;
34
+ margin-inline-start: $margin-inline;
35
+ margin-inline-end: $margin-inline;
36
+ }
37
+
38
+ .uifw-backstage-backstage_badge {
39
+ position: absolute;
40
+ inset-block-start: 0;
41
+ inset-inline-start: 0;
42
+ }
@@ -13,15 +13,21 @@
13
13
  pointer-events: none;
14
14
  visibility: hidden;
15
15
  overflow: hidden;
16
- background: transparent;
16
+ background: color-mix(
17
+ in srgb,
18
+ var(--iui-color-background-backdrop),
19
+ transparent 5%
20
+ );
17
21
  transition: background 0.25s ease, visibility 0s ease 0.275s;
18
22
 
19
- display: flex;
20
- flex-direction: column;
21
- align-items: stretch;
22
-
23
23
  @include uicore-z-index(modal-frontstage);
24
24
 
25
+ &:not(.uifw-no-header) {
26
+ display: flex;
27
+ flex-direction: column;
28
+ align-items: stretch;
29
+ }
30
+
25
31
  .uifw-modal-app-bar {
26
32
  transition: transform 0.125s;
27
33
  padding: 10px;
@@ -62,15 +68,3 @@
62
68
  }
63
69
  }
64
70
  }
65
-
66
- .uifw-modal-frontstage-overlay {
67
- position: absolute;
68
- left: 0px;
69
- width: 100%;
70
- top: 0px;
71
- height: 100%;
72
- opacity: 0.95;
73
- background: var(--iui-color-background-backdrop);
74
-
75
- @include uicore-z-index(modal-frontstage-overlay);
76
- }
@@ -1,4 +1,7 @@
1
1
  {
2
+ "backstage": {
3
+ "label": "Backstage"
4
+ },
2
5
  "iModelPanelHeader": {
3
6
  "projects": "Projects"
4
7
  },
@@ -124,7 +127,7 @@
124
127
  "yes": "Yes",
125
128
  "no": "No",
126
129
  "clearSelection": "Clear Selection",
127
- "openBackstageMenu": "Open backstage menu"
130
+ "openBackstageMenu": "Open backstage"
128
131
  },
129
132
  "navigationAid": {
130
133
  "sheetsModalFrontstage": "Sheet Views"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/appui-react",
3
- "version": "5.30.1",
3
+ "version": "5.32.0",
4
4
  "description": "A react component library for AppUI framework",
5
5
  "type": "module",
6
6
  "types": "./lib/appui-react.d.ts",
@@ -45,9 +45,9 @@
45
45
  "react-dom": "^18.0.0 || ^19.0.0",
46
46
  "react-redux": "^7.2.2 || ^8.0.0 || ^9.0.0",
47
47
  "redux": "^4.1.0 || ^5.0.0",
48
- "@itwin/components-react": "5.30.1",
49
- "@itwin/core-react": "5.30.1",
50
- "@itwin/imodel-components-react": "5.30.1"
48
+ "@itwin/components-react": "5.32.0",
49
+ "@itwin/core-react": "5.32.0",
50
+ "@itwin/imodel-components-react": "5.32.0"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@itwin/appui-abstract": "^5.8.1",
@@ -89,9 +89,9 @@
89
89
  "typescript": "~5.6.3",
90
90
  "upath": "^2.0.1",
91
91
  "vitest": "^3.2.4",
92
- "@itwin/components-react": "5.30.1",
93
- "@itwin/core-react": "5.30.1",
94
- "@itwin/imodel-components-react": "5.30.1"
92
+ "@itwin/components-react": "5.32.0",
93
+ "@itwin/core-react": "5.32.0",
94
+ "@itwin/imodel-components-react": "5.32.0"
95
95
  },
96
96
  "dependencies": {
97
97
  "@itwin/itwinui-icons-react": "^2.11.0",
@@ -1,29 +0,0 @@
1
- /** @packageDocumentation
2
- * @module Backstage
3
- */
4
- import * as React from "react";
5
- import type { BackstageActionItem, BackstageItem, BackstageStageLauncher } from "./BackstageItem.js";
6
- /** @internal */
7
- export interface BackstageComposerActionItemProps {
8
- readonly item: BackstageActionItem;
9
- }
10
- /** @internal */
11
- export declare function BackstageComposerActionItem({ item, }: BackstageComposerActionItemProps): React.JSX.Element;
12
- /** @internal */
13
- export interface BackstageComposerStageLauncherProps {
14
- readonly item: BackstageStageLauncher;
15
- }
16
- /** @internal */
17
- export declare function BackstageComposerStageLauncher({ item, }: BackstageComposerStageLauncherProps): React.JSX.Element;
18
- /** Props of [[BackstageComposerItem]] component.
19
- * @internal
20
- */
21
- export interface BackstageComposerItemProps {
22
- /** Backstage item to render */
23
- readonly item: BackstageItem;
24
- }
25
- /** Item of [[BackstageComposer]].
26
- * @internal
27
- */
28
- export declare function BackstageComposerItem({ item }: BackstageComposerItemProps): React.JSX.Element;
29
- //# sourceMappingURL=BackstageComposerItem.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BackstageComposerItem.d.ts","sourceRoot":"","sources":["../../../src/appui-react/backstage/BackstageComposerItem.tsx"],"names":[],"mappings":"AAIA;;GAEG;AASH,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,sBAAsB,EAEvB,MAAM,oBAAoB,CAAC;AAK5B,gBAAgB;AAChB,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACpC;AAED,gBAAgB;AAChB,wBAAgB,2BAA2B,CAAC,EAC1C,IAAI,GACL,EAAE,gCAAgC,qBAwBlC;AAED,gBAAgB;AAChB,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,IAAI,EAAE,sBAAsB,CAAC;CACvC;AAED,gBAAgB;AAChB,wBAAgB,8BAA8B,CAAC,EAC7C,IAAI,GACL,EAAE,mCAAmC,qBAiCrC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,+BAA+B;IAC/B,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,IAAI,EAAE,EAAE,0BAA0B,qBAKzE"}
@@ -1,66 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Backstage
7
- */
8
- import { ConditionalBooleanValue, ConditionalStringValue, } from "@itwin/appui-abstract";
9
- import { Logger } from "@itwin/core-bentley";
10
- import { Icon as CoreIcon } from "@itwin/core-react";
11
- import { Badge } from "@itwin/core-react/internal";
12
- import * as React from "react";
13
- import { UiFramework } from "../UiFramework.js";
14
- import { useActiveFrontstageId } from "../frontstage/FrontstageDef.js";
15
- import { BackstageItem as NZ_BackstageItem } from "../layout/backstage/Item.js";
16
- import { isProviderItem } from "../ui-items-provider/isProviderItem.js";
17
- import { isBackstageStageLauncher } from "./BackstageItem.js";
18
- import { useBackstageManager } from "./BackstageManager.js";
19
- import { Icon } from "@itwin/itwinui-react";
20
- /** @internal */
21
- export function BackstageComposerActionItem({ item, }) {
22
- const manager = useBackstageManager();
23
- const handleClick = React.useCallback(() => {
24
- manager.close();
25
- item.execute();
26
- }, [manager, item]);
27
- return (React.createElement(NZ_BackstageItem, { itemId: item.id, providerId: isProviderItem(item) ? item.providerId : undefined, itemPriority: item.itemPriority, groupPriority: item.groupPriority,
28
- // eslint-disable-next-line @typescript-eslint/no-deprecated
29
- icon: React.createElement(ItemIcon, { iconNode: item.iconNode, icon: item.icon }), isActive: ConditionalBooleanValue.getValue(item.isActive), isDisabled: ConditionalBooleanValue.getValue(item.isDisabled), onClick: handleClick, subtitle: ConditionalStringValue.getValue(item.subtitle),
30
- // eslint-disable-next-line @typescript-eslint/no-deprecated
31
- badge: React.createElement(Badge, { type: item.badgeKind || item.badge }) }, ConditionalStringValue.getValue(item.label)));
32
- }
33
- /** @internal */
34
- export function BackstageComposerStageLauncher({ item, }) {
35
- const manager = useBackstageManager();
36
- const handleClick = React.useCallback(() => {
37
- manager.close();
38
- if (!UiFramework.frontstages.hasFrontstage(item.stageId))
39
- return Logger.logError("BackstageComposerStageLauncher", `Frontstage with id '${item.stageId}' not found`);
40
- void UiFramework.frontstages.setActiveFrontstage(item.stageId);
41
- }, [manager, item.stageId]);
42
- const activeFrontstageId = useActiveFrontstageId();
43
- const isActive = ConditionalBooleanValue.getValue(item.isActive ?? item.stageId === activeFrontstageId);
44
- return (React.createElement(NZ_BackstageItem, { itemId: item.id, providerId: isProviderItem(item) ? item.providerId : undefined, itemPriority: item.itemPriority, groupPriority: item.groupPriority,
45
- // eslint-disable-next-line @typescript-eslint/no-deprecated
46
- icon: React.createElement(ItemIcon, { iconNode: item.iconNode, icon: item.icon }), isActive: isActive, isDisabled: ConditionalBooleanValue.getValue(item.isDisabled), onClick: handleClick, subtitle: ConditionalStringValue.getValue(item.subtitle),
47
- // eslint-disable-next-line @typescript-eslint/no-deprecated
48
- badge: React.createElement(Badge, { type: item.badgeKind || item.badge }) }, ConditionalStringValue.getValue(item.label)));
49
- }
50
- /** Item of [[BackstageComposer]].
51
- * @internal
52
- */
53
- export function BackstageComposerItem({ item }) {
54
- if (isBackstageStageLauncher(item)) {
55
- return React.createElement(BackstageComposerStageLauncher, { item: item });
56
- }
57
- return React.createElement(BackstageComposerActionItem, { item: item });
58
- }
59
- function ItemIcon({ icon, iconNode, }) {
60
- if (iconNode) {
61
- return React.createElement(Icon, null, iconNode);
62
- }
63
- // eslint-disable-next-line @typescript-eslint/no-deprecated
64
- return React.createElement(CoreIcon, { iconSpec: icon });
65
- }
66
- //# sourceMappingURL=BackstageComposerItem.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BackstageComposerItem.js","sourceRoot":"","sources":["../../../src/appui-react/backstage/BackstageComposerItem.tsx"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Backstage\n */\n\nimport {\n ConditionalBooleanValue,\n ConditionalStringValue,\n} from \"@itwin/appui-abstract\";\nimport { Logger } from \"@itwin/core-bentley\";\nimport { Icon as CoreIcon } from \"@itwin/core-react\";\nimport { Badge } from \"@itwin/core-react/internal\";\nimport * as React from \"react\";\nimport { UiFramework } from \"../UiFramework.js\";\nimport { useActiveFrontstageId } from \"../frontstage/FrontstageDef.js\";\nimport { BackstageItem as NZ_BackstageItem } from \"../layout/backstage/Item.js\";\nimport { isProviderItem } from \"../ui-items-provider/isProviderItem.js\";\nimport type {\n BackstageActionItem,\n BackstageItem,\n BackstageStageLauncher,\n CommonBackstageItem,\n} from \"./BackstageItem.js\";\nimport { isBackstageStageLauncher } from \"./BackstageItem.js\";\nimport { useBackstageManager } from \"./BackstageManager.js\";\nimport { Icon } from \"@itwin/itwinui-react\";\n\n/** @internal */\nexport interface BackstageComposerActionItemProps {\n readonly item: BackstageActionItem;\n}\n\n/** @internal */\nexport function BackstageComposerActionItem({\n item,\n}: BackstageComposerActionItemProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n item.execute();\n }, [manager, item]);\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n icon={<ItemIcon iconNode={item.iconNode} icon={item.icon} />}\n isActive={ConditionalBooleanValue.getValue(item.isActive)}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n badge={<Badge type={item.badgeKind || item.badge} />}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** @internal */\nexport interface BackstageComposerStageLauncherProps {\n readonly item: BackstageStageLauncher;\n}\n\n/** @internal */\nexport function BackstageComposerStageLauncher({\n item,\n}: BackstageComposerStageLauncherProps) {\n const manager = useBackstageManager();\n const handleClick = React.useCallback(() => {\n manager.close();\n if (!UiFramework.frontstages.hasFrontstage(item.stageId))\n return Logger.logError(\n \"BackstageComposerStageLauncher\",\n `Frontstage with id '${item.stageId}' not found`\n );\n void UiFramework.frontstages.setActiveFrontstage(item.stageId);\n }, [manager, item.stageId]);\n const activeFrontstageId = useActiveFrontstageId();\n const isActive = ConditionalBooleanValue.getValue(\n item.isActive ?? item.stageId === activeFrontstageId\n );\n return (\n <NZ_BackstageItem\n itemId={item.id}\n providerId={isProviderItem(item) ? item.providerId : undefined}\n itemPriority={item.itemPriority}\n groupPriority={item.groupPriority}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n icon={<ItemIcon iconNode={item.iconNode} icon={item.icon} />}\n isActive={isActive}\n isDisabled={ConditionalBooleanValue.getValue(item.isDisabled)}\n onClick={handleClick}\n subtitle={ConditionalStringValue.getValue(item.subtitle)}\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n badge={<Badge type={item.badgeKind || item.badge} />}\n >\n {ConditionalStringValue.getValue(item.label)}\n </NZ_BackstageItem>\n );\n}\n\n/** Props of [[BackstageComposerItem]] component.\n * @internal\n */\nexport interface BackstageComposerItemProps {\n /** Backstage item to render */\n readonly item: BackstageItem;\n}\n\n/** Item of [[BackstageComposer]].\n * @internal\n */\nexport function BackstageComposerItem({ item }: BackstageComposerItemProps) {\n if (isBackstageStageLauncher(item)) {\n return <BackstageComposerStageLauncher item={item} />;\n }\n return <BackstageComposerActionItem item={item} />;\n}\n\nfunction ItemIcon({\n icon,\n iconNode,\n}: {\n icon: CommonBackstageItem[\"icon\"];\n iconNode: CommonBackstageItem[\"iconNode\"];\n}) {\n if (iconNode) {\n return <Icon>{iconNode}</Icon>;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n return <CoreIcon iconSpec={icon} />;\n}\n"]}
@@ -1,42 +0,0 @@
1
- /** @packageDocumentation
2
- * @module Backstage
3
- */
4
- import type { CommonProps } from "@itwin/core-react";
5
- import * as React from "react";
6
- import type { SafeAreaInsets } from "../../safearea/SafeAreaInsets.js";
7
- import "./Backstage.scss";
8
- /** Properties of [[Backstage]] component.
9
- * @internal
10
- */
11
- export interface BackstageProps extends CommonProps {
12
- /** Backstage items and separators. I.e. [[BackstageItem]], [[BackstageSeparator]] */
13
- children?: React.ReactNode;
14
- /** Optional footer content. */
15
- footer?: React.ReactNode;
16
- /** Optional header content. I.e. [[UserProfile]] */
17
- header?: React.ReactNode;
18
- /** Describes if the backstage is open. */
19
- isOpen?: boolean;
20
- /** Function called when backstage is closed. */
21
- onClose?: () => void;
22
- /** Describes respected safe area insets. */
23
- safeAreaInsets?: SafeAreaInsets;
24
- /** Describes if a ghosting overlay is shown. */
25
- showOverlay: boolean;
26
- }
27
- /** Default properties of [[Backstage]] component.
28
- * @internal
29
- */
30
- export type BackstageDefaultProps = Pick<BackstageProps, "showOverlay">;
31
- /** Backstage component of 9-Zone UI app.
32
- * @internal
33
- */
34
- export declare class Backstage extends React.PureComponent<BackstageProps> {
35
- static readonly defaultProps: BackstageDefaultProps;
36
- componentDidMount(): void;
37
- componentWillUnmount(): void;
38
- render(): React.JSX.Element;
39
- private _onClose;
40
- private _onEsc;
41
- }
42
- //# sourceMappingURL=Backstage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Backstage.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/layout/backstage/Backstage.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,kBAAkB,CAAC;AAE1B;;GAEG;AAEH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,qFAAqF;IACrF,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,+BAA+B;IAC/B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,oDAAoD;IACpD,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gDAAgD;IAChD,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;AAExE;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC;IAChE,gBAAuB,YAAY,EAAE,qBAAqB,CAExD;IAEc,iBAAiB,IAAI,IAAI;IAIzB,oBAAoB;IAIpB,MAAM;IAiCtB,OAAO,CAAC,QAAQ,CAEd;IAEF,OAAO,CAAC,MAAM,CAIZ;CACH"}
@@ -1,46 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Backstage
7
- */
8
- import classnames from "classnames";
9
- import * as React from "react";
10
- import { Key } from "ts-key-enum";
11
- import { SafeAreaInsetsHelpers } from "../base/SafeAreaInsets.js";
12
- import "./Backstage.scss";
13
- /** Backstage component of 9-Zone UI app.
14
- * @internal
15
- */
16
- export class Backstage extends React.PureComponent {
17
- static defaultProps = {
18
- showOverlay: true,
19
- };
20
- componentDidMount() {
21
- document.addEventListener("keydown", this._onEsc, false);
22
- }
23
- componentWillUnmount() {
24
- document.removeEventListener("keydown", this._onEsc, false);
25
- }
26
- render() {
27
- const overlayClassName = classnames("nz-backstage-backstage_overlay", this.props.isOpen && "nz-open", this.props.showOverlay && "nz-overlay");
28
- const backstageClassName = classnames("nz-backstage-backstage", this.props.isOpen && "nz-open", this.props.safeAreaInsets &&
29
- SafeAreaInsetsHelpers.getCssClassNames(this.props.safeAreaInsets), this.props.className);
30
- return (React.createElement(React.Fragment, null,
31
- React.createElement("div", { className: overlayClassName, onClick: this._onClose, role: "presentation" }),
32
- React.createElement("div", { className: backstageClassName, style: this.props.style },
33
- this.props.header && (React.createElement("div", { className: "nz-header" }, this.props.header)),
34
- React.createElement("ul", { role: "menu" }, this.props.children),
35
- this.props.footer && (React.createElement("div", { className: "nz-footer" }, this.props.footer)))));
36
- }
37
- _onClose = () => {
38
- this.props.onClose && this.props.onClose();
39
- };
40
- _onEsc = (event) => {
41
- if (this.props.isOpen && event.key === Key.Escape.valueOf()) {
42
- this._onClose();
43
- }
44
- };
45
- }
46
- //# sourceMappingURL=Backstage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Backstage.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/backstage/Backstage.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,kBAAkB,CAAC;AA4B1B;;GAEG;AACH,MAAM,OAAO,SAAU,SAAQ,KAAK,CAAC,aAA6B;IACzD,MAAM,CAAU,YAAY,GAA0B;QAC3D,WAAW,EAAE,IAAI;KAClB,CAAC;IAEc,iBAAiB;QAC/B,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC3D,CAAC;IAEe,oBAAoB;QAClC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAEe,MAAM;QACpB,MAAM,gBAAgB,GAAG,UAAU,CACjC,gCAAgC,EAChC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,EAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,YAAY,CACvC,CAAC;QACF,MAAM,kBAAkB,GAAG,UAAU,CACnC,wBAAwB,EACxB,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,SAAS,EAC9B,IAAI,CAAC,KAAK,CAAC,cAAc;YACvB,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EACnE,IAAI,CAAC,KAAK,CAAC,SAAS,CACrB,CAAC;QACF,OAAO,CACL;YACE,6BACE,SAAS,EAAE,gBAAgB,EAC3B,OAAO,EAAE,IAAI,CAAC,QAAQ,EACtB,IAAI,EAAC,cAAc,GACnB;YACF,6BAAK,SAAS,EAAE,kBAAkB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;gBACxD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CACpB,6BAAK,SAAS,EAAC,WAAW,IAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,CACrD;gBACD,4BAAI,IAAI,EAAC,MAAM,IAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAM;gBACzC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CACpB,6BAAK,SAAS,EAAC,WAAW,IAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAO,CACrD,CACG,CACL,CACJ,CAAC;IACJ,CAAC;IAEO,QAAQ,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAC7C,CAAC,CAAC;IAEM,MAAM,GAAG,CAAC,KAAoB,EAAQ,EAAE;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,CAAC;IACH,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Backstage\n */\n\nimport type { CommonProps } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport { Key } from \"ts-key-enum\";\nimport type { SafeAreaInsets } from \"../../safearea/SafeAreaInsets.js\";\nimport { SafeAreaInsetsHelpers } from \"../base/SafeAreaInsets.js\";\nimport \"./Backstage.scss\";\n\n/** Properties of [[Backstage]] component.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface BackstageProps extends CommonProps {\n /** Backstage items and separators. I.e. [[BackstageItem]], [[BackstageSeparator]] */\n children?: React.ReactNode;\n /** Optional footer content. */\n footer?: React.ReactNode;\n /** Optional header content. I.e. [[UserProfile]] */\n header?: React.ReactNode;\n /** Describes if the backstage is open. */\n isOpen?: boolean;\n /** Function called when backstage is closed. */\n onClose?: () => void;\n /** Describes respected safe area insets. */\n safeAreaInsets?: SafeAreaInsets;\n /** Describes if a ghosting overlay is shown. */\n showOverlay: boolean;\n}\n\n/** Default properties of [[Backstage]] component.\n * @internal\n */\nexport type BackstageDefaultProps = Pick<BackstageProps, \"showOverlay\">;\n\n/** Backstage component of 9-Zone UI app.\n * @internal\n */\nexport class Backstage extends React.PureComponent<BackstageProps> {\n public static readonly defaultProps: BackstageDefaultProps = {\n showOverlay: true,\n };\n\n public override componentDidMount(): void {\n document.addEventListener(\"keydown\", this._onEsc, false);\n }\n\n public override componentWillUnmount() {\n document.removeEventListener(\"keydown\", this._onEsc, false);\n }\n\n public override render() {\n const overlayClassName = classnames(\n \"nz-backstage-backstage_overlay\",\n this.props.isOpen && \"nz-open\",\n this.props.showOverlay && \"nz-overlay\"\n );\n const backstageClassName = classnames(\n \"nz-backstage-backstage\",\n this.props.isOpen && \"nz-open\",\n this.props.safeAreaInsets &&\n SafeAreaInsetsHelpers.getCssClassNames(this.props.safeAreaInsets),\n this.props.className\n );\n return (\n <>\n <div\n className={overlayClassName}\n onClick={this._onClose}\n role=\"presentation\"\n />\n <div className={backstageClassName} style={this.props.style}>\n {this.props.header && (\n <div className=\"nz-header\">{this.props.header}</div>\n )}\n <ul role=\"menu\">{this.props.children}</ul>\n {this.props.footer && (\n <div className=\"nz-footer\">{this.props.footer}</div>\n )}\n </div>\n </>\n );\n }\n\n private _onClose = () => {\n this.props.onClose && this.props.onClose();\n };\n\n private _onEsc = (event: KeyboardEvent): void => {\n if (this.props.isOpen && event.key === Key.Escape.valueOf()) {\n this._onClose();\n }\n };\n}\n"]}
@@ -1,90 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- @use "~@itwin/core-react/lib/core-react/z-index" as *;
6
- @use "~@itwin/core-react/lib/core-react/style/breakpoints" as *;
7
- @use "../prefix" as *;
8
- @use "../safearea" as *;
9
- @use "../scrollbar" as *;
10
- @use "variables" as *;
11
-
12
- .nz-backstage-backstage {
13
- display: flex;
14
- flex-direction: column;
15
- position: absolute;
16
- left: 0;
17
- top: 0;
18
- width: $nz-backstage-width;
19
- height: 100%;
20
- font-size: $nz-backstage-item-font-size;
21
- color: var(--iui-color-text);
22
- background-color: var(--iui-color-background);
23
- border-right: 1px solid var(--iui-color-border);
24
- transform: translateX(-100%);
25
- box-sizing: border-box;
26
-
27
- @include uicore-z-index(backstage);
28
- @include nz-transition(transform 0.25s ease);
29
-
30
- &.nz-open {
31
- @include nz-transform(translateX(0%));
32
- }
33
-
34
- @include for-tablet-landscape-down {
35
- font-size: var(--iui-font-size-1);
36
- }
37
-
38
- @include for-phone-only {
39
- font-size: var(--iui-font-size-0);
40
- }
41
-
42
- > ul {
43
- margin: 0;
44
- padding: 0;
45
- list-style: none;
46
- overflow: auto;
47
-
48
- @include nz-scrollbar;
49
- }
50
-
51
- > .nz-header {
52
- border-bottom: $nz-backstage-header-divider-width solid
53
- var(--iui-color-border-subtle);
54
- }
55
-
56
- > .nz-footer {
57
- margin-top: auto;
58
- }
59
-
60
- &.nz-safe-area-top {
61
- @include nz-safe-area-top;
62
- }
63
-
64
- &.nz-safe-area-bottom {
65
- @include nz-safe-area-bottom;
66
- }
67
- }
68
-
69
- .nz-backstage-backstage_overlay {
70
- position: fixed;
71
- width: 100%;
72
- height: 100%;
73
- top: 0;
74
- left: 0;
75
- overflow: hidden;
76
- opacity: 0;
77
- visibility: hidden;
78
- background: transparent;
79
- @include uicore-z-index(backstage);
80
- @include nz-transition(0.25s ease);
81
-
82
- &.nz-open {
83
- visibility: visible;
84
- opacity: 1;
85
- }
86
-
87
- &.nz-overlay {
88
- background-color: $nz-backstage-overlay-background;
89
- }
90
- }
@@ -1,38 +0,0 @@
1
- /** @packageDocumentation
2
- * @module Backstage
3
- */
4
- import type { CommonProps } from "@itwin/core-react";
5
- import * as React from "react";
6
- import type { SafeAreaInsets } from "../../safearea/SafeAreaInsets.js";
7
- import "./Item.scss";
8
- /** Properties of [[BackstageItem]] component.
9
- * @internal
10
- */
11
- export interface BackstageItemProps extends CommonProps {
12
- /** Backstage item label. */
13
- children?: string;
14
- /** Backstage item icon. */
15
- icon?: React.ReactNode;
16
- /** Describes if the item is active. */
17
- isActive?: boolean;
18
- /** Describes if the item is disabled. */
19
- isDisabled?: boolean;
20
- /** Function called when item is clicked. */
21
- onClick?: () => void;
22
- /** Describes respected safe area insets. */
23
- safeAreaInsets?: SafeAreaInsets;
24
- /** Backstage item subtitle. */
25
- subtitle?: string;
26
- /** A badge to draw. */
27
- badge?: React.ReactNode;
28
- providerId?: string;
29
- itemPriority?: number;
30
- groupPriority?: number;
31
- }
32
- /** Item in the [[Backstage]].
33
- * @internal
34
- */
35
- export declare class BackstageItem extends React.PureComponent<BackstageItemProps> {
36
- render(): React.JSX.Element;
37
- }
38
- //# sourceMappingURL=Item.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Item.d.ts","sourceRoot":"","sources":["../../../../src/appui-react/layout/backstage/Item.tsx"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,aAAa,CAAC;AAErB;;GAEG;AAEH,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,yCAAyC;IACzC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK,CAAC,aAAa,CAAC,kBAAkB,CAAC;IACxD,MAAM;CAgCvB"}
@@ -1,29 +0,0 @@
1
- /*---------------------------------------------------------------------------------------------
2
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
- * See LICENSE.md in the project root for license terms and full copyright notice.
4
- *--------------------------------------------------------------------------------------------*/
5
- /** @packageDocumentation
6
- * @module Backstage
7
- */
8
- import classnames from "classnames";
9
- import * as React from "react";
10
- import { SafeAreaInsetsHelpers } from "../base/SafeAreaInsets.js";
11
- import "./Item.scss";
12
- /** Item in the [[Backstage]].
13
- * @internal
14
- */
15
- export class BackstageItem extends React.PureComponent {
16
- render() {
17
- const className = classnames("nz-backstage-item", this.props.isActive && "nz-active", this.props.isDisabled && "nz-disabled", this.props.safeAreaInsets &&
18
- SafeAreaInsetsHelpers.getCssClassNames(this.props.safeAreaInsets), this.props.className);
19
- return (
20
- // eslint-disable-next-line jsx-a11y/click-events-have-key-events
21
- React.createElement("li", { "data-item-id": this.props.itemId, "data-item-type": "backstage-item", "data-item-group-priority": this.props.groupPriority, "data-item-priority": this.props.itemPriority, "data-item-provider-id": this.props.providerId, className: className, onClick: this.props.onClick, style: this.props.style, role: "menuitem" },
22
- React.createElement("div", { className: "nz-icon" }, this.props.icon),
23
- this.props.badge && React.createElement("div", { className: "nz-badge" }, this.props.badge),
24
- React.createElement("div", null,
25
- React.createElement("span", null, this.props.children),
26
- this.props.subtitle && React.createElement("span", null, this.props.subtitle))));
27
- }
28
- }
29
- //# sourceMappingURL=Item.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Item.js","sourceRoot":"","sources":["../../../../src/appui-react/layout/backstage/Item.tsx"],"names":[],"mappings":"AAAA;;;gGAGgG;AAChG;;GAEG;AAGH,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,aAAa,CAAC;AA6BrB;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK,CAAC,aAAiC;IACxD,MAAM;QACpB,MAAM,SAAS,GAAG,UAAU,CAC1B,mBAAmB,EACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,WAAW,EAClC,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,aAAa,EACtC,IAAI,CAAC,KAAK,CAAC,cAAc;YACvB,qBAAqB,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,EACnE,IAAI,CAAC,KAAK,CAAC,SAAS,CACrB,CAAC;QAEF,OAAO;QACL,iEAAiE;QACjE,4CACgB,IAAI,CAAC,KAAK,CAAC,MAAM,oBAChB,gBAAgB,8BACL,IAAI,CAAC,KAAK,CAAC,aAAa,wBAC9B,IAAI,CAAC,KAAK,CAAC,YAAY,2BACpB,IAAI,CAAC,KAAK,CAAC,UAAU,EAC5C,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAC3B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EACvB,IAAI,EAAC,UAAU;YAEf,6BAAK,SAAS,EAAC,SAAS,IAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO;YAC/C,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,6BAAK,SAAS,EAAC,UAAU,IAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAO;YACvE;gBACE,kCAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAQ;gBACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,kCAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAQ,CACtD,CACH,CACN,CAAC;IACJ,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n * Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n * See LICENSE.md in the project root for license terms and full copyright notice.\n *--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Backstage\n */\n\nimport type { CommonProps } from \"@itwin/core-react\";\nimport classnames from \"classnames\";\nimport * as React from \"react\";\nimport type { SafeAreaInsets } from \"../../safearea/SafeAreaInsets.js\";\nimport { SafeAreaInsetsHelpers } from \"../base/SafeAreaInsets.js\";\nimport \"./Item.scss\";\n\n/** Properties of [[BackstageItem]] component.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/no-deprecated\nexport interface BackstageItemProps extends CommonProps {\n /** Backstage item label. */\n children?: string;\n /** Backstage item icon. */\n icon?: React.ReactNode;\n /** Describes if the item is active. */\n isActive?: boolean;\n /** Describes if the item is disabled. */\n isDisabled?: boolean;\n /** Function called when item is clicked. */\n onClick?: () => void;\n /** Describes respected safe area insets. */\n safeAreaInsets?: SafeAreaInsets;\n /** Backstage item subtitle. */\n subtitle?: string;\n /** A badge to draw. */\n badge?: React.ReactNode;\n\n providerId?: string;\n itemPriority?: number;\n groupPriority?: number;\n}\n\n/** Item in the [[Backstage]].\n * @internal\n */\nexport class BackstageItem extends React.PureComponent<BackstageItemProps> {\n public override render() {\n const className = classnames(\n \"nz-backstage-item\",\n this.props.isActive && \"nz-active\",\n this.props.isDisabled && \"nz-disabled\",\n this.props.safeAreaInsets &&\n SafeAreaInsetsHelpers.getCssClassNames(this.props.safeAreaInsets),\n this.props.className\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/click-events-have-key-events\n <li\n data-item-id={this.props.itemId}\n data-item-type=\"backstage-item\"\n data-item-group-priority={this.props.groupPriority}\n data-item-priority={this.props.itemPriority}\n data-item-provider-id={this.props.providerId}\n className={className}\n onClick={this.props.onClick}\n style={this.props.style}\n role=\"menuitem\"\n >\n <div className=\"nz-icon\">{this.props.icon}</div>\n {this.props.badge && <div className=\"nz-badge\">{this.props.badge}</div>}\n <div>\n <span>{this.props.children}</span>\n {this.props.subtitle && <span>{this.props.subtitle}</span>}\n </div>\n </li>\n );\n }\n}\n"]}