@danxbot/ui 15.2.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;
@@ -6,6 +6,19 @@ export interface InvitationsListItem {
6
6
  status: InvitationStatus;
7
7
  createdAt: string;
8
8
  invitedByName?: string;
9
+ /**
10
+ * The MOST RECENT send attempt's outcome for this invitation (create or a
11
+ * later resend), when the consumer's read surfaced one. `undefined` means
12
+ * the consumer's data source has no send-history correlation — the list
13
+ * renders no delivery indicator at all in that case (never assumed "sent"
14
+ * from absence). Omit `lastEmailBounced`/`lastEmailComplained` the same
15
+ * way when unknown, rather than defaulting to `false`.
16
+ */
17
+ lastEmailStatus?: "sent" | "failed" | "suppressed";
18
+ /** A LATER async bounce notification arrived for the most recent send. */
19
+ lastEmailBounced?: boolean;
20
+ /** A LATER async complaint notification arrived for the most recent send. */
21
+ lastEmailComplained?: boolean;
9
22
  }
10
23
  export interface InvitationsListProps {
11
24
  invitations: InvitationsListItem[];
@@ -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.2.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",