@floegence/floe-webapp-core 0.1.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/dist/app/FloeApp.d.ts +37 -0
- package/dist/app/FloeProvider.d.ts +17 -0
- package/dist/app/index.d.ts +2 -0
- package/dist/components/deck/DeckCell.d.ts +17 -0
- package/dist/components/deck/DeckGrid.d.ts +14 -0
- package/dist/components/deck/DeckTopBar.d.ts +9 -0
- package/dist/components/deck/DropZonePreview.d.ts +10 -0
- package/dist/components/deck/LayoutSelector.d.ts +7 -0
- package/dist/components/deck/WidgetFrame.d.ts +14 -0
- package/dist/components/deck/WidgetPalette.d.ts +7 -0
- package/dist/components/deck/WidgetResizeHandle.d.ts +9 -0
- package/dist/components/deck/WidgetTypeSwitcher.d.ts +9 -0
- package/dist/components/deck/index.d.ts +9 -0
- package/dist/components/icons/index.d.ts +29 -0
- package/dist/components/index.d.ts +5 -0
- package/dist/components/launchpad/Launchpad.d.ts +15 -0
- package/dist/components/launchpad/LaunchpadGrid.d.ts +8 -0
- package/dist/components/launchpad/LaunchpadItem.d.ts +18 -0
- package/dist/components/launchpad/LaunchpadPagination.d.ts +6 -0
- package/dist/components/launchpad/LaunchpadSearch.d.ts +6 -0
- package/dist/components/launchpad/index.d.ts +10 -0
- package/dist/components/layout/ActivityBar.d.ts +24 -0
- package/dist/components/layout/BottomBar.d.ts +27 -0
- package/dist/components/layout/MobileTabBar.d.ts +19 -0
- package/dist/components/layout/Panel.d.ts +27 -0
- package/dist/components/layout/ResizeHandle.d.ts +9 -0
- package/dist/components/layout/Shell.d.ts +23 -0
- package/dist/components/layout/Sidebar.d.ts +33 -0
- package/dist/components/layout/TopBar.d.ts +11 -0
- package/dist/components/layout/index.d.ts +9 -0
- package/dist/components/loading/LoadingOverlay.d.ts +10 -0
- package/dist/components/loading/Skeleton.d.ts +21 -0
- package/dist/components/loading/SnakeLoader.d.ts +9 -0
- package/dist/components/loading/index.d.ts +3 -0
- package/dist/components/ui/Button.d.ts +12 -0
- package/dist/components/ui/Card.d.ts +79 -0
- package/dist/components/ui/CommandPalette.d.ts +4 -0
- package/dist/components/ui/Dialog.d.ts +29 -0
- package/dist/components/ui/Dropdown.d.ts +35 -0
- package/dist/components/ui/FloatingWindow.d.ts +45 -0
- package/dist/components/ui/Input.d.ts +16 -0
- package/dist/components/ui/Tooltip.d.ts +12 -0
- package/dist/components/ui/index.d.ts +8 -0
- package/dist/context/CommandContext.d.ts +30 -0
- package/dist/context/ComponentRegistry.d.ts +90 -0
- package/dist/context/DeckContext.d.ts +88 -0
- package/dist/context/FloeConfigContext.d.ts +133 -0
- package/dist/context/LayoutContext.d.ts +20 -0
- package/dist/context/NotificationContext.d.ts +32 -0
- package/dist/context/ThemeContext.d.ts +12 -0
- package/dist/context/WidgetRegistry.d.ts +37 -0
- package/dist/context/createSimpleContext.d.ts +15 -0
- package/dist/context/index.d.ts +9 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/useDebounce.d.ts +5 -0
- package/dist/hooks/useDeckDrag.d.ts +6 -0
- package/dist/hooks/useKeybind.d.ts +4 -0
- package/dist/hooks/useMediaQuery.d.ts +5 -0
- package/dist/hooks/usePersisted.d.ts +5 -0
- package/dist/hooks/useResizeObserver.d.ts +9 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +226 -0
- package/dist/index10.js +92 -0
- package/dist/index11.js +101 -0
- package/dist/index12.js +113 -0
- package/dist/index13.js +82 -0
- package/dist/index14.js +123 -0
- package/dist/index15.js +106 -0
- package/dist/index16.js +131 -0
- package/dist/index17.js +152 -0
- package/dist/index18.js +41 -0
- package/dist/index19.js +61 -0
- package/dist/index2.js +215 -0
- package/dist/index20.js +79 -0
- package/dist/index21.js +162 -0
- package/dist/index22.js +293 -0
- package/dist/index23.js +136 -0
- package/dist/index24.js +45 -0
- package/dist/index25.js +146 -0
- package/dist/index26.js +258 -0
- package/dist/index27.js +92 -0
- package/dist/index28.js +42 -0
- package/dist/index29.js +71 -0
- package/dist/index3.js +94 -0
- package/dist/index30.js +280 -0
- package/dist/index31.js +154 -0
- package/dist/index32.js +31 -0
- package/dist/index33.js +50 -0
- package/dist/index34.js +15 -0
- package/dist/index35.js +32 -0
- package/dist/index36.js +51 -0
- package/dist/index37.js +41 -0
- package/dist/index38.js +28 -0
- package/dist/index39.js +176 -0
- package/dist/index4.js +55 -0
- package/dist/index40.js +43 -0
- package/dist/index41.js +69 -0
- package/dist/index42.js +99 -0
- package/dist/index43.js +120 -0
- package/dist/index44.js +141 -0
- package/dist/index45.js +42 -0
- package/dist/index46.js +386 -0
- package/dist/index47.js +16 -0
- package/dist/index48.js +13 -0
- package/dist/index49.js +19 -0
- package/dist/index5.js +48 -0
- package/dist/index50.js +13 -0
- package/dist/index51.js +11 -0
- package/dist/index52.js +59 -0
- package/dist/index53.js +8 -0
- package/dist/index54.js +6 -0
- package/dist/index55.js +48 -0
- package/dist/index56.js +29 -0
- package/dist/index57.js +35 -0
- package/dist/index58.js +94 -0
- package/dist/index59.js +25 -0
- package/dist/index6.js +73 -0
- package/dist/index60.js +49 -0
- package/dist/index61.js +17 -0
- package/dist/index62.js +38 -0
- package/dist/index63.js +67 -0
- package/dist/index64.js +87 -0
- package/dist/index65.js +17 -0
- package/dist/index66.js +2266 -0
- package/dist/index7.js +112 -0
- package/dist/index8.js +66 -0
- package/dist/index9.js +33 -0
- package/dist/styles/build.d.ts +1 -0
- package/dist/styles/themes/index.d.ts +9 -0
- package/dist/styles.css +1 -0
- package/dist/styles.js +1 -0
- package/dist/utils/animations.d.ts +222 -0
- package/dist/utils/bodyStyleLock.d.ts +9 -0
- package/dist/utils/cn.d.ts +5 -0
- package/dist/utils/defer.d.ts +5 -0
- package/dist/utils/gridCollision.d.ts +31 -0
- package/dist/utils/gridLayout.d.ts +38 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/keybind.d.ts +22 -0
- package/dist/utils/persist.d.ts +17 -0
- package/dist/widgets/MetricsWidget.d.ts +5 -0
- package/dist/widgets/SidebarWidget.d.ts +11 -0
- package/dist/widgets/TerminalWidget.d.ts +5 -0
- package/dist/widgets/index.d.ts +3 -0
- package/package.json +40 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
import type { DeepPartial, FloeConfig } from '../context/FloeConfigContext';
|
|
3
|
+
import { type ComponentContext, type FloeComponent } from '../context/ComponentRegistry';
|
|
4
|
+
import { type ShellProps } from '../components/layout/Shell';
|
|
5
|
+
import { type FloeProviderProps } from './FloeProvider';
|
|
6
|
+
export interface FloeAppProps<TProtocol = unknown> {
|
|
7
|
+
children: JSX.Element;
|
|
8
|
+
/** Global Floe configuration (storage, keybinds, strings, defaults). */
|
|
9
|
+
config?: DeepPartial<FloeConfig>;
|
|
10
|
+
/** Optional extra providers (e.g. protocol/router) to wrap the inner tree after ThemeProvider. */
|
|
11
|
+
wrapAfterTheme?: FloeProviderProps['wrapAfterTheme'];
|
|
12
|
+
/** Components to register into the ComponentRegistry (sidebar/commands/status). */
|
|
13
|
+
components?: FloeComponent<TProtocol>[];
|
|
14
|
+
/**
|
|
15
|
+
* Optional protocol resolver to inject into ComponentContext.protocol.
|
|
16
|
+
* Use this with wrapAfterTheme + ProtocolProvider:
|
|
17
|
+
* getProtocol={useProtocol}
|
|
18
|
+
*/
|
|
19
|
+
getProtocol?: () => TProtocol;
|
|
20
|
+
/**
|
|
21
|
+
* Optional hook to customize the per-component context (e.g. inject protocol).
|
|
22
|
+
* Tip: resolve external contexts (like useProtocol()) in your component body and close over them here.
|
|
23
|
+
*/
|
|
24
|
+
createComponentContext?: (id: string, base: ComponentContext<TProtocol>) => ComponentContext<TProtocol>;
|
|
25
|
+
/** Shell props (except children). */
|
|
26
|
+
shell?: Omit<ShellProps, 'children'>;
|
|
27
|
+
/** Whether to render CommandPalette (default: true). */
|
|
28
|
+
enableCommandPalette?: boolean;
|
|
29
|
+
/** Whether to render NotificationContainer (default: true). */
|
|
30
|
+
enableNotifications?: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* All-in-one Floe app wrapper (Provider + registry wiring + Shell + overlays).
|
|
34
|
+
*
|
|
35
|
+
* This is the recommended entrypoint for downstream apps.
|
|
36
|
+
*/
|
|
37
|
+
export declare function FloeApp<TProtocol = unknown>(props: FloeAppProps<TProtocol>): JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { JSX } from 'solid-js';
|
|
2
|
+
import type { DeepPartial, FloeConfig } from '../context/FloeConfigContext';
|
|
3
|
+
export interface FloeProviderProps {
|
|
4
|
+
children: JSX.Element;
|
|
5
|
+
/** Global Floe configuration (storage, keybinds, strings, defaults). */
|
|
6
|
+
config?: DeepPartial<FloeConfig>;
|
|
7
|
+
/**
|
|
8
|
+
* Allows consumers to inject their own providers *after* ThemeProvider,
|
|
9
|
+
* while ensuring the inner tree is created inside the injected provider.
|
|
10
|
+
*/
|
|
11
|
+
wrapAfterTheme?: (renderChildren: () => JSX.Element) => JSX.Element;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Convenience provider that wires up Floe core contexts in the recommended order.
|
|
15
|
+
* Protocol/Router are intentionally kept outside of core to avoid hard coupling.
|
|
16
|
+
*/
|
|
17
|
+
export declare function FloeProvider(props: FloeProviderProps): JSX.Element;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type DeckWidget } from '../../context/DeckContext';
|
|
2
|
+
import type { GridPosition } from '../../utils/gridCollision';
|
|
3
|
+
export interface DeckCellProps {
|
|
4
|
+
widget: DeckWidget;
|
|
5
|
+
position: GridPosition;
|
|
6
|
+
isDragging?: boolean;
|
|
7
|
+
isResizing?: boolean;
|
|
8
|
+
/** Pixel offset for smooth drag following */
|
|
9
|
+
pixelOffset?: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Widget cell wrapper positioned via CSS grid-area
|
|
16
|
+
*/
|
|
17
|
+
export declare function DeckCell(props: DeckCellProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
export interface DeckGridProps {
|
|
3
|
+
class?: string;
|
|
4
|
+
children?: JSX.Element;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* CSS Grid container for the deck layout (24 columns for fine-grained control)
|
|
8
|
+
*/
|
|
9
|
+
export declare function DeckGrid(props: DeckGridProps): JSX.Element;
|
|
10
|
+
export declare const DECK_GRID_CONFIG: {
|
|
11
|
+
cols: number;
|
|
12
|
+
rowHeight: number;
|
|
13
|
+
gap: number;
|
|
14
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
export interface DeckTopBarProps {
|
|
3
|
+
class?: string;
|
|
4
|
+
actions?: JSX.Element;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Deck header with edit mode toggle and layout selector
|
|
8
|
+
*/
|
|
9
|
+
export declare function DeckTopBar(props: DeckTopBarProps): JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { GridPosition } from '../../utils/gridCollision';
|
|
2
|
+
export interface DropZonePreviewProps {
|
|
3
|
+
position: GridPosition;
|
|
4
|
+
isValid?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Visual preview showing where a widget will be dropped
|
|
8
|
+
* Uses theme-adaptive colors: darker in light mode, lighter in dark mode
|
|
9
|
+
*/
|
|
10
|
+
export declare function DropZonePreview(props: DropZonePreviewProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
import { type DeckWidget } from '../../context/DeckContext';
|
|
3
|
+
import type { WidgetDefinition } from '../../context/WidgetRegistry';
|
|
4
|
+
export interface WidgetFrameProps {
|
|
5
|
+
widget: DeckWidget;
|
|
6
|
+
widgetDef?: WidgetDefinition;
|
|
7
|
+
isDragging?: boolean;
|
|
8
|
+
isResizing?: boolean;
|
|
9
|
+
children: JSX.Element;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Widget chrome with header, drag handle, and resize handles
|
|
13
|
+
*/
|
|
14
|
+
export declare function WidgetFrame(props: WidgetFrameProps): JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type DeckWidget, type ResizeState } from '../../context/DeckContext';
|
|
2
|
+
export interface WidgetResizeHandleProps {
|
|
3
|
+
widget: DeckWidget;
|
|
4
|
+
edge: ResizeState['edge'];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Resize handle for a specific edge of a widget
|
|
8
|
+
*/
|
|
9
|
+
export declare function WidgetResizeHandle(props: WidgetResizeHandleProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type DeckWidget } from '../../context/DeckContext';
|
|
2
|
+
export interface WidgetTypeSwitcherProps {
|
|
3
|
+
widget: DeckWidget;
|
|
4
|
+
class?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Dropdown for switching widget type while preserving position
|
|
8
|
+
*/
|
|
9
|
+
export declare function WidgetTypeSwitcher(props: WidgetTypeSwitcherProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { DeckGrid, DECK_GRID_CONFIG, type DeckGridProps } from './DeckGrid';
|
|
2
|
+
export { DeckCell, type DeckCellProps } from './DeckCell';
|
|
3
|
+
export { WidgetFrame, type WidgetFrameProps } from './WidgetFrame';
|
|
4
|
+
export { WidgetResizeHandle, type WidgetResizeHandleProps } from './WidgetResizeHandle';
|
|
5
|
+
export { WidgetPalette, type WidgetPaletteProps } from './WidgetPalette';
|
|
6
|
+
export { WidgetTypeSwitcher, type WidgetTypeSwitcherProps } from './WidgetTypeSwitcher';
|
|
7
|
+
export { LayoutSelector, type LayoutSelectorProps } from './LayoutSelector';
|
|
8
|
+
export { DeckTopBar, type DeckTopBarProps } from './DeckTopBar';
|
|
9
|
+
export { DropZonePreview, type DropZonePreviewProps } from './DropZonePreview';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { JSX } from 'solid-js';
|
|
2
|
+
export interface IconProps extends JSX.SvgSVGAttributes<SVGSVGElement> {
|
|
3
|
+
size?: number | string;
|
|
4
|
+
}
|
|
5
|
+
export declare const Search: (props?: IconProps) => JSX.Element;
|
|
6
|
+
export declare const Files: (props?: IconProps) => JSX.Element;
|
|
7
|
+
export declare const Settings: (props?: IconProps) => JSX.Element;
|
|
8
|
+
export declare const Terminal: (props?: IconProps) => JSX.Element;
|
|
9
|
+
export declare const Sun: (props?: IconProps) => JSX.Element;
|
|
10
|
+
export declare const Moon: (props?: IconProps) => JSX.Element;
|
|
11
|
+
export declare const X: (props?: IconProps) => JSX.Element;
|
|
12
|
+
export declare const Check: (props?: IconProps) => JSX.Element;
|
|
13
|
+
export declare const ChevronDown: (props?: IconProps) => JSX.Element;
|
|
14
|
+
export declare const Loader2: (props?: IconProps) => JSX.Element;
|
|
15
|
+
export declare const GitBranch: (props?: IconProps) => JSX.Element;
|
|
16
|
+
export declare const Bell: (props?: IconProps) => JSX.Element;
|
|
17
|
+
export declare const Grid: (props?: IconProps) => JSX.Element;
|
|
18
|
+
export declare const Plus: (props?: IconProps) => JSX.Element;
|
|
19
|
+
export declare const Trash: (props?: IconProps) => JSX.Element;
|
|
20
|
+
export declare const Pencil: (props?: IconProps) => JSX.Element;
|
|
21
|
+
export declare const GripVertical: (props?: IconProps) => JSX.Element;
|
|
22
|
+
export declare const Copy: (props?: IconProps) => JSX.Element;
|
|
23
|
+
export declare const LayoutDashboard: (props?: IconProps) => JSX.Element;
|
|
24
|
+
export declare const ChevronRight: (props?: IconProps) => JSX.Element;
|
|
25
|
+
export declare const ArrowRightLeft: (props?: IconProps) => JSX.Element;
|
|
26
|
+
export declare const Grid3x3: (props?: IconProps) => JSX.Element;
|
|
27
|
+
export declare const Maximize: (props?: IconProps) => JSX.Element;
|
|
28
|
+
export declare const Restore: (props?: IconProps) => JSX.Element;
|
|
29
|
+
export declare const Minus: (props?: IconProps) => JSX.Element;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
import type { LaunchpadItemData } from './LaunchpadItem';
|
|
3
|
+
export interface LaunchpadProps {
|
|
4
|
+
items: LaunchpadItemData[];
|
|
5
|
+
additionalItems?: LaunchpadItemData[];
|
|
6
|
+
onItemClick?: (item: LaunchpadItemData) => void;
|
|
7
|
+
onClose?: () => void;
|
|
8
|
+
itemsPerPage?: number;
|
|
9
|
+
columns?: number;
|
|
10
|
+
showSearch?: boolean;
|
|
11
|
+
class?: string;
|
|
12
|
+
style?: JSX.CSSProperties;
|
|
13
|
+
}
|
|
14
|
+
export declare function Launchpad(props: LaunchpadProps): JSX.Element;
|
|
15
|
+
export type { LaunchpadItemData } from './LaunchpadItem';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type LaunchpadItemData } from './LaunchpadItem';
|
|
2
|
+
export interface LaunchpadGridProps {
|
|
3
|
+
items: LaunchpadItemData[];
|
|
4
|
+
onItemClick?: (item: LaunchpadItemData) => void;
|
|
5
|
+
columns?: number;
|
|
6
|
+
animating?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function LaunchpadGrid(props: LaunchpadGridProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Component, JSX } from 'solid-js';
|
|
2
|
+
export interface LaunchpadItemData {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
icon: Component<{
|
|
6
|
+
class?: string;
|
|
7
|
+
}>;
|
|
8
|
+
description?: string;
|
|
9
|
+
color?: string;
|
|
10
|
+
onClick?: () => void;
|
|
11
|
+
}
|
|
12
|
+
export interface LaunchpadItemProps {
|
|
13
|
+
item: LaunchpadItemData;
|
|
14
|
+
index: number;
|
|
15
|
+
onClick?: (item: LaunchpadItemData) => void;
|
|
16
|
+
style?: JSX.CSSProperties;
|
|
17
|
+
}
|
|
18
|
+
export declare function LaunchpadItem(props: LaunchpadItemProps): JSX.Element;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { Launchpad } from './Launchpad';
|
|
2
|
+
export type { LaunchpadProps, LaunchpadItemData } from './Launchpad';
|
|
3
|
+
export { LaunchpadItem } from './LaunchpadItem';
|
|
4
|
+
export type { LaunchpadItemProps } from './LaunchpadItem';
|
|
5
|
+
export { LaunchpadGrid } from './LaunchpadGrid';
|
|
6
|
+
export type { LaunchpadGridProps } from './LaunchpadGrid';
|
|
7
|
+
export { LaunchpadSearch } from './LaunchpadSearch';
|
|
8
|
+
export type { LaunchpadSearchProps } from './LaunchpadSearch';
|
|
9
|
+
export { LaunchpadPagination } from './LaunchpadPagination';
|
|
10
|
+
export type { LaunchpadPaginationProps } from './LaunchpadPagination';
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type Component } from 'solid-js';
|
|
2
|
+
export interface ActivityBarItem {
|
|
3
|
+
id: string;
|
|
4
|
+
icon: Component<{
|
|
5
|
+
class?: string;
|
|
6
|
+
}>;
|
|
7
|
+
label: string;
|
|
8
|
+
badge?: number | string | (() => number | string | undefined);
|
|
9
|
+
onClick?: () => void;
|
|
10
|
+
}
|
|
11
|
+
export interface ActivityBarProps {
|
|
12
|
+
items: ActivityBarItem[];
|
|
13
|
+
bottomItems?: ActivityBarItem[];
|
|
14
|
+
activeId: string;
|
|
15
|
+
onActiveChange: (id: string) => void;
|
|
16
|
+
collapsed?: boolean;
|
|
17
|
+
onCollapsedChange?: (collapsed: boolean) => void;
|
|
18
|
+
class?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* VSCode-style Activity Bar
|
|
22
|
+
* Vertical icon strip on the left side
|
|
23
|
+
*/
|
|
24
|
+
export declare function ActivityBar(props: ActivityBarProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
export interface BottomBarProps {
|
|
3
|
+
children?: JSX.Element;
|
|
4
|
+
class?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Status bar at the bottom of the application
|
|
8
|
+
*/
|
|
9
|
+
export declare function BottomBar(props: BottomBarProps): JSX.Element;
|
|
10
|
+
/**
|
|
11
|
+
* Bottom bar item
|
|
12
|
+
*/
|
|
13
|
+
export interface BottomBarItemProps {
|
|
14
|
+
children: JSX.Element;
|
|
15
|
+
icon?: JSX.Element;
|
|
16
|
+
onClick?: () => void;
|
|
17
|
+
class?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare function BottomBarItem(props: BottomBarItemProps): JSX.Element;
|
|
20
|
+
/**
|
|
21
|
+
* Status indicator dot
|
|
22
|
+
*/
|
|
23
|
+
export interface StatusIndicatorProps {
|
|
24
|
+
status: 'connected' | 'disconnected' | 'connecting' | 'error';
|
|
25
|
+
label?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function StatusIndicator(props: StatusIndicatorProps): JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Component } from 'solid-js';
|
|
2
|
+
export interface MobileTabBarItem {
|
|
3
|
+
id: string;
|
|
4
|
+
icon: Component<{
|
|
5
|
+
class?: string;
|
|
6
|
+
}>;
|
|
7
|
+
label: string;
|
|
8
|
+
badge?: number | string | (() => number | string | undefined);
|
|
9
|
+
}
|
|
10
|
+
export interface MobileTabBarProps {
|
|
11
|
+
items: MobileTabBarItem[];
|
|
12
|
+
activeId: string;
|
|
13
|
+
onSelect: (id: string) => void;
|
|
14
|
+
class?: string;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Mobile-optimized bottom tab bar with horizontal scrolling
|
|
18
|
+
*/
|
|
19
|
+
export declare function MobileTabBar(props: MobileTabBarProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
export interface PanelProps {
|
|
3
|
+
children: JSX.Element;
|
|
4
|
+
class?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Generic panel container
|
|
8
|
+
*/
|
|
9
|
+
export declare function Panel(props: PanelProps): JSX.Element;
|
|
10
|
+
/**
|
|
11
|
+
* Panel header with title and actions
|
|
12
|
+
*/
|
|
13
|
+
export interface PanelHeaderProps {
|
|
14
|
+
children: JSX.Element;
|
|
15
|
+
actions?: JSX.Element;
|
|
16
|
+
class?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function PanelHeader(props: PanelHeaderProps): JSX.Element;
|
|
19
|
+
/**
|
|
20
|
+
* Panel content area with optional padding
|
|
21
|
+
*/
|
|
22
|
+
export interface PanelContentProps {
|
|
23
|
+
children: JSX.Element;
|
|
24
|
+
noPadding?: boolean;
|
|
25
|
+
class?: string;
|
|
26
|
+
}
|
|
27
|
+
export declare function PanelContent(props: PanelContentProps): JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface ResizeHandleProps {
|
|
2
|
+
direction: 'horizontal' | 'vertical';
|
|
3
|
+
onResize: (delta: number) => void;
|
|
4
|
+
class?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Draggable resize handle for panels
|
|
8
|
+
*/
|
|
9
|
+
export declare function ResizeHandle(props: ResizeHandleProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
import { type ActivityBarItem } from './ActivityBar';
|
|
3
|
+
export interface ShellProps {
|
|
4
|
+
children: JSX.Element;
|
|
5
|
+
logo?: JSX.Element;
|
|
6
|
+
activityItems?: ActivityBarItem[];
|
|
7
|
+
activityBottomItems?: ActivityBarItem[];
|
|
8
|
+
topBarActions?: JSX.Element;
|
|
9
|
+
bottomBarItems?: JSX.Element;
|
|
10
|
+
sidebarContent?: (activeTab: string) => JSX.Element;
|
|
11
|
+
terminalPanel?: JSX.Element;
|
|
12
|
+
class?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Main application shell with VSCode-style layout
|
|
16
|
+
* - Activity Bar (leftmost)
|
|
17
|
+
* - Sidebar (collapsible)
|
|
18
|
+
* - Main content area
|
|
19
|
+
* - Terminal panel (bottom, collapsible)
|
|
20
|
+
* - Top Bar
|
|
21
|
+
* - Bottom Bar (status)
|
|
22
|
+
*/
|
|
23
|
+
export declare function Shell(props: ShellProps): JSX.Element;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
export interface SidebarProps {
|
|
3
|
+
children: JSX.Element;
|
|
4
|
+
resizer?: JSX.Element;
|
|
5
|
+
width?: number;
|
|
6
|
+
class?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Collapsible sidebar panel
|
|
10
|
+
*/
|
|
11
|
+
export declare function Sidebar(props: SidebarProps): JSX.Element;
|
|
12
|
+
/**
|
|
13
|
+
* Sidebar section with optional header
|
|
14
|
+
*/
|
|
15
|
+
export interface SidebarSectionProps {
|
|
16
|
+
children: JSX.Element;
|
|
17
|
+
title?: string;
|
|
18
|
+
actions?: JSX.Element;
|
|
19
|
+
class?: string;
|
|
20
|
+
}
|
|
21
|
+
export declare function SidebarSection(props: SidebarSectionProps): JSX.Element;
|
|
22
|
+
/**
|
|
23
|
+
* Sidebar list item
|
|
24
|
+
*/
|
|
25
|
+
export interface SidebarItemProps {
|
|
26
|
+
children: JSX.Element;
|
|
27
|
+
icon?: JSX.Element;
|
|
28
|
+
active?: boolean;
|
|
29
|
+
indent?: number;
|
|
30
|
+
onClick?: () => void;
|
|
31
|
+
class?: string;
|
|
32
|
+
}
|
|
33
|
+
export declare function SidebarItem(props: SidebarItemProps): JSX.Element;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
export interface TopBarProps {
|
|
3
|
+
logo?: JSX.Element;
|
|
4
|
+
title?: string;
|
|
5
|
+
actions?: JSX.Element;
|
|
6
|
+
class?: string;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Top command bar with logo, search trigger, and actions
|
|
10
|
+
*/
|
|
11
|
+
export declare function TopBar(props: TopBarProps): JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { Shell, type ShellProps } from './Shell';
|
|
2
|
+
export { ActivityBar, type ActivityBarItem, type ActivityBarProps } from './ActivityBar';
|
|
3
|
+
export { Sidebar, SidebarSection, SidebarItem, type SidebarProps, type SidebarSectionProps, type SidebarItemProps } from './Sidebar';
|
|
4
|
+
export { TopBar, type TopBarProps } from './TopBar';
|
|
5
|
+
export { BottomBar, BottomBarItem, StatusIndicator, type BottomBarProps, type BottomBarItemProps, type StatusIndicatorProps } from './BottomBar';
|
|
6
|
+
export { MobileTabBar, type MobileTabBarItem, type MobileTabBarProps } from './MobileTabBar';
|
|
7
|
+
export { ResizeHandle, type ResizeHandleProps } from './ResizeHandle';
|
|
8
|
+
export { Panel, PanelHeader, PanelContent, type PanelProps, type PanelHeaderProps, type PanelContentProps } from './Panel';
|
|
9
|
+
export * from '../deck';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface LoadingOverlayProps {
|
|
2
|
+
visible: boolean;
|
|
3
|
+
message?: string;
|
|
4
|
+
fullscreen?: boolean;
|
|
5
|
+
class?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Full screen or container loading overlay
|
|
9
|
+
*/
|
|
10
|
+
export declare function LoadingOverlay(props: LoadingOverlayProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface SkeletonProps {
|
|
2
|
+
class?: string;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Skeleton placeholder for loading content
|
|
6
|
+
*/
|
|
7
|
+
export declare function Skeleton(props: SkeletonProps): import("solid-js").JSX.Element;
|
|
8
|
+
/**
|
|
9
|
+
* Common skeleton patterns
|
|
10
|
+
*/
|
|
11
|
+
export declare function SkeletonText(props: {
|
|
12
|
+
lines?: number;
|
|
13
|
+
class?: string;
|
|
14
|
+
}): import("solid-js").JSX.Element;
|
|
15
|
+
export declare function SkeletonCard(props: {
|
|
16
|
+
class?: string;
|
|
17
|
+
}): import("solid-js").JSX.Element;
|
|
18
|
+
export declare function SkeletonList(props: {
|
|
19
|
+
count?: number;
|
|
20
|
+
class?: string;
|
|
21
|
+
}): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface SnakeLoaderProps {
|
|
2
|
+
size?: 'sm' | 'md' | 'lg';
|
|
3
|
+
speed?: 'slow' | 'normal' | 'fast';
|
|
4
|
+
class?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* 9-cell grid loader with breathing center and rotating trail
|
|
8
|
+
*/
|
|
9
|
+
export declare function SnakeLoader(props: SnakeLoaderProps): import("solid-js").JSX.Element;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type JSX, type Component } from 'solid-js';
|
|
2
|
+
export type ButtonVariant = 'default' | 'primary' | 'secondary' | 'outline' | 'ghost' | 'destructive';
|
|
3
|
+
export type ButtonSize = 'sm' | 'md' | 'lg' | 'icon';
|
|
4
|
+
export interface ButtonProps extends JSX.ButtonHTMLAttributes<HTMLButtonElement> {
|
|
5
|
+
variant?: ButtonVariant;
|
|
6
|
+
size?: ButtonSize;
|
|
7
|
+
loading?: boolean;
|
|
8
|
+
icon?: Component<{
|
|
9
|
+
class?: string;
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
12
|
+
export declare function Button(props: ButtonProps): JSX.Element;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { type JSX } from 'solid-js';
|
|
2
|
+
export type CardVariant = 'default' | 'hover-lift' | 'gradient-border' | 'glass' | 'spotlight' | 'shimmer' | 'glow';
|
|
3
|
+
export interface CardProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
variant?: CardVariant;
|
|
5
|
+
/** Enable 3D perspective tilt on hover (works best with hover-lift and spotlight variants) */
|
|
6
|
+
enableTilt?: boolean;
|
|
7
|
+
/** Custom gradient colors for gradient-border variant */
|
|
8
|
+
gradientColors?: string;
|
|
9
|
+
/** Glow color for glow variant */
|
|
10
|
+
glowColor?: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Base Card component
|
|
14
|
+
*/
|
|
15
|
+
export declare function Card(props: CardProps): JSX.Element;
|
|
16
|
+
/**
|
|
17
|
+
* Card header component
|
|
18
|
+
*/
|
|
19
|
+
export type CardHeaderProps = JSX.HTMLAttributes<HTMLDivElement>;
|
|
20
|
+
export declare function CardHeader(props: CardHeaderProps): JSX.Element;
|
|
21
|
+
/**
|
|
22
|
+
* Card title component
|
|
23
|
+
*/
|
|
24
|
+
export type CardTitleProps = JSX.HTMLAttributes<HTMLHeadingElement>;
|
|
25
|
+
export declare function CardTitle(props: CardTitleProps): JSX.Element;
|
|
26
|
+
/**
|
|
27
|
+
* Card description component
|
|
28
|
+
*/
|
|
29
|
+
export type CardDescriptionProps = JSX.HTMLAttributes<HTMLParagraphElement>;
|
|
30
|
+
export declare function CardDescription(props: CardDescriptionProps): JSX.Element;
|
|
31
|
+
/**
|
|
32
|
+
* Card content component
|
|
33
|
+
*/
|
|
34
|
+
export type CardContentProps = JSX.HTMLAttributes<HTMLDivElement>;
|
|
35
|
+
export declare function CardContent(props: CardContentProps): JSX.Element;
|
|
36
|
+
/**
|
|
37
|
+
* Card footer component
|
|
38
|
+
*/
|
|
39
|
+
export type CardFooterProps = JSX.HTMLAttributes<HTMLDivElement>;
|
|
40
|
+
export declare function CardFooter(props: CardFooterProps): JSX.Element;
|
|
41
|
+
/**
|
|
42
|
+
* Interactive 3D Card with mouse tracking
|
|
43
|
+
*/
|
|
44
|
+
export interface Interactive3DCardProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
45
|
+
/** Intensity of the 3D effect (1-20, default 10) */
|
|
46
|
+
intensity?: number;
|
|
47
|
+
/** Enable shine effect */
|
|
48
|
+
shine?: boolean;
|
|
49
|
+
/** Border glow on hover */
|
|
50
|
+
borderGlow?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export declare function Interactive3DCard(props: Interactive3DCardProps): JSX.Element;
|
|
53
|
+
/**
|
|
54
|
+
* Animated Border Card with rotating gradient
|
|
55
|
+
*/
|
|
56
|
+
export interface AnimatedBorderCardProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
57
|
+
/** Animation duration in seconds */
|
|
58
|
+
duration?: number;
|
|
59
|
+
/** Border width in pixels */
|
|
60
|
+
borderWidth?: number;
|
|
61
|
+
/** Gradient colors (Tailwind classes) */
|
|
62
|
+
colors?: string;
|
|
63
|
+
}
|
|
64
|
+
export declare function AnimatedBorderCard(props: AnimatedBorderCardProps): JSX.Element;
|
|
65
|
+
/**
|
|
66
|
+
* Neon Glow Card
|
|
67
|
+
*/
|
|
68
|
+
export interface NeonCardProps extends JSX.HTMLAttributes<HTMLDivElement> {
|
|
69
|
+
/** Neon color (CSS color value) */
|
|
70
|
+
color?: string;
|
|
71
|
+
/** Pulse animation */
|
|
72
|
+
pulse?: boolean;
|
|
73
|
+
}
|
|
74
|
+
export declare function NeonCard(props: NeonCardProps): JSX.Element;
|
|
75
|
+
/**
|
|
76
|
+
* Morphing Card with blob-like background
|
|
77
|
+
*/
|
|
78
|
+
export type MorphCardProps = JSX.HTMLAttributes<HTMLDivElement>;
|
|
79
|
+
export declare function MorphCard(props: MorphCardProps): JSX.Element;
|