@vuu-ui/vuu-shell 0.0.26

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 (222) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +0 -0
  3. package/cjs/ShellContextProvider.js +31 -0
  4. package/cjs/ShellContextProvider.js.map +1 -0
  5. package/cjs/app-header/AppHeader.css.js +6 -0
  6. package/cjs/app-header/AppHeader.css.js.map +1 -0
  7. package/cjs/app-header/AppHeader.js +66 -0
  8. package/cjs/app-header/AppHeader.js.map +1 -0
  9. package/cjs/connection-status/ConnectionStatusIndicator.css.js +6 -0
  10. package/cjs/connection-status/ConnectionStatusIndicator.css.js.map +1 -0
  11. package/cjs/connection-status/ConnectionStatusIndicator.js +51 -0
  12. package/cjs/connection-status/ConnectionStatusIndicator.js.map +1 -0
  13. package/cjs/feature/Feature.js +56 -0
  14. package/cjs/feature/Feature.js.map +1 -0
  15. package/cjs/feature/FeatureErrorBoundary.js +30 -0
  16. package/cjs/feature/FeatureErrorBoundary.js.map +1 -0
  17. package/cjs/feature/Loader.js +8 -0
  18. package/cjs/feature/Loader.js.map +1 -0
  19. package/cjs/feature-list/FeatureList.css.js +6 -0
  20. package/cjs/feature-list/FeatureList.css.js.map +1 -0
  21. package/cjs/feature-list/FeatureList.js +52 -0
  22. package/cjs/feature-list/FeatureList.js.map +1 -0
  23. package/cjs/index.js +51 -0
  24. package/cjs/index.js.map +1 -0
  25. package/cjs/layout-management/LayoutList.css.js +6 -0
  26. package/cjs/layout-management/LayoutList.css.js.map +1 -0
  27. package/cjs/layout-management/LayoutList.js +75 -0
  28. package/cjs/layout-management/LayoutList.js.map +1 -0
  29. package/cjs/layout-management/LayoutTile.css.js +6 -0
  30. package/cjs/layout-management/LayoutTile.css.js.map +1 -0
  31. package/cjs/layout-management/LayoutTile.js +36 -0
  32. package/cjs/layout-management/LayoutTile.js.map +1 -0
  33. package/cjs/layout-management/SaveLayoutPanel.css.js +6 -0
  34. package/cjs/layout-management/SaveLayoutPanel.css.js.map +1 -0
  35. package/cjs/layout-management/SaveLayoutPanel.js +149 -0
  36. package/cjs/layout-management/SaveLayoutPanel.js.map +1 -0
  37. package/cjs/layout-management/screenshot-utils.js +25 -0
  38. package/cjs/layout-management/screenshot-utils.js.map +1 -0
  39. package/cjs/layout-management/useLayoutContextMenuItems.js +72 -0
  40. package/cjs/layout-management/useLayoutContextMenuItems.js.map +1 -0
  41. package/cjs/layout-management/useLayoutManager.js +218 -0
  42. package/cjs/layout-management/useLayoutManager.js.map +1 -0
  43. package/cjs/left-nav/LeftNav.css.js +6 -0
  44. package/cjs/left-nav/LeftNav.css.js.map +1 -0
  45. package/cjs/left-nav/LeftNav.js +166 -0
  46. package/cjs/left-nav/LeftNav.js.map +1 -0
  47. package/cjs/login/LoginPanel.css.js +6 -0
  48. package/cjs/login/LoginPanel.css.js.map +1 -0
  49. package/cjs/login/LoginPanel.js +108 -0
  50. package/cjs/login/LoginPanel.js.map +1 -0
  51. package/cjs/login/VuuLogo.js +134 -0
  52. package/cjs/login/VuuLogo.js.map +1 -0
  53. package/cjs/login/login-utils.js +31 -0
  54. package/cjs/login/login-utils.js.map +1 -0
  55. package/cjs/persistence-management/LocalPersistenceManager.js +184 -0
  56. package/cjs/persistence-management/LocalPersistenceManager.js.map +1 -0
  57. package/cjs/persistence-management/RemotePersistenceManager.js +164 -0
  58. package/cjs/persistence-management/RemotePersistenceManager.js.map +1 -0
  59. package/cjs/persistence-management/defaultApplicationJson.js +42 -0
  60. package/cjs/persistence-management/defaultApplicationJson.js.map +1 -0
  61. package/cjs/session-editing-form/SessionEditingForm.css.js +6 -0
  62. package/cjs/session-editing-form/SessionEditingForm.css.js.map +1 -0
  63. package/cjs/session-editing-form/SessionEditingForm.js +280 -0
  64. package/cjs/session-editing-form/SessionEditingForm.js.map +1 -0
  65. package/cjs/shell-layouts/context-panel/ContextPanel.css.js +6 -0
  66. package/cjs/shell-layouts/context-panel/ContextPanel.css.js.map +1 -0
  67. package/cjs/shell-layouts/context-panel/ContextPanel.js +70 -0
  68. package/cjs/shell-layouts/context-panel/ContextPanel.js.map +1 -0
  69. package/cjs/shell-layouts/side-panel/SidePanel.css.js +6 -0
  70. package/cjs/shell-layouts/side-panel/SidePanel.css.js.map +1 -0
  71. package/cjs/shell-layouts/side-panel/SidePanel.js +36 -0
  72. package/cjs/shell-layouts/side-panel/SidePanel.js.map +1 -0
  73. package/cjs/shell-layouts/useFullHeightLeftPanel.js +41 -0
  74. package/cjs/shell-layouts/useFullHeightLeftPanel.js.map +1 -0
  75. package/cjs/shell-layouts/useInlayLeftPanel.js +78 -0
  76. package/cjs/shell-layouts/useInlayLeftPanel.js.map +1 -0
  77. package/cjs/shell-layouts/useShellLayout.js +15 -0
  78. package/cjs/shell-layouts/useShellLayout.js.map +1 -0
  79. package/cjs/shell.css.js +6 -0
  80. package/cjs/shell.css.js.map +1 -0
  81. package/cjs/shell.js +137 -0
  82. package/cjs/shell.js.map +1 -0
  83. package/cjs/shellTypes.js +8 -0
  84. package/cjs/shellTypes.js.map +1 -0
  85. package/cjs/theme-switch/ThemeSwitch.css.js +6 -0
  86. package/cjs/theme-switch/ThemeSwitch.css.js.map +1 -0
  87. package/cjs/theme-switch/ThemeSwitch.js +56 -0
  88. package/cjs/theme-switch/ThemeSwitch.js.map +1 -0
  89. package/esm/ShellContextProvider.js +28 -0
  90. package/esm/ShellContextProvider.js.map +1 -0
  91. package/esm/app-header/AppHeader.css.js +4 -0
  92. package/esm/app-header/AppHeader.css.js.map +1 -0
  93. package/esm/app-header/AppHeader.js +64 -0
  94. package/esm/app-header/AppHeader.js.map +1 -0
  95. package/esm/connection-status/ConnectionStatusIndicator.css.js +4 -0
  96. package/esm/connection-status/ConnectionStatusIndicator.css.js.map +1 -0
  97. package/esm/connection-status/ConnectionStatusIndicator.js +49 -0
  98. package/esm/connection-status/ConnectionStatusIndicator.js.map +1 -0
  99. package/esm/feature/Feature.js +54 -0
  100. package/esm/feature/Feature.js.map +1 -0
  101. package/esm/feature/FeatureErrorBoundary.js +28 -0
  102. package/esm/feature/FeatureErrorBoundary.js.map +1 -0
  103. package/esm/feature/Loader.js +6 -0
  104. package/esm/feature/Loader.js.map +1 -0
  105. package/esm/feature-list/FeatureList.css.js +4 -0
  106. package/esm/feature-list/FeatureList.css.js.map +1 -0
  107. package/esm/feature-list/FeatureList.js +50 -0
  108. package/esm/feature-list/FeatureList.js.map +1 -0
  109. package/esm/index.js +20 -0
  110. package/esm/index.js.map +1 -0
  111. package/esm/layout-management/LayoutList.css.js +4 -0
  112. package/esm/layout-management/LayoutList.css.js.map +1 -0
  113. package/esm/layout-management/LayoutList.js +73 -0
  114. package/esm/layout-management/LayoutList.js.map +1 -0
  115. package/esm/layout-management/LayoutTile.css.js +4 -0
  116. package/esm/layout-management/LayoutTile.css.js.map +1 -0
  117. package/esm/layout-management/LayoutTile.js +34 -0
  118. package/esm/layout-management/LayoutTile.js.map +1 -0
  119. package/esm/layout-management/SaveLayoutPanel.css.js +4 -0
  120. package/esm/layout-management/SaveLayoutPanel.css.js.map +1 -0
  121. package/esm/layout-management/SaveLayoutPanel.js +147 -0
  122. package/esm/layout-management/SaveLayoutPanel.js.map +1 -0
  123. package/esm/layout-management/screenshot-utils.js +23 -0
  124. package/esm/layout-management/screenshot-utils.js.map +1 -0
  125. package/esm/layout-management/useLayoutContextMenuItems.js +70 -0
  126. package/esm/layout-management/useLayoutContextMenuItems.js.map +1 -0
  127. package/esm/layout-management/useLayoutManager.js +214 -0
  128. package/esm/layout-management/useLayoutManager.js.map +1 -0
  129. package/esm/left-nav/LeftNav.css.js +4 -0
  130. package/esm/left-nav/LeftNav.css.js.map +1 -0
  131. package/esm/left-nav/LeftNav.js +164 -0
  132. package/esm/left-nav/LeftNav.js.map +1 -0
  133. package/esm/login/LoginPanel.css.js +4 -0
  134. package/esm/login/LoginPanel.css.js.map +1 -0
  135. package/esm/login/LoginPanel.js +106 -0
  136. package/esm/login/LoginPanel.js.map +1 -0
  137. package/esm/login/VuuLogo.js +132 -0
  138. package/esm/login/VuuLogo.js.map +1 -0
  139. package/esm/login/login-utils.js +26 -0
  140. package/esm/login/login-utils.js.map +1 -0
  141. package/esm/persistence-management/LocalPersistenceManager.js +182 -0
  142. package/esm/persistence-management/LocalPersistenceManager.js.map +1 -0
  143. package/esm/persistence-management/RemotePersistenceManager.js +162 -0
  144. package/esm/persistence-management/RemotePersistenceManager.js.map +1 -0
  145. package/esm/persistence-management/defaultApplicationJson.js +39 -0
  146. package/esm/persistence-management/defaultApplicationJson.js.map +1 -0
  147. package/esm/session-editing-form/SessionEditingForm.css.js +4 -0
  148. package/esm/session-editing-form/SessionEditingForm.css.js.map +1 -0
  149. package/esm/session-editing-form/SessionEditingForm.js +278 -0
  150. package/esm/session-editing-form/SessionEditingForm.js.map +1 -0
  151. package/esm/shell-layouts/context-panel/ContextPanel.css.js +4 -0
  152. package/esm/shell-layouts/context-panel/ContextPanel.css.js.map +1 -0
  153. package/esm/shell-layouts/context-panel/ContextPanel.js +68 -0
  154. package/esm/shell-layouts/context-panel/ContextPanel.js.map +1 -0
  155. package/esm/shell-layouts/side-panel/SidePanel.css.js +4 -0
  156. package/esm/shell-layouts/side-panel/SidePanel.css.js.map +1 -0
  157. package/esm/shell-layouts/side-panel/SidePanel.js +34 -0
  158. package/esm/shell-layouts/side-panel/SidePanel.js.map +1 -0
  159. package/esm/shell-layouts/useFullHeightLeftPanel.js +39 -0
  160. package/esm/shell-layouts/useFullHeightLeftPanel.js.map +1 -0
  161. package/esm/shell-layouts/useInlayLeftPanel.js +76 -0
  162. package/esm/shell-layouts/useInlayLeftPanel.js.map +1 -0
  163. package/esm/shell-layouts/useShellLayout.js +13 -0
  164. package/esm/shell-layouts/useShellLayout.js.map +1 -0
  165. package/esm/shell.css.js +4 -0
  166. package/esm/shell.css.js.map +1 -0
  167. package/esm/shell.js +135 -0
  168. package/esm/shell.js.map +1 -0
  169. package/esm/shellTypes.js +5 -0
  170. package/esm/shellTypes.js.map +1 -0
  171. package/esm/theme-switch/ThemeSwitch.css.js +4 -0
  172. package/esm/theme-switch/ThemeSwitch.css.js.map +1 -0
  173. package/esm/theme-switch/ThemeSwitch.js +54 -0
  174. package/esm/theme-switch/ThemeSwitch.js.map +1 -0
  175. package/package.json +48 -0
  176. package/types/ShellContextProvider.d.ts +16 -0
  177. package/types/app-header/AppHeader.d.ts +12 -0
  178. package/types/app-header/index.d.ts +1 -0
  179. package/types/connection-status/ConnectionStatusIndicator.d.ts +10 -0
  180. package/types/connection-status/index.d.ts +1 -0
  181. package/types/feature/Feature.d.ts +26 -0
  182. package/types/feature/FeatureErrorBoundary.d.ts +13 -0
  183. package/types/feature/Loader.d.ts +2 -0
  184. package/types/feature/index.d.ts +1 -0
  185. package/types/feature-list/FeatureList.d.ts +6 -0
  186. package/types/feature-list/index.d.ts +1 -0
  187. package/types/get-layout-history.d.ts +8 -0
  188. package/types/index.d.ts +13 -0
  189. package/types/layout-management/LayoutList.d.ts +2 -0
  190. package/types/layout-management/LayoutTile.d.ts +8 -0
  191. package/types/layout-management/SaveLayoutPanel.d.ts +10 -0
  192. package/types/layout-management/index.d.ts +5 -0
  193. package/types/layout-management/layoutTypes.d.ts +19 -0
  194. package/types/layout-management/screenshot-utils.d.ts +6 -0
  195. package/types/layout-management/useLayoutContextMenuItems.d.ts +6 -0
  196. package/types/layout-management/useLayoutManager.d.ts +26 -0
  197. package/types/left-nav/LeftNav.d.ts +17 -0
  198. package/types/left-nav/index.d.ts +1 -0
  199. package/types/login/LoginPanel.d.ts +7 -0
  200. package/types/login/VuuLogo.d.ts +2 -0
  201. package/types/login/index.d.ts +2 -0
  202. package/types/login/login-utils.d.ts +4 -0
  203. package/types/persistence-management/LocalPersistenceManager.d.ts +21 -0
  204. package/types/persistence-management/PersistenceManager.d.ts +55 -0
  205. package/types/persistence-management/RemotePersistenceManager.d.ts +22 -0
  206. package/types/persistence-management/defaultApplicationJson.d.ts +4 -0
  207. package/types/persistence-management/index.d.ts +4 -0
  208. package/types/session-editing-form/SessionEditingForm.d.ts +24 -0
  209. package/types/session-editing-form/index.d.ts +1 -0
  210. package/types/shell-layouts/context-panel/ContextPanel.d.ts +10 -0
  211. package/types/shell-layouts/context-panel/index.d.ts +1 -0
  212. package/types/shell-layouts/index.d.ts +3 -0
  213. package/types/shell-layouts/side-panel/SidePanel.d.ts +8 -0
  214. package/types/shell-layouts/side-panel/index.d.ts +1 -0
  215. package/types/shell-layouts/useFullHeightLeftPanel.d.ts +3 -0
  216. package/types/shell-layouts/useInlayLeftPanel.d.ts +3 -0
  217. package/types/shell-layouts/useShellLayout.d.ts +10 -0
  218. package/types/shell.d.ts +21 -0
  219. package/types/shellTypes.d.ts +29 -0
  220. package/types/theme-switch/ThemeSwitch.d.ts +8 -0
  221. package/types/theme-switch/index.d.ts +1 -0
  222. package/types/use-force-render.d.ts +1 -0
@@ -0,0 +1,55 @@
1
+ import { ApplicationJSON, LayoutJSON } from "@vuu-ui/vuu-layout";
2
+ import { LayoutMetadata, LayoutMetadataDto } from "../layout-management";
3
+ export interface PersistenceManager {
4
+ /**
5
+ * Saves a new layout and its corresponding metadata
6
+ *
7
+ * @param metadata - Metadata about the layout to be saved
8
+ * @param layout - Full JSON representation of the layout to be saved
9
+ *
10
+ * @returns Unique identifier assigned to the saved layout
11
+ */
12
+ createLayout: (metadata: LayoutMetadataDto, layout: LayoutJSON) => Promise<LayoutMetadata>;
13
+ /**
14
+ * Overwrites an existing layout and its corresponding metadata with the provided information
15
+ *
16
+ * @param id - Unique identifier of the existing layout to be updated
17
+ * @param metadata - Metadata describing the new layout to overwrite with
18
+ * @param layout - Full JSON representation of the new layout to overwrite with
19
+ */
20
+ updateLayout: (id: string, metadata: LayoutMetadataDto, layout: LayoutJSON) => Promise<void>;
21
+ /**
22
+ * Deletes an existing layout and its corresponding metadata
23
+ *
24
+ * @param id - Unique identifier of the existing layout to be deleted
25
+ */
26
+ deleteLayout: (id: string) => Promise<void>;
27
+ /**
28
+ * Retrieves an existing layout
29
+ *
30
+ * @param id - Unique identifier of the existing layout to be retrieved
31
+ *
32
+ * @returns Full JSON representation of the layout corresponding to the provided ID
33
+ */
34
+ loadLayout: (id: string) => Promise<LayoutJSON>;
35
+ /**
36
+ * Retrieves metadata for all existing layouts
37
+ *
38
+ * @returns an array of all persisted layout metadata
39
+ */
40
+ loadMetadata: () => Promise<LayoutMetadata[]>;
41
+ /**
42
+ * Retrieves the application JSON. This includes the application layout,
43
+ * which describes all layouts on screen
44
+ *
45
+ * @returns Full JSON representation of the application json
46
+ */
47
+ loadApplicationJSON: () => Promise<ApplicationJSON>;
48
+ /**
49
+ * Saves the application JSON. This includes the application layout,
50
+ * which describes all layouts on screen
51
+ *
52
+ * @param layout - Full JSON representation of the application layout to be saved
53
+ */
54
+ saveApplicationJSON: (layout: ApplicationJSON) => Promise<void>;
55
+ }
@@ -0,0 +1,22 @@
1
+ import { PersistenceManager } from "./PersistenceManager";
2
+ import { ApplicationJSON, LayoutJSON } from "@vuu-ui/vuu-layout";
3
+ import { LayoutMetadata, LayoutMetadataDto } from "../layout-management";
4
+ export type CreateLayoutResponseDto = {
5
+ metadata: LayoutMetadata;
6
+ };
7
+ export type GetLayoutResponseDto = {
8
+ definition: LayoutJSON;
9
+ };
10
+ export type GetApplicationResponseDto = {
11
+ definition: ApplicationJSON;
12
+ };
13
+ export declare class RemotePersistenceManager implements PersistenceManager {
14
+ username: string;
15
+ createLayout(metadata: LayoutMetadataDto, layout: LayoutJSON): Promise<LayoutMetadata>;
16
+ updateLayout(id: string, metadata: LayoutMetadataDto, newLayoutJson: LayoutJSON): Promise<void>;
17
+ deleteLayout(id: string): Promise<void>;
18
+ loadLayout(id: string): Promise<LayoutJSON>;
19
+ loadMetadata(): Promise<LayoutMetadata[]>;
20
+ saveApplicationJSON(applicationJSON: ApplicationJSON): Promise<void>;
21
+ loadApplicationJSON(): Promise<ApplicationJSON>;
22
+ }
@@ -0,0 +1,4 @@
1
+ import { ApplicationJSON, LayoutJSON } from "@vuu-ui/vuu-layout";
2
+ export declare const warningLayout: LayoutJSON;
3
+ export declare const loadingApplicationJson: Readonly<ApplicationJSON>;
4
+ export declare const defaultApplicationJson: ApplicationJSON;
@@ -0,0 +1,4 @@
1
+ export * from "./defaultApplicationJson";
2
+ export * from "./PersistenceManager";
3
+ export * from "./LocalPersistenceManager";
4
+ export * from "./RemotePersistenceManager";
@@ -0,0 +1,24 @@
1
+ import { DataSource, TableSchema } from "@vuu-ui/vuu-data-types";
2
+ import { VuuColumnDataType } from "@vuu-ui/vuu-protocol-types";
3
+ import { HTMLAttributes } from "react";
4
+ export type FormFieldDescriptor = {
5
+ isKeyField?: boolean;
6
+ label?: string;
7
+ name: string;
8
+ type: VuuColumnDataType;
9
+ description: string;
10
+ readonly?: boolean;
11
+ required?: boolean;
12
+ };
13
+ export type FormConfig = {
14
+ title: string;
15
+ key: string;
16
+ fields: FormFieldDescriptor[];
17
+ };
18
+ export interface SessionEditingFormProps extends HTMLAttributes<HTMLDivElement> {
19
+ config: FormConfig;
20
+ onClose: () => void;
21
+ dataSource?: DataSource;
22
+ schema?: TableSchema;
23
+ }
24
+ export declare const SessionEditingForm: ({ className, config: { fields, key: keyField }, dataSource: dataSourceProp, id: idProp, onClose, schema, ...htmlAttributes }: SessionEditingFormProps) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./SessionEditingForm";
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ import { LayoutJSON } from "@vuu-ui/vuu-layout";
3
+ export interface ContextPanelProps {
4
+ [key: string]: unknown;
5
+ className?: string;
6
+ content?: LayoutJSON;
7
+ expanded?: boolean;
8
+ overlay?: boolean;
9
+ }
10
+ export declare const ContextPanel: ({ className: classNameProp, expanded, content: contentProp, overlay, title, }: ContextPanelProps) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./ContextPanel";
@@ -0,0 +1,3 @@
1
+ export * from "./context-panel";
2
+ export * from "./useShellLayout";
3
+ export * from "./side-panel";
@@ -0,0 +1,8 @@
1
+ import { HTMLAttributes } from "react";
2
+ export interface SidePanelProps extends HTMLAttributes<HTMLDivElement> {
3
+ open?: boolean;
4
+ path?: string;
5
+ sizeOpen?: number;
6
+ sizeClosed?: number;
7
+ }
8
+ export declare const SidePanel: ({ children, open, sizeClosed, sizeOpen, style: styleProp, ...htmlAttributes }: SidePanelProps) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./SidePanel";
@@ -0,0 +1,3 @@
1
+ import { ReactElement } from "react";
2
+ import { ShellLayoutProps } from "./useShellLayout";
3
+ export declare const useFullHeightLeftPanel: ({ appHeader, LeftSidePanelProps, }: ShellLayoutProps) => ReactElement;
@@ -0,0 +1,3 @@
1
+ import { ReactElement } from "react";
2
+ import { ShellLayoutProps } from "./useShellLayout";
3
+ export declare const useInlayLeftPanel: ({ appHeader, LeftSidePanelProps, }: ShellLayoutProps) => ReactElement;
@@ -0,0 +1,10 @@
1
+ import { ReactElement } from "react";
2
+ import { ShellProps } from "../shell";
3
+ export type ShellLayoutType = "full-height" | "inlay";
4
+ export interface ShellLayoutProps {
5
+ LeftSidePanelProps: ShellProps["LeftSidePanelProps"];
6
+ appHeader: ReactElement;
7
+ }
8
+ export declare const useShellLayout: ({ leftSidePanelLayout, ...props }: ShellLayoutProps & {
9
+ leftSidePanelLayout?: "full-height" | "inlay" | undefined;
10
+ }) => ReactElement<any, string | import("react").JSXElementConstructor<any>>;
@@ -0,0 +1,21 @@
1
+ import { LayoutProviderProps } from "@vuu-ui/vuu-layout";
2
+ import { HTMLAttributes, ReactNode } from "react";
3
+ import { SidePanelProps } from "./shell-layouts";
4
+ import { SaveLocation } from "./shellTypes";
5
+ export type VuuUser = {
6
+ username: string;
7
+ token: string;
8
+ };
9
+ export type LayoutTemplateName = "full-height" | "inlay";
10
+ export interface ShellProps extends HTMLAttributes<HTMLDivElement> {
11
+ LayoutProps?: Pick<LayoutProviderProps, "createNewChild" | "pathToDropTarget">;
12
+ LeftSidePanelProps?: SidePanelProps;
13
+ children?: ReactNode;
14
+ leftSidePanelLayout?: "full-height" | "inlay";
15
+ loginUrl?: string;
16
+ saveLocation?: SaveLocation;
17
+ saveUrl?: string;
18
+ serverUrl?: string;
19
+ user: VuuUser;
20
+ }
21
+ export declare const Shell: ({ LayoutProps, LeftSidePanelProps, children, className: classNameProp, leftSidePanelLayout, loginUrl, saveLocation: _, saveUrl, serverUrl, user, ...htmlAttributes }: ShellProps) => JSX.Element | null;
@@ -0,0 +1,29 @@
1
+ import type { VuuTable } from "@vuu-ui/vuu-protocol-types";
2
+ import type { ViewProps } from "@vuu-ui/vuu-layout";
3
+ declare global {
4
+ const vuuConfig: Promise<VuuConfig>;
5
+ }
6
+ export type SaveLocation = "local" | "remote";
7
+ export interface FeatureConfig {
8
+ name: string;
9
+ title: string;
10
+ url: string;
11
+ css?: string;
12
+ leftNavLocation: "vuu-features" | "vuu-tables";
13
+ featureProps?: {
14
+ schema?: "*" | VuuTable;
15
+ schemas?: VuuTable[];
16
+ ViewProps?: Partial<ViewProps>;
17
+ };
18
+ }
19
+ export type Features = {
20
+ [key: string]: FeatureConfig;
21
+ };
22
+ export interface VuuConfig {
23
+ features: Features;
24
+ authUrl?: string;
25
+ websocketUrl: string;
26
+ ssl: boolean;
27
+ }
28
+ export declare const isWildcardSchema: (schema?: "*" | VuuTable) => schema is "*";
29
+ export declare const isTableSchema: (schema?: "*" | VuuTable) => schema is VuuTable;
@@ -0,0 +1,8 @@
1
+ import { HTMLAttributes } from "react";
2
+ import { ThemeMode } from "@vuu-ui/vuu-utils";
3
+ export interface ThemeSwitchProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
4
+ defaultMode?: ThemeMode;
5
+ mode?: ThemeMode;
6
+ onChange: (mode: ThemeMode) => void;
7
+ }
8
+ export declare const ThemeSwitch: ({ className: classNameProp, defaultMode: defaultModeProp, mode: modeProp, onChange, ...htmlAttributes }: ThemeSwitchProps) => JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./ThemeSwitch";
@@ -0,0 +1 @@
1
+ export function useForceRender(): import("react").Dispatch<import("react").SetStateAction<{}>>;