@danxbot/ui 15.3.0 → 15.4.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.
@@ -46,6 +46,14 @@ export type NavSection = {
46
46
  export interface AppShellProps {
47
47
  /** Brand mark, top of the sidebar. */
48
48
  brand?: ReactNode;
49
+ /**
50
+ * DX-3412 — an alternate, narrower brand mark shown in place of `brand`
51
+ * when the sidebar is COLLAPSED (`data-collapsed`) — a logo-only mark that
52
+ * fits the 56px collapsed rail (`w-14`), where the full `brand` (typically
53
+ * a logo + team name) would overflow. Omit to render nothing in the
54
+ * collapsed rail's brand row, the pre-DX-3412 behavior.
55
+ */
56
+ brandCollapsed?: ReactNode;
49
57
  sections: NavSection[];
50
58
  activeId?: string;
51
59
  /** Pinned to the bottom of the sidebar — account, version, help. */
@@ -153,4 +161,4 @@ export interface AppShellProps {
153
161
  children: ReactNode;
154
162
  className?: string;
155
163
  }
156
- export declare function AppShell({ brand, sections, activeId, sidebarFooter, header, contentLandmark, navLabel, scroll, scrollResetKey, persistId, children, className, }: AppShellProps): import("react").JSX.Element;
164
+ export declare function AppShell({ brand, brandCollapsed, sections, activeId, sidebarFooter, header, contentLandmark, navLabel, scroll, scrollResetKey, persistId, children, className, }: AppShellProps): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ export interface BrandProps {
2
+ name: string;
3
+ logoUrl?: string | null;
4
+ /** Logo only, no team name — the collapsed-rail / icon-only rendering. */
5
+ compact?: boolean;
6
+ className?: string;
7
+ }
8
+ export declare function Brand({ name, logoUrl, compact, className }: BrandProps): import("react").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import type { ReactNode } from "react";
2
+ export interface DangerZoneProps {
3
+ title?: string;
4
+ description?: string;
5
+ children?: ReactNode;
6
+ className?: string;
7
+ }
8
+ export declare function DangerZone({ title, description, children, className }: DangerZoneProps): import("react").JSX.Element;
@@ -0,0 +1,20 @@
1
+ export interface TeamSettingsFormTeam {
2
+ name: string;
3
+ logoUrl?: string | null;
4
+ }
5
+ export interface TeamSettingsFormSaveInput {
6
+ name: string;
7
+ }
8
+ export interface TeamSettingsFormProps {
9
+ team: TeamSettingsFormTeam;
10
+ onSave: (input: TeamSettingsFormSaveInput) => Promise<void>;
11
+ onUploadLogo: (file: File) => Promise<string>;
12
+ /** Fired the moment a new logo finishes uploading (or is removed) — see
13
+ * the module header for why the logo has no separate Save step. */
14
+ onLogoChange?: (logoUrl: string | null) => void;
15
+ /** The viewer lacks `team.update` — every control renders disabled. */
16
+ readOnly?: boolean;
17
+ saveLabel?: string;
18
+ className?: string;
19
+ }
20
+ export declare function TeamSettingsForm({ team, onSave, onUploadLogo, onLogoChange, readOnly, saveLabel, className, }: TeamSettingsFormProps): import("react").JSX.Element;
@@ -15,3 +15,6 @@ export * from "./SessionsList";
15
15
  export * from "./ApiTokensPanel";
16
16
  export * from "./InvitationsList";
17
17
  export * from "./InviteMembersDialog";
18
+ export * from "./Brand";
19
+ export * from "./TeamSettingsForm";
20
+ export * from "./DangerZone";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danxbot/ui",
3
- "version": "15.3.0",
3
+ "version": "15.4.0",
4
4
  "type": "module",
5
5
  "description": "Danxbot — a domain-agnostic React design system with motion as a first-class primitive.",
6
6
  "license": "MIT",