@refraction-ui/react 0.1.3 → 0.2.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.
- package/dist/index.cjs +1365 -654
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1349 -654
- package/dist/index.js.map +1 -1
- package/package.json +20 -5
package/dist/index.js
CHANGED
|
@@ -1,9 +1,368 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as React41 from 'react';
|
|
2
2
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
3
|
import * as ReactDOM from 'react-dom';
|
|
4
4
|
import { createPortal } from 'react-dom';
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
var __create = Object.create;
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
|
|
13
|
+
get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
|
|
14
|
+
}) : x)(function(x) {
|
|
15
|
+
if (typeof require !== "undefined") return require.apply(this, arguments);
|
|
16
|
+
throw Error('Dynamic require of "' + x + '" is not supported');
|
|
17
|
+
});
|
|
18
|
+
var __commonJS = (cb, mod) => function __require2() {
|
|
19
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
20
|
+
};
|
|
21
|
+
var __export = (target, all) => {
|
|
22
|
+
for (var name in all)
|
|
23
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
24
|
+
};
|
|
25
|
+
var __copyProps = (to, from, except, desc) => {
|
|
26
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
27
|
+
for (let key of __getOwnPropNames(from))
|
|
28
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
29
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
30
|
+
}
|
|
31
|
+
return to;
|
|
32
|
+
};
|
|
33
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget);
|
|
34
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
35
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
36
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
37
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
38
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
39
|
+
__defProp(target, "default", { value: mod, enumerable: true }) ,
|
|
40
|
+
mod
|
|
41
|
+
));
|
|
42
|
+
|
|
43
|
+
// ../react-file-tree/dist/index.js
|
|
44
|
+
var require_dist = __commonJS({
|
|
45
|
+
"../react-file-tree/dist/index.js"(exports) {
|
|
46
|
+
var jsxRuntime = __require("react/jsx-runtime");
|
|
47
|
+
var FileTree = () => {
|
|
48
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", {});
|
|
49
|
+
};
|
|
50
|
+
exports.FileTree = FileTree;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
// ../react-icon-system/dist/index.js
|
|
55
|
+
var require_dist2 = __commonJS({
|
|
56
|
+
"../react-icon-system/dist/index.js"(exports) {
|
|
57
|
+
var jsxRuntime = __require("react/jsx-runtime");
|
|
58
|
+
var IconSystem = () => {
|
|
59
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", {});
|
|
60
|
+
};
|
|
61
|
+
exports.IconSystem = IconSystem;
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// src/index.ts
|
|
66
|
+
var index_exports = {};
|
|
67
|
+
__export(index_exports, {
|
|
68
|
+
Accordion: () => Accordion,
|
|
69
|
+
AccordionContent: () => AccordionContent,
|
|
70
|
+
AccordionItem: () => AccordionItem,
|
|
71
|
+
AccordionTrigger: () => AccordionTrigger,
|
|
72
|
+
AnimatedText: () => AnimatedText,
|
|
73
|
+
AppShell: () => AppShell,
|
|
74
|
+
AuthGuard: () => AuthGuard,
|
|
75
|
+
AuthProvider: () => AuthProvider,
|
|
76
|
+
Avatar: () => Avatar,
|
|
77
|
+
AvatarFallback: () => AvatarFallback,
|
|
78
|
+
AvatarGroup: () => AvatarGroup,
|
|
79
|
+
AvatarImage: () => AvatarImage,
|
|
80
|
+
Badge: () => Badge,
|
|
81
|
+
BadgeDisplay: () => BadgeDisplay,
|
|
82
|
+
BottomNav: () => BottomNav,
|
|
83
|
+
Breadcrumbs: () => Breadcrumbs,
|
|
84
|
+
Button: () => Button,
|
|
85
|
+
CATEGORY_LABELS: () => CATEGORY_LABELS,
|
|
86
|
+
Calendar: () => Calendar,
|
|
87
|
+
CalendarHeader: () => CalendarHeader,
|
|
88
|
+
Callout: () => Callout,
|
|
89
|
+
Card: () => Card2,
|
|
90
|
+
CardContent: () => CardContent,
|
|
91
|
+
CardDescription: () => CardDescription,
|
|
92
|
+
CardFooter: () => CardFooter,
|
|
93
|
+
CardGrid: () => CardGrid,
|
|
94
|
+
CardHeader: () => CardHeader,
|
|
95
|
+
CardTitle: () => CardTitle,
|
|
96
|
+
Carousel: () => Carousel,
|
|
97
|
+
CarouselContent: () => CarouselContent,
|
|
98
|
+
CarouselItem: () => CarouselItem,
|
|
99
|
+
CarouselTrigger: () => CarouselTrigger,
|
|
100
|
+
Checkbox: () => Checkbox,
|
|
101
|
+
CodeBlock: () => CodeBlock,
|
|
102
|
+
CodeEditor: () => CodeEditor,
|
|
103
|
+
Collapsible: () => Collapsible,
|
|
104
|
+
CollapsibleContent: () => CollapsibleContent,
|
|
105
|
+
CollapsibleTrigger: () => CollapsibleTrigger,
|
|
106
|
+
Command: () => Command,
|
|
107
|
+
CommandEmpty: () => CommandEmpty,
|
|
108
|
+
CommandGroup: () => CommandGroup,
|
|
109
|
+
CommandInput: () => CommandInput,
|
|
110
|
+
CommandItem: () => CommandItem,
|
|
111
|
+
CommandList: () => CommandList,
|
|
112
|
+
CommandSeparator: () => CommandSeparator,
|
|
113
|
+
ContentProtection: () => ContentProtection,
|
|
114
|
+
DataTable: () => DataTable,
|
|
115
|
+
DatePicker: () => DatePicker,
|
|
116
|
+
DeviceFrame: () => DeviceFrame,
|
|
117
|
+
Dialog: () => Dialog,
|
|
118
|
+
DialogClose: () => DialogClose,
|
|
119
|
+
DialogContent: () => DialogContent,
|
|
120
|
+
DialogDescription: () => DialogDescription,
|
|
121
|
+
DialogFooter: () => DialogFooter,
|
|
122
|
+
DialogHeader: () => DialogHeader,
|
|
123
|
+
DialogOverlay: () => DialogOverlay,
|
|
124
|
+
DialogTitle: () => DialogTitle,
|
|
125
|
+
DialogTrigger: () => DialogTrigger,
|
|
126
|
+
DiffViewer: () => DiffViewer,
|
|
127
|
+
DropdownMenu: () => DropdownMenu,
|
|
128
|
+
DropdownMenuContent: () => DropdownMenuContent,
|
|
129
|
+
DropdownMenuItem: () => DropdownMenuItem,
|
|
130
|
+
DropdownMenuLabel: () => DropdownMenuLabel,
|
|
131
|
+
DropdownMenuSeparator: () => DropdownMenuSeparator,
|
|
132
|
+
DropdownMenuTrigger: () => DropdownMenuTrigger,
|
|
133
|
+
EMOJI_CATEGORIES: () => EMOJI_CATEGORIES,
|
|
134
|
+
EMOJI_DATA: () => EMOJI_DATA,
|
|
135
|
+
EmojiPicker: () => EmojiPicker,
|
|
136
|
+
FeedbackButton: () => FeedbackButton,
|
|
137
|
+
FeedbackDialog: () => FeedbackDialog,
|
|
138
|
+
FileUpload: () => FileUpload,
|
|
139
|
+
Footer: () => Footer,
|
|
140
|
+
InlineEditor: () => InlineEditor,
|
|
141
|
+
Input: () => Input,
|
|
142
|
+
InputGroup: () => InputGroup,
|
|
143
|
+
InputGroupAddon: () => InputGroupAddon,
|
|
144
|
+
InputGroupButton: () => InputGroupButton,
|
|
145
|
+
InputGroupText: () => InputGroupText,
|
|
146
|
+
InstallPrompt: () => InstallPrompt,
|
|
147
|
+
KeyboardShortcut: () => KeyboardShortcut,
|
|
148
|
+
LanguageSelector: () => LanguageSelector,
|
|
149
|
+
LinkCard: () => LinkCard,
|
|
150
|
+
MarkdownRenderer: () => MarkdownRenderer,
|
|
151
|
+
MobileNav: () => MobileNav,
|
|
152
|
+
MobileNavContent: () => MobileNavContent,
|
|
153
|
+
MobileNavLink: () => MobileNavLink,
|
|
154
|
+
MobileNavTrigger: () => MobileNavTrigger,
|
|
155
|
+
Navbar: () => Navbar,
|
|
156
|
+
OtpInput: () => OtpInput,
|
|
157
|
+
PRESENCE_STATUS_COLORS: () => STATUS_COLORS,
|
|
158
|
+
PRESENCE_STATUS_LABELS: () => STATUS_LABELS,
|
|
159
|
+
Pagination: () => Pagination,
|
|
160
|
+
Popover: () => Popover,
|
|
161
|
+
PopoverClose: () => PopoverClose,
|
|
162
|
+
PopoverContent: () => PopoverContent,
|
|
163
|
+
PopoverTrigger: () => PopoverTrigger,
|
|
164
|
+
PresenceIndicator: () => PresenceIndicator,
|
|
165
|
+
ProgressBar: () => ProgressBar,
|
|
166
|
+
RadioGroup: () => RadioGroup,
|
|
167
|
+
RadioItem: () => RadioItem,
|
|
168
|
+
ReactionBar: () => ReactionBar,
|
|
169
|
+
ResizableDivider: () => ResizableDivider,
|
|
170
|
+
ResizableLayout: () => ResizableLayout,
|
|
171
|
+
ResizablePane: () => ResizablePane,
|
|
172
|
+
STATUS_COLORS: () => STATUS_COLORS2,
|
|
173
|
+
STATUS_LABELS: () => STATUS_LABELS2,
|
|
174
|
+
SearchBar: () => SearchBar,
|
|
175
|
+
SearchResultItem: () => SearchResultItem,
|
|
176
|
+
SearchResults: () => SearchResults,
|
|
177
|
+
Select: () => Select,
|
|
178
|
+
SelectContent: () => SelectContent,
|
|
179
|
+
SelectItem: () => SelectItem,
|
|
180
|
+
SelectTrigger: () => SelectTrigger,
|
|
181
|
+
ShortcutBadge: () => ShortcutBadge,
|
|
182
|
+
Sidebar: () => Sidebar,
|
|
183
|
+
Skeleton: () => Skeleton,
|
|
184
|
+
SkeletonText: () => SkeletonText,
|
|
185
|
+
SkipToContent: () => SkipToContent,
|
|
186
|
+
SlideViewer: () => SlideViewer,
|
|
187
|
+
StatsGrid: () => StatsGrid,
|
|
188
|
+
StatusIndicator: () => StatusIndicator,
|
|
189
|
+
Steps: () => Steps,
|
|
190
|
+
Switch: () => Switch,
|
|
191
|
+
TableOfContents: () => TableOfContents,
|
|
192
|
+
Tabs: () => Tabs,
|
|
193
|
+
TabsContent: () => TabsContent,
|
|
194
|
+
TabsList: () => TabsList,
|
|
195
|
+
TabsTrigger: () => TabsTrigger,
|
|
196
|
+
Textarea: () => Textarea,
|
|
197
|
+
ThemeProvider: () => ThemeProvider,
|
|
198
|
+
ThemeScript: () => ThemeScript,
|
|
199
|
+
ThemeToggle: () => ThemeToggle,
|
|
200
|
+
ThreadView: () => ThreadView,
|
|
201
|
+
Toast: () => Toast,
|
|
202
|
+
ToastProvider: () => ToastProvider,
|
|
203
|
+
Toaster: () => Toaster,
|
|
204
|
+
Tooltip: () => Tooltip,
|
|
205
|
+
TooltipContent: () => TooltipContent,
|
|
206
|
+
TooltipTrigger: () => TooltipTrigger,
|
|
207
|
+
TypewriterText: () => TypewriterText,
|
|
208
|
+
VersionSelector: () => VersionSelector,
|
|
209
|
+
VideoPlayer: () => VideoPlayer,
|
|
210
|
+
animatedTextVariants: () => animatedTextVariants,
|
|
211
|
+
avatarFallbackVariants: () => avatarFallbackVariants,
|
|
212
|
+
avatarImageVariants: () => avatarImageVariants,
|
|
213
|
+
avatarTokens: () => avatarTokens,
|
|
214
|
+
avatarVariants: () => avatarVariants,
|
|
215
|
+
badgeGridVariants: () => badgeGridVariants,
|
|
216
|
+
badgeItemVariants: () => badgeItemVariants,
|
|
217
|
+
badgeVariants: () => badgeVariants,
|
|
218
|
+
bottomNavTabVariants: () => bottomNavTabVariants,
|
|
219
|
+
bottomNavVariants: () => bottomNavVariants,
|
|
220
|
+
breadcrumbItemVariants: () => breadcrumbItemVariants,
|
|
221
|
+
breadcrumbSeparatorStyles: () => breadcrumbSeparatorStyles,
|
|
222
|
+
breadcrumbsVariants: () => breadcrumbsVariants,
|
|
223
|
+
buttonTokens: () => buttonTokens,
|
|
224
|
+
buttonVariants: () => buttonVariants,
|
|
225
|
+
calendarVariants: () => calendarVariants,
|
|
226
|
+
canAccessAdmin: () => canAccessAdmin,
|
|
227
|
+
canAccessReviewer: () => canAccessReviewer,
|
|
228
|
+
cardContentVariants: () => cardContentVariants,
|
|
229
|
+
cardDescriptionVariants: () => cardDescriptionVariants,
|
|
230
|
+
cardFooterVariants: () => cardFooterVariants,
|
|
231
|
+
cardHeaderVariants: () => cardHeaderVariants,
|
|
232
|
+
cardTitleVariants: () => cardTitleVariants,
|
|
233
|
+
cardTokens: () => cardTokens,
|
|
234
|
+
cardVariants: () => cardVariants,
|
|
235
|
+
cellVariants: () => cellVariants,
|
|
236
|
+
checkIconPath: () => checkIconPath,
|
|
237
|
+
checkboxTokens: () => checkboxTokens,
|
|
238
|
+
checkboxVariants: () => checkboxVariants,
|
|
239
|
+
codeEditorTokens: () => codeEditorTokens,
|
|
240
|
+
codeEditorVariants: () => codeEditorVariants,
|
|
241
|
+
collapsibleContentVariants: () => collapsibleContentVariants,
|
|
242
|
+
commandGroupVariants: () => commandGroupVariants,
|
|
243
|
+
commandInputVariants: () => commandInputVariants,
|
|
244
|
+
commandItemVariants: () => commandItemVariants,
|
|
245
|
+
commandVariants: () => commandVariants,
|
|
246
|
+
contentProtectionVariants: () => contentProtectionVariants,
|
|
247
|
+
controlsVariants: () => controlsVariants,
|
|
248
|
+
createDiffViewer: () => createDiffViewer,
|
|
249
|
+
dayVariants: () => dayVariants,
|
|
250
|
+
deviceFrameVariants: () => deviceFrameVariants,
|
|
251
|
+
dialogContentVariants: () => dialogContentVariants,
|
|
252
|
+
diffViewerTokens: () => diffViewerTokens,
|
|
253
|
+
diffViewerVariants: () => diffViewerVariants,
|
|
254
|
+
editorVariants: () => editorVariants,
|
|
255
|
+
emojiPickerContainerStyles: () => emojiPickerContainerStyles,
|
|
256
|
+
emojiPickerEmojiButtonStyles: () => emojiPickerEmojiButtonStyles,
|
|
257
|
+
emojiPickerGridStyles: () => emojiPickerGridStyles,
|
|
258
|
+
feedbackDialogVariants: () => feedbackDialogVariants,
|
|
259
|
+
fileUploadDropZoneVariants: () => fileUploadDropZoneVariants,
|
|
260
|
+
fileUploadFileItemStyles: () => fileUploadFileItemStyles,
|
|
261
|
+
fileUploadFileListStyles: () => fileUploadFileListStyles,
|
|
262
|
+
footerVariants: () => footerVariants,
|
|
263
|
+
formatFileSize: () => formatFileSize,
|
|
264
|
+
formatRelativeTime: () => formatRelativeTime,
|
|
265
|
+
formatShortcut: () => formatShortcut,
|
|
266
|
+
formatTimestamp: () => formatTimestamp,
|
|
267
|
+
getAssignableRoles: () => getAssignableRoles,
|
|
268
|
+
getDefaultPortal: () => getDefaultPortal,
|
|
269
|
+
getInitials: () => getInitials,
|
|
270
|
+
hasAllRoles: () => hasAllRoles,
|
|
271
|
+
hasAnyRole: () => hasAnyRole,
|
|
272
|
+
hasRole: () => hasRole,
|
|
273
|
+
headerVariants: () => headerVariants,
|
|
274
|
+
indeterminateIconPath: () => indeterminateIconPath,
|
|
275
|
+
inputGroupAddonVariants: () => inputGroupAddonVariants,
|
|
276
|
+
inputGroupButtonVariants: () => inputGroupButtonVariants,
|
|
277
|
+
inputGroupTokens: () => inputGroupTokens,
|
|
278
|
+
inputGroupVariants: () => inputGroupVariants,
|
|
279
|
+
inputVariants: () => inputVariants,
|
|
280
|
+
installPromptVariants: () => installPromptVariants,
|
|
281
|
+
latestBadgeVariants: () => latestBadgeVariants,
|
|
282
|
+
markdownRendererTokens: () => markdownRendererTokens,
|
|
283
|
+
menuContentVariants: () => menuContentVariants,
|
|
284
|
+
menuItemVariants: () => menuItemVariants,
|
|
285
|
+
mobileNavContentVariants: () => mobileNavContentVariants,
|
|
286
|
+
mobileNavLinkVariants: () => mobileNavLinkVariants,
|
|
287
|
+
mobileNavTokens: () => mobileNavTokens,
|
|
288
|
+
mobileNavTriggerVariants: () => mobileNavTriggerVariants,
|
|
289
|
+
mobileNavVariants: () => mobileNavVariants,
|
|
290
|
+
navLinkVariants: () => navLinkVariants,
|
|
291
|
+
navbarVariants: () => navbarVariants,
|
|
292
|
+
optionVariants: () => optionVariants,
|
|
293
|
+
otpInputContainerVariants: () => otpInputContainerVariants,
|
|
294
|
+
otpInputSlotVariants: () => otpInputSlotVariants,
|
|
295
|
+
otpInputTokens: () => otpInputTokens,
|
|
296
|
+
overlayStyles: () => overlayStyles,
|
|
297
|
+
overlayVariants: () => overlayVariants,
|
|
298
|
+
playerVariants: () => playerVariants,
|
|
299
|
+
popoverContentVariants: () => popoverContentVariants,
|
|
300
|
+
previewVariants: () => previewVariants,
|
|
301
|
+
progressBarVariants: () => progressBarVariants,
|
|
302
|
+
proseVariants: () => proseVariants,
|
|
303
|
+
radioCircleVariants: () => radioCircleVariants,
|
|
304
|
+
radioGroupVariants: () => radioGroupVariants,
|
|
305
|
+
radioItemVariants: () => radioItemVariants,
|
|
306
|
+
reactionAddButtonStyles: () => reactionAddButtonStyles,
|
|
307
|
+
reactionBarStyles: () => reactionBarStyles,
|
|
308
|
+
reactionCountStyles: () => reactionCountStyles,
|
|
309
|
+
reactionEmojiStyles: () => reactionEmojiStyles,
|
|
310
|
+
reactionPillVariants: () => reactionPillVariants,
|
|
311
|
+
resizableDividerVariants: () => resizableDividerVariants,
|
|
312
|
+
resizableLayoutTokens: () => resizableLayoutTokens,
|
|
313
|
+
resizableLayoutVariants: () => resizableLayoutVariants,
|
|
314
|
+
resizablePaneVariants: () => resizablePaneVariants,
|
|
315
|
+
rowVariants: () => rowVariants,
|
|
316
|
+
searchBarVariants: () => searchBarVariants,
|
|
317
|
+
searchResultVariants: () => searchResultVariants,
|
|
318
|
+
selectContentVariants: () => selectContentVariants,
|
|
319
|
+
selectItemVariants: () => selectItemVariants,
|
|
320
|
+
selectTokens: () => selectTokens,
|
|
321
|
+
selectTriggerVariants: () => selectTriggerVariants,
|
|
322
|
+
selectorVariants: () => selectorVariants,
|
|
323
|
+
shortcutBadgeStyles: () => shortcutBadgeStyles,
|
|
324
|
+
shortcutKeyStyles: () => shortcutKeyStyles,
|
|
325
|
+
shortcutSeparatorStyles: () => shortcutSeparatorStyles,
|
|
326
|
+
skeletonVariants: () => skeletonVariants,
|
|
327
|
+
slideTypeBadgeVariants: () => slideTypeBadgeVariants,
|
|
328
|
+
slideViewerProgressBarVariants: () => progressBarVariants2,
|
|
329
|
+
slideViewerTokens: () => slideViewerTokens,
|
|
330
|
+
slideViewerVariants: () => slideViewerVariants,
|
|
331
|
+
statCardVariants: () => statCardVariants,
|
|
332
|
+
statsGridVariants: () => statsGridVariants,
|
|
333
|
+
statusBarVariants: () => statusBarVariants,
|
|
334
|
+
statusContainerStyles: () => statusContainerStyles,
|
|
335
|
+
statusDotVariants: () => statusDotVariants,
|
|
336
|
+
statusLabelStyles: () => statusLabelStyles,
|
|
337
|
+
statusPulseVariants: () => statusPulseVariants,
|
|
338
|
+
switchThumbVariants: () => switchThumbVariants,
|
|
339
|
+
switchTokens: () => switchTokens,
|
|
340
|
+
switchVariants: () => switchVariants,
|
|
341
|
+
tabBarVariants: () => tabBarVariants,
|
|
342
|
+
tabVariants: () => tabVariants,
|
|
343
|
+
tableVariants: () => tableVariants,
|
|
344
|
+
tabsListVariants: () => tabsListVariants,
|
|
345
|
+
tabsTriggerVariants: () => tabsTriggerVariants,
|
|
346
|
+
textareaVariants: () => textareaVariants,
|
|
347
|
+
threadAuthorStyles: () => threadAuthorStyles,
|
|
348
|
+
threadAvatarStyles: () => threadAvatarStyles,
|
|
349
|
+
threadBodyStyles: () => threadBodyStyles,
|
|
350
|
+
threadContainerStyles: () => threadContainerStyles,
|
|
351
|
+
threadContentStyles: () => threadContentStyles,
|
|
352
|
+
threadMessageStyles: () => threadMessageStyles,
|
|
353
|
+
threadReactionsStyles: () => threadReactionsStyles,
|
|
354
|
+
threadTimestampStyles: () => threadTimestampStyles,
|
|
355
|
+
toastVariants: () => toastVariants,
|
|
356
|
+
toolbarVariants: () => toolbarVariants,
|
|
357
|
+
tooltipContentVariants: () => tooltipContentVariants,
|
|
358
|
+
typewriterVariants: () => typewriterVariants,
|
|
359
|
+
useAuth: () => useAuth,
|
|
360
|
+
useTheme: () => useTheme,
|
|
361
|
+
useToast: () => useToast,
|
|
362
|
+
versionSelectorOptionVariants: () => optionVariants2,
|
|
363
|
+
versionSelectorVariants: () => versionSelectorVariants,
|
|
364
|
+
watermarkVariants: () => watermarkVariants
|
|
365
|
+
});
|
|
7
366
|
|
|
8
367
|
// ../theme/dist/index.js
|
|
9
368
|
function resolveTheme(mode, systemPrefersDark) {
|
|
@@ -119,14 +478,14 @@ function applyThemeToDOM(resolved, attribute = "class") {
|
|
|
119
478
|
}
|
|
120
479
|
|
|
121
480
|
// ../react-theme/dist/index.js
|
|
122
|
-
var ThemeContext =
|
|
481
|
+
var ThemeContext = React41.createContext(null);
|
|
123
482
|
function ThemeProvider({
|
|
124
483
|
children,
|
|
125
484
|
defaultMode = "system",
|
|
126
485
|
storageKey = "rfr-theme",
|
|
127
486
|
attribute = "class"
|
|
128
487
|
}) {
|
|
129
|
-
const themeRef =
|
|
488
|
+
const themeRef = React41.useRef(null);
|
|
130
489
|
if (!themeRef.current) {
|
|
131
490
|
const isBrowser = typeof window !== "undefined";
|
|
132
491
|
themeRef.current = createTheme(
|
|
@@ -135,8 +494,8 @@ function ThemeProvider({
|
|
|
135
494
|
isBrowser ? createMediaQueryAdapter() : void 0
|
|
136
495
|
);
|
|
137
496
|
}
|
|
138
|
-
const [state, setState] =
|
|
139
|
-
|
|
497
|
+
const [state, setState] = React41.useState(() => themeRef.current.getState());
|
|
498
|
+
React41.useEffect(() => {
|
|
140
499
|
const theme = themeRef.current;
|
|
141
500
|
applyThemeToDOM(theme.getState().resolved, attribute);
|
|
142
501
|
const unsub = theme.subscribe((newState) => {
|
|
@@ -148,7 +507,7 @@ function ThemeProvider({
|
|
|
148
507
|
theme.destroy();
|
|
149
508
|
};
|
|
150
509
|
}, [attribute]);
|
|
151
|
-
const contextValue =
|
|
510
|
+
const contextValue = React41.useMemo(
|
|
152
511
|
() => ({
|
|
153
512
|
mode: state.mode,
|
|
154
513
|
resolved: state.resolved,
|
|
@@ -156,10 +515,10 @@ function ThemeProvider({
|
|
|
156
515
|
}),
|
|
157
516
|
[state.mode, state.resolved]
|
|
158
517
|
);
|
|
159
|
-
return
|
|
518
|
+
return React41.createElement(ThemeContext.Provider, { value: contextValue }, children);
|
|
160
519
|
}
|
|
161
520
|
function useTheme() {
|
|
162
|
-
const context =
|
|
521
|
+
const context = React41.useContext(ThemeContext);
|
|
163
522
|
if (!context) {
|
|
164
523
|
throw new Error("useTheme must be used within a <ThemeProvider>");
|
|
165
524
|
}
|
|
@@ -171,7 +530,7 @@ var modes = [
|
|
|
171
530
|
{ value: "system", label: "System", icon: "monitor" }
|
|
172
531
|
];
|
|
173
532
|
var icons = {
|
|
174
|
-
sun:
|
|
533
|
+
sun: React41.createElement(
|
|
175
534
|
"svg",
|
|
176
535
|
{
|
|
177
536
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -184,10 +543,10 @@ var icons = {
|
|
|
184
543
|
strokeLinecap: "round",
|
|
185
544
|
strokeLinejoin: "round"
|
|
186
545
|
},
|
|
187
|
-
|
|
188
|
-
|
|
546
|
+
React41.createElement("circle", { cx: 12, cy: 12, r: 5 }),
|
|
547
|
+
React41.createElement("path", { d: "M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42" })
|
|
189
548
|
),
|
|
190
|
-
moon:
|
|
549
|
+
moon: React41.createElement(
|
|
191
550
|
"svg",
|
|
192
551
|
{
|
|
193
552
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -200,9 +559,9 @@ var icons = {
|
|
|
200
559
|
strokeLinecap: "round",
|
|
201
560
|
strokeLinejoin: "round"
|
|
202
561
|
},
|
|
203
|
-
|
|
562
|
+
React41.createElement("path", { d: "M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z" })
|
|
204
563
|
),
|
|
205
|
-
monitor:
|
|
564
|
+
monitor: React41.createElement(
|
|
206
565
|
"svg",
|
|
207
566
|
{
|
|
208
567
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -215,15 +574,15 @@ var icons = {
|
|
|
215
574
|
strokeLinecap: "round",
|
|
216
575
|
strokeLinejoin: "round"
|
|
217
576
|
},
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
577
|
+
React41.createElement("rect", { x: 2, y: 3, width: 20, height: 14, rx: 2, ry: 2 }),
|
|
578
|
+
React41.createElement("line", { x1: 8, y1: 21, x2: 16, y2: 21 }),
|
|
579
|
+
React41.createElement("line", { x1: 12, y1: 17, x2: 12, y2: 21 })
|
|
221
580
|
)
|
|
222
581
|
};
|
|
223
582
|
function ThemeToggle({ className, variant = "segmented" }) {
|
|
224
583
|
const { mode, setMode } = useTheme();
|
|
225
584
|
if (variant === "segmented") {
|
|
226
|
-
return
|
|
585
|
+
return React41.createElement(
|
|
227
586
|
"div",
|
|
228
587
|
{
|
|
229
588
|
className: `inline-flex items-center gap-1 rounded-lg border p-1 ${className ?? ""}`,
|
|
@@ -231,7 +590,7 @@ function ThemeToggle({ className, variant = "segmented" }) {
|
|
|
231
590
|
"aria-label": "Theme"
|
|
232
591
|
},
|
|
233
592
|
modes.map(
|
|
234
|
-
({ value, label, icon }) =>
|
|
593
|
+
({ value, label, icon }) => React41.createElement("button", {
|
|
235
594
|
key: value,
|
|
236
595
|
type: "button",
|
|
237
596
|
role: "radio",
|
|
@@ -243,9 +602,9 @@ function ThemeToggle({ className, variant = "segmented" }) {
|
|
|
243
602
|
)
|
|
244
603
|
);
|
|
245
604
|
}
|
|
246
|
-
const [open, setOpen] =
|
|
247
|
-
const ref =
|
|
248
|
-
|
|
605
|
+
const [open, setOpen] = React41.useState(false);
|
|
606
|
+
const ref = React41.useRef(null);
|
|
607
|
+
React41.useEffect(() => {
|
|
249
608
|
if (!open) return;
|
|
250
609
|
const handler = (e) => {
|
|
251
610
|
if (ref.current && !ref.current.contains(e.target)) setOpen(false);
|
|
@@ -254,24 +613,24 @@ function ThemeToggle({ className, variant = "segmented" }) {
|
|
|
254
613
|
return () => document.removeEventListener("mousedown", handler);
|
|
255
614
|
}, [open]);
|
|
256
615
|
const currentIcon = modes.find((m) => m.value === mode)?.icon ?? "monitor";
|
|
257
|
-
return
|
|
616
|
+
return React41.createElement(
|
|
258
617
|
"div",
|
|
259
618
|
{ ref, className: `relative ${className ?? ""}` },
|
|
260
|
-
|
|
619
|
+
React41.createElement("button", {
|
|
261
620
|
type: "button",
|
|
262
621
|
"aria-label": "Toggle theme",
|
|
263
622
|
"aria-expanded": open,
|
|
264
623
|
className: "inline-flex items-center justify-center rounded-md p-2 text-sm transition-colors hover:bg-muted",
|
|
265
624
|
onClick: () => setOpen(!open)
|
|
266
625
|
}, icons[currentIcon]),
|
|
267
|
-
open &&
|
|
626
|
+
open && React41.createElement(
|
|
268
627
|
"div",
|
|
269
628
|
{
|
|
270
629
|
className: "absolute right-0 top-full mt-1 z-50 min-w-[8rem] rounded-md border bg-popover p-1 shadow-md",
|
|
271
630
|
role: "menu"
|
|
272
631
|
},
|
|
273
632
|
modes.map(
|
|
274
|
-
({ value, label, icon }) =>
|
|
633
|
+
({ value, label, icon }) => React41.createElement("button", {
|
|
275
634
|
key: value,
|
|
276
635
|
type: "button",
|
|
277
636
|
role: "menuitem",
|
|
@@ -289,7 +648,7 @@ function ThemeScript({
|
|
|
289
648
|
storageKey = "rfr-theme",
|
|
290
649
|
attribute = "class"
|
|
291
650
|
}) {
|
|
292
|
-
return
|
|
651
|
+
return React41.createElement("script", {
|
|
293
652
|
dangerouslySetInnerHTML: {
|
|
294
653
|
__html: getThemeScript(storageKey, attribute)
|
|
295
654
|
}
|
|
@@ -407,6 +766,105 @@ function cva(config) {
|
|
|
407
766
|
return classes.filter(Boolean).join(" ");
|
|
408
767
|
};
|
|
409
768
|
}
|
|
769
|
+
var AccordionContext = React41.createContext(null);
|
|
770
|
+
var Accordion = React41.forwardRef(
|
|
771
|
+
({ className, type = "single", collapsible, value: controlledValue, defaultValue, onValueChange, ...props }, ref) => {
|
|
772
|
+
const [uncontrolledValue, setUncontrolledValue] = React41.useState(
|
|
773
|
+
defaultValue ?? (type === "multiple" ? [] : "")
|
|
774
|
+
);
|
|
775
|
+
const value = controlledValue !== void 0 ? controlledValue : uncontrolledValue;
|
|
776
|
+
const handleValueChange = React41.useCallback(
|
|
777
|
+
(itemValue) => {
|
|
778
|
+
if (type === "single") {
|
|
779
|
+
const newValue = value === itemValue && collapsible ? "" : itemValue;
|
|
780
|
+
setUncontrolledValue(newValue);
|
|
781
|
+
onValueChange?.(newValue);
|
|
782
|
+
} else {
|
|
783
|
+
const arrValue = Array.isArray(value) ? value : [];
|
|
784
|
+
const newValue = arrValue.includes(itemValue) ? arrValue.filter((v) => v !== itemValue) : [...arrValue, itemValue];
|
|
785
|
+
setUncontrolledValue(newValue);
|
|
786
|
+
onValueChange?.(newValue);
|
|
787
|
+
}
|
|
788
|
+
},
|
|
789
|
+
[type, collapsible, value, onValueChange]
|
|
790
|
+
);
|
|
791
|
+
return /* @__PURE__ */ jsx(AccordionContext.Provider, { value: { type, value, onValueChange: handleValueChange }, children: /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col w-full", className), ...props }) });
|
|
792
|
+
}
|
|
793
|
+
);
|
|
794
|
+
Accordion.displayName = "Accordion";
|
|
795
|
+
var AccordionItemContext = React41.createContext(null);
|
|
796
|
+
var AccordionItem = React41.forwardRef(
|
|
797
|
+
({ className, value, ...props }, ref) => {
|
|
798
|
+
const context = React41.useContext(AccordionContext);
|
|
799
|
+
if (!context) throw new Error("AccordionItem must be within Accordion");
|
|
800
|
+
const isOpen = context.type === "single" ? context.value === value : Array.isArray(context.value) && context.value.includes(value);
|
|
801
|
+
return /* @__PURE__ */ jsx(AccordionItemContext.Provider, { value: { value, isOpen }, children: /* @__PURE__ */ jsx("div", { ref, className: cn("border-b border-border", className), "data-state": isOpen ? "open" : "closed", ...props }) });
|
|
802
|
+
}
|
|
803
|
+
);
|
|
804
|
+
AccordionItem.displayName = "AccordionItem";
|
|
805
|
+
var AccordionTrigger = React41.forwardRef(
|
|
806
|
+
({ className, children, ...props }, ref) => {
|
|
807
|
+
const accordionContext = React41.useContext(AccordionContext);
|
|
808
|
+
const itemContext = React41.useContext(AccordionItemContext);
|
|
809
|
+
if (!accordionContext || !itemContext) throw new Error("AccordionTrigger missing context");
|
|
810
|
+
return /* @__PURE__ */ jsx("h3", { className: "flex m-0 p-0", children: /* @__PURE__ */ jsxs(
|
|
811
|
+
"button",
|
|
812
|
+
{
|
|
813
|
+
ref,
|
|
814
|
+
type: "button",
|
|
815
|
+
"aria-expanded": itemContext.isOpen,
|
|
816
|
+
className: cn(
|
|
817
|
+
"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
|
|
818
|
+
className
|
|
819
|
+
),
|
|
820
|
+
"data-state": itemContext.isOpen ? "open" : "closed",
|
|
821
|
+
onClick: () => accordionContext.onValueChange(itemContext.value),
|
|
822
|
+
...props,
|
|
823
|
+
children: [
|
|
824
|
+
children,
|
|
825
|
+
/* @__PURE__ */ jsx(
|
|
826
|
+
"svg",
|
|
827
|
+
{
|
|
828
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
829
|
+
width: "24",
|
|
830
|
+
height: "24",
|
|
831
|
+
viewBox: "0 0 24 24",
|
|
832
|
+
fill: "none",
|
|
833
|
+
stroke: "currentColor",
|
|
834
|
+
strokeWidth: "2",
|
|
835
|
+
strokeLinecap: "round",
|
|
836
|
+
strokeLinejoin: "round",
|
|
837
|
+
className: "h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200",
|
|
838
|
+
children: /* @__PURE__ */ jsx("path", { d: "m6 9 6 6 6-6" })
|
|
839
|
+
}
|
|
840
|
+
)
|
|
841
|
+
]
|
|
842
|
+
}
|
|
843
|
+
) });
|
|
844
|
+
}
|
|
845
|
+
);
|
|
846
|
+
AccordionTrigger.displayName = "AccordionTrigger";
|
|
847
|
+
var AccordionContent = React41.forwardRef(
|
|
848
|
+
({ className, children, ...props }, ref) => {
|
|
849
|
+
const itemContext = React41.useContext(AccordionItemContext);
|
|
850
|
+
if (!itemContext) throw new Error("AccordionContent missing context");
|
|
851
|
+
return /* @__PURE__ */ jsx(
|
|
852
|
+
"div",
|
|
853
|
+
{
|
|
854
|
+
ref,
|
|
855
|
+
className: cn(
|
|
856
|
+
"overflow-hidden text-sm",
|
|
857
|
+
className
|
|
858
|
+
),
|
|
859
|
+
"data-state": itemContext.isOpen ? "open" : "closed",
|
|
860
|
+
hidden: !itemContext.isOpen,
|
|
861
|
+
...props,
|
|
862
|
+
children: /* @__PURE__ */ jsx("div", { className: "pb-4 pt-0 text-muted-foreground leading-relaxed", children })
|
|
863
|
+
}
|
|
864
|
+
);
|
|
865
|
+
}
|
|
866
|
+
);
|
|
867
|
+
AccordionContent.displayName = "AccordionContent";
|
|
410
868
|
|
|
411
869
|
// ../animated-text/dist/index.js
|
|
412
870
|
function createAnimatedText(props) {
|
|
@@ -470,16 +928,16 @@ var typewriterVariants = cva({
|
|
|
470
928
|
cursor: "blinking"
|
|
471
929
|
}
|
|
472
930
|
});
|
|
473
|
-
var AnimatedText =
|
|
931
|
+
var AnimatedText = React41.forwardRef(
|
|
474
932
|
({ words, interval = 2500, transitionDuration = 1e3, className, ...props }, ref) => {
|
|
475
|
-
const apiRef =
|
|
933
|
+
const apiRef = React41.useRef(
|
|
476
934
|
createAnimatedText({ words})
|
|
477
935
|
);
|
|
478
936
|
const api = apiRef.current;
|
|
479
|
-
const [currentIndex, setCurrentIndex] =
|
|
480
|
-
const [isExiting, setIsExiting] =
|
|
937
|
+
const [currentIndex, setCurrentIndex] = React41.useState(0);
|
|
938
|
+
const [isExiting, setIsExiting] = React41.useState(false);
|
|
481
939
|
const prefersReducedMotion = typeof globalThis !== "undefined" && typeof globalThis.matchMedia === "function" && globalThis.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
482
|
-
|
|
940
|
+
React41.useEffect(() => {
|
|
483
941
|
if (words.length <= 1) return;
|
|
484
942
|
const tick = setInterval(() => {
|
|
485
943
|
if (prefersReducedMotion) {
|
|
@@ -515,13 +973,13 @@ var AnimatedText = React40.forwardRef(
|
|
|
515
973
|
}
|
|
516
974
|
);
|
|
517
975
|
AnimatedText.displayName = "AnimatedText";
|
|
518
|
-
var TypewriterText =
|
|
976
|
+
var TypewriterText = React41.forwardRef(
|
|
519
977
|
({ text, speed = 50, startDelay = 0, className, ...props }, ref) => {
|
|
520
|
-
const apiRef =
|
|
978
|
+
const apiRef = React41.useRef(createTypewriter({ text}));
|
|
521
979
|
const api = apiRef.current;
|
|
522
|
-
const [currentIndex, setCurrentIndex] =
|
|
980
|
+
const [currentIndex, setCurrentIndex] = React41.useState(0);
|
|
523
981
|
const prefersReducedMotion = typeof globalThis !== "undefined" && typeof globalThis.matchMedia === "function" && globalThis.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
524
|
-
|
|
982
|
+
React41.useEffect(() => {
|
|
525
983
|
if (prefersReducedMotion) {
|
|
526
984
|
api.state.currentIndex = text.length;
|
|
527
985
|
setCurrentIndex(text.length);
|
|
@@ -774,22 +1232,22 @@ function detectProvider() {
|
|
|
774
1232
|
}
|
|
775
1233
|
|
|
776
1234
|
// ../react-auth/dist/index.js
|
|
777
|
-
var AuthContext =
|
|
1235
|
+
var AuthContext = React41.createContext(null);
|
|
778
1236
|
function AuthProvider({ children, ...config }) {
|
|
779
|
-
const authRef =
|
|
1237
|
+
const authRef = React41.useRef(null);
|
|
780
1238
|
if (!authRef.current) {
|
|
781
1239
|
const adapter = resolveAdapter(config.provider);
|
|
782
1240
|
authRef.current = createAuth(adapter, config);
|
|
783
1241
|
}
|
|
784
|
-
const [state, setState] =
|
|
785
|
-
|
|
1242
|
+
const [state, setState] = React41.useState(() => authRef.current.getState());
|
|
1243
|
+
React41.useEffect(() => {
|
|
786
1244
|
const unsub = authRef.current.subscribe(setState);
|
|
787
1245
|
return () => {
|
|
788
1246
|
unsub();
|
|
789
1247
|
authRef.current.destroy();
|
|
790
1248
|
};
|
|
791
1249
|
}, []);
|
|
792
|
-
const value =
|
|
1250
|
+
const value = React41.useMemo(
|
|
793
1251
|
() => ({
|
|
794
1252
|
user: state.user,
|
|
795
1253
|
isLoading: state.status === "loading",
|
|
@@ -803,10 +1261,10 @@ function AuthProvider({ children, ...config }) {
|
|
|
803
1261
|
}),
|
|
804
1262
|
[state.user, state.status]
|
|
805
1263
|
);
|
|
806
|
-
return
|
|
1264
|
+
return React41.createElement(AuthContext.Provider, { value }, children);
|
|
807
1265
|
}
|
|
808
1266
|
function useAuth() {
|
|
809
|
-
const ctx =
|
|
1267
|
+
const ctx = React41.useContext(AuthContext);
|
|
810
1268
|
if (!ctx) {
|
|
811
1269
|
throw new Error("useAuth must be used within an <AuthProvider>");
|
|
812
1270
|
}
|
|
@@ -820,15 +1278,15 @@ function AuthGuard({
|
|
|
820
1278
|
}) {
|
|
821
1279
|
const { isLoading, isAuthenticated, user } = useAuth();
|
|
822
1280
|
if (isLoading) {
|
|
823
|
-
return
|
|
1281
|
+
return React41.createElement(React41.Fragment, null, fallback ?? null);
|
|
824
1282
|
}
|
|
825
1283
|
if (!isAuthenticated) {
|
|
826
|
-
return
|
|
1284
|
+
return React41.createElement(React41.Fragment, null, fallback ?? null);
|
|
827
1285
|
}
|
|
828
1286
|
if (roles && roles.length > 0 && !hasAnyRole(user, roles)) {
|
|
829
|
-
return
|
|
1287
|
+
return React41.createElement(React41.Fragment, null, unauthorized ?? null);
|
|
830
1288
|
}
|
|
831
|
-
return
|
|
1289
|
+
return React41.createElement(React41.Fragment, null, children);
|
|
832
1290
|
}
|
|
833
1291
|
|
|
834
1292
|
// ../badge/dist/index.js
|
|
@@ -868,7 +1326,7 @@ var badgeVariants = cva({
|
|
|
868
1326
|
size: "md"
|
|
869
1327
|
}
|
|
870
1328
|
});
|
|
871
|
-
var Badge =
|
|
1329
|
+
var Badge = React41.forwardRef(
|
|
872
1330
|
({ variant, size, className, children, ...props }, ref) => {
|
|
873
1331
|
const api = createBadge({ variant});
|
|
874
1332
|
const classes = cn(badgeVariants({ variant, size }), className);
|
|
@@ -915,7 +1373,7 @@ var bottomNavTabVariants = cva({
|
|
|
915
1373
|
active: "false"
|
|
916
1374
|
}
|
|
917
1375
|
});
|
|
918
|
-
var BottomNav =
|
|
1376
|
+
var BottomNav = React41.forwardRef(
|
|
919
1377
|
({ tabs = [], currentPath, className, ...props }, ref) => {
|
|
920
1378
|
const api = createBottomNav({ currentPath });
|
|
921
1379
|
const classes = cn(bottomNavVariants(), className);
|
|
@@ -973,7 +1431,7 @@ function createBreadcrumbs(props = {}) {
|
|
|
973
1431
|
};
|
|
974
1432
|
}
|
|
975
1433
|
var breadcrumbsVariants = cva({
|
|
976
|
-
base: "flex items-center gap-1.5 text-sm text-muted-foreground"
|
|
1434
|
+
base: "flex flex-wrap items-center gap-1.5 text-sm text-muted-foreground"
|
|
977
1435
|
});
|
|
978
1436
|
var breadcrumbItemVariants = cva({
|
|
979
1437
|
base: "transition-colors",
|
|
@@ -988,7 +1446,7 @@ var breadcrumbItemVariants = cva({
|
|
|
988
1446
|
}
|
|
989
1447
|
});
|
|
990
1448
|
var breadcrumbSeparatorStyles = "text-muted-foreground/50 select-none";
|
|
991
|
-
var Breadcrumbs =
|
|
1449
|
+
var Breadcrumbs = React41.forwardRef(
|
|
992
1450
|
({
|
|
993
1451
|
pathname,
|
|
994
1452
|
items,
|
|
@@ -1095,12 +1553,12 @@ var buttonVariants = cva({
|
|
|
1095
1553
|
size: "default"
|
|
1096
1554
|
}
|
|
1097
1555
|
});
|
|
1098
|
-
var Button =
|
|
1556
|
+
var Button = React41.forwardRef(
|
|
1099
1557
|
({ variant, size, loading, asChild, className, disabled, children, ...props }, ref) => {
|
|
1100
1558
|
const api = createButton({ disabled, loading, type: props.type });
|
|
1101
1559
|
const classes = cn(buttonVariants({ variant, size }), className);
|
|
1102
|
-
if (asChild &&
|
|
1103
|
-
return
|
|
1560
|
+
if (asChild && React41.isValidElement(children)) {
|
|
1561
|
+
return React41.cloneElement(children, {
|
|
1104
1562
|
ref,
|
|
1105
1563
|
className: cn(classes, children.props.className),
|
|
1106
1564
|
type: getButtonType({ type: props.type }),
|
|
@@ -1307,15 +1765,15 @@ function Calendar({
|
|
|
1307
1765
|
maxDate,
|
|
1308
1766
|
disabledDates
|
|
1309
1767
|
}) {
|
|
1310
|
-
const [uncontrolledValue, setUncontrolledValue] =
|
|
1311
|
-
const [uncontrolledMonth, setUncontrolledMonth] =
|
|
1768
|
+
const [uncontrolledValue, setUncontrolledValue] = React41.useState(defaultValue);
|
|
1769
|
+
const [uncontrolledMonth, setUncontrolledMonth] = React41.useState(
|
|
1312
1770
|
() => month ?? value ?? defaultValue ?? /* @__PURE__ */ new Date()
|
|
1313
1771
|
);
|
|
1314
1772
|
const isValueControlled = value !== void 0;
|
|
1315
1773
|
const isMonthControlled = month !== void 0;
|
|
1316
1774
|
const selectedValue = isValueControlled ? value : uncontrolledValue;
|
|
1317
1775
|
const displayMonth = isMonthControlled ? month : uncontrolledMonth;
|
|
1318
|
-
const handleSelect =
|
|
1776
|
+
const handleSelect = React41.useCallback(
|
|
1319
1777
|
(date) => {
|
|
1320
1778
|
if (!isValueControlled) {
|
|
1321
1779
|
setUncontrolledValue(date);
|
|
@@ -1324,7 +1782,7 @@ function Calendar({
|
|
|
1324
1782
|
},
|
|
1325
1783
|
[isValueControlled, onSelect]
|
|
1326
1784
|
);
|
|
1327
|
-
const handleMonthChange =
|
|
1785
|
+
const handleMonthChange = React41.useCallback(
|
|
1328
1786
|
(m) => {
|
|
1329
1787
|
if (!isMonthControlled) {
|
|
1330
1788
|
setUncontrolledMonth(m);
|
|
@@ -1350,28 +1808,28 @@ function Calendar({
|
|
|
1350
1808
|
return "default";
|
|
1351
1809
|
}
|
|
1352
1810
|
const monthLabel = `${MONTH_NAMES[api.state.currentMonth.getMonth()]} ${api.state.currentMonth.getFullYear()}`;
|
|
1353
|
-
return
|
|
1811
|
+
return React41.createElement(
|
|
1354
1812
|
"div",
|
|
1355
1813
|
{
|
|
1356
1814
|
className: cn(calendarVariants(), className),
|
|
1357
1815
|
...api.ariaProps
|
|
1358
1816
|
},
|
|
1359
1817
|
// Header row: prev, month label, next
|
|
1360
|
-
|
|
1818
|
+
React41.createElement(CalendarHeader, {
|
|
1361
1819
|
label: monthLabel,
|
|
1362
1820
|
labelId: api.ids.label,
|
|
1363
1821
|
onPrevMonth: api.prevMonth,
|
|
1364
1822
|
onNextMonth: api.nextMonth
|
|
1365
1823
|
}),
|
|
1366
1824
|
// Day-of-week headers
|
|
1367
|
-
|
|
1825
|
+
React41.createElement(
|
|
1368
1826
|
"div",
|
|
1369
1827
|
{
|
|
1370
1828
|
className: "grid grid-cols-7 gap-1 mb-1",
|
|
1371
1829
|
role: "row"
|
|
1372
1830
|
},
|
|
1373
1831
|
DAY_HEADERS.map(
|
|
1374
|
-
(d) =>
|
|
1832
|
+
(d) => React41.createElement(
|
|
1375
1833
|
"div",
|
|
1376
1834
|
{
|
|
1377
1835
|
key: d,
|
|
@@ -1384,7 +1842,7 @@ function Calendar({
|
|
|
1384
1842
|
)
|
|
1385
1843
|
),
|
|
1386
1844
|
// Day grid
|
|
1387
|
-
|
|
1845
|
+
React41.createElement(
|
|
1388
1846
|
"div",
|
|
1389
1847
|
{
|
|
1390
1848
|
className: "grid grid-cols-7 gap-1",
|
|
@@ -1393,7 +1851,7 @@ function Calendar({
|
|
|
1393
1851
|
api.days.map((day, i) => {
|
|
1394
1852
|
const dayAriaProps = api.getDayAriaProps(day);
|
|
1395
1853
|
const state = getDayState(day);
|
|
1396
|
-
return
|
|
1854
|
+
return React41.createElement(
|
|
1397
1855
|
"button",
|
|
1398
1856
|
{
|
|
1399
1857
|
key: i,
|
|
@@ -1417,12 +1875,12 @@ function CalendarHeader({
|
|
|
1417
1875
|
onNextMonth,
|
|
1418
1876
|
className
|
|
1419
1877
|
}) {
|
|
1420
|
-
return
|
|
1878
|
+
return React41.createElement(
|
|
1421
1879
|
"div",
|
|
1422
1880
|
{
|
|
1423
1881
|
className: cn("flex items-center justify-between mb-2", className)
|
|
1424
1882
|
},
|
|
1425
|
-
|
|
1883
|
+
React41.createElement(
|
|
1426
1884
|
"button",
|
|
1427
1885
|
{
|
|
1428
1886
|
type: "button",
|
|
@@ -1432,7 +1890,7 @@ function CalendarHeader({
|
|
|
1432
1890
|
},
|
|
1433
1891
|
"\u2039"
|
|
1434
1892
|
),
|
|
1435
|
-
|
|
1893
|
+
React41.createElement(
|
|
1436
1894
|
"div",
|
|
1437
1895
|
{
|
|
1438
1896
|
id: labelId,
|
|
@@ -1441,7 +1899,7 @@ function CalendarHeader({
|
|
|
1441
1899
|
},
|
|
1442
1900
|
label
|
|
1443
1901
|
),
|
|
1444
|
-
|
|
1902
|
+
React41.createElement(
|
|
1445
1903
|
"button",
|
|
1446
1904
|
{
|
|
1447
1905
|
type: "button",
|
|
@@ -1574,7 +2032,7 @@ var codeEditorVariants = cva({
|
|
|
1574
2032
|
size: "default"
|
|
1575
2033
|
}
|
|
1576
2034
|
});
|
|
1577
|
-
var CodeEditor =
|
|
2035
|
+
var CodeEditor = React41.forwardRef(
|
|
1578
2036
|
({
|
|
1579
2037
|
value = "",
|
|
1580
2038
|
onChange,
|
|
@@ -1690,9 +2148,9 @@ var collapsibleContentVariants = cva({
|
|
|
1690
2148
|
});
|
|
1691
2149
|
|
|
1692
2150
|
// ../react-collapsible/dist/index.js
|
|
1693
|
-
var CollapsibleContext =
|
|
2151
|
+
var CollapsibleContext = React41.createContext(null);
|
|
1694
2152
|
function useCollapsibleContext() {
|
|
1695
|
-
const ctx =
|
|
2153
|
+
const ctx = React41.useContext(CollapsibleContext);
|
|
1696
2154
|
if (!ctx) {
|
|
1697
2155
|
throw new Error(
|
|
1698
2156
|
"Collapsible compound components must be used within <Collapsible>"
|
|
@@ -1708,10 +2166,10 @@ function Collapsible({
|
|
|
1708
2166
|
children,
|
|
1709
2167
|
className
|
|
1710
2168
|
}) {
|
|
1711
|
-
const [uncontrolledOpen, setUncontrolledOpen] =
|
|
2169
|
+
const [uncontrolledOpen, setUncontrolledOpen] = React41.useState(defaultOpen);
|
|
1712
2170
|
const isControlled = controlledOpen !== void 0;
|
|
1713
2171
|
const open = isControlled ? controlledOpen : uncontrolledOpen;
|
|
1714
|
-
const handleOpenChange =
|
|
2172
|
+
const handleOpenChange = React41.useCallback(
|
|
1715
2173
|
(next) => {
|
|
1716
2174
|
if (!isControlled) {
|
|
1717
2175
|
setUncontrolledOpen(next);
|
|
@@ -1720,12 +2178,12 @@ function Collapsible({
|
|
|
1720
2178
|
},
|
|
1721
2179
|
[isControlled, onOpenChange]
|
|
1722
2180
|
);
|
|
1723
|
-
const apiRef =
|
|
2181
|
+
const apiRef = React41.useRef(null);
|
|
1724
2182
|
if (apiRef.current === null) {
|
|
1725
2183
|
apiRef.current = createCollapsible({ open, defaultOpen, disabled });
|
|
1726
2184
|
}
|
|
1727
2185
|
const contentId = apiRef.current.contentProps.id;
|
|
1728
|
-
const ctx =
|
|
2186
|
+
const ctx = React41.useMemo(
|
|
1729
2187
|
() => ({
|
|
1730
2188
|
open,
|
|
1731
2189
|
onOpenChange: handleOpenChange,
|
|
@@ -1734,10 +2192,10 @@ function Collapsible({
|
|
|
1734
2192
|
}),
|
|
1735
2193
|
[open, handleOpenChange, disabled, contentId]
|
|
1736
2194
|
);
|
|
1737
|
-
return
|
|
2195
|
+
return React41.createElement(
|
|
1738
2196
|
CollapsibleContext.Provider,
|
|
1739
2197
|
{ value: ctx },
|
|
1740
|
-
|
|
2198
|
+
React41.createElement(
|
|
1741
2199
|
"div",
|
|
1742
2200
|
{
|
|
1743
2201
|
"data-state": open ? "open" : "closed",
|
|
@@ -1749,7 +2207,7 @@ function Collapsible({
|
|
|
1749
2207
|
);
|
|
1750
2208
|
}
|
|
1751
2209
|
Collapsible.displayName = "Collapsible";
|
|
1752
|
-
var CollapsibleTrigger =
|
|
2210
|
+
var CollapsibleTrigger = React41.forwardRef(({ onClick, disabled: disabledProp, children, ...props }, ref) => {
|
|
1753
2211
|
const { open, onOpenChange, disabled: ctxDisabled, contentId } = useCollapsibleContext();
|
|
1754
2212
|
const disabled = disabledProp ?? ctxDisabled;
|
|
1755
2213
|
const handleClick = (e) => {
|
|
@@ -1758,7 +2216,7 @@ var CollapsibleTrigger = React40.forwardRef(({ onClick, disabled: disabledProp,
|
|
|
1758
2216
|
}
|
|
1759
2217
|
onClick?.(e);
|
|
1760
2218
|
};
|
|
1761
|
-
return
|
|
2219
|
+
return React41.createElement(
|
|
1762
2220
|
"button",
|
|
1763
2221
|
{
|
|
1764
2222
|
ref,
|
|
@@ -1775,11 +2233,11 @@ var CollapsibleTrigger = React40.forwardRef(({ onClick, disabled: disabledProp,
|
|
|
1775
2233
|
);
|
|
1776
2234
|
});
|
|
1777
2235
|
CollapsibleTrigger.displayName = "CollapsibleTrigger";
|
|
1778
|
-
var CollapsibleContent =
|
|
2236
|
+
var CollapsibleContent = React41.forwardRef(({ className, children, ...props }, ref) => {
|
|
1779
2237
|
const { open, contentId } = useCollapsibleContext();
|
|
1780
2238
|
const dataState = open ? "open" : "closed";
|
|
1781
2239
|
if (!open) return null;
|
|
1782
|
-
return
|
|
2240
|
+
return React41.createElement(
|
|
1783
2241
|
"div",
|
|
1784
2242
|
{
|
|
1785
2243
|
ref,
|
|
@@ -1924,9 +2382,9 @@ var commandGroupVariants = cva({
|
|
|
1924
2382
|
});
|
|
1925
2383
|
|
|
1926
2384
|
// ../react-command/dist/index.js
|
|
1927
|
-
var CommandContext =
|
|
2385
|
+
var CommandContext = React41.createContext(null);
|
|
1928
2386
|
function useCommandContext() {
|
|
1929
|
-
const ctx =
|
|
2387
|
+
const ctx = React41.useContext(CommandContext);
|
|
1930
2388
|
if (!ctx) {
|
|
1931
2389
|
throw new Error("Command compound components must be used within <Command>");
|
|
1932
2390
|
}
|
|
@@ -1939,11 +2397,11 @@ function Command({
|
|
|
1939
2397
|
className,
|
|
1940
2398
|
children
|
|
1941
2399
|
}) {
|
|
1942
|
-
const [items, setItems] =
|
|
1943
|
-
const [search, setSearch] =
|
|
1944
|
-
const [selectedIndex, setSelectedIndex] =
|
|
1945
|
-
const apiRef =
|
|
1946
|
-
const api =
|
|
2400
|
+
const [items, setItems] = React41.useState([]);
|
|
2401
|
+
const [search, setSearch] = React41.useState("");
|
|
2402
|
+
const [selectedIndex, setSelectedIndex] = React41.useState(0);
|
|
2403
|
+
const apiRef = React41.useRef(null);
|
|
2404
|
+
const api = React41.useMemo(() => {
|
|
1947
2405
|
const instance = createCommand({ open, onOpenChange, filter }, items);
|
|
1948
2406
|
if (search) {
|
|
1949
2407
|
instance.search(search);
|
|
@@ -1952,23 +2410,23 @@ function Command({
|
|
|
1952
2410
|
return instance;
|
|
1953
2411
|
}, [open, onOpenChange, filter, items, search]);
|
|
1954
2412
|
const filteredItems = api.state.filteredItems;
|
|
1955
|
-
const handleSearch =
|
|
2413
|
+
const handleSearch = React41.useCallback((query) => {
|
|
1956
2414
|
setSearch(query);
|
|
1957
2415
|
setSelectedIndex(0);
|
|
1958
2416
|
}, []);
|
|
1959
|
-
const handleSelect =
|
|
2417
|
+
const handleSelect = React41.useCallback((index) => {
|
|
1960
2418
|
setSelectedIndex(index);
|
|
1961
2419
|
}, []);
|
|
1962
|
-
const registerItem =
|
|
2420
|
+
const registerItem = React41.useCallback((item) => {
|
|
1963
2421
|
setItems((prev) => {
|
|
1964
2422
|
if (prev.some((i) => i.id === item.id)) return prev;
|
|
1965
2423
|
return [...prev, item];
|
|
1966
2424
|
});
|
|
1967
2425
|
}, []);
|
|
1968
|
-
const unregisterItem =
|
|
2426
|
+
const unregisterItem = React41.useCallback((id) => {
|
|
1969
2427
|
setItems((prev) => prev.filter((i) => i.id !== id));
|
|
1970
2428
|
}, []);
|
|
1971
|
-
const handleKeyDown =
|
|
2429
|
+
const handleKeyDown = React41.useCallback(
|
|
1972
2430
|
(e) => {
|
|
1973
2431
|
const handler = createKeyboardHandler({
|
|
1974
2432
|
[Keys.ArrowDown]: (ev) => {
|
|
@@ -1995,7 +2453,7 @@ function Command({
|
|
|
1995
2453
|
},
|
|
1996
2454
|
[filteredItems.length, onOpenChange]
|
|
1997
2455
|
);
|
|
1998
|
-
const ctx =
|
|
2456
|
+
const ctx = React41.useMemo(
|
|
1999
2457
|
() => ({
|
|
2000
2458
|
search,
|
|
2001
2459
|
onSearch: handleSearch,
|
|
@@ -2010,10 +2468,10 @@ function Command({
|
|
|
2010
2468
|
}),
|
|
2011
2469
|
[search, handleSearch, selectedIndex, handleSelect, items, filteredItems, registerItem, unregisterItem, api.ids.list, api.ids.input]
|
|
2012
2470
|
);
|
|
2013
|
-
return
|
|
2471
|
+
return React41.createElement(
|
|
2014
2472
|
CommandContext.Provider,
|
|
2015
2473
|
{ value: ctx },
|
|
2016
|
-
|
|
2474
|
+
React41.createElement(
|
|
2017
2475
|
"div",
|
|
2018
2476
|
{
|
|
2019
2477
|
className: cn(commandVariants(), className),
|
|
@@ -2025,14 +2483,14 @@ function Command({
|
|
|
2025
2483
|
);
|
|
2026
2484
|
}
|
|
2027
2485
|
Command.displayName = "Command";
|
|
2028
|
-
var CommandInput =
|
|
2486
|
+
var CommandInput = React41.forwardRef(
|
|
2029
2487
|
({ className, onChange, ...props }, ref) => {
|
|
2030
2488
|
const { search, onSearch, inputId, listId } = useCommandContext();
|
|
2031
2489
|
const handleChange = (e) => {
|
|
2032
2490
|
onSearch(e.target.value);
|
|
2033
2491
|
onChange?.(e);
|
|
2034
2492
|
};
|
|
2035
|
-
return
|
|
2493
|
+
return React41.createElement("input", {
|
|
2036
2494
|
ref,
|
|
2037
2495
|
id: inputId,
|
|
2038
2496
|
type: "text",
|
|
@@ -2047,10 +2505,10 @@ var CommandInput = React40.forwardRef(
|
|
|
2047
2505
|
}
|
|
2048
2506
|
);
|
|
2049
2507
|
CommandInput.displayName = "CommandInput";
|
|
2050
|
-
var CommandList =
|
|
2508
|
+
var CommandList = React41.forwardRef(
|
|
2051
2509
|
({ className, children, ...props }, ref) => {
|
|
2052
2510
|
const { listId } = useCommandContext();
|
|
2053
|
-
return
|
|
2511
|
+
return React41.createElement(
|
|
2054
2512
|
"div",
|
|
2055
2513
|
{
|
|
2056
2514
|
ref,
|
|
@@ -2065,11 +2523,11 @@ var CommandList = React40.forwardRef(
|
|
|
2065
2523
|
}
|
|
2066
2524
|
);
|
|
2067
2525
|
CommandList.displayName = "CommandList";
|
|
2068
|
-
var CommandEmpty =
|
|
2526
|
+
var CommandEmpty = React41.forwardRef(
|
|
2069
2527
|
({ className, children, ...props }, ref) => {
|
|
2070
2528
|
const { filteredItems } = useCommandContext();
|
|
2071
2529
|
if (filteredItems.length > 0) return null;
|
|
2072
|
-
return
|
|
2530
|
+
return React41.createElement(
|
|
2073
2531
|
"div",
|
|
2074
2532
|
{
|
|
2075
2533
|
ref,
|
|
@@ -2082,9 +2540,9 @@ var CommandEmpty = React40.forwardRef(
|
|
|
2082
2540
|
}
|
|
2083
2541
|
);
|
|
2084
2542
|
CommandEmpty.displayName = "CommandEmpty";
|
|
2085
|
-
var CommandGroup =
|
|
2543
|
+
var CommandGroup = React41.forwardRef(
|
|
2086
2544
|
({ className, heading, children, ...props }, ref) => {
|
|
2087
|
-
return
|
|
2545
|
+
return React41.createElement(
|
|
2088
2546
|
"div",
|
|
2089
2547
|
{
|
|
2090
2548
|
ref,
|
|
@@ -2093,7 +2551,7 @@ var CommandGroup = React40.forwardRef(
|
|
|
2093
2551
|
"aria-label": heading,
|
|
2094
2552
|
...props
|
|
2095
2553
|
},
|
|
2096
|
-
heading ?
|
|
2554
|
+
heading ? React41.createElement(
|
|
2097
2555
|
"div",
|
|
2098
2556
|
{ className: "px-2 py-1.5 text-xs font-medium text-muted-foreground" },
|
|
2099
2557
|
heading
|
|
@@ -2103,10 +2561,10 @@ var CommandGroup = React40.forwardRef(
|
|
|
2103
2561
|
}
|
|
2104
2562
|
);
|
|
2105
2563
|
CommandGroup.displayName = "CommandGroup";
|
|
2106
|
-
var CommandItem =
|
|
2564
|
+
var CommandItem = React41.forwardRef(
|
|
2107
2565
|
({ className, value, disabled, onSelect: onItemSelect, children, ...props }, ref) => {
|
|
2108
2566
|
const state = disabled ? "disabled" : "default";
|
|
2109
|
-
return
|
|
2567
|
+
return React41.createElement(
|
|
2110
2568
|
"div",
|
|
2111
2569
|
{
|
|
2112
2570
|
ref,
|
|
@@ -2127,9 +2585,9 @@ var CommandItem = React40.forwardRef(
|
|
|
2127
2585
|
}
|
|
2128
2586
|
);
|
|
2129
2587
|
CommandItem.displayName = "CommandItem";
|
|
2130
|
-
var CommandSeparator =
|
|
2588
|
+
var CommandSeparator = React41.forwardRef(
|
|
2131
2589
|
({ className, ...props }, ref) => {
|
|
2132
|
-
return
|
|
2590
|
+
return React41.createElement("div", {
|
|
2133
2591
|
ref,
|
|
2134
2592
|
role: "separator",
|
|
2135
2593
|
className: cn("-mx-1 h-px bg-border", className),
|
|
@@ -2176,7 +2634,7 @@ var contentProtectionVariants = cva({
|
|
|
2176
2634
|
var watermarkVariants = cva({
|
|
2177
2635
|
base: "pointer-events-none absolute inset-0 z-50 overflow-hidden"
|
|
2178
2636
|
});
|
|
2179
|
-
var ContentProtection =
|
|
2637
|
+
var ContentProtection = React41.forwardRef(
|
|
2180
2638
|
({
|
|
2181
2639
|
enabled,
|
|
2182
2640
|
disableCopy,
|
|
@@ -2423,10 +2881,10 @@ function DataTable({
|
|
|
2423
2881
|
className,
|
|
2424
2882
|
emptyMessage = "No data available"
|
|
2425
2883
|
}) {
|
|
2426
|
-
const [sortBy, setSortBy] =
|
|
2427
|
-
const [sortDir, setSortDir] =
|
|
2428
|
-
const [filters, setFilters] =
|
|
2429
|
-
const api =
|
|
2884
|
+
const [sortBy, setSortBy] = React41.useState(controlledSortBy ?? null);
|
|
2885
|
+
const [sortDir, setSortDir] = React41.useState(controlledSortDir);
|
|
2886
|
+
const [filters, setFilters] = React41.useState(controlledFilters ?? {});
|
|
2887
|
+
const api = React41.useMemo(
|
|
2430
2888
|
() => createDataTable({
|
|
2431
2889
|
columns,
|
|
2432
2890
|
data,
|
|
@@ -2437,7 +2895,7 @@ function DataTable({
|
|
|
2437
2895
|
}),
|
|
2438
2896
|
[columns, data, sortBy, sortDir, onSort, filters]
|
|
2439
2897
|
);
|
|
2440
|
-
const handleSort =
|
|
2898
|
+
const handleSort = React41.useCallback(
|
|
2441
2899
|
(columnId) => {
|
|
2442
2900
|
const col = columns.find((c) => c.id === columnId);
|
|
2443
2901
|
if (!col?.sortable) return;
|
|
@@ -2451,7 +2909,7 @@ function DataTable({
|
|
|
2451
2909
|
},
|
|
2452
2910
|
[columns, sortBy, sortDir, onSort]
|
|
2453
2911
|
);
|
|
2454
|
-
const handleFilter =
|
|
2912
|
+
const handleFilter = React41.useCallback(
|
|
2455
2913
|
(columnId, value) => {
|
|
2456
2914
|
setFilters((prev) => ({ ...prev, [columnId]: value }));
|
|
2457
2915
|
},
|
|
@@ -2459,87 +2917,91 @@ function DataTable({
|
|
|
2459
2917
|
);
|
|
2460
2918
|
const sortedData = api.state.sortedData;
|
|
2461
2919
|
const hasFilterable = columns.some((c) => c.filterable);
|
|
2462
|
-
return
|
|
2463
|
-
"
|
|
2464
|
-
{
|
|
2465
|
-
|
|
2466
|
-
|
|
2467
|
-
|
|
2468
|
-
|
|
2469
|
-
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2474
|
-
|
|
2475
|
-
|
|
2476
|
-
|
|
2477
|
-
const headerProps = api.getHeaderProps(col);
|
|
2478
|
-
return React40.createElement(
|
|
2479
|
-
"th",
|
|
2480
|
-
{
|
|
2481
|
-
key: col.id,
|
|
2482
|
-
...headerProps,
|
|
2483
|
-
className: headerVariants({ sortable: col.sortable ? "true" : "false" }),
|
|
2484
|
-
onClick: col.sortable ? () => handleSort(col.id) : void 0
|
|
2485
|
-
},
|
|
2486
|
-
col.header,
|
|
2487
|
-
col.sortable && sortBy === col.id ? React40.createElement("span", { "aria-hidden": true }, sortDir === "asc" ? " \u2191" : " \u2193") : null
|
|
2488
|
-
);
|
|
2489
|
-
})
|
|
2490
|
-
),
|
|
2491
|
-
// Filter row
|
|
2492
|
-
hasFilterable ? React40.createElement(
|
|
2493
|
-
"tr",
|
|
2494
|
-
{ role: "row", "data-filter-row": "true" },
|
|
2495
|
-
...columns.map(
|
|
2496
|
-
(col) => React40.createElement(
|
|
2497
|
-
"th",
|
|
2498
|
-
{ key: `filter-${col.id}` },
|
|
2499
|
-
col.filterable ? React40.createElement("input", {
|
|
2500
|
-
type: "text",
|
|
2501
|
-
"aria-label": `Filter ${col.header}`,
|
|
2502
|
-
value: filters[col.id] ?? "",
|
|
2503
|
-
onChange: (e) => handleFilter(col.id, e.target.value),
|
|
2504
|
-
placeholder: `Filter...`
|
|
2505
|
-
}) : null
|
|
2506
|
-
)
|
|
2507
|
-
)
|
|
2508
|
-
) : null
|
|
2509
|
-
),
|
|
2510
|
-
// tbody
|
|
2511
|
-
React40.createElement(
|
|
2512
|
-
"tbody",
|
|
2513
|
-
null,
|
|
2514
|
-
sortedData.length === 0 ? React40.createElement(
|
|
2515
|
-
"tr",
|
|
2516
|
-
{ role: "row" },
|
|
2517
|
-
React40.createElement(
|
|
2518
|
-
"td",
|
|
2519
|
-
{
|
|
2520
|
-
colSpan: columns.length,
|
|
2521
|
-
className: "text-center p-4 text-muted-foreground",
|
|
2522
|
-
role: "cell"
|
|
2523
|
-
},
|
|
2524
|
-
emptyMessage
|
|
2525
|
-
)
|
|
2526
|
-
) : sortedData.map(
|
|
2527
|
-
(row, rowIndex) => React40.createElement(
|
|
2920
|
+
return React41.createElement(
|
|
2921
|
+
"div",
|
|
2922
|
+
{ className: "relative w-full overflow-auto" },
|
|
2923
|
+
React41.createElement(
|
|
2924
|
+
"table",
|
|
2925
|
+
{
|
|
2926
|
+
className: cn(tableVariants(), className),
|
|
2927
|
+
role: "table"
|
|
2928
|
+
},
|
|
2929
|
+
// thead
|
|
2930
|
+
React41.createElement(
|
|
2931
|
+
"thead",
|
|
2932
|
+
null,
|
|
2933
|
+
// Header row
|
|
2934
|
+
React41.createElement(
|
|
2528
2935
|
"tr",
|
|
2529
|
-
{
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
|
|
2534
|
-
...columns.map(
|
|
2535
|
-
(col) => React40.createElement(
|
|
2536
|
-
"td",
|
|
2936
|
+
{ role: "row" },
|
|
2937
|
+
...columns.map((col) => {
|
|
2938
|
+
const headerProps = api.getHeaderProps(col);
|
|
2939
|
+
return React41.createElement(
|
|
2940
|
+
"th",
|
|
2537
2941
|
{
|
|
2538
2942
|
key: col.id,
|
|
2539
|
-
...
|
|
2540
|
-
className:
|
|
2943
|
+
...headerProps,
|
|
2944
|
+
className: headerVariants({ sortable: col.sortable ? "true" : "false" }),
|
|
2945
|
+
onClick: col.sortable ? () => handleSort(col.id) : void 0
|
|
2541
2946
|
},
|
|
2542
|
-
|
|
2947
|
+
col.header,
|
|
2948
|
+
col.sortable && sortBy === col.id ? React41.createElement("span", { "aria-hidden": true }, sortDir === "asc" ? " \u2191" : " \u2193") : null
|
|
2949
|
+
);
|
|
2950
|
+
})
|
|
2951
|
+
),
|
|
2952
|
+
// Filter row
|
|
2953
|
+
hasFilterable ? React41.createElement(
|
|
2954
|
+
"tr",
|
|
2955
|
+
{ role: "row", "data-filter-row": "true" },
|
|
2956
|
+
...columns.map(
|
|
2957
|
+
(col) => React41.createElement(
|
|
2958
|
+
"th",
|
|
2959
|
+
{ key: `filter-${col.id}` },
|
|
2960
|
+
col.filterable ? React41.createElement("input", {
|
|
2961
|
+
type: "text",
|
|
2962
|
+
"aria-label": `Filter ${col.header}`,
|
|
2963
|
+
value: filters[col.id] ?? "",
|
|
2964
|
+
onChange: (e) => handleFilter(col.id, e.target.value),
|
|
2965
|
+
placeholder: `Filter...`
|
|
2966
|
+
}) : null
|
|
2967
|
+
)
|
|
2968
|
+
)
|
|
2969
|
+
) : null
|
|
2970
|
+
),
|
|
2971
|
+
// tbody
|
|
2972
|
+
React41.createElement(
|
|
2973
|
+
"tbody",
|
|
2974
|
+
null,
|
|
2975
|
+
sortedData.length === 0 ? React41.createElement(
|
|
2976
|
+
"tr",
|
|
2977
|
+
{ role: "row" },
|
|
2978
|
+
React41.createElement(
|
|
2979
|
+
"td",
|
|
2980
|
+
{
|
|
2981
|
+
colSpan: columns.length,
|
|
2982
|
+
className: "text-center p-4 text-muted-foreground",
|
|
2983
|
+
role: "cell"
|
|
2984
|
+
},
|
|
2985
|
+
emptyMessage
|
|
2986
|
+
)
|
|
2987
|
+
) : sortedData.map(
|
|
2988
|
+
(row, rowIndex) => React41.createElement(
|
|
2989
|
+
"tr",
|
|
2990
|
+
{
|
|
2991
|
+
key: rowIndex,
|
|
2992
|
+
...api.getRowProps(row, rowIndex),
|
|
2993
|
+
className: rowVariants()
|
|
2994
|
+
},
|
|
2995
|
+
...columns.map(
|
|
2996
|
+
(col) => React41.createElement(
|
|
2997
|
+
"td",
|
|
2998
|
+
{
|
|
2999
|
+
key: col.id,
|
|
3000
|
+
...api.getCellProps(col, row),
|
|
3001
|
+
className: cellVariants()
|
|
3002
|
+
},
|
|
3003
|
+
String(col.accessor(row) ?? "")
|
|
3004
|
+
)
|
|
2543
3005
|
)
|
|
2544
3006
|
)
|
|
2545
3007
|
)
|
|
@@ -2641,7 +3103,7 @@ function DeviceFrame({
|
|
|
2641
3103
|
children
|
|
2642
3104
|
}) {
|
|
2643
3105
|
const api = createDeviceFrame({ device, orientation });
|
|
2644
|
-
return
|
|
3106
|
+
return React41.createElement(
|
|
2645
3107
|
"div",
|
|
2646
3108
|
{
|
|
2647
3109
|
className: cn(deviceFrameVariants({ device, orientation }), className),
|
|
@@ -2653,13 +3115,13 @@ function DeviceFrame({
|
|
|
2653
3115
|
...api.dataAttributes
|
|
2654
3116
|
},
|
|
2655
3117
|
// Notch decoration
|
|
2656
|
-
api.dimensions.notch ?
|
|
3118
|
+
api.dimensions.notch ? React41.createElement("div", {
|
|
2657
3119
|
className: "absolute top-0 left-1/2 -translate-x-1/2 w-[40%] h-[30px] bg-black rounded-b-2xl z-10",
|
|
2658
3120
|
"aria-hidden": "true",
|
|
2659
3121
|
"data-part": "notch"
|
|
2660
3122
|
}) : null,
|
|
2661
3123
|
// Screen area
|
|
2662
|
-
|
|
3124
|
+
React41.createElement(
|
|
2663
3125
|
"div",
|
|
2664
3126
|
{
|
|
2665
3127
|
className: "relative w-full h-full overflow-hidden bg-white",
|
|
@@ -2668,7 +3130,7 @@ function DeviceFrame({
|
|
|
2668
3130
|
children
|
|
2669
3131
|
),
|
|
2670
3132
|
// Home indicator decoration
|
|
2671
|
-
api.dimensions.homeIndicator ?
|
|
3133
|
+
api.dimensions.homeIndicator ? React41.createElement("div", {
|
|
2672
3134
|
className: "absolute bottom-2 left-1/2 -translate-x-1/2 w-[35%] h-[5px] bg-gray-300 rounded-full z-10",
|
|
2673
3135
|
"aria-hidden": "true",
|
|
2674
3136
|
"data-part": "home-indicator"
|
|
@@ -2757,9 +3219,9 @@ var dialogContentVariants = cva({
|
|
|
2757
3219
|
});
|
|
2758
3220
|
|
|
2759
3221
|
// ../react-dialog/dist/index.js
|
|
2760
|
-
var DialogContext =
|
|
3222
|
+
var DialogContext = React41.createContext(null);
|
|
2761
3223
|
function useDialogContext() {
|
|
2762
|
-
const ctx =
|
|
3224
|
+
const ctx = React41.useContext(DialogContext);
|
|
2763
3225
|
if (!ctx) {
|
|
2764
3226
|
throw new Error("Dialog compound components must be used within <Dialog>");
|
|
2765
3227
|
}
|
|
@@ -2772,10 +3234,10 @@ function Dialog({
|
|
|
2772
3234
|
modal = true,
|
|
2773
3235
|
children
|
|
2774
3236
|
}) {
|
|
2775
|
-
const [uncontrolledOpen, setUncontrolledOpen] =
|
|
3237
|
+
const [uncontrolledOpen, setUncontrolledOpen] = React41.useState(defaultOpen);
|
|
2776
3238
|
const isControlled = controlledOpen !== void 0;
|
|
2777
3239
|
const open = isControlled ? controlledOpen : uncontrolledOpen;
|
|
2778
|
-
const handleOpenChange =
|
|
3240
|
+
const handleOpenChange = React41.useCallback(
|
|
2779
3241
|
(next) => {
|
|
2780
3242
|
if (!isControlled) {
|
|
2781
3243
|
setUncontrolledOpen(next);
|
|
@@ -2784,12 +3246,12 @@ function Dialog({
|
|
|
2784
3246
|
},
|
|
2785
3247
|
[isControlled, onOpenChange]
|
|
2786
3248
|
);
|
|
2787
|
-
const apiRef =
|
|
3249
|
+
const apiRef = React41.useRef(null);
|
|
2788
3250
|
if (apiRef.current === null) {
|
|
2789
3251
|
apiRef.current = createDialog({ open, modal });
|
|
2790
3252
|
}
|
|
2791
3253
|
const api = apiRef.current;
|
|
2792
|
-
const ctx =
|
|
3254
|
+
const ctx = React41.useMemo(
|
|
2793
3255
|
() => ({
|
|
2794
3256
|
open,
|
|
2795
3257
|
onOpenChange: handleOpenChange,
|
|
@@ -2800,17 +3262,17 @@ function Dialog({
|
|
|
2800
3262
|
}),
|
|
2801
3263
|
[open, handleOpenChange, modal, api.ids.content, api.ids.title, api.ids.description]
|
|
2802
3264
|
);
|
|
2803
|
-
return
|
|
3265
|
+
return React41.createElement(DialogContext.Provider, { value: ctx }, children);
|
|
2804
3266
|
}
|
|
2805
3267
|
Dialog.displayName = "Dialog";
|
|
2806
|
-
var DialogTrigger =
|
|
3268
|
+
var DialogTrigger = React41.forwardRef(
|
|
2807
3269
|
({ onClick, children, ...props }, ref) => {
|
|
2808
3270
|
const { open, onOpenChange, contentId } = useDialogContext();
|
|
2809
3271
|
const handleClick = (e) => {
|
|
2810
3272
|
onOpenChange(!open);
|
|
2811
3273
|
onClick?.(e);
|
|
2812
3274
|
};
|
|
2813
|
-
return
|
|
3275
|
+
return React41.createElement(
|
|
2814
3276
|
"button",
|
|
2815
3277
|
{
|
|
2816
3278
|
ref,
|
|
@@ -2826,7 +3288,7 @@ var DialogTrigger = React40.forwardRef(
|
|
|
2826
3288
|
}
|
|
2827
3289
|
);
|
|
2828
3290
|
DialogTrigger.displayName = "DialogTrigger";
|
|
2829
|
-
var DialogOverlay =
|
|
3291
|
+
var DialogOverlay = React41.forwardRef(
|
|
2830
3292
|
({ className, onClick, ...props }, ref) => {
|
|
2831
3293
|
const { open, onOpenChange } = useDialogContext();
|
|
2832
3294
|
if (!open) return null;
|
|
@@ -2836,7 +3298,7 @@ var DialogOverlay = React40.forwardRef(
|
|
|
2836
3298
|
}
|
|
2837
3299
|
onClick?.(e);
|
|
2838
3300
|
};
|
|
2839
|
-
return
|
|
3301
|
+
return React41.createElement("div", {
|
|
2840
3302
|
ref,
|
|
2841
3303
|
className: cn(overlayStyles, className),
|
|
2842
3304
|
"data-state": open ? "open" : "closed",
|
|
@@ -2846,10 +3308,10 @@ var DialogOverlay = React40.forwardRef(
|
|
|
2846
3308
|
}
|
|
2847
3309
|
);
|
|
2848
3310
|
DialogOverlay.displayName = "DialogOverlay";
|
|
2849
|
-
var DialogContent =
|
|
3311
|
+
var DialogContent = React41.forwardRef(
|
|
2850
3312
|
({ className, children, onKeyDown, ...props }, ref) => {
|
|
2851
3313
|
const { open, onOpenChange, modal, contentId, titleId, descriptionId } = useDialogContext();
|
|
2852
|
-
|
|
3314
|
+
React41.useMemo(
|
|
2853
3315
|
() => createDialog({ open, modal }),
|
|
2854
3316
|
[open, modal]
|
|
2855
3317
|
);
|
|
@@ -2864,7 +3326,7 @@ var DialogContent = React40.forwardRef(
|
|
|
2864
3326
|
onKeyDown?.(e);
|
|
2865
3327
|
};
|
|
2866
3328
|
if (!open) return null;
|
|
2867
|
-
const content =
|
|
3329
|
+
const content = React41.createElement(
|
|
2868
3330
|
"div",
|
|
2869
3331
|
{
|
|
2870
3332
|
ref,
|
|
@@ -2887,9 +3349,9 @@ var DialogContent = React40.forwardRef(
|
|
|
2887
3349
|
}
|
|
2888
3350
|
);
|
|
2889
3351
|
DialogContent.displayName = "DialogContent";
|
|
2890
|
-
var DialogHeader =
|
|
3352
|
+
var DialogHeader = React41.forwardRef(
|
|
2891
3353
|
({ className, ...props }, ref) => {
|
|
2892
|
-
return
|
|
3354
|
+
return React41.createElement("div", {
|
|
2893
3355
|
ref,
|
|
2894
3356
|
className: cn("flex flex-col space-y-1.5 text-center sm:text-left", className),
|
|
2895
3357
|
...props
|
|
@@ -2897,9 +3359,9 @@ var DialogHeader = React40.forwardRef(
|
|
|
2897
3359
|
}
|
|
2898
3360
|
);
|
|
2899
3361
|
DialogHeader.displayName = "DialogHeader";
|
|
2900
|
-
var DialogFooter =
|
|
3362
|
+
var DialogFooter = React41.forwardRef(
|
|
2901
3363
|
({ className, ...props }, ref) => {
|
|
2902
|
-
return
|
|
3364
|
+
return React41.createElement("div", {
|
|
2903
3365
|
ref,
|
|
2904
3366
|
className: cn(
|
|
2905
3367
|
"flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",
|
|
@@ -2910,10 +3372,10 @@ var DialogFooter = React40.forwardRef(
|
|
|
2910
3372
|
}
|
|
2911
3373
|
);
|
|
2912
3374
|
DialogFooter.displayName = "DialogFooter";
|
|
2913
|
-
var DialogTitle =
|
|
3375
|
+
var DialogTitle = React41.forwardRef(
|
|
2914
3376
|
({ className, ...props }, ref) => {
|
|
2915
3377
|
const { titleId } = useDialogContext();
|
|
2916
|
-
return
|
|
3378
|
+
return React41.createElement("h2", {
|
|
2917
3379
|
ref,
|
|
2918
3380
|
id: titleId,
|
|
2919
3381
|
className: cn("text-lg font-semibold leading-none tracking-tight", className),
|
|
@@ -2922,9 +3384,9 @@ var DialogTitle = React40.forwardRef(
|
|
|
2922
3384
|
}
|
|
2923
3385
|
);
|
|
2924
3386
|
DialogTitle.displayName = "DialogTitle";
|
|
2925
|
-
var DialogDescription =
|
|
3387
|
+
var DialogDescription = React41.forwardRef(({ className, ...props }, ref) => {
|
|
2926
3388
|
const { descriptionId } = useDialogContext();
|
|
2927
|
-
return
|
|
3389
|
+
return React41.createElement("p", {
|
|
2928
3390
|
ref,
|
|
2929
3391
|
id: descriptionId,
|
|
2930
3392
|
className: cn("text-sm text-muted-foreground", className),
|
|
@@ -2932,14 +3394,14 @@ var DialogDescription = React40.forwardRef(({ className, ...props }, ref) => {
|
|
|
2932
3394
|
});
|
|
2933
3395
|
});
|
|
2934
3396
|
DialogDescription.displayName = "DialogDescription";
|
|
2935
|
-
var DialogClose =
|
|
3397
|
+
var DialogClose = React41.forwardRef(
|
|
2936
3398
|
({ onClick, children, ...props }, ref) => {
|
|
2937
3399
|
const { onOpenChange } = useDialogContext();
|
|
2938
3400
|
const handleClick = (e) => {
|
|
2939
3401
|
onOpenChange(false);
|
|
2940
3402
|
onClick?.(e);
|
|
2941
3403
|
};
|
|
2942
|
-
return
|
|
3404
|
+
return React41.createElement(
|
|
2943
3405
|
"button",
|
|
2944
3406
|
{
|
|
2945
3407
|
ref,
|
|
@@ -3044,9 +3506,9 @@ var menuItemVariants = cva({
|
|
|
3044
3506
|
});
|
|
3045
3507
|
|
|
3046
3508
|
// ../react-dropdown-menu/dist/index.js
|
|
3047
|
-
var DropdownMenuContext =
|
|
3509
|
+
var DropdownMenuContext = React41.createContext(null);
|
|
3048
3510
|
function useDropdownMenuContext() {
|
|
3049
|
-
const ctx =
|
|
3511
|
+
const ctx = React41.useContext(DropdownMenuContext);
|
|
3050
3512
|
if (!ctx) {
|
|
3051
3513
|
throw new Error("DropdownMenu compound components must be used within <DropdownMenu>");
|
|
3052
3514
|
}
|
|
@@ -3058,10 +3520,10 @@ function DropdownMenu({
|
|
|
3058
3520
|
onOpenChange,
|
|
3059
3521
|
children
|
|
3060
3522
|
}) {
|
|
3061
|
-
const [uncontrolledOpen, setUncontrolledOpen] =
|
|
3523
|
+
const [uncontrolledOpen, setUncontrolledOpen] = React41.useState(defaultOpen);
|
|
3062
3524
|
const isControlled = controlledOpen !== void 0;
|
|
3063
3525
|
const open = isControlled ? controlledOpen : uncontrolledOpen;
|
|
3064
|
-
const handleOpenChange =
|
|
3526
|
+
const handleOpenChange = React41.useCallback(
|
|
3065
3527
|
(next) => {
|
|
3066
3528
|
if (!isControlled) {
|
|
3067
3529
|
setUncontrolledOpen(next);
|
|
@@ -3070,12 +3532,12 @@ function DropdownMenu({
|
|
|
3070
3532
|
},
|
|
3071
3533
|
[isControlled, onOpenChange]
|
|
3072
3534
|
);
|
|
3073
|
-
const apiRef =
|
|
3535
|
+
const apiRef = React41.useRef(null);
|
|
3074
3536
|
if (apiRef.current === null) {
|
|
3075
3537
|
apiRef.current = createDropdownMenu({ open });
|
|
3076
3538
|
}
|
|
3077
3539
|
const api = apiRef.current;
|
|
3078
|
-
const ctx =
|
|
3540
|
+
const ctx = React41.useMemo(
|
|
3079
3541
|
() => ({
|
|
3080
3542
|
open,
|
|
3081
3543
|
onOpenChange: handleOpenChange,
|
|
@@ -3083,17 +3545,17 @@ function DropdownMenu({
|
|
|
3083
3545
|
}),
|
|
3084
3546
|
[open, handleOpenChange, api.ids.content]
|
|
3085
3547
|
);
|
|
3086
|
-
return
|
|
3548
|
+
return React41.createElement(DropdownMenuContext.Provider, { value: ctx }, children);
|
|
3087
3549
|
}
|
|
3088
3550
|
DropdownMenu.displayName = "DropdownMenu";
|
|
3089
|
-
var DropdownMenuTrigger =
|
|
3551
|
+
var DropdownMenuTrigger = React41.forwardRef(
|
|
3090
3552
|
({ onClick, children, ...props }, ref) => {
|
|
3091
3553
|
const { open, onOpenChange, contentId } = useDropdownMenuContext();
|
|
3092
3554
|
const handleClick = (e) => {
|
|
3093
3555
|
onOpenChange(!open);
|
|
3094
3556
|
onClick?.(e);
|
|
3095
3557
|
};
|
|
3096
|
-
return
|
|
3558
|
+
return React41.createElement(
|
|
3097
3559
|
"button",
|
|
3098
3560
|
{
|
|
3099
3561
|
ref,
|
|
@@ -3109,7 +3571,7 @@ var DropdownMenuTrigger = React40.forwardRef(
|
|
|
3109
3571
|
}
|
|
3110
3572
|
);
|
|
3111
3573
|
DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
|
|
3112
|
-
var DropdownMenuContent =
|
|
3574
|
+
var DropdownMenuContent = React41.forwardRef(
|
|
3113
3575
|
({ className, children, onKeyDown, ...props }, ref) => {
|
|
3114
3576
|
const { open, onOpenChange, contentId } = useDropdownMenuContext();
|
|
3115
3577
|
const handleKeyDown = (e) => {
|
|
@@ -3123,7 +3585,7 @@ var DropdownMenuContent = React40.forwardRef(
|
|
|
3123
3585
|
onKeyDown?.(e);
|
|
3124
3586
|
};
|
|
3125
3587
|
if (!open) return null;
|
|
3126
|
-
const content =
|
|
3588
|
+
const content = React41.createElement(
|
|
3127
3589
|
"div",
|
|
3128
3590
|
{
|
|
3129
3591
|
ref,
|
|
@@ -3144,7 +3606,7 @@ var DropdownMenuContent = React40.forwardRef(
|
|
|
3144
3606
|
}
|
|
3145
3607
|
);
|
|
3146
3608
|
DropdownMenuContent.displayName = "DropdownMenuContent";
|
|
3147
|
-
var DropdownMenuItem =
|
|
3609
|
+
var DropdownMenuItem = React41.forwardRef(
|
|
3148
3610
|
({ className, disabled, onSelect, onClick, children, ...props }, ref) => {
|
|
3149
3611
|
const { onOpenChange } = useDropdownMenuContext();
|
|
3150
3612
|
const handleClick = (e) => {
|
|
@@ -3161,7 +3623,7 @@ var DropdownMenuItem = React40.forwardRef(
|
|
|
3161
3623
|
onOpenChange(false);
|
|
3162
3624
|
}
|
|
3163
3625
|
};
|
|
3164
|
-
return
|
|
3626
|
+
return React41.createElement(
|
|
3165
3627
|
"div",
|
|
3166
3628
|
{
|
|
3167
3629
|
ref,
|
|
@@ -3179,9 +3641,9 @@ var DropdownMenuItem = React40.forwardRef(
|
|
|
3179
3641
|
}
|
|
3180
3642
|
);
|
|
3181
3643
|
DropdownMenuItem.displayName = "DropdownMenuItem";
|
|
3182
|
-
var DropdownMenuSeparator =
|
|
3644
|
+
var DropdownMenuSeparator = React41.forwardRef(
|
|
3183
3645
|
({ className, ...props }, ref) => {
|
|
3184
|
-
return
|
|
3646
|
+
return React41.createElement("div", {
|
|
3185
3647
|
ref,
|
|
3186
3648
|
role: "separator",
|
|
3187
3649
|
className: cn("-mx-1 my-1 h-px bg-muted", className),
|
|
@@ -3190,9 +3652,9 @@ var DropdownMenuSeparator = React40.forwardRef(
|
|
|
3190
3652
|
}
|
|
3191
3653
|
);
|
|
3192
3654
|
DropdownMenuSeparator.displayName = "DropdownMenuSeparator";
|
|
3193
|
-
var DropdownMenuLabel =
|
|
3655
|
+
var DropdownMenuLabel = React41.forwardRef(
|
|
3194
3656
|
({ className, ...props }, ref) => {
|
|
3195
|
-
return
|
|
3657
|
+
return React41.createElement("div", {
|
|
3196
3658
|
ref,
|
|
3197
3659
|
className: cn("px-2 py-1.5 text-sm font-semibold", className),
|
|
3198
3660
|
...props
|
|
@@ -3304,15 +3766,15 @@ function FeedbackDialog({
|
|
|
3304
3766
|
type = "general",
|
|
3305
3767
|
className
|
|
3306
3768
|
}) {
|
|
3307
|
-
const [open, setOpen] =
|
|
3308
|
-
const [comment, setComment] =
|
|
3309
|
-
const [email, setEmail] =
|
|
3310
|
-
const [honeypot, setHoneypot] =
|
|
3311
|
-
const [isSubmitting, setIsSubmitting] =
|
|
3312
|
-
const [isSubmitted, setIsSubmitted] =
|
|
3769
|
+
const [open, setOpen] = React41.useState(controlledOpen ?? false);
|
|
3770
|
+
const [comment, setComment] = React41.useState("");
|
|
3771
|
+
const [email, setEmail] = React41.useState("");
|
|
3772
|
+
const [honeypot, setHoneypot] = React41.useState("");
|
|
3773
|
+
const [isSubmitting, setIsSubmitting] = React41.useState(false);
|
|
3774
|
+
const [isSubmitted, setIsSubmitted] = React41.useState(false);
|
|
3313
3775
|
const isControlled = controlledOpen !== void 0;
|
|
3314
3776
|
const isOpen = isControlled ? controlledOpen : open;
|
|
3315
|
-
const handleOpenChange =
|
|
3777
|
+
const handleOpenChange = React41.useCallback(
|
|
3316
3778
|
(next) => {
|
|
3317
3779
|
if (!isControlled) {
|
|
3318
3780
|
setOpen(next);
|
|
@@ -3321,11 +3783,11 @@ function FeedbackDialog({
|
|
|
3321
3783
|
},
|
|
3322
3784
|
[isControlled, onOpenChange]
|
|
3323
3785
|
);
|
|
3324
|
-
const apiRef =
|
|
3786
|
+
const apiRef = React41.useRef(null);
|
|
3325
3787
|
if (apiRef.current === null) {
|
|
3326
3788
|
apiRef.current = createFeedbackDialog({ open: isOpen, onOpenChange: handleOpenChange, onSubmit, type });
|
|
3327
3789
|
}
|
|
3328
|
-
const handleSubmit =
|
|
3790
|
+
const handleSubmit = React41.useCallback(async () => {
|
|
3329
3791
|
if (honeypot) return;
|
|
3330
3792
|
if (!comment.trim()) return;
|
|
3331
3793
|
setIsSubmitting(true);
|
|
@@ -3342,7 +3804,7 @@ function FeedbackDialog({
|
|
|
3342
3804
|
setIsSubmitting(false);
|
|
3343
3805
|
}
|
|
3344
3806
|
}, [comment, email, honeypot, type, onSubmit]);
|
|
3345
|
-
const handleReset =
|
|
3807
|
+
const handleReset = React41.useCallback(() => {
|
|
3346
3808
|
setComment("");
|
|
3347
3809
|
setEmail("");
|
|
3348
3810
|
setHoneypot("");
|
|
@@ -3352,15 +3814,15 @@ function FeedbackDialog({
|
|
|
3352
3814
|
if (!isOpen) return null;
|
|
3353
3815
|
const api = apiRef.current;
|
|
3354
3816
|
if (isSubmitted) {
|
|
3355
|
-
return
|
|
3817
|
+
return React41.createElement(
|
|
3356
3818
|
"div",
|
|
3357
3819
|
{
|
|
3358
3820
|
className: cn(feedbackDialogVariants({ type }), className),
|
|
3359
3821
|
...api.ariaProps,
|
|
3360
3822
|
"data-state": "submitted"
|
|
3361
3823
|
},
|
|
3362
|
-
|
|
3363
|
-
|
|
3824
|
+
React41.createElement("p", { "data-testid": "success-message" }, "Thank you for your feedback!"),
|
|
3825
|
+
React41.createElement(
|
|
3364
3826
|
"button",
|
|
3365
3827
|
{
|
|
3366
3828
|
type: "button",
|
|
@@ -3373,22 +3835,22 @@ function FeedbackDialog({
|
|
|
3373
3835
|
)
|
|
3374
3836
|
);
|
|
3375
3837
|
}
|
|
3376
|
-
return
|
|
3838
|
+
return React41.createElement(
|
|
3377
3839
|
"div",
|
|
3378
3840
|
{
|
|
3379
3841
|
className: cn(feedbackDialogVariants({ type }), className),
|
|
3380
3842
|
...api.ariaProps,
|
|
3381
3843
|
"data-state": "open"
|
|
3382
3844
|
},
|
|
3383
|
-
|
|
3384
|
-
|
|
3845
|
+
React41.createElement("h2", { id: `${api.ariaProps.id}-title` }, "Send Feedback"),
|
|
3846
|
+
React41.createElement("textarea", {
|
|
3385
3847
|
"aria-label": "Feedback comment",
|
|
3386
3848
|
value: comment,
|
|
3387
3849
|
onChange: (e) => setComment(e.target.value),
|
|
3388
3850
|
placeholder: "Your feedback...",
|
|
3389
3851
|
disabled: isSubmitting
|
|
3390
3852
|
}),
|
|
3391
|
-
|
|
3853
|
+
React41.createElement("input", {
|
|
3392
3854
|
type: "email",
|
|
3393
3855
|
"aria-label": "Email",
|
|
3394
3856
|
value: email,
|
|
@@ -3397,7 +3859,7 @@ function FeedbackDialog({
|
|
|
3397
3859
|
disabled: isSubmitting
|
|
3398
3860
|
}),
|
|
3399
3861
|
// Honeypot field — hidden from real users
|
|
3400
|
-
|
|
3862
|
+
React41.createElement("input", {
|
|
3401
3863
|
type: "text",
|
|
3402
3864
|
"aria-hidden": true,
|
|
3403
3865
|
tabIndex: -1,
|
|
@@ -3407,7 +3869,7 @@ function FeedbackDialog({
|
|
|
3407
3869
|
autoComplete: "off",
|
|
3408
3870
|
name: "website"
|
|
3409
3871
|
}),
|
|
3410
|
-
|
|
3872
|
+
React41.createElement(
|
|
3411
3873
|
"button",
|
|
3412
3874
|
{
|
|
3413
3875
|
type: "button",
|
|
@@ -3419,9 +3881,9 @@ function FeedbackDialog({
|
|
|
3419
3881
|
);
|
|
3420
3882
|
}
|
|
3421
3883
|
FeedbackDialog.displayName = "FeedbackDialog";
|
|
3422
|
-
var FeedbackButton =
|
|
3884
|
+
var FeedbackButton = React41.forwardRef(
|
|
3423
3885
|
({ children, ...props }, ref) => {
|
|
3424
|
-
return
|
|
3886
|
+
return React41.createElement(
|
|
3425
3887
|
"button",
|
|
3426
3888
|
{
|
|
3427
3889
|
ref,
|
|
@@ -3448,7 +3910,7 @@ function createFooter(props = {}) {
|
|
|
3448
3910
|
var footerVariants = cva({
|
|
3449
3911
|
base: "border-t bg-background py-8"
|
|
3450
3912
|
});
|
|
3451
|
-
var Footer =
|
|
3913
|
+
var Footer = React41.forwardRef(
|
|
3452
3914
|
({
|
|
3453
3915
|
copyright,
|
|
3454
3916
|
socialLinks = [],
|
|
@@ -3586,34 +4048,34 @@ function InlineEditor({
|
|
|
3586
4048
|
onCancel,
|
|
3587
4049
|
className
|
|
3588
4050
|
}) {
|
|
3589
|
-
const [isEditing, setIsEditing] =
|
|
3590
|
-
const [editValue, setEditValue] =
|
|
3591
|
-
const apiRef =
|
|
4051
|
+
const [isEditing, setIsEditing] = React41.useState(false);
|
|
4052
|
+
const [editValue, setEditValue] = React41.useState(initialValue);
|
|
4053
|
+
const apiRef = React41.useRef(null);
|
|
3592
4054
|
if (apiRef.current === null) {
|
|
3593
4055
|
apiRef.current = createInlineEditor({ value: initialValue, onSave, onCancel });
|
|
3594
4056
|
}
|
|
3595
4057
|
const api = apiRef.current;
|
|
3596
|
-
const handleStartEditing =
|
|
4058
|
+
const handleStartEditing = React41.useCallback(() => {
|
|
3597
4059
|
setIsEditing(true);
|
|
3598
4060
|
setEditValue(initialValue);
|
|
3599
4061
|
}, [initialValue]);
|
|
3600
|
-
const handleCancel =
|
|
4062
|
+
const handleCancel = React41.useCallback(() => {
|
|
3601
4063
|
setIsEditing(false);
|
|
3602
4064
|
setEditValue(initialValue);
|
|
3603
4065
|
onCancel?.();
|
|
3604
4066
|
}, [initialValue, onCancel]);
|
|
3605
|
-
const handleSave =
|
|
4067
|
+
const handleSave = React41.useCallback(() => {
|
|
3606
4068
|
setIsEditing(false);
|
|
3607
4069
|
onSave?.(editValue);
|
|
3608
4070
|
}, [editValue, onSave]);
|
|
3609
|
-
const handleInsert =
|
|
4071
|
+
const handleInsert = React41.useCallback(
|
|
3610
4072
|
(syntax) => {
|
|
3611
4073
|
setEditValue((prev) => prev + syntax);
|
|
3612
4074
|
},
|
|
3613
4075
|
[]
|
|
3614
4076
|
);
|
|
3615
4077
|
if (!isEditing) {
|
|
3616
|
-
return
|
|
4078
|
+
return React41.createElement(
|
|
3617
4079
|
"div",
|
|
3618
4080
|
{
|
|
3619
4081
|
className: cn(editorVariants({ state: "viewing" }), className),
|
|
@@ -3628,20 +4090,20 @@ function InlineEditor({
|
|
|
3628
4090
|
}
|
|
3629
4091
|
}
|
|
3630
4092
|
},
|
|
3631
|
-
|
|
4093
|
+
React41.createElement("div", { className: previewVariants() }, editValue || initialValue)
|
|
3632
4094
|
);
|
|
3633
4095
|
}
|
|
3634
|
-
return
|
|
4096
|
+
return React41.createElement(
|
|
3635
4097
|
"div",
|
|
3636
4098
|
{
|
|
3637
4099
|
className: cn(editorVariants({ state: "editing" }), className)
|
|
3638
4100
|
},
|
|
3639
4101
|
// Toolbar
|
|
3640
|
-
|
|
4102
|
+
React41.createElement(
|
|
3641
4103
|
"div",
|
|
3642
4104
|
{ className: toolbarVariants(), role: "toolbar", "aria-label": "Formatting toolbar" },
|
|
3643
4105
|
...api.toolbarActions.map(
|
|
3644
|
-
(action) =>
|
|
4106
|
+
(action) => React41.createElement(
|
|
3645
4107
|
"button",
|
|
3646
4108
|
{
|
|
3647
4109
|
key: action.name,
|
|
@@ -3655,16 +4117,16 @@ function InlineEditor({
|
|
|
3655
4117
|
)
|
|
3656
4118
|
),
|
|
3657
4119
|
// Editor area: side-by-side textarea + preview
|
|
3658
|
-
|
|
4120
|
+
React41.createElement(
|
|
3659
4121
|
"div",
|
|
3660
4122
|
{ className: "flex gap-2 p-2" },
|
|
3661
|
-
|
|
4123
|
+
React41.createElement("textarea", {
|
|
3662
4124
|
value: editValue,
|
|
3663
4125
|
onChange: (e) => setEditValue(e.target.value),
|
|
3664
4126
|
className: "flex-1 min-h-[100px] resize-y border rounded p-2",
|
|
3665
4127
|
"aria-label": "Editor content"
|
|
3666
4128
|
}),
|
|
3667
|
-
|
|
4129
|
+
React41.createElement(
|
|
3668
4130
|
"div",
|
|
3669
4131
|
{
|
|
3670
4132
|
className: cn("flex-1", previewVariants()),
|
|
@@ -3674,15 +4136,15 @@ function InlineEditor({
|
|
|
3674
4136
|
)
|
|
3675
4137
|
),
|
|
3676
4138
|
// Action buttons
|
|
3677
|
-
|
|
4139
|
+
React41.createElement(
|
|
3678
4140
|
"div",
|
|
3679
4141
|
{ className: "flex justify-end gap-2 p-2 border-t" },
|
|
3680
|
-
|
|
4142
|
+
React41.createElement(
|
|
3681
4143
|
"button",
|
|
3682
4144
|
{ type: "button", onClick: handleCancel },
|
|
3683
4145
|
"Cancel"
|
|
3684
4146
|
),
|
|
3685
|
-
|
|
4147
|
+
React41.createElement(
|
|
3686
4148
|
"button",
|
|
3687
4149
|
{ type: "button", onClick: handleSave },
|
|
3688
4150
|
"Save"
|
|
@@ -3738,7 +4200,7 @@ var inputVariants = cva({
|
|
|
3738
4200
|
size: "default"
|
|
3739
4201
|
}
|
|
3740
4202
|
});
|
|
3741
|
-
var Input =
|
|
4203
|
+
var Input = React41.forwardRef(
|
|
3742
4204
|
({ type = "text", size, className, disabled, readOnly, required, "aria-invalid": ariaInvalid, ...props }, ref) => {
|
|
3743
4205
|
const api = createInput({
|
|
3744
4206
|
disabled,
|
|
@@ -3831,7 +4293,7 @@ var inputGroupButtonVariants = cva({
|
|
|
3831
4293
|
orientation: "horizontal"
|
|
3832
4294
|
}
|
|
3833
4295
|
});
|
|
3834
|
-
var InputGroup =
|
|
4296
|
+
var InputGroup = React41.forwardRef(
|
|
3835
4297
|
({ orientation = "horizontal", className, children, ...props }, ref) => {
|
|
3836
4298
|
const api = createInputGroup({
|
|
3837
4299
|
orientation,
|
|
@@ -3853,7 +4315,7 @@ var InputGroup = React40.forwardRef(
|
|
|
3853
4315
|
}
|
|
3854
4316
|
);
|
|
3855
4317
|
InputGroup.displayName = "InputGroup";
|
|
3856
|
-
var InputGroupAddon =
|
|
4318
|
+
var InputGroupAddon = React41.forwardRef(
|
|
3857
4319
|
({ orientation = "horizontal", className, children, ...props }, ref) => {
|
|
3858
4320
|
return /* @__PURE__ */ jsx(
|
|
3859
4321
|
"div",
|
|
@@ -3867,7 +4329,7 @@ var InputGroupAddon = React40.forwardRef(
|
|
|
3867
4329
|
}
|
|
3868
4330
|
);
|
|
3869
4331
|
InputGroupAddon.displayName = "InputGroupAddon";
|
|
3870
|
-
var InputGroupText =
|
|
4332
|
+
var InputGroupText = React41.forwardRef(
|
|
3871
4333
|
({ className, children, ...props }, ref) => {
|
|
3872
4334
|
return /* @__PURE__ */ jsx(
|
|
3873
4335
|
"span",
|
|
@@ -3881,7 +4343,7 @@ var InputGroupText = React40.forwardRef(
|
|
|
3881
4343
|
}
|
|
3882
4344
|
);
|
|
3883
4345
|
InputGroupText.displayName = "InputGroupText";
|
|
3884
|
-
var InputGroupButton =
|
|
4346
|
+
var InputGroupButton = React41.forwardRef(
|
|
3885
4347
|
({ orientation = "horizontal", className, children, ...props }, ref) => {
|
|
3886
4348
|
return /* @__PURE__ */ jsx(
|
|
3887
4349
|
"button",
|
|
@@ -3947,7 +4409,7 @@ function createLocalStorage() {
|
|
|
3947
4409
|
}
|
|
3948
4410
|
};
|
|
3949
4411
|
}
|
|
3950
|
-
var InstallPrompt =
|
|
4412
|
+
var InstallPrompt = React41.forwardRef(
|
|
3951
4413
|
({
|
|
3952
4414
|
delay = 3e3,
|
|
3953
4415
|
storageKey,
|
|
@@ -3957,14 +4419,14 @@ var InstallPrompt = React40.forwardRef(
|
|
|
3957
4419
|
className,
|
|
3958
4420
|
...props
|
|
3959
4421
|
}, ref) => {
|
|
3960
|
-
const storageRef =
|
|
4422
|
+
const storageRef = React41.useRef(void 0);
|
|
3961
4423
|
if (typeof window !== "undefined" && !storageRef.current) {
|
|
3962
4424
|
storageRef.current = createLocalStorage();
|
|
3963
4425
|
}
|
|
3964
4426
|
const api = createInstallPrompt({ storageKey }, storageRef.current);
|
|
3965
|
-
const [visible, setVisible] =
|
|
3966
|
-
const promptEventRef =
|
|
3967
|
-
|
|
4427
|
+
const [visible, setVisible] = React41.useState(false);
|
|
4428
|
+
const promptEventRef = React41.useRef(null);
|
|
4429
|
+
React41.useEffect(() => {
|
|
3968
4430
|
if (api.state.isDismissed) return;
|
|
3969
4431
|
const handleBeforeInstall = (e) => {
|
|
3970
4432
|
e.preventDefault();
|
|
@@ -4205,7 +4667,7 @@ function sanitizeHtml(html) {
|
|
|
4205
4667
|
sanitized = sanitized.replace(/(href|src)\s*=\s*["']?\s*javascript\s*:[^"'>]*/gi, '$1=""');
|
|
4206
4668
|
return sanitized;
|
|
4207
4669
|
}
|
|
4208
|
-
var MarkdownRenderer =
|
|
4670
|
+
var MarkdownRenderer = React41.forwardRef(
|
|
4209
4671
|
({ content, components, linkResolver, className, size }, ref) => {
|
|
4210
4672
|
const coreProps = { content, components, linkResolver };
|
|
4211
4673
|
const api = createMarkdownRenderer(coreProps);
|
|
@@ -4294,20 +4756,20 @@ var mobileNavLinkVariants = cva({
|
|
|
4294
4756
|
base: "block w-full px-4 py-2 text-sm transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2",
|
|
4295
4757
|
variants: {}
|
|
4296
4758
|
});
|
|
4297
|
-
var MobileNavContext =
|
|
4759
|
+
var MobileNavContext = React41.createContext(null);
|
|
4298
4760
|
function useMobileNavContext() {
|
|
4299
|
-
const ctx =
|
|
4761
|
+
const ctx = React41.useContext(MobileNavContext);
|
|
4300
4762
|
if (!ctx) {
|
|
4301
4763
|
throw new Error("MobileNav compound components must be used within <MobileNav>");
|
|
4302
4764
|
}
|
|
4303
4765
|
return ctx;
|
|
4304
4766
|
}
|
|
4305
|
-
var MobileNav =
|
|
4767
|
+
var MobileNav = React41.forwardRef(
|
|
4306
4768
|
({ open: controlledOpen, onOpenChange, defaultOpen = false, className, children, ...props }, ref) => {
|
|
4307
|
-
const [uncontrolledOpen, setUncontrolledOpen] =
|
|
4769
|
+
const [uncontrolledOpen, setUncontrolledOpen] = React41.useState(defaultOpen);
|
|
4308
4770
|
const isControlled = controlledOpen !== void 0;
|
|
4309
4771
|
const open = isControlled ? controlledOpen : uncontrolledOpen;
|
|
4310
|
-
const setOpen =
|
|
4772
|
+
const setOpen = React41.useCallback(
|
|
4311
4773
|
(value) => {
|
|
4312
4774
|
if (!isControlled) {
|
|
4313
4775
|
setUncontrolledOpen(value);
|
|
@@ -4317,11 +4779,11 @@ var MobileNav = React40.forwardRef(
|
|
|
4317
4779
|
[isControlled, onOpenChange]
|
|
4318
4780
|
);
|
|
4319
4781
|
const api = createMobileNav({ open, onOpenChange: setOpen, id: props.id });
|
|
4320
|
-
const handleKeyDown =
|
|
4782
|
+
const handleKeyDown = React41.useMemo(
|
|
4321
4783
|
() => createKeyboardHandler(api.keyboardHandlers),
|
|
4322
4784
|
[open]
|
|
4323
4785
|
);
|
|
4324
|
-
const contextValue =
|
|
4786
|
+
const contextValue = React41.useMemo(
|
|
4325
4787
|
() => ({ open, setOpen, contentId: api.contentProps.id }),
|
|
4326
4788
|
[open, setOpen, api.contentProps.id]
|
|
4327
4789
|
);
|
|
@@ -4338,7 +4800,7 @@ var MobileNav = React40.forwardRef(
|
|
|
4338
4800
|
}
|
|
4339
4801
|
);
|
|
4340
4802
|
MobileNav.displayName = "MobileNav";
|
|
4341
|
-
var MobileNavTrigger =
|
|
4803
|
+
var MobileNavTrigger = React41.forwardRef(
|
|
4342
4804
|
({ className, children, ...props }, ref) => {
|
|
4343
4805
|
const { open, setOpen, contentId } = useMobileNavContext();
|
|
4344
4806
|
return /* @__PURE__ */ jsx(
|
|
@@ -4379,7 +4841,7 @@ var MobileNavTrigger = React40.forwardRef(
|
|
|
4379
4841
|
}
|
|
4380
4842
|
);
|
|
4381
4843
|
MobileNavTrigger.displayName = "MobileNavTrigger";
|
|
4382
|
-
var MobileNavContent =
|
|
4844
|
+
var MobileNavContent = React41.forwardRef(
|
|
4383
4845
|
({ className, children, ...props }, ref) => {
|
|
4384
4846
|
const { open, contentId } = useMobileNavContext();
|
|
4385
4847
|
const state = open ? "open" : "closed";
|
|
@@ -4398,7 +4860,7 @@ var MobileNavContent = React40.forwardRef(
|
|
|
4398
4860
|
}
|
|
4399
4861
|
);
|
|
4400
4862
|
MobileNavContent.displayName = "MobileNavContent";
|
|
4401
|
-
var MobileNavLink =
|
|
4863
|
+
var MobileNavLink = React41.forwardRef(
|
|
4402
4864
|
({ className, children, ...props }, ref) => {
|
|
4403
4865
|
return /* @__PURE__ */ jsx(
|
|
4404
4866
|
"a",
|
|
@@ -4457,7 +4919,7 @@ var navLinkVariants = cva({
|
|
|
4457
4919
|
active: "false"
|
|
4458
4920
|
}
|
|
4459
4921
|
});
|
|
4460
|
-
var Navbar =
|
|
4922
|
+
var Navbar = React41.forwardRef(
|
|
4461
4923
|
({
|
|
4462
4924
|
links = [],
|
|
4463
4925
|
currentPath,
|
|
@@ -4552,19 +5014,19 @@ var popoverContentVariants = cva({
|
|
|
4552
5014
|
side: "bottom"
|
|
4553
5015
|
}
|
|
4554
5016
|
});
|
|
4555
|
-
var PopoverContext =
|
|
5017
|
+
var PopoverContext = React41.createContext(null);
|
|
4556
5018
|
function usePopoverContext() {
|
|
4557
|
-
const ctx =
|
|
5019
|
+
const ctx = React41.useContext(PopoverContext);
|
|
4558
5020
|
if (!ctx) {
|
|
4559
5021
|
throw new Error("Popover compound components must be used within <Popover>");
|
|
4560
5022
|
}
|
|
4561
5023
|
return ctx;
|
|
4562
5024
|
}
|
|
4563
5025
|
function Popover({ open: controlledOpen, defaultOpen = false, onOpenChange, placement, children }) {
|
|
4564
|
-
const [internalOpen, setInternalOpen] =
|
|
5026
|
+
const [internalOpen, setInternalOpen] = React41.useState(controlledOpen ?? defaultOpen);
|
|
4565
5027
|
const isControlled = controlledOpen !== void 0;
|
|
4566
5028
|
const isOpen = isControlled ? controlledOpen : internalOpen;
|
|
4567
|
-
const handleOpenChange =
|
|
5029
|
+
const handleOpenChange = React41.useCallback(
|
|
4568
5030
|
(value) => {
|
|
4569
5031
|
if (!isControlled) {
|
|
4570
5032
|
setInternalOpen(value);
|
|
@@ -4573,18 +5035,18 @@ function Popover({ open: controlledOpen, defaultOpen = false, onOpenChange, plac
|
|
|
4573
5035
|
},
|
|
4574
5036
|
[isControlled, onOpenChange]
|
|
4575
5037
|
);
|
|
4576
|
-
const api =
|
|
5038
|
+
const api = React41.useMemo(
|
|
4577
5039
|
() => createPopover({ open: isOpen, onOpenChange: handleOpenChange, placement }),
|
|
4578
5040
|
[isOpen, handleOpenChange, placement]
|
|
4579
5041
|
);
|
|
4580
|
-
const ctx =
|
|
5042
|
+
const ctx = React41.useMemo(
|
|
4581
5043
|
() => ({ api, open: isOpen, setOpen: handleOpenChange }),
|
|
4582
5044
|
[api, isOpen, handleOpenChange]
|
|
4583
5045
|
);
|
|
4584
|
-
return
|
|
5046
|
+
return React41.createElement(PopoverContext.Provider, { value: ctx }, children);
|
|
4585
5047
|
}
|
|
4586
5048
|
Popover.displayName = "Popover";
|
|
4587
|
-
var PopoverTrigger =
|
|
5049
|
+
var PopoverTrigger = React41.forwardRef(
|
|
4588
5050
|
({ onClick, children, ...props }, ref) => {
|
|
4589
5051
|
const { api, setOpen, open } = usePopoverContext();
|
|
4590
5052
|
const handleClick = (e) => {
|
|
@@ -4607,7 +5069,7 @@ var PopoverTrigger = React40.forwardRef(
|
|
|
4607
5069
|
}
|
|
4608
5070
|
);
|
|
4609
5071
|
PopoverTrigger.displayName = "PopoverTrigger";
|
|
4610
|
-
var PopoverContent =
|
|
5072
|
+
var PopoverContent = React41.forwardRef(
|
|
4611
5073
|
({ side, className, children, onKeyDown, ...props }, ref) => {
|
|
4612
5074
|
const { api, open, setOpen } = usePopoverContext();
|
|
4613
5075
|
const handleKeyDown = (e) => {
|
|
@@ -4636,7 +5098,7 @@ var PopoverContent = React40.forwardRef(
|
|
|
4636
5098
|
}
|
|
4637
5099
|
);
|
|
4638
5100
|
PopoverContent.displayName = "PopoverContent";
|
|
4639
|
-
var PopoverClose =
|
|
5101
|
+
var PopoverClose = React41.forwardRef(
|
|
4640
5102
|
({ onClick, children, ...props }, ref) => {
|
|
4641
5103
|
const { setOpen } = usePopoverContext();
|
|
4642
5104
|
const handleClick = (e) => {
|
|
@@ -4757,9 +5219,9 @@ var searchResultVariants = cva({
|
|
|
4757
5219
|
});
|
|
4758
5220
|
|
|
4759
5221
|
// ../react-search-bar/dist/index.js
|
|
4760
|
-
var SearchBarContext =
|
|
5222
|
+
var SearchBarContext = React41.createContext(null);
|
|
4761
5223
|
function useSearchBarContext() {
|
|
4762
|
-
const ctx =
|
|
5224
|
+
const ctx = React41.useContext(SearchBarContext);
|
|
4763
5225
|
if (!ctx) {
|
|
4764
5226
|
throw new Error("SearchBar compound components must be used within <SearchBar>");
|
|
4765
5227
|
}
|
|
@@ -4777,11 +5239,11 @@ function SearchBar({
|
|
|
4777
5239
|
children,
|
|
4778
5240
|
...inputProps
|
|
4779
5241
|
}) {
|
|
4780
|
-
const [internalValue, setInternalValue] =
|
|
5242
|
+
const [internalValue, setInternalValue] = React41.useState(controlledValue ?? defaultValue);
|
|
4781
5243
|
const isControlled = controlledValue !== void 0;
|
|
4782
5244
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
4783
|
-
const debounceRef =
|
|
4784
|
-
const handleValueChange =
|
|
5245
|
+
const debounceRef = React41.useRef(void 0);
|
|
5246
|
+
const handleValueChange = React41.useCallback(
|
|
4785
5247
|
(val) => {
|
|
4786
5248
|
if (!isControlled) {
|
|
4787
5249
|
setInternalValue(val);
|
|
@@ -4790,8 +5252,8 @@ function SearchBar({
|
|
|
4790
5252
|
},
|
|
4791
5253
|
[isControlled, onValueChange]
|
|
4792
5254
|
);
|
|
4793
|
-
const [isSearching, setIsSearching] =
|
|
4794
|
-
const handleSearch =
|
|
5255
|
+
const [isSearching, setIsSearching] = React41.useState(loading);
|
|
5256
|
+
const handleSearch = React41.useCallback(
|
|
4795
5257
|
(val) => {
|
|
4796
5258
|
if (debounceRef.current !== void 0) {
|
|
4797
5259
|
clearTimeout(debounceRef.current);
|
|
@@ -4808,7 +5270,7 @@ function SearchBar({
|
|
|
4808
5270
|
},
|
|
4809
5271
|
[onSearch, debounceMs]
|
|
4810
5272
|
);
|
|
4811
|
-
const handleChange =
|
|
5273
|
+
const handleChange = React41.useCallback(
|
|
4812
5274
|
(e) => {
|
|
4813
5275
|
const val = e.target.value;
|
|
4814
5276
|
handleValueChange(val);
|
|
@@ -4816,14 +5278,14 @@ function SearchBar({
|
|
|
4816
5278
|
},
|
|
4817
5279
|
[handleValueChange, handleSearch]
|
|
4818
5280
|
);
|
|
4819
|
-
const clear =
|
|
5281
|
+
const clear = React41.useCallback(() => {
|
|
4820
5282
|
if (debounceRef.current !== void 0) {
|
|
4821
5283
|
clearTimeout(debounceRef.current);
|
|
4822
5284
|
}
|
|
4823
5285
|
handleValueChange("");
|
|
4824
5286
|
setIsSearching(false);
|
|
4825
5287
|
}, [handleValueChange]);
|
|
4826
|
-
const api =
|
|
5288
|
+
const api = React41.useMemo(
|
|
4827
5289
|
() => createSearchBar({
|
|
4828
5290
|
value: currentValue,
|
|
4829
5291
|
onValueChange: handleValueChange,
|
|
@@ -4834,7 +5296,7 @@ function SearchBar({
|
|
|
4834
5296
|
}),
|
|
4835
5297
|
[currentValue, handleValueChange, onSearch, debounceMs, placeholder, loading]
|
|
4836
5298
|
);
|
|
4837
|
-
const handleKeyDown =
|
|
5299
|
+
const handleKeyDown = React41.useCallback(
|
|
4838
5300
|
(e) => {
|
|
4839
5301
|
if (e.key === "Escape") {
|
|
4840
5302
|
clear();
|
|
@@ -4848,18 +5310,18 @@ function SearchBar({
|
|
|
4848
5310
|
},
|
|
4849
5311
|
[clear, onSearch, currentValue]
|
|
4850
5312
|
);
|
|
4851
|
-
const ctx =
|
|
5313
|
+
const ctx = React41.useMemo(
|
|
4852
5314
|
() => ({ api, value: currentValue, isSearching, setValue: handleValueChange, clear }),
|
|
4853
5315
|
[api, currentValue, isSearching, handleValueChange, clear]
|
|
4854
5316
|
);
|
|
4855
|
-
return
|
|
5317
|
+
return React41.createElement(
|
|
4856
5318
|
SearchBarContext.Provider,
|
|
4857
5319
|
{ value: ctx },
|
|
4858
|
-
|
|
5320
|
+
React41.createElement(
|
|
4859
5321
|
"div",
|
|
4860
5322
|
{ className: cn(searchBarVariants(), className) },
|
|
4861
|
-
|
|
4862
|
-
|
|
5323
|
+
React41.createElement("span", { className: "rfr-search-icon", "aria-hidden": "true" }, "\u{1F50D}"),
|
|
5324
|
+
React41.createElement("input", {
|
|
4863
5325
|
...inputProps,
|
|
4864
5326
|
role: api.inputProps.role,
|
|
4865
5327
|
"aria-expanded": api.inputProps["aria-expanded"],
|
|
@@ -4871,8 +5333,8 @@ function SearchBar({
|
|
|
4871
5333
|
onKeyDown: handleKeyDown,
|
|
4872
5334
|
className: "rfr-search-input flex-1 bg-transparent outline-none"
|
|
4873
5335
|
}),
|
|
4874
|
-
isSearching &&
|
|
4875
|
-
currentValue.length > 0 && !isSearching &&
|
|
5336
|
+
isSearching && React41.createElement("span", { className: "rfr-search-spinner", "aria-label": "Loading" }, "\u23F3"),
|
|
5337
|
+
currentValue.length > 0 && !isSearching && React41.createElement(
|
|
4876
5338
|
"button",
|
|
4877
5339
|
{
|
|
4878
5340
|
type: "button",
|
|
@@ -4887,11 +5349,11 @@ function SearchBar({
|
|
|
4887
5349
|
);
|
|
4888
5350
|
}
|
|
4889
5351
|
SearchBar.displayName = "SearchBar";
|
|
4890
|
-
var SearchResults =
|
|
5352
|
+
var SearchResults = React41.forwardRef(
|
|
4891
5353
|
({ className, children, ...props }, ref) => {
|
|
4892
5354
|
const { api, value } = useSearchBarContext();
|
|
4893
5355
|
if (value.length === 0) return null;
|
|
4894
|
-
return
|
|
5356
|
+
return React41.createElement(
|
|
4895
5357
|
"ul",
|
|
4896
5358
|
{
|
|
4897
5359
|
ref,
|
|
@@ -4905,9 +5367,9 @@ var SearchResults = React40.forwardRef(
|
|
|
4905
5367
|
}
|
|
4906
5368
|
);
|
|
4907
5369
|
SearchResults.displayName = "SearchResults";
|
|
4908
|
-
var SearchResultItem =
|
|
5370
|
+
var SearchResultItem = React41.forwardRef(
|
|
4909
5371
|
({ className, children, ...props }, ref) => {
|
|
4910
|
-
return
|
|
5372
|
+
return React41.createElement(
|
|
4911
5373
|
"li",
|
|
4912
5374
|
{
|
|
4913
5375
|
ref,
|
|
@@ -4968,7 +5430,7 @@ var sidebarItemVariants = cva({
|
|
|
4968
5430
|
active: "false"
|
|
4969
5431
|
}
|
|
4970
5432
|
});
|
|
4971
|
-
var Sidebar =
|
|
5433
|
+
var Sidebar = React41.forwardRef(
|
|
4972
5434
|
({
|
|
4973
5435
|
sections = [],
|
|
4974
5436
|
currentPath,
|
|
@@ -5038,7 +5500,7 @@ var skeletonVariants = cva({
|
|
|
5038
5500
|
});
|
|
5039
5501
|
|
|
5040
5502
|
// ../react-skeleton/dist/index.js
|
|
5041
|
-
var Skeleton =
|
|
5503
|
+
var Skeleton = React41.forwardRef(
|
|
5042
5504
|
({ shape, width, height, animate, className, style, ...props }, ref) => {
|
|
5043
5505
|
const api = createSkeleton({ shape, animate });
|
|
5044
5506
|
const classes = cn(skeletonVariants({ shape }), className);
|
|
@@ -5047,7 +5509,7 @@ var Skeleton = React40.forwardRef(
|
|
|
5047
5509
|
...width !== void 0 ? { width } : {},
|
|
5048
5510
|
...height !== void 0 ? { height } : {}
|
|
5049
5511
|
};
|
|
5050
|
-
return
|
|
5512
|
+
return React41.createElement("div", {
|
|
5051
5513
|
ref,
|
|
5052
5514
|
className: classes,
|
|
5053
5515
|
style: Object.keys(mergedStyle).length > 0 ? mergedStyle : void 0,
|
|
@@ -5059,13 +5521,13 @@ var Skeleton = React40.forwardRef(
|
|
|
5059
5521
|
);
|
|
5060
5522
|
Skeleton.displayName = "Skeleton";
|
|
5061
5523
|
var lineWidths = ["100%", "92%", "85%", "96%", "78%", "88%", "94%", "82%"];
|
|
5062
|
-
var SkeletonText =
|
|
5524
|
+
var SkeletonText = React41.forwardRef(
|
|
5063
5525
|
({ lines = 3, animate, className, ...props }, ref) => {
|
|
5064
5526
|
const children = [];
|
|
5065
5527
|
for (let i = 0; i < lines; i++) {
|
|
5066
5528
|
const width = lineWidths[i % lineWidths.length];
|
|
5067
5529
|
children.push(
|
|
5068
|
-
|
|
5530
|
+
React41.createElement(Skeleton, {
|
|
5069
5531
|
key: i,
|
|
5070
5532
|
shape: "text",
|
|
5071
5533
|
width,
|
|
@@ -5073,7 +5535,7 @@ var SkeletonText = React40.forwardRef(
|
|
|
5073
5535
|
})
|
|
5074
5536
|
);
|
|
5075
5537
|
}
|
|
5076
|
-
return
|
|
5538
|
+
return React41.createElement(
|
|
5077
5539
|
"div",
|
|
5078
5540
|
{
|
|
5079
5541
|
ref,
|
|
@@ -5174,16 +5636,16 @@ function createTabs(props = {}) {
|
|
|
5174
5636
|
};
|
|
5175
5637
|
}
|
|
5176
5638
|
var tabsListVariants = cva({
|
|
5177
|
-
base: "inline-flex items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground"
|
|
5639
|
+
base: "inline-flex max-w-full overflow-x-auto items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground"
|
|
5178
5640
|
});
|
|
5179
5641
|
var tabsTriggerVariants = cva({
|
|
5180
5642
|
base: "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow"
|
|
5181
5643
|
});
|
|
5182
5644
|
|
|
5183
5645
|
// ../react-tabs/dist/index.js
|
|
5184
|
-
var TabsContext =
|
|
5646
|
+
var TabsContext = React41.createContext(null);
|
|
5185
5647
|
function useTabsContext() {
|
|
5186
|
-
const ctx =
|
|
5648
|
+
const ctx = React41.useContext(TabsContext);
|
|
5187
5649
|
if (!ctx) {
|
|
5188
5650
|
throw new Error("Tabs compound components must be used within <Tabs>");
|
|
5189
5651
|
}
|
|
@@ -5197,10 +5659,10 @@ function Tabs({
|
|
|
5197
5659
|
className,
|
|
5198
5660
|
children
|
|
5199
5661
|
}) {
|
|
5200
|
-
const [uncontrolledValue, setUncontrolledValue] =
|
|
5662
|
+
const [uncontrolledValue, setUncontrolledValue] = React41.useState(defaultValue);
|
|
5201
5663
|
const isControlled = controlledValue !== void 0;
|
|
5202
5664
|
const value = isControlled ? controlledValue : uncontrolledValue;
|
|
5203
|
-
const handleValueChange =
|
|
5665
|
+
const handleValueChange = React41.useCallback(
|
|
5204
5666
|
(next) => {
|
|
5205
5667
|
if (!isControlled) {
|
|
5206
5668
|
setUncontrolledValue(next);
|
|
@@ -5209,12 +5671,12 @@ function Tabs({
|
|
|
5209
5671
|
},
|
|
5210
5672
|
[isControlled, onValueChange]
|
|
5211
5673
|
);
|
|
5212
|
-
const apiRef =
|
|
5674
|
+
const apiRef = React41.useRef(null);
|
|
5213
5675
|
if (apiRef.current === null) {
|
|
5214
5676
|
apiRef.current = createTabs({ value, orientation });
|
|
5215
5677
|
}
|
|
5216
5678
|
const api = apiRef.current;
|
|
5217
|
-
const ctx =
|
|
5679
|
+
const ctx = React41.useMemo(
|
|
5218
5680
|
() => ({
|
|
5219
5681
|
value,
|
|
5220
5682
|
onValueChange: handleValueChange,
|
|
@@ -5223,17 +5685,17 @@ function Tabs({
|
|
|
5223
5685
|
}),
|
|
5224
5686
|
[value, handleValueChange, orientation, api.idPrefix]
|
|
5225
5687
|
);
|
|
5226
|
-
return
|
|
5688
|
+
return React41.createElement(
|
|
5227
5689
|
"div",
|
|
5228
5690
|
{ className, "data-orientation": orientation },
|
|
5229
|
-
|
|
5691
|
+
React41.createElement(TabsContext.Provider, { value: ctx }, children)
|
|
5230
5692
|
);
|
|
5231
5693
|
}
|
|
5232
5694
|
Tabs.displayName = "Tabs";
|
|
5233
|
-
var TabsList =
|
|
5695
|
+
var TabsList = React41.forwardRef(
|
|
5234
5696
|
({ className, ...props }, ref) => {
|
|
5235
5697
|
const { orientation } = useTabsContext();
|
|
5236
|
-
return
|
|
5698
|
+
return React41.createElement("div", {
|
|
5237
5699
|
ref,
|
|
5238
5700
|
role: "tablist",
|
|
5239
5701
|
"aria-orientation": orientation,
|
|
@@ -5243,7 +5705,7 @@ var TabsList = React40.forwardRef(
|
|
|
5243
5705
|
}
|
|
5244
5706
|
);
|
|
5245
5707
|
TabsList.displayName = "TabsList";
|
|
5246
|
-
var TabsTrigger =
|
|
5708
|
+
var TabsTrigger = React41.forwardRef(
|
|
5247
5709
|
({ value, className, onClick, onKeyDown, children, ...props }, ref) => {
|
|
5248
5710
|
const { value: activeValue, onValueChange, orientation, idPrefix } = useTabsContext();
|
|
5249
5711
|
const isSelected = activeValue === value;
|
|
@@ -5256,7 +5718,7 @@ var TabsTrigger = React40.forwardRef(
|
|
|
5256
5718
|
const handleKeyDown = (e) => {
|
|
5257
5719
|
onKeyDown?.(e);
|
|
5258
5720
|
};
|
|
5259
|
-
return
|
|
5721
|
+
return React41.createElement(
|
|
5260
5722
|
"button",
|
|
5261
5723
|
{
|
|
5262
5724
|
ref,
|
|
@@ -5277,14 +5739,14 @@ var TabsTrigger = React40.forwardRef(
|
|
|
5277
5739
|
}
|
|
5278
5740
|
);
|
|
5279
5741
|
TabsTrigger.displayName = "TabsTrigger";
|
|
5280
|
-
var TabsContent =
|
|
5742
|
+
var TabsContent = React41.forwardRef(
|
|
5281
5743
|
({ value, className, children, ...props }, ref) => {
|
|
5282
5744
|
const { value: activeValue, idPrefix } = useTabsContext();
|
|
5283
5745
|
const isSelected = activeValue === value;
|
|
5284
5746
|
const tabId = `${idPrefix}-tab-${value}`;
|
|
5285
5747
|
const panelId = `${idPrefix}-panel-${value}`;
|
|
5286
5748
|
if (!isSelected) return null;
|
|
5287
|
-
return
|
|
5749
|
+
return React41.createElement(
|
|
5288
5750
|
"div",
|
|
5289
5751
|
{
|
|
5290
5752
|
ref,
|
|
@@ -5348,7 +5810,7 @@ var textareaVariants = cva({
|
|
|
5348
5810
|
size: "default"
|
|
5349
5811
|
}
|
|
5350
5812
|
});
|
|
5351
|
-
var Textarea =
|
|
5813
|
+
var Textarea = React41.forwardRef(
|
|
5352
5814
|
({ size, className, disabled, readOnly, required, rows, maxRows, "aria-invalid": ariaInvalid, ...props }, ref) => {
|
|
5353
5815
|
const api = createTextarea({
|
|
5354
5816
|
disabled,
|
|
@@ -5505,30 +5967,30 @@ var toastVariants = cva({
|
|
|
5505
5967
|
});
|
|
5506
5968
|
|
|
5507
5969
|
// ../react-toast/dist/index.js
|
|
5508
|
-
var ToastContext =
|
|
5970
|
+
var ToastContext = React41.createContext(null);
|
|
5509
5971
|
function useToastContext() {
|
|
5510
|
-
const ctx =
|
|
5972
|
+
const ctx = React41.useContext(ToastContext);
|
|
5511
5973
|
if (!ctx) {
|
|
5512
5974
|
throw new Error("useToast must be used within a <ToastProvider>");
|
|
5513
5975
|
}
|
|
5514
5976
|
return ctx;
|
|
5515
5977
|
}
|
|
5516
5978
|
function ToastProvider({ children }) {
|
|
5517
|
-
const managerRef =
|
|
5979
|
+
const managerRef = React41.useRef(null);
|
|
5518
5980
|
if (managerRef.current === null) {
|
|
5519
5981
|
managerRef.current = createToastManager();
|
|
5520
5982
|
}
|
|
5521
|
-
const ctx =
|
|
5983
|
+
const ctx = React41.useMemo(
|
|
5522
5984
|
() => ({ manager: managerRef.current }),
|
|
5523
5985
|
[]
|
|
5524
5986
|
);
|
|
5525
|
-
return
|
|
5987
|
+
return React41.createElement(ToastContext.Provider, { value: ctx }, children);
|
|
5526
5988
|
}
|
|
5527
5989
|
ToastProvider.displayName = "ToastProvider";
|
|
5528
5990
|
function useToast() {
|
|
5529
5991
|
const { manager } = useToastContext();
|
|
5530
|
-
const [toasts, setToasts] =
|
|
5531
|
-
|
|
5992
|
+
const [toasts, setToasts] = React41.useState(manager.toasts);
|
|
5993
|
+
React41.useEffect(() => {
|
|
5532
5994
|
setToasts(manager.toasts);
|
|
5533
5995
|
const unsub = manager.subscribe(setToasts);
|
|
5534
5996
|
return unsub;
|
|
@@ -5539,13 +6001,13 @@ function useToast() {
|
|
|
5539
6001
|
toasts
|
|
5540
6002
|
};
|
|
5541
6003
|
}
|
|
5542
|
-
var Toast =
|
|
6004
|
+
var Toast = React41.forwardRef(
|
|
5543
6005
|
({ entry, onDismiss, className, children, onMouseEnter, onMouseLeave, ...props }, ref) => {
|
|
5544
|
-
const api =
|
|
6006
|
+
const api = React41.useMemo(
|
|
5545
6007
|
() => createToast({ variant: entry.variant, duration: entry.duration }),
|
|
5546
6008
|
[entry.variant, entry.duration]
|
|
5547
6009
|
);
|
|
5548
|
-
|
|
6010
|
+
React41.useEffect(() => {
|
|
5549
6011
|
api.startTimer();
|
|
5550
6012
|
return () => api.pauseTimer();
|
|
5551
6013
|
}, [api]);
|
|
@@ -5557,7 +6019,7 @@ var Toast = React40.forwardRef(
|
|
|
5557
6019
|
api.resumeTimer();
|
|
5558
6020
|
onMouseLeave?.(e);
|
|
5559
6021
|
};
|
|
5560
|
-
return
|
|
6022
|
+
return React41.createElement(
|
|
5561
6023
|
"div",
|
|
5562
6024
|
{
|
|
5563
6025
|
ref,
|
|
@@ -5567,9 +6029,9 @@ var Toast = React40.forwardRef(
|
|
|
5567
6029
|
onMouseLeave: handleMouseLeave,
|
|
5568
6030
|
...props
|
|
5569
6031
|
},
|
|
5570
|
-
|
|
6032
|
+
React41.createElement("div", { className: "flex-1" }, entry.message),
|
|
5571
6033
|
children,
|
|
5572
|
-
onDismiss &&
|
|
6034
|
+
onDismiss && React41.createElement(
|
|
5573
6035
|
"button",
|
|
5574
6036
|
{
|
|
5575
6037
|
type: "button",
|
|
@@ -5583,10 +6045,10 @@ var Toast = React40.forwardRef(
|
|
|
5583
6045
|
}
|
|
5584
6046
|
);
|
|
5585
6047
|
Toast.displayName = "Toast";
|
|
5586
|
-
var Toaster =
|
|
6048
|
+
var Toaster = React41.forwardRef(
|
|
5587
6049
|
({ className, ...props }, ref) => {
|
|
5588
6050
|
const { toasts, dismiss } = useToast();
|
|
5589
|
-
return
|
|
6051
|
+
return React41.createElement(
|
|
5590
6052
|
"div",
|
|
5591
6053
|
{
|
|
5592
6054
|
ref,
|
|
@@ -5597,7 +6059,7 @@ var Toaster = React40.forwardRef(
|
|
|
5597
6059
|
...props
|
|
5598
6060
|
},
|
|
5599
6061
|
toasts.map(
|
|
5600
|
-
(entry) =>
|
|
6062
|
+
(entry) => React41.createElement(Toast, {
|
|
5601
6063
|
key: entry.id,
|
|
5602
6064
|
entry,
|
|
5603
6065
|
onDismiss: dismiss
|
|
@@ -5684,9 +6146,9 @@ var tooltipContentVariants = cva({
|
|
|
5684
6146
|
side: "top"
|
|
5685
6147
|
}
|
|
5686
6148
|
});
|
|
5687
|
-
var TooltipContext =
|
|
6149
|
+
var TooltipContext = React41.createContext(null);
|
|
5688
6150
|
function useTooltipContext() {
|
|
5689
|
-
const ctx =
|
|
6151
|
+
const ctx = React41.useContext(TooltipContext);
|
|
5690
6152
|
if (!ctx) {
|
|
5691
6153
|
throw new Error("Tooltip compound components must be used within <Tooltip>");
|
|
5692
6154
|
}
|
|
@@ -5700,11 +6162,11 @@ function Tooltip({
|
|
|
5700
6162
|
delayDuration = 300,
|
|
5701
6163
|
children
|
|
5702
6164
|
}) {
|
|
5703
|
-
const [internalOpen, setInternalOpen] =
|
|
6165
|
+
const [internalOpen, setInternalOpen] = React41.useState(controlledOpen ?? defaultOpen);
|
|
5704
6166
|
const isControlled = controlledOpen !== void 0;
|
|
5705
6167
|
const isOpen = isControlled ? controlledOpen : internalOpen;
|
|
5706
|
-
const timerRef =
|
|
5707
|
-
const handleOpenChange =
|
|
6168
|
+
const timerRef = React41.useRef(null);
|
|
6169
|
+
const handleOpenChange = React41.useCallback(
|
|
5708
6170
|
(value) => {
|
|
5709
6171
|
if (!isControlled) {
|
|
5710
6172
|
setInternalOpen(value);
|
|
@@ -5713,17 +6175,17 @@ function Tooltip({
|
|
|
5713
6175
|
},
|
|
5714
6176
|
[isControlled, onOpenChange]
|
|
5715
6177
|
);
|
|
5716
|
-
const api =
|
|
6178
|
+
const api = React41.useMemo(
|
|
5717
6179
|
() => createTooltip({ open: isOpen, onOpenChange: handleOpenChange, placement, delayDuration }),
|
|
5718
6180
|
[isOpen, handleOpenChange, placement, delayDuration]
|
|
5719
6181
|
);
|
|
5720
|
-
const cancelDelay =
|
|
6182
|
+
const cancelDelay = React41.useCallback(() => {
|
|
5721
6183
|
if (timerRef.current !== null) {
|
|
5722
6184
|
clearTimeout(timerRef.current);
|
|
5723
6185
|
timerRef.current = null;
|
|
5724
6186
|
}
|
|
5725
6187
|
}, []);
|
|
5726
|
-
const openWithDelay =
|
|
6188
|
+
const openWithDelay = React41.useCallback(() => {
|
|
5727
6189
|
cancelDelay();
|
|
5728
6190
|
if (delayDuration <= 0) {
|
|
5729
6191
|
handleOpenChange(true);
|
|
@@ -5734,21 +6196,21 @@ function Tooltip({
|
|
|
5734
6196
|
timerRef.current = null;
|
|
5735
6197
|
}, delayDuration);
|
|
5736
6198
|
}, [cancelDelay, delayDuration, handleOpenChange]);
|
|
5737
|
-
|
|
6199
|
+
React41.useEffect(() => {
|
|
5738
6200
|
return () => {
|
|
5739
6201
|
if (timerRef.current !== null) {
|
|
5740
6202
|
clearTimeout(timerRef.current);
|
|
5741
6203
|
}
|
|
5742
6204
|
};
|
|
5743
6205
|
}, []);
|
|
5744
|
-
const ctx =
|
|
6206
|
+
const ctx = React41.useMemo(
|
|
5745
6207
|
() => ({ api, open: isOpen, setOpen: handleOpenChange, openWithDelay, cancelDelay }),
|
|
5746
6208
|
[api, isOpen, handleOpenChange, openWithDelay, cancelDelay]
|
|
5747
6209
|
);
|
|
5748
|
-
return
|
|
6210
|
+
return React41.createElement(TooltipContext.Provider, { value: ctx }, children);
|
|
5749
6211
|
}
|
|
5750
6212
|
Tooltip.displayName = "Tooltip";
|
|
5751
|
-
var TooltipTrigger =
|
|
6213
|
+
var TooltipTrigger = React41.forwardRef(
|
|
5752
6214
|
({ onMouseEnter, onMouseLeave, onFocus, onBlur, children, ...props }, ref) => {
|
|
5753
6215
|
const { api, setOpen, openWithDelay, cancelDelay } = useTooltipContext();
|
|
5754
6216
|
const handleMouseEnter = (e) => {
|
|
@@ -5785,7 +6247,7 @@ var TooltipTrigger = React40.forwardRef(
|
|
|
5785
6247
|
}
|
|
5786
6248
|
);
|
|
5787
6249
|
TooltipTrigger.displayName = "TooltipTrigger";
|
|
5788
|
-
var TooltipContent =
|
|
6250
|
+
var TooltipContent = React41.forwardRef(
|
|
5789
6251
|
({ side, className, children, ...props }, ref) => {
|
|
5790
6252
|
const { api, open } = useTooltipContext();
|
|
5791
6253
|
if (!open) return null;
|
|
@@ -5905,7 +6367,7 @@ var overlayVariants = cva({
|
|
|
5905
6367
|
visibility: "visible"
|
|
5906
6368
|
}
|
|
5907
6369
|
});
|
|
5908
|
-
var VideoPlayer =
|
|
6370
|
+
var VideoPlayer = React41.forwardRef(
|
|
5909
6371
|
({
|
|
5910
6372
|
src,
|
|
5911
6373
|
poster,
|
|
@@ -5915,9 +6377,9 @@ var VideoPlayer = React40.forwardRef(
|
|
|
5915
6377
|
className,
|
|
5916
6378
|
...props
|
|
5917
6379
|
}, ref) => {
|
|
5918
|
-
const [, setTick] =
|
|
5919
|
-
const rerender =
|
|
5920
|
-
const apiRef =
|
|
6380
|
+
const [, setTick] = React41.useState(0);
|
|
6381
|
+
const rerender = React41.useCallback(() => setTick((t) => t + 1), []);
|
|
6382
|
+
const apiRef = React41.useRef(
|
|
5921
6383
|
createVideoPlayer({ muted: initialMuted})
|
|
5922
6384
|
);
|
|
5923
6385
|
const api = apiRef.current;
|
|
@@ -6084,7 +6546,7 @@ var progressBarVariants = cva({
|
|
|
6084
6546
|
size: "md"
|
|
6085
6547
|
}
|
|
6086
6548
|
});
|
|
6087
|
-
var StatsGrid =
|
|
6549
|
+
var StatsGrid = React41.forwardRef(
|
|
6088
6550
|
({ stats, badges = [], className, ...props }, ref) => {
|
|
6089
6551
|
const api = createProgressDisplay({ stats, badges });
|
|
6090
6552
|
return /* @__PURE__ */ jsx(
|
|
@@ -6113,7 +6575,7 @@ var StatsGrid = React40.forwardRef(
|
|
|
6113
6575
|
}
|
|
6114
6576
|
);
|
|
6115
6577
|
StatsGrid.displayName = "StatsGrid";
|
|
6116
|
-
var ProgressBar =
|
|
6578
|
+
var ProgressBar = React41.forwardRef(
|
|
6117
6579
|
({ value, max = 100, size, className, ...props }, ref) => {
|
|
6118
6580
|
const percent = Math.min(100, Math.max(0, value / max * 100));
|
|
6119
6581
|
return /* @__PURE__ */ jsx(
|
|
@@ -6138,7 +6600,7 @@ var ProgressBar = React40.forwardRef(
|
|
|
6138
6600
|
}
|
|
6139
6601
|
);
|
|
6140
6602
|
ProgressBar.displayName = "ProgressBar";
|
|
6141
|
-
var BadgeDisplay =
|
|
6603
|
+
var BadgeDisplay = React41.forwardRef(
|
|
6142
6604
|
({ badges, className, ...props }, ref) => {
|
|
6143
6605
|
const api = createProgressDisplay({ stats: [], badges });
|
|
6144
6606
|
return /* @__PURE__ */ jsx(
|
|
@@ -6306,7 +6768,7 @@ var slideTypeBadgeVariants = cva({
|
|
|
6306
6768
|
type: "lesson"
|
|
6307
6769
|
}
|
|
6308
6770
|
});
|
|
6309
|
-
var SlideViewer =
|
|
6771
|
+
var SlideViewer = React41.forwardRef(
|
|
6310
6772
|
({
|
|
6311
6773
|
slides,
|
|
6312
6774
|
initialSlide,
|
|
@@ -6316,9 +6778,9 @@ var SlideViewer = React40.forwardRef(
|
|
|
6316
6778
|
size,
|
|
6317
6779
|
renderSlide
|
|
6318
6780
|
}, ref) => {
|
|
6319
|
-
const [, setTick] =
|
|
6781
|
+
const [, setTick] = React41.useState(0);
|
|
6320
6782
|
const rerender = () => setTick((t) => t + 1);
|
|
6321
|
-
const apiRef =
|
|
6783
|
+
const apiRef = React41.useRef(
|
|
6322
6784
|
createSlideViewer({ slides, initialSlide, onSlideChange, onComplete })
|
|
6323
6785
|
);
|
|
6324
6786
|
const api = apiRef.current;
|
|
@@ -6520,7 +6982,7 @@ var optionVariants = cva({
|
|
|
6520
6982
|
});
|
|
6521
6983
|
|
|
6522
6984
|
// ../react-language-selector/dist/index.js
|
|
6523
|
-
var LanguageSelectorContext =
|
|
6985
|
+
var LanguageSelectorContext = React41.createContext(null);
|
|
6524
6986
|
function LanguageSelector({
|
|
6525
6987
|
value: controlledValue,
|
|
6526
6988
|
onValueChange,
|
|
@@ -6530,10 +6992,10 @@ function LanguageSelector({
|
|
|
6530
6992
|
className
|
|
6531
6993
|
}) {
|
|
6532
6994
|
const initialValues = Array.isArray(controlledValue) ? controlledValue : controlledValue ? [controlledValue] : [];
|
|
6533
|
-
const [selectedValues, setSelectedValues] =
|
|
6534
|
-
const [isOpen, setIsOpen] =
|
|
6535
|
-
const containerRef =
|
|
6536
|
-
const handleValueChange =
|
|
6995
|
+
const [selectedValues, setSelectedValues] = React41.useState(initialValues);
|
|
6996
|
+
const [isOpen, setIsOpen] = React41.useState(false);
|
|
6997
|
+
const containerRef = React41.useRef(null);
|
|
6998
|
+
const handleValueChange = React41.useCallback(
|
|
6537
6999
|
(val) => {
|
|
6538
7000
|
const arr = Array.isArray(val) ? val : [val];
|
|
6539
7001
|
setSelectedValues(arr);
|
|
@@ -6541,7 +7003,7 @@ function LanguageSelector({
|
|
|
6541
7003
|
},
|
|
6542
7004
|
[onValueChange]
|
|
6543
7005
|
);
|
|
6544
|
-
const api =
|
|
7006
|
+
const api = React41.useMemo(
|
|
6545
7007
|
() => createLanguageSelector({
|
|
6546
7008
|
value: multiple ? selectedValues : selectedValues[0],
|
|
6547
7009
|
onValueChange: handleValueChange,
|
|
@@ -6549,7 +7011,7 @@ function LanguageSelector({
|
|
|
6549
7011
|
}),
|
|
6550
7012
|
[selectedValues, handleValueChange, options, multiple]
|
|
6551
7013
|
);
|
|
6552
|
-
const handleToggle =
|
|
7014
|
+
const handleToggle = React41.useCallback(
|
|
6553
7015
|
(val) => {
|
|
6554
7016
|
if (multiple) {
|
|
6555
7017
|
const index = selectedValues.indexOf(val);
|
|
@@ -6564,10 +7026,10 @@ function LanguageSelector({
|
|
|
6564
7026
|
},
|
|
6565
7027
|
[multiple, selectedValues, onValueChange]
|
|
6566
7028
|
);
|
|
6567
|
-
const handleTriggerClick =
|
|
7029
|
+
const handleTriggerClick = React41.useCallback(() => {
|
|
6568
7030
|
setIsOpen((prev) => !prev);
|
|
6569
7031
|
}, []);
|
|
6570
|
-
const handleKeyDown =
|
|
7032
|
+
const handleKeyDown = React41.useCallback(
|
|
6571
7033
|
(e) => {
|
|
6572
7034
|
if (e.key === "Escape") {
|
|
6573
7035
|
setIsOpen(false);
|
|
@@ -6582,7 +7044,7 @@ function LanguageSelector({
|
|
|
6582
7044
|
},
|
|
6583
7045
|
[isOpen]
|
|
6584
7046
|
);
|
|
6585
|
-
|
|
7047
|
+
React41.useEffect(() => {
|
|
6586
7048
|
if (!isOpen) return;
|
|
6587
7049
|
function handleClickOutside(e) {
|
|
6588
7050
|
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
|
@@ -6592,7 +7054,7 @@ function LanguageSelector({
|
|
|
6592
7054
|
document.addEventListener("mousedown", handleClickOutside);
|
|
6593
7055
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
6594
7056
|
}, [isOpen]);
|
|
6595
|
-
const ctx =
|
|
7057
|
+
const ctx = React41.useMemo(
|
|
6596
7058
|
() => ({
|
|
6597
7059
|
api,
|
|
6598
7060
|
isOpen,
|
|
@@ -6603,7 +7065,7 @@ function LanguageSelector({
|
|
|
6603
7065
|
}),
|
|
6604
7066
|
[api, isOpen, handleToggle, options, multiple]
|
|
6605
7067
|
);
|
|
6606
|
-
const grouped =
|
|
7068
|
+
const grouped = React41.useMemo(() => {
|
|
6607
7069
|
const groups = /* @__PURE__ */ new Map();
|
|
6608
7070
|
const ungrouped = [];
|
|
6609
7071
|
for (const opt of options) {
|
|
@@ -6618,14 +7080,14 @@ function LanguageSelector({
|
|
|
6618
7080
|
return { groups, ungrouped };
|
|
6619
7081
|
}, [options]);
|
|
6620
7082
|
const displayLabel = selectedValues.length > 0 ? options.filter((o) => selectedValues.includes(o.value)).map((o) => o.label).join(", ") : placeholder;
|
|
6621
|
-
return
|
|
7083
|
+
return React41.createElement(
|
|
6622
7084
|
LanguageSelectorContext.Provider,
|
|
6623
7085
|
{ value: ctx },
|
|
6624
|
-
|
|
7086
|
+
React41.createElement(
|
|
6625
7087
|
"div",
|
|
6626
7088
|
{ ref: containerRef, className: cn("rfr-language-selector relative inline-block", className) },
|
|
6627
7089
|
// Trigger
|
|
6628
|
-
|
|
7090
|
+
React41.createElement(
|
|
6629
7091
|
"button",
|
|
6630
7092
|
{
|
|
6631
7093
|
type: "button",
|
|
@@ -6637,11 +7099,11 @@ function LanguageSelector({
|
|
|
6637
7099
|
onClick: handleTriggerClick,
|
|
6638
7100
|
onKeyDown: handleKeyDown
|
|
6639
7101
|
},
|
|
6640
|
-
|
|
6641
|
-
|
|
7102
|
+
React41.createElement("span", null, displayLabel),
|
|
7103
|
+
React41.createElement("span", { "aria-hidden": "true", className: "ml-2" }, "\u25BE")
|
|
6642
7104
|
),
|
|
6643
7105
|
// Dropdown
|
|
6644
|
-
isOpen &&
|
|
7106
|
+
isOpen && React41.createElement(
|
|
6645
7107
|
"ul",
|
|
6646
7108
|
{
|
|
6647
7109
|
role: api.contentProps.role,
|
|
@@ -6650,21 +7112,21 @@ function LanguageSelector({
|
|
|
6650
7112
|
className: "absolute top-full left-0 w-full mt-1 rounded-md border bg-popover text-popover-foreground shadow-md z-50 overflow-auto max-h-60"
|
|
6651
7113
|
},
|
|
6652
7114
|
...[...grouped.groups.entries()].map(
|
|
6653
|
-
([group, opts]) =>
|
|
7115
|
+
([group, opts]) => React41.createElement(
|
|
6654
7116
|
"li",
|
|
6655
7117
|
{ key: group, role: "presentation" },
|
|
6656
|
-
|
|
7118
|
+
React41.createElement(
|
|
6657
7119
|
"div",
|
|
6658
7120
|
{ className: "px-3 py-1 text-xs font-semibold text-muted-foreground uppercase" },
|
|
6659
7121
|
group
|
|
6660
7122
|
),
|
|
6661
|
-
|
|
7123
|
+
React41.createElement(
|
|
6662
7124
|
"ul",
|
|
6663
7125
|
{ role: "group", "aria-label": group },
|
|
6664
7126
|
...opts.map((opt) => {
|
|
6665
7127
|
const optProps = api.getOptionProps(opt.value);
|
|
6666
7128
|
const isSelected = selectedValues.includes(opt.value);
|
|
6667
|
-
return
|
|
7129
|
+
return React41.createElement(
|
|
6668
7130
|
"li",
|
|
6669
7131
|
{
|
|
6670
7132
|
key: opt.value,
|
|
@@ -6672,8 +7134,8 @@ function LanguageSelector({
|
|
|
6672
7134
|
className: optionVariants({ selected: isSelected ? "true" : "false" }),
|
|
6673
7135
|
onClick: () => handleToggle(opt.value)
|
|
6674
7136
|
},
|
|
6675
|
-
isSelected &&
|
|
6676
|
-
|
|
7137
|
+
isSelected && React41.createElement("span", { "aria-hidden": "true" }, "\u2713"),
|
|
7138
|
+
React41.createElement("span", null, opt.label)
|
|
6677
7139
|
);
|
|
6678
7140
|
})
|
|
6679
7141
|
)
|
|
@@ -6682,7 +7144,7 @@ function LanguageSelector({
|
|
|
6682
7144
|
...grouped.ungrouped.map((opt) => {
|
|
6683
7145
|
const optProps = api.getOptionProps(opt.value);
|
|
6684
7146
|
const isSelected = selectedValues.includes(opt.value);
|
|
6685
|
-
return
|
|
7147
|
+
return React41.createElement(
|
|
6686
7148
|
"li",
|
|
6687
7149
|
{
|
|
6688
7150
|
key: opt.value,
|
|
@@ -6690,8 +7152,8 @@ function LanguageSelector({
|
|
|
6690
7152
|
className: optionVariants({ selected: isSelected ? "true" : "false" }),
|
|
6691
7153
|
onClick: () => handleToggle(opt.value)
|
|
6692
7154
|
},
|
|
6693
|
-
isSelected &&
|
|
6694
|
-
|
|
7155
|
+
isSelected && React41.createElement("span", { "aria-hidden": "true" }, "\u2713"),
|
|
7156
|
+
React41.createElement("span", null, opt.label)
|
|
6695
7157
|
);
|
|
6696
7158
|
})
|
|
6697
7159
|
)
|
|
@@ -6816,7 +7278,7 @@ var latestBadgeVariants = cva({
|
|
|
6816
7278
|
});
|
|
6817
7279
|
|
|
6818
7280
|
// ../react-version-selector/dist/index.js
|
|
6819
|
-
var VersionSelectorContext =
|
|
7281
|
+
var VersionSelectorContext = React41.createContext(null);
|
|
6820
7282
|
function VersionSelector({
|
|
6821
7283
|
value: controlledValue,
|
|
6822
7284
|
onValueChange,
|
|
@@ -6824,17 +7286,17 @@ function VersionSelector({
|
|
|
6824
7286
|
placeholder = "Select version...",
|
|
6825
7287
|
className
|
|
6826
7288
|
}) {
|
|
6827
|
-
const [selectedVersion, setSelectedVersion] =
|
|
6828
|
-
const [isOpen, setIsOpen] =
|
|
6829
|
-
const containerRef =
|
|
6830
|
-
const handleValueChange =
|
|
7289
|
+
const [selectedVersion, setSelectedVersion] = React41.useState(controlledValue ?? "");
|
|
7290
|
+
const [isOpen, setIsOpen] = React41.useState(false);
|
|
7291
|
+
const containerRef = React41.useRef(null);
|
|
7292
|
+
const handleValueChange = React41.useCallback(
|
|
6831
7293
|
(val) => {
|
|
6832
7294
|
setSelectedVersion(val);
|
|
6833
7295
|
onValueChange?.(val);
|
|
6834
7296
|
},
|
|
6835
7297
|
[onValueChange]
|
|
6836
7298
|
);
|
|
6837
|
-
const api =
|
|
7299
|
+
const api = React41.useMemo(
|
|
6838
7300
|
() => createVersionSelector({
|
|
6839
7301
|
value: selectedVersion,
|
|
6840
7302
|
onValueChange: handleValueChange,
|
|
@@ -6842,7 +7304,7 @@ function VersionSelector({
|
|
|
6842
7304
|
}),
|
|
6843
7305
|
[selectedVersion, handleValueChange, versions]
|
|
6844
7306
|
);
|
|
6845
|
-
const handleSelect =
|
|
7307
|
+
const handleSelect = React41.useCallback(
|
|
6846
7308
|
(val) => {
|
|
6847
7309
|
setSelectedVersion(val);
|
|
6848
7310
|
onValueChange?.(val);
|
|
@@ -6850,10 +7312,10 @@ function VersionSelector({
|
|
|
6850
7312
|
},
|
|
6851
7313
|
[onValueChange]
|
|
6852
7314
|
);
|
|
6853
|
-
const handleTriggerClick =
|
|
7315
|
+
const handleTriggerClick = React41.useCallback(() => {
|
|
6854
7316
|
setIsOpen((prev) => !prev);
|
|
6855
7317
|
}, []);
|
|
6856
|
-
const handleKeyDown =
|
|
7318
|
+
const handleKeyDown = React41.useCallback(
|
|
6857
7319
|
(e) => {
|
|
6858
7320
|
if (e.key === "Escape") {
|
|
6859
7321
|
setIsOpen(false);
|
|
@@ -6868,7 +7330,7 @@ function VersionSelector({
|
|
|
6868
7330
|
},
|
|
6869
7331
|
[isOpen]
|
|
6870
7332
|
);
|
|
6871
|
-
|
|
7333
|
+
React41.useEffect(() => {
|
|
6872
7334
|
if (!isOpen) return;
|
|
6873
7335
|
function handleClickOutside(e) {
|
|
6874
7336
|
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
|
@@ -6878,7 +7340,7 @@ function VersionSelector({
|
|
|
6878
7340
|
document.addEventListener("mousedown", handleClickOutside);
|
|
6879
7341
|
return () => document.removeEventListener("mousedown", handleClickOutside);
|
|
6880
7342
|
}, [isOpen]);
|
|
6881
|
-
const ctx =
|
|
7343
|
+
const ctx = React41.useMemo(
|
|
6882
7344
|
() => ({
|
|
6883
7345
|
api,
|
|
6884
7346
|
isOpen,
|
|
@@ -6890,14 +7352,14 @@ function VersionSelector({
|
|
|
6890
7352
|
);
|
|
6891
7353
|
const selectedOpt = versions.find((v) => v.value === selectedVersion);
|
|
6892
7354
|
const displayLabel = selectedOpt ? selectedOpt.label : placeholder;
|
|
6893
|
-
return
|
|
7355
|
+
return React41.createElement(
|
|
6894
7356
|
VersionSelectorContext.Provider,
|
|
6895
7357
|
{ value: ctx },
|
|
6896
|
-
|
|
7358
|
+
React41.createElement(
|
|
6897
7359
|
"div",
|
|
6898
7360
|
{ ref: containerRef, className: cn("rfr-version-selector relative inline-block", className) },
|
|
6899
7361
|
// Trigger
|
|
6900
|
-
|
|
7362
|
+
React41.createElement(
|
|
6901
7363
|
"button",
|
|
6902
7364
|
{
|
|
6903
7365
|
type: "button",
|
|
@@ -6909,16 +7371,16 @@ function VersionSelector({
|
|
|
6909
7371
|
onClick: handleTriggerClick,
|
|
6910
7372
|
onKeyDown: handleKeyDown
|
|
6911
7373
|
},
|
|
6912
|
-
|
|
6913
|
-
selectedOpt?.isLatest &&
|
|
7374
|
+
React41.createElement("span", null, displayLabel),
|
|
7375
|
+
selectedOpt?.isLatest && React41.createElement(
|
|
6914
7376
|
"span",
|
|
6915
7377
|
{ className: cn(latestBadgeVariants(), "ml-2") },
|
|
6916
7378
|
"Latest"
|
|
6917
7379
|
),
|
|
6918
|
-
|
|
7380
|
+
React41.createElement("span", { "aria-hidden": "true", className: "ml-2" }, "\u25BE")
|
|
6919
7381
|
),
|
|
6920
7382
|
// Dropdown
|
|
6921
|
-
isOpen &&
|
|
7383
|
+
isOpen && React41.createElement(
|
|
6922
7384
|
"ul",
|
|
6923
7385
|
{
|
|
6924
7386
|
role: api.contentProps.role,
|
|
@@ -6928,7 +7390,7 @@ function VersionSelector({
|
|
|
6928
7390
|
...versions.map((ver) => {
|
|
6929
7391
|
const optProps = api.getOptionProps(ver.value);
|
|
6930
7392
|
const isSelected = selectedVersion === ver.value;
|
|
6931
|
-
return
|
|
7393
|
+
return React41.createElement(
|
|
6932
7394
|
"li",
|
|
6933
7395
|
{
|
|
6934
7396
|
key: ver.value,
|
|
@@ -6936,8 +7398,8 @@ function VersionSelector({
|
|
|
6936
7398
|
className: optionVariants2({ selected: isSelected ? "true" : "false" }),
|
|
6937
7399
|
onClick: () => handleSelect(ver.value)
|
|
6938
7400
|
},
|
|
6939
|
-
|
|
6940
|
-
ver.isLatest &&
|
|
7401
|
+
React41.createElement("span", null, ver.label),
|
|
7402
|
+
ver.isLatest && React41.createElement(
|
|
6941
7403
|
"span",
|
|
6942
7404
|
{ className: latestBadgeVariants() },
|
|
6943
7405
|
"Latest"
|
|
@@ -7080,15 +7542,15 @@ var resizablePaneVariants = cva({
|
|
|
7080
7542
|
orientation: "horizontal"
|
|
7081
7543
|
}
|
|
7082
7544
|
});
|
|
7083
|
-
var ResizableLayoutContext =
|
|
7545
|
+
var ResizableLayoutContext = React41.createContext(null);
|
|
7084
7546
|
function useResizableLayoutContext() {
|
|
7085
|
-
const ctx =
|
|
7547
|
+
const ctx = React41.useContext(ResizableLayoutContext);
|
|
7086
7548
|
if (!ctx) {
|
|
7087
7549
|
throw new Error("Resizable compound components must be used within <ResizableLayout>");
|
|
7088
7550
|
}
|
|
7089
7551
|
return ctx;
|
|
7090
7552
|
}
|
|
7091
|
-
var ResizableLayout =
|
|
7553
|
+
var ResizableLayout = React41.forwardRef(
|
|
7092
7554
|
({
|
|
7093
7555
|
orientation = "horizontal",
|
|
7094
7556
|
defaultSizes = [50, 50],
|
|
@@ -7101,7 +7563,7 @@ var ResizableLayout = React40.forwardRef(
|
|
|
7101
7563
|
children,
|
|
7102
7564
|
...props
|
|
7103
7565
|
}, ref) => {
|
|
7104
|
-
const apiRef =
|
|
7566
|
+
const apiRef = React41.useRef(null);
|
|
7105
7567
|
if (!apiRef.current) {
|
|
7106
7568
|
apiRef.current = createResizableLayout({
|
|
7107
7569
|
orientation,
|
|
@@ -7112,22 +7574,22 @@ var ResizableLayout = React40.forwardRef(
|
|
|
7112
7574
|
});
|
|
7113
7575
|
}
|
|
7114
7576
|
const api = apiRef.current;
|
|
7115
|
-
const [sizes, setSizesState] =
|
|
7116
|
-
const setSizes =
|
|
7577
|
+
const [sizes, setSizesState] = React41.useState(api.sizes);
|
|
7578
|
+
const setSizes = React41.useCallback(
|
|
7117
7579
|
(newSizes) => {
|
|
7118
7580
|
setSizesState([...newSizes]);
|
|
7119
7581
|
onSizesChange?.(newSizes);
|
|
7120
7582
|
},
|
|
7121
7583
|
[onSizesChange]
|
|
7122
7584
|
);
|
|
7123
|
-
const cssVars =
|
|
7585
|
+
const cssVars = React41.useMemo(() => {
|
|
7124
7586
|
const vars = {};
|
|
7125
7587
|
for (let i = 0; i < sizes.length; i++) {
|
|
7126
7588
|
vars[`--rfr-pane-${i}-size`] = `${sizes[i]}%`;
|
|
7127
7589
|
}
|
|
7128
7590
|
return vars;
|
|
7129
7591
|
}, [sizes]);
|
|
7130
|
-
const contextValue =
|
|
7592
|
+
const contextValue = React41.useMemo(
|
|
7131
7593
|
() => ({ api, orientation, sizes, setSizes }),
|
|
7132
7594
|
[api, orientation, sizes, setSizes]
|
|
7133
7595
|
);
|
|
@@ -7145,7 +7607,7 @@ var ResizableLayout = React40.forwardRef(
|
|
|
7145
7607
|
}
|
|
7146
7608
|
);
|
|
7147
7609
|
ResizableLayout.displayName = "ResizableLayout";
|
|
7148
|
-
var ResizablePane =
|
|
7610
|
+
var ResizablePane = React41.forwardRef(
|
|
7149
7611
|
({ index, className, style, children, ...props }, ref) => {
|
|
7150
7612
|
const { orientation, sizes } = useResizableLayoutContext();
|
|
7151
7613
|
const size = sizes[index] ?? 50;
|
|
@@ -7169,12 +7631,12 @@ var ResizablePane = React40.forwardRef(
|
|
|
7169
7631
|
}
|
|
7170
7632
|
);
|
|
7171
7633
|
ResizablePane.displayName = "ResizablePane";
|
|
7172
|
-
var ResizableDivider =
|
|
7634
|
+
var ResizableDivider = React41.forwardRef(
|
|
7173
7635
|
({ index, className, ...props }, ref) => {
|
|
7174
7636
|
const { api, orientation, setSizes } = useResizableLayoutContext();
|
|
7175
|
-
const startPosRef =
|
|
7176
|
-
const containerSizeRef =
|
|
7177
|
-
const onPointerDown =
|
|
7637
|
+
const startPosRef = React41.useRef(0);
|
|
7638
|
+
const containerSizeRef = React41.useRef(0);
|
|
7639
|
+
const onPointerDown = React41.useCallback(
|
|
7178
7640
|
(e) => {
|
|
7179
7641
|
e.preventDefault();
|
|
7180
7642
|
const target = e.currentTarget;
|
|
@@ -7188,7 +7650,7 @@ var ResizableDivider = React40.forwardRef(
|
|
|
7188
7650
|
},
|
|
7189
7651
|
[api, index, orientation]
|
|
7190
7652
|
);
|
|
7191
|
-
const onPointerMove =
|
|
7653
|
+
const onPointerMove = React41.useCallback(
|
|
7192
7654
|
(e) => {
|
|
7193
7655
|
if (containerSizeRef.current === 0) return;
|
|
7194
7656
|
const currentPos = orientation === "horizontal" ? e.clientX : e.clientY;
|
|
@@ -7199,7 +7661,7 @@ var ResizableDivider = React40.forwardRef(
|
|
|
7199
7661
|
},
|
|
7200
7662
|
[api, orientation, setSizes]
|
|
7201
7663
|
);
|
|
7202
|
-
const onPointerUp =
|
|
7664
|
+
const onPointerUp = React41.useCallback(
|
|
7203
7665
|
(e) => {
|
|
7204
7666
|
e.currentTarget.releasePointerCapture(e.pointerId);
|
|
7205
7667
|
containerSizeRef.current = 0;
|
|
@@ -7452,26 +7914,26 @@ function createAuthShell(config) {
|
|
|
7452
7914
|
}
|
|
7453
7915
|
|
|
7454
7916
|
// ../react-app-shell/dist/index.js
|
|
7455
|
-
var AppShellContext =
|
|
7917
|
+
var AppShellContext = React41.createContext(null);
|
|
7456
7918
|
function useAppShell() {
|
|
7457
|
-
const ctx =
|
|
7919
|
+
const ctx = React41.useContext(AppShellContext);
|
|
7458
7920
|
if (!ctx) {
|
|
7459
7921
|
throw new Error("useAppShell must be used within <AppShell>");
|
|
7460
7922
|
}
|
|
7461
7923
|
return ctx;
|
|
7462
7924
|
}
|
|
7463
7925
|
function AppShellRoot({ config, children, className }) {
|
|
7464
|
-
const apiRef =
|
|
7926
|
+
const apiRef = React41.useRef(null);
|
|
7465
7927
|
if (apiRef.current === null) {
|
|
7466
7928
|
apiRef.current = createAppShell(config);
|
|
7467
7929
|
}
|
|
7468
7930
|
const api = apiRef.current;
|
|
7469
|
-
const [state, setState] =
|
|
7470
|
-
|
|
7931
|
+
const [state, setState] = React41.useState(() => api.state);
|
|
7932
|
+
React41.useEffect(() => {
|
|
7471
7933
|
setState(api.state);
|
|
7472
7934
|
return api.subscribe((s) => setState(s));
|
|
7473
7935
|
}, [api]);
|
|
7474
|
-
|
|
7936
|
+
React41.useEffect(() => {
|
|
7475
7937
|
if (typeof window === "undefined") return;
|
|
7476
7938
|
const { mobileBreakpoint, tabletBreakpoint } = api.config;
|
|
7477
7939
|
const mobileQuery = window.matchMedia(`(max-width: ${mobileBreakpoint - 1}px)`);
|
|
@@ -7492,14 +7954,14 @@ function AppShellRoot({ config, children, className }) {
|
|
|
7492
7954
|
};
|
|
7493
7955
|
}, [api]);
|
|
7494
7956
|
const cssVars = api.getCSSVariables();
|
|
7495
|
-
const ctxValue =
|
|
7957
|
+
const ctxValue = React41.useMemo(
|
|
7496
7958
|
() => ({ api, state }),
|
|
7497
7959
|
[api, state]
|
|
7498
7960
|
);
|
|
7499
|
-
return
|
|
7961
|
+
return React41.createElement(
|
|
7500
7962
|
AppShellContext.Provider,
|
|
7501
7963
|
{ value: ctxValue },
|
|
7502
|
-
|
|
7964
|
+
React41.createElement(
|
|
7503
7965
|
"div",
|
|
7504
7966
|
{
|
|
7505
7967
|
className: cn("flex h-screen w-full overflow-hidden", className),
|
|
@@ -7529,7 +7991,7 @@ function Sidebar2({ children, className }) {
|
|
|
7529
7991
|
"w-[var(--shell-sidebar-full-width)]",
|
|
7530
7992
|
state.sidebarOpen ? "translate-x-0" : isRight ? "translate-x-full" : "-translate-x-full"
|
|
7531
7993
|
] : ["relative", "w-[var(--shell-sidebar-width)]"];
|
|
7532
|
-
return
|
|
7994
|
+
return React41.createElement(
|
|
7533
7995
|
"aside",
|
|
7534
7996
|
{
|
|
7535
7997
|
...api.sidebarAriaProps,
|
|
@@ -7542,7 +8004,7 @@ function Sidebar2({ children, className }) {
|
|
|
7542
8004
|
}
|
|
7543
8005
|
Sidebar2.displayName = "AppShell.Sidebar";
|
|
7544
8006
|
function Main({ children, className }) {
|
|
7545
|
-
return
|
|
8007
|
+
return React41.createElement(
|
|
7546
8008
|
"div",
|
|
7547
8009
|
{
|
|
7548
8010
|
className: cn("flex flex-1 flex-col min-w-0 h-full", className)
|
|
@@ -7553,7 +8015,7 @@ function Main({ children, className }) {
|
|
|
7553
8015
|
Main.displayName = "AppShell.Main";
|
|
7554
8016
|
function Header({ children, className }) {
|
|
7555
8017
|
const { api, state } = useAppShell();
|
|
7556
|
-
const hamburger = state.isMobile ?
|
|
8018
|
+
const hamburger = state.isMobile ? React41.createElement(
|
|
7557
8019
|
"button",
|
|
7558
8020
|
{
|
|
7559
8021
|
type: "button",
|
|
@@ -7563,7 +8025,7 @@ function Header({ children, className }) {
|
|
|
7563
8025
|
onClick: () => api.toggleSidebar(),
|
|
7564
8026
|
className: "inline-flex items-center justify-center p-2 mr-2"
|
|
7565
8027
|
},
|
|
7566
|
-
|
|
8028
|
+
React41.createElement(
|
|
7567
8029
|
"svg",
|
|
7568
8030
|
{
|
|
7569
8031
|
xmlns: "http://www.w3.org/2000/svg",
|
|
@@ -7577,12 +8039,12 @@ function Header({ children, className }) {
|
|
|
7577
8039
|
strokeLinejoin: "round",
|
|
7578
8040
|
"aria-hidden": "true"
|
|
7579
8041
|
},
|
|
7580
|
-
|
|
7581
|
-
|
|
7582
|
-
|
|
8042
|
+
React41.createElement("line", { x1: 3, y1: 6, x2: 21, y2: 6 }),
|
|
8043
|
+
React41.createElement("line", { x1: 3, y1: 12, x2: 21, y2: 12 }),
|
|
8044
|
+
React41.createElement("line", { x1: 3, y1: 18, x2: 21, y2: 18 })
|
|
7583
8045
|
)
|
|
7584
8046
|
) : null;
|
|
7585
|
-
return
|
|
8047
|
+
return React41.createElement(
|
|
7586
8048
|
"header",
|
|
7587
8049
|
{
|
|
7588
8050
|
...api.headerAriaProps,
|
|
@@ -7601,7 +8063,7 @@ Header.displayName = "AppShell.Header";
|
|
|
7601
8063
|
function Content({ children, className, maxWidth }) {
|
|
7602
8064
|
const { api } = useAppShell();
|
|
7603
8065
|
const mwClass = maxWidth ? `max-w-${maxWidth}` : "";
|
|
7604
|
-
return
|
|
8066
|
+
return React41.createElement(
|
|
7605
8067
|
"main",
|
|
7606
8068
|
{
|
|
7607
8069
|
...api.mainAriaProps,
|
|
@@ -7620,7 +8082,7 @@ function MobileNav2({ children, className }) {
|
|
|
7620
8082
|
const { api, state } = useAppShell();
|
|
7621
8083
|
if (!state.isMobile) return null;
|
|
7622
8084
|
if (api.config.mobileNavPosition === "none") return null;
|
|
7623
|
-
return
|
|
8085
|
+
return React41.createElement(
|
|
7624
8086
|
"nav",
|
|
7625
8087
|
{
|
|
7626
8088
|
...api.mobileNavAriaProps,
|
|
@@ -7639,7 +8101,7 @@ MobileNav2.displayName = "AppShell.MobileNav";
|
|
|
7639
8101
|
function Overlay({ className }) {
|
|
7640
8102
|
const { api, state } = useAppShell();
|
|
7641
8103
|
if (!state.isMobile || !state.sidebarOpen) return null;
|
|
7642
|
-
return
|
|
8104
|
+
return React41.createElement("div", {
|
|
7643
8105
|
...api.overlayAriaProps,
|
|
7644
8106
|
className: cn(
|
|
7645
8107
|
"fixed inset-0 z-30 bg-black/50 transition-opacity",
|
|
@@ -7658,29 +8120,29 @@ var AppShell = Object.assign(AppShellRoot, {
|
|
|
7658
8120
|
MobileNav: MobileNav2,
|
|
7659
8121
|
Overlay
|
|
7660
8122
|
});
|
|
7661
|
-
var PageShellContext =
|
|
8123
|
+
var PageShellContext = React41.createContext(null);
|
|
7662
8124
|
function usePageShell() {
|
|
7663
|
-
const ctx =
|
|
8125
|
+
const ctx = React41.useContext(PageShellContext);
|
|
7664
8126
|
if (!ctx) {
|
|
7665
8127
|
throw new Error("PageShell compound components must be used within <PageShell>");
|
|
7666
8128
|
}
|
|
7667
8129
|
return ctx;
|
|
7668
8130
|
}
|
|
7669
8131
|
function PageShellRoot({ config, children, className }) {
|
|
7670
|
-
const apiRef =
|
|
8132
|
+
const apiRef = React41.useRef(null);
|
|
7671
8133
|
if (apiRef.current === null) {
|
|
7672
8134
|
apiRef.current = createPageShell(config);
|
|
7673
8135
|
}
|
|
7674
8136
|
const api = apiRef.current;
|
|
7675
8137
|
const cssVars = api.getCSSVariables();
|
|
7676
|
-
const ctxValue =
|
|
8138
|
+
const ctxValue = React41.useMemo(
|
|
7677
8139
|
() => ({ api }),
|
|
7678
8140
|
[api]
|
|
7679
8141
|
);
|
|
7680
|
-
return
|
|
8142
|
+
return React41.createElement(
|
|
7681
8143
|
PageShellContext.Provider,
|
|
7682
8144
|
{ value: ctxValue },
|
|
7683
|
-
|
|
8145
|
+
React41.createElement(
|
|
7684
8146
|
"div",
|
|
7685
8147
|
{
|
|
7686
8148
|
className: cn("flex min-h-screen flex-col", className),
|
|
@@ -7696,7 +8158,7 @@ function Nav({ children, className }) {
|
|
|
7696
8158
|
const { api } = usePageShell();
|
|
7697
8159
|
const stickyClass = api.config.navSticky ? "sticky top-0 z-40" : "";
|
|
7698
8160
|
const transparentClass = api.config.navTransparent ? "bg-transparent" : "bg-background border-b";
|
|
7699
|
-
return
|
|
8161
|
+
return React41.createElement(
|
|
7700
8162
|
"nav",
|
|
7701
8163
|
{
|
|
7702
8164
|
...api.navAriaProps,
|
|
@@ -7721,7 +8183,7 @@ function Section({
|
|
|
7721
8183
|
}) {
|
|
7722
8184
|
const { api } = usePageShell();
|
|
7723
8185
|
const sectionClasses = api.getSectionClasses({ fullWidth, maxWidth, padding, background });
|
|
7724
|
-
return
|
|
8186
|
+
return React41.createElement(
|
|
7725
8187
|
"section",
|
|
7726
8188
|
{
|
|
7727
8189
|
className: cn("py-12", sectionClasses, className)
|
|
@@ -7733,7 +8195,7 @@ Section.displayName = "PageShell.Section";
|
|
|
7733
8195
|
function Footer2({ children, className, columns }) {
|
|
7734
8196
|
const { api } = usePageShell();
|
|
7735
8197
|
const cols = columns ?? api.config.footerColumns;
|
|
7736
|
-
return
|
|
8198
|
+
return React41.createElement(
|
|
7737
8199
|
"footer",
|
|
7738
8200
|
{
|
|
7739
8201
|
...api.footerAriaProps,
|
|
@@ -7742,7 +8204,7 @@ function Footer2({ children, className, columns }) {
|
|
|
7742
8204
|
className
|
|
7743
8205
|
)
|
|
7744
8206
|
},
|
|
7745
|
-
|
|
8207
|
+
React41.createElement(
|
|
7746
8208
|
"div",
|
|
7747
8209
|
{
|
|
7748
8210
|
className: `mx-auto max-w-[var(--page-max-width)] grid gap-8`,
|
|
@@ -7760,28 +8222,28 @@ Object.assign(PageShellRoot, {
|
|
|
7760
8222
|
Section,
|
|
7761
8223
|
Footer: Footer2
|
|
7762
8224
|
});
|
|
7763
|
-
var AuthShellContext =
|
|
8225
|
+
var AuthShellContext = React41.createContext(null);
|
|
7764
8226
|
function useAuthShell() {
|
|
7765
|
-
const ctx =
|
|
8227
|
+
const ctx = React41.useContext(AuthShellContext);
|
|
7766
8228
|
if (!ctx) {
|
|
7767
8229
|
throw new Error("AuthShell compound components must be used within <AuthShell>");
|
|
7768
8230
|
}
|
|
7769
8231
|
return ctx;
|
|
7770
8232
|
}
|
|
7771
8233
|
function AuthShellRoot({ config, children, className }) {
|
|
7772
|
-
const apiRef =
|
|
8234
|
+
const apiRef = React41.useRef(null);
|
|
7773
8235
|
if (apiRef.current === null) {
|
|
7774
8236
|
apiRef.current = createAuthShell(config);
|
|
7775
8237
|
}
|
|
7776
8238
|
const api = apiRef.current;
|
|
7777
|
-
const ctxValue =
|
|
8239
|
+
const ctxValue = React41.useMemo(
|
|
7778
8240
|
() => ({ api }),
|
|
7779
8241
|
[api]
|
|
7780
8242
|
);
|
|
7781
|
-
return
|
|
8243
|
+
return React41.createElement(
|
|
7782
8244
|
AuthShellContext.Provider,
|
|
7783
8245
|
{ value: ctxValue },
|
|
7784
|
-
|
|
8246
|
+
React41.createElement(
|
|
7785
8247
|
"div",
|
|
7786
8248
|
{
|
|
7787
8249
|
...api.ariaProps,
|
|
@@ -7795,7 +8257,7 @@ function AuthShellRoot({ config, children, className }) {
|
|
|
7795
8257
|
AuthShellRoot.displayName = "AuthShell";
|
|
7796
8258
|
function Card({ children, className }) {
|
|
7797
8259
|
const { api } = useAuthShell();
|
|
7798
|
-
return
|
|
8260
|
+
return React41.createElement(
|
|
7799
8261
|
"div",
|
|
7800
8262
|
{
|
|
7801
8263
|
className: cn(api.cardClasses, className),
|
|
@@ -7883,7 +8345,7 @@ var avatarFallbackVariants = cva({
|
|
|
7883
8345
|
size: "md"
|
|
7884
8346
|
}
|
|
7885
8347
|
});
|
|
7886
|
-
var AvatarContext =
|
|
8348
|
+
var AvatarContext = React41.createContext({
|
|
7887
8349
|
size: "md",
|
|
7888
8350
|
imageLoaded: false,
|
|
7889
8351
|
imageError: false,
|
|
@@ -7892,10 +8354,10 @@ var AvatarContext = React40.createContext({
|
|
|
7892
8354
|
setImageError: () => {
|
|
7893
8355
|
}
|
|
7894
8356
|
});
|
|
7895
|
-
var Avatar =
|
|
8357
|
+
var Avatar = React41.forwardRef(
|
|
7896
8358
|
({ size = "md", className, children, ...props }, ref) => {
|
|
7897
|
-
const [imageLoaded, setImageLoaded] =
|
|
7898
|
-
const [imageError, setImageError] =
|
|
8359
|
+
const [imageLoaded, setImageLoaded] = React41.useState(false);
|
|
8360
|
+
const [imageError, setImageError] = React41.useState(false);
|
|
7899
8361
|
const api = createAvatar({ size });
|
|
7900
8362
|
return /* @__PURE__ */ jsx(AvatarContext.Provider, { value: { size, imageLoaded, imageError, setImageLoaded, setImageError }, children: /* @__PURE__ */ jsx(
|
|
7901
8363
|
"span",
|
|
@@ -7911,9 +8373,9 @@ var Avatar = React40.forwardRef(
|
|
|
7911
8373
|
}
|
|
7912
8374
|
);
|
|
7913
8375
|
Avatar.displayName = "Avatar";
|
|
7914
|
-
var AvatarImage =
|
|
8376
|
+
var AvatarImage = React41.forwardRef(
|
|
7915
8377
|
({ className, src, alt = "", onLoad, onError, ...props }, ref) => {
|
|
7916
|
-
const { setImageLoaded, setImageError } =
|
|
8378
|
+
const { setImageLoaded, setImageError } = React41.useContext(AvatarContext);
|
|
7917
8379
|
const handleLoad = (e) => {
|
|
7918
8380
|
setImageLoaded(true);
|
|
7919
8381
|
onLoad?.(e);
|
|
@@ -7937,9 +8399,9 @@ var AvatarImage = React40.forwardRef(
|
|
|
7937
8399
|
}
|
|
7938
8400
|
);
|
|
7939
8401
|
AvatarImage.displayName = "AvatarImage";
|
|
7940
|
-
var AvatarFallback =
|
|
8402
|
+
var AvatarFallback = React41.forwardRef(
|
|
7941
8403
|
({ className, children, ...props }, ref) => {
|
|
7942
|
-
const { size } =
|
|
8404
|
+
const { size } = React41.useContext(AvatarContext);
|
|
7943
8405
|
return /* @__PURE__ */ jsx(
|
|
7944
8406
|
"span",
|
|
7945
8407
|
{
|
|
@@ -8056,28 +8518,28 @@ var avatarPresenceDotVariants = cva({
|
|
|
8056
8518
|
// ../react-avatar-group/dist/index.js
|
|
8057
8519
|
function AvatarGroup({ users, max, size = "md", className }) {
|
|
8058
8520
|
const api = createAvatarGroup({ users, max});
|
|
8059
|
-
return
|
|
8521
|
+
return React41.createElement(
|
|
8060
8522
|
"div",
|
|
8061
8523
|
{ ...api.ariaProps, className: cn(avatarGroupStyles, className) },
|
|
8062
8524
|
api.visibleUsers.map(
|
|
8063
|
-
(user) =>
|
|
8525
|
+
(user) => React41.createElement(
|
|
8064
8526
|
"div",
|
|
8065
8527
|
{
|
|
8066
8528
|
key: user.id,
|
|
8067
8529
|
className: avatarVariants2({ size }),
|
|
8068
8530
|
...api.getAvatarAriaProps(user)
|
|
8069
8531
|
},
|
|
8070
|
-
user.src ?
|
|
8532
|
+
user.src ? React41.createElement("img", {
|
|
8071
8533
|
src: user.src,
|
|
8072
8534
|
alt: user.name,
|
|
8073
8535
|
className: avatarImageStyles
|
|
8074
|
-
}) :
|
|
8075
|
-
user.status &&
|
|
8536
|
+
}) : React41.createElement("span", null, api.getInitials(user.name)),
|
|
8537
|
+
user.status && React41.createElement("span", {
|
|
8076
8538
|
className: avatarPresenceDotVariants({ size, status: user.status })
|
|
8077
8539
|
})
|
|
8078
8540
|
)
|
|
8079
8541
|
),
|
|
8080
|
-
api.overflowCount > 0 &&
|
|
8542
|
+
api.overflowCount > 0 && React41.createElement(
|
|
8081
8543
|
"div",
|
|
8082
8544
|
{
|
|
8083
8545
|
className: avatarOverflowBadgeVariants({ size }),
|
|
@@ -8161,7 +8623,7 @@ var cardContentVariants = cva({
|
|
|
8161
8623
|
var cardFooterVariants = cva({
|
|
8162
8624
|
base: "flex items-center p-6 pt-0"
|
|
8163
8625
|
});
|
|
8164
|
-
var Card2 =
|
|
8626
|
+
var Card2 = React41.forwardRef(
|
|
8165
8627
|
({ className, ...props }, ref) => {
|
|
8166
8628
|
const api = createCard();
|
|
8167
8629
|
return /* @__PURE__ */ jsx(
|
|
@@ -8177,7 +8639,7 @@ var Card2 = React40.forwardRef(
|
|
|
8177
8639
|
}
|
|
8178
8640
|
);
|
|
8179
8641
|
Card2.displayName = "Card";
|
|
8180
|
-
var CardHeader =
|
|
8642
|
+
var CardHeader = React41.forwardRef(
|
|
8181
8643
|
({ className, ...props }, ref) => {
|
|
8182
8644
|
const api = createCardHeader();
|
|
8183
8645
|
return /* @__PURE__ */ jsx(
|
|
@@ -8192,7 +8654,7 @@ var CardHeader = React40.forwardRef(
|
|
|
8192
8654
|
}
|
|
8193
8655
|
);
|
|
8194
8656
|
CardHeader.displayName = "CardHeader";
|
|
8195
|
-
var CardTitle =
|
|
8657
|
+
var CardTitle = React41.forwardRef(
|
|
8196
8658
|
({ className, ...props }, ref) => {
|
|
8197
8659
|
const api = createCardTitle();
|
|
8198
8660
|
return /* @__PURE__ */ jsx(
|
|
@@ -8207,7 +8669,7 @@ var CardTitle = React40.forwardRef(
|
|
|
8207
8669
|
}
|
|
8208
8670
|
);
|
|
8209
8671
|
CardTitle.displayName = "CardTitle";
|
|
8210
|
-
var CardDescription =
|
|
8672
|
+
var CardDescription = React41.forwardRef(
|
|
8211
8673
|
({ className, ...props }, ref) => {
|
|
8212
8674
|
const api = createCardDescription();
|
|
8213
8675
|
return /* @__PURE__ */ jsx(
|
|
@@ -8222,7 +8684,7 @@ var CardDescription = React40.forwardRef(
|
|
|
8222
8684
|
}
|
|
8223
8685
|
);
|
|
8224
8686
|
CardDescription.displayName = "CardDescription";
|
|
8225
|
-
var CardContent =
|
|
8687
|
+
var CardContent = React41.forwardRef(
|
|
8226
8688
|
({ className, ...props }, ref) => {
|
|
8227
8689
|
const api = createCardContent();
|
|
8228
8690
|
return /* @__PURE__ */ jsx(
|
|
@@ -8237,7 +8699,7 @@ var CardContent = React40.forwardRef(
|
|
|
8237
8699
|
}
|
|
8238
8700
|
);
|
|
8239
8701
|
CardContent.displayName = "CardContent";
|
|
8240
|
-
var CardFooter =
|
|
8702
|
+
var CardFooter = React41.forwardRef(
|
|
8241
8703
|
({ className, ...props }, ref) => {
|
|
8242
8704
|
const api = createCardFooter();
|
|
8243
8705
|
return /* @__PURE__ */ jsx(
|
|
@@ -8318,7 +8780,7 @@ var checkboxVariants = cva({
|
|
|
8318
8780
|
size: "default"
|
|
8319
8781
|
}
|
|
8320
8782
|
});
|
|
8321
|
-
var Checkbox =
|
|
8783
|
+
var Checkbox = React41.forwardRef(
|
|
8322
8784
|
({ checked = false, onCheckedChange, disabled = false, size = "default", className, ...props }, ref) => {
|
|
8323
8785
|
const api = createCheckbox({ checked, disabled });
|
|
8324
8786
|
const checkedVariant = checked === "indeterminate" ? "indeterminate" : checked ? "true" : "false";
|
|
@@ -8629,13 +9091,13 @@ function DatePicker({
|
|
|
8629
9091
|
className,
|
|
8630
9092
|
disabled = false
|
|
8631
9093
|
}) {
|
|
8632
|
-
const [open, setOpen] =
|
|
8633
|
-
const [currentMonth, setCurrentMonth] =
|
|
9094
|
+
const [open, setOpen] = React41.useState(false);
|
|
9095
|
+
const [currentMonth, setCurrentMonth] = React41.useState(
|
|
8634
9096
|
() => value ? new Date(value.getFullYear(), value.getMonth(), 1) : new Date((/* @__PURE__ */ new Date()).getFullYear(), (/* @__PURE__ */ new Date()).getMonth(), 1)
|
|
8635
9097
|
);
|
|
8636
|
-
const [view, setView] =
|
|
8637
|
-
const containerRef =
|
|
8638
|
-
const api =
|
|
9098
|
+
const [view, setView] = React41.useState("calendar");
|
|
9099
|
+
const containerRef = React41.useRef(null);
|
|
9100
|
+
const api = React41.useMemo(
|
|
8639
9101
|
() => createDatePicker({
|
|
8640
9102
|
value,
|
|
8641
9103
|
onChange,
|
|
@@ -8649,7 +9111,7 @@ function DatePicker({
|
|
|
8649
9111
|
}),
|
|
8650
9112
|
[value, onChange, minDate, maxDate, showTime, format, placeholder, open]
|
|
8651
9113
|
);
|
|
8652
|
-
|
|
9114
|
+
React41.useMemo(() => {
|
|
8653
9115
|
createDatePicker({
|
|
8654
9116
|
value,
|
|
8655
9117
|
minDate,
|
|
@@ -8664,7 +9126,7 @@ function DatePicker({
|
|
|
8664
9126
|
});
|
|
8665
9127
|
return tempApi.days;
|
|
8666
9128
|
}, [value, minDate, maxDate, currentMonth]);
|
|
8667
|
-
|
|
9129
|
+
React41.useEffect(() => {
|
|
8668
9130
|
if (!open) return;
|
|
8669
9131
|
function handleClick(e) {
|
|
8670
9132
|
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
|
@@ -8674,7 +9136,7 @@ function DatePicker({
|
|
|
8674
9136
|
document.addEventListener("mousedown", handleClick);
|
|
8675
9137
|
return () => document.removeEventListener("mousedown", handleClick);
|
|
8676
9138
|
}, [open]);
|
|
8677
|
-
|
|
9139
|
+
React41.useEffect(() => {
|
|
8678
9140
|
if (!open) return;
|
|
8679
9141
|
function handleKeyDown(e) {
|
|
8680
9142
|
if (e.key === "Escape") {
|
|
@@ -8712,10 +9174,10 @@ function DatePicker({
|
|
|
8712
9174
|
onChange?.(newDate);
|
|
8713
9175
|
};
|
|
8714
9176
|
const monthLabel = currentMonth.toLocaleDateString("en-US", { month: "long", year: "numeric" });
|
|
8715
|
-
return
|
|
9177
|
+
return React41.createElement(
|
|
8716
9178
|
"div",
|
|
8717
9179
|
{ ref: containerRef, className: cn("relative inline-block", className) },
|
|
8718
|
-
|
|
9180
|
+
React41.createElement(
|
|
8719
9181
|
"button",
|
|
8720
9182
|
{
|
|
8721
9183
|
type: "button",
|
|
@@ -8727,17 +9189,17 @@ function DatePicker({
|
|
|
8727
9189
|
},
|
|
8728
9190
|
displayValue
|
|
8729
9191
|
),
|
|
8730
|
-
open &&
|
|
9192
|
+
open && React41.createElement(
|
|
8731
9193
|
"div",
|
|
8732
9194
|
{
|
|
8733
9195
|
className: datePickerDropdownStyles,
|
|
8734
9196
|
role: "dialog",
|
|
8735
9197
|
"aria-modal": true
|
|
8736
9198
|
},
|
|
8737
|
-
|
|
9199
|
+
React41.createElement(
|
|
8738
9200
|
"div",
|
|
8739
9201
|
{ className: "flex items-center justify-between mb-3" },
|
|
8740
|
-
|
|
9202
|
+
React41.createElement(
|
|
8741
9203
|
"button",
|
|
8742
9204
|
{
|
|
8743
9205
|
type: "button",
|
|
@@ -8747,8 +9209,8 @@ function DatePicker({
|
|
|
8747
9209
|
},
|
|
8748
9210
|
"\u2039"
|
|
8749
9211
|
),
|
|
8750
|
-
|
|
8751
|
-
|
|
9212
|
+
React41.createElement("span", { className: "text-sm font-medium" }, monthLabel),
|
|
9213
|
+
React41.createElement(
|
|
8752
9214
|
"button",
|
|
8753
9215
|
{
|
|
8754
9216
|
type: "button",
|
|
@@ -8759,11 +9221,11 @@ function DatePicker({
|
|
|
8759
9221
|
"\u203A"
|
|
8760
9222
|
)
|
|
8761
9223
|
),
|
|
8762
|
-
|
|
9224
|
+
React41.createElement(
|
|
8763
9225
|
"div",
|
|
8764
9226
|
{ className: "grid grid-cols-7 gap-0 text-center", role: "grid" },
|
|
8765
9227
|
["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"].map(
|
|
8766
|
-
(d) =>
|
|
9228
|
+
(d) => React41.createElement("div", { key: d, className: "text-xs text-muted-foreground py-1 font-medium" }, d)
|
|
8767
9229
|
),
|
|
8768
9230
|
api.days.map((day, i) => {
|
|
8769
9231
|
let state = "default";
|
|
@@ -8771,7 +9233,7 @@ function DatePicker({
|
|
|
8771
9233
|
else if (day.isSelected) state = "selected";
|
|
8772
9234
|
else if (day.isToday) state = "today";
|
|
8773
9235
|
else if (!day.isCurrentMonth) state = "outside";
|
|
8774
|
-
return
|
|
9236
|
+
return React41.createElement(
|
|
8775
9237
|
"button",
|
|
8776
9238
|
{
|
|
8777
9239
|
key: i,
|
|
@@ -8786,11 +9248,11 @@ function DatePicker({
|
|
|
8786
9248
|
);
|
|
8787
9249
|
})
|
|
8788
9250
|
),
|
|
8789
|
-
showTime &&
|
|
9251
|
+
showTime && React41.createElement(
|
|
8790
9252
|
"div",
|
|
8791
9253
|
{ className: datePickerTimeStyles },
|
|
8792
|
-
|
|
8793
|
-
|
|
9254
|
+
React41.createElement("span", { className: "text-sm text-muted-foreground" }, "Time:"),
|
|
9255
|
+
React41.createElement("input", {
|
|
8794
9256
|
type: "number",
|
|
8795
9257
|
min: 0,
|
|
8796
9258
|
max: 23,
|
|
@@ -8799,8 +9261,8 @@ function DatePicker({
|
|
|
8799
9261
|
className: datePickerTimeInputStyles,
|
|
8800
9262
|
"aria-label": "Hours"
|
|
8801
9263
|
}),
|
|
8802
|
-
|
|
8803
|
-
|
|
9264
|
+
React41.createElement("span", { className: "text-muted-foreground" }, ":"),
|
|
9265
|
+
React41.createElement("input", {
|
|
8804
9266
|
type: "number",
|
|
8805
9267
|
min: 0,
|
|
8806
9268
|
max: 59,
|
|
@@ -9072,10 +9534,10 @@ var statusBarVariants = cva({
|
|
|
9072
9534
|
theme: "dark"
|
|
9073
9535
|
}
|
|
9074
9536
|
});
|
|
9075
|
-
var MonacoDiffEditor =
|
|
9537
|
+
var MonacoDiffEditor = React41.lazy(
|
|
9076
9538
|
() => import('@monaco-editor/react').then((m) => ({ default: m.DiffEditor }))
|
|
9077
9539
|
);
|
|
9078
|
-
var DiffViewer =
|
|
9540
|
+
var DiffViewer = React41.forwardRef(
|
|
9079
9541
|
({
|
|
9080
9542
|
files,
|
|
9081
9543
|
original = "",
|
|
@@ -9096,12 +9558,12 @@ var DiffViewer = React40.forwardRef(
|
|
|
9096
9558
|
className,
|
|
9097
9559
|
editorOptions
|
|
9098
9560
|
}, ref) => {
|
|
9099
|
-
const [activeIdx, setActiveIdx] =
|
|
9100
|
-
const [sidebarOpen, setSidebarOpen] =
|
|
9101
|
-
const [viewMode, setViewMode] =
|
|
9102
|
-
|
|
9103
|
-
|
|
9104
|
-
const api =
|
|
9561
|
+
const [activeIdx, setActiveIdx] = React41.useState(controlledIndex);
|
|
9562
|
+
const [sidebarOpen, setSidebarOpen] = React41.useState(showSidebar);
|
|
9563
|
+
const [viewMode, setViewMode] = React41.useState(controlledViewMode);
|
|
9564
|
+
React41.useEffect(() => setActiveIdx(controlledIndex), [controlledIndex]);
|
|
9565
|
+
React41.useEffect(() => setViewMode(controlledViewMode), [controlledViewMode]);
|
|
9566
|
+
const api = React41.useMemo(
|
|
9105
9567
|
() => createDiffViewer({
|
|
9106
9568
|
files,
|
|
9107
9569
|
activeFileIndex: activeIdx,
|
|
@@ -9123,7 +9585,7 @@ var DiffViewer = React40.forwardRef(
|
|
|
9123
9585
|
);
|
|
9124
9586
|
const activeFile = files[activeIdx];
|
|
9125
9587
|
const detectedLang = language || (activeFile ? api.getLanguageForFile(activeFile.path) : "plaintext");
|
|
9126
|
-
|
|
9588
|
+
React41.useEffect(() => {
|
|
9127
9589
|
function onKey(e) {
|
|
9128
9590
|
if (e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement) return;
|
|
9129
9591
|
if (e.key === "j") {
|
|
@@ -9215,7 +9677,7 @@ var DiffViewer = React40.forwardRef(
|
|
|
9215
9677
|
);
|
|
9216
9678
|
}) }),
|
|
9217
9679
|
/* @__PURE__ */ jsx("div", { style: { flex: 1 }, children: /* @__PURE__ */ jsx(
|
|
9218
|
-
|
|
9680
|
+
React41.Suspense,
|
|
9219
9681
|
{
|
|
9220
9682
|
fallback: /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-full text-xs opacity-50", children: "Loading editor..." }),
|
|
9221
9683
|
children: /* @__PURE__ */ jsx(
|
|
@@ -9648,10 +10110,10 @@ var emojiPickerSectionLabelStyles = "px-2 py-1 text-xs font-medium text-muted-fo
|
|
|
9648
10110
|
|
|
9649
10111
|
// ../react-emoji-picker/dist/index.js
|
|
9650
10112
|
function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className }) {
|
|
9651
|
-
const [search, setSearch] =
|
|
9652
|
-
const [activeCategory, setActiveCategory] =
|
|
9653
|
-
const [recentEmojis, setRecentEmojis] =
|
|
9654
|
-
const api =
|
|
10113
|
+
const [search, setSearch] = React41.useState("");
|
|
10114
|
+
const [activeCategory, setActiveCategory] = React41.useState("smileys");
|
|
10115
|
+
const [recentEmojis, setRecentEmojis] = React41.useState(initialRecent);
|
|
10116
|
+
const api = React41.useMemo(
|
|
9655
10117
|
() => createEmojiPicker({
|
|
9656
10118
|
onSelect: void 0,
|
|
9657
10119
|
search,
|
|
@@ -9659,7 +10121,7 @@ function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className })
|
|
|
9659
10121
|
}),
|
|
9660
10122
|
[search, recentEmojis]
|
|
9661
10123
|
);
|
|
9662
|
-
const filteredEmojis =
|
|
10124
|
+
const filteredEmojis = React41.useMemo(() => {
|
|
9663
10125
|
if (search.trim()) {
|
|
9664
10126
|
const query = search.toLowerCase().trim();
|
|
9665
10127
|
const allEmojis = EMOJI_CATEGORIES.flatMap((cat) => EMOJI_DATA[cat]);
|
|
@@ -9679,22 +10141,22 @@ function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className })
|
|
|
9679
10141
|
setActiveCategory(cat);
|
|
9680
10142
|
setSearch("");
|
|
9681
10143
|
};
|
|
9682
|
-
return
|
|
10144
|
+
return React41.createElement(
|
|
9683
10145
|
"div",
|
|
9684
10146
|
{ className: cn(emojiPickerContainerStyles, className), ...api.ariaProps },
|
|
9685
10147
|
// Search input
|
|
9686
|
-
|
|
10148
|
+
React41.createElement("input", {
|
|
9687
10149
|
...api.searchInputProps,
|
|
9688
10150
|
className: emojiPickerSearchStyles,
|
|
9689
10151
|
value: search,
|
|
9690
10152
|
onChange: (e) => setSearch(e.target.value)
|
|
9691
10153
|
}),
|
|
9692
10154
|
// Category tabs
|
|
9693
|
-
!search &&
|
|
10155
|
+
!search && React41.createElement(
|
|
9694
10156
|
"div",
|
|
9695
10157
|
{ className: emojiPickerCategoryBarStyles },
|
|
9696
10158
|
api.categoryTabs.map(
|
|
9697
|
-
(tab) =>
|
|
10159
|
+
(tab) => React41.createElement(
|
|
9698
10160
|
"button",
|
|
9699
10161
|
{
|
|
9700
10162
|
key: tab.category,
|
|
@@ -9711,15 +10173,15 @@ function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className })
|
|
|
9711
10173
|
)
|
|
9712
10174
|
),
|
|
9713
10175
|
// Recent emojis section
|
|
9714
|
-
!search && recentEmojis.length > 0 &&
|
|
10176
|
+
!search && recentEmojis.length > 0 && React41.createElement(
|
|
9715
10177
|
"div",
|
|
9716
10178
|
null,
|
|
9717
|
-
|
|
9718
|
-
|
|
10179
|
+
React41.createElement("div", { className: emojiPickerSectionLabelStyles }, "Recent"),
|
|
10180
|
+
React41.createElement(
|
|
9719
10181
|
"div",
|
|
9720
10182
|
{ className: emojiPickerGridStyles },
|
|
9721
10183
|
recentEmojis.map(
|
|
9722
|
-
(emoji, i) =>
|
|
10184
|
+
(emoji, i) => React41.createElement(
|
|
9723
10185
|
"button",
|
|
9724
10186
|
{
|
|
9725
10187
|
key: `recent-${emoji.emoji}-${i}`,
|
|
@@ -9734,19 +10196,19 @@ function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className })
|
|
|
9734
10196
|
)
|
|
9735
10197
|
),
|
|
9736
10198
|
// Emoji grid
|
|
9737
|
-
|
|
10199
|
+
React41.createElement(
|
|
9738
10200
|
"div",
|
|
9739
10201
|
null,
|
|
9740
|
-
!search &&
|
|
10202
|
+
!search && React41.createElement(
|
|
9741
10203
|
"div",
|
|
9742
10204
|
{ className: emojiPickerSectionLabelStyles },
|
|
9743
10205
|
CATEGORY_LABELS[activeCategory]
|
|
9744
10206
|
),
|
|
9745
|
-
|
|
10207
|
+
React41.createElement(
|
|
9746
10208
|
"div",
|
|
9747
10209
|
{ className: emojiPickerGridStyles },
|
|
9748
10210
|
filteredEmojis.map(
|
|
9749
|
-
(emoji, i) =>
|
|
10211
|
+
(emoji, i) => React41.createElement(
|
|
9750
10212
|
"button",
|
|
9751
10213
|
{
|
|
9752
10214
|
key: `${emoji.emoji}-${i}`,
|
|
@@ -9758,7 +10220,7 @@ function EmojiPicker({ onSelect, recentEmojis: initialRecent = [], className })
|
|
|
9758
10220
|
emoji.emoji
|
|
9759
10221
|
)
|
|
9760
10222
|
),
|
|
9761
|
-
filteredEmojis.length === 0 &&
|
|
10223
|
+
filteredEmojis.length === 0 && React41.createElement(
|
|
9762
10224
|
"div",
|
|
9763
10225
|
{ className: "col-span-8 text-center text-sm text-muted-foreground py-4" },
|
|
9764
10226
|
"No emojis found"
|
|
@@ -9958,10 +10420,10 @@ function FileUpload({
|
|
|
9958
10420
|
className,
|
|
9959
10421
|
children
|
|
9960
10422
|
}) {
|
|
9961
|
-
const [files, setFiles] =
|
|
9962
|
-
const [isDragging, setIsDragging] =
|
|
9963
|
-
const inputRef =
|
|
9964
|
-
const api =
|
|
10423
|
+
const [files, setFiles] = React41.useState([]);
|
|
10424
|
+
const [isDragging, setIsDragging] = React41.useState(false);
|
|
10425
|
+
const inputRef = React41.useRef(null);
|
|
10426
|
+
const api = React41.useMemo(
|
|
9965
10427
|
() => createFileUpload({
|
|
9966
10428
|
accept,
|
|
9967
10429
|
maxSize,
|
|
@@ -10026,17 +10488,17 @@ function FileUpload({
|
|
|
10026
10488
|
handleClick();
|
|
10027
10489
|
}
|
|
10028
10490
|
};
|
|
10029
|
-
return
|
|
10491
|
+
return React41.createElement(
|
|
10030
10492
|
"div",
|
|
10031
10493
|
{ className },
|
|
10032
10494
|
// Hidden file input
|
|
10033
|
-
|
|
10495
|
+
React41.createElement("input", {
|
|
10034
10496
|
ref: inputRef,
|
|
10035
10497
|
...api.inputProps,
|
|
10036
10498
|
onChange: handleInputChange
|
|
10037
10499
|
}),
|
|
10038
10500
|
// Drop zone
|
|
10039
|
-
|
|
10501
|
+
React41.createElement(
|
|
10040
10502
|
"div",
|
|
10041
10503
|
{
|
|
10042
10504
|
...api.dropZoneProps,
|
|
@@ -10050,21 +10512,21 @@ function FileUpload({
|
|
|
10050
10512
|
onDragOver: handleDragOver,
|
|
10051
10513
|
onDrop: handleDrop
|
|
10052
10514
|
},
|
|
10053
|
-
children ??
|
|
10054
|
-
|
|
10515
|
+
children ?? React41.createElement(
|
|
10516
|
+
React41.Fragment,
|
|
10055
10517
|
null,
|
|
10056
|
-
|
|
10057
|
-
|
|
10518
|
+
React41.createElement("div", { className: "text-2xl mb-2" }, "\u{1F4C1}"),
|
|
10519
|
+
React41.createElement(
|
|
10058
10520
|
"p",
|
|
10059
10521
|
{ className: "text-sm text-muted-foreground" },
|
|
10060
10522
|
"Drag & drop files here, or click to select"
|
|
10061
10523
|
),
|
|
10062
|
-
accept &&
|
|
10524
|
+
accept && React41.createElement(
|
|
10063
10525
|
"p",
|
|
10064
10526
|
{ className: "text-xs text-muted-foreground mt-1" },
|
|
10065
10527
|
`Accepted: ${accept}`
|
|
10066
10528
|
),
|
|
10067
|
-
maxSize &&
|
|
10529
|
+
maxSize && React41.createElement(
|
|
10068
10530
|
"p",
|
|
10069
10531
|
{ className: "text-xs text-muted-foreground" },
|
|
10070
10532
|
`Max size: ${formatFileSize(maxSize)}`
|
|
@@ -10072,37 +10534,37 @@ function FileUpload({
|
|
|
10072
10534
|
)
|
|
10073
10535
|
),
|
|
10074
10536
|
// File list
|
|
10075
|
-
files.length > 0 &&
|
|
10537
|
+
files.length > 0 && React41.createElement(
|
|
10076
10538
|
"div",
|
|
10077
10539
|
{ className: fileUploadFileListStyles },
|
|
10078
10540
|
files.map(
|
|
10079
|
-
(file) =>
|
|
10541
|
+
(file) => React41.createElement(
|
|
10080
10542
|
"div",
|
|
10081
10543
|
{ key: file.id, className: fileUploadFileItemStyles },
|
|
10082
|
-
|
|
10544
|
+
React41.createElement(
|
|
10083
10545
|
"div",
|
|
10084
10546
|
{ className: "flex-1 min-w-0" },
|
|
10085
|
-
|
|
10086
|
-
|
|
10547
|
+
React41.createElement("div", { className: "font-medium truncate" }, file.name),
|
|
10548
|
+
React41.createElement(
|
|
10087
10549
|
"div",
|
|
10088
10550
|
{ className: "text-xs text-muted-foreground" },
|
|
10089
10551
|
formatFileSize(file.size)
|
|
10090
10552
|
),
|
|
10091
|
-
file.status === "uploading" &&
|
|
10553
|
+
file.status === "uploading" && React41.createElement(
|
|
10092
10554
|
"div",
|
|
10093
10555
|
{ className: cn(fileUploadProgressStyles, "mt-1") },
|
|
10094
|
-
|
|
10556
|
+
React41.createElement("div", {
|
|
10095
10557
|
className: fileUploadProgressBarStyles,
|
|
10096
10558
|
style: { width: `${file.progress}%` }
|
|
10097
10559
|
})
|
|
10098
10560
|
),
|
|
10099
|
-
file.error &&
|
|
10561
|
+
file.error && React41.createElement(
|
|
10100
10562
|
"div",
|
|
10101
10563
|
{ className: "text-xs text-destructive mt-0.5" },
|
|
10102
10564
|
file.error
|
|
10103
10565
|
)
|
|
10104
10566
|
),
|
|
10105
|
-
|
|
10567
|
+
React41.createElement(
|
|
10106
10568
|
"button",
|
|
10107
10569
|
{
|
|
10108
10570
|
type: "button",
|
|
@@ -10237,13 +10699,13 @@ function KeyboardShortcut({
|
|
|
10237
10699
|
enabled = true,
|
|
10238
10700
|
preventDefault = true
|
|
10239
10701
|
}) {
|
|
10240
|
-
const apiRef =
|
|
10702
|
+
const apiRef = React41.useRef(
|
|
10241
10703
|
createKeyboardShortcut({ keys, onTrigger, enabled, preventDefault })
|
|
10242
10704
|
);
|
|
10243
|
-
|
|
10705
|
+
React41.useEffect(() => {
|
|
10244
10706
|
apiRef.current = createKeyboardShortcut({ keys, onTrigger, enabled, preventDefault });
|
|
10245
10707
|
}, [keys, onTrigger, enabled, preventDefault]);
|
|
10246
|
-
|
|
10708
|
+
React41.useEffect(() => {
|
|
10247
10709
|
if (!enabled) return;
|
|
10248
10710
|
const handleKeyDown = (e) => {
|
|
10249
10711
|
apiRef.current.handler(e);
|
|
@@ -10259,15 +10721,15 @@ function ShortcutBadge({ keys, platform = true, className }) {
|
|
|
10259
10721
|
}, enabled: false });
|
|
10260
10722
|
const displayKeys = platform ? api.platformDisplay : api.display;
|
|
10261
10723
|
const isMacDisplay = platform && displayKeys !== api.display;
|
|
10262
|
-
return
|
|
10724
|
+
return React41.createElement(
|
|
10263
10725
|
"kbd",
|
|
10264
10726
|
{ ...api.badgeAriaProps, className: cn(shortcutBadgeStyles, className) },
|
|
10265
|
-
isMacDisplay ?
|
|
10266
|
-
(key, i) =>
|
|
10267
|
-
|
|
10727
|
+
isMacDisplay ? React41.createElement("span", null, displayKeys) : keys.map(
|
|
10728
|
+
(key, i) => React41.createElement(
|
|
10729
|
+
React41.Fragment,
|
|
10268
10730
|
{ key: i },
|
|
10269
|
-
i > 0 &&
|
|
10270
|
-
|
|
10731
|
+
i > 0 && React41.createElement("span", { className: shortcutSeparatorStyles }, "+"),
|
|
10732
|
+
React41.createElement(
|
|
10271
10733
|
"span",
|
|
10272
10734
|
{ className: shortcutKeyStyles },
|
|
10273
10735
|
formatShortcut([key], false)
|
|
@@ -10443,7 +10905,7 @@ var otpInputSlotVariants = cva({
|
|
|
10443
10905
|
filled: "false"
|
|
10444
10906
|
}
|
|
10445
10907
|
});
|
|
10446
|
-
var OtpInput =
|
|
10908
|
+
var OtpInput = React41.forwardRef(
|
|
10447
10909
|
({
|
|
10448
10910
|
length = 6,
|
|
10449
10911
|
value = "",
|
|
@@ -10455,15 +10917,15 @@ var OtpInput = React40.forwardRef(
|
|
|
10455
10917
|
className,
|
|
10456
10918
|
...props
|
|
10457
10919
|
}, ref) => {
|
|
10458
|
-
const inputRefs =
|
|
10459
|
-
const [focusedIndex, setFocusedIndex] =
|
|
10460
|
-
const [values, setValues] =
|
|
10920
|
+
const inputRefs = React41.useRef([]);
|
|
10921
|
+
const [focusedIndex, setFocusedIndex] = React41.useState(autoFocus ? 0 : -1);
|
|
10922
|
+
const [values, setValues] = React41.useState(
|
|
10461
10923
|
() => Array.from({ length }, (_, i) => value.charAt(i) || "")
|
|
10462
10924
|
);
|
|
10463
|
-
|
|
10925
|
+
React41.useEffect(() => {
|
|
10464
10926
|
setValues(Array.from({ length }, (_, i) => value.charAt(i) || ""));
|
|
10465
10927
|
}, [value, length]);
|
|
10466
|
-
|
|
10928
|
+
React41.useEffect(() => {
|
|
10467
10929
|
if (autoFocus && inputRefs.current[0]) {
|
|
10468
10930
|
inputRefs.current[0].focus();
|
|
10469
10931
|
}
|
|
@@ -10643,13 +11105,13 @@ function PresenceIndicator({
|
|
|
10643
11105
|
className
|
|
10644
11106
|
}) {
|
|
10645
11107
|
const api = createPresence({ status, showLabel, label });
|
|
10646
|
-
return
|
|
11108
|
+
return React41.createElement(
|
|
10647
11109
|
"span",
|
|
10648
11110
|
{ ...api.ariaProps, className: cn(presenceContainerStyles, className) },
|
|
10649
|
-
|
|
11111
|
+
React41.createElement("span", {
|
|
10650
11112
|
className: presenceDotVariants({ status, size })
|
|
10651
11113
|
}),
|
|
10652
|
-
api.showLabel &&
|
|
11114
|
+
api.showLabel && React41.createElement("span", { className: presenceLabelStyles }, api.label)
|
|
10653
11115
|
);
|
|
10654
11116
|
}
|
|
10655
11117
|
PresenceIndicator.displayName = "PresenceIndicator";
|
|
@@ -10737,7 +11199,7 @@ var radioCircleVariants = cva({
|
|
|
10737
11199
|
});
|
|
10738
11200
|
|
|
10739
11201
|
// ../react-radio/dist/index.js
|
|
10740
|
-
var RadioContext =
|
|
11202
|
+
var RadioContext = React41.createContext(null);
|
|
10741
11203
|
function RadioGroup({
|
|
10742
11204
|
children,
|
|
10743
11205
|
className,
|
|
@@ -10748,25 +11210,25 @@ function RadioGroup({
|
|
|
10748
11210
|
disabled = false,
|
|
10749
11211
|
orientation = "vertical"
|
|
10750
11212
|
}) {
|
|
10751
|
-
const [internalValue, setInternalValue] =
|
|
11213
|
+
const [internalValue, setInternalValue] = React41.useState(defaultValue);
|
|
10752
11214
|
const isControlled = controlledValue !== void 0;
|
|
10753
11215
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
10754
11216
|
const api = createRadioGroup({ value: currentValue, name, disabled, orientation });
|
|
10755
|
-
const handleChange =
|
|
11217
|
+
const handleChange = React41.useCallback(
|
|
10756
11218
|
(val) => {
|
|
10757
11219
|
if (!isControlled) setInternalValue(val);
|
|
10758
11220
|
onValueChange?.(val);
|
|
10759
11221
|
},
|
|
10760
11222
|
[isControlled, onValueChange]
|
|
10761
11223
|
);
|
|
10762
|
-
const ctx =
|
|
11224
|
+
const ctx = React41.useMemo(
|
|
10763
11225
|
() => ({ value: currentValue, onValueChange: handleChange, name, disabled }),
|
|
10764
11226
|
[currentValue, handleChange, name, disabled]
|
|
10765
11227
|
);
|
|
10766
|
-
return
|
|
11228
|
+
return React41.createElement(
|
|
10767
11229
|
RadioContext.Provider,
|
|
10768
11230
|
{ value: ctx },
|
|
10769
|
-
|
|
11231
|
+
React41.createElement(
|
|
10770
11232
|
"div",
|
|
10771
11233
|
{ ...api.groupProps, className: cn(radioGroupVariants({ orientation }), className) },
|
|
10772
11234
|
children
|
|
@@ -10774,17 +11236,17 @@ function RadioGroup({
|
|
|
10774
11236
|
);
|
|
10775
11237
|
}
|
|
10776
11238
|
function RadioItem({ value, children, disabled = false, className }) {
|
|
10777
|
-
const ctx =
|
|
11239
|
+
const ctx = React41.useContext(RadioContext);
|
|
10778
11240
|
if (!ctx) throw new Error("RadioItem must be used within RadioGroup");
|
|
10779
11241
|
const isChecked = ctx.value === value;
|
|
10780
11242
|
const isDisabled = ctx.disabled || disabled;
|
|
10781
|
-
return
|
|
11243
|
+
return React41.createElement(
|
|
10782
11244
|
"label",
|
|
10783
11245
|
{
|
|
10784
11246
|
className: cn(radioItemVariants({ disabled: isDisabled ? "true" : "false" }), className),
|
|
10785
11247
|
"data-state": isChecked ? "checked" : "unchecked"
|
|
10786
11248
|
},
|
|
10787
|
-
|
|
11249
|
+
React41.createElement(
|
|
10788
11250
|
"button",
|
|
10789
11251
|
{
|
|
10790
11252
|
type: "button",
|
|
@@ -10796,12 +11258,12 @@ function RadioItem({ value, children, disabled = false, className }) {
|
|
|
10796
11258
|
className: cn(radioCircleVariants({ checked: isChecked ? "true" : "false" })),
|
|
10797
11259
|
onClick: () => !isDisabled && ctx.onValueChange(value)
|
|
10798
11260
|
},
|
|
10799
|
-
isChecked &&
|
|
11261
|
+
isChecked && React41.createElement(
|
|
10800
11262
|
"span",
|
|
10801
11263
|
{ className: "block h-2 w-2 rounded-full bg-primary-foreground mx-auto" }
|
|
10802
11264
|
)
|
|
10803
11265
|
),
|
|
10804
|
-
children &&
|
|
11266
|
+
children && React41.createElement("span", { className: "text-sm" }, children)
|
|
10805
11267
|
);
|
|
10806
11268
|
}
|
|
10807
11269
|
RadioGroup.displayName = "RadioGroup";
|
|
@@ -10873,11 +11335,11 @@ function ReactionBar({
|
|
|
10873
11335
|
className
|
|
10874
11336
|
}) {
|
|
10875
11337
|
const api = createReactionBar({ reactions, onToggle, onAdd });
|
|
10876
|
-
return
|
|
11338
|
+
return React41.createElement(
|
|
10877
11339
|
"div",
|
|
10878
11340
|
{ ...api.ariaProps, className: cn(reactionBarStyles, className) },
|
|
10879
11341
|
api.reactions.map(
|
|
10880
|
-
(reaction, i) =>
|
|
11342
|
+
(reaction, i) => React41.createElement(
|
|
10881
11343
|
"button",
|
|
10882
11344
|
{
|
|
10883
11345
|
key: `${reaction.emoji}-${i}`,
|
|
@@ -10888,11 +11350,11 @@ function ReactionBar({
|
|
|
10888
11350
|
onClick: () => api.toggle(reaction.emoji),
|
|
10889
11351
|
...api.getReactionAriaProps(reaction)
|
|
10890
11352
|
},
|
|
10891
|
-
|
|
10892
|
-
|
|
11353
|
+
React41.createElement("span", { className: reactionEmojiStyles }, reaction.emoji),
|
|
11354
|
+
React41.createElement("span", { className: reactionCountStyles }, reaction.count)
|
|
10893
11355
|
)
|
|
10894
11356
|
),
|
|
10895
|
-
showAddButton &&
|
|
11357
|
+
showAddButton && React41.createElement(
|
|
10896
11358
|
"button",
|
|
10897
11359
|
{
|
|
10898
11360
|
type: "button",
|
|
@@ -11041,7 +11503,7 @@ var selectItemVariants = cva({
|
|
|
11041
11503
|
selected: "false"
|
|
11042
11504
|
}
|
|
11043
11505
|
});
|
|
11044
|
-
var SelectContext =
|
|
11506
|
+
var SelectContext = React41.createContext({
|
|
11045
11507
|
value: void 0,
|
|
11046
11508
|
onValueChange: () => {
|
|
11047
11509
|
},
|
|
@@ -11061,7 +11523,7 @@ function Select({
|
|
|
11061
11523
|
children,
|
|
11062
11524
|
placeholder = "Select an option"
|
|
11063
11525
|
}) {
|
|
11064
|
-
const [open, setOpen] =
|
|
11526
|
+
const [open, setOpen] = React41.useState(false);
|
|
11065
11527
|
const api = createSelect({ value, disabled, open, placeholder });
|
|
11066
11528
|
return /* @__PURE__ */ jsx(
|
|
11067
11529
|
SelectContext.Provider,
|
|
@@ -11084,9 +11546,9 @@ function Select({
|
|
|
11084
11546
|
}
|
|
11085
11547
|
);
|
|
11086
11548
|
}
|
|
11087
|
-
var SelectTrigger =
|
|
11549
|
+
var SelectTrigger = React41.forwardRef(
|
|
11088
11550
|
({ className, children, size = "default", ...props }, ref) => {
|
|
11089
|
-
const { open, setOpen, disabled, triggerId, contentId } =
|
|
11551
|
+
const { open, setOpen, disabled, triggerId, contentId } = React41.useContext(SelectContext);
|
|
11090
11552
|
const api = createSelect({ disabled, open });
|
|
11091
11553
|
const handleClick = () => {
|
|
11092
11554
|
if (!disabled) {
|
|
@@ -11143,9 +11605,9 @@ var SelectTrigger = React40.forwardRef(
|
|
|
11143
11605
|
}
|
|
11144
11606
|
);
|
|
11145
11607
|
SelectTrigger.displayName = "SelectTrigger";
|
|
11146
|
-
var SelectContent =
|
|
11608
|
+
var SelectContent = React41.forwardRef(
|
|
11147
11609
|
({ className, children, ...props }, ref) => {
|
|
11148
|
-
const { open, contentId, triggerId } =
|
|
11610
|
+
const { open, contentId, triggerId } = React41.useContext(SelectContext);
|
|
11149
11611
|
if (!open) return null;
|
|
11150
11612
|
return /* @__PURE__ */ jsx(
|
|
11151
11613
|
"div",
|
|
@@ -11163,9 +11625,9 @@ var SelectContent = React40.forwardRef(
|
|
|
11163
11625
|
}
|
|
11164
11626
|
);
|
|
11165
11627
|
SelectContent.displayName = "SelectContent";
|
|
11166
|
-
var SelectItem =
|
|
11628
|
+
var SelectItem = React41.forwardRef(
|
|
11167
11629
|
({ className, children, value: itemValue, disabled: itemDisabled = false, ...props }, ref) => {
|
|
11168
|
-
const { value, onValueChange, setOpen } =
|
|
11630
|
+
const { value, onValueChange, setOpen } = React41.useContext(SelectContext);
|
|
11169
11631
|
const isSelected = value === itemValue;
|
|
11170
11632
|
const handleClick = () => {
|
|
11171
11633
|
if (!itemDisabled) {
|
|
@@ -11297,11 +11759,11 @@ function StatusIndicator({
|
|
|
11297
11759
|
}) {
|
|
11298
11760
|
const api = createStatusIndicator({ type, label, pulse });
|
|
11299
11761
|
const dotClassName = api.pulse ? statusPulseVariants({ type }) : statusDotVariants({ type });
|
|
11300
|
-
return
|
|
11762
|
+
return React41.createElement(
|
|
11301
11763
|
"span",
|
|
11302
11764
|
{ ...api.ariaProps, className: cn(statusContainerStyles, className) },
|
|
11303
|
-
|
|
11304
|
-
showLabel &&
|
|
11765
|
+
React41.createElement("span", { className: dotClassName }),
|
|
11766
|
+
showLabel && React41.createElement("span", { className: statusLabelStyles }, api.label)
|
|
11305
11767
|
);
|
|
11306
11768
|
}
|
|
11307
11769
|
StatusIndicator.displayName = "StatusIndicator";
|
|
@@ -11388,7 +11850,7 @@ var switchThumbVariants = cva({
|
|
|
11388
11850
|
{ checked: "true", size: "lg", class: "translate-x-5" }
|
|
11389
11851
|
]
|
|
11390
11852
|
});
|
|
11391
|
-
var Switch =
|
|
11853
|
+
var Switch = React41.forwardRef(
|
|
11392
11854
|
({ checked = false, onCheckedChange, disabled = false, size = "default", className, ...props }, ref) => {
|
|
11393
11855
|
const api = createSwitch({ checked, disabled });
|
|
11394
11856
|
const handleClick = () => {
|
|
@@ -11527,41 +11989,41 @@ function MessageComponent({
|
|
|
11527
11989
|
message,
|
|
11528
11990
|
api
|
|
11529
11991
|
}) {
|
|
11530
|
-
return
|
|
11992
|
+
return React41.createElement(
|
|
11531
11993
|
"div",
|
|
11532
11994
|
{ className: threadMessageStyles, ...api.getMessageAriaProps(message) },
|
|
11533
11995
|
// Avatar
|
|
11534
|
-
|
|
11996
|
+
React41.createElement(
|
|
11535
11997
|
"div",
|
|
11536
11998
|
{ className: threadAvatarStyles },
|
|
11537
|
-
message.author.avatarUrl ?
|
|
11999
|
+
message.author.avatarUrl ? React41.createElement("img", {
|
|
11538
12000
|
src: message.author.avatarUrl,
|
|
11539
12001
|
alt: message.author.name,
|
|
11540
12002
|
className: "h-full w-full object-cover"
|
|
11541
12003
|
}) : message.author.name.charAt(0).toUpperCase()
|
|
11542
12004
|
),
|
|
11543
12005
|
// Content
|
|
11544
|
-
|
|
12006
|
+
React41.createElement(
|
|
11545
12007
|
"div",
|
|
11546
12008
|
{ className: threadContentStyles },
|
|
11547
|
-
|
|
12009
|
+
React41.createElement(
|
|
11548
12010
|
"div",
|
|
11549
12011
|
{ className: "flex items-baseline" },
|
|
11550
|
-
|
|
11551
|
-
|
|
12012
|
+
React41.createElement("span", { className: threadAuthorStyles }, message.author.name),
|
|
12013
|
+
React41.createElement(
|
|
11552
12014
|
"span",
|
|
11553
12015
|
{ className: threadTimestampStyles },
|
|
11554
12016
|
api.formatTimestamp(message.timestamp)
|
|
11555
12017
|
),
|
|
11556
|
-
message.edited &&
|
|
12018
|
+
message.edited && React41.createElement("span", { className: threadEditedStyles }, "(edited)")
|
|
11557
12019
|
),
|
|
11558
|
-
|
|
12020
|
+
React41.createElement("div", { className: threadBodyStyles }, message.content),
|
|
11559
12021
|
// Reactions
|
|
11560
|
-
message.reactions && message.reactions.length > 0 &&
|
|
12022
|
+
message.reactions && message.reactions.length > 0 && React41.createElement(
|
|
11561
12023
|
"div",
|
|
11562
12024
|
{ className: threadReactionsStyles },
|
|
11563
12025
|
message.reactions.map(
|
|
11564
|
-
(reaction, i) =>
|
|
12026
|
+
(reaction, i) => React41.createElement(
|
|
11565
12027
|
"button",
|
|
11566
12028
|
{
|
|
11567
12029
|
key: `${reaction.emoji}-${i}`,
|
|
@@ -11577,25 +12039,25 @@ function MessageComponent({
|
|
|
11577
12039
|
)
|
|
11578
12040
|
),
|
|
11579
12041
|
// Reply indicator
|
|
11580
|
-
message.replies && message.replies.length > 0 &&
|
|
12042
|
+
message.replies && message.replies.length > 0 && React41.createElement(
|
|
11581
12043
|
"div",
|
|
11582
12044
|
{ className: threadReplyIndicatorStyles },
|
|
11583
12045
|
`${message.replies.length} ${message.replies.length === 1 ? "reply" : "replies"}`
|
|
11584
12046
|
),
|
|
11585
12047
|
// Attachments
|
|
11586
12048
|
message.attachments && message.attachments.map(
|
|
11587
|
-
(attachment) =>
|
|
12049
|
+
(attachment) => React41.createElement(
|
|
11588
12050
|
"div",
|
|
11589
12051
|
{ key: attachment.id, className: threadAttachmentStyles },
|
|
11590
|
-
|
|
11591
|
-
|
|
12052
|
+
React41.createElement("span", null, "\u{1F4CE}"),
|
|
12053
|
+
React41.createElement("span", { className: "truncate" }, attachment.name)
|
|
11592
12054
|
)
|
|
11593
12055
|
),
|
|
11594
12056
|
// Actions (reply button)
|
|
11595
|
-
|
|
12057
|
+
React41.createElement(
|
|
11596
12058
|
"div",
|
|
11597
12059
|
{ className: threadActionsStyles },
|
|
11598
|
-
|
|
12060
|
+
React41.createElement(
|
|
11599
12061
|
"button",
|
|
11600
12062
|
{
|
|
11601
12063
|
type: "button",
|
|
@@ -11617,11 +12079,11 @@ function ThreadView({
|
|
|
11617
12079
|
className
|
|
11618
12080
|
}) {
|
|
11619
12081
|
const api = createThreadView({ messages, onReply, onReact, currentUserId });
|
|
11620
|
-
return
|
|
12082
|
+
return React41.createElement(
|
|
11621
12083
|
"div",
|
|
11622
12084
|
{ ...api.ariaProps, className: cn(threadContainerStyles, className) },
|
|
11623
12085
|
messages.map(
|
|
11624
|
-
(message) =>
|
|
12086
|
+
(message) => React41.createElement(MessageComponent, {
|
|
11625
12087
|
key: message.id,
|
|
11626
12088
|
message,
|
|
11627
12089
|
api
|
|
@@ -11631,6 +12093,239 @@ function ThreadView({
|
|
|
11631
12093
|
}
|
|
11632
12094
|
ThreadView.displayName = "ThreadView";
|
|
11633
12095
|
|
|
11634
|
-
|
|
12096
|
+
// ../table-of-contents/dist/index.js
|
|
12097
|
+
function parseHeadings(container, selectors = "h2, h3, h4") {
|
|
12098
|
+
const headings = Array.from(container.querySelectorAll(selectors));
|
|
12099
|
+
return headings.map((h) => ({
|
|
12100
|
+
id: h.id || h.textContent?.toLowerCase().replace(/\s+/g, "-") || "",
|
|
12101
|
+
text: h.textContent || "",
|
|
12102
|
+
level: parseInt(h.tagName.charAt(1), 10)
|
|
12103
|
+
})).filter((h) => h.id !== "");
|
|
12104
|
+
}
|
|
12105
|
+
function observeHeadings(headingIds, callback, options) {
|
|
12106
|
+
const observer = new IntersectionObserver((entries) => {
|
|
12107
|
+
for (const entry of entries) {
|
|
12108
|
+
if (entry.isIntersecting) {
|
|
12109
|
+
callback(entry.target.id);
|
|
12110
|
+
break;
|
|
12111
|
+
}
|
|
12112
|
+
}
|
|
12113
|
+
}, { rootMargin: "0px 0px -80% 0px", ...options });
|
|
12114
|
+
headingIds.forEach((id) => {
|
|
12115
|
+
const el = document.getElementById(id);
|
|
12116
|
+
if (el) observer.observe(el);
|
|
12117
|
+
});
|
|
12118
|
+
return () => observer.disconnect();
|
|
12119
|
+
}
|
|
12120
|
+
var TableOfContents = React41.forwardRef(
|
|
12121
|
+
({ className, containerRef, selectors = "h2, h3, h4", onActiveIdChange, ...props }, ref) => {
|
|
12122
|
+
const [headings, setHeadings] = React41.useState([]);
|
|
12123
|
+
const [activeId, setActiveId] = React41.useState("");
|
|
12124
|
+
React41.useEffect(() => {
|
|
12125
|
+
const container = containerRef?.current || document.body;
|
|
12126
|
+
if (!container) return;
|
|
12127
|
+
const parsedHeadings = parseHeadings(container, selectors);
|
|
12128
|
+
setHeadings(parsedHeadings);
|
|
12129
|
+
if (parsedHeadings.length === 0) return;
|
|
12130
|
+
const disconnect = observeHeadings(parsedHeadings.map((h) => h.id), (id) => {
|
|
12131
|
+
setActiveId(id);
|
|
12132
|
+
onActiveIdChange?.(id);
|
|
12133
|
+
});
|
|
12134
|
+
return () => disconnect();
|
|
12135
|
+
}, [containerRef, selectors, onActiveIdChange]);
|
|
12136
|
+
if (headings.length === 0) {
|
|
12137
|
+
return null;
|
|
12138
|
+
}
|
|
12139
|
+
return /* @__PURE__ */ jsx("nav", { ref, className: cn("space-y-1", className), ...props, children: /* @__PURE__ */ jsx("ul", { className: "m-0 list-none p-0", children: headings.map((heading) => /* @__PURE__ */ jsx(
|
|
12140
|
+
"li",
|
|
12141
|
+
{
|
|
12142
|
+
className: cn(
|
|
12143
|
+
"py-1",
|
|
12144
|
+
heading.level === 3 ? "pl-4" : heading.level === 4 ? "pl-8" : ""
|
|
12145
|
+
),
|
|
12146
|
+
children: /* @__PURE__ */ jsx(
|
|
12147
|
+
"a",
|
|
12148
|
+
{
|
|
12149
|
+
href: `#${heading.id}`,
|
|
12150
|
+
className: cn(
|
|
12151
|
+
"block text-sm transition-colors hover:text-foreground",
|
|
12152
|
+
activeId === heading.id ? "font-medium text-foreground" : "text-muted-foreground"
|
|
12153
|
+
),
|
|
12154
|
+
children: heading.text
|
|
12155
|
+
}
|
|
12156
|
+
)
|
|
12157
|
+
},
|
|
12158
|
+
heading.id
|
|
12159
|
+
)) }) });
|
|
12160
|
+
}
|
|
12161
|
+
);
|
|
12162
|
+
TableOfContents.displayName = "TableOfContents";
|
|
12163
|
+
var CarouselContext = React41.createContext(null);
|
|
12164
|
+
var Carousel = React41.forwardRef(
|
|
12165
|
+
({ className, type = "single", collapsible, value: controlledValue, defaultValue, onValueChange, ...props }, ref) => {
|
|
12166
|
+
const [uncontrolledValue, setUncontrolledValue] = React41.useState(
|
|
12167
|
+
defaultValue ?? (type === "multiple" ? [] : "")
|
|
12168
|
+
);
|
|
12169
|
+
const value = controlledValue !== void 0 ? controlledValue : uncontrolledValue;
|
|
12170
|
+
const handleValueChange = React41.useCallback(
|
|
12171
|
+
(itemValue) => {
|
|
12172
|
+
if (type === "single") {
|
|
12173
|
+
const newValue = value === itemValue && collapsible ? "" : itemValue;
|
|
12174
|
+
setUncontrolledValue(newValue);
|
|
12175
|
+
onValueChange?.(newValue);
|
|
12176
|
+
} else {
|
|
12177
|
+
const arrValue = Array.isArray(value) ? value : [];
|
|
12178
|
+
const newValue = arrValue.includes(itemValue) ? arrValue.filter((v) => v !== itemValue) : [...arrValue, itemValue];
|
|
12179
|
+
setUncontrolledValue(newValue);
|
|
12180
|
+
onValueChange?.(newValue);
|
|
12181
|
+
}
|
|
12182
|
+
},
|
|
12183
|
+
[type, collapsible, value, onValueChange]
|
|
12184
|
+
);
|
|
12185
|
+
return /* @__PURE__ */ jsx(CarouselContext.Provider, { value: { type, value, onValueChange: handleValueChange }, children: /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col w-full", className), ...props }) });
|
|
12186
|
+
}
|
|
12187
|
+
);
|
|
12188
|
+
Carousel.displayName = "Carousel";
|
|
12189
|
+
var CarouselItemContext = React41.createContext(null);
|
|
12190
|
+
var CarouselItem = React41.forwardRef(
|
|
12191
|
+
({ className, value, ...props }, ref) => {
|
|
12192
|
+
const context = React41.useContext(CarouselContext);
|
|
12193
|
+
if (!context) throw new Error("CarouselItem must be within Carousel");
|
|
12194
|
+
const isOpen = context.type === "single" ? context.value === value : Array.isArray(context.value) && context.value.includes(value);
|
|
12195
|
+
return /* @__PURE__ */ jsx(CarouselItemContext.Provider, { value: { value, isOpen }, children: /* @__PURE__ */ jsx("div", { ref, className: cn("border-b border-border", className), "data-state": isOpen ? "open" : "closed", ...props }) });
|
|
12196
|
+
}
|
|
12197
|
+
);
|
|
12198
|
+
CarouselItem.displayName = "CarouselItem";
|
|
12199
|
+
var CarouselTrigger = React41.forwardRef(
|
|
12200
|
+
({ className, children, ...props }, ref) => {
|
|
12201
|
+
const carouselContext = React41.useContext(CarouselContext);
|
|
12202
|
+
const itemContext = React41.useContext(CarouselItemContext);
|
|
12203
|
+
if (!carouselContext || !itemContext) throw new Error("CarouselTrigger missing context");
|
|
12204
|
+
return /* @__PURE__ */ jsx("h3", { className: "flex m-0 p-0", children: /* @__PURE__ */ jsxs(
|
|
12205
|
+
"button",
|
|
12206
|
+
{
|
|
12207
|
+
ref,
|
|
12208
|
+
type: "button",
|
|
12209
|
+
"aria-expanded": itemContext.isOpen,
|
|
12210
|
+
className: cn(
|
|
12211
|
+
"flex flex-1 items-center justify-between py-4 text-sm font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
|
|
12212
|
+
className
|
|
12213
|
+
),
|
|
12214
|
+
"data-state": itemContext.isOpen ? "open" : "closed",
|
|
12215
|
+
onClick: () => carouselContext.onValueChange(itemContext.value),
|
|
12216
|
+
...props,
|
|
12217
|
+
children: [
|
|
12218
|
+
children,
|
|
12219
|
+
/* @__PURE__ */ jsx(
|
|
12220
|
+
"svg",
|
|
12221
|
+
{
|
|
12222
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
12223
|
+
width: "24",
|
|
12224
|
+
height: "24",
|
|
12225
|
+
viewBox: "0 0 24 24",
|
|
12226
|
+
fill: "none",
|
|
12227
|
+
stroke: "currentColor",
|
|
12228
|
+
strokeWidth: "2",
|
|
12229
|
+
strokeLinecap: "round",
|
|
12230
|
+
strokeLinejoin: "round",
|
|
12231
|
+
className: "h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200",
|
|
12232
|
+
children: /* @__PURE__ */ jsx("path", { d: "m6 9 6 6 6-6" })
|
|
12233
|
+
}
|
|
12234
|
+
)
|
|
12235
|
+
]
|
|
12236
|
+
}
|
|
12237
|
+
) });
|
|
12238
|
+
}
|
|
12239
|
+
);
|
|
12240
|
+
CarouselTrigger.displayName = "CarouselTrigger";
|
|
12241
|
+
var CarouselContent = React41.forwardRef(
|
|
12242
|
+
({ className, children, ...props }, ref) => {
|
|
12243
|
+
const itemContext = React41.useContext(CarouselItemContext);
|
|
12244
|
+
if (!itemContext) throw new Error("CarouselContent missing context");
|
|
12245
|
+
return /* @__PURE__ */ jsx(
|
|
12246
|
+
"div",
|
|
12247
|
+
{
|
|
12248
|
+
ref,
|
|
12249
|
+
className: cn(
|
|
12250
|
+
"overflow-hidden text-sm",
|
|
12251
|
+
className
|
|
12252
|
+
),
|
|
12253
|
+
"data-state": itemContext.isOpen ? "open" : "closed",
|
|
12254
|
+
hidden: !itemContext.isOpen,
|
|
12255
|
+
...props,
|
|
12256
|
+
children: /* @__PURE__ */ jsx("div", { className: "pb-4 pt-0 text-muted-foreground leading-relaxed", children })
|
|
12257
|
+
}
|
|
12258
|
+
);
|
|
12259
|
+
}
|
|
12260
|
+
);
|
|
12261
|
+
CarouselContent.displayName = "CarouselContent";
|
|
12262
|
+
var Pagination = React41.forwardRef(
|
|
12263
|
+
({ className, ...props }, ref) => {
|
|
12264
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cn("", className), ...props });
|
|
12265
|
+
}
|
|
12266
|
+
);
|
|
12267
|
+
Pagination.displayName = "Pagination";
|
|
12268
|
+
var Callout = () => /* @__PURE__ */ jsx("div", {});
|
|
12269
|
+
var Steps = () => /* @__PURE__ */ jsx("div", {});
|
|
12270
|
+
|
|
12271
|
+
// src/index.ts
|
|
12272
|
+
__reExport(index_exports, __toESM(require_dist()));
|
|
12273
|
+
__reExport(index_exports, __toESM(require_dist2()));
|
|
12274
|
+
|
|
12275
|
+
// ../react-skip-to-content/dist/index.js
|
|
12276
|
+
var SkipToContent = () => {
|
|
12277
|
+
return null;
|
|
12278
|
+
};
|
|
12279
|
+
|
|
12280
|
+
// ../react-code-block/dist/index.js
|
|
12281
|
+
var CodeBlock = () => {
|
|
12282
|
+
return null;
|
|
12283
|
+
};
|
|
12284
|
+
|
|
12285
|
+
// ../link-card/dist/index.js
|
|
12286
|
+
function createLinkCard(props = {}) {
|
|
12287
|
+
return {
|
|
12288
|
+
dataAttributes: { "data-slot": "link-card" }
|
|
12289
|
+
};
|
|
12290
|
+
}
|
|
12291
|
+
var LinkCard = React41.forwardRef(
|
|
12292
|
+
({ className, ...props }, ref) => {
|
|
12293
|
+
const api = createLinkCard(props);
|
|
12294
|
+
return /* @__PURE__ */ jsx(
|
|
12295
|
+
"a",
|
|
12296
|
+
{
|
|
12297
|
+
ref,
|
|
12298
|
+
className: cn(className),
|
|
12299
|
+
...api.dataAttributes,
|
|
12300
|
+
...props
|
|
12301
|
+
}
|
|
12302
|
+
);
|
|
12303
|
+
}
|
|
12304
|
+
);
|
|
12305
|
+
LinkCard.displayName = "LinkCard";
|
|
12306
|
+
|
|
12307
|
+
// ../card-grid/dist/index.js
|
|
12308
|
+
function createCardGrid(props = {}) {
|
|
12309
|
+
return {
|
|
12310
|
+
dataAttributes: { "data-slot": "card-grid" }
|
|
12311
|
+
};
|
|
12312
|
+
}
|
|
12313
|
+
var CardGrid = React41.forwardRef(
|
|
12314
|
+
({ className, columns = 3, ...props }, ref) => {
|
|
12315
|
+
const api = createCardGrid({ });
|
|
12316
|
+
return /* @__PURE__ */ jsx(
|
|
12317
|
+
"div",
|
|
12318
|
+
{
|
|
12319
|
+
ref,
|
|
12320
|
+
className: cn(className),
|
|
12321
|
+
...api.dataAttributes,
|
|
12322
|
+
...props
|
|
12323
|
+
}
|
|
12324
|
+
);
|
|
12325
|
+
}
|
|
12326
|
+
);
|
|
12327
|
+
CardGrid.displayName = "CardGrid";
|
|
12328
|
+
|
|
12329
|
+
export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, AnimatedText, AppShell, AuthGuard, AuthProvider, Avatar, AvatarFallback, AvatarGroup, AvatarImage, Badge, BadgeDisplay, BottomNav, Breadcrumbs, Button, CATEGORY_LABELS, Calendar, CalendarHeader, Callout, Card2 as Card, CardContent, CardDescription, CardFooter, CardGrid, CardHeader, CardTitle, Carousel, CarouselContent, CarouselItem, CarouselTrigger, Checkbox, CodeBlock, CodeEditor, Collapsible, CollapsibleContent, CollapsibleTrigger, Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, ContentProtection, DataTable, DatePicker, DeviceFrame, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogTitle, DialogTrigger, DiffViewer, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EMOJI_CATEGORIES, EMOJI_DATA, EmojiPicker, FeedbackButton, FeedbackDialog, FileUpload, Footer, InlineEditor, Input, InputGroup, InputGroupAddon, InputGroupButton, InputGroupText, InstallPrompt, KeyboardShortcut, LanguageSelector, LinkCard, MarkdownRenderer, MobileNav, MobileNavContent, MobileNavLink, MobileNavTrigger, Navbar, OtpInput, STATUS_COLORS as PRESENCE_STATUS_COLORS, STATUS_LABELS as PRESENCE_STATUS_LABELS, Pagination, Popover, PopoverClose, PopoverContent, PopoverTrigger, PresenceIndicator, ProgressBar, RadioGroup, RadioItem, ReactionBar, ResizableDivider, ResizableLayout, ResizablePane, STATUS_COLORS2 as STATUS_COLORS, STATUS_LABELS2 as STATUS_LABELS, SearchBar, SearchResultItem, SearchResults, Select, SelectContent, SelectItem, SelectTrigger, ShortcutBadge, Sidebar, Skeleton, SkeletonText, SkipToContent, SlideViewer, StatsGrid, StatusIndicator, Steps, Switch, TableOfContents, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThemeProvider, ThemeScript, ThemeToggle, ThreadView, Toast, ToastProvider, Toaster, Tooltip, TooltipContent, TooltipTrigger, TypewriterText, VersionSelector, VideoPlayer, animatedTextVariants, avatarFallbackVariants, avatarImageVariants, avatarTokens, avatarVariants, badgeGridVariants, badgeItemVariants, badgeVariants, bottomNavTabVariants, bottomNavVariants, breadcrumbItemVariants, breadcrumbSeparatorStyles, breadcrumbsVariants, buttonTokens, buttonVariants, calendarVariants, canAccessAdmin, canAccessReviewer, cardContentVariants, cardDescriptionVariants, cardFooterVariants, cardHeaderVariants, cardTitleVariants, cardTokens, cardVariants, cellVariants, checkIconPath, checkboxTokens, checkboxVariants, codeEditorTokens, codeEditorVariants, collapsibleContentVariants, commandGroupVariants, commandInputVariants, commandItemVariants, commandVariants, contentProtectionVariants, controlsVariants, createDiffViewer, dayVariants, deviceFrameVariants, dialogContentVariants, diffViewerTokens, diffViewerVariants, editorVariants, emojiPickerContainerStyles, emojiPickerEmojiButtonStyles, emojiPickerGridStyles, feedbackDialogVariants, fileUploadDropZoneVariants, fileUploadFileItemStyles, fileUploadFileListStyles, footerVariants, formatFileSize, formatRelativeTime, formatShortcut, formatTimestamp, getAssignableRoles, getDefaultPortal, getInitials, hasAllRoles, hasAnyRole, hasRole, headerVariants, indeterminateIconPath, inputGroupAddonVariants, inputGroupButtonVariants, inputGroupTokens, inputGroupVariants, inputVariants, installPromptVariants, latestBadgeVariants, markdownRendererTokens, menuContentVariants, menuItemVariants, mobileNavContentVariants, mobileNavLinkVariants, mobileNavTokens, mobileNavTriggerVariants, mobileNavVariants, navLinkVariants, navbarVariants, optionVariants, otpInputContainerVariants, otpInputSlotVariants, otpInputTokens, overlayStyles, overlayVariants, playerVariants, popoverContentVariants, previewVariants, progressBarVariants, proseVariants, radioCircleVariants, radioGroupVariants, radioItemVariants, reactionAddButtonStyles, reactionBarStyles, reactionCountStyles, reactionEmojiStyles, reactionPillVariants, resizableDividerVariants, resizableLayoutTokens, resizableLayoutVariants, resizablePaneVariants, rowVariants, searchBarVariants, searchResultVariants, selectContentVariants, selectItemVariants, selectTokens, selectTriggerVariants, selectorVariants, shortcutBadgeStyles, shortcutKeyStyles, shortcutSeparatorStyles, skeletonVariants, slideTypeBadgeVariants, progressBarVariants2 as slideViewerProgressBarVariants, slideViewerTokens, slideViewerVariants, statCardVariants, statsGridVariants, statusBarVariants, statusContainerStyles, statusDotVariants, statusLabelStyles, statusPulseVariants, switchThumbVariants, switchTokens, switchVariants, tabBarVariants, tabVariants, tableVariants, tabsListVariants, tabsTriggerVariants, textareaVariants, threadAuthorStyles, threadAvatarStyles, threadBodyStyles, threadContainerStyles, threadContentStyles, threadMessageStyles, threadReactionsStyles, threadTimestampStyles, toastVariants, toolbarVariants, tooltipContentVariants, typewriterVariants, useAuth, useTheme, useToast, optionVariants2 as versionSelectorOptionVariants, versionSelectorVariants, watermarkVariants };
|
|
11635
12330
|
//# sourceMappingURL=index.js.map
|
|
11636
12331
|
//# sourceMappingURL=index.js.map
|