mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-28 14:15:24 +00:00
feat: load plugin frontends at runtime and remove plugin ids from the shell
This commit is contained in:
1 parent
49f0286a14
commit
e88d5a52e3
721 files changed
+54265
-44416
No files matched your search
@@ -0,0 +1,65 @@
|
||||
/**
|
||||
* @termix/plugin-sdk/ui: the shell's components, for plugins.
|
||||
*
|
||||
* Everything exported here is public API. A plugin builds its UI from these
|
||||
* so it looks like the rest of the app and picks up theme changes, and it
|
||||
* receives the shell's own instances through the import map, never a copy.
|
||||
*
|
||||
* The list is deliberate. It covers what the bundled plugins use today: the
|
||||
* shadcn primitives, the composites for metrics, connection screens and
|
||||
* settings rows, and the contexts a connection surface needs. Adding to it is
|
||||
* a contract change; update ARCHITECTURE.md with it. Removing from it breaks
|
||||
* plugins.
|
||||
*/
|
||||
|
||||
// Primitives
|
||||
export * from "@/components/alert";
|
||||
export * from "@/components/alert-dialog";
|
||||
export * from "@/components/badge";
|
||||
export * from "@/components/button";
|
||||
export * from "@/components/card";
|
||||
export * from "@/components/checkbox";
|
||||
export * from "@/components/dialog";
|
||||
export * from "@/components/dropdown-menu";
|
||||
export * from "@/components/input";
|
||||
export * from "@/components/label";
|
||||
export * from "@/components/password-input";
|
||||
export * from "@/components/select";
|
||||
export * from "@/components/select2";
|
||||
export * from "@/components/separator";
|
||||
export * from "@/components/switch";
|
||||
export * from "@/components/textarea";
|
||||
export * from "@/components/tooltip";
|
||||
|
||||
// Composites
|
||||
export * from "@/components/section-card";
|
||||
export * from "@/components/metric-card";
|
||||
export * from "@/components/charts";
|
||||
export {
|
||||
CardGridCanvas,
|
||||
ColumnCountStepper,
|
||||
} from "@/components/card-grid/CardGridCanvas";
|
||||
export type * from "@/components/card-grid/types";
|
||||
export { ConnectionScreen } from "@/components/connection/ConnectionScreen";
|
||||
export * from "@/components/connection/connection-status";
|
||||
export { SnippetVariablesDialog } from "@/components/SnippetVariablesDialog";
|
||||
export {
|
||||
FullScreenAppWrapper,
|
||||
type FullScreenAppPhase,
|
||||
} from "@/features/FullScreenAppWrapper";
|
||||
|
||||
// Connection surfaces
|
||||
export {
|
||||
ConnectionLogProvider,
|
||||
useConnectionLog,
|
||||
useOptionalConnectionLog,
|
||||
} from "@/ssh/connection-log/ConnectionLogContext";
|
||||
export { TOTPDialog, type MFAPromptMode } from "@/ssh/dialogs/TOTPDialog";
|
||||
export { SSHAuthDialog } from "@/ssh/dialogs/SSHAuthDialog";
|
||||
export { WarpgateDialog } from "@/ssh/dialogs/WarpgateDialog";
|
||||
|
||||
// Shell context
|
||||
export { useTabs, useTabsSafe } from "@/shell/TabContext";
|
||||
|
||||
// Slots: a plugin can offer places for other plugins to fill.
|
||||
export { ActionSlot, ComponentSlot } from "@/shell/ActionSlot";
|
||||
Reference in new issue
Block a user