@pega/cosmos-react-core 10.0.0-build.9.1 → 10.0.0-build.9.10

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 (145) hide show
  1. package/lib/components/AIRewrite/AIRewrite.styles.d.ts +32 -12
  2. package/lib/components/AIRewrite/AIRewrite.styles.d.ts.map +1 -1
  3. package/lib/components/AIRewrite/AIRewrite.styles.js +5 -2
  4. package/lib/components/AIRewrite/AIRewrite.styles.js.map +1 -1
  5. package/lib/components/AppShell/AppHeader.d.ts.map +1 -1
  6. package/lib/components/AppShell/AppHeader.js +3 -3
  7. package/lib/components/AppShell/AppHeader.js.map +1 -1
  8. package/lib/components/AppShell/AppShell.d.ts +2 -1
  9. package/lib/components/AppShell/AppShell.d.ts.map +1 -1
  10. package/lib/components/AppShell/AppShell.js +22 -12
  11. package/lib/components/AppShell/AppShell.js.map +1 -1
  12. package/lib/components/AppShell/AppShell.styles.d.ts +3 -2
  13. package/lib/components/AppShell/AppShell.styles.d.ts.map +1 -1
  14. package/lib/components/AppShell/AppShell.styles.js +29 -17
  15. package/lib/components/AppShell/AppShell.styles.js.map +1 -1
  16. package/lib/components/AppShell/AppShell.types.d.ts +23 -2
  17. package/lib/components/AppShell/AppShell.types.d.ts.map +1 -1
  18. package/lib/components/AppShell/AppShell.types.js.map +1 -1
  19. package/lib/components/AppShell/AppShellList.styles.d.ts +1 -1
  20. package/lib/components/AppShell/AppShellList.styles.d.ts.map +1 -1
  21. package/lib/components/AppShell/AppShellList.styles.js +63 -23
  22. package/lib/components/AppShell/AppShellList.styles.js.map +1 -1
  23. package/lib/components/AppShell/Notifications.d.ts +28 -0
  24. package/lib/components/AppShell/Notifications.d.ts.map +1 -0
  25. package/lib/components/AppShell/Notifications.js +145 -0
  26. package/lib/components/AppShell/Notifications.js.map +1 -0
  27. package/lib/components/AppShell/TouchAppShell.d.ts +11 -25
  28. package/lib/components/AppShell/TouchAppShell.d.ts.map +1 -1
  29. package/lib/components/AppShell/TouchAppShell.js +36 -12
  30. package/lib/components/AppShell/TouchAppShell.js.map +1 -1
  31. package/lib/components/AppShell/TouchAppShell.styles.d.ts +202 -1
  32. package/lib/components/AppShell/TouchAppShell.styles.d.ts.map +1 -1
  33. package/lib/components/AppShell/TouchAppShell.styles.js +45 -3
  34. package/lib/components/AppShell/TouchAppShell.styles.js.map +1 -1
  35. package/lib/components/AppShell/index.d.ts +1 -1
  36. package/lib/components/AppShell/index.d.ts.map +1 -1
  37. package/lib/components/AppShell/index.js.map +1 -1
  38. package/lib/components/DateTime/DateTime.types.d.ts +1 -1
  39. package/lib/components/DateTime/DateTime.types.js.map +1 -1
  40. package/lib/components/DateTime/DateTimeDisplay.d.ts +7 -0
  41. package/lib/components/DateTime/DateTimeDisplay.d.ts.map +1 -1
  42. package/lib/components/DateTime/DateTimeDisplay.js +6 -5
  43. package/lib/components/DateTime/DateTimeDisplay.js.map +1 -1
  44. package/lib/components/DateTime/Input/DateTimeInput.d.ts +7 -0
  45. package/lib/components/DateTime/Input/DateTimeInput.d.ts.map +1 -1
  46. package/lib/components/DateTime/Input/DateTimeInput.js +117 -26
  47. package/lib/components/DateTime/Input/DateTimeInput.js.map +1 -1
  48. package/lib/components/DateTime/Input/utils.d.ts +4 -1
  49. package/lib/components/DateTime/Input/utils.d.ts.map +1 -1
  50. package/lib/components/DateTime/Input/utils.js +68 -5
  51. package/lib/components/DateTime/Input/utils.js.map +1 -1
  52. package/lib/components/Dialog/Dialog.types.d.ts +42 -12
  53. package/lib/components/Dialog/Dialog.types.d.ts.map +1 -1
  54. package/lib/components/Dialog/Dialog.types.js.map +1 -1
  55. package/lib/components/Dialog/FormDialog.d.ts.map +1 -1
  56. package/lib/components/Dialog/FormDialog.js +29 -33
  57. package/lib/components/Dialog/FormDialog.js.map +1 -1
  58. package/lib/components/Dialog/FormDialogWrapper.d.ts +5 -0
  59. package/lib/components/Dialog/FormDialogWrapper.d.ts.map +1 -0
  60. package/lib/components/Dialog/FormDialogWrapper.js +13 -0
  61. package/lib/components/Dialog/FormDialogWrapper.js.map +1 -0
  62. package/lib/components/Dialog/TouchDialog.d.ts.map +1 -1
  63. package/lib/components/Dialog/TouchDialog.js +40 -15
  64. package/lib/components/Dialog/TouchDialog.js.map +1 -1
  65. package/lib/components/Dialog/TouchDialog.styles.d.ts +8 -1
  66. package/lib/components/Dialog/TouchDialog.styles.d.ts.map +1 -1
  67. package/lib/components/Dialog/TouchDialog.styles.js +39 -23
  68. package/lib/components/Dialog/TouchDialog.styles.js.map +1 -1
  69. package/lib/components/Dialog/TouchDialog.types.d.ts +19 -6
  70. package/lib/components/Dialog/TouchDialog.types.d.ts.map +1 -1
  71. package/lib/components/Dialog/TouchDialog.types.js.map +1 -1
  72. package/lib/components/Dialog/TouchFormDialog.d.ts +5 -0
  73. package/lib/components/Dialog/TouchFormDialog.d.ts.map +1 -0
  74. package/lib/components/Dialog/TouchFormDialog.js +53 -0
  75. package/lib/components/Dialog/TouchFormDialog.js.map +1 -0
  76. package/lib/components/Dialog/TouchFormDialog.styles.d.ts +7 -0
  77. package/lib/components/Dialog/TouchFormDialog.styles.d.ts.map +1 -0
  78. package/lib/components/Dialog/TouchFormDialog.styles.js +39 -0
  79. package/lib/components/Dialog/TouchFormDialog.styles.js.map +1 -0
  80. package/lib/components/Dialog/index.d.ts +2 -1
  81. package/lib/components/Dialog/index.d.ts.map +1 -1
  82. package/lib/components/Dialog/index.js +2 -1
  83. package/lib/components/Dialog/index.js.map +1 -1
  84. package/lib/components/FieldGroup/FieldGroup.d.ts +1 -1
  85. package/lib/components/FieldGroup/FieldGroup.d.ts.map +1 -1
  86. package/lib/components/FieldGroup/FieldGroup.js +13 -1
  87. package/lib/components/FieldGroup/FieldGroup.js.map +1 -1
  88. package/lib/components/Icon/iconNames.d.ts +1 -1
  89. package/lib/components/Icon/iconNames.d.ts.map +1 -1
  90. package/lib/components/Icon/iconNames.js +2 -0
  91. package/lib/components/Icon/iconNames.js.map +1 -1
  92. package/lib/components/Icon/icons/share-external-solid.icon.d.ts +5 -0
  93. package/lib/components/Icon/icons/share-external-solid.icon.d.ts.map +1 -0
  94. package/lib/components/Icon/icons/share-external-solid.icon.js +7 -0
  95. package/lib/components/Icon/icons/share-external-solid.icon.js.map +1 -0
  96. package/lib/components/Icon/icons/share-external.icon.d.ts +5 -0
  97. package/lib/components/Icon/icons/share-external.icon.d.ts.map +1 -0
  98. package/lib/components/Icon/icons/share-external.icon.js +7 -0
  99. package/lib/components/Icon/icons/share-external.icon.js.map +1 -0
  100. package/lib/components/Icon/streamline-icons/share-external-solid.icon.d.ts +5 -0
  101. package/lib/components/Icon/streamline-icons/share-external-solid.icon.d.ts.map +1 -0
  102. package/lib/components/Icon/streamline-icons/share-external-solid.icon.js +7 -0
  103. package/lib/components/Icon/streamline-icons/share-external-solid.icon.js.map +1 -0
  104. package/lib/components/Icon/streamline-icons/share-external.icon.d.ts +5 -0
  105. package/lib/components/Icon/streamline-icons/share-external.icon.d.ts.map +1 -0
  106. package/lib/components/Icon/streamline-icons/share-external.icon.js +7 -0
  107. package/lib/components/Icon/streamline-icons/share-external.icon.js.map +1 -0
  108. package/lib/components/Icon/streamlineIconNames.d.ts +1 -1
  109. package/lib/components/Icon/streamlineIconNames.d.ts.map +1 -1
  110. package/lib/components/Icon/streamlineIconNames.js +2 -0
  111. package/lib/components/Icon/streamlineIconNames.js.map +1 -1
  112. package/lib/components/InlineEdit/InlineEdit.styles.d.ts +32 -12
  113. package/lib/components/InlineEdit/InlineEdit.styles.d.ts.map +1 -1
  114. package/lib/components/ListToolbar/ListToolbar.d.ts.map +1 -1
  115. package/lib/components/ListToolbar/ListToolbar.js +56 -70
  116. package/lib/components/ListToolbar/ListToolbar.js.map +1 -1
  117. package/lib/components/ListToolbar/ListToolbar.styles.d.ts +820 -57
  118. package/lib/components/ListToolbar/ListToolbar.styles.d.ts.map +1 -1
  119. package/lib/components/ListToolbar/ListToolbar.styles.js +325 -73
  120. package/lib/components/ListToolbar/ListToolbar.styles.js.map +1 -1
  121. package/lib/components/ListToolbar/ListToolbar.types.d.ts +2 -1
  122. package/lib/components/ListToolbar/ListToolbar.types.d.ts.map +1 -1
  123. package/lib/components/ListToolbar/ListToolbar.types.js.map +1 -1
  124. package/lib/components/Modal/DockedModals.d.ts.map +1 -1
  125. package/lib/components/Modal/DockedModals.js +4 -3
  126. package/lib/components/Modal/DockedModals.js.map +1 -1
  127. package/lib/components/Number/NumberInput.d.ts.map +1 -1
  128. package/lib/components/Number/NumberInput.js +6 -2
  129. package/lib/components/Number/NumberInput.js.map +1 -1
  130. package/lib/hooks/useAnimatedText.d.ts.map +1 -1
  131. package/lib/hooks/useAnimatedText.js +12 -1
  132. package/lib/hooks/useAnimatedText.js.map +1 -1
  133. package/lib/hooks/useI18n.d.ts +9 -0
  134. package/lib/hooks/useI18n.d.ts.map +1 -1
  135. package/lib/i18n/default.d.ts +9 -0
  136. package/lib/i18n/default.d.ts.map +1 -1
  137. package/lib/i18n/default.js +11 -0
  138. package/lib/i18n/default.js.map +1 -1
  139. package/lib/i18n/i18n.d.ts +9 -0
  140. package/lib/i18n/i18n.d.ts.map +1 -1
  141. package/lib/theme/themes/orionDarkTheme.json +2 -1
  142. package/lib/theme/themes/orionTheme.json +3 -3
  143. package/lib/theme/themes/virgoDarkTheme.json +2 -1
  144. package/lib/theme/themes/virgoTheme.json +2 -1
  145. package/package.json +1 -1
@@ -1,38 +1,58 @@
1
1
  export declare const StyledAIRewriteDialog: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<(Omit<Omit<import("../Dialog/Dialog.types").BaseDialogProps & {
2
2
  onDismiss?: () => void;
3
- onCancel: import("../Dialog/Dialog.types").FormAction;
4
3
  onSubmit: import("../Dialog/Dialog.types").FormAction;
5
4
  } & {
6
- compact: true;
5
+ compact?: boolean;
7
6
  } & {
8
7
  'aria-label': string;
9
8
  heading?: never;
10
9
  additionalInfo?: never;
11
- } & Omit<import("../..").Attributes<"div">, "compact" | "aria-label" | "onSubmit" | "onCancel" | "heading" | "onDismiss" | keyof import("../Dialog/Dialog.types").BaseDialogProps | "additionalInfo">, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
10
+ } & {
11
+ onAfterClose?: () => void;
12
+ onCancel: import("../Dialog/Dialog.types").FormAction | undefined;
13
+ } & Omit<import("../..").Attributes<"div">, "compact" | "aria-label" | "onSubmit" | "onCancel" | "heading" | "onAfterClose" | "onDismiss" | keyof import("../Dialog/Dialog.types").BaseDialogProps | "additionalInfo">, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
12
14
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
13
15
  }) | (Omit<Omit<import("../Dialog/Dialog.types").BaseDialogProps & {
14
16
  onDismiss?: () => void;
15
- onCancel: import("../Dialog/Dialog.types").FormAction;
16
17
  onSubmit: import("../Dialog/Dialog.types").FormAction;
17
18
  } & {
18
- compact?: false | undefined;
19
+ compact?: boolean;
20
+ } & {
21
+ 'aria-label': string;
22
+ heading?: never;
23
+ additionalInfo?: never;
24
+ } & {
25
+ onAfterClose: () => void;
26
+ onCancel?: import("../Dialog/Dialog.types").FormAction;
27
+ } & Omit<import("../..").Attributes<"div">, "compact" | "aria-label" | "onSubmit" | "onCancel" | "heading" | "onAfterClose" | "onDismiss" | keyof import("../Dialog/Dialog.types").BaseDialogProps | "additionalInfo">, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
28
+ ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
29
+ }) | (Omit<Omit<import("../Dialog/Dialog.types").BaseDialogProps & {
30
+ onDismiss?: () => void;
31
+ onSubmit: import("../Dialog/Dialog.types").FormAction;
32
+ } & {
33
+ compact?: false;
19
34
  } & {
20
35
  heading: string;
21
36
  additionalInfo?: import("../AdditionalInfo").AdditionalInfoProps;
22
37
  'aria-label'?: never;
23
- } & Omit<import("../..").Attributes<"div">, "compact" | "aria-label" | "onSubmit" | "onCancel" | "heading" | "onDismiss" | keyof import("../Dialog/Dialog.types").BaseDialogProps | "additionalInfo">, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
38
+ } & {
39
+ onAfterClose?: () => void;
40
+ onCancel: import("../Dialog/Dialog.types").FormAction | undefined;
41
+ } & Omit<import("../..").Attributes<"div">, "compact" | "aria-label" | "onSubmit" | "onCancel" | "heading" | "onAfterClose" | "onDismiss" | keyof import("../Dialog/Dialog.types").BaseDialogProps | "additionalInfo">, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
24
42
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
25
43
  }) | (Omit<Omit<import("../Dialog/Dialog.types").BaseDialogProps & {
26
44
  onDismiss?: () => void;
27
- onCancel: import("../Dialog/Dialog.types").FormAction;
28
45
  onSubmit: import("../Dialog/Dialog.types").FormAction;
29
46
  } & {
30
- compact?: false | undefined;
47
+ compact?: false;
31
48
  } & {
32
- 'aria-label': string;
33
- heading?: never;
34
- additionalInfo?: never;
35
- } & Omit<import("../..").Attributes<"div">, "compact" | "aria-label" | "onSubmit" | "onCancel" | "heading" | "onDismiss" | keyof import("../Dialog/Dialog.types").BaseDialogProps | "additionalInfo">, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
49
+ heading: string;
50
+ additionalInfo?: import("../AdditionalInfo").AdditionalInfoProps;
51
+ 'aria-label'?: never;
52
+ } & {
53
+ onAfterClose: () => void;
54
+ onCancel?: import("../Dialog/Dialog.types").FormAction;
55
+ } & Omit<import("../..").Attributes<"div">, "compact" | "aria-label" | "onSubmit" | "onCancel" | "heading" | "onAfterClose" | "onDismiss" | keyof import("../Dialog/Dialog.types").BaseDialogProps | "additionalInfo">, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref"> & {
36
56
  ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
37
57
  }), import("styled-components/dist/types").BaseObject>> & string & Omit<import("react").ForwardRefExoticComponent<import("react").PropsWithoutRef<import("../Dialog").FormDialogProps> & import("react").RefAttributes<HTMLDivElement>>, keyof import("react").Component<any, {}, any>>;
38
58
  export declare const StyledFormSection: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
@@ -1 +1 @@
1
- {"version":3,"file":"AIRewrite.styles.d.ts","sourceRoot":"","sources":["../../../src/components/AIRewrite/AIRewrite.styles.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uRAIhC,CAAC;AAIH,eAAO,MAAM,iBAAiB,6NAM5B,CAAC;AAIH,eAAO,MAAM,yBAAyB,6NAIrC,CAAC"}
1
+ {"version":3,"file":"AIRewrite.styles.d.ts","sourceRoot":"","sources":["../../../src/components/AIRewrite/AIRewrite.styles.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uRAMhC,CAAC;AAIH,eAAO,MAAM,iBAAiB,6NAM5B,CAAC;AAIH,eAAO,MAAM,yBAAyB,6NAIrC,CAAC"}
@@ -1,9 +1,12 @@
1
1
  import styled, { css } from 'styled-components';
2
2
  import { defaultThemeProp } from '../../theme';
3
- import FormDialog from '../Dialog/FormDialog';
3
+ import { FormDialog } from '../Dialog';
4
+ import { StyledTouchDialog } from '../Dialog/TouchDialog.styles';
4
5
  export const StyledAIRewriteDialog = styled(FormDialog)(({ theme }) => {
5
6
  return css `
6
- min-width: min(${theme.base['content-width'].xl}, calc(100vw - 2rem));
7
+ &:not(${StyledTouchDialog}) {
8
+ min-width: min(${theme.base['content-width'].xl}, calc(100vw - 2rem));
9
+ }
7
10
  `;
8
11
  });
9
12
  StyledAIRewriteDialog.defaultProps = defaultThemeProp;
@@ -1 +1 @@
1
- {"version":3,"file":"AIRewrite.styles.js","sourceRoot":"","sources":["../../../src/components/AIRewrite/AIRewrite.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,UAAU,MAAM,sBAAsB,CAAC;AAE9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACpE,OAAO,GAAG,CAAA;qBACS,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE;GAChD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,qBAAqB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACxD,OAAO,GAAG,CAAA;kBACM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;qBACvC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;wBACxB,KAAK,CAAC,IAAI,CAAC,OAAO;GACvC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,iBAAiB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIlD,CAAC;AAEF,yBAAyB,CAAC,YAAY,GAAG,gBAAgB,CAAC","sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { defaultThemeProp } from '../../theme';\nimport FormDialog from '../Dialog/FormDialog';\n\nexport const StyledAIRewriteDialog = styled(FormDialog)(({ theme }) => {\n return css`\n min-width: min(${theme.base['content-width'].xl}, calc(100vw - 2rem));\n `;\n});\n\nStyledAIRewriteDialog.defaultProps = defaultThemeProp;\n\nexport const StyledFormSection = styled.div(({ theme }) => {\n return css`\n background: ${theme.base.palette['secondary-background']};\n border-radius: ${theme.base['border-radius']};\n padding: calc(2 * ${theme.base.spacing});\n `;\n});\n\nStyledFormSection.defaultProps = defaultThemeProp;\n\nexport const StyledInstructionsWrapper = styled.div`\n textarea {\n min-height: unset;\n }\n`;\n\nStyledInstructionsWrapper.defaultProps = defaultThemeProp;\n"]}
1
+ {"version":3,"file":"AIRewrite.styles.js","sourceRoot":"","sources":["../../../src/components/AIRewrite/AIRewrite.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACpE,OAAO,GAAG,CAAA;YACA,iBAAiB;uBACN,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,EAAE;;GAElD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,qBAAqB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACxD,OAAO,GAAG,CAAA;kBACM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC;qBACvC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC;wBACxB,KAAK,CAAC,IAAI,CAAC,OAAO;GACvC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,iBAAiB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIlD,CAAC;AAEF,yBAAyB,CAAC,YAAY,GAAG,gBAAgB,CAAC","sourcesContent":["import styled, { css } from 'styled-components';\n\nimport { defaultThemeProp } from '../../theme';\nimport { FormDialog } from '../Dialog';\nimport { StyledTouchDialog } from '../Dialog/TouchDialog.styles';\n\nexport const StyledAIRewriteDialog = styled(FormDialog)(({ theme }) => {\n return css`\n &:not(${StyledTouchDialog}) {\n min-width: min(${theme.base['content-width'].xl}, calc(100vw - 2rem));\n }\n `;\n});\n\nStyledAIRewriteDialog.defaultProps = defaultThemeProp;\n\nexport const StyledFormSection = styled.div(({ theme }) => {\n return css`\n background: ${theme.base.palette['secondary-background']};\n border-radius: ${theme.base['border-radius']};\n padding: calc(2 * ${theme.base.spacing});\n `;\n});\n\nStyledFormSection.defaultProps = defaultThemeProp;\n\nexport const StyledInstructionsWrapper = styled.div`\n textarea {\n min-height: unset;\n }\n`;\n\nStyledInstructionsWrapper.defaultProps = defaultThemeProp;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeader.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,OAAO,CAAC;AAQjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAkBvD,QAAA,MAAM,SAAS,EAAE,iBAAiB,CAAC,cAAc,GAAG,YAAY,CA0N9D,CAAC;AAEH,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"AppHeader.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppHeader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAoB,MAAM,OAAO,CAAC;AAQjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAMhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAkBvD,QAAA,MAAM,SAAS,EAAE,iBAAiB,CAAC,cAAc,GAAG,YAAY,CA4N9D,CAAC;AAEH,eAAe,SAAS,CAAC"}
@@ -11,13 +11,13 @@ import { ThemeOverride } from '../Configuration';
11
11
  import useThemeMode from '../../hooks/useThemeMode';
12
12
  import MenuButton from '../MenuButton';
13
13
  import AppShellOperator from './Operator';
14
+ import AppShellNotifications from './Notifications';
14
15
  import ContextSwitcher from './ContextSwitcher';
15
16
  import { StyledAppHeader, StyledAppHeaderInfo, StyledAppHeaderName, StyledAppHeaderSearchForm, StyledAppHeaderSpacer, StyledAppHeaderText, StyledAppHeaderOperator, StyledAppHeaderLogo } from './AppHeader.styles';
16
- import { StyledShareIcon } from './AppShell.styles';
17
17
  import AppShellContext from './AppShellContext';
18
18
  import { getHeaderTheme } from './style-utils';
19
19
  import ThemeSwitcher from './ThemeSwitcher';
20
- const AppHeader = forwardRef(function AppHeader({ appName, contextSwitcher: { contexts, onContextClick, label: contextSwitcherLabel } = {}, fullImageSrc, imageSrc, imageAltText, href, onClick, portalName, target, appNameHidden, operator, searchInput, searchLabel, searchPage, headerUtils, helpMenu, shareApp, portalSwitcher }, ref) {
20
+ const AppHeader = forwardRef(function AppHeader({ appName, contextSwitcher: { contexts, onContextClick, label: contextSwitcherLabel } = {}, fullImageSrc, imageSrc, imageAltText, href, onClick, portalName, target, appNameHidden, operator, notifications, searchInput, searchLabel, searchPage, headerUtils, helpMenu, shareApp, portalSwitcher }, ref) {
21
21
  const t = useI18n();
22
22
  const isMediumOrAbove = useBreakpoint('md');
23
23
  const isSmallOrAbove = useBreakpoint('sm');
@@ -75,7 +75,7 @@ const AppHeader = forwardRef(function AppHeader({ appName, contextSwitcher: { co
75
75
  setSearchExpanded(false);
76
76
  }) }))) })) : (_jsx(StyledAppHeaderSpacer, {})), !searchTakeover && headerUtils?.[1]] }), !searchTakeover && (_jsxs(_Fragment, { children: [onThemeModeChange && (_jsx(ThemeSwitcher, { themeMode: themeMode, onThemeModeChange: onThemeModeChange })), helpMenu && (_jsx(MenuButton, { variant: 'simple', icon: 'help', text: t('app_header_help'), iconOnly: true, menu: {
77
77
  items: helpMenu
78
- } })), portalSwitcher && _jsx(MenuButton, { ...portalSwitcher }), shareApp && (_jsx(Button, { variant: 'secondary', onClick: shareApp.onClick, children: _jsxs(Flex, { container: { gap: 0.5, alignItems: 'center' }, children: [_jsx(StyledShareIcon, { name: 'share' }), _jsx("span", { children: shareLabel })] }) })), _jsx(AppShellOperator, { as: StyledAppHeaderOperator, actions: operator.actions, popover: { placement: 'bottom-start' }, name: operator.name, children: operator.avatar })] }))] }) }));
78
+ } })), portalSwitcher && _jsx(MenuButton, { ...portalSwitcher }), shareApp && (_jsx(Button, { variant: 'secondary', onClick: shareApp.onClick, children: _jsxs(Flex, { container: { gap: 0.5, alignItems: 'center' }, children: [_jsx(Icon, { name: 'share-external' }), _jsx("span", { children: shareLabel })] }) })), notifications && _jsx(AppShellNotifications, { ...notifications }), _jsx(AppShellOperator, { as: StyledAppHeaderOperator, actions: operator.actions, popover: { placement: 'bottom-start' }, name: operator.name, children: operator.avatar })] }))] }) }));
79
79
  });
80
80
  export default AppHeader;
81
81
  //# sourceMappingURL=AppHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeader.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppHeader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport type { FunctionComponent, Ref, ElementType } from 'react';\n\nimport Flex from '../Flex';\nimport Image from '../Image';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport SearchInput from '../SearchInput';\nimport { useBreakpoint, useElement, useI18n, useTheme } from '../../hooks';\nimport type { ForwardProps } from '../../types';\nimport VisuallyHiddenText from '../VisuallyHiddenText';\nimport { ThemeOverride } from '../Configuration';\nimport useThemeMode from '../../hooks/useThemeMode';\nimport MenuButton from '../MenuButton';\n\nimport type { AppHeaderProps } from './AppShell.types';\nimport AppShellOperator from './Operator';\nimport ContextSwitcher from './ContextSwitcher';\nimport {\n StyledAppHeader,\n StyledAppHeaderInfo,\n StyledAppHeaderName,\n StyledAppHeaderSearchForm,\n StyledAppHeaderSpacer,\n StyledAppHeaderText,\n StyledAppHeaderOperator,\n StyledAppHeaderLogo\n} from './AppHeader.styles';\nimport { StyledShareIcon } from './AppShell.styles';\nimport AppShellContext from './AppShellContext';\nimport { getHeaderTheme } from './style-utils';\nimport ThemeSwitcher from './ThemeSwitcher';\n\nconst AppHeader: FunctionComponent<AppHeaderProps & ForwardProps> = forwardRef(function AppHeader(\n {\n appName,\n contextSwitcher: { contexts, onContextClick, label: contextSwitcherLabel } = {},\n fullImageSrc,\n imageSrc,\n imageAltText,\n href,\n onClick,\n portalName,\n target,\n appNameHidden,\n operator,\n searchInput,\n searchLabel,\n searchPage,\n headerUtils,\n helpMenu,\n shareApp,\n portalSwitcher\n }: AppHeaderProps,\n ref: Ref<Element>\n) {\n const t = useI18n();\n const isMediumOrAbove = useBreakpoint('md');\n const isSmallOrAbove = useBreakpoint('sm');\n const [searchExpanded, setSearchExpanded] = useState(false);\n const [searchContainer, setSearchContainer] = useElement<HTMLElement>();\n const { drawerOpen, isTopBar, setSearchContainerEl } = useContext(AppShellContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const theme = useTheme();\n const headerTheme = useMemo(() => getHeaderTheme(theme), [theme]);\n\n // Below `md` there's no room for the app/portal name side by side, so they stack into two rows.\n const stacked = !isMediumOrAbove;\n const searchCollapsible = !isMediumOrAbove || isTopBar;\n const searchDisplay = (() => {\n if (!searchExpanded) return searchCollapsible ? 'icon' : undefined;\n if (!isSmallOrAbove) return 'fullWidth';\n if (!isMediumOrAbove) return 'grow';\n return undefined;\n })();\n const searchTakeover = searchDisplay === 'fullWidth';\n\n const shareLabel = shareApp?.label ?? t('app_shell_share');\n\n useEffect(() => {\n if (searchPage && searchContainer) {\n setSearchContainerEl(searchContainer);\n } else {\n setSearchContainerEl(null);\n }\n }, [searchPage, searchContainer, setSearchContainerEl]);\n\n // Auto-collapse back to the icon when focus leaves the search area, as long as nothing was typed.\n useEffect(() => {\n if (!searchCollapsible || !searchExpanded || searchInput?.value || !searchContainer)\n return undefined;\n\n const handleFocusOut = (e: FocusEvent) => {\n const nextTarget = e.relatedTarget instanceof Node ? e.relatedTarget : null;\n if (!searchInput?.value && !searchContainer.contains(nextTarget)) setSearchExpanded(false);\n };\n\n searchContainer.addEventListener('focusout', handleFocusOut);\n return () => searchContainer.removeEventListener('focusout', handleFocusOut);\n }, [searchCollapsible, searchExpanded, searchInput?.value, searchContainer]);\n\n const { themeMode, onThemeModeChange } = useThemeMode();\n\n let appInfoAs: ElementType = 'div';\n if (href) appInfoAs = 'a';\n return (\n <ThemeOverride theme={headerTheme}>\n <Flex\n as={StyledAppHeader}\n container={{ alignItems: 'center', pad: 1 }}\n stacked={stacked}\n drawerOpen={drawerOpen}\n ref={ref}\n >\n {!searchTakeover && (\n <>\n {contexts && contexts.length > 1 && onContextClick && (\n <ContextSwitcher\n contexts={contexts}\n onContextClick={onContextClick}\n label={contextSwitcherLabel}\n />\n )}\n\n <Flex\n as={StyledAppHeaderInfo}\n container={{ colGap: 0.5 }}\n item={{ shrink: 1 }}\n centerLogo={!fullImageSrc}\n >\n <Flex\n container={{ inline: true, alignItems: 'center' }}\n item={{ shrink: 1 }}\n as={appInfoAs}\n href={href}\n onClick={href ? onClick : undefined}\n target={target}\n >\n <Flex container={{ alignItems: 'center', gap: 1 }} item={{ shrink: 1 }}>\n {(fullImageSrc || imageSrc) && (\n <Flex\n container={{ alignItems: 'center' }}\n item={{ shrink: 0 }}\n as={StyledAppHeaderLogo}\n >\n <Image\n src={fullImageSrc || imageSrc}\n alt={imageAltText ?? t('application_logo')}\n />\n </Flex>\n )}\n <StyledAppHeaderName stacked={stacked || appNameHidden}>\n <StyledAppHeaderText\n as={appNameHidden ? VisuallyHiddenText : 'span'}\n variant='primary'\n >\n {appName}\n </StyledAppHeaderText>\n {portalName && (\n <StyledAppHeaderText variant='secondary' stacked={stacked || appNameHidden}>\n {portalName}\n </StyledAppHeaderText>\n )}\n </StyledAppHeaderName>\n </Flex>\n </Flex>\n {headerUtils?.[0]}\n </Flex>\n </>\n )}\n\n <Flex item={{ grow: 1 }} container={{ justify: 'end' }}>\n {searchInput ? (\n <StyledAppHeaderSearchForm\n ref={setSearchContainer}\n role='search'\n aria-label={searchLabel}\n onSubmit={e => e.preventDefault()}\n searchDisplay={searchDisplay}\n >\n {!searchPage &&\n (searchDisplay === 'icon' ? (\n <Button\n icon\n variant='simple'\n label={t('search')}\n aria-label={t('expand_search')}\n onClick={() => {\n setSearchExpanded(true);\n setTimeout(() => searchInputRef.current?.focus());\n }}\n >\n <Icon name='search' />\n </Button>\n ) : (\n <SearchInput\n {...searchInput}\n ref={searchInputRef}\n onSearchSubmit={\n searchInput.onSearchSubmit &&\n (value => {\n searchInput.onSearchSubmit?.(value);\n setSearchExpanded(false);\n })\n }\n />\n ))}\n </StyledAppHeaderSearchForm>\n ) : (\n <StyledAppHeaderSpacer />\n )}\n {!searchTakeover && headerUtils?.[1]}\n </Flex>\n {!searchTakeover && (\n <>\n {onThemeModeChange && (\n <ThemeSwitcher themeMode={themeMode} onThemeModeChange={onThemeModeChange} />\n )}\n {helpMenu && (\n <MenuButton\n variant='simple'\n icon='help'\n text={t('app_header_help')}\n iconOnly\n menu={{\n items: helpMenu\n }}\n />\n )}\n {portalSwitcher && <MenuButton {...portalSwitcher} />}\n {shareApp && (\n <Button variant='secondary' onClick={shareApp.onClick}>\n <Flex container={{ gap: 0.5, alignItems: 'center' }}>\n <StyledShareIcon name='share' />\n <span>{shareLabel}</span>\n </Flex>\n </Button>\n )}\n <AppShellOperator\n as={StyledAppHeaderOperator}\n actions={operator.actions}\n popover={{ placement: 'bottom-start' }}\n name={operator.name}\n >\n {operator.avatar}\n </AppShellOperator>\n </>\n )}\n </Flex>\n </ThemeOverride>\n );\n});\n\nexport default AppHeader;\n"]}
1
+ {"version":3,"file":"AppHeader.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppHeader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport type { FunctionComponent, Ref, ElementType } from 'react';\n\nimport Flex from '../Flex';\nimport Image from '../Image';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport SearchInput from '../SearchInput';\nimport { useBreakpoint, useElement, useI18n, useTheme } from '../../hooks';\nimport type { ForwardProps } from '../../types';\nimport VisuallyHiddenText from '../VisuallyHiddenText';\nimport { ThemeOverride } from '../Configuration';\nimport useThemeMode from '../../hooks/useThemeMode';\nimport MenuButton from '../MenuButton';\n\nimport type { AppHeaderProps } from './AppShell.types';\nimport AppShellOperator from './Operator';\nimport AppShellNotifications from './Notifications';\nimport ContextSwitcher from './ContextSwitcher';\nimport {\n StyledAppHeader,\n StyledAppHeaderInfo,\n StyledAppHeaderName,\n StyledAppHeaderSearchForm,\n StyledAppHeaderSpacer,\n StyledAppHeaderText,\n StyledAppHeaderOperator,\n StyledAppHeaderLogo\n} from './AppHeader.styles';\nimport AppShellContext from './AppShellContext';\nimport { getHeaderTheme } from './style-utils';\nimport ThemeSwitcher from './ThemeSwitcher';\n\nconst AppHeader: FunctionComponent<AppHeaderProps & ForwardProps> = forwardRef(function AppHeader(\n {\n appName,\n contextSwitcher: { contexts, onContextClick, label: contextSwitcherLabel } = {},\n fullImageSrc,\n imageSrc,\n imageAltText,\n href,\n onClick,\n portalName,\n target,\n appNameHidden,\n operator,\n notifications,\n searchInput,\n searchLabel,\n searchPage,\n headerUtils,\n helpMenu,\n shareApp,\n portalSwitcher\n }: AppHeaderProps,\n ref: Ref<Element>\n) {\n const t = useI18n();\n const isMediumOrAbove = useBreakpoint('md');\n const isSmallOrAbove = useBreakpoint('sm');\n const [searchExpanded, setSearchExpanded] = useState(false);\n const [searchContainer, setSearchContainer] = useElement<HTMLElement>();\n const { drawerOpen, isTopBar, setSearchContainerEl } = useContext(AppShellContext);\n const searchInputRef = useRef<HTMLInputElement>(null);\n const theme = useTheme();\n const headerTheme = useMemo(() => getHeaderTheme(theme), [theme]);\n\n // Below `md` there's no room for the app/portal name side by side, so they stack into two rows.\n const stacked = !isMediumOrAbove;\n const searchCollapsible = !isMediumOrAbove || isTopBar;\n const searchDisplay = (() => {\n if (!searchExpanded) return searchCollapsible ? 'icon' : undefined;\n if (!isSmallOrAbove) return 'fullWidth';\n if (!isMediumOrAbove) return 'grow';\n return undefined;\n })();\n const searchTakeover = searchDisplay === 'fullWidth';\n\n const shareLabel = shareApp?.label ?? t('app_shell_share');\n\n useEffect(() => {\n if (searchPage && searchContainer) {\n setSearchContainerEl(searchContainer);\n } else {\n setSearchContainerEl(null);\n }\n }, [searchPage, searchContainer, setSearchContainerEl]);\n\n // Auto-collapse back to the icon when focus leaves the search area, as long as nothing was typed.\n useEffect(() => {\n if (!searchCollapsible || !searchExpanded || searchInput?.value || !searchContainer)\n return undefined;\n\n const handleFocusOut = (e: FocusEvent) => {\n const nextTarget = e.relatedTarget instanceof Node ? e.relatedTarget : null;\n if (!searchInput?.value && !searchContainer.contains(nextTarget)) setSearchExpanded(false);\n };\n\n searchContainer.addEventListener('focusout', handleFocusOut);\n return () => searchContainer.removeEventListener('focusout', handleFocusOut);\n }, [searchCollapsible, searchExpanded, searchInput?.value, searchContainer]);\n\n const { themeMode, onThemeModeChange } = useThemeMode();\n\n let appInfoAs: ElementType = 'div';\n if (href) appInfoAs = 'a';\n return (\n <ThemeOverride theme={headerTheme}>\n <Flex\n as={StyledAppHeader}\n container={{ alignItems: 'center', pad: 1 }}\n stacked={stacked}\n drawerOpen={drawerOpen}\n ref={ref}\n >\n {!searchTakeover && (\n <>\n {contexts && contexts.length > 1 && onContextClick && (\n <ContextSwitcher\n contexts={contexts}\n onContextClick={onContextClick}\n label={contextSwitcherLabel}\n />\n )}\n\n <Flex\n as={StyledAppHeaderInfo}\n container={{ colGap: 0.5 }}\n item={{ shrink: 1 }}\n centerLogo={!fullImageSrc}\n >\n <Flex\n container={{ inline: true, alignItems: 'center' }}\n item={{ shrink: 1 }}\n as={appInfoAs}\n href={href}\n onClick={href ? onClick : undefined}\n target={target}\n >\n <Flex container={{ alignItems: 'center', gap: 1 }} item={{ shrink: 1 }}>\n {(fullImageSrc || imageSrc) && (\n <Flex\n container={{ alignItems: 'center' }}\n item={{ shrink: 0 }}\n as={StyledAppHeaderLogo}\n >\n <Image\n src={fullImageSrc || imageSrc}\n alt={imageAltText ?? t('application_logo')}\n />\n </Flex>\n )}\n <StyledAppHeaderName stacked={stacked || appNameHidden}>\n <StyledAppHeaderText\n as={appNameHidden ? VisuallyHiddenText : 'span'}\n variant='primary'\n >\n {appName}\n </StyledAppHeaderText>\n {portalName && (\n <StyledAppHeaderText variant='secondary' stacked={stacked || appNameHidden}>\n {portalName}\n </StyledAppHeaderText>\n )}\n </StyledAppHeaderName>\n </Flex>\n </Flex>\n {headerUtils?.[0]}\n </Flex>\n </>\n )}\n\n <Flex item={{ grow: 1 }} container={{ justify: 'end' }}>\n {searchInput ? (\n <StyledAppHeaderSearchForm\n ref={setSearchContainer}\n role='search'\n aria-label={searchLabel}\n onSubmit={e => e.preventDefault()}\n searchDisplay={searchDisplay}\n >\n {!searchPage &&\n (searchDisplay === 'icon' ? (\n <Button\n icon\n variant='simple'\n label={t('search')}\n aria-label={t('expand_search')}\n onClick={() => {\n setSearchExpanded(true);\n setTimeout(() => searchInputRef.current?.focus());\n }}\n >\n <Icon name='search' />\n </Button>\n ) : (\n <SearchInput\n {...searchInput}\n ref={searchInputRef}\n onSearchSubmit={\n searchInput.onSearchSubmit &&\n (value => {\n searchInput.onSearchSubmit?.(value);\n setSearchExpanded(false);\n })\n }\n />\n ))}\n </StyledAppHeaderSearchForm>\n ) : (\n <StyledAppHeaderSpacer />\n )}\n {!searchTakeover && headerUtils?.[1]}\n </Flex>\n {!searchTakeover && (\n <>\n {onThemeModeChange && (\n <ThemeSwitcher themeMode={themeMode} onThemeModeChange={onThemeModeChange} />\n )}\n {helpMenu && (\n <MenuButton\n variant='simple'\n icon='help'\n text={t('app_header_help')}\n iconOnly\n menu={{\n items: helpMenu\n }}\n />\n )}\n {portalSwitcher && <MenuButton {...portalSwitcher} />}\n {shareApp && (\n <Button variant='secondary' onClick={shareApp.onClick}>\n <Flex container={{ gap: 0.5, alignItems: 'center' }}>\n <Icon name='share-external' />\n <span>{shareLabel}</span>\n </Flex>\n </Button>\n )}\n {notifications && <AppShellNotifications {...notifications} />}\n <AppShellOperator\n as={StyledAppHeaderOperator}\n actions={operator.actions}\n popover={{ placement: 'bottom-start' }}\n name={operator.name}\n >\n {operator.avatar}\n </AppShellOperator>\n </>\n )}\n </Flex>\n </ThemeOverride>\n );\n});\n\nexport default AppHeader;\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { AppShellProps } from './AppShell.types';
2
- declare const AppShellMain: import("react").ForwardRefExoticComponent<AppShellProps & import("react").RefAttributes<HTMLDivElement>>;
2
+ import type { TouchAppShellProps } from './TouchAppShell';
3
+ declare const AppShellMain: import("react").ForwardRefExoticComponent<AppShellProps & Pick<TouchAppShellProps, "bottomTouchPanel"> & import("react").RefAttributes<HTMLDivElement>>;
3
4
  export default AppShellMain;
4
5
  //# sourceMappingURL=AppShell.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"AAiDA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,kBAAkB,CAAC;AAsWrE,QAAA,MAAM,YAAY,0GAuKjB,CAAC;AAEF,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"AppShell.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"AAgDA,OAAO,KAAK,EAAE,aAAa,EAAiB,MAAM,kBAAkB,CAAC;AAQrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAmW1D,QAAA,MAAM,YAAY,yJA6LhB,CAAC;AAEH,eAAe,YAAY,CAAC"}
@@ -11,7 +11,7 @@ import * as caretRightIcon from '../Icon/icons/caret-right.icon';
11
11
  import * as sunIcon from '../Icon/icons/sun.icon';
12
12
  import * as moonIcon from '../Icon/icons/moon.icon';
13
13
  import * as circleMixedLeftIcon from '../Icon/icons/circle-mixed-left.icon';
14
- import * as shareIcon from '../Icon/icons/share.icon';
14
+ import * as shareExternalIcon from '../Icon/icons/share-external.icon';
15
15
  import { useI18n, useBreakpoint, useConsolidatedRef, useElement, useTransitionState, useEvent, useUID, usePreviewManager, useDirection } from '../../hooks';
16
16
  import useThemeMode from '../../hooks/useThemeMode';
17
17
  import { openCloseStates } from '../../hooks/useTransitionState';
@@ -25,7 +25,7 @@ import Tooltip from '../Tooltip';
25
25
  import AppShellContext from './AppShellContext';
26
26
  import AppHeader from './AppHeader';
27
27
  import AppTopNav from './AppTopNav';
28
- import { StyledAppMain, StyledBannerRegion, StyledAppShellToggleButton, StyledAppShellTooltip, StyledSidebarNav, AppShellGlobalStyle, StyledShareIcon } from './AppShell.styles';
28
+ import { StyledAppMain, StyledBannerRegion, StyledAppShellToggleButton, StyledAppShellTooltip, StyledSidebarNav, AppShellGlobalStyle } from './AppShell.styles';
29
29
  import { followingNodes, focusRegion } from './utils';
30
30
  import AppNavigationPanel from './AppNavigationPanel';
31
31
  import NavigationList from './NavigationList';
@@ -33,11 +33,12 @@ import DocumentTabs, { getTabElementId, getTabPanelId } from './DocumentTabs';
33
33
  import { StyledDocumentTabPanel } from './DocumentTabs.styles';
34
34
  import TopNavDrawerProvider from './TopNavDrawerProvider';
35
35
  import TouchAppShell from './TouchAppShell';
36
- registerIcon(timesIcon, plusIcon, caseSolidIcon, barsIcon, caretRightIcon, caretLeftIcon, sunIcon, moonIcon, circleMixedLeftIcon, shareIcon);
36
+ import { useNotificationsPopover } from './Notifications';
37
+ registerIcon(timesIcon, plusIcon, caseSolidIcon, barsIcon, caretRightIcon, caretLeftIcon, sunIcon, moonIcon, circleMixedLeftIcon, shareExternalIcon);
37
38
  registerAction({ id: 'NextRegion', defaultKeyBinding: 'F9' }, { id: 'PrevRegion', defaultKeyBinding: 'Shift+F9' }, { id: 'KeyboardCommands', defaultKeyBinding: 'CommandOrControl+/' });
38
39
  const AppShell = forwardRef(function AppShell(props, ref) {
39
40
  const t = useI18n();
40
- const { appInfo, contextSwitcher, searchInput, appHeader, searchPage, searchLabel = t('sitewide'), caseTypes, links, agent, banners, progress, main, operator, utils, headerUtils, helpMenu, cases, defaultExpanded = false, collapsedHoverMenus = false, shareApp, portalSwitcher, navOrientation = 'side-rail', documentTabs, utilsList, ...restProps } = props;
41
+ const { appInfo, contextSwitcher, searchInput, appHeader, searchPage, searchLabel = t('sitewide'), caseTypes, links, agent, banners, progress, main, operator, notifications, utils, headerUtils, helpMenu, cases, defaultExpanded = false, collapsedHoverMenus = false, shareApp, portalSwitcher, navOrientation = 'side-rail', documentTabs, utilsList, ...restProps } = props;
41
42
  const skipLinks = useMemo(() => [
42
43
  {
43
44
  label: t('go_to_main_content'),
@@ -146,7 +147,7 @@ const AppShell = forwardRef(function AppShell(props, ref) {
146
147
  headerEl,
147
148
  searchContainerEl,
148
149
  previewActive
149
- ]), children: [_jsx(SkipLinks, { items: skipLinks }), showAppHeader && (_jsx(AppHeader, { ...appInfo, contextSwitcher: contextSwitcher, searchInput: searchInput, searchLabel: searchLabel, operator: operator, headerUtils: headerUtils, helpMenu: helpMenu, searchPage: searchPage, shareApp: shareApp, portalSwitcher: portalSwitcher, ref: setHeaderEl })), isTopBar && (_jsx(TopNavDrawerProvider, { children: _jsx(AppTopNav, { appInfo: appInfo, links: links, caseTypes: caseTypes, cases: cases, agent: agent, utils: utils, searchInput: searchInput, searchPage: searchPage, searchLabel: searchLabel }) })), !isTopBar && isSmallOrAbove && (_jsxs(Flex, { ...restProps, container: {
150
+ ]), children: [_jsx(SkipLinks, { items: skipLinks }), showAppHeader && (_jsx(AppHeader, { ...appInfo, contextSwitcher: contextSwitcher, searchInput: searchInput, searchLabel: searchLabel, operator: operator, notifications: notifications, headerUtils: headerUtils, helpMenu: helpMenu, searchPage: searchPage, shareApp: shareApp, portalSwitcher: portalSwitcher, ref: setHeaderEl })), isTopBar && (_jsx(TopNavDrawerProvider, { children: _jsx(AppTopNav, { appInfo: appInfo, links: links, caseTypes: caseTypes, cases: cases, agent: agent, utils: utils, searchInput: searchInput, searchPage: searchPage, searchLabel: searchLabel }) })), !isTopBar && isSmallOrAbove && (_jsxs(Flex, { ...restProps, container: {
150
151
  direction: 'column',
151
152
  justify: 'between'
152
153
  }, id: navId, as: StyledSidebarNav, portalAgent: !!agent, ref: navRef, "data-app-region": true, onFocus: onFocus, "aria-label": t('app_shell_main_navigation_label'), children: [_jsx(AppNavigationPanel, { navState: sidebarNavState, appInfo: !showAppHeader ? appInfo : undefined, searchInput: !showAppHeader ? searchInput : undefined, searchLabel: searchLabel, caseTypes: caseTypes, links: links, cases: cases, utils: utilsList, onClick: () => {
@@ -163,12 +164,13 @@ const AppShell = forwardRef(function AppShell(props, ref) {
163
164
  if (!documentTabs)
164
165
  return mainRegion;
165
166
  return (_jsx(StyledDocumentTabPanel, { role: 'tabpanel', id: documentTabs.currentTabId ? getTabPanelId(documentTabs.currentTabId) : undefined, "aria-labelledby": documentTabs.currentTabId ? getTabElementId(documentTabs.currentTabId) : undefined, tabIndex: 0, children: mainRegion }));
166
- })()] })), _jsx(AppShellGlobalStyle, { isTopBar: isTopBar, showAppHeader: showAppHeader, isMobile: false, hasDocumentTabs: !!documentTabs, navOpen: sidebarNavState === 'open' || sidebarNavState === 'opening' })] }));
167
+ })()] })), _jsx(AppShellGlobalStyle, { isTopBar: isTopBar, showAppHeader: showAppHeader, isTouchDevice: false, isExtraSmallScreen: !isSmallOrAbove, hasDocumentTabs: !!documentTabs, navOpen: sidebarNavState === 'open' || sidebarNavState === 'opening' })] }));
167
168
  });
168
169
  const AppShellMain = forwardRef(function AppShellMain(props, ref) {
169
170
  const t = useI18n();
171
+ const { start } = useDirection();
170
172
  const navId = useUID();
171
- const { appInfo, appHeader, contextSwitcher, searchPage, searchInput, searchLabel = t('sitewide'), caseTypes, links, cases, agent, utils, operator, headerUtils, helpMenu, shareApp, banners, progress, main, documentTabs, navOrientation = 'side-rail', ...restProps } = props;
173
+ const { appInfo, appHeader, contextSwitcher, searchPage, searchInput, searchLabel = t('sitewide'), caseTypes, links, cases, agent, utils, operator, notifications, headerUtils, helpMenu, shareApp, banners, progress, main, bottomTouchPanel, documentTabs, navOrientation = 'side-rail', ...restProps } = props;
172
174
  const isSmallOrAbove = useBreakpoint('sm');
173
175
  const isTopBar = navOrientation === 'top-bar' || !isSmallOrAbove;
174
176
  const showAppHeader = isTouchDevice
@@ -198,7 +200,7 @@ const AppShellMain = forwardRef(function AppShellMain(props, ref) {
198
200
  return {
199
201
  name: shareLabel,
200
202
  primary: shareLabel,
201
- visual: _jsx(StyledShareIcon, { name: 'share' }),
203
+ visual: _jsx(Icon, { name: 'share-external' }),
202
204
  onClick: shareApp.onClick
203
205
  };
204
206
  }
@@ -247,23 +249,31 @@ const AppShellMain = forwardRef(function AppShellMain(props, ref) {
247
249
  };
248
250
  }
249
251
  }, [onThemeModeChange, showAppHeader, t, themeMode]);
252
+ // With the app header shown, `AppHeader` renders its own notifications button and popover.
253
+ const navNotifications = showAppHeader ? undefined : notifications;
254
+ const { toggle: toggleNotificationsPopover, popover: notificationsPopover } = useNotificationsPopover(navNotifications, start);
255
+ const notificationsUtilItem = useMemo(() => {
256
+ if (!navNotifications)
257
+ return;
258
+ const { visual, name, count } = navNotifications;
259
+ return { visual, name, count, onClick: e => toggleNotificationsPopover(e.currentTarget) };
260
+ }, [navNotifications, toggleNotificationsPopover]);
250
261
  const utilsList = useMemo(() => [
251
262
  ...(utils ?? []),
263
+ ...(notificationsUtilItem ? [notificationsUtilItem] : []),
252
264
  ...(contextSwitcherUtilItem ? [contextSwitcherUtilItem] : []),
253
265
  ...(shareApplicationUtilItem ? [shareApplicationUtilItem] : []),
254
266
  ...(operatorInfoUtilItem ? [operatorInfoUtilItem] : []),
255
267
  ...(themeSwitcherUtilItem ? [themeSwitcherUtilItem] : [])
256
268
  ], [
257
269
  contextSwitcherUtilItem,
270
+ notificationsUtilItem,
258
271
  operatorInfoUtilItem,
259
272
  shareApplicationUtilItem,
260
273
  themeSwitcherUtilItem,
261
274
  utils
262
275
  ]);
263
- if (isTouchDevice) {
264
- return (_jsx(TouchAppShell, { appInfo: appInfo, appHeader: appHeader, contextSwitcher: contextSwitcher, searchPage: searchPage, searchInput: searchInput, searchLabel: searchLabel, caseTypes: caseTypes, links: links, cases: cases, agent: agent, utils: utils, utilsList: utilsList, operator: operator, headerUtils: headerUtils, helpMenu: helpMenu, shareApp: shareApp, banners: banners, progress: progress, main: main, documentTabs: documentTabs, navId: navId, restProps: restProps }));
265
- }
266
- return _jsx(AppShell, { ...props, utilsList: utilsList, ref: ref });
276
+ return (_jsxs(_Fragment, { children: [isTouchDevice ? (_jsx(TouchAppShell, { appInfo: appInfo, appHeader: appHeader, contextSwitcher: contextSwitcher, searchPage: searchPage, searchInput: searchInput, searchLabel: searchLabel, caseTypes: caseTypes, links: links, cases: cases, agent: agent, utils: utils, utilsList: utilsList, operator: operator, notifications: notifications, headerUtils: headerUtils, helpMenu: helpMenu, shareApp: shareApp, banners: banners, progress: progress, main: main, bottomTouchPanel: bottomTouchPanel, documentTabs: documentTabs, navId: navId, restProps: restProps })) : (_jsx(AppShell, { ...props, utilsList: utilsList, ref: ref })), notificationsPopover] }));
267
277
  });
268
278
  export default AppShellMain;
269
279
  //# sourceMappingURL=AppShell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useState, useCallback, useMemo, useRef } from 'react';\nimport type { PropsWithoutRef, Ref } from 'react';\n\nimport Flex from '../Flex';\nimport Icon, { registerIcon } from '../Icon';\nimport * as timesIcon from '../Icon/icons/times.icon';\nimport * as plusIcon from '../Icon/icons/plus.icon';\nimport * as caseSolidIcon from '../Icon/icons/case-solid.icon';\nimport * as barsIcon from '../Icon/icons/bars.icon';\nimport * as caretLeftIcon from '../Icon/icons/caret-left.icon';\nimport * as caretRightIcon from '../Icon/icons/caret-right.icon';\nimport * as sunIcon from '../Icon/icons/sun.icon';\nimport * as moonIcon from '../Icon/icons/moon.icon';\nimport * as circleMixedLeftIcon from '../Icon/icons/circle-mixed-left.icon';\nimport * as shareIcon from '../Icon/icons/share.icon';\nimport {\n useI18n,\n useBreakpoint,\n useConsolidatedRef,\n useElement,\n useTransitionState,\n useEvent,\n useUID,\n usePreviewManager,\n useDirection\n} from '../../hooks';\nimport useThemeMode from '../../hooks/useThemeMode';\nimport { openCloseStates } from '../../hooks/useTransitionState';\nimport SkipLinks from '../SkipLinks';\nimport type { SkipLinksProps } from '../SkipLinks';\nimport Progress from '../Progress';\nimport { registerAction } from '../ShortcutManager';\nimport useShortcut from '../../hooks/useShortcut';\nimport { isTouchDevice } from '../../utils';\nimport useKeyboardCommands from '../KeyboardCommands';\nimport Tooltip from '../Tooltip';\n\nimport AppShellContext from './AppShellContext';\nimport AppHeader from './AppHeader';\nimport AppTopNav from './AppTopNav';\nimport {\n StyledAppMain,\n StyledBannerRegion,\n StyledAppShellToggleButton,\n StyledAppShellTooltip,\n StyledSidebarNav,\n AppShellGlobalStyle,\n StyledShareIcon\n} from './AppShell.styles';\nimport type { AppShellProps, UtilItemProps } from './AppShell.types';\nimport { followingNodes, focusRegion } from './utils';\nimport AppNavigationPanel from './AppNavigationPanel';\nimport NavigationList from './NavigationList';\nimport DocumentTabs, { getTabElementId, getTabPanelId } from './DocumentTabs';\nimport { StyledDocumentTabPanel } from './DocumentTabs.styles';\nimport TopNavDrawerProvider from './TopNavDrawerProvider';\nimport TouchAppShell from './TouchAppShell';\n\ninterface DesktopAppShellProps extends AppShellProps {\n utilsList: NonNullable<AppShellProps['utils']>;\n}\n\nregisterIcon(\n timesIcon,\n plusIcon,\n caseSolidIcon,\n barsIcon,\n caretRightIcon,\n caretLeftIcon,\n sunIcon,\n moonIcon,\n circleMixedLeftIcon,\n shareIcon\n);\nregisterAction(\n { id: 'NextRegion', defaultKeyBinding: 'F9' },\n { id: 'PrevRegion', defaultKeyBinding: 'Shift+F9' },\n { id: 'KeyboardCommands', defaultKeyBinding: 'CommandOrControl+/' }\n);\n\nconst AppShell = forwardRef(function AppShell(\n props: PropsWithoutRef<DesktopAppShellProps>,\n ref: Ref<HTMLDivElement>\n) {\n const t = useI18n();\n\n const {\n appInfo,\n contextSwitcher,\n searchInput,\n appHeader,\n searchPage,\n searchLabel = t('sitewide'),\n caseTypes,\n links,\n agent,\n banners,\n progress,\n main,\n operator,\n utils,\n headerUtils,\n helpMenu,\n cases,\n defaultExpanded = false,\n collapsedHoverMenus = false,\n shareApp,\n portalSwitcher,\n navOrientation = 'side-rail',\n documentTabs,\n utilsList,\n ...restProps\n } = props;\n\n const skipLinks: SkipLinksProps['items'] = useMemo(\n () => [\n {\n label: t('go_to_main_content'),\n target: { ariaLabel: t('main_content'), selector: 'main' }\n }\n ],\n [t]\n );\n\n const navRef = useConsolidatedRef(ref);\n const navId = useUID();\n const [expandCollapseEl, setExpandCollapseEl] = useElement<HTMLButtonElement>();\n\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n const { previewActive, setPreviewActive } = usePreviewManager();\n\n const focusedImperatively = useRef(false);\n const [headerEl, setHeaderEl] = useElement<HTMLDivElement>();\n\n const isSmallOrAbove = useBreakpoint('sm');\n const isTopBar = navOrientation === 'top-bar' || !isSmallOrAbove;\n\n const showAppHeader = isTopBar || (!!appHeader && isSmallOrAbove);\n const showMainContent = showAppHeader ? !!headerEl : true;\n\n const openNavTimeoutId = useRef<ReturnType<typeof setTimeout>>();\n const closeNavTimeoutId = useRef<ReturnType<typeof setTimeout>>();\n\n const [searchContainerEl, setSearchContainerEl] = useState<HTMLElement | null>(null);\n\n const openKeyboardCommands = useKeyboardCommands();\n\n const { state: sidebarNavState, set: setSidebarNavState } = useTransitionState({\n ref: navRef,\n property: 'width',\n states: openCloseStates,\n defaultState: defaultExpanded ? 'open' : 'closed'\n });\n\n const openNav = useCallback((delay: number = 0) => {\n if (closeNavTimeoutId.current) clearTimeout(closeNavTimeoutId.current);\n openNavTimeoutId.current = setTimeout(() => {\n setSidebarNavState('open');\n }, delay);\n }, []);\n\n const closeNav = useCallback((delay: number = 0) => {\n if (openNavTimeoutId.current) clearTimeout(openNavTimeoutId.current);\n closeNavTimeoutId.current = setTimeout(() => {\n setSidebarNavState('closed');\n }, delay);\n }, []);\n\n const onFocus = useCallback(() => {\n focusedImperatively.current = false;\n }, []);\n\n const activatedEl = useRef<Element>(document.body);\n useEvent('click', e => {\n activatedEl.current = document.elementFromPoint(e.clientX, e.clientY) ?? document.body;\n });\n\n useShortcut('NextRegion', () => {\n const activeElement =\n document.activeElement && document.activeElement !== document.body\n ? document.activeElement\n : activatedEl.current;\n const regionEls = followingNodes<HTMLElement>(\n document.createNodeIterator(document.body, NodeFilter.SHOW_ELEMENT, node =>\n // safe to treat as Element, as we requested to give us only elements\n (node as Element).hasAttribute('data-app-region') || node === activeElement\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n ),\n activeElement\n );\n // try to focus first visibleregion\n const focusedNode = regionEls.find(node => focusRegion(node));\n if (!focusedNode) (activeElement as HTMLElement).focus();\n });\n\n useShortcut('PrevRegion', () => {\n const activeElement =\n document.activeElement && document.activeElement !== document.body\n ? document.activeElement\n : activatedEl.current;\n const regionEls = followingNodes<HTMLElement>(\n document.createNodeIterator(document.body, NodeFilter.SHOW_ELEMENT, node =>\n // safe to treat as Element, as we requested to give us only elements\n (node as Element).hasAttribute('data-app-region') || node === activeElement\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n ),\n activeElement\n );\n regionEls.reverse();\n\n // removing active element parent from the list to avoid focusing back to the same region\n // but only if element is not region himself - in that case we want to keep its parent on the list\n // as it is different focusable region\n if (regionEls[0].contains(activeElement) && !activeElement.hasAttribute('data-app-region'))\n regionEls.splice(0, 1);\n const focusedNode = regionEls.find(node => focusRegion(node));\n if (!focusedNode) (activeElement as HTMLElement).focus();\n });\n\n useShortcut('KeyboardCommands', () => {\n openKeyboardCommands();\n });\n\n const { start, end } = useDirection();\n\n return (\n <AppShellContext.Provider\n value={useMemo(\n () => ({\n navOpen: sidebarNavState === 'open' || sidebarNavState === 'opening',\n drawerOpen,\n setDrawerOpen,\n collapsedHoverMenus,\n navState: sidebarNavState,\n focusedImperatively,\n headerEl,\n appHeaderEl: headerEl ?? null,\n searchContainerEl,\n setSearchContainerEl,\n isMobileNav: false,\n isTopBar,\n previewActive,\n setPreviewActive\n }),\n [\n sidebarNavState,\n drawerOpen,\n collapsedHoverMenus,\n isTopBar,\n headerEl,\n searchContainerEl,\n previewActive\n ]\n )}\n >\n <SkipLinks items={skipLinks} />\n {showAppHeader && (\n <AppHeader\n {...appInfo}\n contextSwitcher={contextSwitcher}\n searchInput={searchInput}\n searchLabel={searchLabel}\n operator={operator}\n headerUtils={headerUtils}\n helpMenu={helpMenu}\n searchPage={searchPage}\n shareApp={shareApp}\n portalSwitcher={portalSwitcher}\n ref={setHeaderEl}\n />\n )}\n {isTopBar && (\n <TopNavDrawerProvider>\n <AppTopNav\n appInfo={appInfo}\n links={links}\n caseTypes={caseTypes}\n cases={cases}\n agent={agent}\n utils={utils}\n searchInput={searchInput}\n searchPage={searchPage}\n searchLabel={searchLabel}\n />\n </TopNavDrawerProvider>\n )}\n {!isTopBar && isSmallOrAbove && (\n <Flex\n {...restProps}\n container={{\n direction: 'column',\n justify: 'between'\n }}\n id={navId}\n as={StyledSidebarNav}\n portalAgent={!!agent}\n ref={navRef}\n data-app-region\n onFocus={onFocus}\n aria-label={t('app_shell_main_navigation_label')}\n >\n <AppNavigationPanel\n navState={sidebarNavState}\n appInfo={!showAppHeader ? appInfo : undefined}\n searchInput={!showAppHeader ? searchInput : undefined}\n searchLabel={searchLabel}\n caseTypes={caseTypes}\n links={links}\n cases={cases}\n utils={utilsList}\n onClick={() => {\n if (['closing', 'closed'].includes(sidebarNavState)) {\n openNav(0);\n } else {\n closeNav(0);\n }\n }}\n agent={agent}\n />\n <Flex container={{ justify: 'center' }}>\n <StyledAppShellToggleButton\n icon\n ref={setExpandCollapseEl}\n compact\n variant='simple'\n onClick={() => {\n setSidebarNavState(sidebarNavState === 'closed' ? 'open' : 'closed');\n }}\n aria-label={\n sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation')\n }\n aria-expanded={sidebarNavState === 'open' || sidebarNavState === 'opening'}\n aria-controls={navId}\n >\n {['closed', 'closing'].includes(sidebarNavState) ? (\n <Icon name={`arrow-micro-${end}`} />\n ) : (\n <Icon name={`arrow-micro-${start}`} />\n )}\n </StyledAppShellToggleButton>\n\n {['open', 'closed'].includes(sidebarNavState) && (\n <Tooltip\n target={expandCollapseEl}\n placement='right'\n as={StyledAppShellTooltip}\n showDelay='none'\n hideDelay='none'\n >\n {sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation')}\n </Tooltip>\n )}\n </Flex>\n </Flex>\n )}\n {showMainContent && (\n <>\n {documentTabs && <DocumentTabs {...documentTabs} />}\n {(() => {\n const mainRegion = (\n <StyledAppMain\n previewActive={previewActive}\n isTopBar={isTopBar}\n aria-busy={!!progress}\n data-app-region\n >\n <Progress\n visible={!!progress}\n placement='local'\n message={typeof progress === 'string' ? progress : t('loading')}\n />\n {banners && <StyledBannerRegion>{banners}</StyledBannerRegion>}\n {main}\n </StyledAppMain>\n );\n if (!documentTabs) return mainRegion;\n return (\n <StyledDocumentTabPanel\n role='tabpanel'\n id={\n documentTabs.currentTabId ? getTabPanelId(documentTabs.currentTabId) : undefined\n }\n aria-labelledby={\n documentTabs.currentTabId ? getTabElementId(documentTabs.currentTabId) : undefined\n }\n tabIndex={0}\n >\n {mainRegion}\n </StyledDocumentTabPanel>\n );\n })()}\n </>\n )}\n <AppShellGlobalStyle\n isTopBar={isTopBar}\n showAppHeader={showAppHeader}\n isMobile={false}\n hasDocumentTabs={!!documentTabs}\n navOpen={sidebarNavState === 'open' || sidebarNavState === 'opening'}\n />\n </AppShellContext.Provider>\n );\n});\n\nconst AppShellMain = forwardRef<HTMLDivElement, PropsWithoutRef<AppShellProps>>(\n function AppShellMain(props, ref) {\n const t = useI18n();\n const navId = useUID();\n const {\n appInfo,\n appHeader,\n contextSwitcher,\n searchPage,\n searchInput,\n searchLabel = t('sitewide'),\n caseTypes,\n links,\n cases,\n agent,\n utils,\n operator,\n headerUtils,\n helpMenu,\n shareApp,\n banners,\n progress,\n main,\n documentTabs,\n navOrientation = 'side-rail',\n ...restProps\n } = props;\n\n const isSmallOrAbove = useBreakpoint('sm');\n const isTopBar = navOrientation === 'top-bar' || !isSmallOrAbove;\n const showAppHeader = isTouchDevice\n ? isSmallOrAbove\n : isTopBar || (!!appHeader && isSmallOrAbove);\n const { themeMode, onThemeModeChange } = useThemeMode();\n\n const contextSwitcherUtilItem: UtilItemProps | undefined = useMemo(() => {\n const {\n contexts,\n onContextClick,\n label: contextSwitcherLabel = t('switch_to')\n } = contextSwitcher ?? {};\n if (!showAppHeader && contexts && contexts.length > 1 && onContextClick) {\n return {\n name: contextSwitcherLabel,\n primary: contextSwitcherLabel,\n visual: <Icon name='dot-9-solid' />,\n drawerView: (\n <NavigationList\n items={contexts.map(context => ({\n ...context,\n primary: context.primary,\n 'aria-current': !!context.selected,\n visual: context.visual,\n onClick: e => onContextClick(context.id, e)\n }))}\n singleSelect\n />\n )\n };\n }\n }, [contextSwitcher, showAppHeader, t]);\n\n const shareLabel = shareApp?.label ?? t('app_shell_share');\n const shareApplicationUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && shareApp) {\n return {\n name: shareLabel,\n primary: shareLabel,\n visual: <StyledShareIcon name='share' />,\n onClick: shareApp.onClick\n };\n }\n }, [shareApp, shareLabel, showAppHeader]);\n\n const operatorInfoUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && operator) {\n return {\n name: operator.name,\n primary: t('app_shell_user_account'),\n visual: operator.avatar,\n items: operator.actions\n };\n }\n }, [operator, showAppHeader, t]);\n\n const themeSwitcherUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && onThemeModeChange) {\n let currentThemeIcon = 'circle-mixed-left';\n if (themeMode === 'dark') currentThemeIcon = 'moon';\n else if (themeMode === 'light') currentThemeIcon = 'sun';\n\n return {\n name: t('theme_mode'),\n primary: t('theme_mode'),\n visual: <Icon name={currentThemeIcon} />,\n items: [\n {\n id: 'light',\n primary: t('theme_light'),\n visual: <Icon name='sun' />,\n onClick: () => onThemeModeChange('light')\n },\n {\n id: 'dark',\n primary: t('theme_dark'),\n visual: <Icon name='moon' />,\n onClick: () => onThemeModeChange('dark')\n },\n {\n id: 'system',\n primary: t('theme_system'),\n visual: <Icon name='circle-mixed-left' />,\n onClick: () => onThemeModeChange('system')\n }\n ]\n };\n }\n }, [onThemeModeChange, showAppHeader, t, themeMode]);\n\n const utilsList = useMemo<NonNullable<AppShellProps['utils']>>(\n () => [\n ...(utils ?? []),\n ...(contextSwitcherUtilItem ? [contextSwitcherUtilItem] : []),\n ...(shareApplicationUtilItem ? [shareApplicationUtilItem] : []),\n ...(operatorInfoUtilItem ? [operatorInfoUtilItem] : []),\n ...(themeSwitcherUtilItem ? [themeSwitcherUtilItem] : [])\n ],\n [\n contextSwitcherUtilItem,\n operatorInfoUtilItem,\n shareApplicationUtilItem,\n themeSwitcherUtilItem,\n utils\n ]\n );\n\n if (isTouchDevice) {\n return (\n <TouchAppShell\n appInfo={appInfo}\n appHeader={appHeader}\n contextSwitcher={contextSwitcher}\n searchPage={searchPage}\n searchInput={searchInput}\n searchLabel={searchLabel}\n caseTypes={caseTypes}\n links={links}\n cases={cases}\n agent={agent}\n utils={utils}\n utilsList={utilsList}\n operator={operator}\n headerUtils={headerUtils}\n helpMenu={helpMenu}\n shareApp={shareApp}\n banners={banners}\n progress={progress}\n main={main}\n documentTabs={documentTabs}\n navId={navId}\n restProps={restProps}\n />\n );\n }\n\n return <AppShell {...props} utilsList={utilsList} ref={ref} />;\n }\n);\n\nexport default AppShellMain;\n"]}
1
+ {"version":3,"file":"AppShell.js","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useState, useCallback, useMemo, useRef } from 'react';\nimport type { PropsWithoutRef, Ref } from 'react';\n\nimport Flex from '../Flex';\nimport Icon, { registerIcon } from '../Icon';\nimport * as timesIcon from '../Icon/icons/times.icon';\nimport * as plusIcon from '../Icon/icons/plus.icon';\nimport * as caseSolidIcon from '../Icon/icons/case-solid.icon';\nimport * as barsIcon from '../Icon/icons/bars.icon';\nimport * as caretLeftIcon from '../Icon/icons/caret-left.icon';\nimport * as caretRightIcon from '../Icon/icons/caret-right.icon';\nimport * as sunIcon from '../Icon/icons/sun.icon';\nimport * as moonIcon from '../Icon/icons/moon.icon';\nimport * as circleMixedLeftIcon from '../Icon/icons/circle-mixed-left.icon';\nimport * as shareExternalIcon from '../Icon/icons/share-external.icon';\nimport {\n useI18n,\n useBreakpoint,\n useConsolidatedRef,\n useElement,\n useTransitionState,\n useEvent,\n useUID,\n usePreviewManager,\n useDirection\n} from '../../hooks';\nimport useThemeMode from '../../hooks/useThemeMode';\nimport { openCloseStates } from '../../hooks/useTransitionState';\nimport SkipLinks from '../SkipLinks';\nimport type { SkipLinksProps } from '../SkipLinks';\nimport Progress from '../Progress';\nimport { registerAction } from '../ShortcutManager';\nimport useShortcut from '../../hooks/useShortcut';\nimport { isTouchDevice } from '../../utils';\nimport useKeyboardCommands from '../KeyboardCommands';\nimport Tooltip from '../Tooltip';\n\nimport AppShellContext from './AppShellContext';\nimport AppHeader from './AppHeader';\nimport AppTopNav from './AppTopNav';\nimport {\n StyledAppMain,\n StyledBannerRegion,\n StyledAppShellToggleButton,\n StyledAppShellTooltip,\n StyledSidebarNav,\n AppShellGlobalStyle\n} from './AppShell.styles';\nimport type { AppShellProps, UtilItemProps } from './AppShell.types';\nimport { followingNodes, focusRegion } from './utils';\nimport AppNavigationPanel from './AppNavigationPanel';\nimport NavigationList from './NavigationList';\nimport DocumentTabs, { getTabElementId, getTabPanelId } from './DocumentTabs';\nimport { StyledDocumentTabPanel } from './DocumentTabs.styles';\nimport TopNavDrawerProvider from './TopNavDrawerProvider';\nimport TouchAppShell from './TouchAppShell';\nimport type { TouchAppShellProps } from './TouchAppShell';\nimport { useNotificationsPopover } from './Notifications';\n\ninterface DesktopAppShellProps extends AppShellProps {\n utilsList: NonNullable<AppShellProps['utils']>;\n}\n\nregisterIcon(\n timesIcon,\n plusIcon,\n caseSolidIcon,\n barsIcon,\n caretRightIcon,\n caretLeftIcon,\n sunIcon,\n moonIcon,\n circleMixedLeftIcon,\n shareExternalIcon\n);\nregisterAction(\n { id: 'NextRegion', defaultKeyBinding: 'F9' },\n { id: 'PrevRegion', defaultKeyBinding: 'Shift+F9' },\n { id: 'KeyboardCommands', defaultKeyBinding: 'CommandOrControl+/' }\n);\n\nconst AppShell = forwardRef(function AppShell(\n props: PropsWithoutRef<DesktopAppShellProps>,\n ref: Ref<HTMLDivElement>\n) {\n const t = useI18n();\n\n const {\n appInfo,\n contextSwitcher,\n searchInput,\n appHeader,\n searchPage,\n searchLabel = t('sitewide'),\n caseTypes,\n links,\n agent,\n banners,\n progress,\n main,\n operator,\n notifications,\n utils,\n headerUtils,\n helpMenu,\n cases,\n defaultExpanded = false,\n collapsedHoverMenus = false,\n shareApp,\n portalSwitcher,\n navOrientation = 'side-rail',\n documentTabs,\n utilsList,\n ...restProps\n } = props;\n\n const skipLinks: SkipLinksProps['items'] = useMemo(\n () => [\n {\n label: t('go_to_main_content'),\n target: { ariaLabel: t('main_content'), selector: 'main' }\n }\n ],\n [t]\n );\n\n const navRef = useConsolidatedRef(ref);\n const navId = useUID();\n const [expandCollapseEl, setExpandCollapseEl] = useElement<HTMLButtonElement>();\n\n const [drawerOpen, setDrawerOpen] = useState(false);\n\n const { previewActive, setPreviewActive } = usePreviewManager();\n\n const focusedImperatively = useRef(false);\n const [headerEl, setHeaderEl] = useElement<HTMLDivElement>();\n\n const isSmallOrAbove = useBreakpoint('sm');\n const isTopBar = navOrientation === 'top-bar' || !isSmallOrAbove;\n\n const showAppHeader = isTopBar || (!!appHeader && isSmallOrAbove);\n const showMainContent = showAppHeader ? !!headerEl : true;\n\n const openNavTimeoutId = useRef<ReturnType<typeof setTimeout>>();\n const closeNavTimeoutId = useRef<ReturnType<typeof setTimeout>>();\n\n const [searchContainerEl, setSearchContainerEl] = useState<HTMLElement | null>(null);\n\n const openKeyboardCommands = useKeyboardCommands();\n\n const { state: sidebarNavState, set: setSidebarNavState } = useTransitionState({\n ref: navRef,\n property: 'width',\n states: openCloseStates,\n defaultState: defaultExpanded ? 'open' : 'closed'\n });\n\n const openNav = useCallback((delay: number = 0) => {\n if (closeNavTimeoutId.current) clearTimeout(closeNavTimeoutId.current);\n openNavTimeoutId.current = setTimeout(() => {\n setSidebarNavState('open');\n }, delay);\n }, []);\n\n const closeNav = useCallback((delay: number = 0) => {\n if (openNavTimeoutId.current) clearTimeout(openNavTimeoutId.current);\n closeNavTimeoutId.current = setTimeout(() => {\n setSidebarNavState('closed');\n }, delay);\n }, []);\n\n const onFocus = useCallback(() => {\n focusedImperatively.current = false;\n }, []);\n\n const activatedEl = useRef<Element>(document.body);\n useEvent('click', e => {\n activatedEl.current = document.elementFromPoint(e.clientX, e.clientY) ?? document.body;\n });\n\n useShortcut('NextRegion', () => {\n const activeElement =\n document.activeElement && document.activeElement !== document.body\n ? document.activeElement\n : activatedEl.current;\n const regionEls = followingNodes<HTMLElement>(\n document.createNodeIterator(document.body, NodeFilter.SHOW_ELEMENT, node =>\n // safe to treat as Element, as we requested to give us only elements\n (node as Element).hasAttribute('data-app-region') || node === activeElement\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n ),\n activeElement\n );\n // try to focus first visibleregion\n const focusedNode = regionEls.find(node => focusRegion(node));\n if (!focusedNode) (activeElement as HTMLElement).focus();\n });\n\n useShortcut('PrevRegion', () => {\n const activeElement =\n document.activeElement && document.activeElement !== document.body\n ? document.activeElement\n : activatedEl.current;\n const regionEls = followingNodes<HTMLElement>(\n document.createNodeIterator(document.body, NodeFilter.SHOW_ELEMENT, node =>\n // safe to treat as Element, as we requested to give us only elements\n (node as Element).hasAttribute('data-app-region') || node === activeElement\n ? NodeFilter.FILTER_ACCEPT\n : NodeFilter.FILTER_SKIP\n ),\n activeElement\n );\n regionEls.reverse();\n\n // removing active element parent from the list to avoid focusing back to the same region\n // but only if element is not region himself - in that case we want to keep its parent on the list\n // as it is different focusable region\n if (regionEls[0].contains(activeElement) && !activeElement.hasAttribute('data-app-region'))\n regionEls.splice(0, 1);\n const focusedNode = regionEls.find(node => focusRegion(node));\n if (!focusedNode) (activeElement as HTMLElement).focus();\n });\n\n useShortcut('KeyboardCommands', () => {\n openKeyboardCommands();\n });\n\n const { start, end } = useDirection();\n\n return (\n <AppShellContext.Provider\n value={useMemo(\n () => ({\n navOpen: sidebarNavState === 'open' || sidebarNavState === 'opening',\n drawerOpen,\n setDrawerOpen,\n collapsedHoverMenus,\n navState: sidebarNavState,\n focusedImperatively,\n headerEl,\n appHeaderEl: headerEl ?? null,\n searchContainerEl,\n setSearchContainerEl,\n isMobileNav: false,\n isTopBar,\n previewActive,\n setPreviewActive\n }),\n [\n sidebarNavState,\n drawerOpen,\n collapsedHoverMenus,\n isTopBar,\n headerEl,\n searchContainerEl,\n previewActive\n ]\n )}\n >\n <SkipLinks items={skipLinks} />\n {showAppHeader && (\n <AppHeader\n {...appInfo}\n contextSwitcher={contextSwitcher}\n searchInput={searchInput}\n searchLabel={searchLabel}\n operator={operator}\n notifications={notifications}\n headerUtils={headerUtils}\n helpMenu={helpMenu}\n searchPage={searchPage}\n shareApp={shareApp}\n portalSwitcher={portalSwitcher}\n ref={setHeaderEl}\n />\n )}\n {isTopBar && (\n <TopNavDrawerProvider>\n <AppTopNav\n appInfo={appInfo}\n links={links}\n caseTypes={caseTypes}\n cases={cases}\n agent={agent}\n utils={utils}\n searchInput={searchInput}\n searchPage={searchPage}\n searchLabel={searchLabel}\n />\n </TopNavDrawerProvider>\n )}\n {!isTopBar && isSmallOrAbove && (\n <Flex\n {...restProps}\n container={{\n direction: 'column',\n justify: 'between'\n }}\n id={navId}\n as={StyledSidebarNav}\n portalAgent={!!agent}\n ref={navRef}\n data-app-region\n onFocus={onFocus}\n aria-label={t('app_shell_main_navigation_label')}\n >\n <AppNavigationPanel\n navState={sidebarNavState}\n appInfo={!showAppHeader ? appInfo : undefined}\n searchInput={!showAppHeader ? searchInput : undefined}\n searchLabel={searchLabel}\n caseTypes={caseTypes}\n links={links}\n cases={cases}\n utils={utilsList}\n onClick={() => {\n if (['closing', 'closed'].includes(sidebarNavState)) {\n openNav(0);\n } else {\n closeNav(0);\n }\n }}\n agent={agent}\n />\n <Flex container={{ justify: 'center' }}>\n <StyledAppShellToggleButton\n icon\n ref={setExpandCollapseEl}\n compact\n variant='simple'\n onClick={() => {\n setSidebarNavState(sidebarNavState === 'closed' ? 'open' : 'closed');\n }}\n aria-label={\n sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation')\n }\n aria-expanded={sidebarNavState === 'open' || sidebarNavState === 'opening'}\n aria-controls={navId}\n >\n {['closed', 'closing'].includes(sidebarNavState) ? (\n <Icon name={`arrow-micro-${end}`} />\n ) : (\n <Icon name={`arrow-micro-${start}`} />\n )}\n </StyledAppShellToggleButton>\n\n {['open', 'closed'].includes(sidebarNavState) && (\n <Tooltip\n target={expandCollapseEl}\n placement='right'\n as={StyledAppShellTooltip}\n showDelay='none'\n hideDelay='none'\n >\n {sidebarNavState === 'closed' ? t('expand_navigation') : t('collapse_navigation')}\n </Tooltip>\n )}\n </Flex>\n </Flex>\n )}\n {showMainContent && (\n <>\n {documentTabs && <DocumentTabs {...documentTabs} />}\n {(() => {\n const mainRegion = (\n <StyledAppMain\n previewActive={previewActive}\n isTopBar={isTopBar}\n aria-busy={!!progress}\n data-app-region\n >\n <Progress\n visible={!!progress}\n placement='local'\n message={typeof progress === 'string' ? progress : t('loading')}\n />\n {banners && <StyledBannerRegion>{banners}</StyledBannerRegion>}\n {main}\n </StyledAppMain>\n );\n if (!documentTabs) return mainRegion;\n return (\n <StyledDocumentTabPanel\n role='tabpanel'\n id={\n documentTabs.currentTabId ? getTabPanelId(documentTabs.currentTabId) : undefined\n }\n aria-labelledby={\n documentTabs.currentTabId ? getTabElementId(documentTabs.currentTabId) : undefined\n }\n tabIndex={0}\n >\n {mainRegion}\n </StyledDocumentTabPanel>\n );\n })()}\n </>\n )}\n <AppShellGlobalStyle\n isTopBar={isTopBar}\n showAppHeader={showAppHeader}\n isTouchDevice={false}\n isExtraSmallScreen={!isSmallOrAbove}\n hasDocumentTabs={!!documentTabs}\n navOpen={sidebarNavState === 'open' || sidebarNavState === 'opening'}\n />\n </AppShellContext.Provider>\n );\n});\n\nconst AppShellMain = forwardRef<\n HTMLDivElement,\n PropsWithoutRef<AppShellProps & Pick<TouchAppShellProps, 'bottomTouchPanel'>>\n>(function AppShellMain(props, ref) {\n const t = useI18n();\n const { start } = useDirection();\n const navId = useUID();\n const {\n appInfo,\n appHeader,\n contextSwitcher,\n searchPage,\n searchInput,\n searchLabel = t('sitewide'),\n caseTypes,\n links,\n cases,\n agent,\n utils,\n operator,\n notifications,\n headerUtils,\n helpMenu,\n shareApp,\n banners,\n progress,\n main,\n bottomTouchPanel,\n documentTabs,\n navOrientation = 'side-rail',\n ...restProps\n } = props;\n\n const isSmallOrAbove = useBreakpoint('sm');\n const isTopBar = navOrientation === 'top-bar' || !isSmallOrAbove;\n const showAppHeader = isTouchDevice\n ? isSmallOrAbove\n : isTopBar || (!!appHeader && isSmallOrAbove);\n const { themeMode, onThemeModeChange } = useThemeMode();\n\n const contextSwitcherUtilItem: UtilItemProps | undefined = useMemo(() => {\n const {\n contexts,\n onContextClick,\n label: contextSwitcherLabel = t('switch_to')\n } = contextSwitcher ?? {};\n if (!showAppHeader && contexts && contexts.length > 1 && onContextClick) {\n return {\n name: contextSwitcherLabel,\n primary: contextSwitcherLabel,\n visual: <Icon name='dot-9-solid' />,\n drawerView: (\n <NavigationList\n items={contexts.map(context => ({\n ...context,\n primary: context.primary,\n 'aria-current': !!context.selected,\n visual: context.visual,\n onClick: e => onContextClick(context.id, e)\n }))}\n singleSelect\n />\n )\n };\n }\n }, [contextSwitcher, showAppHeader, t]);\n\n const shareLabel = shareApp?.label ?? t('app_shell_share');\n const shareApplicationUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && shareApp) {\n return {\n name: shareLabel,\n primary: shareLabel,\n visual: <Icon name='share-external' />,\n onClick: shareApp.onClick\n };\n }\n }, [shareApp, shareLabel, showAppHeader]);\n\n const operatorInfoUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && operator) {\n return {\n name: operator.name,\n primary: t('app_shell_user_account'),\n visual: operator.avatar,\n items: operator.actions\n };\n }\n }, [operator, showAppHeader, t]);\n\n const themeSwitcherUtilItem: UtilItemProps | undefined = useMemo(() => {\n if (!showAppHeader && onThemeModeChange) {\n let currentThemeIcon = 'circle-mixed-left';\n if (themeMode === 'dark') currentThemeIcon = 'moon';\n else if (themeMode === 'light') currentThemeIcon = 'sun';\n\n return {\n name: t('theme_mode'),\n primary: t('theme_mode'),\n visual: <Icon name={currentThemeIcon} />,\n items: [\n {\n id: 'light',\n primary: t('theme_light'),\n visual: <Icon name='sun' />,\n onClick: () => onThemeModeChange('light')\n },\n {\n id: 'dark',\n primary: t('theme_dark'),\n visual: <Icon name='moon' />,\n onClick: () => onThemeModeChange('dark')\n },\n {\n id: 'system',\n primary: t('theme_system'),\n visual: <Icon name='circle-mixed-left' />,\n onClick: () => onThemeModeChange('system')\n }\n ]\n };\n }\n }, [onThemeModeChange, showAppHeader, t, themeMode]);\n\n // With the app header shown, `AppHeader` renders its own notifications button and popover.\n const navNotifications = showAppHeader ? undefined : notifications;\n const { toggle: toggleNotificationsPopover, popover: notificationsPopover } =\n useNotificationsPopover(navNotifications, start);\n\n const notificationsUtilItem = useMemo<UtilItemProps | undefined>(() => {\n if (!navNotifications) return;\n const { visual, name, count } = navNotifications;\n return { visual, name, count, onClick: e => toggleNotificationsPopover(e.currentTarget) };\n }, [navNotifications, toggleNotificationsPopover]);\n\n const utilsList = useMemo<NonNullable<AppShellProps['utils']>>(\n () => [\n ...(utils ?? []),\n ...(notificationsUtilItem ? [notificationsUtilItem] : []),\n ...(contextSwitcherUtilItem ? [contextSwitcherUtilItem] : []),\n ...(shareApplicationUtilItem ? [shareApplicationUtilItem] : []),\n ...(operatorInfoUtilItem ? [operatorInfoUtilItem] : []),\n ...(themeSwitcherUtilItem ? [themeSwitcherUtilItem] : [])\n ],\n [\n contextSwitcherUtilItem,\n notificationsUtilItem,\n operatorInfoUtilItem,\n shareApplicationUtilItem,\n themeSwitcherUtilItem,\n utils\n ]\n );\n\n return (\n <>\n {isTouchDevice ? (\n <TouchAppShell\n appInfo={appInfo}\n appHeader={appHeader}\n contextSwitcher={contextSwitcher}\n searchPage={searchPage}\n searchInput={searchInput}\n searchLabel={searchLabel}\n caseTypes={caseTypes}\n links={links}\n cases={cases}\n agent={agent}\n utils={utils}\n utilsList={utilsList}\n operator={operator}\n notifications={notifications}\n headerUtils={headerUtils}\n helpMenu={helpMenu}\n shareApp={shareApp}\n banners={banners}\n progress={progress}\n main={main}\n bottomTouchPanel={bottomTouchPanel}\n documentTabs={documentTabs}\n navId={navId}\n restProps={restProps}\n />\n ) : (\n <AppShell {...props} utilsList={utilsList} ref={ref} />\n )}\n {notificationsPopover}\n </>\n );\n});\n\nexport default AppShellMain;\n"]}
@@ -7,7 +7,8 @@ export declare const topNavHeight = "3rem";
7
7
  export declare const AppShellGlobalStyle: import("react").NamedExoticComponent<import("styled-components").ExecutionProps & {
8
8
  isTopBar?: boolean;
9
9
  showAppHeader?: boolean;
10
- isMobile?: boolean;
10
+ isTouchDevice?: boolean;
11
+ isExtraSmallScreen?: boolean;
11
12
  hasDocumentTabs?: boolean;
12
13
  navOpen?: boolean;
13
14
  theme?: DefaultTheme;
@@ -236,6 +237,7 @@ export declare const StyledLoading: import("styled-components/dist/types").IStyl
236
237
  export declare const StyledAppMain: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLElement>, HTMLElement>, {
237
238
  previewActive: boolean;
238
239
  isTopBar?: boolean;
240
+ hasBottomTouchPanel?: boolean;
239
241
  }>> & string;
240
242
  export declare const StyledBannerRegion: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
241
243
  export declare const StyledAppShellTooltip: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>, "ref"> & {
@@ -246,5 +248,4 @@ export declare const StyledAppShellToggleButton: import("styled-components/dist/
246
248
  }, never>> & string & Omit<import("../..").ForwardRefForwardPropsComponent<import("../Button").ButtonProps>, keyof import("react").Component<any, {}, any>>;
247
249
  export declare const StyledNavAgentIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
248
250
  export declare const StyledAIAssistant: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
249
- export declare const StyledShareIcon: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("../Icon").IconProps & import("styled-components/dist/types").BaseObject, import("styled-components/dist/types").BaseObject>> & string & Omit<import("react").ForwardRefExoticComponent<import("../Icon").IconProps>, keyof import("react").Component<any, {}, any>>;
250
251
  //# sourceMappingURL=AppShell.styles.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AppShell.styles.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.styles.ts"],"names":[],"mappings":"AAAA,OAAe,EAA0B,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAgCtF,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,YAAY,SAAS,CAAC;AAInC,eAAO,MAAM,mBAAmB;eACnB,OAAO;oBACF,OAAO;eACZ,OAAO;sBACA,OAAO;cACf,OAAO;YACT,YAAY;EAuCrB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,YAAY,WAQhD,CAAC;AAEJ,eAAO,MAAM,aAAa,yOA8CxB,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oMAW3B,CAAC;AAIH,eAAO,MAAM,oBAAoB;cAA0B,OAAO;YAkBhE,CAAC;AAIH,eAAO,MAAM,eAAe;;;;iDAK3B,CAAC;AAIF,eAAO,MAAM,yBAAyB,+NAOpC,CAAC;AAIH,eAAO,MAAM,+BAA+B,kYAAiB,CAAC;AAE9D,eAAO,MAAM,+BAA+B,kYAoB1C,CAAC;AAIH,eAAO,MAAM,mBAAmB,+NAE/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,+NAgB/B,CAAC;AAIH,eAAO,MAAM,YAAY,uNAiCvB,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;kBACb,OAAO;YAqCrB,CAAC;AAIH,eAAO,MAAM,eAAe,yOAAkB,CAAC;AAE/C,eAAO,MAAM,gCAAgC;eAChC,OAAO;aACT,OAAO;YAqCjB,CAAC;AAIF,eAAO,MAAM,iBAAiB;yBACP,OAAO;kBACd,OAAO;YA0MrB,CAAC;AAIH,eAAO,MAAM,aAAa,iOAexB,CAAC;AAGH,eAAO,MAAM,kBAAkB,6NAQ7B,CAAC;AAIH,eAAO,MAAM,mBAAmB;;mBAiE9B,CAAC;AAIH,eAAO,MAAM,eAAe,6NA2B1B,CAAC;AAIH,eAAO,MAAM,WAAW,6NAUtB,CAAC;AAIH,eAAO,MAAM,aAAa,6NAEzB,CAAC;AAEF,eAAO,MAAM,aAAa;mBACT,OAAO;eACX,OAAO;YA4DlB,CAAC;AAIH,eAAO,MAAM,kBAAkB,6NAI7B,CAAC;AAIH,eAAO,MAAM,qBAAqB;;mBA2BhC,CAAC;AAIH,eAAO,MAAM,0BAA0B;;2JAkCrC,CAAC;AAIH,eAAO,MAAM,kBAAkB,6NAU9B,CAAC;AAIF,eAAO,MAAM,iBAAiB,6NAyG5B,CAAC;AAIH,eAAO,MAAM,eAAe,kYAE3B,CAAC"}
1
+ {"version":3,"file":"AppShell.styles.d.ts","sourceRoot":"","sources":["../../../src/components/AppShell/AppShell.styles.ts"],"names":[],"mappings":"AAAA,OAAe,EAA0B,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAgCtF,eAAO,MAAM,QAAQ,SAAS,CAAC;AAC/B,eAAO,MAAM,YAAY,aAAa,CAAC;AACvC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C,eAAO,MAAM,YAAY,SAAS,CAAC;AAInC,eAAO,MAAM,mBAAmB;eACnB,OAAO;oBACF,OAAO;oBACP,OAAO;yBACF,OAAO;sBACV,OAAO;cACf,OAAO;YACT,YAAY;EAgCrB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,YAAY,WAQhD,CAAC;AAEJ,eAAO,MAAM,aAAa,yOA8CxB,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oMAW3B,CAAC;AAIH,eAAO,MAAM,oBAAoB;cAA0B,OAAO;YAkBhE,CAAC;AAIH,eAAO,MAAM,eAAe;;;;iDAK3B,CAAC;AAIF,eAAO,MAAM,yBAAyB,+NAOpC,CAAC;AAIH,eAAO,MAAM,+BAA+B,kYAAiB,CAAC;AAE9D,eAAO,MAAM,+BAA+B,kYAoB1C,CAAC;AAIH,eAAO,MAAM,mBAAmB,+NAE/B,CAAC;AAEF,eAAO,MAAM,oBAAoB,+NAgB/B,CAAC;AAIH,eAAO,MAAM,YAAY,uNAiCvB,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;kBACb,OAAO;YAqCrB,CAAC;AAIH,eAAO,MAAM,eAAe,yOAAkB,CAAC;AAE/C,eAAO,MAAM,gCAAgC;eAChC,OAAO;aACT,OAAO;YAqCjB,CAAC;AAIF,eAAO,MAAM,iBAAiB;yBACP,OAAO;kBACd,OAAO;YA0MrB,CAAC;AAIH,eAAO,MAAM,aAAa,iOAexB,CAAC;AAGH,eAAO,MAAM,kBAAkB,6NAQ7B,CAAC;AAIH,eAAO,MAAM,mBAAmB;;mBAiE9B,CAAC;AAIH,eAAO,MAAM,eAAe,6NA2B1B,CAAC;AAIH,eAAO,MAAM,WAAW,6NAUtB,CAAC;AAIH,eAAO,MAAM,aAAa,6NAEzB,CAAC;AAEF,eAAO,MAAM,aAAa;mBACT,OAAO;eACX,OAAO;0BACI,OAAO;YAmF7B,CAAC;AAIH,eAAO,MAAM,kBAAkB,6NAI7B,CAAC;AAIH,eAAO,MAAM,qBAAqB;;mBA2BhC,CAAC;AAIH,eAAO,MAAM,0BAA0B;;2JAkCrC,CAAC;AAIH,eAAO,MAAM,kBAAkB,6NAU9B,CAAC;AAIF,eAAO,MAAM,iBAAiB,6NA0G5B,CAAC"}