@hachej/boring-core 0.1.58 → 0.1.60

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.
@@ -493,13 +493,48 @@ interface WorkspaceCommand {
493
493
  }
494
494
  declare function getWorkspaceCommands(workspaceId: string, navigate: NavigateFunction): WorkspaceCommand[];
495
495
 
496
- declare function UserMenu(): react_jsx_runtime.JSX.Element;
496
+ type UserMenuContentSide = 'top' | 'right' | 'bottom' | 'left';
497
+ type UserMenuContentAlign = 'start' | 'center' | 'end';
498
+ interface UserMenuProps {
499
+ /** Dropdown side relative to the trigger. Use "top" when the trigger lives in an app-left footer. */
500
+ contentSide?: UserMenuContentSide;
501
+ contentAlign?: UserMenuContentAlign;
502
+ /** 'compact' (default): avatar + chevron, for top bars. 'bar': full-width
503
+ * avatar + name + chevron, for the app-left footer account row. */
504
+ variant?: 'compact' | 'bar';
505
+ }
506
+ declare function UserMenu({ contentSide, contentAlign, variant }?: UserMenuProps): react_jsx_runtime.JSX.Element;
497
507
 
498
508
  interface WorkspaceSwitcherProps {
499
509
  appTitle?: string;
500
510
  workspacePathPrefix?: string;
511
+ /**
512
+ * 'full' (default): app glyph + "App / Workspace" — for top bars.
513
+ * 'workspace': just the workspace name + chevron — for the app-left pane,
514
+ * where the app brand is shown separately above (avoids "App / App").
515
+ */
516
+ displayMode?: 'full' | 'workspace';
517
+ }
518
+ declare function WorkspaceSwitcher({ appTitle, workspacePathPrefix, displayMode, }: WorkspaceSwitcherProps): react_jsx_runtime.JSX.Element;
519
+
520
+ interface CreateWorkspaceDialogProps {
521
+ open: boolean;
522
+ onOpenChange: (open: boolean) => void;
523
+ /** Called after the workspace is created and the cache is primed. */
524
+ onCreated?: (workspace: Workspace) => void;
525
+ title?: string;
526
+ description?: string;
527
+ /** Label for the submit button / spinner text noun. Defaults to "workspace". */
528
+ entityNoun?: string;
501
529
  }
502
- declare function WorkspaceSwitcher({ appTitle, workspacePathPrefix, }: WorkspaceSwitcherProps): react_jsx_runtime.JSX.Element;
530
+ /**
531
+ * Standalone "create a workspace" dialog, extracted from `WorkspaceSwitcher` so
532
+ * the multi-project app-left pane can offer a real form instead of a
533
+ * `window.prompt`. Controlled via
534
+ * `open`/`onOpenChange`; primes the workspaces cache and calls `onCreated`
535
+ * (e.g. to navigate to the new workspace).
536
+ */
537
+ declare function CreateWorkspaceDialog({ open, onOpenChange, onCreated, title, description, entityNoun, }: CreateWorkspaceDialogProps): react_jsx_runtime.JSX.Element;
503
538
 
504
539
  declare function ThemeToggle(): react_jsx_runtime.JSX.Element;
505
540
 
@@ -508,4 +543,4 @@ declare function sanitizeToolOutput(input: string): string;
508
543
 
509
544
  declare function debounce<T extends (...args: unknown[]) => unknown>(fn: T, ms: number): T;
510
545
 
511
- export { AppErrorBoundary, type AuthClient, AuthGate, type AuthGateProps, AuthProvider, type AuthProviderProps, type Binding, type Breakpoint, ConfigProvider, type ConfigProviderProps, type CoreCommand, type EnrichedMember, ForgotPasswordPage, GoogleAuthButton, type GoogleAuthButtonProps, InviteAcceptPage, InvitesPage, MembersPage, ResetPasswordPage, type RouteMap, SignInPage, SignUpPage, type ThemeApi, ThemeProvider, type ThemeProviderProps, ThemeToggle, type UserIdentity, UserIdentityProvider, type UserIdentityProviderProps, UserMenu, UserSettingsPage, VerifyEmailPage, WorkspaceAuthProvider, type WorkspaceAuthProviderProps, type WorkspaceCommand, type WorkspaceRouteStatus, WorkspaceSettingsPage, WorkspaceSwitcher, apiFetch, apiFetchJson, buildApiUrl, buildWsUrl, debounce, getApiBase, getAuthClient, getHttpErrorDetail, getWorkspaceCommands, getWsBase, openWebSocket, routeHref, routes, sanitizeMarkdown, sanitizeToolOutput, setApiBase, useBlobUrl, useCapabilities, useChangePassword, useConfig, useConfigLoaded, useCoreCommands, useCurrentWorkspace, useKeyboardShortcuts, useReducedMotion, useSendVerificationEmail, useSession, useSignIn, useSignOut, useSignUp, useTheme, useUser, useVerifyEmail, useViewportBreakpoint, useWorkspaceMembers, useWorkspaceRole, useWorkspaceRouteStatus };
546
+ export { AppErrorBoundary, type AuthClient, AuthGate, type AuthGateProps, AuthProvider, type AuthProviderProps, type Binding, type Breakpoint, ConfigProvider, type ConfigProviderProps, type CoreCommand, CreateWorkspaceDialog, type CreateWorkspaceDialogProps, type EnrichedMember, ForgotPasswordPage, GoogleAuthButton, type GoogleAuthButtonProps, InviteAcceptPage, InvitesPage, MembersPage, ResetPasswordPage, type RouteMap, SignInPage, SignUpPage, type ThemeApi, ThemeProvider, type ThemeProviderProps, ThemeToggle, type UserIdentity, UserIdentityProvider, type UserIdentityProviderProps, UserMenu, UserSettingsPage, VerifyEmailPage, WorkspaceAuthProvider, type WorkspaceAuthProviderProps, type WorkspaceCommand, type WorkspaceRouteStatus, WorkspaceSettingsPage, WorkspaceSwitcher, apiFetch, apiFetchJson, buildApiUrl, buildWsUrl, debounce, getApiBase, getAuthClient, getHttpErrorDetail, getWorkspaceCommands, getWsBase, openWebSocket, routeHref, routes, sanitizeMarkdown, sanitizeToolOutput, setApiBase, useBlobUrl, useCapabilities, useChangePassword, useConfig, useConfigLoaded, useCoreCommands, useCurrentWorkspace, useKeyboardShortcuts, useReducedMotion, useSendVerificationEmail, useSession, useSignIn, useSignOut, useSignUp, useTheme, useUser, useVerifyEmail, useViewportBreakpoint, useWorkspaceMembers, useWorkspaceRole, useWorkspaceRouteStatus };
@@ -4,6 +4,7 @@ import {
4
4
  AuthProvider,
5
5
  ConfigProvider,
6
6
  CoreFront,
7
+ CreateWorkspaceDialog,
7
8
  ForgotPasswordPage,
8
9
  GoogleAuthButton,
9
10
  InviteAcceptPage,
@@ -58,7 +59,7 @@ import {
58
59
  useWorkspaceMembers,
59
60
  useWorkspaceRole,
60
61
  useWorkspaceRouteStatus
61
- } from "../chunk-Q53N4QUK.js";
62
+ } from "../chunk-NC46VGXS.js";
62
63
  import {
63
64
  TopBarSlotProvider,
64
65
  useTopBarSlot
@@ -72,6 +73,7 @@ export {
72
73
  AuthProvider,
73
74
  ConfigProvider,
74
75
  CoreFront,
76
+ CreateWorkspaceDialog,
75
77
  ForgotPasswordPage,
76
78
  GoogleAuthButton,
77
79
  InviteAcceptPage,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hachej/boring-core",
3
- "version": "0.1.58",
3
+ "version": "0.1.60",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "description": "Foundation package for boring-ui-v2 apps: DB, auth, config, HTTP app factory, and frontend app shell.",
@@ -79,9 +79,9 @@
79
79
  "react-router-dom": "^7.14.2",
80
80
  "smol-toml": "^1.6.1",
81
81
  "zod": "^3.25.76",
82
- "@hachej/boring-agent": "0.1.58",
83
- "@hachej/boring-ui-kit": "0.1.58",
84
- "@hachej/boring-workspace": "0.1.58"
82
+ "@hachej/boring-agent": "0.1.60",
83
+ "@hachej/boring-workspace": "0.1.60",
84
+ "@hachej/boring-ui-kit": "0.1.60"
85
85
  },
86
86
  "devDependencies": {
87
87
  "@testing-library/jest-dom": "^6.9.1",