@lax-wp/design-system 0.3.85 → 0.3.87

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/components/button/ButtonGroup.d.ts +6 -0
  2. package/dist/components/cards/card-header-view/CardHeaderView.d.ts +33 -0
  3. package/dist/components/cards/card-header-view/index.d.ts +2 -0
  4. package/dist/components/cards/card-main/CardMain.d.ts +25 -0
  5. package/dist/components/cards/card-main/index.d.ts +2 -0
  6. package/dist/components/cards/tab-content/TabContent.d.ts +30 -0
  7. package/dist/components/cards/tab-content/index.d.ts +2 -0
  8. package/dist/components/drag-and-drop/drag-overlay/DragOverlay.d.ts +25 -0
  9. package/dist/components/drag-and-drop/drag-overlay/index.d.ts +2 -0
  10. package/dist/components/drag-and-drop/draggable-container/DraggableContainer.d.ts +29 -0
  11. package/dist/components/drag-and-drop/draggable-container/index.d.ts +2 -0
  12. package/dist/components/modal/confirm-popup/ConfirmPopUp.d.ts +26 -0
  13. package/dist/components/modal/confirm-popup/index.d.ts +2 -0
  14. package/dist/components/modal/drawer/Drawer.d.ts +45 -0
  15. package/dist/components/modal/drawer/index.d.ts +2 -0
  16. package/dist/components/navigation/accordion/Accordion.d.ts +39 -0
  17. package/dist/components/navigation/accordion/index.d.ts +2 -0
  18. package/dist/components/navigation/stepper/Stepper.d.ts +45 -0
  19. package/dist/components/navigation/stepper/index.d.ts +2 -0
  20. package/dist/components/sidebar/Sidebar.d.ts +15 -0
  21. package/dist/components/sidebar/index.d.ts +2 -0
  22. package/dist/components/user-avatar/PersonIcon.d.ts +7 -0
  23. package/dist/components/user-avatar/StatusInfoRow.d.ts +5 -0
  24. package/dist/components/user-avatar/UserAvatar.d.ts +51 -0
  25. package/dist/components/user-avatar/UserAvatarPopper.d.ts +11 -0
  26. package/dist/components/user-avatar/constants.d.ts +8 -0
  27. package/dist/components/user-avatar/index.d.ts +9 -0
  28. package/dist/components/user-avatar/useDynamicPosition.d.ts +13 -0
  29. package/dist/index.d.ts +24 -2
  30. package/dist/index.es.js +21370 -17608
  31. package/dist/index.umd.js +102 -98
  32. package/package.json +3 -2
  33. package/dist/components/forms/file-upload/FileUpload.d.ts +0 -81
@@ -0,0 +1,6 @@
1
+ import React, { type ReactNode } from 'react';
2
+ export interface ButtonGroupProps {
3
+ children: ReactNode;
4
+ variant: 'group' | 'ungroup';
5
+ }
6
+ export declare const ButtonGroup: React.FC<ButtonGroupProps>;
@@ -0,0 +1,33 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export type CardHeaderViewProps = {
3
+ title: string;
4
+ /** The link destination. If not provided, no link will be shown */
5
+ to?: string;
6
+ /** Whether the user has permission to see the link. Defaults to true */
7
+ hasUserPermissions?: boolean;
8
+ /** Custom view more text. Defaults to "View More" */
9
+ viewMoreText?: string;
10
+ /** Custom link component to use instead of anchor tag (for React Router, Next.js, etc) */
11
+ LinkComponent?: FC<{
12
+ to: string;
13
+ className?: string;
14
+ onClick?: () => void;
15
+ onMouseDown?: (e: React.MouseEvent) => void;
16
+ onTouchStart?: (e: React.TouchEvent) => void;
17
+ children: ReactNode;
18
+ }>;
19
+ };
20
+ /**
21
+ * CardHeaderView component for card headers with optional "View More" link
22
+ *
23
+ * @example
24
+ * ```tsx
25
+ * // With default anchor link
26
+ * <CardHeaderView title="Recent Items" to="/items" />
27
+ *
28
+ * // With React Router Link
29
+ * import { Link } from 'react-router-dom';
30
+ * <CardHeaderView title="Recent Items" to="/items" LinkComponent={Link} />
31
+ * ```
32
+ */
33
+ export declare const CardHeaderView: FC<CardHeaderViewProps>;
@@ -0,0 +1,2 @@
1
+ export { CardHeaderView } from './CardHeaderView';
2
+ export type { CardHeaderViewProps } from './CardHeaderView';
@@ -0,0 +1,25 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export type CardMainProps = {
3
+ title?: string;
4
+ children: ReactNode;
5
+ noPadding?: boolean;
6
+ className?: string;
7
+ noHeight?: boolean;
8
+ noBanner?: boolean;
9
+ noScrollbar?: boolean;
10
+ /** Current mode - can be 'edit', 'focusEdit', 'comparison' */
11
+ mode?: string | null;
12
+ /** Display ID to show in banner */
13
+ displayId?: string | null;
14
+ };
15
+ /**
16
+ * CardMain component for main content areas with optional edit/comparison banners
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * <CardMain title="Page Title" mode="edit" displayId="DOC-001">
21
+ * <div>Page content</div>
22
+ * </CardMain>
23
+ * ```
24
+ */
25
+ export declare const CardMain: FC<CardMainProps>;
@@ -0,0 +1,2 @@
1
+ export { CardMain } from './CardMain';
2
+ export type { CardMainProps } from './CardMain';
@@ -0,0 +1,30 @@
1
+ import { FC, ReactNode } from 'react';
2
+ export type TabContentDrawerConfig = {
3
+ open: boolean;
4
+ onClose: () => void;
5
+ content: ReactNode;
6
+ header: ReactNode;
7
+ };
8
+ export type TabContentProps = {
9
+ tabs?: ReactNode | false | null;
10
+ title?: string;
11
+ content: ReactNode;
12
+ className?: string;
13
+ noPadding?: boolean;
14
+ noBorder?: boolean;
15
+ drawerConfig?: TabContentDrawerConfig | null;
16
+ noBorderTopContent?: boolean;
17
+ };
18
+ /**
19
+ * TabContent component for tabbed content with optional drawer
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <TabContent
24
+ * title="Page Title"
25
+ * tabs={<Tabs items={tabItems} />}
26
+ * content={<div>Tab content here</div>}
27
+ * />
28
+ * ```
29
+ */
30
+ export declare const TabContent: FC<TabContentProps>;
@@ -0,0 +1,2 @@
1
+ export { TabContent } from './TabContent';
2
+ export type { TabContentProps, TabContentDrawerConfig } from './TabContent';
@@ -0,0 +1,25 @@
1
+ import { ReactNode } from 'react';
2
+ export type DragOverlayProps = {
3
+ children: ReactNode;
4
+ /** ID of the container to portal the overlay into. Defaults to 'full-screen-container' then document.body */
5
+ containerId?: string;
6
+ };
7
+ /**
8
+ * DragOverlay component for rendering dragged item preview
9
+ *
10
+ * @example
11
+ * ```tsx
12
+ * <DraggableContainer onDragEnd={handleDragEnd}>
13
+ * <SortableContext items={items}>
14
+ * {items.map((item) => <SortableItem key={item.id} {...item} />)}
15
+ * </SortableContext>
16
+ * <DragOverlay>
17
+ * {activeItem ? <ItemPreview {...activeItem} /> : null}
18
+ * </DragOverlay>
19
+ * </DraggableContainer>
20
+ * ```
21
+ */
22
+ export declare const DragOverlay: {
23
+ ({ children, containerId }: DragOverlayProps): import("react").ReactPortal;
24
+ displayName: string;
25
+ };
@@ -0,0 +1,2 @@
1
+ export { DragOverlay } from './DragOverlay';
2
+ export type { DragOverlayProps } from './DragOverlay';
@@ -0,0 +1,29 @@
1
+ import { DragEndEvent, DragOverEvent, DragStartEvent } from '@dnd-kit/core';
2
+ import { ReactNode } from 'react';
3
+ export type DraggableContainerProps = {
4
+ onDragEnd: (event: DragEndEvent) => void;
5
+ onDragStart?: (event: DragStartEvent) => void;
6
+ onDragOver?: (event: DragOverEvent) => void;
7
+ children: ReactNode;
8
+ };
9
+ /**
10
+ * DraggableContainer component wraps dnd-kit DndContext with sensible defaults
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * <DraggableContainer
15
+ * onDragEnd={(event) => handleDragEnd(event)}
16
+ * onDragStart={(event) => handleDragStart(event)}
17
+ * >
18
+ * <SortableContext items={items}>
19
+ * {items.map((item) => (
20
+ * <SortableItem key={item.id} id={item.id} />
21
+ * ))}
22
+ * </SortableContext>
23
+ * </DraggableContainer>
24
+ * ```
25
+ */
26
+ export declare const DraggableContainer: {
27
+ ({ onDragEnd, onDragStart, onDragOver, children }: DraggableContainerProps): import("react/jsx-runtime").JSX.Element;
28
+ displayName: string;
29
+ };
@@ -0,0 +1,2 @@
1
+ export { DraggableContainer } from './DraggableContainer';
2
+ export type { DraggableContainerProps } from './DraggableContainer';
@@ -0,0 +1,26 @@
1
+ import React from 'react';
2
+ export type IButtonStatus = 'primary' | 'secondary' | 'secondary-neutral' | 'error' | 'success' | 'warning';
3
+ export type ConfirmPopUpProps = {
4
+ children?: React.ReactElement;
5
+ onCancel?: (closeByIcon?: boolean) => void;
6
+ onOk: () => void;
7
+ title: string;
8
+ content: string;
9
+ footer?: {
10
+ justify?: string;
11
+ okText?: string;
12
+ cancelText?: string;
13
+ okBtnType?: IButtonStatus;
14
+ cancelBtnType?: IButtonStatus;
15
+ };
16
+ async?: (cb: ({ error }: {
17
+ error: boolean;
18
+ }) => void) => Promise<void>;
19
+ width?: number;
20
+ forceVisible?: boolean;
21
+ isVisibleOutside?: boolean;
22
+ ableToConfirmByChildren?: boolean;
23
+ parentContainer?: string;
24
+ };
25
+ declare const _default: React.NamedExoticComponent<ConfirmPopUpProps>;
26
+ export default _default;
@@ -0,0 +1,2 @@
1
+ export { default as ConfirmPopUp } from './ConfirmPopUp';
2
+ export type { ConfirmPopUpProps, IButtonStatus } from './ConfirmPopUp';
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+ export type DrawerProps = {
3
+ children: React.ReactNode;
4
+ onClose: () => void;
5
+ open: boolean;
6
+ title: React.ReactNode;
7
+ parentContainer?: string;
8
+ resizable?: boolean;
9
+ width?: number;
10
+ placement?: 'left' | 'right' | 'top' | 'bottom';
11
+ closable?: boolean;
12
+ mask?: boolean;
13
+ classNames?: {
14
+ content?: string;
15
+ body?: string;
16
+ header?: string;
17
+ footer?: string;
18
+ };
19
+ styles?: {
20
+ body?: React.CSSProperties;
21
+ content?: React.CSSProperties;
22
+ header?: React.CSSProperties;
23
+ footer?: React.CSSProperties;
24
+ };
25
+ getContainer?: false | HTMLElement | (() => HTMLElement);
26
+ zIndex?: number;
27
+ footer?: React.ReactNode;
28
+ };
29
+ /**
30
+ * Drawer component for sliding panels from screen edges
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * <Drawer
35
+ * open={isOpen}
36
+ * onClose={() => setIsOpen(false)}
37
+ * title="Drawer Title"
38
+ * width={400}
39
+ * >
40
+ * <div>Drawer content</div>
41
+ * </Drawer>
42
+ * ```
43
+ */
44
+ export declare const Drawer: React.FC<DrawerProps>;
45
+ export default Drawer;
@@ -0,0 +1,2 @@
1
+ export { Drawer, default as DrawerDefault } from './Drawer';
2
+ export type { DrawerProps } from './Drawer';
@@ -0,0 +1,39 @@
1
+ import { FC, HTMLAttributes } from 'react';
2
+ export type AccordionProps = HTMLAttributes<HTMLDivElement> & {
3
+ title: any;
4
+ toggle: () => void;
5
+ isOpen: boolean;
6
+ hoveringIndex?: number | null;
7
+ index?: number;
8
+ viewOnly?: boolean;
9
+ onTitleClick?: (e: React.MouseEvent) => void;
10
+ onSelect?: () => void;
11
+ isChecked?: boolean;
12
+ subTitle?: string;
13
+ noSpace?: boolean;
14
+ isDraggable?: boolean;
15
+ sortableConfig?: Record<string, any>;
16
+ headerClass?: string;
17
+ icon?: JSX.Element;
18
+ additionalHeader?: JSX.Element;
19
+ id: string;
20
+ isEditMode?: boolean;
21
+ mainClass?: string;
22
+ childrenClass?: string;
23
+ };
24
+ /**
25
+ * Accordion component for collapsible content sections
26
+ *
27
+ * @example
28
+ * ```tsx
29
+ * <Accordion
30
+ * id="my-accordion"
31
+ * title="Section Title"
32
+ * isOpen={isOpen}
33
+ * toggle={() => setIsOpen(!isOpen)}
34
+ * >
35
+ * <div>Accordion content</div>
36
+ * </Accordion>
37
+ * ```
38
+ */
39
+ export declare const Accordion: FC<AccordionProps>;
@@ -0,0 +1,2 @@
1
+ export { Accordion } from './Accordion';
2
+ export type { AccordionProps } from './Accordion';
@@ -0,0 +1,45 @@
1
+ export type TStep = {
2
+ label: string;
3
+ description?: string;
4
+ isLocked?: boolean;
5
+ tooltipText?: string;
6
+ };
7
+ export type TStepperProps = {
8
+ steps: TStep[];
9
+ currentStep: number;
10
+ onClick?: (index: number) => void;
11
+ appearance?: 'linear' | 'parallel';
12
+ labelPosition?: 'top' | 'bottom' | 'inline' | 'top-right' | 'bottom-right';
13
+ className?: string;
14
+ showIndex?: boolean;
15
+ disableOneMore?: boolean;
16
+ lockConfig?: {
17
+ isLocked?: boolean;
18
+ tooltipText?: string;
19
+ };
20
+ /** Whether the main sidebar is open (affects responsive calculations) */
21
+ isMainSideBarOpen?: boolean;
22
+ /** Whether the authoring panel is open (affects responsive calculations) */
23
+ isAuthoringOpen?: boolean;
24
+ };
25
+ /**
26
+ * Stepper component for multi-step workflows
27
+ *
28
+ * @example
29
+ * ```tsx
30
+ * <Stepper
31
+ * steps={[
32
+ * { label: 'Step 1', description: 'First step' },
33
+ * { label: 'Step 2', description: 'Second step' },
34
+ * { label: 'Step 3', description: 'Third step' },
35
+ * ]}
36
+ * currentStep={1}
37
+ * onClick={(index) => setCurrentStep(index)}
38
+ * />
39
+ * ```
40
+ */
41
+ declare const Stepper: {
42
+ ({ steps, currentStep, appearance, labelPosition, onClick, className, showIndex, disableOneMore, isMainSideBarOpen, isAuthoringOpen, }: TStepperProps): import("react/jsx-runtime").JSX.Element;
43
+ displayName: string;
44
+ };
45
+ export default Stepper;
@@ -0,0 +1,2 @@
1
+ export { default as Stepper } from './Stepper';
2
+ export type { TStep, TStepperProps } from './Stepper';
@@ -0,0 +1,15 @@
1
+ import React, { ReactNode } from 'react';
2
+ export type SidebarProps = {
3
+ children: ReactNode;
4
+ /** Whether the sidebar should take full screen width minus the main sidebar */
5
+ isFullScreen?: boolean;
6
+ className?: string;
7
+ /** Default width when not in fullscreen mode */
8
+ defaultSize?: number | string;
9
+ /** Custom height. Defaults to viewport height minus navbar */
10
+ height?: string;
11
+ /** Whether the main sidebar is expanded */
12
+ isMainSideBarOpen?: boolean;
13
+ };
14
+ declare const _default: React.NamedExoticComponent<SidebarProps>;
15
+ export default _default;
@@ -0,0 +1,2 @@
1
+ export { default as Sidebar } from './Sidebar';
2
+ export type { SidebarProps } from './Sidebar';
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ type PersonIconProps = {
3
+ fill?: string;
4
+ className?: string;
5
+ };
6
+ export declare const PersonIcon: React.FC<PersonIconProps>;
7
+ export {};
@@ -0,0 +1,5 @@
1
+ export interface StatusInfoRowProps {
2
+ isActive?: boolean;
3
+ lastViewedOn?: string;
4
+ }
5
+ export declare const StatusInfoRow: ({ isActive, lastViewedOn }: StatusInfoRowProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,51 @@
1
+ import { FC } from 'react';
2
+ export type UserAvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
3
+ export type UserDetailsTeam = {
4
+ id?: string;
5
+ name: string;
6
+ color?: string;
7
+ };
8
+ export type UserDetails = {
9
+ email?: string;
10
+ username?: string;
11
+ teams?: UserDetailsTeam[];
12
+ group?: string;
13
+ clearanceLevel?: number | string;
14
+ region?: string;
15
+ };
16
+ export type UserAvatarProps = {
17
+ firstName?: string;
18
+ lastName?: string;
19
+ email?: string;
20
+ enablePopper?: boolean;
21
+ profilePic?: string;
22
+ size?: UserAvatarSize;
23
+ hoverSize?: UserAvatarSize;
24
+ containerClassName?: string;
25
+ className?: string;
26
+ userId?: string;
27
+ lastViewedOn?: string;
28
+ isActive?: boolean;
29
+ statusIndicator?: boolean;
30
+ /** User details to display in the popper - replaces the useTeamMemberFilter hook */
31
+ userDetails?: UserDetails | null;
32
+ /** Whether user details are being fetched */
33
+ isFetchingUserDetails?: boolean;
34
+ /** Optional token for authenticated image loading */
35
+ authToken?: string;
36
+ };
37
+ /**
38
+ * UserAvatar component for displaying user profile pictures with hover popper
39
+ *
40
+ * @example
41
+ * ```tsx
42
+ * <UserAvatar
43
+ * firstName="John"
44
+ * lastName="Doe"
45
+ * email="john@example.com"
46
+ * profilePic="/avatar.jpg"
47
+ * userDetails={{ teams: [{ name: 'Engineering', color: '#0066cc' }], group: 'Admin' }}
48
+ * />
49
+ * ```
50
+ */
51
+ export declare const UserAvatar: FC<UserAvatarProps>;
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ export type UserAvatarPopperPlacement = 'auto' | 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'right-start' | 'right-end' | 'left-start' | 'left-end';
3
+ export interface UserAvatarPopperProps {
4
+ isOpen: boolean;
5
+ onClose: () => void;
6
+ anchorEl: HTMLElement | null;
7
+ placement?: UserAvatarPopperPlacement;
8
+ children: React.ReactNode;
9
+ className?: string;
10
+ }
11
+ export declare const UserAvatarPopper: ({ isOpen, onClose, anchorEl, placement, children, className }: UserAvatarPopperProps) => React.ReactPortal;
@@ -0,0 +1,8 @@
1
+ export declare const sizeClasses: {
2
+ xs: string;
3
+ sm: string;
4
+ md: string;
5
+ lg: string;
6
+ xl: string;
7
+ };
8
+ export declare const getInitials: (name: string) => string;
@@ -0,0 +1,9 @@
1
+ export { UserAvatar } from './UserAvatar';
2
+ export type { UserAvatarProps, UserAvatarSize, UserDetails, UserDetailsTeam } from './UserAvatar';
3
+ export { UserAvatarPopper } from './UserAvatarPopper';
4
+ export type { UserAvatarPopperProps, UserAvatarPopperPlacement } from './UserAvatarPopper';
5
+ export { StatusInfoRow } from './StatusInfoRow';
6
+ export type { StatusInfoRowProps } from './StatusInfoRow';
7
+ export { PersonIcon } from './PersonIcon';
8
+ export { sizeClasses, getInitials } from './constants';
9
+ export { useDynamicPosition } from './useDynamicPosition';
@@ -0,0 +1,13 @@
1
+ type Position = {
2
+ vertical: 'top' | 'bottom';
3
+ horizontal: 'left' | 'right';
4
+ };
5
+ export declare const useDynamicPosition: () => {
6
+ triggerRef: import("react").MutableRefObject<HTMLDivElement>;
7
+ dropdownRef: import("react").MutableRefObject<HTMLDivElement>;
8
+ position: Position;
9
+ isVisible: boolean;
10
+ show: () => void;
11
+ hide: () => void;
12
+ };
13
+ export {};
package/dist/index.d.ts CHANGED
@@ -46,8 +46,6 @@ export { MdInput } from "./components/forms/md-input/MdInput";
46
46
  export type { MdInputProps } from "./components/forms/md-input/MdInput";
47
47
  export { MultiFileUpload } from "./components/forms/multi-file-upload/MultiFileUpload";
48
48
  export type { MultiFileUploadProps, FileUploadResult, FileChangeValue, } from "./components/forms/multi-file-upload/MultiFileUpload";
49
- export { FileUpload } from "./components/forms/file-upload/FileUpload";
50
- export type { FileUploadProps, FileUploadSize, FileUploadVariant, } from "./components/forms/file-upload/FileUpload";
51
49
  export { IconPicker, IconRenderer } from "./components/forms/icon-picker/IconPicker";
52
50
  export type { IconPickerContentProps } from "./components/forms/icon-picker/IconPicker";
53
51
  export { StatusColorMapping } from "./components/data-display/status-color-mapping/StatusColorMapping";
@@ -129,6 +127,8 @@ export { default as Radio } from "./components/button/Radio";
129
127
  export type { RadioProps, } from "./components/button/Radio";
130
128
  export { ButtonThreeDots } from "./components/button/ButtonThreeDots";
131
129
  export type { TButtonThreeDotsProps, } from "./components/button/ButtonThreeDots";
130
+ export { ButtonGroup } from "./components/button/ButtonGroup";
131
+ export type { ButtonGroupProps, } from "./components/button/ButtonGroup";
132
132
  export { FloatingBar } from "./components/floating-bar/FloatingBar";
133
133
  export type { FloatingBarProps, FloatingBarActionConfig, FloatingBarDeleteConfig, FloatingBarSize, FloatingBarPosition, FloatingBarTheme, } from "./components/floating-bar/FloatingBar";
134
134
  export { SearchBar } from "./components/forms/search-bar/SearchBar";
@@ -157,3 +157,25 @@ export type { DynamicItemsCellProps } from "./components/data-display/dynamic-it
157
157
  export { NumberInputField } from "./components/forms/number-input-field/NumberInputField";
158
158
  export type { NumberInputFieldProps } from "./components/forms/number-input-field/NumberInputField";
159
159
  export { MODES, OPEN_DURATION_MS } from "./constants/layout";
160
+ export { Accordion } from "./components/navigation/accordion";
161
+ export type { AccordionProps } from "./components/navigation/accordion";
162
+ export { Stepper } from "./components/navigation/stepper";
163
+ export type { TStep, TStepperProps } from "./components/navigation/stepper";
164
+ export { Drawer } from "./components/modal/drawer";
165
+ export type { DrawerProps } from "./components/modal/drawer";
166
+ export { ConfirmPopUp } from "./components/modal/confirm-popup";
167
+ export type { ConfirmPopUpProps, IButtonStatus as ConfirmPopUpButtonStatus } from "./components/modal/confirm-popup";
168
+ export { CardHeaderView } from "./components/cards/card-header-view";
169
+ export type { CardHeaderViewProps } from "./components/cards/card-header-view";
170
+ export { CardMain } from "./components/cards/card-main";
171
+ export type { CardMainProps } from "./components/cards/card-main";
172
+ export { TabContent } from "./components/cards/tab-content";
173
+ export type { TabContentProps, TabContentDrawerConfig } from "./components/cards/tab-content";
174
+ export { DraggableContainer } from "./components/drag-and-drop/draggable-container";
175
+ export type { DraggableContainerProps } from "./components/drag-and-drop/draggable-container";
176
+ export { DragOverlay } from "./components/drag-and-drop/drag-overlay";
177
+ export type { DragOverlayProps } from "./components/drag-and-drop/drag-overlay";
178
+ export { Sidebar } from "./components/sidebar";
179
+ export type { SidebarProps } from "./components/sidebar";
180
+ export { UserAvatar, UserAvatarPopper, StatusInfoRow, PersonIcon, sizeClasses as userAvatarSizeClasses, getInitials, useDynamicPosition } from "./components/user-avatar";
181
+ export type { UserAvatarProps, UserAvatarSize, UserDetails, UserDetailsTeam, UserAvatarPopperProps, UserAvatarPopperPlacement, StatusInfoRowProps, } from "./components/user-avatar";