@exegia/corpora-ui 0.8.0 → 0.10.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.
Files changed (33) hide show
  1. package/dist-lib/components/blocks/auth/linked-accounts-block.d.ts +7 -1
  2. package/dist-lib/components/blocks/nav/__tests__/sidebar-block.test.d.ts +1 -0
  3. package/dist-lib/components/blocks/nav/sidebar-block.d.ts +67 -0
  4. package/dist-lib/components/blocks/profile/__tests__/profile-card-block.test.d.ts +1 -0
  5. package/dist-lib/components/blocks/profile/profile-card-block.d.ts +77 -0
  6. package/dist-lib/components/composed/__tests__/user-avatar.test.d.ts +1 -0
  7. package/dist-lib/components/composed/user-avatar.d.ts +30 -0
  8. package/dist-lib/components/motion/animated-sidebar.d.ts +98 -0
  9. package/dist-lib/components/motion/shared-layout-bg.d.ts +13 -0
  10. package/dist-lib/components/ui/avatar.d.ts +6 -0
  11. package/dist-lib/components/ui/menu.d.ts +43 -0
  12. package/dist-lib/components/ui/skeleton.d.ts +2 -0
  13. package/dist-lib/index.d.ts +9 -0
  14. package/dist-lib/index.js +1887 -855
  15. package/dist-lib/index.js.map +1 -1
  16. package/dist-lib/lib/ease.d.ts +46 -0
  17. package/package.json +1 -1
  18. package/src/components/blocks/auth/__tests__/linked-accounts-block.test.tsx +18 -0
  19. package/src/components/blocks/auth/linked-accounts-block.tsx +10 -2
  20. package/src/components/blocks/nav/__tests__/sidebar-block.test.tsx +125 -0
  21. package/src/components/blocks/nav/sidebar-block.tsx +264 -0
  22. package/src/components/blocks/profile/__tests__/profile-card-block.test.tsx +134 -0
  23. package/src/components/blocks/profile/profile-card-block.tsx +281 -0
  24. package/src/components/composed/__tests__/user-avatar.test.tsx +85 -0
  25. package/src/components/composed/user-avatar.tsx +98 -0
  26. package/src/components/motion/animated-sidebar.tsx +1145 -0
  27. package/src/components/motion/shared-layout-bg.tsx +151 -0
  28. package/src/components/ui/avatar.tsx +52 -0
  29. package/src/components/ui/menu.tsx +352 -0
  30. package/src/components/ui/skeleton.tsx +18 -0
  31. package/src/index.css +4 -0
  32. package/src/index.ts +11 -0
  33. package/src/lib/ease.ts +53 -0
@@ -16,6 +16,12 @@ export interface LinkedAccountsBlockProps {
16
16
  providers?: SocialProvider[];
17
17
  /** Shows the loading row instead of the list. */
18
18
  loading?: boolean;
19
+ /**
20
+ * The account can also sign in through a method that has no row in this
21
+ * list — an email/password credential, say. Lifts the last-method guard,
22
+ * which otherwise refuses to disconnect the final listed identity.
23
+ */
24
+ hasOtherSignInMethods?: boolean;
19
25
  /** Reject (or throw) to show the inline error. */
20
26
  onLink?: (provider: SocialProvider) => Promise<void> | void;
21
27
  onUnlink?: (id: string) => Promise<void> | void;
@@ -27,4 +33,4 @@ export interface LinkedAccountsBlockProps {
27
33
  * remaining method from being disconnected — the guard is a disabled button
28
34
  * plus an explanation rather than an error after the fact.
29
35
  */
30
- export declare function LinkedAccountsBlock({ title, description, identities, providers, loading, onLink, onUnlink, className, }: LinkedAccountsBlockProps): React.JSX.Element;
36
+ export declare function LinkedAccountsBlock({ title, description, identities, providers, loading, hasOtherSignInMethods, onLink, onUnlink, className, }: LinkedAccountsBlockProps): React.JSX.Element;
@@ -0,0 +1,67 @@
1
+ import * as React from "react";
2
+ /** A nested link, one level under a top-level entry. */
3
+ export interface SidebarNavSubItem {
4
+ id: string;
5
+ label: string;
6
+ icon?: React.ReactNode;
7
+ /** Renders an anchor. Without one the row is a button. */
8
+ href?: string;
9
+ disabled?: boolean;
10
+ target?: "_blank" | "_self" | "_parent" | "_top";
11
+ onSelect?: () => void;
12
+ }
13
+ /** A top-level entry. With `items` it expands instead of navigating. */
14
+ export interface SidebarNavItem extends SidebarNavSubItem {
15
+ /** Trailing hint — a count, a "New" pill. Hidden while collapsed. */
16
+ badge?: React.ReactNode;
17
+ items?: SidebarNavSubItem[];
18
+ /** Start expanded. Defaults to expanded when one of its children is active. */
19
+ defaultOpen?: boolean;
20
+ }
21
+ /** A titled run of entries. The title hides while the rail is collapsed. */
22
+ export interface SidebarNavSection {
23
+ id: string;
24
+ label?: string;
25
+ items: SidebarNavItem[];
26
+ }
27
+ export interface SidebarBlockProps {
28
+ sections: SidebarNavSection[];
29
+ /** `id` of the current entry — matches top-level and nested ids alike. */
30
+ activeId?: string;
31
+ /** Fires for every selection, after the entry's own `onSelect`. */
32
+ onNavigate?: (item: SidebarNavItem | SidebarNavSubItem) => void;
33
+ /** Brand row above the navigation. */
34
+ header?: React.ReactNode;
35
+ /** Pinned below the navigation — an account card, a version note. */
36
+ footer?: React.ReactNode;
37
+ /** Collapse toggle in the header row. */
38
+ showTrigger?: boolean;
39
+ side?: "left" | "right";
40
+ variant?: "sidebar" | "floating" | "inset";
41
+ /** How the rail collapses: to icons, off-canvas, or not at all. */
42
+ collapsible?: "offcanvas" | "icon" | "none";
43
+ open?: boolean;
44
+ defaultOpen?: boolean;
45
+ onOpenChange?: (open: boolean) => void;
46
+ /** Under 768px the panel is a drawer — drive it from your own header. */
47
+ openMobile?: boolean;
48
+ defaultOpenMobile?: boolean;
49
+ onOpenMobileChange?: (open: boolean) => void;
50
+ /** Rail widths. CSS lengths, e.g. "16rem". */
51
+ width?: string;
52
+ iconWidth?: string;
53
+ mobileWidth?: string;
54
+ ariaLabel?: string;
55
+ className?: string;
56
+ }
57
+ /**
58
+ * Application sidebar navigation, driven by data rather than composition.
59
+ *
60
+ * This is the navigation panel only — it claims no page layout, so place it
61
+ * beside your own content. It owns its own sidebar context (⌘B toggles it);
62
+ * pass `open`/`onOpenChange` to drive the rail, and `openMobile`/
63
+ * `onOpenMobileChange` to open the drawer from a header button of your own.
64
+ * Compose the underlying `AnimatedSidebar*` parts directly when a screen
65
+ * needs something this API does not cover.
66
+ */
67
+ export declare function SidebarBlock({ sections, activeId, onNavigate, header, footer, showTrigger, side, variant, collapsible, open, defaultOpen, onOpenChange, openMobile, defaultOpenMobile, onOpenMobileChange, width, iconWidth, mobileWidth, ariaLabel, className, }: SidebarBlockProps): React.ReactElement;
@@ -0,0 +1,77 @@
1
+ import { DropdownMenuContent, MenuPrimitive } from '../../ui/menu';
2
+ import * as React from "react";
3
+ /** The identity shown on the card. */
4
+ export interface ProfileCardUser {
5
+ name: string;
6
+ /** Secondary line under the name — a handle, an email, a role. */
7
+ username?: string;
8
+ /** Avatar image URL. Falls back to the initials when absent or broken. */
9
+ avatar?: string;
10
+ /** Fallback initials. Derived from `name` when omitted. */
11
+ initials?: string;
12
+ }
13
+ /** An actionable row of the menu. */
14
+ export interface ProfileCardAction {
15
+ type?: "item";
16
+ id: string;
17
+ label: string;
18
+ icon?: React.ReactNode;
19
+ /** Right-aligned hint, e.g. "⌘K". Purely decorative — bind the key yourself. */
20
+ shortcut?: string;
21
+ disabled?: boolean;
22
+ variant?: "default" | "destructive";
23
+ /** Returning a promise puts the card in its loading state until it settles. */
24
+ onSelect?: () => void | Promise<void>;
25
+ }
26
+ /** A heading over the rows that follow it, up to the next separator. */
27
+ export interface ProfileCardLabel {
28
+ type: "label";
29
+ label: string;
30
+ }
31
+ /** A rule between two sections. */
32
+ export interface ProfileCardSeparator {
33
+ type: "separator";
34
+ }
35
+ /**
36
+ * One entry of `items`. Authored flat; the block renders each run between
37
+ * separators as its own menu group so a label actually names its section.
38
+ */
39
+ export type ProfileCardItem = ProfileCardAction | ProfileCardLabel | ProfileCardSeparator;
40
+ /**
41
+ * The menu the card ships with. Spread it to keep the shape and attach your
42
+ * own handlers, or ignore it and pass `items` of your own.
43
+ */
44
+ export declare const defaultProfileCardItems: ProfileCardItem[];
45
+ type PopupProps = React.ComponentProps<typeof DropdownMenuContent>;
46
+ export interface ProfileCardBlockProps {
47
+ user: ProfileCardUser;
48
+ /**
49
+ * The menu, flat: actions plus `{ type: "separator" }` / `{ type: "label" }`
50
+ * entries. Defaults to `defaultProfileCardItems` (no handlers attached).
51
+ */
52
+ items?: ProfileCardItem[];
53
+ /** Menu placement relative to the card. */
54
+ align?: PopupProps["align"];
55
+ side?: PopupProps["side"];
56
+ sideOffset?: PopupProps["sideOffset"];
57
+ open?: boolean;
58
+ defaultOpen?: boolean;
59
+ onOpenChange?: MenuPrimitive.Root.Props["onOpenChange"];
60
+ /**
61
+ * Emit cuelume press/release on the card and play the open/close cues.
62
+ * Inert unless the app opts into interaction sound via `bindSounds()`.
63
+ */
64
+ sound?: boolean;
65
+ /** Called when an action's promise rejects — the card leaves its loading state either way. */
66
+ onError?: (error: unknown) => void;
67
+ className?: string;
68
+ }
69
+ /**
70
+ * Avatar card that opens an account menu.
71
+ *
72
+ * The trigger is the rich identity chip (avatar + name over handle) and the
73
+ * popup is a plain action menu. `items` is the whole menu — a flat list of
74
+ * actions, separators and labels — defaulting to `defaultProfileCardItems`.
75
+ */
76
+ export declare function ProfileCardBlock({ user, items, align, side, sideOffset, open, defaultOpen, onOpenChange, sound, onError, className, }: ProfileCardBlockProps): React.ReactElement;
77
+ export {};
@@ -0,0 +1,30 @@
1
+ import { AvatarPrimitive } from '../ui/avatar';
2
+ import * as React from "react";
3
+ export interface UserAvatarProps extends Omit<AvatarPrimitive.Root.Props, "children"> {
4
+ /** Image URL. Without one the initials show immediately — no skeleton. */
5
+ src?: string;
6
+ /** Drives the initials, and the alt text unless `alt` overrides it. */
7
+ name?: string;
8
+ /** Overrides the initials derived from `name`. */
9
+ initials?: string;
10
+ /**
11
+ * Alt text for the image. Pass "" when adjacent text already names the
12
+ * person — the image is then decorative.
13
+ */
14
+ alt?: string;
15
+ /**
16
+ * Force the skeleton, for when the identity itself is still being fetched.
17
+ * Omitted, it follows the image: a passed `src` skeletons until it resolves.
18
+ */
19
+ loading?: boolean;
20
+ }
21
+ /** "Jenny Hamilton" → "JH", "luna" → "L". */
22
+ export declare function initialsFrom(name: string): string;
23
+ /**
24
+ * Identity avatar: an image when one is given, initials otherwise.
25
+ *
26
+ * A passed `src` is assumed to be remote, so the slot holds a skeleton until
27
+ * the image resolves rather than flashing initials that are about to be
28
+ * replaced. A failed load settles on the initials.
29
+ */
30
+ export declare function UserAvatar({ src, name, initials, alt, loading: loadingProp, className, ...props }: UserAvatarProps): React.ReactElement;
@@ -0,0 +1,98 @@
1
+ import { HTMLMotionProps } from 'motion/react';
2
+ import { ButtonHTMLAttributes, CSSProperties, HTMLAttributes, ReactNode } from 'react';
3
+ type SidebarState = "expanded" | "collapsed";
4
+ type SidebarSide = "left" | "right";
5
+ type SidebarVariant = "sidebar" | "floating" | "inset";
6
+ type SidebarCollapsible = "offcanvas" | "icon" | "none";
7
+ interface AnimatedSidebarContextValue {
8
+ isMobile: boolean;
9
+ layoutId: string;
10
+ open: boolean;
11
+ openMobile: boolean;
12
+ reduce: boolean;
13
+ setOpen: (open: boolean) => void;
14
+ setOpenMobile: (open: boolean) => void;
15
+ state: SidebarState;
16
+ toggleSidebar: () => void;
17
+ triggerRef: React.RefObject<HTMLButtonElement | null>;
18
+ }
19
+ export declare function useAnimatedSidebar(): AnimatedSidebarContextValue;
20
+ type SidebarProviderStyle = CSSProperties & {
21
+ "--sidebar-width"?: string;
22
+ "--sidebar-width-icon"?: string;
23
+ "--sidebar-width-mobile"?: string;
24
+ };
25
+ export interface AnimatedSidebarProviderProps extends HTMLAttributes<HTMLDivElement> {
26
+ open?: boolean;
27
+ defaultOpen?: boolean;
28
+ onOpenChange?: (open: boolean) => void;
29
+ openMobile?: boolean;
30
+ defaultOpenMobile?: boolean;
31
+ onOpenMobileChange?: (open: boolean) => void;
32
+ style?: SidebarProviderStyle;
33
+ }
34
+ export declare function AnimatedSidebarProvider({ children, open, defaultOpen, onOpenChange, openMobile, defaultOpenMobile, onOpenMobileChange, className, style, ...props }: AnimatedSidebarProviderProps): import("react").JSX.Element;
35
+ export interface AnimatedSidebarProps extends Omit<HTMLMotionProps<"aside">, "children"> {
36
+ children?: ReactNode;
37
+ side?: SidebarSide;
38
+ variant?: SidebarVariant;
39
+ collapsible?: SidebarCollapsible;
40
+ ariaLabel?: string;
41
+ panelClassName?: string;
42
+ }
43
+ export declare const AnimatedSidebar: import('react').ForwardRefExoticComponent<Omit<AnimatedSidebarProps, "ref"> & import('react').RefAttributes<HTMLElement>>;
44
+ export interface AnimatedSidebarTriggerProps extends ButtonHTMLAttributes<HTMLButtonElement> {
45
+ }
46
+ export declare const AnimatedSidebarTrigger: import('react').ForwardRefExoticComponent<AnimatedSidebarTriggerProps & import('react').RefAttributes<HTMLButtonElement>>;
47
+ export interface AnimatedSidebarCloseProps extends ButtonHTMLAttributes<HTMLButtonElement> {
48
+ }
49
+ export declare const AnimatedSidebarClose: import('react').ForwardRefExoticComponent<AnimatedSidebarCloseProps & import('react').RefAttributes<HTMLButtonElement>>;
50
+ export interface AnimatedSidebarRailProps extends ButtonHTMLAttributes<HTMLButtonElement> {
51
+ }
52
+ export declare const AnimatedSidebarRail: import('react').ForwardRefExoticComponent<AnimatedSidebarRailProps & import('react').RefAttributes<HTMLButtonElement>>;
53
+ export interface AnimatedSidebarInsetProps extends HTMLMotionProps<"main"> {
54
+ }
55
+ export declare const AnimatedSidebarInset: import('react').ForwardRefExoticComponent<Omit<AnimatedSidebarInsetProps, "ref"> & import('react').RefAttributes<HTMLElement>>;
56
+ export declare const AnimatedSidebarHeader: import('react').ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>>;
57
+ export declare const AnimatedSidebarContent: import('react').ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>>;
58
+ export declare const AnimatedSidebarFooter: import('react').ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>>;
59
+ export declare const AnimatedSidebarGroup: import('react').ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>>;
60
+ export declare const AnimatedSidebarGroupLabel: import('react').ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>>;
61
+ export declare const AnimatedSidebarGroupContent: import('react').ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import('react').RefAttributes<HTMLDivElement>>;
62
+ export declare const AnimatedSidebarMenu: import('react').ForwardRefExoticComponent<HTMLAttributes<HTMLUListElement> & import('react').RefAttributes<HTMLUListElement>>;
63
+ export declare const AnimatedSidebarMenuItem: import('react').ForwardRefExoticComponent<Omit<HTMLMotionProps<"li">, "ref"> & import('react').RefAttributes<HTMLLIElement>>;
64
+ export interface AnimatedSidebarMenuSubProps extends Omit<HTMLMotionProps<"ul">, "children"> {
65
+ open: boolean;
66
+ children?: ReactNode;
67
+ }
68
+ export declare const AnimatedSidebarMenuSub: import('react').ForwardRefExoticComponent<Omit<AnimatedSidebarMenuSubProps, "ref"> & import('react').RefAttributes<HTMLUListElement>>;
69
+ export declare const AnimatedSidebarMenuSubItem: import('react').ForwardRefExoticComponent<Omit<HTMLMotionProps<"li">, "ref"> & import('react').RefAttributes<HTMLLIElement>>;
70
+ export interface AnimatedSidebarMenuSubButtonProps {
71
+ children: ReactNode;
72
+ icon?: ReactNode;
73
+ href?: string;
74
+ isActive?: boolean;
75
+ disabled?: boolean;
76
+ closeOnSelect?: boolean;
77
+ target?: "_blank" | "_self" | "_parent" | "_top";
78
+ rel?: string;
79
+ onSelect?: () => void;
80
+ className?: string;
81
+ }
82
+ export declare function AnimatedSidebarMenuSubButton({ children, icon, href, isActive, disabled, closeOnSelect, target, rel, onSelect, className, }: AnimatedSidebarMenuSubButtonProps): import("react").JSX.Element;
83
+ export interface AnimatedSidebarMenuButtonProps {
84
+ children: ReactNode;
85
+ icon?: ReactNode;
86
+ badge?: ReactNode;
87
+ href?: string;
88
+ isActive?: boolean;
89
+ ariaExpanded?: boolean;
90
+ disabled?: boolean;
91
+ closeOnSelect?: boolean;
92
+ target?: "_blank" | "_self" | "_parent" | "_top";
93
+ rel?: string;
94
+ onSelect?: () => void;
95
+ className?: string;
96
+ }
97
+ export declare function AnimatedSidebarMenuButton({ children, icon, badge, href, isActive, ariaExpanded, disabled, closeOnSelect, target, rel, onSelect, className, }: AnimatedSidebarMenuButtonProps): import("react").JSX.Element;
98
+ export {};
@@ -0,0 +1,13 @@
1
+ import { HTMLAttributes, ReactNode } from 'react';
2
+ export interface SharedLayoutBgProps extends Omit<HTMLAttributes<HTMLElement>, "children"> {
3
+ children: ReactNode;
4
+ /** Semantic container used for the children. */
5
+ as?: "div" | "ul";
6
+ /** Tailwind class applied to the moving pill. Defaults to a subtle foreground tint. */
7
+ pillClassName?: string;
8
+ /** Horizontal inset of the pill relative to each row (px). Default 20. */
9
+ inset?: number;
10
+ /** Optional positioning override for the pill wrapper inside each item. */
11
+ pillContainerClassName?: string;
12
+ }
13
+ export declare const SharedLayoutBg: import('react').ForwardRefExoticComponent<SharedLayoutBgProps & import('react').RefAttributes<HTMLElement>>;
@@ -0,0 +1,6 @@
1
+ import { Avatar as AvatarPrimitive } from '@base-ui/react/avatar';
2
+ import { default as React } from 'react';
3
+ export declare function Avatar({ className, ...props }: AvatarPrimitive.Root.Props): React.ReactElement;
4
+ export declare function AvatarImage({ className, ...props }: AvatarPrimitive.Image.Props): React.ReactElement;
5
+ export declare function AvatarFallback({ className, ...props }: AvatarPrimitive.Fallback.Props): React.ReactElement;
6
+ export { AvatarPrimitive };
@@ -0,0 +1,43 @@
1
+ import { Menu as MenuPrimitive } from '@base-ui/react/menu';
2
+ import type * as React from "react";
3
+ export declare const MenuCreateHandle: typeof MenuPrimitive.createHandle;
4
+ export declare const Menu: typeof MenuPrimitive.Root;
5
+ export declare const MenuPortal: typeof MenuPrimitive.Portal;
6
+ export declare function MenuTrigger({ className, children, ...props }: MenuPrimitive.Trigger.Props): React.ReactElement;
7
+ export declare function MenuPopup({ children, className, sideOffset, align, alignOffset, side, anchor, portalProps, ...props }: MenuPrimitive.Popup.Props & {
8
+ align?: MenuPrimitive.Positioner.Props["align"];
9
+ sideOffset?: MenuPrimitive.Positioner.Props["sideOffset"];
10
+ alignOffset?: MenuPrimitive.Positioner.Props["alignOffset"];
11
+ side?: MenuPrimitive.Positioner.Props["side"];
12
+ anchor?: MenuPrimitive.Positioner.Props["anchor"];
13
+ portalProps?: MenuPrimitive.Portal.Props;
14
+ }): React.ReactElement;
15
+ export declare function MenuGroup(props: MenuPrimitive.Group.Props): React.ReactElement;
16
+ export declare function MenuItem({ className, inset, variant, ...props }: MenuPrimitive.Item.Props & {
17
+ inset?: boolean;
18
+ variant?: "default" | "destructive";
19
+ }): React.ReactElement;
20
+ export declare function MenuLinkItem({ className, inset, variant, closeOnClick, ...props }: MenuPrimitive.LinkItem.Props & {
21
+ inset?: boolean;
22
+ variant?: "default" | "destructive";
23
+ }): React.ReactElement;
24
+ export declare function MenuCheckboxItem({ className, children, checked, variant, ...props }: MenuPrimitive.CheckboxItem.Props & {
25
+ variant?: "default" | "switch";
26
+ }): React.ReactElement;
27
+ export declare function MenuRadioGroup(props: MenuPrimitive.RadioGroup.Props): React.ReactElement;
28
+ export declare function MenuRadioItem({ className, children, ...props }: MenuPrimitive.RadioItem.Props): React.ReactElement;
29
+ export declare function MenuGroupLabel({ className, inset, ...props }: MenuPrimitive.GroupLabel.Props & {
30
+ inset?: boolean;
31
+ }): React.ReactElement;
32
+ export declare function MenuSeparator({ className, ...props }: MenuPrimitive.Separator.Props): React.ReactElement;
33
+ export declare function MenuShortcut({ className, ...props }: React.ComponentProps<"kbd">): React.ReactElement;
34
+ export declare function MenuSub(props: MenuPrimitive.SubmenuRoot.Props): React.ReactElement;
35
+ export declare function MenuSubTrigger({ className, inset, children, ...props }: MenuPrimitive.SubmenuTrigger.Props & {
36
+ inset?: boolean;
37
+ }): React.ReactElement;
38
+ export declare function MenuSubPopup({ className, sideOffset, alignOffset, align, ...props }: MenuPrimitive.Popup.Props & {
39
+ align?: MenuPrimitive.Positioner.Props["align"];
40
+ sideOffset?: MenuPrimitive.Positioner.Props["sideOffset"];
41
+ alignOffset?: MenuPrimitive.Positioner.Props["alignOffset"];
42
+ }): React.ReactElement;
43
+ export { MenuPrimitive, MenuCreateHandle as DropdownMenuCreateHandle, Menu as DropdownMenu, MenuPortal as DropdownMenuPortal, MenuTrigger as DropdownMenuTrigger, MenuPopup as DropdownMenuContent, MenuGroup as DropdownMenuGroup, MenuItem as DropdownMenuItem, MenuCheckboxItem as DropdownMenuCheckboxItem, MenuRadioGroup as DropdownMenuRadioGroup, MenuRadioItem as DropdownMenuRadioItem, MenuGroupLabel as DropdownMenuLabel, MenuSeparator as DropdownMenuSeparator, MenuShortcut as DropdownMenuShortcut, MenuSub as DropdownMenuSub, MenuSubTrigger as DropdownMenuSubTrigger, MenuSubPopup as DropdownMenuSubContent, };
@@ -0,0 +1,2 @@
1
+ import { default as React } from 'react';
2
+ export declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): React.ReactElement;
@@ -5,6 +5,7 @@
5
5
  * compositions from `components/composed`, blocks from `components/blocks`.
6
6
  * The docs site (main.tsx + routes.tsx + pages/) is NOT part of the package.
7
7
  */
8
+ export * from './components/ui/avatar';
8
9
  export * from './components/ui/button';
9
10
  export * from './components/ui/card';
10
11
  export * from './components/ui/checkbox';
@@ -13,12 +14,15 @@ export * from './components/ui/frame';
13
14
  export * from './components/ui/input';
14
15
  export * from './components/ui/input-group';
15
16
  export * from './components/ui/label';
17
+ export * from './components/ui/menu';
16
18
  export * from './components/ui/otp-field';
17
19
  export * from './components/ui/separator';
20
+ export * from './components/ui/skeleton';
18
21
  export * from './components/ui/spinner';
19
22
  export * from './components/ui/textarea';
20
23
  export * from './components/composed/password-input';
21
24
  export * from './components/composed/social-providers';
25
+ export * from './components/composed/user-avatar';
22
26
  export * from './components/blocks/auth/auth-shell';
23
27
  export * from './components/blocks/auth/code-auth-block';
24
28
  export * from './components/blocks/auth/forgot-password-block';
@@ -29,6 +33,11 @@ export * from './components/blocks/auth/passkey-manager-block';
29
33
  export * from './components/blocks/auth/passkey-sign-in-block';
30
34
  export * from './components/blocks/auth/signup-block';
31
35
  export * from './components/blocks/auth/update-password-block';
36
+ export * from './components/blocks/nav/sidebar-block';
37
+ export * from './components/blocks/profile/profile-card-block';
38
+ export * from './components/motion/animated-sidebar';
39
+ export * from './components/motion/shared-layout-bg';
32
40
  export * from './lib/auth-accent';
41
+ export * from './lib/ease';
33
42
  export * from './lib/sound';
34
43
  export * from './lib/utils';