@danxbot/ui 15.3.0 → 15.5.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,6 @@
1
+ export interface ForgotPasswordFormProps {
2
+ onSubmit: (email: string) => Promise<void>;
3
+ submitLabel?: string;
4
+ className?: string;
5
+ }
6
+ export declare function ForgotPasswordForm({ onSubmit, submitLabel, className }: ForgotPasswordFormProps): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { type ReactNode } from "react";
2
+ export interface LoginFormProps {
3
+ onSubmit: (identifier: string, password: string) => Promise<void>;
4
+ /** Rendered beside the password field's label — typically a "Forgot password?" link. */
5
+ forgotPasswordLink?: ReactNode;
6
+ submitLabel?: string;
7
+ className?: string;
8
+ }
9
+ export declare function LoginForm({ onSubmit, forgotPasswordLink, submitLabel, className, }: LoginFormProps): import("react").JSX.Element;
@@ -0,0 +1,9 @@
1
+ import { type PasswordRequirementRule } from "../PasswordRequirements";
2
+ export interface ResetPasswordFormProps {
3
+ /** Pure — recomputed against the current draft of the new password on every render. */
4
+ passwordRules: (nextPassword: string) => PasswordRequirementRule[];
5
+ onSubmit: (next: string) => Promise<void>;
6
+ submitLabel?: string;
7
+ className?: string;
8
+ }
9
+ export declare function ResetPasswordForm({ passwordRules, onSubmit, submitLabel, className, }: ResetPasswordFormProps): import("react").JSX.Element;
@@ -1,2 +1,5 @@
1
1
  export * from "./AuthLayout";
2
2
  export * from "./AcceptInvitationCard";
3
+ export * from "./LoginForm";
4
+ export * from "./ForgotPasswordForm";
5
+ export * from "./ResetPasswordForm";
@@ -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";
@@ -128,7 +128,7 @@ export { initialFocusDay, isInMonth, nextDayForKey, useGridNavigation, type Grid
128
128
  export { AmbiguousTimeError, addDays, addDuration, addMonths, atMidnight, atTime, comparePlainDate, dayFraction, dayLengthMs, dayOfWeek, daysBetween, daysInMonth, endOfMonth, hoursInDay, instantAtFraction, instantToPlainDate, instantToPlainDateTime, isSameDate, isoDateString, isoDateTimeString, monthGridDays, nextDay, offsetAt, parsePlainDate, plainDateTimeToInstant, relativeAge, startOfDay, startOfMonth, startOfWeek, weekDays, type CalendarDuration, type Disambiguation, type Instant, type PlainDate, type PlainDateTime, type TimeZone, } from "./lib/time";
129
129
  export { allDayBandSegment, dayKey, daySlots, isAllDay, packBand, packLanes, snapFractionToInstant, timeSegments, timedBandSegment, type AllDayEvent, type BandInput, type BandOptions, type BandPlacement, type BandResult, type BandSegment, type CalendarEvent, type CalendarEventId, type CalendarView, type DaySlot, type DragKind, type EventDraft, type EventPalette, type LaneInput, type LaneOptions, type LanePlacement, type PaletteEntry, type TimeSegment, type TimedEvent, type VisibleRange, } from "./lib/calendar";
130
130
  export { RBACProvider, useRBAC, Can, useHasPermission, AccountMenu, TeamSwitcher, DevToolsPopover, RolePermissionMatrix, RoleEditorDialog, ProfileForm, ProfilePage, RolesPermissionsPage, MembersPanel, ChangePasswordForm, SessionsList, ApiTokensPanel, InvitationsList, InviteMembersDialog, type RBACProviderProps, type RBACHookResult, type CanProps, type AccountMenuProps, type TeamSwitcherProps, type DevToolsPopoverProps, type RolePermissionMatrixProps, type RoleEditorDialogProps, type RoleEditorDialogSubmitInput, type ProfileFormProps, type ProfileFormAccount, type ProfileFormSaveInput, type ProfilePageProps, type RolesPermissionsPageProps, type MembersPanelProps, type MembersPanelMember, type ChangePasswordFormProps, type SessionsListProps, type Session, type ApiTokensPanelProps, type ApiToken, type InvitationsListProps, type InvitationsListItem, type InvitationStatus, type InviteMembersDialogProps, type Permission, type Role, type User, type Team, type TeamMembership, } from "./components/rbac";
131
- export { AuthLayout, AcceptInvitationCard, type AuthLayoutProps, type AcceptInvitationCardProps, } from "./components/auth";
131
+ export { AuthLayout, AcceptInvitationCard, LoginForm, ForgotPasswordForm, ResetPasswordForm, type AuthLayoutProps, type AcceptInvitationCardProps, type LoginFormProps, type ForgotPasswordFormProps, type ResetPasswordFormProps, } from "./components/auth";
132
132
  export { UseCaseCard, RoadmapItemCard, RoadmapSwimlaneBoard, UseCaseLedgerPage, RoadmapPage, PhaseManager, TrackManager, deriveRoadmapItemStatus, isFullyBuilt, isUnbuilt, trackIds, trackProgress, toneForIndex, CATEGORY_TONES, type Domain, type Phase, type Track, type RoadmapItem, type RoadmapItemStatus, type UseCase, type UseCaseStatus, type UseCaseDecision, type UseCaseCardProps, type RoadmapItemCardProps, type RoadmapSwimlaneBoardProps, type UseCaseLedgerPageProps, type RoadmapPageProps, type PhaseManagerProps, type TrackManagerProps, } from "./components/roadmap";
133
133
  export { ProvenanceDisclosure, ProvenanceDetail, ProvenanceBadge, ConfidenceReadout, ConfidenceMeter, ConfidenceBar, provenanceStateLabel, confidenceBand, confidenceScore, scoredConfidence, ratedConfidence, type ProvenanceRecord, type ProvenanceState, type ProvenanceSource, type ProvenanceCheck, type ProvenanceCall, type ProvenanceSignoff, type ConfidenceBand, type ConfidenceScore, type ProvenanceConfidence, type ConfidenceReadoutProps, type ConfidenceBarProps, type ConfidenceBarSize, type ProvenanceDisclosureProps, type ProvenanceDetailProps, type ProvenanceDetailTitleAs, type ProvenanceTriggerBadge, type ProvenanceBadgeProps, type ProvenanceBadgeAppearance, type ConfidenceMeterProps, } from "./components/provenance";
134
134
  export { confidenceLevel, CONFIDENCE_LEVEL_LABELS, type ConfidenceLevel } from "./lib/confidence";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@danxbot/ui",
3
- "version": "15.3.0",
3
+ "version": "15.5.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",