@chat-js/cli 0.6.1 → 0.6.2

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 (153) hide show
  1. package/dist/index.js +16938 -16786
  2. package/package.json +1 -1
  3. package/templates/chat-app/app/(auth)/login/page.tsx +3 -3
  4. package/templates/chat-app/app/(chat)/api/chat/route.ts +4 -60
  5. package/templates/chat-app/app/not-found.tsx +2 -2
  6. package/templates/chat-app/chat.config.ts +3 -0
  7. package/templates/chat-app/components/ai-elements/actions.tsx +44 -44
  8. package/templates/chat-app/components/ai-elements/artifact.tsx +92 -92
  9. package/templates/chat-app/components/ai-elements/code-block.tsx +143 -143
  10. package/templates/chat-app/components/ai-elements/context.tsx +313 -313
  11. package/templates/chat-app/components/ai-elements/conversation.tsx +65 -65
  12. package/templates/chat-app/components/ai-elements/extra/conversation-content-scroll-area.tsx +29 -29
  13. package/templates/chat-app/components/ai-elements/extra/mcp-tool-header.tsx +27 -27
  14. package/templates/chat-app/components/ai-elements/message.tsx +341 -344
  15. package/templates/chat-app/components/ai-elements/parseIncompleteMarkdown.tsx +122 -122
  16. package/templates/chat-app/components/ai-elements/prompt-input.tsx +1059 -1059
  17. package/templates/chat-app/components/ai-elements/reasoning.tsx +131 -131
  18. package/templates/chat-app/components/ai-elements/response.tsx +15 -12
  19. package/templates/chat-app/components/ai-elements/sandbox.tsx +84 -84
  20. package/templates/chat-app/components/ai-elements/shimmer.tsx +47 -47
  21. package/templates/chat-app/components/ai-elements/suggestion.tsx +33 -33
  22. package/templates/chat-app/components/ai-elements/tool.tsx +118 -118
  23. package/templates/chat-app/components/app-sidebar-history-conditional.tsx +3 -3
  24. package/templates/chat-app/components/app-sidebar.tsx +3 -3
  25. package/templates/chat-app/components/connectors-dropdown.tsx +6 -3
  26. package/templates/chat-app/components/deep-research-progress.tsx +1 -1
  27. package/templates/chat-app/components/header-breadcrumb.tsx +14 -11
  28. package/templates/chat-app/components/internal-link.tsx +73 -0
  29. package/templates/chat-app/components/login-form.tsx +5 -5
  30. package/templates/chat-app/components/message-parts.tsx +1 -71
  31. package/templates/chat-app/components/model-selector.tsx +3 -3
  32. package/templates/chat-app/components/new-chat-button.tsx +4 -4
  33. package/templates/chat-app/components/part/document-common.tsx +3 -3
  34. package/templates/chat-app/components/part/document-tool.tsx +3 -3
  35. package/templates/chat-app/components/part/message-annotations.tsx +2 -2
  36. package/templates/chat-app/components/part/tool-part.tsx +92 -0
  37. package/templates/chat-app/components/project-chat-item.tsx +2 -2
  38. package/templates/chat-app/components/research-progress.tsx +2 -2
  39. package/templates/chat-app/components/research-task.tsx +1 -1
  40. package/templates/chat-app/components/research-tasks.tsx +1 -1
  41. package/templates/chat-app/components/settings/connectors-settings.tsx +4 -4
  42. package/templates/chat-app/components/settings/mcp-details-page.tsx +5 -5
  43. package/templates/chat-app/components/settings/settings-nav.tsx +3 -3
  44. package/templates/chat-app/components/sidebar-chat-item.tsx +4 -12
  45. package/templates/chat-app/components/sidebar-project-item.tsx +4 -11
  46. package/templates/chat-app/components/sidebar-top-row.tsx +7 -7
  47. package/templates/chat-app/components/sidebar-user-nav.tsx +3 -3
  48. package/templates/chat-app/components/signup-form.tsx +8 -5
  49. package/templates/chat-app/components/source-badge.tsx +3 -9
  50. package/templates/chat-app/components/sources.tsx +1 -1
  51. package/templates/chat-app/components/ui/accordion.tsx +32 -32
  52. package/templates/chat-app/components/ui/alert-dialog.tsx +103 -103
  53. package/templates/chat-app/components/ui/alert.tsx +36 -36
  54. package/templates/chat-app/components/ui/avatar.tsx +28 -28
  55. package/templates/chat-app/components/ui/badge.tsx +22 -22
  56. package/templates/chat-app/components/ui/breadcrumb.tsx +72 -72
  57. package/templates/chat-app/components/ui/button-group.tsx +58 -58
  58. package/templates/chat-app/components/ui/button.tsx +45 -45
  59. package/templates/chat-app/components/ui/card.tsx +65 -65
  60. package/templates/chat-app/components/ui/checkbox.tsx +16 -16
  61. package/templates/chat-app/components/ui/collapsible.tsx +1 -1
  62. package/templates/chat-app/components/ui/command.tsx +137 -137
  63. package/templates/chat-app/components/ui/dialog.tsx +94 -94
  64. package/templates/chat-app/components/ui/drawer.tsx +68 -68
  65. package/templates/chat-app/components/ui/dropdown-menu.tsx +184 -184
  66. package/templates/chat-app/components/ui/empty.tsx +76 -76
  67. package/templates/chat-app/components/ui/extra/action-container.tsx +3 -3
  68. package/templates/chat-app/components/ui/extra/scroll-area-viewport-ref.tsx +24 -24
  69. package/templates/chat-app/components/ui/form.tsx +112 -112
  70. package/templates/chat-app/components/ui/hover-card.tsx +25 -25
  71. package/templates/chat-app/components/ui/input-group.tsx +126 -126
  72. package/templates/chat-app/components/ui/input.tsx +13 -13
  73. package/templates/chat-app/components/ui/label.tsx +12 -12
  74. package/templates/chat-app/components/ui/popover.tsx +25 -25
  75. package/templates/chat-app/components/ui/progress.tsx +19 -19
  76. package/templates/chat-app/components/ui/resizable.tsx +27 -27
  77. package/templates/chat-app/components/ui/scroll-area.tsx +30 -30
  78. package/templates/chat-app/components/ui/select.tsx +108 -108
  79. package/templates/chat-app/components/ui/separator.tsx +16 -16
  80. package/templates/chat-app/components/ui/sheet.tsx +91 -91
  81. package/templates/chat-app/components/ui/sidebar.tsx +615 -615
  82. package/templates/chat-app/components/ui/skeleton.tsx +7 -7
  83. package/templates/chat-app/components/ui/slider.tsx +50 -50
  84. package/templates/chat-app/components/ui/spinner.tsx +8 -8
  85. package/templates/chat-app/components/ui/switch.tsx +16 -16
  86. package/templates/chat-app/components/ui/table.tsx +71 -71
  87. package/templates/chat-app/components/ui/tabs.tsx +31 -31
  88. package/templates/chat-app/components/ui/textarea.tsx +10 -10
  89. package/templates/chat-app/components/ui/toggle.tsx +31 -31
  90. package/templates/chat-app/components/ui/tooltip.tsx +48 -48
  91. package/templates/chat-app/components/upgrade-cta/limit-display.tsx +7 -7
  92. package/templates/chat-app/components/upgrade-cta/login-cta-banner.tsx +3 -3
  93. package/templates/chat-app/components/upgrade-cta/login-prompt.tsx +3 -3
  94. package/templates/chat-app/hooks/use-mobile.ts +13 -13
  95. package/templates/chat-app/lib/ai/core-chat-agent.ts +25 -14
  96. package/templates/chat-app/lib/ai/eval-agent.ts +4 -5
  97. package/templates/chat-app/lib/ai/installed-tools.ts +12 -0
  98. package/templates/chat-app/lib/ai/mcp/mcp-client.ts +2 -2
  99. package/templates/chat-app/lib/ai/models.generated.ts +4236 -4585
  100. package/templates/chat-app/lib/ai/tool-renderer-registry.ts +31 -0
  101. package/templates/chat-app/lib/ai/types.ts +15 -20
  102. package/templates/chat-app/lib/config-requirements.ts +11 -6
  103. package/templates/chat-app/lib/config-schema.ts +13 -0
  104. package/templates/chat-app/lib/stores/hooks-message-parts.ts +1 -1
  105. package/templates/chat-app/lib/utils.ts +157 -157
  106. package/templates/chat-app/package.json +1 -1
  107. package/templates/chat-app/scripts/check-env.ts +229 -2
  108. package/templates/chat-app/tools/chatjs/_shared/lib/tool-part.ts +5 -0
  109. package/templates/chat-app/{components/part/weather.tsx → tools/chatjs/get-weather/renderer.tsx} +24 -38
  110. package/templates/chat-app/{components/part/retrieve-url.tsx → tools/chatjs/retrieve-url/renderer.tsx} +20 -15
  111. package/templates/chat-app/{lib/ai/tools/retrieve-url.ts → tools/chatjs/retrieve-url/tool.ts} +46 -7
  112. package/templates/chat-app/tools/chatjs/tools.ts +16 -0
  113. package/templates/chat-app/tools/chatjs/ui.ts +17 -0
  114. package/templates/chat-app/tools/chatjs/word-count/renderer.tsx +50 -0
  115. package/templates/chat-app/tools/chatjs/word-count/tool.ts +30 -0
  116. package/templates/chat-app/{lib/ai/tools → tools/platform}/code-execution.ts +3 -5
  117. package/templates/chat-app/{lib/ai/tools → tools/platform}/deep-research/deep-research.ts +2 -3
  118. package/templates/chat-app/{lib/ai/tools → tools/platform}/deep-research/pipeline.ts +1 -1
  119. package/templates/chat-app/{lib/ai/tools → tools/platform}/deep-research/types.ts +1 -1
  120. package/templates/chat-app/{lib/ai/tools → tools/platform}/deep-research/utils.ts +7 -7
  121. package/templates/chat-app/{lib/ai/tools → tools/platform}/documents/types.ts +1 -1
  122. package/templates/chat-app/{lib/ai/tools → tools/platform}/generate-video.ts +4 -6
  123. package/templates/chat-app/{lib/ai/tools → tools/platform}/read-document.ts +2 -2
  124. package/templates/chat-app/{lib/ai/tools → tools/platform}/steps/multi-query-web-search.ts +1 -1
  125. package/templates/chat-app/{lib/ai/tools → tools/platform}/steps/web-search.ts +1 -1
  126. package/templates/chat-app/{lib/ai/tools → tools/platform}/tools.ts +20 -20
  127. package/templates/chat-app/{lib/ai/tools → tools/platform}/web-search.ts +7 -5
  128. package/templates/electron/CHANGELOG.md +7 -1
  129. package/templates/electron/package.json +1 -1
  130. package/templates/chat-app/lib/ai/tools/tools-definitions.ts +0 -83
  131. /package/templates/chat-app/{lib/ai/tools/get-weather.ts → tools/chatjs/get-weather/tool.ts} +0 -0
  132. /package/templates/chat-app/{lib/ai/tools → tools/platform}/code-execution.javascript.ts +0 -0
  133. /package/templates/chat-app/{lib/ai/tools → tools/platform}/code-execution.python.ts +0 -0
  134. /package/templates/chat-app/{lib/ai/tools → tools/platform}/code-execution.shared.test.ts +0 -0
  135. /package/templates/chat-app/{lib/ai/tools → tools/platform}/code-execution.shared.ts +0 -0
  136. /package/templates/chat-app/{lib/ai/tools → tools/platform}/code-execution.types.ts +0 -0
  137. /package/templates/chat-app/{lib/ai/tools → tools/platform}/deep-research/configuration.ts +0 -0
  138. /package/templates/chat-app/{lib/ai/tools → tools/platform}/deep-research/prompts.ts +0 -0
  139. /package/templates/chat-app/{lib/ai/tools → tools/platform}/deep-research/researcher-agent.ts +0 -0
  140. /package/templates/chat-app/{lib/ai/tools → tools/platform}/deep-research/supervisor-agent.ts +0 -0
  141. /package/templates/chat-app/{lib/ai/tools → tools/platform}/documents/code-guidelines.ts +0 -0
  142. /package/templates/chat-app/{lib/ai/tools → tools/platform}/documents/create-code-document.ts +0 -0
  143. /package/templates/chat-app/{lib/ai/tools → tools/platform}/documents/create-sheet-document.ts +0 -0
  144. /package/templates/chat-app/{lib/ai/tools → tools/platform}/documents/create-text-document.ts +0 -0
  145. /package/templates/chat-app/{lib/ai/tools → tools/platform}/documents/edit-code-document.ts +0 -0
  146. /package/templates/chat-app/{lib/ai/tools → tools/platform}/documents/edit-sheet-document.ts +0 -0
  147. /package/templates/chat-app/{lib/ai/tools → tools/platform}/documents/edit-text-document.ts +0 -0
  148. /package/templates/chat-app/{lib/ai/tools → tools/platform}/documents/sheet-guidelines.ts +0 -0
  149. /package/templates/chat-app/{lib/ai/tools → tools/platform}/documents/text-guidelines.ts +0 -0
  150. /package/templates/chat-app/{lib/ai/tools → tools/platform}/generate-image.ts +0 -0
  151. /package/templates/chat-app/{lib/ai/tools → tools/platform}/research-updates-schema.ts +0 -0
  152. /package/templates/chat-app/{lib/ai/tools → tools/platform}/steps/search-utils.ts +0 -0
  153. /package/templates/chat-app/{lib/ai/tools → tools/platform}/types.ts +0 -0
@@ -4,183 +4,183 @@ import { Command as CommandPrimitive } from "cmdk";
4
4
  import { SearchIcon } from "lucide-react";
5
5
  import type * as React from "react";
6
6
  import {
7
- Dialog,
8
- DialogContent,
9
- DialogDescription,
10
- DialogHeader,
11
- DialogTitle,
7
+ Dialog,
8
+ DialogContent,
9
+ DialogDescription,
10
+ DialogHeader,
11
+ DialogTitle,
12
12
  } from "@/components/ui/dialog";
13
13
  import { cn } from "@/lib/utils";
14
14
 
15
15
  function Command({
16
- className,
17
- ...props
16
+ className,
17
+ ...props
18
18
  }: React.ComponentProps<typeof CommandPrimitive>) {
19
- return (
20
- <CommandPrimitive
21
- className={cn(
22
- "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
23
- className
24
- )}
25
- data-slot="command"
26
- {...props}
27
- />
28
- );
19
+ return (
20
+ <CommandPrimitive
21
+ className={cn(
22
+ "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",
23
+ className,
24
+ )}
25
+ data-slot="command"
26
+ {...props}
27
+ />
28
+ );
29
29
  }
30
30
 
31
31
  function CommandDialog({
32
- title = "Command Palette",
33
- description = "Search for a command to run...",
34
- children,
35
- className,
36
- showCloseButton = true,
37
- ...props
32
+ title = "Command Palette",
33
+ description = "Search for a command to run...",
34
+ children,
35
+ className,
36
+ showCloseButton = true,
37
+ ...props
38
38
  }: React.ComponentProps<typeof Dialog> & {
39
- title?: string;
40
- description?: string;
41
- className?: string;
42
- showCloseButton?: boolean;
39
+ title?: string;
40
+ description?: string;
41
+ className?: string;
42
+ showCloseButton?: boolean;
43
43
  }) {
44
- return (
45
- <Dialog {...props}>
46
- <DialogHeader className="sr-only">
47
- <DialogTitle>{title}</DialogTitle>
48
- <DialogDescription>{description}</DialogDescription>
49
- </DialogHeader>
50
- <DialogContent
51
- className={cn("overflow-hidden p-0", className)}
52
- showCloseButton={showCloseButton}
53
- >
54
- <Command className="**:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
55
- {children}
56
- </Command>
57
- </DialogContent>
58
- </Dialog>
59
- );
44
+ return (
45
+ <Dialog {...props}>
46
+ <DialogHeader className="sr-only">
47
+ <DialogTitle>{title}</DialogTitle>
48
+ <DialogDescription>{description}</DialogDescription>
49
+ </DialogHeader>
50
+ <DialogContent
51
+ className={cn("overflow-hidden p-0", className)}
52
+ showCloseButton={showCloseButton}
53
+ >
54
+ <Command className="**:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
55
+ {children}
56
+ </Command>
57
+ </DialogContent>
58
+ </Dialog>
59
+ );
60
60
  }
61
61
 
62
62
  function CommandInput({
63
- className,
64
- containerClassName,
65
- ...props
63
+ className,
64
+ containerClassName,
65
+ ...props
66
66
  }: React.ComponentProps<typeof CommandPrimitive.Input> & {
67
- containerClassName?: string;
67
+ containerClassName?: string;
68
68
  }) {
69
- return (
70
- <div
71
- className={cn("flex items-center gap-2 px-3", containerClassName)}
72
- data-slot="command-input-wrapper"
73
- >
74
- <SearchIcon className="size-4 shrink-0 opacity-50" />
75
- <CommandPrimitive.Input
76
- className={cn(
77
- "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
78
- className
79
- )}
80
- data-slot="command-input"
81
- {...props}
82
- />
83
- </div>
84
- );
69
+ return (
70
+ <div
71
+ className={cn("flex items-center gap-2 px-3", containerClassName)}
72
+ data-slot="command-input-wrapper"
73
+ >
74
+ <SearchIcon className="size-4 shrink-0 opacity-50" />
75
+ <CommandPrimitive.Input
76
+ className={cn(
77
+ "flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",
78
+ className,
79
+ )}
80
+ data-slot="command-input"
81
+ {...props}
82
+ />
83
+ </div>
84
+ );
85
85
  }
86
86
 
87
87
  function CommandList({
88
- className,
89
- ...props
88
+ className,
89
+ ...props
90
90
  }: React.ComponentProps<typeof CommandPrimitive.List>) {
91
- return (
92
- <CommandPrimitive.List
93
- className={cn(
94
- "max-h-[300px] scroll-py-1 overflow-y-auto overflow-x-hidden",
95
- className
96
- )}
97
- data-slot="command-list"
98
- {...props}
99
- />
100
- );
91
+ return (
92
+ <CommandPrimitive.List
93
+ className={cn(
94
+ "max-h-[300px] scroll-py-1 overflow-y-auto overflow-x-hidden",
95
+ className,
96
+ )}
97
+ data-slot="command-list"
98
+ {...props}
99
+ />
100
+ );
101
101
  }
102
102
 
103
103
  function CommandEmpty({
104
- ...props
104
+ ...props
105
105
  }: React.ComponentProps<typeof CommandPrimitive.Empty>) {
106
- return (
107
- <CommandPrimitive.Empty
108
- className="py-6 text-center text-sm"
109
- data-slot="command-empty"
110
- {...props}
111
- />
112
- );
106
+ return (
107
+ <CommandPrimitive.Empty
108
+ className="py-6 text-center text-sm"
109
+ data-slot="command-empty"
110
+ {...props}
111
+ />
112
+ );
113
113
  }
114
114
 
115
115
  function CommandGroup({
116
- className,
117
- ...props
116
+ className,
117
+ ...props
118
118
  }: React.ComponentProps<typeof CommandPrimitive.Group>) {
119
- return (
120
- <CommandPrimitive.Group
121
- className={cn(
122
- "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:text-xs",
123
- className
124
- )}
125
- data-slot="command-group"
126
- {...props}
127
- />
128
- );
119
+ return (
120
+ <CommandPrimitive.Group
121
+ className={cn(
122
+ "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group-heading]]:text-xs",
123
+ className,
124
+ )}
125
+ data-slot="command-group"
126
+ {...props}
127
+ />
128
+ );
129
129
  }
130
130
 
131
131
  function CommandSeparator({
132
- className,
133
- ...props
132
+ className,
133
+ ...props
134
134
  }: React.ComponentProps<typeof CommandPrimitive.Separator>) {
135
- return (
136
- <CommandPrimitive.Separator
137
- className={cn("-mx-1 h-px bg-border", className)}
138
- data-slot="command-separator"
139
- {...props}
140
- />
141
- );
135
+ return (
136
+ <CommandPrimitive.Separator
137
+ className={cn("-mx-1 h-px bg-border", className)}
138
+ data-slot="command-separator"
139
+ {...props}
140
+ />
141
+ );
142
142
  }
143
143
 
144
144
  function CommandItem({
145
- className,
146
- ...props
145
+ className,
146
+ ...props
147
147
  }: React.ComponentProps<typeof CommandPrimitive.Item>) {
148
- return (
149
- <CommandPrimitive.Item
150
- className={cn(
151
- "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0",
152
- className
153
- )}
154
- data-slot="command-item"
155
- {...props}
156
- />
157
- );
148
+ return (
149
+ <CommandPrimitive.Item
150
+ className={cn(
151
+ "relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden data-[disabled=true]:pointer-events-none data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0",
152
+ className,
153
+ )}
154
+ data-slot="command-item"
155
+ {...props}
156
+ />
157
+ );
158
158
  }
159
159
 
160
160
  function CommandShortcut({
161
- className,
162
- ...props
161
+ className,
162
+ ...props
163
163
  }: React.ComponentProps<"span">) {
164
- return (
165
- <span
166
- className={cn(
167
- "ml-auto text-muted-foreground text-xs tracking-widest",
168
- className
169
- )}
170
- data-slot="command-shortcut"
171
- {...props}
172
- />
173
- );
164
+ return (
165
+ <span
166
+ className={cn(
167
+ "ml-auto text-muted-foreground text-xs tracking-widest",
168
+ className,
169
+ )}
170
+ data-slot="command-shortcut"
171
+ {...props}
172
+ />
173
+ );
174
174
  }
175
175
 
176
176
  export {
177
- Command,
178
- CommandDialog,
179
- CommandInput,
180
- CommandList,
181
- CommandEmpty,
182
- CommandGroup,
183
- CommandItem,
184
- CommandShortcut,
185
- CommandSeparator,
177
+ Command,
178
+ CommandDialog,
179
+ CommandEmpty,
180
+ CommandGroup,
181
+ CommandInput,
182
+ CommandItem,
183
+ CommandList,
184
+ CommandSeparator,
185
+ CommandShortcut,
186
186
  };
@@ -7,137 +7,137 @@ import type * as React from "react";
7
7
  import { cn } from "@/lib/utils";
8
8
 
9
9
  function Dialog({
10
- ...props
10
+ ...props
11
11
  }: React.ComponentProps<typeof DialogPrimitive.Root>) {
12
- return <DialogPrimitive.Root data-slot="dialog" {...props} />;
12
+ return <DialogPrimitive.Root data-slot="dialog" {...props} />;
13
13
  }
14
14
 
15
15
  function DialogTrigger({
16
- ...props
16
+ ...props
17
17
  }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {
18
- return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />;
18
+ return <DialogPrimitive.Trigger data-slot="dialog-trigger" {...props} />;
19
19
  }
20
20
 
21
21
  function DialogPortal({
22
- ...props
22
+ ...props
23
23
  }: React.ComponentProps<typeof DialogPrimitive.Portal>) {
24
- return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />;
24
+ return <DialogPrimitive.Portal data-slot="dialog-portal" {...props} />;
25
25
  }
26
26
 
27
27
  function DialogClose({
28
- ...props
28
+ ...props
29
29
  }: React.ComponentProps<typeof DialogPrimitive.Close>) {
30
- return <DialogPrimitive.Close data-slot="dialog-close" {...props} />;
30
+ return <DialogPrimitive.Close data-slot="dialog-close" {...props} />;
31
31
  }
32
32
 
33
33
  function DialogOverlay({
34
- className,
35
- ...props
34
+ className,
35
+ ...props
36
36
  }: React.ComponentProps<typeof DialogPrimitive.Overlay>) {
37
- return (
38
- <DialogPrimitive.Overlay
39
- className={cn(
40
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=open]:animate-in",
41
- className
42
- )}
43
- data-slot="dialog-overlay"
44
- {...props}
45
- />
46
- );
37
+ return (
38
+ <DialogPrimitive.Overlay
39
+ className={cn(
40
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=open]:animate-in",
41
+ className,
42
+ )}
43
+ data-slot="dialog-overlay"
44
+ {...props}
45
+ />
46
+ );
47
47
  }
48
48
 
49
49
  function DialogContent({
50
- className,
51
- children,
52
- showCloseButton = true,
53
- ...props
50
+ className,
51
+ children,
52
+ showCloseButton = true,
53
+ ...props
54
54
  }: React.ComponentProps<typeof DialogPrimitive.Content> & {
55
- showCloseButton?: boolean;
55
+ showCloseButton?: boolean;
56
56
  }) {
57
- return (
58
- <DialogPortal data-slot="dialog-portal">
59
- <DialogOverlay />
60
- <DialogPrimitive.Content
61
- className={cn(
62
- "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=open]:animate-in sm:max-w-lg",
63
- className
64
- )}
65
- data-slot="dialog-content"
66
- {...props}
67
- >
68
- {children}
69
- {showCloseButton && (
70
- <DialogPrimitive.Close
71
- className="absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0"
72
- data-slot="dialog-close"
73
- >
74
- <XIcon />
75
- <span className="sr-only">Close</span>
76
- </DialogPrimitive.Close>
77
- )}
78
- </DialogPrimitive.Content>
79
- </DialogPortal>
80
- );
57
+ return (
58
+ <DialogPortal data-slot="dialog-portal">
59
+ <DialogOverlay />
60
+ <DialogPrimitive.Content
61
+ className={cn(
62
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=open]:animate-in sm:max-w-lg",
63
+ className,
64
+ )}
65
+ data-slot="dialog-content"
66
+ {...props}
67
+ >
68
+ {children}
69
+ {showCloseButton && (
70
+ <DialogPrimitive.Close
71
+ className="absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0"
72
+ data-slot="dialog-close"
73
+ >
74
+ <XIcon />
75
+ <span className="sr-only">Close</span>
76
+ </DialogPrimitive.Close>
77
+ )}
78
+ </DialogPrimitive.Content>
79
+ </DialogPortal>
80
+ );
81
81
  }
82
82
 
83
83
  function DialogHeader({ className, ...props }: React.ComponentProps<"div">) {
84
- return (
85
- <div
86
- className={cn("flex flex-col gap-2 text-center sm:text-left", className)}
87
- data-slot="dialog-header"
88
- {...props}
89
- />
90
- );
84
+ return (
85
+ <div
86
+ className={cn("flex flex-col gap-2 text-center sm:text-left", className)}
87
+ data-slot="dialog-header"
88
+ {...props}
89
+ />
90
+ );
91
91
  }
92
92
 
93
93
  function DialogFooter({ className, ...props }: React.ComponentProps<"div">) {
94
- return (
95
- <div
96
- className={cn(
97
- "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
98
- className
99
- )}
100
- data-slot="dialog-footer"
101
- {...props}
102
- />
103
- );
94
+ return (
95
+ <div
96
+ className={cn(
97
+ "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
98
+ className,
99
+ )}
100
+ data-slot="dialog-footer"
101
+ {...props}
102
+ />
103
+ );
104
104
  }
105
105
 
106
106
  function DialogTitle({
107
- className,
108
- ...props
107
+ className,
108
+ ...props
109
109
  }: React.ComponentProps<typeof DialogPrimitive.Title>) {
110
- return (
111
- <DialogPrimitive.Title
112
- className={cn("font-semibold text-lg leading-none", className)}
113
- data-slot="dialog-title"
114
- {...props}
115
- />
116
- );
110
+ return (
111
+ <DialogPrimitive.Title
112
+ className={cn("font-semibold text-lg leading-none", className)}
113
+ data-slot="dialog-title"
114
+ {...props}
115
+ />
116
+ );
117
117
  }
118
118
 
119
119
  function DialogDescription({
120
- className,
121
- ...props
120
+ className,
121
+ ...props
122
122
  }: React.ComponentProps<typeof DialogPrimitive.Description>) {
123
- return (
124
- <DialogPrimitive.Description
125
- className={cn("text-muted-foreground text-sm", className)}
126
- data-slot="dialog-description"
127
- {...props}
128
- />
129
- );
123
+ return (
124
+ <DialogPrimitive.Description
125
+ className={cn("text-muted-foreground text-sm", className)}
126
+ data-slot="dialog-description"
127
+ {...props}
128
+ />
129
+ );
130
130
  }
131
131
 
132
132
  export {
133
- Dialog,
134
- DialogClose,
135
- DialogContent,
136
- DialogDescription,
137
- DialogFooter,
138
- DialogHeader,
139
- DialogOverlay,
140
- DialogPortal,
141
- DialogTitle,
142
- DialogTrigger,
133
+ Dialog,
134
+ DialogClose,
135
+ DialogContent,
136
+ DialogDescription,
137
+ DialogFooter,
138
+ DialogHeader,
139
+ DialogOverlay,
140
+ DialogPortal,
141
+ DialogTitle,
142
+ DialogTrigger,
143
143
  };