@exegia/corpora-ui 0.19.0 → 0.21.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.
- package/dist-lib/components/blocks/auth/__tests__/auth-state-atom.test.d.ts +1 -0
- package/dist-lib/components/blocks/auth/auth-flow-atom.d.ts +77 -0
- package/dist-lib/components/blocks/auth/auth-session-atom.d.ts +28 -0
- package/dist-lib/components/blocks/auth/auth-state-type.d.ts +71 -0
- package/dist-lib/components/blocks/auth/auth-state.d.ts +9 -0
- package/dist-lib/components/blocks/auth/use-auth-state.d.ts +52 -0
- package/dist-lib/components/blocks/nav/sidebar/__tests__/ai-sidebar-atom.test.d.ts +1 -0
- package/dist-lib/components/blocks/nav/sidebar/__tests__/use-ai-sidebar.test.d.ts +1 -0
- package/dist-lib/components/blocks/nav/sidebar/ai-sidebar-atom.d.ts +217 -0
- package/dist-lib/components/blocks/nav/sidebar/ai-sidebar.d.ts +11 -2
- package/dist-lib/components/blocks/nav/sidebar/index.d.ts +3 -1
- package/dist-lib/components/blocks/nav/sidebar/sidebar-context.d.ts +3 -0
- package/dist-lib/components/blocks/nav/sidebar/sidebar-row.d.ts +3 -1
- package/dist-lib/components/blocks/nav/sidebar/type.d.ts +191 -29
- package/dist-lib/components/blocks/nav/sidebar/use-ai-sidebar-state.d.ts +29 -0
- package/dist-lib/components/blocks/nav/sidebar/use-ai-sidebar.d.ts +27 -31
- package/dist-lib/components/blocks/nav/sidebar/utils.d.ts +6 -1
- package/dist-lib/components/blocks/profile/index.d.ts +7 -0
- package/dist-lib/components/blocks/profile/profile-card-atom.d.ts +68 -0
- package/dist-lib/components/blocks/profile/profile-card-block.d.ts +28 -39
- package/dist-lib/components/blocks/profile/type.d.ts +80 -0
- package/dist-lib/components/blocks/profile/use-profile-card-state.d.ts +24 -0
- package/dist-lib/components/blocks/profile/use-profile-card.d.ts +34 -0
- package/dist-lib/components/blocks/scaffold/constants.d.ts +5 -0
- package/dist-lib/components/blocks/scaffold/scaffold-canvas.d.ts +2 -0
- package/dist-lib/components/blocks/scaffold/scaffold-panel.d.ts +1 -1
- package/dist-lib/components/blocks/scaffold/scaffold-tab.d.ts +6 -1
- package/dist-lib/components/blocks/scaffold/type.d.ts +28 -0
- package/dist-lib/components/blocks/scaffold/use-panel-visibility.d.ts +19 -0
- package/dist-lib/components/blocks/scaffold/utils.d.ts +6 -0
- package/dist-lib/components/blocks/shell/__tests__/shell-fit-atom.test.d.ts +1 -0
- package/dist-lib/components/blocks/shell/__tests__/shell-metrics.test.d.ts +1 -0
- package/dist-lib/components/blocks/shell/animated-panel-provider.d.ts +1 -1
- package/dist-lib/components/blocks/shell/animated-panel.d.ts +1 -1
- package/dist-lib/components/blocks/shell/index.d.ts +4 -0
- package/dist-lib/components/blocks/shell/shell-fit-atom.d.ts +68 -0
- package/dist-lib/components/blocks/shell/shell-metrics.d.ts +54 -0
- package/dist-lib/components/blocks/shell/type.d.ts +115 -3
- package/dist-lib/components/blocks/shell/use-shell-fit-state.d.ts +25 -0
- package/dist-lib/components/blocks/shell/use-shell-fit.d.ts +14 -0
- package/dist-lib/components/blocks/shell/use-shell-panels.d.ts +12 -1
- package/dist-lib/components/blocks/shell/utils.d.ts +32 -0
- package/dist-lib/components/composed/tree/__tests__/tree-atom.test.d.ts +1 -0
- package/dist-lib/components/composed/tree/__tests__/tree.test.d.ts +1 -0
- package/dist-lib/components/composed/tree/__tests__/use-tree.test.d.ts +1 -0
- package/dist-lib/components/composed/tree/constants.d.ts +35 -0
- package/dist-lib/components/composed/tree/index.d.ts +6 -0
- package/dist-lib/components/composed/tree/tree-atom.d.ts +160 -0
- package/dist-lib/components/composed/tree/tree-context.d.ts +4 -0
- package/dist-lib/components/composed/tree/tree-node.d.ts +12 -0
- package/dist-lib/components/composed/tree/tree.d.ts +19 -0
- package/dist-lib/components/composed/tree/type.d.ts +290 -0
- package/dist-lib/components/composed/tree/use-tree-dnd.d.ts +18 -0
- package/dist-lib/components/composed/tree/use-tree-state.d.ts +25 -0
- package/dist-lib/components/composed/tree/use-tree.d.ts +24 -0
- package/dist-lib/components/composed/tree/utils.d.ts +28 -0
- package/dist-lib/components/composed/user-avatar.d.ts +5 -28
- package/dist-lib/components/user-avatar/__tests__/user-avatar.test.d.ts +1 -0
- package/dist-lib/components/user-avatar/audio-wave.d.ts +2 -0
- package/dist-lib/components/user-avatar/component.d.ts +3 -0
- package/dist-lib/components/user-avatar/fallback.d.ts +5 -0
- package/dist-lib/components/user-avatar/index.d.ts +18 -0
- package/dist-lib/components/user-avatar/presence-badge.d.ts +16 -0
- package/dist-lib/components/user-avatar/type.d.ts +71 -0
- package/dist-lib/components/user-avatar/use-user-avatar-state.d.ts +26 -0
- package/dist-lib/components/user-avatar/use-user-avatar.d.ts +32 -0
- package/dist-lib/components/user-avatar/user-avatar-atom.d.ts +55 -0
- package/dist-lib/components/user-avatar/utils.d.ts +2 -0
- package/dist-lib/index.d.ts +6 -2
- package/dist-lib/index.js +3576 -1366
- package/dist-lib/index.js.map +1 -1
- package/dist-lib/state/exegia-provider.d.ts +51 -0
- package/dist-lib/state/index.d.ts +4 -0
- package/dist-lib/state/store.d.ts +17 -0
- package/package.json +16 -12
- package/src/components/beste/piece/browser-frame.tsx +9 -6
- package/src/components/blocks/auth/__tests__/auth-state-atom.test.tsx +247 -0
- package/src/components/blocks/auth/auth-flow-atom.ts +238 -0
- package/src/components/blocks/auth/auth-session-atom.ts +82 -0
- package/src/components/blocks/auth/auth-state-type.ts +97 -0
- package/src/components/blocks/auth/auth-state.ts +52 -0
- package/src/components/blocks/auth/use-auth-state.ts +127 -0
- package/src/components/blocks/nav/sidebar/__tests__/ai-sidebar-atom.test.tsx +325 -0
- package/src/components/blocks/nav/sidebar/__tests__/use-ai-sidebar.test.tsx +310 -0
- package/src/components/blocks/nav/sidebar/ai-sidebar-atom.ts +698 -0
- package/src/components/blocks/nav/sidebar/ai-sidebar.tsx +112 -76
- package/src/components/blocks/nav/sidebar/index.ts +53 -1
- package/src/components/blocks/nav/sidebar/sidebar-context.ts +15 -0
- package/src/components/blocks/nav/sidebar/sidebar-row.tsx +119 -50
- package/src/components/blocks/nav/sidebar/type.ts +228 -29
- package/src/components/blocks/nav/sidebar/use-ai-sidebar-state.ts +123 -0
- package/src/components/blocks/nav/sidebar/use-ai-sidebar.ts +455 -225
- package/src/components/blocks/nav/sidebar/utils.ts +29 -1
- package/src/components/blocks/profile/__tests__/profile-card-block.test.tsx +194 -0
- package/src/components/blocks/profile/index.ts +28 -0
- package/src/components/blocks/profile/profile-card-atom.ts +247 -0
- package/src/components/blocks/profile/profile-card-block.tsx +153 -74
- package/src/components/blocks/profile/type.ts +95 -0
- package/src/components/blocks/profile/use-profile-card-state.ts +67 -0
- package/src/components/blocks/profile/use-profile-card.ts +126 -0
- package/src/components/blocks/scaffold/__tests__/scaffold.test.tsx +160 -1
- package/src/components/blocks/scaffold/constants.ts +7 -0
- package/src/components/blocks/scaffold/panel-menu-button.tsx +3 -0
- package/src/components/blocks/scaffold/scaffold-canvas.tsx +48 -5
- package/src/components/blocks/scaffold/scaffold-inspector.tsx +3 -2
- package/src/components/blocks/scaffold/scaffold-main.tsx +1 -1
- package/src/components/blocks/scaffold/scaffold-panel.tsx +41 -5
- package/src/components/blocks/scaffold/scaffold-root.tsx +18 -3
- package/src/components/blocks/scaffold/scaffold-sidebar.tsx +1 -1
- package/src/components/blocks/scaffold/scaffold-tab.tsx +45 -7
- package/src/components/blocks/scaffold/type.ts +28 -0
- package/src/components/blocks/scaffold/use-panel-visibility.ts +180 -0
- package/src/components/blocks/scaffold/utils.ts +19 -0
- package/src/components/blocks/shell/__tests__/shell-fit-atom.test.tsx +360 -0
- package/src/components/blocks/shell/__tests__/shell-layout.test.tsx +192 -3
- package/src/components/blocks/shell/__tests__/shell-metrics.test.ts +108 -0
- package/src/components/blocks/shell/animated-panel-inset.tsx +5 -1
- package/src/components/blocks/shell/animated-panel-provider.tsx +77 -11
- package/src/components/blocks/shell/animated-panel-trigger.tsx +4 -0
- package/src/components/blocks/shell/animated-panel.tsx +126 -29
- package/src/components/blocks/shell/index.ts +18 -0
- package/src/components/blocks/shell/shell-fit-atom.ts +243 -0
- package/src/components/blocks/shell/shell-layout.tsx +55 -53
- package/src/components/blocks/shell/shell-metrics.ts +79 -0
- package/src/components/blocks/shell/type.ts +130 -3
- package/src/components/blocks/shell/use-shell-fit-state.ts +49 -0
- package/src/components/blocks/shell/use-shell-fit.ts +135 -0
- package/src/components/blocks/shell/use-shell-panels.ts +57 -4
- package/src/components/blocks/shell/utils.ts +44 -4
- package/src/components/composed/tree/CLAUDE.md +132 -0
- package/src/components/composed/tree/__tests__/tree-atom.test.tsx +217 -0
- package/src/components/composed/tree/__tests__/tree.test.tsx +525 -0
- package/src/components/composed/tree/__tests__/use-tree.test.tsx +333 -0
- package/src/components/composed/tree/constants.ts +60 -0
- package/src/components/composed/tree/index.ts +51 -0
- package/src/components/composed/tree/tree-atom.ts +590 -0
- package/src/components/composed/tree/tree-context.ts +13 -0
- package/src/components/composed/tree/tree-node.tsx +490 -0
- package/src/components/composed/tree/tree.tsx +286 -0
- package/src/components/composed/tree/type.ts +322 -0
- package/src/components/composed/tree/use-tree-dnd.ts +179 -0
- package/src/components/composed/tree/use-tree-state.ts +105 -0
- package/src/components/composed/tree/use-tree.ts +307 -0
- package/src/components/composed/tree/utils.ts +172 -0
- package/src/components/composed/user-avatar.tsx +11 -96
- package/src/components/docs/component-preview.tsx +11 -11
- package/src/components/user-avatar/__tests__/user-avatar.test.tsx +245 -0
- package/src/components/user-avatar/audio-wave.tsx +22 -0
- package/src/components/user-avatar/component.tsx +152 -0
- package/src/components/user-avatar/fallback.tsx +26 -0
- package/src/components/user-avatar/index.ts +34 -0
- package/src/components/user-avatar/presence-badge.tsx +56 -0
- package/src/components/user-avatar/type.ts +85 -0
- package/src/components/user-avatar/use-user-avatar-state.ts +60 -0
- package/src/components/user-avatar/use-user-avatar.ts +144 -0
- package/src/components/user-avatar/user-avatar-atom.ts +198 -0
- package/src/components/user-avatar/utils.ts +8 -0
- package/src/index.css +211 -153
- package/src/index.ts +35 -2
- package/src/state/exegia-provider.tsx +79 -0
- package/src/state/index.ts +4 -0
- package/src/state/store.ts +19 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { AudioWave } from './audio-wave';
|
|
2
|
+
import { UserAvatar } from './component';
|
|
3
|
+
import { Fallback } from './fallback';
|
|
4
|
+
export { AudioWave } from './audio-wave';
|
|
5
|
+
export { UserAvatar } from './component';
|
|
6
|
+
export { Fallback } from './fallback';
|
|
7
|
+
export { PresenceBadge } from './presence-badge';
|
|
8
|
+
export { initialsFrom } from './utils';
|
|
9
|
+
export { useUserAvatar } from './use-user-avatar';
|
|
10
|
+
export type { UseUserAvatarOptions, UserAvatarBinding } from './use-user-avatar';
|
|
11
|
+
export { useUserAvatarActions, useUserAvatarState } from './use-user-avatar-state';
|
|
12
|
+
export { DEFAULT_BEZEL_ANGLE, removeUserAvatarInstance, resetUserAvatarAtom, setUserAvatarBezelAngleAtom, setUserAvatarPresenceAtom, toggleUserAvatarPresenceAtom, userAvatarBezelAngleAtom, userAvatarIsOnlineAtom, userAvatarPresenceAtom, userAvatarStateAtom, } from './user-avatar-atom';
|
|
13
|
+
export type * from './type';
|
|
14
|
+
export declare const Avatar: {
|
|
15
|
+
AudioWave: typeof AudioWave;
|
|
16
|
+
Component: typeof UserAvatar;
|
|
17
|
+
Fallback: typeof Fallback;
|
|
18
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { UserPresence } from './type';
|
|
2
|
+
/**
|
|
3
|
+
* Corner dot naming whether the person is reachable. Sits on the avatar
|
|
4
|
+
* frame, outside the clipped circle, with a background-coloured ring so it
|
|
5
|
+
* reads against any image. Colour is not the only signal: `offline` is a
|
|
6
|
+
* hollow ring, `online` a filled dot, and the label is spelled out for AT.
|
|
7
|
+
*
|
|
8
|
+
* `lightAngle` (degrees clockwise from 12) lays a faint sheen across the dot
|
|
9
|
+
* from that side — the same angle the avatar's bezel is lit from, so the two
|
|
10
|
+
* highlights agree and the badge reads as a bead sitting in the same light.
|
|
11
|
+
*/
|
|
12
|
+
export declare function PresenceBadge({ presence, lightAngle, className, }: {
|
|
13
|
+
presence: UserPresence;
|
|
14
|
+
lightAngle?: number;
|
|
15
|
+
className?: string;
|
|
16
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { AvatarPrimitive } from '../ui/avatar';
|
|
2
|
+
import type * as React from "react";
|
|
3
|
+
export type ImageStatus = Parameters<NonNullable<AvatarPrimitive.Image.Props["onLoadingStatusChange"]>>[0];
|
|
4
|
+
/** Whether the person is reachable right now — drawn as the corner badge. */
|
|
5
|
+
export type UserPresence = "online" | "offline";
|
|
6
|
+
/** Key for one avatar's state in the store. Any stable string; `useUserAvatar`
|
|
7
|
+
* generates one when the component does not name itself. */
|
|
8
|
+
export type UserAvatarInstanceId = string;
|
|
9
|
+
export interface UserAvatarProps extends Omit<AvatarPrimitive.Root.Props, "children"> {
|
|
10
|
+
/** Image URL. Without one the initials show immediately — no skeleton. */
|
|
11
|
+
src?: string;
|
|
12
|
+
/** Drives the initials, and the alt text unless `alt` overrides it. */
|
|
13
|
+
name?: string;
|
|
14
|
+
/** Overrides the initials derived from `name`. */
|
|
15
|
+
initials?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Alt text for the image. Pass "" when adjacent text already names the
|
|
18
|
+
* person — the image is then decorative.
|
|
19
|
+
*/
|
|
20
|
+
alt?: string;
|
|
21
|
+
/**
|
|
22
|
+
* Force the skeleton, for when the identity itself is still being fetched.
|
|
23
|
+
* Omitted, it follows the image: a passed `src` skeletons until it resolves.
|
|
24
|
+
*/
|
|
25
|
+
loading?: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Corner badge: a green dot for `online`, a hollow grey ring for `offline`.
|
|
28
|
+
* Omitted, no badge — unless the avatar is driven by id and something set
|
|
29
|
+
* its presence in the store. Controlled when passed.
|
|
30
|
+
*/
|
|
31
|
+
presence?: UserPresence;
|
|
32
|
+
/**
|
|
33
|
+
* Embossed rim whose highlight follows the pointer, so the avatar reads as
|
|
34
|
+
* a lit bezel rather than a flat disc. Light and dark aware; static under
|
|
35
|
+
* reduced motion. On by default — pass `false` for a flat disc.
|
|
36
|
+
*/
|
|
37
|
+
bezel?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Name this avatar's slice of the store so `useUserAvatarState(id)` /
|
|
40
|
+
* `useUserAvatarActions(id)` can read or drive it from anywhere under
|
|
41
|
+
* `ExegiaProvider`. Unnamed avatars key off `useId` and are dropped on
|
|
42
|
+
* unmount.
|
|
43
|
+
*/
|
|
44
|
+
avatarId?: UserAvatarInstanceId;
|
|
45
|
+
}
|
|
46
|
+
/** Everything the store knows about one avatar. */
|
|
47
|
+
export interface UserAvatarState {
|
|
48
|
+
presence: UserPresence | null;
|
|
49
|
+
/** Bezel light direction in degrees, clockwise from 12 o'clock. Continuous
|
|
50
|
+
* (may leave [0, 360)) so the rim's CSS rotation never spins the long way;
|
|
51
|
+
* `((a % 360) + 360) % 360` if you need it normalised. */
|
|
52
|
+
bezelAngle: number;
|
|
53
|
+
imageStatus: ImageStatus;
|
|
54
|
+
}
|
|
55
|
+
/** Write-only handles onto one avatar. Nothing here re-renders the caller. */
|
|
56
|
+
export interface UserAvatarActions {
|
|
57
|
+
setPresence: (presence: UserPresence | null) => void;
|
|
58
|
+
togglePresence: () => void;
|
|
59
|
+
setBezelAngle: (angle: number) => void;
|
|
60
|
+
reset: () => void;
|
|
61
|
+
}
|
|
62
|
+
/** @internal Which fields the mounted component controls from props. The
|
|
63
|
+
* store must never overwrite a controlled value. */
|
|
64
|
+
export interface UserAvatarConfig {
|
|
65
|
+
controlsPresence: boolean;
|
|
66
|
+
}
|
|
67
|
+
export interface IAudioWaveProps {
|
|
68
|
+
className?: string;
|
|
69
|
+
children?: React.ReactNode;
|
|
70
|
+
volume?: number;
|
|
71
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { UserAvatarActions, UserAvatarInstanceId, UserAvatarState } from './type';
|
|
2
|
+
/**
|
|
3
|
+
* Read the avatar registered under `avatarId` from anywhere below
|
|
4
|
+
* `ExegiaProvider` — no props, no ref, no provider of its own.
|
|
5
|
+
*
|
|
6
|
+
* ```tsx
|
|
7
|
+
* const { presence } = useUserAvatarState("me")
|
|
8
|
+
* ```
|
|
9
|
+
*
|
|
10
|
+
* Returns the whole state object, so the caller re-renders on any change —
|
|
11
|
+
* including every bezel frame while a pointer moves. A component that only
|
|
12
|
+
* cares about presence should subscribe to that atom instead:
|
|
13
|
+
* `useAtomValue(userAvatarPresenceAtom("me"))`.
|
|
14
|
+
*/
|
|
15
|
+
export declare function useUserAvatarState(avatarId: UserAvatarInstanceId): UserAvatarState;
|
|
16
|
+
/**
|
|
17
|
+
* Write-only handles onto the avatar registered under `avatarId`. Nothing
|
|
18
|
+
* here subscribes, so a presence indicator elsewhere in the app can flip
|
|
19
|
+
* the badge without re-rendering when the avatar changes.
|
|
20
|
+
*
|
|
21
|
+
* ```tsx
|
|
22
|
+
* const { setPresence } = useUserAvatarActions("me")
|
|
23
|
+
* socket.on("presence", (p) => setPresence(p))
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export declare function useUserAvatarActions(avatarId: UserAvatarInstanceId): UserAvatarActions;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ImageStatus, UserAvatarInstanceId, UserPresence } from './type';
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
export interface UseUserAvatarOptions {
|
|
4
|
+
avatarId?: UserAvatarInstanceId;
|
|
5
|
+
/** Controlled presence. `undefined` leaves the store in charge. */
|
|
6
|
+
presence?: UserPresence;
|
|
7
|
+
/** Track the pointer for the bezel highlight. */
|
|
8
|
+
bezel: boolean;
|
|
9
|
+
/** Only meaningful with an image — no image, no status to track. */
|
|
10
|
+
hasImage: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface UserAvatarBinding {
|
|
13
|
+
avatarId: UserAvatarInstanceId;
|
|
14
|
+
presence: UserPresence | null;
|
|
15
|
+
bezelAngle: number;
|
|
16
|
+
imageStatus: ImageStatus;
|
|
17
|
+
/** Hand to the image's `onLoadingStatusChange`. Stable. */
|
|
18
|
+
setImageStatus: (status: ImageStatus) => void;
|
|
19
|
+
/** Attach to the avatar root — the bezel is lit relative to its centre. */
|
|
20
|
+
ref: React.RefObject<HTMLElement | null>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Binds one avatar to its slice of the store: projects the controlled
|
|
24
|
+
* `presence` prop, tracks the image status, and — while `bezel` is on —
|
|
25
|
+
* follows the pointer with a rAF-coalesced `pointermove` listener that turns
|
|
26
|
+
* the pointer's bearing from the avatar's centre into `bezelAngle`.
|
|
27
|
+
*
|
|
28
|
+
* Unnamed avatars key off `useId` and are dropped from the store on unmount;
|
|
29
|
+
* a named `avatarId` outlives its component so a presence set elsewhere
|
|
30
|
+
* survives a remount.
|
|
31
|
+
*/
|
|
32
|
+
export declare function useUserAvatar(options: UseUserAvatarOptions): UserAvatarBinding;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { UserAvatarConfig, UserAvatarInstanceId, UserAvatarState, UserPresence } from './type';
|
|
2
|
+
/** Light from the top-left, the classic emboss, until a pointer moves. */
|
|
3
|
+
export declare const DEFAULT_BEZEL_ANGLE = 315;
|
|
4
|
+
type Family<AtomType> = ((id: UserAvatarInstanceId) => AtomType) & {
|
|
5
|
+
remove: (id: UserAvatarInstanceId) => void;
|
|
6
|
+
};
|
|
7
|
+
/** `null` = no badge. */
|
|
8
|
+
export declare const userAvatarPresenceAtom: Family<import('jotai').PrimitiveAtom<UserPresence | null> & {
|
|
9
|
+
init: UserPresence | null;
|
|
10
|
+
}>;
|
|
11
|
+
/** Degrees clockwise from 12 o'clock — where the bezel highlight sits. */
|
|
12
|
+
export declare const userAvatarBezelAngleAtom: Family<import('jotai').PrimitiveAtom<number> & {
|
|
13
|
+
init: number;
|
|
14
|
+
}>;
|
|
15
|
+
export declare const userAvatarImageStatusAtom: Family<import('jotai').PrimitiveAtom<import('@base-ui/react').ImageLoadingStatus> & {
|
|
16
|
+
init: import('@base-ui/react').ImageLoadingStatus;
|
|
17
|
+
}>;
|
|
18
|
+
/** @internal Which fields the mounted component controls from props. */
|
|
19
|
+
export declare const userAvatarConfigAtom: Family<import('jotai').PrimitiveAtom<UserAvatarConfig> & {
|
|
20
|
+
init: UserAvatarConfig;
|
|
21
|
+
}>;
|
|
22
|
+
export declare const userAvatarIsOnlineAtom: Family<import('jotai').Atom<boolean>>;
|
|
23
|
+
/** Whole-state read for callers that want the object; field atoms above are
|
|
24
|
+
* cheaper for components that watch one thing. */
|
|
25
|
+
export declare const userAvatarStateAtom: Family<import('jotai').Atom<UserAvatarState>>;
|
|
26
|
+
/** Inert while a `presence` prop controls the avatar — the prop is truth. */
|
|
27
|
+
export declare const setUserAvatarPresenceAtom: Family<import('jotai').WritableAtom<null, [presence: UserPresence | null], void> & {
|
|
28
|
+
init: null;
|
|
29
|
+
}>;
|
|
30
|
+
/** online ⇄ offline; a badge-less avatar comes online. */
|
|
31
|
+
export declare const toggleUserAvatarPresenceAtom: Family<import('jotai').WritableAtom<null, [], void> & {
|
|
32
|
+
init: null;
|
|
33
|
+
}>;
|
|
34
|
+
/** Stored as given — continuous, not wrapped into [0, 360): the rim is
|
|
35
|
+
* rotated with a CSS transition, and an unwrapped angle is what lets a
|
|
36
|
+
* 359° → 1° move take the short way round. Written on every pointer frame,
|
|
37
|
+
* so it stays a bare set — no config gate, no side effects. */
|
|
38
|
+
export declare const setUserAvatarBezelAngleAtom: Family<import('jotai').WritableAtom<null, [angle: number], void> & {
|
|
39
|
+
init: null;
|
|
40
|
+
}>;
|
|
41
|
+
/** @internal Reported by the image element; drives the skeleton. */
|
|
42
|
+
export declare const setUserAvatarImageStatusAtom: Family<import('jotai').WritableAtom<null, [status: import('@base-ui/react').ImageLoadingStatus], void> & {
|
|
43
|
+
init: null;
|
|
44
|
+
}>;
|
|
45
|
+
/** @internal Projection of the mounted component's controlled props. */
|
|
46
|
+
export declare const projectUserAvatarPropsAtom: Family<import('jotai').WritableAtom<null, [config: UserAvatarConfig, presence: UserPresence | null | undefined], void> & {
|
|
47
|
+
init: null;
|
|
48
|
+
}>;
|
|
49
|
+
export declare const resetUserAvatarAtom: Family<import('jotai').WritableAtom<null, [], void> & {
|
|
50
|
+
init: null;
|
|
51
|
+
}>;
|
|
52
|
+
/** Forget an avatar entirely — every family drops the key so the store can
|
|
53
|
+
* release its state. Call on teardown of a named instance. */
|
|
54
|
+
export declare function removeUserAvatarInstance(id: UserAvatarInstanceId): void;
|
|
55
|
+
export {};
|
package/dist-lib/index.d.ts
CHANGED
|
@@ -22,8 +22,11 @@ export * from './components/ui/spinner';
|
|
|
22
22
|
export * from './components/ui/textarea';
|
|
23
23
|
export * from './components/composed/password-input';
|
|
24
24
|
export * from './components/composed/social-providers';
|
|
25
|
-
export * from './components/composed/
|
|
25
|
+
export * from './components/composed/tree';
|
|
26
|
+
export { DEFAULT_BEZEL_ANGLE, PresenceBadge, UserAvatar, initialsFrom, removeUserAvatarInstance, resetUserAvatarAtom, setUserAvatarBezelAngleAtom, setUserAvatarPresenceAtom, toggleUserAvatarPresenceAtom, useUserAvatar, useUserAvatarActions, useUserAvatarState, userAvatarBezelAngleAtom, userAvatarIsOnlineAtom, userAvatarPresenceAtom, userAvatarStateAtom, } from './components/user-avatar';
|
|
27
|
+
export type { UseUserAvatarOptions, UserAvatarActions, UserAvatarBinding, UserAvatarInstanceId, UserAvatarProps, UserAvatarState, UserPresence, } from './components/user-avatar';
|
|
26
28
|
export * from './components/blocks/auth/auth-shell';
|
|
29
|
+
export * from './components/blocks/auth/auth-state';
|
|
27
30
|
export * from './components/blocks/auth/code-auth-block';
|
|
28
31
|
export * from './components/blocks/auth/forgot-password-block';
|
|
29
32
|
export * from './components/blocks/auth/linked-accounts-block';
|
|
@@ -39,8 +42,9 @@ export * from './components/blocks/shell';
|
|
|
39
42
|
export { default as ShellLayout } from './components/blocks/shell';
|
|
40
43
|
export * from './components/blocks/scaffold';
|
|
41
44
|
export { default as Layout } from './components/blocks/layout';
|
|
42
|
-
export * from './components/blocks/profile
|
|
45
|
+
export * from './components/blocks/profile';
|
|
43
46
|
export * from './components/motion/shared-layout-bg';
|
|
47
|
+
export * from './state';
|
|
44
48
|
export { AnimatedPanel as AnimatedSidebar, AnimatedPanelProvider as AnimatedSidebarProvider, AnimatedPanelTrigger as AnimatedSidebarTrigger, AnimatedPanelInset as AnimatedSidebarInset, } from './components/blocks/shell';
|
|
45
49
|
export * from './lib/auth-accent';
|
|
46
50
|
export * from './lib/ease';
|