@eventideorg/design-system 0.1.0 → 0.1.1

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 (55) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.js +2946 -860
  3. package/dist/ui/hooks/index.d.ts +1 -1
  4. package/dist/ui/hooks/useAlert.d.ts +3 -0
  5. package/dist/ui/ui/Alert/AlertContext.d.ts +2 -0
  6. package/dist/ui/ui/Alert/AlertItem.d.ts +8 -0
  7. package/dist/ui/ui/Alert/AlertProvider.d.ts +4 -0
  8. package/dist/ui/ui/Alert/index.d.ts +4 -0
  9. package/dist/ui/ui/Alert/types.d.ts +16 -0
  10. package/dist/ui/ui/Breadcrumb.d.ts +11 -0
  11. package/dist/ui/ui/Breadcrumbs/BreadcrumbProvider.d.ts +11 -0
  12. package/dist/ui/ui/Breadcrumbs/Breadcrumbs.d.ts +2 -0
  13. package/dist/ui/ui/Breadcrumbs/index.d.ts +3 -0
  14. package/dist/ui/ui/Breadcrumbs/types.d.ts +26 -0
  15. package/dist/ui/ui/ContextMenu.d.ts +25 -0
  16. package/dist/ui/ui/DropdownMenu.d.ts +25 -0
  17. package/dist/ui/ui/FormSystem/types.d.ts +15 -1
  18. package/dist/ui/ui/InputFields/AudioInput.d.ts +12 -0
  19. package/dist/ui/ui/InputFields/FieldWrapper.d.ts +1 -0
  20. package/dist/ui/ui/InputFields/SliderInput.d.ts +13 -0
  21. package/dist/ui/ui/InputFields/VideoInput.d.ts +12 -0
  22. package/dist/ui/ui/InputFields/index.d.ts +6 -0
  23. package/dist/ui/ui/InputOTP.d.ts +34 -0
  24. package/dist/ui/ui/ListView/CardView/CardItem.d.ts +2 -0
  25. package/dist/ui/ui/ListView/CardView/CardView.d.ts +2 -0
  26. package/dist/ui/ui/ListView/CardView/SortableCardItem.d.ts +2 -0
  27. package/dist/ui/ui/ListView/CardView/index.d.ts +3 -0
  28. package/dist/ui/ui/ListView/ListView.d.ts +2 -0
  29. package/dist/ui/ui/ListView/ListViewEmptyState.d.ts +2 -0
  30. package/dist/ui/ui/ListView/ListViewSplitPane.d.ts +2 -0
  31. package/dist/ui/ui/ListView/ListViewStatusBar.d.ts +2 -0
  32. package/dist/ui/ui/ListView/ListViewToolbar.d.ts +2 -0
  33. package/dist/ui/ui/ListView/TableView/TableHeader.d.ts +2 -0
  34. package/dist/ui/ui/ListView/TableView/TableRow.d.ts +2 -0
  35. package/dist/ui/ui/ListView/TableView/TableView.d.ts +2 -0
  36. package/dist/ui/ui/ListView/TableView/index.d.ts +3 -0
  37. package/dist/ui/ui/ListView/constants.d.ts +6 -0
  38. package/dist/ui/ui/ListView/hooks/index.d.ts +6 -0
  39. package/dist/ui/ui/ListView/hooks/useColumnVisibility.d.ts +14 -0
  40. package/dist/ui/ui/ListView/hooks/useFiltering.d.ts +6 -0
  41. package/dist/ui/ui/ListView/hooks/useListViewKeyboard.d.ts +10 -0
  42. package/dist/ui/ui/ListView/hooks/useSelection.d.ts +16 -0
  43. package/dist/ui/ui/ListView/hooks/useSorting.d.ts +12 -0
  44. package/dist/ui/ui/ListView/index.d.ts +10 -0
  45. package/dist/ui/ui/ListView/types.d.ts +148 -0
  46. package/dist/ui/ui/Slider.d.ts +4 -0
  47. package/dist/ui/ui/Sonner.d.ts +3 -0
  48. package/dist/ui/ui/Spinner.d.ts +2 -0
  49. package/dist/ui/ui/ThemeToggle/ThemeProvider.d.ts +4 -0
  50. package/dist/ui/ui/ThemeToggle/ThemeToggle.d.ts +4 -0
  51. package/dist/ui/ui/ThemeToggle/index.d.ts +3 -0
  52. package/dist/ui/ui/ThemeToggle/types.d.ts +10 -0
  53. package/dist/ui/ui/Tooltip.d.ts +7 -0
  54. package/dist/ui/ui/index.d.ts +16 -2
  55. package/package.json +6 -3
@@ -1 +1 @@
1
- export {};
1
+ export { useAlert } from './useAlert';
@@ -0,0 +1,3 @@
1
+ import { AlertContextValue } from '../ui/Alert/types';
2
+ declare function useAlert(): AlertContextValue;
3
+ export { useAlert };
@@ -0,0 +1,2 @@
1
+ import { AlertContextValue } from './types';
2
+ export declare const AlertContext: import('react').Context<AlertContextValue | null>;
@@ -0,0 +1,8 @@
1
+ import { Alert } from './types';
2
+ interface AlertItemProps {
3
+ alert: Alert;
4
+ onDismiss: (id: string) => void;
5
+ }
6
+ declare function AlertItem({ alert, onDismiss }: AlertItemProps): import("react/jsx-runtime").JSX.Element;
7
+ export { AlertItem };
8
+ export type { AlertItemProps };
@@ -0,0 +1,4 @@
1
+ declare function AlertProvider({ children }: {
2
+ children: React.ReactNode;
3
+ }): import("react/jsx-runtime").JSX.Element;
4
+ export { AlertProvider };
@@ -0,0 +1,4 @@
1
+ export { AlertProvider } from './AlertProvider';
2
+ export { AlertItem } from './AlertItem';
3
+ export type { Alert, AlertVariant, AddAlertInput, AlertContextValue } from './types';
4
+ export type { AlertItemProps } from './AlertItem';
@@ -0,0 +1,16 @@
1
+ export type AlertVariant = "success" | "error" | "warning" | "info";
2
+ export interface Alert {
3
+ id: string;
4
+ message: string;
5
+ variant: AlertVariant;
6
+ duration?: number;
7
+ }
8
+ export type AddAlertInput = Omit<Alert, "id"> & {
9
+ id?: string;
10
+ };
11
+ export interface AlertContextValue {
12
+ alerts: Alert[];
13
+ addAlert: (alert: AddAlertInput) => string;
14
+ removeAlert: (id: string) => void;
15
+ clearAlerts: () => void;
16
+ }
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ declare function Breadcrumb({ ...props }: React.ComponentProps<"nav">): import("react/jsx-runtime").JSX.Element;
3
+ declare function BreadcrumbList({ className, ...props }: React.ComponentProps<"ol">): import("react/jsx-runtime").JSX.Element;
4
+ declare function BreadcrumbItem({ className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
5
+ declare function BreadcrumbLink({ asChild, className, ...props }: React.ComponentProps<"a"> & {
6
+ asChild?: boolean;
7
+ }): import("react/jsx-runtime").JSX.Element;
8
+ declare function BreadcrumbPage({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
9
+ declare function BreadcrumbSeparator({ children, className, ...props }: React.ComponentProps<"li">): import("react/jsx-runtime").JSX.Element;
10
+ declare function BreadcrumbEllipsis({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
11
+ export { Breadcrumb, BreadcrumbList, BreadcrumbItem, BreadcrumbLink, BreadcrumbPage, BreadcrumbSeparator, BreadcrumbEllipsis, };
@@ -0,0 +1,11 @@
1
+ import { BreadcrumbItemData } from './types';
2
+ export declare function BreadcrumbProvider({ children }: {
3
+ children: React.ReactNode;
4
+ }): import("react/jsx-runtime").JSX.Element;
5
+ /** Read the current breadcrumb items (sorted by order). */
6
+ export declare function useBreadcrumbs(): BreadcrumbItemData[];
7
+ /**
8
+ * Register a breadcrumb item on mount and remove it on unmount.
9
+ * Updates the item if its properties change.
10
+ */
11
+ export declare function useBreadcrumbItem(item: BreadcrumbItemData): void;
@@ -0,0 +1,2 @@
1
+ import { BreadcrumbsProps } from './types';
2
+ export declare function Breadcrumbs({ maxVisibleItems, className, listClassName, }: BreadcrumbsProps): import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,3 @@
1
+ export { BreadcrumbProvider, useBreadcrumbs, useBreadcrumbItem } from './BreadcrumbProvider';
2
+ export { Breadcrumbs } from './Breadcrumbs';
3
+ export type { BreadcrumbItemData, BreadcrumbContextValue, BreadcrumbsProps } from './types';
@@ -0,0 +1,26 @@
1
+ export interface BreadcrumbItemData {
2
+ /** Unique identifier for this breadcrumb */
3
+ id: string;
4
+ /** Display label */
5
+ label: string;
6
+ /** Optional href — omit for the current (last) page */
7
+ href?: string;
8
+ /** Explicit ordering position (lower = earlier in the chain) */
9
+ order: number;
10
+ }
11
+ export interface BreadcrumbContextValue {
12
+ items: BreadcrumbItemData[];
13
+ addItem: (item: BreadcrumbItemData) => void;
14
+ removeItem: (id: string) => void;
15
+ }
16
+ export interface BreadcrumbsProps {
17
+ /**
18
+ * Maximum number of items visible before collapsing middle items behind an ellipsis.
19
+ * Must be >= 2 (first + last). Defaults to 4.
20
+ */
21
+ maxVisibleItems?: number;
22
+ /** Optional className for the nav wrapper */
23
+ className?: string;
24
+ /** Optional className for the breadcrumb list */
25
+ listClassName?: string;
26
+ }
@@ -0,0 +1,25 @@
1
+ import { ContextMenu as ContextMenuPrimitive } from 'radix-ui';
2
+ import * as React from "react";
3
+ declare function ContextMenu({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function ContextMenuTrigger({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
+ declare function ContextMenuGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
6
+ declare function ContextMenuPortal({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
7
+ declare function ContextMenuSub({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Sub>): import("react/jsx-runtime").JSX.Element;
8
+ declare function ContextMenuRadioGroup({ ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioGroup>): import("react/jsx-runtime").JSX.Element;
9
+ declare function ContextMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubTrigger> & {
10
+ inset?: boolean;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ declare function ContextMenuSubContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.SubContent>): import("react/jsx-runtime").JSX.Element;
13
+ declare function ContextMenuContent({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
14
+ declare function ContextMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Item> & {
15
+ inset?: boolean;
16
+ variant?: "default" | "destructive";
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ declare function ContextMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.CheckboxItem>): import("react/jsx-runtime").JSX.Element;
19
+ declare function ContextMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.RadioItem>): import("react/jsx-runtime").JSX.Element;
20
+ declare function ContextMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Label> & {
21
+ inset?: boolean;
22
+ }): import("react/jsx-runtime").JSX.Element;
23
+ declare function ContextMenuSeparator({ className, ...props }: React.ComponentProps<typeof ContextMenuPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
24
+ declare function ContextMenuShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
25
+ export { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuCheckboxItem, ContextMenuRadioItem, ContextMenuLabel, ContextMenuSeparator, ContextMenuShortcut, ContextMenuGroup, ContextMenuPortal, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuRadioGroup, };
@@ -0,0 +1,25 @@
1
+ import { DropdownMenu as DropdownMenuPrimitive } from 'radix-ui';
2
+ import * as React from "react";
3
+ declare function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
5
+ declare function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
6
+ declare function DropdownMenuContent({ className, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
+ declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
8
+ declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
9
+ inset?: boolean;
10
+ variant?: "default" | "destructive";
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ declare function DropdownMenuCheckboxItem({ className, children, checked, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>): import("react/jsx-runtime").JSX.Element;
13
+ declare function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): import("react/jsx-runtime").JSX.Element;
14
+ declare function DropdownMenuRadioItem({ className, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>): import("react/jsx-runtime").JSX.Element;
15
+ declare function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
16
+ inset?: boolean;
17
+ }): import("react/jsx-runtime").JSX.Element;
18
+ declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
19
+ declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
20
+ declare function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>): import("react/jsx-runtime").JSX.Element;
21
+ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
22
+ inset?: boolean;
23
+ }): import("react/jsx-runtime").JSX.Element;
24
+ declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>): import("react/jsx-runtime").JSX.Element;
25
+ export { DropdownMenu, DropdownMenuPortal, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, };
@@ -1,4 +1,4 @@
1
- export type FieldType = "text" | "textarea" | "number" | "email" | "date" | "time" | "datetime" | "select" | "multiselect" | "radio" | "checkbox" | "rating" | "likert" | "file" | "location" | "rich_text" | "divider" | "static_text" | "static_image";
1
+ export type FieldType = "text" | "textarea" | "number" | "email" | "date" | "time" | "datetime" | "select" | "multiselect" | "radio" | "checkbox" | "rating" | "likert" | "file" | "location" | "rich_text" | "divider" | "static_text" | "static_image" | "audio" | "video";
2
2
  export declare const DISPLAY_ONLY_FIELD_TYPES: readonly FieldType[];
3
3
  export type ComparisonOperator = "equals" | "not_equals" | "contains" | "greater_than" | "less_than" | "is_empty" | "is_not_empty";
4
4
  export interface FieldValidation {
@@ -34,6 +34,18 @@ export interface LocationFieldConfig {
34
34
  };
35
35
  defaultZoom?: number;
36
36
  }
37
+ export interface AudioFieldConfig {
38
+ maxDuration?: number;
39
+ maxSize?: number;
40
+ mimeType?: string;
41
+ audioBitsPerSecond?: number;
42
+ }
43
+ export interface VideoFieldConfig {
44
+ maxDuration?: number;
45
+ maxSize?: number;
46
+ mimeType?: string;
47
+ videoBitsPerSecond?: number;
48
+ }
37
49
  export interface FormField {
38
50
  id: string;
39
51
  type: FieldType;
@@ -47,6 +59,8 @@ export interface FormField {
47
59
  ratingConfig?: RatingConfig;
48
60
  fileConfig?: FileFieldConfig;
49
61
  locationConfig?: LocationFieldConfig;
62
+ audioConfig?: AudioFieldConfig;
63
+ videoConfig?: VideoFieldConfig;
50
64
  content?: string;
51
65
  imageUrl?: string;
52
66
  imageAlt?: string;
@@ -0,0 +1,12 @@
1
+ import { BaseFieldProps } from './types';
2
+ interface AudioInputProps extends BaseFieldProps {
3
+ value?: Blob | null;
4
+ onChange?: (audio: Blob | null) => void;
5
+ maxDuration?: number;
6
+ maxSize?: number;
7
+ mimeType?: string;
8
+ audioBitsPerSecond?: number;
9
+ }
10
+ declare function AudioInput({ label, error: externalError, helperText, required, disabled, id, className, value, onChange, maxDuration, maxSize, mimeType, audioBitsPerSecond, }: AudioInputProps): import("react/jsx-runtime").JSX.Element;
11
+ export { AudioInput };
12
+ export type { AudioInputProps };
@@ -7,6 +7,7 @@ interface FieldWrapperProps {
7
7
  disabled?: boolean;
8
8
  children: (props: {
9
9
  id: string;
10
+ labelId: string | undefined;
10
11
  describedBy: string | undefined;
11
12
  }) => React.ReactNode;
12
13
  className?: string;
@@ -0,0 +1,13 @@
1
+ import { BaseFieldProps } from './types';
2
+ interface SliderInputProps extends BaseFieldProps {
3
+ value?: number;
4
+ defaultValue?: number;
5
+ onChange?: (value: number) => void;
6
+ min?: number;
7
+ max?: number;
8
+ step?: number;
9
+ showValue?: boolean;
10
+ }
11
+ declare function SliderInput({ label, error, helperText, required, disabled, id, className, value, defaultValue, onChange, min, max, step, showValue, }: SliderInputProps): import("react/jsx-runtime").JSX.Element;
12
+ export { SliderInput };
13
+ export type { SliderInputProps };
@@ -0,0 +1,12 @@
1
+ import { BaseFieldProps } from './types';
2
+ interface VideoInputProps extends BaseFieldProps {
3
+ value?: Blob | null;
4
+ onChange?: (video: Blob | null) => void;
5
+ maxDuration?: number;
6
+ maxSize?: number;
7
+ mimeType?: string;
8
+ videoBitsPerSecond?: number;
9
+ }
10
+ declare function VideoInput({ label, error: externalError, helperText, required, disabled, id, className, value, onChange, maxDuration, maxSize, mimeType, videoBitsPerSecond, }: VideoInputProps): import("react/jsx-runtime").JSX.Element;
11
+ export { VideoInput };
12
+ export type { VideoInputProps };
@@ -48,4 +48,10 @@ export { StaticText } from './StaticText';
48
48
  export type { StaticTextProps } from './StaticText';
49
49
  export { StaticImage } from './StaticImage';
50
50
  export type { StaticImageProps } from './StaticImage';
51
+ export { SliderInput } from './SliderInput';
52
+ export type { SliderInputProps } from './SliderInput';
53
+ export { AudioInput } from './AudioInput';
54
+ export type { AudioInputProps } from './AudioInput';
55
+ export { VideoInput } from './VideoInput';
56
+ export type { VideoInputProps } from './VideoInput';
51
57
  export type { BaseFieldProps, SelectOption, CountryData, DatePickerMode, } from './types';
@@ -0,0 +1,34 @@
1
+ import * as React from "react";
2
+ declare const InputOTP: React.ForwardRefExoticComponent<(Omit<Omit<React.InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "maxLength" | "textAlign" | "onComplete" | "pushPasswordManagerStrategy" | "pasteTransformer" | "containerClassName" | "noScriptCSSFallback"> & {
3
+ value?: string;
4
+ onChange?: (newValue: string) => unknown;
5
+ maxLength: number;
6
+ textAlign?: "left" | "center" | "right";
7
+ onComplete?: (...args: any[]) => unknown;
8
+ pushPasswordManagerStrategy?: "increase-width" | "none";
9
+ pasteTransformer?: (pasted: string) => string;
10
+ containerClassName?: string;
11
+ noScriptCSSFallback?: string | null;
12
+ } & {
13
+ render: (props: import('input-otp').RenderProps) => React.ReactNode;
14
+ children?: never;
15
+ } & React.RefAttributes<HTMLInputElement>, "ref"> | Omit<Omit<React.InputHTMLAttributes<HTMLInputElement>, "value" | "onChange" | "maxLength" | "textAlign" | "onComplete" | "pushPasswordManagerStrategy" | "pasteTransformer" | "containerClassName" | "noScriptCSSFallback"> & {
16
+ value?: string;
17
+ onChange?: (newValue: string) => unknown;
18
+ maxLength: number;
19
+ textAlign?: "left" | "center" | "right";
20
+ onComplete?: (...args: any[]) => unknown;
21
+ pushPasswordManagerStrategy?: "increase-width" | "none";
22
+ pasteTransformer?: (pasted: string) => string;
23
+ containerClassName?: string;
24
+ noScriptCSSFallback?: string | null;
25
+ } & {
26
+ render?: never;
27
+ children: React.ReactNode;
28
+ } & React.RefAttributes<HTMLInputElement>, "ref">) & React.RefAttributes<HTMLInputElement>>;
29
+ declare const InputOTPGroup: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
30
+ declare const InputOTPSlot: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
31
+ index: number;
32
+ } & React.RefAttributes<HTMLDivElement>>;
33
+ declare const InputOTPSeparator: React.ForwardRefExoticComponent<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
34
+ export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator };
@@ -0,0 +1,2 @@
1
+ import { CardItemProps } from '../types';
2
+ export declare function CardItem({ item, density, isSelected, onSelect, onItemOpen, contextMenuActions, selectedItems, }: CardItemProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { CardViewProps } from '../types';
2
+ export declare function CardView({ items, density, selectedIds, onSelectionAction, onItemOpen, contextMenuActions, onReorder, virtualizeThreshold, className, }: CardViewProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { CardItemProps } from '../types';
2
+ export declare function SortableCardItem(props: CardItemProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export { CardItem } from './CardItem';
2
+ export { CardView } from './CardView';
3
+ export { SortableCardItem } from './SortableCardItem';
@@ -0,0 +1,2 @@
1
+ import { ListViewProps } from './types';
2
+ export declare function ListView({ items, view, onViewChange, columns, onSelectionChange, onItemOpen, onSortChange, allowSplitView, contextMenuActions, renderDetail, cardDensity, onCardDensityChange, onReorder, virtualizeThreshold, toolbarLeft, searchPlaceholder, emptyState, className, }: ListViewProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { ListViewEmptyStateProps } from './types';
2
+ export declare function ListViewEmptyState({ isFiltered, className, }: ListViewEmptyStateProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { ListViewSplitPaneProps } from './types';
2
+ export declare function ListViewSplitPane({ isOpen, renderDetail, selectedItem, children, className, }: ListViewSplitPaneProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { ListViewStatusBarProps } from './types';
2
+ export declare function ListViewStatusBar({ totalCount, filteredCount, selectedCount, className, }: ListViewStatusBarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { ListViewToolbarProps } from './types';
2
+ export declare function ListViewToolbar({ view, onViewChange, searchValue, onSearchChange, columns, onColumnVisibilityChange, allowSplitView, isSplitViewOpen, onSplitViewToggle, cardDensity, onCardDensityChange, toolbarLeft, searchPlaceholder, className, }: ListViewToolbarProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { TableHeaderProps } from '../types';
2
+ export declare function TableHeader({ columns, sort, onSortChange, allItemIds, selectedIds, onSelectionAction, }: TableHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { TableRowProps } from '../types';
2
+ export declare function TableRow({ item, columns, isSelected, onSelect, onItemOpen, contextMenuActions, selectedItems, }: TableRowProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,2 @@
1
+ import { TableViewProps } from '../../..';
2
+ export declare function TableView({ items, columns, sort, onSortChange, selectedIds, onSelectionAction, onItemOpen, contextMenuActions, virtualizeThreshold, className, }: TableViewProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export { TableHeader } from './TableHeader';
2
+ export { TableRow } from './TableRow';
3
+ export { TableView } from './TableView';
@@ -0,0 +1,6 @@
1
+ import { CardDensity } from './types';
2
+ export declare const CARD_DENSITY_CONFIG: Record<CardDensity, {
3
+ gridCols: string;
4
+ gap: string;
5
+ }>;
6
+ export declare const FILTER_DEBOUNCE_MS = 200;
@@ -0,0 +1,6 @@
1
+ export { useFiltering } from './useFiltering';
2
+ export { useColumnVisibility } from './useColumnVisibility';
3
+ export { useListViewKeyboard } from './useListViewKeyboard';
4
+ export type { UseListViewKeyboardParams } from './useListViewKeyboard';
5
+ export { useSelection } from './useSelection';
6
+ export { useSorting } from './useSorting';
@@ -0,0 +1,14 @@
1
+ import { ColumnConfig } from '../types';
2
+ export declare function useColumnVisibility(columns: ColumnConfig[]): {
3
+ visibleColumns: ColumnConfig[];
4
+ allColumns: {
5
+ visible: boolean;
6
+ key: string;
7
+ label: string;
8
+ sortable?: boolean;
9
+ width?: string;
10
+ render?: (value: unknown, item: import('..').ListItem) => React.ReactNode;
11
+ }[];
12
+ toggleColumn: (key: string) => void;
13
+ isColumnVisible: (key: string) => boolean;
14
+ };
@@ -0,0 +1,6 @@
1
+ import { ListItem, ColumnConfig } from '../types';
2
+ export declare function useFiltering(): {
3
+ searchValue: string;
4
+ setSearchValue: import('react').Dispatch<import('react').SetStateAction<string>>;
5
+ filterItems: (items: ListItem[], columns?: ColumnConfig[]) => ListItem[];
6
+ };
@@ -0,0 +1,10 @@
1
+ import { default as React } from 'react';
2
+ export interface UseListViewKeyboardParams {
3
+ onSelectAll: () => void;
4
+ onClearSelection: () => void;
5
+ onOpenSelected: () => void;
6
+ }
7
+ export declare function useListViewKeyboard({ onSelectAll, onClearSelection, onOpenSelected, }: UseListViewKeyboardParams): {
8
+ containerRef: React.RefObject<HTMLDivElement | null>;
9
+ handleKeyDown: (e: React.KeyboardEvent) => void;
10
+ };
@@ -0,0 +1,16 @@
1
+ interface UseSelectionParams {
2
+ orderedIds: string[];
3
+ onSelectionChange?: (selectedIds: string[]) => void;
4
+ }
5
+ interface UseSelectionReturn {
6
+ selectedIds: Set<string>;
7
+ handleSelect: (id: string, shiftKey: boolean, metaKey: boolean) => void;
8
+ handleSelectAll: () => void;
9
+ clearSelection: () => void;
10
+ setSelection: (ids: string[]) => void;
11
+ isSelected: (id: string) => boolean;
12
+ isAllSelected: boolean;
13
+ isIndeterminate: boolean;
14
+ }
15
+ export declare function useSelection({ orderedIds, onSelectionChange, }: UseSelectionParams): UseSelectionReturn;
16
+ export {};
@@ -0,0 +1,12 @@
1
+ import { SortState, ListItem } from '../types';
2
+ interface UseSortingParams {
3
+ onSortChange?: (sort: SortState | null) => void;
4
+ }
5
+ interface UseSortingReturn {
6
+ sort: SortState | null;
7
+ toggleSort: (columnKey: string) => void;
8
+ clearSort: () => void;
9
+ sortItems: (items: ListItem[]) => ListItem[];
10
+ }
11
+ export declare function useSorting({ onSortChange, }: UseSortingParams): UseSortingReturn;
12
+ export {};
@@ -0,0 +1,10 @@
1
+ export { ListView } from './ListView';
2
+ export { TableView } from './TableView';
3
+ export { CardView, CardItem, SortableCardItem } from './CardView';
4
+ export { ListViewToolbar } from './ListViewToolbar';
5
+ export { ListViewStatusBar } from './ListViewStatusBar';
6
+ export { ListViewSplitPane } from './ListViewSplitPane';
7
+ export { ListViewEmptyState } from './ListViewEmptyState';
8
+ export { useSelection, useSorting, useFiltering, useColumnVisibility, useListViewKeyboard, } from './hooks';
9
+ export type { UseListViewKeyboardParams } from './hooks';
10
+ export type { ListItem, ViewMode, CardDensity, SortDirection, SortState, ColumnConfig, ContextMenuAction, SelectionAction, ListViewProps, TableViewProps, TableHeaderProps, TableRowProps, CardViewProps, CardItemProps, ListViewToolbarProps, ListViewStatusBarProps, ListViewSplitPaneProps, ListViewEmptyStateProps, } from './types';
@@ -0,0 +1,148 @@
1
+ import { default as React } from 'react';
2
+ export interface ListItem {
3
+ id: string;
4
+ name: string;
5
+ thumbnail?: string;
6
+ metadata: Record<string, unknown>;
7
+ }
8
+ export type ViewMode = "table" | "card";
9
+ export type CardDensity = "compact" | "regular" | "expanded";
10
+ export type SortDirection = "asc" | "desc";
11
+ export interface SortState {
12
+ columnKey: string;
13
+ direction: SortDirection;
14
+ }
15
+ export interface ColumnConfig {
16
+ key: string;
17
+ label: string;
18
+ sortable?: boolean;
19
+ visible?: boolean;
20
+ width?: string;
21
+ render?: (value: unknown, item: ListItem) => React.ReactNode;
22
+ }
23
+ export interface ContextMenuAction {
24
+ id: string;
25
+ label: string;
26
+ icon?: React.ReactNode;
27
+ destructive?: boolean;
28
+ disabled?: boolean;
29
+ onAction: (items: ListItem[]) => void;
30
+ }
31
+ export type SelectionAction = {
32
+ type: "select";
33
+ id: string;
34
+ shiftKey: boolean;
35
+ metaKey: boolean;
36
+ } | {
37
+ type: "select-all";
38
+ ids: string[];
39
+ } | {
40
+ type: "clear";
41
+ } | {
42
+ type: "set";
43
+ ids: string[];
44
+ };
45
+ export interface ListViewEmptyStateProps {
46
+ isFiltered: boolean;
47
+ className?: string;
48
+ }
49
+ export interface ListViewProps {
50
+ items: ListItem[];
51
+ view: ViewMode;
52
+ onViewChange: (view: ViewMode) => void;
53
+ columns?: ColumnConfig[];
54
+ onSelectionChange?: (selectedIds: string[]) => void;
55
+ onItemOpen?: (item: ListItem) => void;
56
+ onSortChange?: (sort: SortState | null) => void;
57
+ allowSplitView?: boolean;
58
+ contextMenuActions?: ContextMenuAction[];
59
+ renderDetail?: (item: ListItem) => React.ReactNode;
60
+ cardDensity?: CardDensity;
61
+ onCardDensityChange?: (density: CardDensity) => void;
62
+ onReorder?: (ids: string[]) => void;
63
+ virtualizeThreshold?: number;
64
+ toolbarLeft?: React.ReactNode;
65
+ searchPlaceholder?: string;
66
+ emptyState?: React.ReactNode | ((context: {
67
+ isFiltered: boolean;
68
+ }) => React.ReactNode);
69
+ className?: string;
70
+ }
71
+ export interface TableViewProps {
72
+ items: ListItem[];
73
+ columns: ColumnConfig[];
74
+ sort: SortState | null;
75
+ onSortChange: (sort: SortState | null) => void;
76
+ selectedIds: Set<string>;
77
+ onSelectionAction: (action: SelectionAction) => void;
78
+ onItemOpen?: (item: ListItem) => void;
79
+ contextMenuActions?: ContextMenuAction[];
80
+ virtualizeThreshold?: number;
81
+ className?: string;
82
+ }
83
+ export interface TableHeaderProps {
84
+ columns: ColumnConfig[];
85
+ sort: SortState | null;
86
+ onSortChange: (sort: SortState | null) => void;
87
+ allItemIds: string[];
88
+ selectedIds: Set<string>;
89
+ onSelectionAction: (action: SelectionAction) => void;
90
+ }
91
+ export interface TableRowProps {
92
+ item: ListItem;
93
+ columns: ColumnConfig[];
94
+ isSelected: boolean;
95
+ onSelect: (id: string, shiftKey: boolean, metaKey: boolean) => void;
96
+ onItemOpen?: (item: ListItem) => void;
97
+ contextMenuActions?: ContextMenuAction[];
98
+ selectedItems: ListItem[];
99
+ }
100
+ export interface CardViewProps {
101
+ items: ListItem[];
102
+ density: CardDensity;
103
+ selectedIds: Set<string>;
104
+ onSelectionAction: (action: SelectionAction) => void;
105
+ onItemOpen?: (item: ListItem) => void;
106
+ contextMenuActions?: ContextMenuAction[];
107
+ onReorder?: (ids: string[]) => void;
108
+ virtualizeThreshold?: number;
109
+ className?: string;
110
+ }
111
+ export interface CardItemProps {
112
+ item: ListItem;
113
+ density: CardDensity;
114
+ isSelected: boolean;
115
+ onSelect: (id: string, shiftKey: boolean, metaKey: boolean) => void;
116
+ onItemOpen?: (item: ListItem) => void;
117
+ contextMenuActions?: ContextMenuAction[];
118
+ selectedItems: ListItem[];
119
+ }
120
+ export interface ListViewToolbarProps {
121
+ view: ViewMode;
122
+ onViewChange: (view: ViewMode) => void;
123
+ searchValue: string;
124
+ onSearchChange: (value: string) => void;
125
+ columns?: ColumnConfig[];
126
+ onColumnVisibilityChange?: (key: string) => void;
127
+ allowSplitView: boolean;
128
+ isSplitViewOpen: boolean;
129
+ onSplitViewToggle: () => void;
130
+ cardDensity?: CardDensity;
131
+ onCardDensityChange?: (density: CardDensity) => void;
132
+ toolbarLeft?: React.ReactNode;
133
+ searchPlaceholder?: string;
134
+ className?: string;
135
+ }
136
+ export interface ListViewStatusBarProps {
137
+ totalCount: number;
138
+ filteredCount: number;
139
+ selectedCount: number;
140
+ className?: string;
141
+ }
142
+ export interface ListViewSplitPaneProps {
143
+ isOpen: boolean;
144
+ renderDetail: (item: ListItem) => React.ReactNode;
145
+ selectedItem: ListItem | null;
146
+ children: React.ReactNode;
147
+ className?: string;
148
+ }
@@ -0,0 +1,4 @@
1
+ import { Slider as SliderPrimitive } from 'radix-ui';
2
+ import * as React from "react";
3
+ declare function Slider({ className, defaultValue, value, min, max, ...props }: React.ComponentProps<typeof SliderPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export { Slider };
@@ -0,0 +1,3 @@
1
+ import { ToasterProps } from 'sonner';
2
+ declare function Toaster(props: ToasterProps): import("react/jsx-runtime").JSX.Element;
3
+ export { Toaster };
@@ -0,0 +1,2 @@
1
+ declare function Spinner({ className, ...props }: React.ComponentProps<"svg">): import("react/jsx-runtime").JSX.Element;
2
+ export { Spinner };
@@ -0,0 +1,4 @@
1
+ import { ThemeProviderProps, ThemeContextValue } from './types';
2
+ declare function ThemeProvider({ children, defaultTheme, storageKey, }: ThemeProviderProps): import("react/jsx-runtime").JSX.Element;
3
+ declare function useTheme(): ThemeContextValue;
4
+ export { ThemeProvider, useTheme };