@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.
Files changed (145) hide show
  1. package/dist/app/FloeApp.d.ts +37 -0
  2. package/dist/app/FloeProvider.d.ts +17 -0
  3. package/dist/app/index.d.ts +2 -0
  4. package/dist/components/deck/DeckCell.d.ts +17 -0
  5. package/dist/components/deck/DeckGrid.d.ts +14 -0
  6. package/dist/components/deck/DeckTopBar.d.ts +9 -0
  7. package/dist/components/deck/DropZonePreview.d.ts +10 -0
  8. package/dist/components/deck/LayoutSelector.d.ts +7 -0
  9. package/dist/components/deck/WidgetFrame.d.ts +14 -0
  10. package/dist/components/deck/WidgetPalette.d.ts +7 -0
  11. package/dist/components/deck/WidgetResizeHandle.d.ts +9 -0
  12. package/dist/components/deck/WidgetTypeSwitcher.d.ts +9 -0
  13. package/dist/components/deck/index.d.ts +9 -0
  14. package/dist/components/icons/index.d.ts +29 -0
  15. package/dist/components/index.d.ts +5 -0
  16. package/dist/components/launchpad/Launchpad.d.ts +15 -0
  17. package/dist/components/launchpad/LaunchpadGrid.d.ts +8 -0
  18. package/dist/components/launchpad/LaunchpadItem.d.ts +18 -0
  19. package/dist/components/launchpad/LaunchpadPagination.d.ts +6 -0
  20. package/dist/components/launchpad/LaunchpadSearch.d.ts +6 -0
  21. package/dist/components/launchpad/index.d.ts +10 -0
  22. package/dist/components/layout/ActivityBar.d.ts +24 -0
  23. package/dist/components/layout/BottomBar.d.ts +27 -0
  24. package/dist/components/layout/MobileTabBar.d.ts +19 -0
  25. package/dist/components/layout/Panel.d.ts +27 -0
  26. package/dist/components/layout/ResizeHandle.d.ts +9 -0
  27. package/dist/components/layout/Shell.d.ts +23 -0
  28. package/dist/components/layout/Sidebar.d.ts +33 -0
  29. package/dist/components/layout/TopBar.d.ts +11 -0
  30. package/dist/components/layout/index.d.ts +9 -0
  31. package/dist/components/loading/LoadingOverlay.d.ts +10 -0
  32. package/dist/components/loading/Skeleton.d.ts +21 -0
  33. package/dist/components/loading/SnakeLoader.d.ts +9 -0
  34. package/dist/components/loading/index.d.ts +3 -0
  35. package/dist/components/ui/Button.d.ts +12 -0
  36. package/dist/components/ui/Card.d.ts +79 -0
  37. package/dist/components/ui/CommandPalette.d.ts +4 -0
  38. package/dist/components/ui/Dialog.d.ts +29 -0
  39. package/dist/components/ui/Dropdown.d.ts +35 -0
  40. package/dist/components/ui/FloatingWindow.d.ts +45 -0
  41. package/dist/components/ui/Input.d.ts +16 -0
  42. package/dist/components/ui/Tooltip.d.ts +12 -0
  43. package/dist/components/ui/index.d.ts +8 -0
  44. package/dist/context/CommandContext.d.ts +30 -0
  45. package/dist/context/ComponentRegistry.d.ts +90 -0
  46. package/dist/context/DeckContext.d.ts +88 -0
  47. package/dist/context/FloeConfigContext.d.ts +133 -0
  48. package/dist/context/LayoutContext.d.ts +20 -0
  49. package/dist/context/NotificationContext.d.ts +32 -0
  50. package/dist/context/ThemeContext.d.ts +12 -0
  51. package/dist/context/WidgetRegistry.d.ts +37 -0
  52. package/dist/context/createSimpleContext.d.ts +15 -0
  53. package/dist/context/index.d.ts +9 -0
  54. package/dist/hooks/index.d.ts +6 -0
  55. package/dist/hooks/useDebounce.d.ts +5 -0
  56. package/dist/hooks/useDeckDrag.d.ts +6 -0
  57. package/dist/hooks/useKeybind.d.ts +4 -0
  58. package/dist/hooks/useMediaQuery.d.ts +5 -0
  59. package/dist/hooks/usePersisted.d.ts +5 -0
  60. package/dist/hooks/useResizeObserver.d.ts +9 -0
  61. package/dist/index.d.ts +7 -0
  62. package/dist/index.js +226 -0
  63. package/dist/index10.js +92 -0
  64. package/dist/index11.js +101 -0
  65. package/dist/index12.js +113 -0
  66. package/dist/index13.js +82 -0
  67. package/dist/index14.js +123 -0
  68. package/dist/index15.js +106 -0
  69. package/dist/index16.js +131 -0
  70. package/dist/index17.js +152 -0
  71. package/dist/index18.js +41 -0
  72. package/dist/index19.js +61 -0
  73. package/dist/index2.js +215 -0
  74. package/dist/index20.js +79 -0
  75. package/dist/index21.js +162 -0
  76. package/dist/index22.js +293 -0
  77. package/dist/index23.js +136 -0
  78. package/dist/index24.js +45 -0
  79. package/dist/index25.js +146 -0
  80. package/dist/index26.js +258 -0
  81. package/dist/index27.js +92 -0
  82. package/dist/index28.js +42 -0
  83. package/dist/index29.js +71 -0
  84. package/dist/index3.js +94 -0
  85. package/dist/index30.js +280 -0
  86. package/dist/index31.js +154 -0
  87. package/dist/index32.js +31 -0
  88. package/dist/index33.js +50 -0
  89. package/dist/index34.js +15 -0
  90. package/dist/index35.js +32 -0
  91. package/dist/index36.js +51 -0
  92. package/dist/index37.js +41 -0
  93. package/dist/index38.js +28 -0
  94. package/dist/index39.js +176 -0
  95. package/dist/index4.js +55 -0
  96. package/dist/index40.js +43 -0
  97. package/dist/index41.js +69 -0
  98. package/dist/index42.js +99 -0
  99. package/dist/index43.js +120 -0
  100. package/dist/index44.js +141 -0
  101. package/dist/index45.js +42 -0
  102. package/dist/index46.js +386 -0
  103. package/dist/index47.js +16 -0
  104. package/dist/index48.js +13 -0
  105. package/dist/index49.js +19 -0
  106. package/dist/index5.js +48 -0
  107. package/dist/index50.js +13 -0
  108. package/dist/index51.js +11 -0
  109. package/dist/index52.js +59 -0
  110. package/dist/index53.js +8 -0
  111. package/dist/index54.js +6 -0
  112. package/dist/index55.js +48 -0
  113. package/dist/index56.js +29 -0
  114. package/dist/index57.js +35 -0
  115. package/dist/index58.js +94 -0
  116. package/dist/index59.js +25 -0
  117. package/dist/index6.js +73 -0
  118. package/dist/index60.js +49 -0
  119. package/dist/index61.js +17 -0
  120. package/dist/index62.js +38 -0
  121. package/dist/index63.js +67 -0
  122. package/dist/index64.js +87 -0
  123. package/dist/index65.js +17 -0
  124. package/dist/index66.js +2266 -0
  125. package/dist/index7.js +112 -0
  126. package/dist/index8.js +66 -0
  127. package/dist/index9.js +33 -0
  128. package/dist/styles/build.d.ts +1 -0
  129. package/dist/styles/themes/index.d.ts +9 -0
  130. package/dist/styles.css +1 -0
  131. package/dist/styles.js +1 -0
  132. package/dist/utils/animations.d.ts +222 -0
  133. package/dist/utils/bodyStyleLock.d.ts +9 -0
  134. package/dist/utils/cn.d.ts +5 -0
  135. package/dist/utils/defer.d.ts +5 -0
  136. package/dist/utils/gridCollision.d.ts +31 -0
  137. package/dist/utils/gridLayout.d.ts +38 -0
  138. package/dist/utils/index.d.ts +8 -0
  139. package/dist/utils/keybind.d.ts +22 -0
  140. package/dist/utils/persist.d.ts +17 -0
  141. package/dist/widgets/MetricsWidget.d.ts +5 -0
  142. package/dist/widgets/SidebarWidget.d.ts +11 -0
  143. package/dist/widgets/TerminalWidget.d.ts +5 -0
  144. package/dist/widgets/index.d.ts +3 -0
  145. 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,2 @@
1
+ export { FloeProvider, type FloeProviderProps } from './FloeProvider';
2
+ export { FloeApp, type FloeAppProps } from './FloeApp';
@@ -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,7 @@
1
+ export interface LayoutSelectorProps {
2
+ class?: string;
3
+ }
4
+ /**
5
+ * Dropdown to switch between deck layouts
6
+ */
7
+ export declare function LayoutSelector(props: LayoutSelectorProps): 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,7 @@
1
+ export interface WidgetPaletteProps {
2
+ class?: string;
3
+ }
4
+ /**
5
+ * Slide-out panel for adding widgets to the deck
6
+ */
7
+ export declare function WidgetPalette(props: WidgetPaletteProps): import("solid-js").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,5 @@
1
+ export * from './layout';
2
+ export * from './ui';
3
+ export * from './loading';
4
+ export * from './icons';
5
+ export * from './launchpad';
@@ -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,6 @@
1
+ export interface LaunchpadPaginationProps {
2
+ totalPages: number;
3
+ currentPage: number;
4
+ onPageChange: (page: number) => void;
5
+ }
6
+ export declare function LaunchpadPagination(props: LaunchpadPaginationProps): import("solid-js").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export interface LaunchpadSearchProps {
2
+ value: string;
3
+ onChange: (value: string) => void;
4
+ placeholder?: string;
5
+ }
6
+ export declare function LaunchpadSearch(props: LaunchpadSearchProps): import("solid-js").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,3 @@
1
+ export { SnakeLoader, type SnakeLoaderProps } from './SnakeLoader';
2
+ export { LoadingOverlay, type LoadingOverlayProps } from './LoadingOverlay';
3
+ export { Skeleton, SkeletonText, SkeletonCard, SkeletonList, type SkeletonProps } from './Skeleton';
@@ -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;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Command palette / search modal
3
+ */
4
+ export declare function CommandPalette(): import("solid-js").JSX.Element;