@interopio/home-ui-react 1.0.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 (127) hide show
  1. package/README.md +312 -0
  2. package/assets/fonts/nunito-regular-webfont.woff +0 -0
  3. package/assets/fonts/nunito-regular-webfont.woff2 +0 -0
  4. package/assets/fonts/nunito-semibold-webfont.woff +0 -0
  5. package/assets/fonts/nunito-semibold-webfont.woff2 +0 -0
  6. package/assets/glue-logo.json +5 -0
  7. package/common/types.d.ts +2 -0
  8. package/constants/contextMenuActions.d.ts +15 -0
  9. package/constants/defaults.d.ts +2 -0
  10. package/constants/itemTypes.d.ts +5 -0
  11. package/constants/modifierKeys.d.ts +4 -0
  12. package/constants/storageKeys.d.ts +3 -0
  13. package/decoders/base.d.ts +2 -0
  14. package/decoders/context-menu.d.ts +3 -0
  15. package/decoders/favorites.d.ts +3 -0
  16. package/decoders/layouts.d.ts +3 -0
  17. package/executors/applicationActions.d.ts +6 -0
  18. package/executors/workspaceActions.d.ts +5 -0
  19. package/helpers/a11y.d.ts +39 -0
  20. package/helpers/date.d.ts +1 -0
  21. package/helpers/string.d.ts +1 -0
  22. package/hooks/index.d.ts +15 -0
  23. package/hooks/useApplications.d.ts +2 -0
  24. package/hooks/useApplicationsInstances.d.ts +3 -0
  25. package/hooks/useExecuteApplicationAction.d.ts +2 -0
  26. package/hooks/useExecuteWorkspaceAction.d.ts +2 -0
  27. package/hooks/useFavoriteEntities.d.ts +6 -0
  28. package/hooks/useFrame.d.ts +2 -0
  29. package/hooks/useInvokeInteropMethod.d.ts +2 -0
  30. package/hooks/usePressedKeys.d.ts +1 -0
  31. package/hooks/useRestoreWorkspace.d.ts +2 -0
  32. package/hooks/useSearch.d.ts +5 -0
  33. package/hooks/useStartApplication.d.ts +1 -0
  34. package/hooks/useStorage.d.ts +4 -0
  35. package/hooks/useUA.d.ts +2 -0
  36. package/hooks/useWorkspaces.d.ts +2 -0
  37. package/hooks/useWorkspacesInstances.d.ts +3 -0
  38. package/images/initial-setup.gif +0 -0
  39. package/images/manual-permissions.gif +0 -0
  40. package/images/using-home.gif +0 -0
  41. package/index.css +1 -0
  42. package/index.d.ts +33 -0
  43. package/index.js +43 -0
  44. package/index.js.map +1 -0
  45. package/index.mjs +7092 -0
  46. package/index.mjs.map +1 -0
  47. package/lib/applications-section/applications-section.d.ts +3 -0
  48. package/lib/applications-section/applications-section.helpers.d.ts +5 -0
  49. package/lib/base-section/base-section-header.d.ts +8 -0
  50. package/lib/base-section/base-section-item.d.ts +13 -0
  51. package/lib/base-section/base-section.d.ts +15 -0
  52. package/lib/base-section/base-section.helpers.d.ts +2 -0
  53. package/lib/base-section/base-section.types.d.ts +19 -0
  54. package/lib/button/button.d.ts +7 -0
  55. package/lib/button-group/button-group.d.ts +8 -0
  56. package/lib/context-menu/context-menu-types.d.ts +9 -0
  57. package/lib/context-menu/context-menu.d.ts +10 -0
  58. package/lib/context-menu/dropdown-button/dropdown-button.d.ts +12 -0
  59. package/lib/favorites-section/favorites-section.d.ts +3 -0
  60. package/lib/favorites-section/favorites-section.helpers.d.ts +3 -0
  61. package/lib/glue42-home-provider/constants.d.ts +1 -0
  62. package/lib/glue42-home-provider/glue42-home-provider.d.ts +15 -0
  63. package/lib/glue42-home-provider/helpers.d.ts +2 -0
  64. package/lib/glue42-home-provider/types.d.ts +4 -0
  65. package/lib/icon/icon.d.ts +9 -0
  66. package/lib/icon-components/browser-notifications-icon.d.ts +3 -0
  67. package/lib/icon-components/index.d.ts +4 -0
  68. package/lib/icon-components/reopen-prompt-icon.d.ts +3 -0
  69. package/lib/icon-components/warning-icon.d.ts +3 -0
  70. package/lib/icon-components/window-placement-icon.d.ts +3 -0
  71. package/lib/img-icon/img-icon.d.ts +8 -0
  72. package/lib/launchpad/features/profile-settings/profile-settings.d.ts +9 -0
  73. package/lib/launchpad/features/profile-settings/user-profile-modal.d.ts +10 -0
  74. package/lib/launchpad/launchpad.context.d.ts +12 -0
  75. package/lib/launchpad/launchpad.d.ts +14 -0
  76. package/lib/layout-settings/constants.d.ts +2 -0
  77. package/lib/layout-settings/index.d.ts +2 -0
  78. package/lib/layout-settings/layout-actions.d.ts +8 -0
  79. package/lib/layout-settings/layout-item.d.ts +9 -0
  80. package/lib/layout-settings/layout-notification.d.ts +7 -0
  81. package/lib/layout-settings/layout-settings-container.d.ts +3 -0
  82. package/lib/layout-settings/layout-settings.d.ts +12 -0
  83. package/lib/layout-settings/layout-startup.d.ts +2 -0
  84. package/lib/layout-settings/layout-types.d.ts +30 -0
  85. package/lib/login/constants.d.ts +1 -0
  86. package/lib/login/index.d.ts +3 -0
  87. package/lib/login/login-auth0.d.ts +6 -0
  88. package/lib/login/login-form.d.ts +11 -0
  89. package/lib/login/login-heading.d.ts +6 -0
  90. package/lib/login/login-loader.d.ts +3 -0
  91. package/lib/login/login-logo.d.ts +7 -0
  92. package/lib/login/login.d.ts +8 -0
  93. package/lib/login/reducers.d.ts +3 -0
  94. package/lib/login/types.d.ts +16 -0
  95. package/lib/modal/modal.d.ts +9 -0
  96. package/lib/notifications-panel/index.d.ts +1 -0
  97. package/lib/notifications-panel/notification-toast.d.ts +17 -0
  98. package/lib/notifications-panel/notifications-modal.d.ts +4 -0
  99. package/lib/notifications-panel/notifications-panel.d.ts +3 -0
  100. package/lib/notifications-panel/useNotificationsSort.d.ts +13 -0
  101. package/lib/panels/launchpad-slide-panel.d.ts +12 -0
  102. package/lib/panels/slide-panel.d.ts +9 -0
  103. package/lib/permissions-setup/constants.d.ts +5 -0
  104. package/lib/permissions-setup/permissions-card.d.ts +10 -0
  105. package/lib/permissions-setup/permissions-list.d.ts +8 -0
  106. package/lib/permissions-setup/permissions-setup-flow.d.ts +8 -0
  107. package/lib/permissions-setup/permissions-setup.d.ts +13 -0
  108. package/lib/permissions-setup/permissions-steps.d.ts +8 -0
  109. package/lib/permissions-setup/something-went-wrong.d.ts +6 -0
  110. package/lib/permissions-setup/types.d.ts +14 -0
  111. package/lib/permissions-setup/unsuccessful-setup.d.ts +7 -0
  112. package/lib/permissions-setup/use-edge-notifications-permission.d.ts +6 -0
  113. package/lib/profile-details-card/profile-details-card.d.ts +8 -0
  114. package/lib/search/search-bar/search-bar.d.ts +8 -0
  115. package/lib/search/search-results-section/search-results-section.d.ts +6 -0
  116. package/lib/search/search-results-section/search-results-section.helpers.d.ts +3 -0
  117. package/lib/search/search-results-section/search-results-section.types.d.ts +8 -0
  118. package/lib/section/section.context.d.ts +11 -0
  119. package/lib/section/section.d.ts +12 -0
  120. package/lib/section/section.helpers.d.ts +3 -0
  121. package/lib/section/section.types.d.ts +8 -0
  122. package/lib/settings-card/settings-card.d.ts +3 -0
  123. package/lib/support-card/support-card.d.ts +9 -0
  124. package/lib/workspaces-section/workspaces-section.d.ts +3 -0
  125. package/lib/workspaces-section/workspaces-section.helpers.d.ts +5 -0
  126. package/lib/workspaces-section/workspaces-section.types.d.ts +4 -0
  127. package/package.json +45 -0
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare function ApplicationsSection(): JSX.Element;
3
+ export default ApplicationsSection;
@@ -0,0 +1,5 @@
1
+ import { Glue42Web } from '@glue42/web';
2
+ import { SectionType } from '../section/section.types';
3
+ export declare const getApplicationsSectionConfig: (applications: Glue42Web.AppManager.Application[], runningInstances: {
4
+ [appName: string]: string[];
5
+ }) => SectionType;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ interface BaseSectionHeaderProps extends React.HTMLProps<HTMLHeadingElement> {
3
+ iconSrc?: string;
4
+ iconName?: string;
5
+ title: string;
6
+ }
7
+ export declare const BaseSectionHeader: (props: BaseSectionHeaderProps) => JSX.Element;
8
+ export default BaseSectionHeader;
@@ -0,0 +1,13 @@
1
+ /// <reference types="react" />
2
+ import { BaseSectionItemType } from './base-section.types';
3
+ import { ContextMenuAction } from '../context-menu/context-menu-types';
4
+ import { ActivationEvent } from '../../helpers/a11y';
5
+ interface BaseSectionItemProps<Item extends BaseSectionItemType> extends React.HTMLProps<HTMLDivElement> {
6
+ isFavoritismEnabled?: boolean;
7
+ item: Item;
8
+ onClick: (event: ActivationEvent, action?: ContextMenuAction) => void;
9
+ onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => void;
10
+ focused: boolean;
11
+ }
12
+ export declare const BaseSectionItem: <Item extends BaseSectionItemType>(props: BaseSectionItemProps<Item>) => JSX.Element;
13
+ export default BaseSectionItem;
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import type { BaseSectionItemType, BaseSectionType } from './base-section.types';
3
+ import { ActivationEvent } from '../../helpers/a11y';
4
+ interface BaseSectionProps<Item extends BaseSectionItemType> {
5
+ config: BaseSectionType<Item>;
6
+ isFavoritismEnabled?: boolean;
7
+ level?: number;
8
+ onItemClick: (event: ActivationEvent, params: {
9
+ item: Item;
10
+ modifier: string | null;
11
+ selectedContextMenuActionName?: string;
12
+ }) => void;
13
+ }
14
+ export declare const BaseSection: <Item extends BaseSectionItemType>(props: BaseSectionProps<Item>) => JSX.Element;
15
+ export default BaseSection;
@@ -0,0 +1,2 @@
1
+ import type { BaseSectionItemType, BaseSectionType } from './base-section.types';
2
+ export declare const isSection: <Item extends BaseSectionItemType>(item: Item | BaseSectionType<Item>) => item is BaseSectionType<Item>;
@@ -0,0 +1,19 @@
1
+ import { ContextMenuAction } from '../context-menu/context-menu-types';
2
+ export interface BaseSectionItemType {
3
+ description?: string;
4
+ icon?: string;
5
+ iconSrc?: string;
6
+ id: string;
7
+ isOpen?: boolean;
8
+ contextMenuActions?: ContextMenuAction[];
9
+ title: string;
10
+ type: string;
11
+ }
12
+ export interface BaseSectionType<Item extends BaseSectionItemType> {
13
+ iconSrc?: string;
14
+ iconName?: string;
15
+ id: string;
16
+ items: (Item | BaseSectionType<Item>)[];
17
+ title: string;
18
+ displayCount?: number;
19
+ }
@@ -0,0 +1,7 @@
1
+ import { HTMLProps } from 'react';
2
+ export interface ButtonProps extends HTMLProps<HTMLButtonElement> {
3
+ type?: 'button' | 'submit' | 'reset';
4
+ color?: 'primary' | 'secondary';
5
+ }
6
+ export declare function Button({ children, className, color, ...rest }: ButtonProps): JSX.Element;
7
+ export default Button;
@@ -0,0 +1,8 @@
1
+ import { HTMLProps } from 'react';
2
+ import { ButtonProps } from '../button/button';
3
+ export interface ButtonGroupProps extends HTMLProps<HTMLDivElement> {
4
+ items: ButtonProps[];
5
+ onItemClick?: (e: React.MouseEvent, props: ButtonProps) => void;
6
+ }
7
+ export declare function ButtonGroup({ className, items, onItemClick, }: ButtonGroupProps): JSX.Element;
8
+ export default ButtonGroup;
@@ -0,0 +1,9 @@
1
+ import { Glue42Search } from '@glue42/search-api';
2
+ export interface ContextMenuAction {
3
+ name: string;
4
+ displayName?: string;
5
+ disabled?: boolean;
6
+ }
7
+ export interface SearchResultsContextMenuAction extends ContextMenuAction {
8
+ interopParams?: Glue42Search.MainAction;
9
+ }
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { ContextMenuAction } from './context-menu-types';
3
+ import { ActivationEvent } from '../../helpers/a11y';
4
+ interface ContextMenuProps extends React.HTMLProps<HTMLUListElement> {
5
+ actions: ContextMenuAction[];
6
+ onClose: () => void;
7
+ onActionItemClick: (event: ActivationEvent, action: ContextMenuAction) => void;
8
+ }
9
+ export declare const ContextMenu: import("react").ForwardRefExoticComponent<Pick<ContextMenuProps, "id" | "title" | "type" | "name" | "disabled" | "min" | "max" | "onClose" | "tabIndex" | "value" | "children" | "hidden" | "key" | "cite" | "data" | "form" | "label" | "slot" | "span" | "style" | "summary" | "pattern" | "className" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "as" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "checked" | "classID" | "cols" | "colSpan" | "content" | "controls" | "coords" | "crossOrigin" | "dateTime" | "default" | "defer" | "download" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "height" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "list" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "maxLength" | "media" | "mediaGroup" | "method" | "minLength" | "multiple" | "muted" | "noValidate" | "open" | "optimum" | "placeholder" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rows" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "size" | "sizes" | "src" | "srcDoc" | "srcLang" | "srcSet" | "start" | "step" | "target" | "useMap" | "width" | "wmode" | "wrap" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "lang" | "nonce" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "actions" | "onActionItemClick"> & import("react").RefAttributes<HTMLUListElement>>;
10
+ export default ContextMenu;
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import { ContextMenuAction } from '../context-menu-types';
3
+ import { ActivationEvent } from 'packages/home-ui-react/src/helpers/a11y';
4
+ export interface DropdownButtonProps {
5
+ iconName: string;
6
+ iconSize?: number;
7
+ actions: ContextMenuAction[];
8
+ isTabStop?: boolean;
9
+ onActionItemClick: (event: ActivationEvent, action: ContextMenuAction) => void;
10
+ }
11
+ export declare function DropdownButton(props: DropdownButtonProps): JSX.Element;
12
+ export default DropdownButton;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare const FavoritesSection: () => JSX.Element | null;
3
+ export default FavoritesSection;
@@ -0,0 +1,3 @@
1
+ import type { FavoriteEntity } from '../../common/types';
2
+ import type { SectionType } from '../section/section.types';
3
+ export declare const getFavoritesSectionConfig: (favorites: FavoriteEntity[]) => SectionType;
@@ -0,0 +1 @@
1
+ export declare const PERMISSION_NAMES: readonly ["window-management", "notifications"];
@@ -0,0 +1,15 @@
1
+ /// <reference types="react" />
2
+ import type { HomePermissionStatus } from './types';
3
+ interface Glue42HomeProviderProps {
4
+ children: React.ReactNode;
5
+ }
6
+ export declare const useGlue42Home: () => {
7
+ permission: {
8
+ isDenied: boolean;
9
+ isLoading: boolean;
10
+ isSetupCompleted: boolean;
11
+ statuses: HomePermissionStatus[];
12
+ };
13
+ };
14
+ export declare const Glue42HomeProvider: ({ children }: Glue42HomeProviderProps) => JSX.Element;
15
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { HomePermissionStatus } from './types';
2
+ export declare const getPermissionStatuses: () => Promise<HomePermissionStatus[]>;
@@ -0,0 +1,4 @@
1
+ import { PermissionNames } from '../permissions-setup/types';
2
+ export type HomePermissionStatus = PermissionStatus & {
3
+ name: PermissionNames;
4
+ };
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { ActivationEvent } from '../../helpers/a11y';
3
+ export interface IconProps extends React.HTMLProps<HTMLSpanElement> {
4
+ name: string;
5
+ handleClick?: (e: ActivationEvent<HTMLSpanElement>) => void;
6
+ size?: number;
7
+ }
8
+ export declare const Icon: import("react").ForwardRefExoticComponent<Pick<IconProps, "id" | "title" | "type" | "name" | "disabled" | "min" | "max" | "tabIndex" | "value" | "children" | "hidden" | "key" | "cite" | "data" | "form" | "label" | "slot" | "span" | "style" | "summary" | "pattern" | "className" | "accept" | "acceptCharset" | "action" | "allowFullScreen" | "allowTransparency" | "alt" | "as" | "async" | "autoComplete" | "autoFocus" | "autoPlay" | "capture" | "cellPadding" | "cellSpacing" | "charSet" | "challenge" | "checked" | "classID" | "cols" | "colSpan" | "content" | "controls" | "coords" | "crossOrigin" | "dateTime" | "default" | "defer" | "download" | "encType" | "formAction" | "formEncType" | "formMethod" | "formNoValidate" | "formTarget" | "frameBorder" | "headers" | "height" | "high" | "href" | "hrefLang" | "htmlFor" | "httpEquiv" | "integrity" | "keyParams" | "keyType" | "kind" | "list" | "loop" | "low" | "manifest" | "marginHeight" | "marginWidth" | "maxLength" | "media" | "mediaGroup" | "method" | "minLength" | "multiple" | "muted" | "noValidate" | "open" | "optimum" | "placeholder" | "playsInline" | "poster" | "preload" | "readOnly" | "rel" | "required" | "reversed" | "rows" | "rowSpan" | "sandbox" | "scope" | "scoped" | "scrolling" | "seamless" | "selected" | "shape" | "size" | "sizes" | "src" | "srcDoc" | "srcLang" | "srcSet" | "start" | "step" | "target" | "useMap" | "width" | "wmode" | "wrap" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "lang" | "nonce" | "spellCheck" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "handleClick"> & import("react").RefAttributes<HTMLSpanElement>>;
9
+ export default Icon;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare const BrowserNotificationsIcon: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
3
+ export default BrowserNotificationsIcon;
@@ -0,0 +1,4 @@
1
+ export * from './browser-notifications-icon';
2
+ export * from './reopen-prompt-icon';
3
+ export * from './warning-icon';
4
+ export * from './window-placement-icon';
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare const ReopenPromptIcon: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
3
+ export default ReopenPromptIcon;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare const WarningIcon: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
3
+ export default WarningIcon;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare const WindowPlacementIcon: (props: React.SVGProps<SVGSVGElement>) => JSX.Element;
3
+ export default WindowPlacementIcon;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ export interface ImgIconProps extends React.HTMLProps<HTMLImageElement> {
3
+ src: string;
4
+ size?: number;
5
+ crossOrigin?: '' | 'anonymous' | 'use-credentials';
6
+ }
7
+ export declare function ImgIcon(props: ImgIconProps): JSX.Element;
8
+ export default ImgIcon;
@@ -0,0 +1,9 @@
1
+ import { FC } from 'react';
2
+ export interface ProfileSettingsProps {
3
+ onLogout?: () => void;
4
+ user?: {
5
+ name?: string;
6
+ };
7
+ }
8
+ export declare const ProfileSettings: FC<ProfileSettingsProps>;
9
+ export default ProfileSettings;
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { ModalProps } from '../../../modal/modal';
3
+ interface ProfileModalProps extends ModalProps {
4
+ onLogout?: () => void;
5
+ user?: {
6
+ name?: string;
7
+ };
8
+ }
9
+ declare const _default: import("react").FC<ProfileModalProps & import("@ebay/nice-modal-react").NiceModalHocProps>;
10
+ export default _default;
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ interface LaunchpadAPIProviderProps {
3
+ children: React.ReactNode;
4
+ setOpen: React.Dispatch<React.SetStateAction<boolean>>;
5
+ isOpen: boolean;
6
+ }
7
+ export declare const useLaunchpadAPI: () => {
8
+ close: () => void;
9
+ isOpen: boolean;
10
+ };
11
+ export declare const LaunchpadAPIProvider: ({ children, setOpen, isOpen, }: LaunchpadAPIProviderProps) => JSX.Element;
12
+ export {};
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ export interface LaunchpadProps extends React.HTMLProps<HTMLDivElement> {
3
+ open: boolean;
4
+ setOpen: React.Dispatch<React.SetStateAction<boolean>>;
5
+ onLogout?: () => void;
6
+ components?: {
7
+ sections?: JSX.Element;
8
+ };
9
+ user?: {
10
+ name?: string;
11
+ };
12
+ }
13
+ export declare function Launchpad(props: LaunchpadProps): JSX.Element;
14
+ export default Launchpad;
@@ -0,0 +1,2 @@
1
+ import type { Notification } from './layout-types';
2
+ export declare const NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING: Record<Notification['type'], string>;
@@ -0,0 +1,2 @@
1
+ export * from './layout-settings';
2
+ export * from './layout-settings-container';
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import type { Action } from './layout-types';
3
+ interface LayoutActionsProps {
4
+ actions: Action[];
5
+ className?: string;
6
+ }
7
+ declare const LayoutActions: ({ actions, className }: LayoutActionsProps) => JSX.Element;
8
+ export default LayoutActions;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import type { Layout, LayoutStorageValue } from './layout-types';
3
+ export interface LayoutItemProps {
4
+ layout: Layout;
5
+ onLayoutItemClick: (layout: Layout) => void;
6
+ setDefaultLayout: (value: LayoutStorageValue | ((val: LayoutStorageValue) => LayoutStorageValue)) => void;
7
+ }
8
+ export declare const LayoutItem: (props: LayoutItemProps) => JSX.Element;
9
+ export default LayoutItem;
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import type { Notification } from './layout-types';
3
+ interface LayoutNotificationProps extends Notification {
4
+ className?: string;
5
+ }
6
+ declare const LayoutNotification: ({ className, message, type, }: LayoutNotificationProps) => JSX.Element;
7
+ export default LayoutNotification;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare const LayoutSettingsContainer: () => JSX.Element;
3
+ export default LayoutSettingsContainer;
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ import type { Action, Layout, LayoutStorageValue } from './layout-types';
3
+ export interface LayoutSettingsProps {
4
+ layouts: Layout[];
5
+ onLayoutItemClick: (layout: Layout) => void;
6
+ inputValue: string;
7
+ onInputChange: (value: string) => void;
8
+ actions: Action[];
9
+ setDefaultLayout: (value: LayoutStorageValue | ((val: LayoutStorageValue) => LayoutStorageValue)) => void;
10
+ }
11
+ export declare const LayoutSettings: (props: LayoutSettingsProps) => JSX.Element;
12
+ export default LayoutSettings;
@@ -0,0 +1,2 @@
1
+ import { LoadSystemDefaultLayoutConfig } from './layout-types';
2
+ export declare const tryLoadSystemDefaultLayout: (config: LoadSystemDefaultLayoutConfig) => Promise<void>;
@@ -0,0 +1,30 @@
1
+ /// <reference types="react" />
2
+ import { Glue42 } from '@glue42/desktop';
3
+ import { Glue42Web } from '@glue42/web';
4
+ export type LayoutStorageValue = Pick<Layout, 'name'>;
5
+ export interface LoadSystemDefaultLayoutConfig {
6
+ glue: Glue42Web.API | Glue42.Glue;
7
+ defaultLayout: {
8
+ name: string;
9
+ } | null;
10
+ restoreLayout: (name: string) => Promise<void>;
11
+ setDefaultLayout: (value: LayoutStorageValue | ((val: LayoutStorageValue) => LayoutStorageValue)) => void;
12
+ }
13
+ export interface Layout {
14
+ name: string;
15
+ type: string;
16
+ id: string;
17
+ isDefault?: boolean;
18
+ isSelected?: boolean;
19
+ }
20
+ export type ActionKind = 'save' | 'restore';
21
+ export interface Action {
22
+ kind: ActionKind;
23
+ label: string;
24
+ disabled?: boolean;
25
+ onClick: (e: React.MouseEvent<HTMLButtonElement>) => void;
26
+ }
27
+ export interface Notification {
28
+ message: string;
29
+ type: 'success';
30
+ }
@@ -0,0 +1 @@
1
+ export declare const LOGO_WIDTH = "256px";
@@ -0,0 +1,3 @@
1
+ export * from "./login";
2
+ export * from "./login-loader";
3
+ export * from "./login-auth0";
@@ -0,0 +1,6 @@
1
+ import { FC } from 'react';
2
+ import { LoginDesignProps } from './types';
3
+ export interface LoginAuth0Props extends LoginDesignProps {
4
+ onLogin: () => void;
5
+ }
6
+ export declare const LoginAuth0: FC<LoginAuth0Props>;
@@ -0,0 +1,11 @@
1
+ import { FC } from 'react';
2
+ export interface LoginFormProps {
3
+ email: string;
4
+ password: string;
5
+ errorMessage?: string;
6
+ canSubmit: boolean;
7
+ onSubmit: () => void;
8
+ onChange: (element: React.ChangeEvent<HTMLInputElement>) => void;
9
+ }
10
+ declare const LoginForm: FC<LoginFormProps>;
11
+ export default LoginForm;
@@ -0,0 +1,6 @@
1
+ import { FC } from 'react';
2
+ export interface LoginHeadingProps {
3
+ className?: string;
4
+ text?: string;
5
+ }
6
+ export declare const LoginHeading: FC<LoginHeadingProps>;
@@ -0,0 +1,3 @@
1
+ import { FC } from 'react';
2
+ import { LoginDesignProps } from './types';
3
+ export declare const LoginLoader: FC<LoginDesignProps>;
@@ -0,0 +1,7 @@
1
+ import { FC } from "react";
2
+ export interface LogoProps {
3
+ logoSrc?: string;
4
+ width?: string;
5
+ className?: string;
6
+ }
7
+ export declare const LoginLogo: FC<LogoProps>;
@@ -0,0 +1,8 @@
1
+ import { FC } from 'react';
2
+ import { LoginDesignProps } from './types';
3
+ export interface LoginProps extends LoginDesignProps {
4
+ onLogin: (email: string, password: string) => void;
5
+ isLoading?: boolean;
6
+ loginErrorMessage?: string;
7
+ }
8
+ export declare const Login: FC<LoginProps>;
@@ -0,0 +1,3 @@
1
+ import { LoginFormElementReducer } from "./types";
2
+ export declare const emailReducer: LoginFormElementReducer;
3
+ export declare const passwordReducer: LoginFormElementReducer;
@@ -0,0 +1,16 @@
1
+ import { Reducer } from "react";
2
+ export interface LoginDesignProps {
3
+ components?: {
4
+ Logo?: React.ComponentType;
5
+ Heading?: React.ComponentType;
6
+ };
7
+ }
8
+ export type LoginFormElementReducer = Reducer<LoginFormElementState, LoginFormElementAction>;
9
+ export interface LoginFormElementState {
10
+ value: string;
11
+ isValid: boolean;
12
+ validationError?: string;
13
+ }
14
+ export interface LoginFormElementAction {
15
+ value?: string;
16
+ }
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export interface ModalProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ onClose?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;
4
+ afterClose?: () => void;
5
+ mountNode?: Element | DocumentFragment;
6
+ visible: boolean;
7
+ }
8
+ export declare function Modal({ children, className, mountNode, afterClose, onClose, visible, ...rest }: ModalProps): JSX.Element;
9
+ export default Modal;
@@ -0,0 +1 @@
1
+ export { NotificationsPanel } from './notifications-panel';
@@ -0,0 +1,17 @@
1
+ /// <reference types="react" />
2
+ import { Glue42Web } from '@glue42/web';
3
+ export declare const severityColors: {
4
+ Low: string;
5
+ Medium: string;
6
+ High: string;
7
+ Critical: string;
8
+ None: string;
9
+ };
10
+ export interface Notification extends Glue42Web.Notifications.NotificationData {
11
+ status?: string;
12
+ onClick: (notification: Glue42Web.Notifications.NotificationData) => void;
13
+ onClose: (id: string) => void;
14
+ onActionClick: (id: string, action: Glue42Web.Notifications.NotificationAction) => void;
15
+ }
16
+ export declare function NotificationToast(props: Notification): JSX.Element;
17
+ export default NotificationToast;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import { ModalProps } from '../modal/modal';
3
+ declare const _default: import("react").FC<ModalProps & import("@ebay/nice-modal-react").NiceModalHocProps>;
4
+ export default _default;
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ export declare function NotificationsPanel(): JSX.Element;
3
+ export default NotificationsPanel;
@@ -0,0 +1,13 @@
1
+ import { Glue42Web } from '@glue42/web';
2
+ export type SortType = 'timestamp' | 'application' | 'severity';
3
+ type SortDirection = -1 | 0 | 1;
4
+ type ActiveSort = {
5
+ type: SortType;
6
+ sortDirection: SortDirection;
7
+ };
8
+ export declare const useNotificationsSort: () => {
9
+ onNotificationsSort: (type: SortType) => void;
10
+ activeSort: ActiveSort;
11
+ sortNotifications: (notifications: Glue42Web.Notifications.NotificationData[]) => Glue42Web.Notifications.NotificationData[];
12
+ };
13
+ export {};
@@ -0,0 +1,12 @@
1
+ /// <reference types="react" />
2
+ export interface LaunchpadSlidePanelProps {
3
+ icon: JSX.Element;
4
+ components?: {
5
+ sections?: JSX.Element;
6
+ };
7
+ onLogout?: () => void;
8
+ user?: {
9
+ name?: string;
10
+ };
11
+ }
12
+ export declare const LaunchpadSlidePanel: (props: LaunchpadSlidePanelProps) => JSX.Element;
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ export interface SlidePanelRenderPropsProps {
3
+ icon: JSX.Element;
4
+ children: (props: {
5
+ open: boolean;
6
+ setOpen: React.Dispatch<React.SetStateAction<boolean>>;
7
+ }) => React.ReactNode;
8
+ }
9
+ export declare const SlidePanel: (props: SlidePanelRenderPropsProps) => JSX.Element;
@@ -0,0 +1,5 @@
1
+ import type { PermissionNames, PermissionStep } from './types';
2
+ export declare const PERMISSION_STEPS: Record<PermissionNames, PermissionStep>;
3
+ export declare const DEFAULT_SETTINGS: {
4
+ edgeNotificationsPermissionTimeout: number;
5
+ };
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ interface PermissionsCardProps {
3
+ children?: React.ReactNode;
4
+ heading?: string;
5
+ description: string | React.ReactElement;
6
+ Image?: React.ComponentType;
7
+ title?: string;
8
+ }
9
+ export declare const PermissionsCard: ({ children, description, heading, Image, title }: PermissionsCardProps) => JSX.Element;
10
+ export default PermissionsCard;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ import type { HomePermissionStatus } from '../glue42-home-provider/types';
3
+ interface PermissionsListProps {
4
+ isActiveItem?: (name: string) => boolean;
5
+ permissionStatuses: HomePermissionStatus[];
6
+ }
7
+ export declare const PermissionsList: ({ isActiveItem, permissionStatuses }: PermissionsListProps) => JSX.Element;
8
+ export default PermissionsList;
@@ -0,0 +1,8 @@
1
+ /// <reference types="react" />
2
+ interface PermissionsSetupFlowProps {
3
+ settings: {
4
+ edgeNotificationsPermissionTimeout: number;
5
+ };
6
+ }
7
+ export declare const PermissionsSetupFlow: ({ settings }: PermissionsSetupFlowProps) => JSX.Element;
8
+ export {};