@rx-lab/dashboard-searching-ui 1.0.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 (51) hide show
  1. package/README.md +704 -0
  2. package/dist/components/search/SearchAgent/SearchAgent.d.ts +103 -0
  3. package/dist/components/search/SearchAgent/SearchAgent.d.ts.map +1 -0
  4. package/dist/components/search/SearchAgent/components/FileResultCard.d.ts +39 -0
  5. package/dist/components/search/SearchAgent/components/FileResultCard.d.ts.map +1 -0
  6. package/dist/components/search/SearchAgent/components/MessageActions.d.ts +33 -0
  7. package/dist/components/search/SearchAgent/components/MessageActions.d.ts.map +1 -0
  8. package/dist/components/search/SearchAgent/components/MessageBubble.d.ts +54 -0
  9. package/dist/components/search/SearchAgent/components/MessageBubble.d.ts.map +1 -0
  10. package/dist/components/search/SearchAgent/components/StreamingIndicator.d.ts +23 -0
  11. package/dist/components/search/SearchAgent/components/StreamingIndicator.d.ts.map +1 -0
  12. package/dist/components/search/SearchAgent/components/index.d.ts +5 -0
  13. package/dist/components/search/SearchAgent/components/index.d.ts.map +1 -0
  14. package/dist/components/search/SearchAgent/index.d.ts +3 -0
  15. package/dist/components/search/SearchAgent/index.d.ts.map +1 -0
  16. package/dist/components/search/SearchCommand/SearchCommand.d.ts +99 -0
  17. package/dist/components/search/SearchCommand/SearchCommand.d.ts.map +1 -0
  18. package/dist/components/search/SearchCommand/index.d.ts +2 -0
  19. package/dist/components/search/SearchCommand/index.d.ts.map +1 -0
  20. package/dist/components/search/SearchTrigger/SearchTrigger.d.ts +60 -0
  21. package/dist/components/search/SearchTrigger/SearchTrigger.d.ts.map +1 -0
  22. package/dist/components/search/SearchTrigger/index.d.ts +2 -0
  23. package/dist/components/search/SearchTrigger/index.d.ts.map +1 -0
  24. package/dist/components/ui/badge.d.ts +10 -0
  25. package/dist/components/ui/badge.d.ts.map +1 -0
  26. package/dist/components/ui/button.d.ts +11 -0
  27. package/dist/components/ui/button.d.ts.map +1 -0
  28. package/dist/components/ui/command.d.ts +20 -0
  29. package/dist/components/ui/command.d.ts.map +1 -0
  30. package/dist/components/ui/context-menu.d.ts +26 -0
  31. package/dist/components/ui/context-menu.d.ts.map +1 -0
  32. package/dist/components/ui/dialog.d.ts +16 -0
  33. package/dist/components/ui/dialog.d.ts.map +1 -0
  34. package/dist/components/ui/scroll-area.d.ts +6 -0
  35. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  36. package/dist/components/ui/tooltip.d.ts +8 -0
  37. package/dist/components/ui/tooltip.d.ts.map +1 -0
  38. package/dist/hooks/index.d.ts +2 -0
  39. package/dist/hooks/index.d.ts.map +1 -0
  40. package/dist/hooks/useSearchAgent.d.ts +90 -0
  41. package/dist/hooks/useSearchAgent.d.ts.map +1 -0
  42. package/dist/index.d.ts +13 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/lib/utils.d.ts +3 -0
  45. package/dist/lib/utils.d.ts.map +1 -0
  46. package/dist/package.json +42 -0
  47. package/dist/searching-ui.js +16278 -0
  48. package/dist/searching-ui.js.map +1 -0
  49. package/dist/test/setup.d.ts +1 -0
  50. package/dist/test/setup.d.ts.map +1 -0
  51. package/package.json +90 -0
@@ -0,0 +1,103 @@
1
+ import { ComponentType, ReactNode } from 'react';
2
+ import { UIMessage } from 'ai';
3
+ import { Chat } from '@ai-sdk/react';
4
+ import { ToolResultRenderers, ToolAction } from './components';
5
+ /**
6
+ * Header configuration for SearchAgent
7
+ */
8
+ export interface SearchAgentHeaderConfig {
9
+ /** Title text */
10
+ title?: string;
11
+ /** Icon component */
12
+ icon?: ComponentType<{
13
+ className?: string;
14
+ }>;
15
+ /** Show back button */
16
+ showBackButton?: boolean;
17
+ /** Show clear history button */
18
+ showClearButton?: boolean;
19
+ }
20
+ /**
21
+ * Input configuration for SearchAgent
22
+ */
23
+ export interface SearchAgentInputConfig {
24
+ /** Placeholder when ready for input */
25
+ placeholder?: string;
26
+ /** Placeholder when processing */
27
+ placeholderProcessing?: string;
28
+ /** Text or component shown in loading indicator while streaming (default: "Searching...") */
29
+ streamingText?: ReactNode;
30
+ /** Custom spinner icon for loading indicator, or null to hide it */
31
+ streamingIcon?: ComponentType<{
32
+ className?: string;
33
+ }> | null;
34
+ }
35
+ /**
36
+ * Props for the SearchAgent component
37
+ */
38
+ export interface SearchAgentProps {
39
+ /** Initial query to send on mount */
40
+ initialQuery?: string;
41
+ /** Initial messages to load */
42
+ initialMessages?: UIMessage[];
43
+ /** Called when messages change */
44
+ onMessagesChange?: (messages: UIMessage[]) => void;
45
+ /** API endpoint for the chat */
46
+ apiEndpoint?: string;
47
+ /** Custom Chat instance (overrides apiEndpoint) */
48
+ chatInstance?: Chat<UIMessage>;
49
+ /** Custom renderers for tool results */
50
+ toolResultRenderers?: ToolResultRenderers;
51
+ /** Called when a tool action occurs */
52
+ onToolAction?: (action: ToolAction) => void;
53
+ /** Custom message renderer (replaces entire MessageBubble) */
54
+ renderMessage?: (props: {
55
+ message: UIMessage;
56
+ isUser: boolean;
57
+ toolResultRenderers?: ToolResultRenderers;
58
+ onToolAction?: (action: ToolAction) => void;
59
+ }) => ReactNode;
60
+ /** Custom user message content renderer */
61
+ renderUserContent?: (content: string) => ReactNode;
62
+ /** Custom assistant message content renderer */
63
+ renderAssistantContent?: (content: string) => ReactNode;
64
+ /** Custom streaming indicator */
65
+ renderStreamingIndicator?: () => ReactNode;
66
+ /** Navigation handler - replaces Next.js router dependency */
67
+ onNavigate?: (path: string) => void;
68
+ /** Called when back button is clicked */
69
+ onBack?: () => void;
70
+ /** Called when dialog should close */
71
+ onClose?: () => void;
72
+ /** Called when user clears history */
73
+ onClearHistory?: () => void;
74
+ /** Header configuration */
75
+ header?: SearchAgentHeaderConfig;
76
+ /** Input configuration */
77
+ input?: SearchAgentInputConfig;
78
+ /** Additional class name */
79
+ className?: string;
80
+ /** Enable action buttons on messages (default: true) */
81
+ enableMessageActions?: boolean;
82
+ /** Called when user initiates regenerate on a message */
83
+ onMessageRegenerate?: (messageId: string, originalContent: string) => void;
84
+ }
85
+ /**
86
+ * An AI-powered search agent component with streaming chat support.
87
+ * Fully customizable with render props for messages, tools, and UI elements.
88
+ *
89
+ * @example
90
+ * ```tsx
91
+ * <SearchAgent
92
+ * initialQuery="Find all PDF documents"
93
+ * apiEndpoint="/api/search-agent"
94
+ * onBack={() => setMode("quick")}
95
+ * onClose={() => setOpen(false)}
96
+ * toolResultRenderers={{
97
+ * display_files: FileResultsRenderer,
98
+ * }}
99
+ * />
100
+ * ```
101
+ */
102
+ export declare function SearchAgent({ initialQuery, initialMessages, onMessagesChange, apiEndpoint, chatInstance, toolResultRenderers, onToolAction, renderMessage, renderUserContent, renderAssistantContent, renderStreamingIndicator, onNavigate, onBack, onClose, onClearHistory, header, input: inputConfig, className, enableMessageActions, onMessageRegenerate, }: SearchAgentProps): import("react/jsx-runtime").JSX.Element;
103
+ //# sourceMappingURL=SearchAgent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchAgent.d.ts","sourceRoot":"","sources":["../../../../src/components/search/SearchAgent/SearchAgent.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { ReactNode } from 'react';
2
+ /**
3
+ * File data for the FileResultCard
4
+ */
5
+ export interface FileData {
6
+ /** Unique identifier for the file */
7
+ id: string | number;
8
+ /** Display title */
9
+ title: string;
10
+ /** File type (e.g., "document", "image", "video") */
11
+ fileType?: string;
12
+ /** MIME type */
13
+ mimeType?: string;
14
+ /** Folder ID if file is in a folder */
15
+ folderId?: string | number | null;
16
+ /** Folder name for display */
17
+ folderName?: string;
18
+ }
19
+ /**
20
+ * Props for the FileResultCard component
21
+ */
22
+ export interface FileResultCardProps {
23
+ /** File data to display */
24
+ file: FileData;
25
+ /** Optional description text */
26
+ description?: string;
27
+ /** Click handler */
28
+ onClick?: () => void;
29
+ /** Custom icon renderer */
30
+ renderIcon?: (fileType?: string, mimeType?: string) => ReactNode;
31
+ /** Additional class name */
32
+ className?: string;
33
+ }
34
+ /**
35
+ * A clickable card for displaying a file result.
36
+ * Supports custom icon rendering via the renderIcon prop.
37
+ */
38
+ export declare function FileResultCard({ file, description, onClick, renderIcon, className, }: FileResultCardProps): import("react/jsx-runtime").JSX.Element;
39
+ //# sourceMappingURL=FileResultCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileResultCard.d.ts","sourceRoot":"","sources":["../../../../../src/components/search/SearchAgent/components/FileResultCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,qCAAqC;IACrC,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAElC,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,IAAI,EAAE,QAAQ,CAAC;IAEf,gCAAgC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC;IAEjE,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,WAAW,EACX,OAAO,EACP,UAAU,EACV,SAAS,GACV,EAAE,mBAAmB,2CAoCrB"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Action types for message actions
3
+ */
4
+ export interface MessageAction {
5
+ type: "copy" | "regenerate";
6
+ messageId: string;
7
+ content?: string;
8
+ }
9
+ /**
10
+ * Props for the MessageActions component
11
+ */
12
+ export interface MessageActionsProps {
13
+ /** Message ID */
14
+ messageId: string;
15
+ /** Text content of the message */
16
+ textContent: string;
17
+ /** Whether this is a user message */
18
+ isUser: boolean;
19
+ /** Whether the chat is currently processing */
20
+ isProcessing?: boolean;
21
+ /** Callback when an action is triggered */
22
+ onAction: (action: MessageAction) => void;
23
+ /** Additional class name */
24
+ className?: string;
25
+ }
26
+ /**
27
+ * Action buttons displayed at the bottom of a message.
28
+ * Shows Copy and Regenerate buttons as icons with tooltips.
29
+ * - User messages: Regenerate deletes follow-up messages and regenerates
30
+ * - Assistant messages: Regenerate regenerates this message only
31
+ */
32
+ export declare function MessageActions({ messageId, textContent, isUser, isProcessing, onAction, className, }: MessageActionsProps): import("react/jsx-runtime").JSX.Element;
33
+ //# sourceMappingURL=MessageActions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageActions.d.ts","sourceRoot":"","sources":["../../../../../src/components/search/SearchAgent/components/MessageActions.tsx"],"names":[],"mappings":"AAWA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,YAAY,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAC;IAEpB,qCAAqC;IACrC,MAAM,EAAE,OAAO,CAAC;IAEhB,+CAA+C;IAC/C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,2CAA2C;IAC3C,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;IAE1C,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,WAAW,EACX,MAAM,EACN,YAAoB,EACpB,QAAQ,EACR,SAAS,GACV,EAAE,mBAAmB,2CAsErB"}
@@ -0,0 +1,54 @@
1
+ import { ReactNode, ComponentType } from 'react';
2
+ import { UIMessage } from 'ai';
3
+ /**
4
+ * Tool action that can be triggered from a tool result
5
+ */
6
+ export interface ToolAction {
7
+ type: string;
8
+ payload: unknown;
9
+ }
10
+ /**
11
+ * Props passed to custom tool result renderers
12
+ */
13
+ export interface ToolResultRendererProps {
14
+ output: unknown;
15
+ toolCallId?: string;
16
+ onAction?: (action: ToolAction) => void;
17
+ }
18
+ /**
19
+ * Map of tool names to their custom renderers
20
+ */
21
+ export type ToolResultRenderers = {
22
+ [toolName: string]: ComponentType<ToolResultRendererProps>;
23
+ };
24
+ /**
25
+ * Props for the MessageBubble component
26
+ */
27
+ export interface MessageBubbleProps {
28
+ /** The message to render */
29
+ message: UIMessage;
30
+ /** Custom renderers for tool results, keyed by tool name */
31
+ toolResultRenderers?: ToolResultRenderers;
32
+ /** Handler for tool actions */
33
+ onToolAction?: (action: ToolAction) => void;
34
+ /** Custom user message content renderer */
35
+ renderUserContent?: (content: string) => ReactNode;
36
+ /** Custom assistant message content renderer */
37
+ renderAssistantContent?: (content: string) => ReactNode;
38
+ /** Custom user avatar icon */
39
+ userIcon?: ComponentType<{
40
+ className?: string;
41
+ }>;
42
+ /** Custom bot avatar icon */
43
+ botIcon?: ComponentType<{
44
+ className?: string;
45
+ }>;
46
+ /** Additional class name */
47
+ className?: string;
48
+ }
49
+ /**
50
+ * A message bubble component for displaying chat messages.
51
+ * Supports custom rendering of user/assistant content and tool results.
52
+ */
53
+ export declare function MessageBubble({ message, toolResultRenderers, onToolAction, renderUserContent, renderAssistantContent, userIcon: UserIcon, botIcon: BotIcon, className, }: MessageBubbleProps): import("react/jsx-runtime").JSX.Element;
54
+ //# sourceMappingURL=MessageBubble.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MessageBubble.d.ts","sourceRoot":"","sources":["../../../../../src/components/search/SearchAgent/components/MessageBubble.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAItD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAIpC;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,CAAC,uBAAuB,CAAC,CAAC;CAC5D,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,4BAA4B;IAC5B,OAAO,EAAE,SAAS,CAAC;IAEnB,4DAA4D;IAC5D,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAE1C,+BAA+B;IAC/B,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAE5C,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC;IAEnD,gDAAgD;IAChD,sBAAsB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC;IAExD,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEjD,6BAA6B;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEhD,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,mBAAwB,EACxB,YAAY,EACZ,iBAAiB,EACjB,sBAAsB,EACtB,QAAQ,EAAE,QAAe,EACzB,OAAO,EAAE,OAAa,EACtB,SAAS,GACV,EAAE,kBAAkB,2CAyGpB"}
@@ -0,0 +1,23 @@
1
+ import { ComponentType, ReactNode } from 'react';
2
+ /**
3
+ * Props for the StreamingIndicator component
4
+ */
5
+ export interface StreamingIndicatorProps {
6
+ /** Custom text or component to display while streaming */
7
+ text?: ReactNode;
8
+ /** Custom icon component for the bot avatar */
9
+ botIcon?: ComponentType<{
10
+ className?: string;
11
+ }>;
12
+ /** Custom loading icon, or null to hide it */
13
+ loadingIcon?: ComponentType<{
14
+ className?: string;
15
+ }> | null;
16
+ /** Additional class name */
17
+ className?: string;
18
+ }
19
+ /**
20
+ * A loading indicator shown while the AI is streaming a response.
21
+ */
22
+ export declare function StreamingIndicator({ text, botIcon: BotIcon, loadingIcon, className, }: StreamingIndicatorProps): import("react/jsx-runtime").JSX.Element;
23
+ //# sourceMappingURL=StreamingIndicator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StreamingIndicator.d.ts","sourceRoot":"","sources":["../../../../../src/components/search/SearchAgent/components/StreamingIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAItD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEhD,8CAA8C;IAC9C,WAAW,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,IAAI,CAAC;IAE3D,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,IAAqB,EACrB,OAAO,EAAE,OAAa,EACtB,WAAW,EACX,SAAS,GACV,EAAE,uBAAuB,2CAuBzB"}
@@ -0,0 +1,5 @@
1
+ export { MessageBubble, type MessageBubbleProps, type ToolResultRenderers, type ToolResultRendererProps, type ToolAction, } from './MessageBubble';
2
+ export { StreamingIndicator, type StreamingIndicatorProps, } from './StreamingIndicator';
3
+ export { FileResultCard, type FileResultCardProps, type FileData, } from './FileResultCard';
4
+ export { MessageActions, type MessageActionsProps, type MessageAction, } from './MessageActions';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/search/SearchAgent/components/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,QAAQ,GACd,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { SearchAgent, type SearchAgentProps, type SearchAgentHeaderConfig, type SearchAgentInputConfig, } from './SearchAgent';
2
+ export { MessageBubble, StreamingIndicator, FileResultCard, MessageActions, type MessageBubbleProps, type StreamingIndicatorProps, type FileResultCardProps, type FileData, type ToolResultRenderers, type ToolResultRendererProps, type ToolAction, type MessageActionsProps, type MessageAction, } from './components';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/search/SearchAgent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,GAC5B,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { ReactNode } from 'react';
2
+ import { SearchAgentProps } from '../SearchAgent';
3
+ /**
4
+ * Generic search result type
5
+ */
6
+ export interface BaseSearchResult<T = unknown> {
7
+ /** Unique identifier */
8
+ id: string | number;
9
+ /** Display title */
10
+ title: string;
11
+ /** Optional snippet/description */
12
+ snippet?: string;
13
+ /** Relevance score (0-1) */
14
+ score?: number;
15
+ /** Additional metadata */
16
+ metadata?: T;
17
+ }
18
+ /**
19
+ * Search type configuration
20
+ */
21
+ export interface SearchTypeConfig {
22
+ /** Unique identifier */
23
+ id: string;
24
+ /** Display label */
25
+ label: string;
26
+ }
27
+ /**
28
+ * Search parameters passed to onSearch
29
+ */
30
+ export interface SearchParams {
31
+ query: string;
32
+ searchType?: string;
33
+ limit?: number;
34
+ }
35
+ /**
36
+ * Props for the SearchCommand component
37
+ */
38
+ export interface SearchCommandProps<TResult extends BaseSearchResult = BaseSearchResult> {
39
+ /** Whether the dialog is open */
40
+ open: boolean;
41
+ /** Callback to change open state */
42
+ onOpenChange: (open: boolean) => void;
43
+ /**
44
+ * Search function - called with debounced query.
45
+ * Can be a server action, API call, or any async function.
46
+ */
47
+ onSearch: (params: SearchParams) => Promise<TResult[]>;
48
+ /** Called when user selects a result */
49
+ onResultSelect?: (result: TResult) => void;
50
+ /** Available search types */
51
+ searchTypes?: SearchTypeConfig[];
52
+ /** Default search type ID */
53
+ defaultSearchType?: string;
54
+ /** Debounce delay in ms */
55
+ debounceMs?: number;
56
+ /** Max results to fetch */
57
+ limit?: number;
58
+ /** Custom result item renderer */
59
+ renderResult?: (result: TResult, onSelect: () => void) => ReactNode;
60
+ /** Custom empty state renderer */
61
+ renderEmpty?: (query: string, hasResults: boolean) => ReactNode;
62
+ /** Custom loading renderer */
63
+ renderLoading?: () => ReactNode;
64
+ /** Enable AI agent mode */
65
+ enableAgentMode?: boolean;
66
+ /** Agent configuration (required if enableAgentMode is true) */
67
+ agentConfig?: Partial<SearchAgentProps>;
68
+ /** Storage key for session persistence (null to disable) */
69
+ chatHistoryStorageKey?: string | null;
70
+ /** Dialog placeholder */
71
+ placeholder?: string;
72
+ /** Show search type selector */
73
+ showSearchTypeSelector?: boolean;
74
+ /** Dialog class name */
75
+ className?: string;
76
+ }
77
+ /**
78
+ * A search command dialog with optional AI agent mode.
79
+ * Supports custom search functions, result rendering, and search type selection.
80
+ *
81
+ * @example
82
+ * ```tsx
83
+ * <SearchCommand
84
+ * open={open}
85
+ * onOpenChange={setOpen}
86
+ * onSearch={async ({ query, searchType, limit }) => {
87
+ * const results = await searchAPI(query, { type: searchType, limit });
88
+ * return results;
89
+ * }}
90
+ * onResultSelect={(result) => {
91
+ * router.push(`/files/${result.id}`);
92
+ * }}
93
+ * enableAgentMode
94
+ * agentConfig={{ apiEndpoint: "/api/search-agent" }}
95
+ * />
96
+ * ```
97
+ */
98
+ export declare function SearchCommand<TResult extends BaseSearchResult = BaseSearchResult>({ open, onOpenChange, onSearch, onResultSelect, searchTypes, defaultSearchType, debounceMs, limit, renderResult, renderEmpty, renderLoading, enableAgentMode, agentConfig, chatHistoryStorageKey, placeholder, showSearchTypeSelector, className, }: SearchCommandProps<TResult>): import("react/jsx-runtime").JSX.Element;
99
+ //# sourceMappingURL=SearchCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchCommand.d.ts","sourceRoot":"","sources":["../../../../src/components/search/SearchCommand/SearchCommand.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAcvC,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO;IAC3C,wBAAwB;IACxB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpB,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IAEd,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,CAAC,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CACjC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB;IAEnD,iCAAiC;IACjC,IAAI,EAAE,OAAO,CAAC;IAEd,oCAAoC;IACpC,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAEtC;;;OAGG;IACH,QAAQ,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvD,wCAAwC;IACxC,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAE3C,6BAA6B;IAC7B,WAAW,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAEjC,6BAA6B;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,kCAAkC;IAClC,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC;IAEpE,kCAAkC;IAClC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,KAAK,SAAS,CAAC;IAEhE,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,SAAS,CAAC;IAEhC,2BAA2B;IAC3B,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,gEAAgE;IAChE,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAExC,4DAA4D;IAC5D,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEtC,yBAAyB;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,gCAAgC;IAChC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,aAAa,CAAC,OAAO,SAAS,gBAAgB,GAAG,gBAAgB,EAAE,EACjF,IAAI,EACJ,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,WAAW,EACX,iBAAiB,EACjB,UAAgB,EAChB,KAAU,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,eAAuB,EACvB,WAAgB,EAChB,qBAA6C,EAC7C,WAAqD,EACrD,sBAA6B,EAC7B,SAAS,GACV,EAAE,kBAAkB,CAAC,OAAO,CAAC,2CAkU7B"}
@@ -0,0 +1,2 @@
1
+ export { SearchCommand, type SearchCommandProps, type BaseSearchResult, type SearchTypeConfig, type SearchParams, } from './SearchCommand';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/search/SearchCommand/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { ComponentType, ReactNode, ButtonHTMLAttributes } from 'react';
2
+ /**
3
+ * Keyboard shortcut configuration
4
+ */
5
+ export interface ShortcutConfig {
6
+ /** The key to display (e.g., "K") */
7
+ key: string;
8
+ /** The modifier key (e.g., "⌘" or "Ctrl") */
9
+ modifier?: string;
10
+ }
11
+ /**
12
+ * Props for the SearchTrigger component
13
+ */
14
+ export interface SearchTriggerProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> {
15
+ /** Click handler to open the search dialog */
16
+ onClick: () => void;
17
+ /** Custom trigger content - replaces default entirely */
18
+ children?: ReactNode;
19
+ /** Custom icon component (defaults to Search from lucide-react) */
20
+ icon?: ComponentType<{
21
+ className?: string;
22
+ }>;
23
+ /** Placeholder text shown in the trigger */
24
+ placeholder?: string;
25
+ /** Keyboard shortcut display (defaults to ⌘K). Set to null to hide */
26
+ shortcut?: ShortcutConfig | null;
27
+ /** Additional class name for the button */
28
+ className?: string;
29
+ /** Variant for styling (uses shadcn Button variants) */
30
+ variant?: "default" | "outline" | "ghost" | "secondary" | "destructive" | "link";
31
+ }
32
+ /**
33
+ * A trigger button for opening the search dialog.
34
+ * Can be fully customized with custom icon, placeholder, shortcut, or entirely custom children.
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * // Basic usage
39
+ * <SearchTrigger onClick={() => setOpen(true)} />
40
+ *
41
+ * // Custom placeholder
42
+ * <SearchTrigger
43
+ * onClick={() => setOpen(true)}
44
+ * placeholder="Find documents..."
45
+ * />
46
+ *
47
+ * // Custom shortcut
48
+ * <SearchTrigger
49
+ * onClick={() => setOpen(true)}
50
+ * shortcut={{ key: "P", modifier: "Ctrl" }}
51
+ * />
52
+ *
53
+ * // Completely custom content
54
+ * <SearchTrigger onClick={() => setOpen(true)}>
55
+ * <span>🔍 Search</span>
56
+ * </SearchTrigger>
57
+ * ```
58
+ */
59
+ export declare function SearchTrigger({ onClick, children, icon: Icon, placeholder, shortcut, className, variant, ...buttonProps }: SearchTriggerProps): import("react/jsx-runtime").JSX.Element;
60
+ //# sourceMappingURL=SearchTrigger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchTrigger.d.ts","sourceRoot":"","sources":["../../../../src/components/search/SearchTrigger/SearchTrigger.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAK5E;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,qCAAqC;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACjE,8CAA8C;IAC9C,OAAO,EAAE,MAAM,IAAI,CAAC;IAEpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB,mEAAmE;IACnE,IAAI,CAAC,EAAE,aAAa,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE7C,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;IAEjC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,wDAAwD;IACxD,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,aAAa,GAAG,MAAM,CAAC;CAClF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EACP,QAAQ,EACR,IAAI,EAAE,IAAa,EACnB,WAA+B,EAC/B,QAAsC,EACtC,SAAS,EACT,OAAmB,EACnB,GAAG,WAAW,EACf,EAAE,kBAAkB,2CAgCpB"}
@@ -0,0 +1,2 @@
1
+ export { SearchTrigger, type SearchTriggerProps, type ShortcutConfig } from './SearchTrigger';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/search/SearchTrigger/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ declare const badgeVariants: (props?: ({
4
+ variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
5
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
6
+ declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
7
+ asChild?: boolean;
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ export { Badge, badgeVariants };
10
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/components/ui/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,aAAa;;8EAmBlB,CAAA;AAED,iBAAS,KAAK,CAAC,EACb,SAAS,EACT,OAAO,EACP,OAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAC7B,YAAY,CAAC,OAAO,aAAa,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,2CAU3D;AAED,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { VariantProps } from 'class-variance-authority';
2
+ import * as React from "react";
3
+ declare const buttonVariants: (props?: ({
4
+ variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | null | undefined;
5
+ size?: "default" | "sm" | "lg" | "icon" | "icon-sm" | "icon-lg" | null | undefined;
6
+ } & import('class-variance-authority/types').ClassProp) | undefined) => string;
7
+ declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
8
+ asChild?: boolean;
9
+ }): import("react/jsx-runtime").JSX.Element;
10
+ export { Button, buttonVariants };
11
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAE9B,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIjE,QAAA,MAAM,cAAc;;;8EA8BnB,CAAA;AAED,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,OAAmB,EACnB,IAAgB,EAChB,OAAe,EACf,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,QAAQ,CAAC,GAC/B,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IACpC,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,2CAYF;AAED,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,20 @@
1
+ import { Command as CommandPrimitive } from 'cmdk';
2
+ import { Dialog } from './dialog';
3
+ import * as React from "react";
4
+ declare function Command({ className, ...props }: React.ComponentProps<typeof CommandPrimitive>): import("react/jsx-runtime").JSX.Element;
5
+ declare function CommandDialog({ title, description, children, className, showCloseButton, shouldFilter, ...props }: React.ComponentProps<typeof Dialog> & {
6
+ title?: string;
7
+ description?: string;
8
+ className?: string;
9
+ showCloseButton?: boolean;
10
+ shouldFilter?: boolean;
11
+ }): import("react/jsx-runtime").JSX.Element;
12
+ declare function CommandInput({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Input>): import("react/jsx-runtime").JSX.Element;
13
+ declare function CommandList({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.List>): import("react/jsx-runtime").JSX.Element;
14
+ declare function CommandEmpty({ ...props }: React.ComponentProps<typeof CommandPrimitive.Empty>): import("react/jsx-runtime").JSX.Element;
15
+ declare function CommandGroup({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
16
+ declare function CommandSeparator({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
17
+ declare function CommandItem({ className, ...props }: React.ComponentProps<typeof CommandPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
18
+ declare function CommandShortcut({ className, ...props }: React.ComponentProps<"span">): import("react/jsx-runtime").JSX.Element;
19
+ export { Command, CommandDialog, CommandInput, CommandList, CommandEmpty, CommandGroup, CommandItem, CommandShortcut, CommandSeparator, };
20
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/components/ui/command.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAA;AAIlD,OAAO,EACL,MAAM,EAKP,MAAM,wBAAwB,CAAA;AAE/B,iBAAS,OAAO,CAAC,EACf,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,2CAW/C;AAED,iBAAS,aAAa,CAAC,EACrB,KAAyB,EACzB,WAA8C,EAC9C,QAAQ,EACR,SAAS,EACT,eAAsB,EACtB,YAAY,EACZ,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,GAAG;IACvC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,YAAY,CAAC,EAAE,OAAO,CAAA;CACvB,2CAiBA;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAiBrD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAWpD;AAED,iBAAS,YAAY,CAAC,EACpB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAQrD;AAED,iBAAS,YAAY,CAAC,EACpB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAWrD;AAED,iBAAS,gBAAgB,CAAC,EACxB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,2CAQzD;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAWpD;AAED,iBAAS,eAAe,CAAC,EACvB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,2CAW9B;AAED,OAAO,EACL,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,eAAe,EACf,gBAAgB,GACjB,CAAA"}
@@ -0,0 +1,26 @@
1
+ import * as React from "react";
2
+ import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
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, };
26
+ //# sourceMappingURL=context-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-menu.d.ts","sourceRoot":"","sources":["../../../src/components/ui/context-menu.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import * as React from "react";
2
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
3
+ declare function Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
5
+ declare function DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>): import("react/jsx-runtime").JSX.Element;
6
+ declare function DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>): import("react/jsx-runtime").JSX.Element;
7
+ declare function DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>): import("react/jsx-runtime").JSX.Element;
8
+ declare function DialogContent({ className, children, showCloseButton, ...props }: React.ComponentProps<typeof DialogPrimitive.Content> & {
9
+ showCloseButton?: boolean;
10
+ }): import("react/jsx-runtime").JSX.Element;
11
+ declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
12
+ declare function DialogFooter({ className, ...props }: React.ComponentProps<"div">): import("react/jsx-runtime").JSX.Element;
13
+ declare function DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>): import("react/jsx-runtime").JSX.Element;
14
+ declare function DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>): import("react/jsx-runtime").JSX.Element;
15
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
16
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/components/ui/dialog.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAA;AAKzD,iBAAS,MAAM,CAAC,EACd,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAEnD;AAED,iBAAS,aAAa,CAAC,EACrB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAEtD;AAED,iBAAS,YAAY,CAAC,EACpB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,MAAM,CAAC,2CAErD;AAED,iBAAS,WAAW,CAAC,EACnB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAEpD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,2CAWtD;AAED,iBAAS,aAAa,CAAC,EACrB,SAAS,EACT,QAAQ,EACR,eAAsB,EACtB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,OAAO,CAAC,GAAG;IACxD,eAAe,CAAC,EAAE,OAAO,CAAA;CAC1B,2CAyBA;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAQzE;AAED,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,2CAWzE;AAED,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAQpD;AAED,iBAAS,iBAAiB,CAAC,EACzB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,WAAW,CAAC,2CAQ1D;AAED,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,GACd,CAAA"}
@@ -0,0 +1,6 @@
1
+ import * as React from "react";
2
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
3
+ declare function ScrollArea({ className, children, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ declare function ScrollBar({ className, orientation, ...props }: React.ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): import("react/jsx-runtime").JSX.Element;
5
+ export { ScrollArea, ScrollBar };
6
+ //# sourceMappingURL=scroll-area.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../../src/components/ui/scroll-area.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAA;AAIlE,iBAAS,UAAU,CAAC,EAClB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,2CAiBvD;AAED,iBAAS,SAAS,CAAC,EACjB,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,mBAAmB,CAAC,2CAqBtE;AAED,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,CAAA"}