@sqlrooms/room-shell 0.28.0-rc.0 → 0.28.1-rc.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.
- package/README.md +114 -647
- package/dist/RoomShell.d.ts +3 -0
- package/dist/RoomShell.d.ts.map +1 -1
- package/dist/RoomShell.js +3 -1
- package/dist/RoomShell.js.map +1 -1
- package/dist/RoomShellCommandPalette.d.ts +24 -0
- package/dist/RoomShellCommandPalette.d.ts.map +1 -0
- package/dist/RoomShellCommandPalette.js +588 -0
- package/dist/RoomShellCommandPalette.js.map +1 -0
- package/dist/RoomShellSlice.d.ts +3 -2
- package/dist/RoomShellSlice.d.ts.map +1 -1
- package/dist/RoomShellSlice.js +179 -2
- package/dist/RoomShellSlice.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +11 -9
package/dist/RoomShell.d.ts
CHANGED
|
@@ -38,5 +38,8 @@ export declare const RoomShell: typeof RoomShellBase & {
|
|
|
38
38
|
LoadingProgress: FC<{
|
|
39
39
|
className?: string;
|
|
40
40
|
}>;
|
|
41
|
+
CommandPalette: (({ isOpen: controlledOpen, defaultOpen, onOpenChange, placeholder, emptyMessage, enableKeyboardShortcut, }: import("./RoomShellCommandPalette").RoomShellCommandPaletteProps) => import("react/jsx-runtime").JSX.Element) & {
|
|
42
|
+
Button: ({ className, icon: Icon, iconClassName, tooltip, variant, size, onClick, ...buttonProps }: import("./RoomShellCommandPalette").RoomShellCommandPaletteButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
};
|
|
41
44
|
};
|
|
42
45
|
//# sourceMappingURL=RoomShell.d.ts.map
|
package/dist/RoomShell.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomShell.d.ts","sourceRoot":"","sources":["../src/RoomShell.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAC,EAAE,EAAE,iBAAiB,EAAwB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"RoomShell.d.ts","sourceRoot":"","sources":["../src/RoomShell.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAC,EAAE,EAAE,iBAAiB,EAAwB,MAAM,OAAO,CAAC;AAOnE,OAAO,EAAC,cAAc,EAAwB,MAAM,kBAAkB,CAAC;AAEvE,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EACT,QAAQ,EACR,SAAS,GACV,EAAE,KAAK,CAAC,iBAAiB,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B,CAAC,2CAaD;AAED,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,iBAAiB,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,CAenE,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,EAAE,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAmDA,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,CAcpD,CAAC;AAEF,eAAO,MAAM,SAAS;;oBAzFsC,MAAM;;;;;;;;qBA5BjE,CAAC;;;;;;;;oBA8CY,MAAM;wBACF,MAAM;;;oBAsDsB,MAAM;;;;;CAuBlD,CAAC"}
|
package/dist/RoomShell.js
CHANGED
|
@@ -3,13 +3,14 @@ import { MosaicLayout } from '@sqlrooms/layout';
|
|
|
3
3
|
import { RoomStateProvider } from '@sqlrooms/room-store';
|
|
4
4
|
import { cn, ErrorBoundary, ProgressModal, SpinnerPane, Toaster, TooltipProvider, } from '@sqlrooms/ui';
|
|
5
5
|
import { Suspense, useCallback } from 'react';
|
|
6
|
+
import { RoomShellCommandPalette } from './RoomShellCommandPalette';
|
|
6
7
|
import { RoomShellSidebarButtons, SidebarButton, } from './RoomShellSidebarButtons';
|
|
7
8
|
import { useBaseRoomShellStore } from './RoomShellSlice';
|
|
8
9
|
export function RoomShellBase({ className, children, roomStore, }) {
|
|
9
10
|
return (_jsx(RoomStateProvider, { roomStore: roomStore, children: _jsx("div", { className: cn('flex h-full w-full', className), children: _jsx(ErrorBoundary, { children: _jsxs(Suspense, { fallback: _jsx(SpinnerPane, { h: "100%" }), children: [_jsx(TooltipProvider, { children: children }), _jsx(Toaster, {})] }) }) }) }));
|
|
10
11
|
}
|
|
11
12
|
export const RoomSidebar = ({ className, children, }) => {
|
|
12
|
-
return (_jsxs("div", { className: cn('bg-muted/70 flex h-full w-12 flex-col items-center px-1 py-4', className), children: [_jsx(RoomShellSidebarButtons, {}), children] }));
|
|
13
|
+
return (_jsxs("div", { className: cn('bg-muted/70 flex h-full w-12 flex-col items-center gap-2 px-1 py-4', className), children: [_jsx(RoomShellSidebarButtons, {}), children] }));
|
|
13
14
|
};
|
|
14
15
|
export const LayoutComposer = ({ className, tileClassName }) => {
|
|
15
16
|
const layout = useBaseRoomShellStore((state) => state.layout.config);
|
|
@@ -44,5 +45,6 @@ export const RoomShell = Object.assign(RoomShellBase, {
|
|
|
44
45
|
SidebarButtons: RoomShellSidebarButtons,
|
|
45
46
|
LayoutComposer: LayoutComposer,
|
|
46
47
|
LoadingProgress: LoadingProgress,
|
|
48
|
+
CommandPalette: RoomShellCommandPalette,
|
|
47
49
|
});
|
|
48
50
|
//# sourceMappingURL=RoomShell.js.map
|
package/dist/RoomShell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoomShell.js","sourceRoot":"","sources":["../src/RoomShell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAC,iBAAiB,EAAC,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,EAAE,EACF,aAAa,EACb,aAAa,EACb,WAAW,EACX,OAAO,EACP,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAwB,QAAQ,EAAE,WAAW,EAAC,MAAM,OAAO,CAAC;AAEnE,OAAO,EACL,uBAAuB,EACvB,aAAa,GACd,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAiB,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAEvE,MAAM,UAAU,aAAa,CAAC,EAC5B,SAAS,EACT,QAAQ,EACR,SAAS,GAIT;IACA,OAAO,CACL,KAAC,iBAAiB,IAAC,SAAS,EAAE,SAAS,YACrC,cAAK,SAAS,EAAE,EAAE,CAAC,oBAAoB,EAAE,SAAS,CAAC,YACjD,KAAC,aAAa,cACZ,MAAC,QAAQ,IAAC,QAAQ,EAAE,KAAC,WAAW,IAAC,CAAC,EAAC,MAAM,GAAG,aAC1C,KAAC,eAAe,cAAE,QAAQ,GAAmB,EAC7C,KAAC,OAAO,KAAG,IACF,GACG,GACZ,GACY,CACrB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAgD,CAAC,EACvE,SAAS,EACT,QAAQ,GACT,EAAE,EAAE;IACH,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,
|
|
1
|
+
{"version":3,"file":"RoomShell.js","sourceRoot":"","sources":["../src/RoomShell.tsx"],"names":[],"mappings":"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","sourcesContent":["import {MosaicLayout} from '@sqlrooms/layout';\nimport {RoomStateProvider} from '@sqlrooms/room-store';\nimport {\n cn,\n ErrorBoundary,\n ProgressModal,\n SpinnerPane,\n Toaster,\n TooltipProvider,\n} from '@sqlrooms/ui';\nimport {FC, PropsWithChildren, Suspense, useCallback} from 'react';\nimport {MosaicNode} from 'react-mosaic-component';\nimport {RoomShellCommandPalette} from './RoomShellCommandPalette';\nimport {\n RoomShellSidebarButtons,\n SidebarButton,\n} from './RoomShellSidebarButtons';\nimport {RoomShellStore, useBaseRoomShellStore} from './RoomShellSlice';\n\nexport function RoomShellBase({\n className,\n children,\n roomStore,\n}: React.PropsWithChildren<{\n className?: string;\n roomStore?: RoomShellStore;\n}>) {\n return (\n <RoomStateProvider roomStore={roomStore}>\n <div className={cn('flex h-full w-full', className)}>\n <ErrorBoundary>\n <Suspense fallback={<SpinnerPane h=\"100%\" />}>\n <TooltipProvider>{children}</TooltipProvider>\n <Toaster />\n </Suspense>\n </ErrorBoundary>\n </div>\n </RoomStateProvider>\n );\n}\n\nexport const RoomSidebar: FC<PropsWithChildren<{className?: string}>> = ({\n className,\n children,\n}) => {\n return (\n <div\n className={cn(\n 'bg-muted/70 flex h-full w-12 flex-col items-center gap-2 px-1 py-4',\n className,\n )}\n >\n <RoomShellSidebarButtons />\n {children}\n </div>\n );\n};\n\nexport const LayoutComposer: FC<{\n className?: string;\n tileClassName?: string;\n}> = ({className, tileClassName}) => {\n const layout = useBaseRoomShellStore((state) => state.layout.config);\n const setLayout = useBaseRoomShellStore((state) => state.layout.setLayout);\n const panels = useBaseRoomShellStore((state) => state.layout.panels);\n const ErrorBoundary = useBaseRoomShellStore(\n (state) => state.room.CustomErrorBoundary,\n );\n\n const handleLayoutChange = useCallback(\n (nodes: MosaicNode<string> | null) => {\n // Keep layout properties, e.g. 'pinned' and 'fixed'\n setLayout({...layout, nodes});\n },\n [setLayout, layout],\n );\n\n // const visibleRoomPanels = useMemo(\n // () => getVisibleMosaicLayoutPanels(layout?.nodes),\n // [layout],\n // );\n\n const renderTile = (panelId: string) => {\n // const panelId = visibleRoomPanels.find((p) => p === id);\n const PanelComp = panelId && panels[panelId]?.component;\n if (!PanelComp) {\n return <></>;\n }\n return (\n <ErrorBoundary key={panelId}>\n <PanelComp />\n </ErrorBoundary>\n );\n };\n\n return (\n <div\n className={cn(\n 'flex h-full w-full grow flex-col items-stretch',\n className,\n )}\n >\n {layout ? (\n <MosaicLayout\n renderTile={renderTile}\n value={layout.nodes}\n onChange={handleLayoutChange}\n tileClassName={tileClassName}\n />\n ) : null}\n </div>\n );\n};\n\nexport const LoadingProgress: FC<{className?: string}> = ({className}) => {\n const loadingProgress = useBaseRoomShellStore((state) =>\n state.room.getLoadingProgress(),\n );\n return (\n <ProgressModal\n className={className}\n isOpen={loadingProgress !== undefined}\n title=\"Loading\"\n loadingStage={loadingProgress?.message}\n indeterminate={true}\n // progress={loadingProgress?.progress}\n />\n );\n};\n\nexport const RoomShell = Object.assign(RoomShellBase, {\n Sidebar: RoomSidebar,\n SidebarButton: SidebarButton,\n SidebarButtons: RoomShellSidebarButtons,\n LayoutComposer: LayoutComposer,\n LoadingProgress: LoadingProgress,\n CommandPalette: RoomShellCommandPalette,\n});\n"]}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Button } from '@sqlrooms/ui';
|
|
2
|
+
import { ComponentProps, ComponentType } from 'react';
|
|
3
|
+
export type RoomShellCommandPaletteProps = {
|
|
4
|
+
isOpen?: boolean;
|
|
5
|
+
defaultOpen?: boolean;
|
|
6
|
+
onOpenChange?: (open: boolean) => void;
|
|
7
|
+
placeholder?: string;
|
|
8
|
+
emptyMessage?: string;
|
|
9
|
+
enableKeyboardShortcut?: boolean;
|
|
10
|
+
};
|
|
11
|
+
declare function RoomShellCommandPaletteBase({ isOpen: controlledOpen, defaultOpen, onOpenChange, placeholder, emptyMessage, enableKeyboardShortcut, }: RoomShellCommandPaletteProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export type RoomShellCommandPaletteButtonProps = Omit<ComponentProps<typeof Button>, 'children'> & {
|
|
13
|
+
icon?: ComponentType<{
|
|
14
|
+
className?: string;
|
|
15
|
+
}>;
|
|
16
|
+
iconClassName?: string;
|
|
17
|
+
tooltip?: string;
|
|
18
|
+
};
|
|
19
|
+
declare function RoomShellCommandPaletteButton({ className, icon: Icon, iconClassName, tooltip, variant, size, onClick, ...buttonProps }: RoomShellCommandPaletteButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare const RoomShellCommandPalette: typeof RoomShellCommandPaletteBase & {
|
|
21
|
+
Button: typeof RoomShellCommandPaletteButton;
|
|
22
|
+
};
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=RoomShellCommandPalette.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoomShellCommandPalette.d.ts","sourceRoot":"","sources":["../src/RoomShellCommandPalette.tsx"],"names":[],"mappings":"AAYA,OAAO,EACL,MAAM,EAkBP,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,cAAc,EACd,aAAa,EAMd,MAAM,OAAO,CAAC;AAKf,MAAM,MAAM,4BAA4B,GAAG;IACzC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AA8CF,iBAAS,2BAA2B,CAAC,EACnC,MAAM,EAAE,cAAc,EACtB,WAAmB,EACnB,YAAY,EACZ,WAA2C,EAC3C,YAAmC,EACnC,sBAA6B,GAC9B,EAAE,4BAA4B,2CAua9B;AAED,MAAM,MAAM,kCAAkC,GAAG,IAAI,CACnD,cAAc,CAAC,OAAO,MAAM,CAAC,EAC7B,UAAU,CACX,GAAG;IACF,IAAI,CAAC,EAAE,aAAa,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,iBAAS,6BAA6B,CAAC,EACrC,SAAS,EACT,IAAI,EAAE,IAAkB,EACxB,aAAa,EACb,OAAO,EACP,OAAiB,EACjB,IAAa,EACb,OAAO,EACP,GAAG,WAAW,EACf,EAAE,kCAAkC,2CAyBpC;AAED,eAAO,MAAM,uBAAuB;;CAKnC,CAAC"}
|