hazo_files 3.1.0 → 3.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/CHANGE_LOG.md +28 -0
- package/dist/background-upload/react/index.d.mts +1 -2
- package/dist/background-upload/react/index.d.ts +1 -2
- package/dist/ui/index.d.mts +97 -54
- package/dist/ui/index.d.ts +97 -54
- package/dist/ui/index.js +49 -5
- package/dist/ui/index.mjs +46 -2
- package/package.json +18 -27
package/CHANGE_LOG.md
CHANGED
|
@@ -5,6 +5,34 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## 3.2.0 — 2026-08-04
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
Moved 3 packages from optional `peerDependencies` to `dependencies`. Each is imported
|
|
13
|
+
statically at the top level of this package's own `dist/`, but was declared as
|
|
14
|
+
an *optional* peer — and npm never auto-installs an optional peer, under any
|
|
15
|
+
`legacy-peer-deps` setting. The result was a package that could not run as
|
|
16
|
+
shipped: a consumer installed it, imported it, and the build failed with
|
|
17
|
+
module-not-found on packages it had never heard of and had no reason to
|
|
18
|
+
declare. They are implementation details of this package, so this package now
|
|
19
|
+
brings them.
|
|
20
|
+
|
|
21
|
+
- @dnd-kit/core@^6.0.0
|
|
22
|
+
- @dnd-kit/sortable@^8.0.0
|
|
23
|
+
- @dnd-kit/utilities@^3.0.0
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
## 3.1.2 — 2026-08-04
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
Widened stale host-framework peer ranges that excluded currently-shipping
|
|
31
|
+
majors and made a strict install unsatisfiable for React 19 consumers:
|
|
32
|
+
|
|
33
|
+
- `react` / `react-dom`: `^18.0.0` -> `^18.0.0 || ^19.0.0`
|
|
34
|
+
|
|
35
|
+
|
|
8
36
|
## 3.1.0 — 2026-06-11
|
|
9
37
|
|
|
10
38
|
**Additive** — no breaking changes from 3.0.x.
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
1
|
import * as React from 'react';
|
|
3
2
|
import React__default from 'react';
|
|
4
3
|
|
|
@@ -107,7 +106,7 @@ interface HazoFileUploadProviderProps {
|
|
|
107
106
|
config?: UploadManagerConfig;
|
|
108
107
|
enable_toasts?: boolean;
|
|
109
108
|
}
|
|
110
|
-
declare function HazoFileUploadProvider({ children, config, enable_toasts, }: HazoFileUploadProviderProps):
|
|
109
|
+
declare function HazoFileUploadProvider({ children, config, enable_toasts, }: HazoFileUploadProviderProps): React__default.JSX.Element;
|
|
111
110
|
|
|
112
111
|
declare class UploadManager {
|
|
113
112
|
private jobs;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
1
|
import * as React from 'react';
|
|
3
2
|
import React__default from 'react';
|
|
4
3
|
|
|
@@ -107,7 +106,7 @@ interface HazoFileUploadProviderProps {
|
|
|
107
106
|
config?: UploadManagerConfig;
|
|
108
107
|
enable_toasts?: boolean;
|
|
109
108
|
}
|
|
110
|
-
declare function HazoFileUploadProvider({ children, config, enable_toasts, }: HazoFileUploadProviderProps):
|
|
109
|
+
declare function HazoFileUploadProvider({ children, config, enable_toasts, }: HazoFileUploadProviderProps): React__default.JSX.Element;
|
|
111
110
|
|
|
112
111
|
declare class UploadManager {
|
|
113
112
|
private jobs;
|
package/dist/ui/index.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import React__default, { ReactNode } from 'react';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Naming rule types for hazo_files package
|
|
@@ -223,13 +223,19 @@ interface FileBrowserState {
|
|
|
223
223
|
* CreateFolderDialog Component
|
|
224
224
|
* Dialog for creating a new folder
|
|
225
225
|
*/
|
|
226
|
+
|
|
226
227
|
interface CreateFolderDialogProps {
|
|
227
228
|
isOpen: boolean;
|
|
228
229
|
onClose: () => void;
|
|
229
230
|
onSubmit: (name: string) => Promise<void>;
|
|
230
231
|
currentPath: string;
|
|
231
232
|
}
|
|
232
|
-
declare function CreateFolderDialog({ isOpen, onClose, onSubmit, currentPath, }: CreateFolderDialogProps):
|
|
233
|
+
declare function CreateFolderDialog({ isOpen, onClose, onSubmit, currentPath, }: CreateFolderDialogProps): React__default.JSX.Element | null;
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* RenameDialog Component
|
|
237
|
+
* Dialog for renaming a file or folder
|
|
238
|
+
*/
|
|
233
239
|
|
|
234
240
|
interface RenameDialogProps {
|
|
235
241
|
isOpen: boolean;
|
|
@@ -237,7 +243,7 @@ interface RenameDialogProps {
|
|
|
237
243
|
onClose: () => void;
|
|
238
244
|
onSubmit: (newName: string) => Promise<void>;
|
|
239
245
|
}
|
|
240
|
-
declare function RenameDialog({ isOpen, item, onClose, onSubmit, }: RenameDialogProps):
|
|
246
|
+
declare function RenameDialog({ isOpen, item, onClose, onSubmit, }: RenameDialogProps): React__default.JSX.Element | null;
|
|
241
247
|
|
|
242
248
|
interface DeleteConfirmDialogProps {
|
|
243
249
|
isOpen: boolean;
|
|
@@ -245,19 +251,20 @@ interface DeleteConfirmDialogProps {
|
|
|
245
251
|
onClose: () => void;
|
|
246
252
|
onConfirm: () => Promise<void>;
|
|
247
253
|
}
|
|
248
|
-
declare function DeleteConfirmDialog({ isOpen, item, onClose, onConfirm, }: DeleteConfirmDialogProps):
|
|
254
|
+
declare function DeleteConfirmDialog({ isOpen, item, onClose, onConfirm, }: DeleteConfirmDialogProps): React.JSX.Element | null;
|
|
249
255
|
|
|
250
256
|
/**
|
|
251
257
|
* UploadDialog Component
|
|
252
258
|
* Dialog for uploading files with drag and drop support
|
|
253
259
|
*/
|
|
260
|
+
|
|
254
261
|
interface UploadDialogProps {
|
|
255
262
|
isOpen: boolean;
|
|
256
263
|
currentPath: string;
|
|
257
264
|
onClose: () => void;
|
|
258
265
|
onUpload: (files: FileList) => Promise<void>;
|
|
259
266
|
}
|
|
260
|
-
declare function UploadDialog({ isOpen, currentPath, onClose, onUpload, }: UploadDialogProps):
|
|
267
|
+
declare function UploadDialog({ isOpen, currentPath, onClose, onUpload, }: UploadDialogProps): React__default.JSX.Element | null;
|
|
261
268
|
|
|
262
269
|
/**
|
|
263
270
|
* Extended metadata including database record data
|
|
@@ -302,7 +309,7 @@ interface FileInfoPanelProps {
|
|
|
302
309
|
* // With custom styling
|
|
303
310
|
* <FileInfoPanel item={file} className="p-4 bg-gray-50 rounded-lg" />
|
|
304
311
|
*/
|
|
305
|
-
declare function FileInfoPanel({ item, metadata, isLoading, showCustomMetadata, className, }: FileInfoPanelProps):
|
|
312
|
+
declare function FileInfoPanel({ item, metadata, isLoading, showCustomMetadata, className, }: FileInfoPanelProps): React.JSX.Element;
|
|
306
313
|
|
|
307
314
|
interface MetadataDialogProps {
|
|
308
315
|
isOpen: boolean;
|
|
@@ -311,7 +318,7 @@ interface MetadataDialogProps {
|
|
|
311
318
|
isLoading?: boolean;
|
|
312
319
|
onClose: () => void;
|
|
313
320
|
}
|
|
314
|
-
declare function MetadataDialog({ isOpen, item, metadata, isLoading, onClose, }: MetadataDialogProps):
|
|
321
|
+
declare function MetadataDialog({ isOpen, item, metadata, isLoading, onClose, }: MetadataDialogProps): React.JSX.Element | null;
|
|
315
322
|
|
|
316
323
|
interface FileBrowserAPI$1 {
|
|
317
324
|
listDirectory: (path: string) => Promise<OperationResult<FileSystemItem[]>>;
|
|
@@ -341,18 +348,24 @@ interface FileBrowserProps {
|
|
|
341
348
|
onNavigate?: (path: string) => void;
|
|
342
349
|
onSelect?: (item: FileSystemItem | null) => void;
|
|
343
350
|
}
|
|
344
|
-
declare function FileBrowser({ api, initialPath, showPreview, showTree, viewMode, className, treeWidth, previewHeight, onError, onNavigate, onSelect, }: FileBrowserProps):
|
|
351
|
+
declare function FileBrowser({ api, initialPath, showPreview, showTree, viewMode, className, treeWidth, previewHeight, onError, onNavigate, onSelect, }: FileBrowserProps): React.JSX.Element;
|
|
345
352
|
|
|
346
353
|
/**
|
|
347
354
|
* PathBreadcrumb Component
|
|
348
355
|
* Displays the current path as a breadcrumb navigation
|
|
349
356
|
*/
|
|
357
|
+
|
|
350
358
|
interface PathBreadcrumbProps {
|
|
351
359
|
currentPath: string;
|
|
352
360
|
onNavigate: (path: string) => void;
|
|
353
361
|
className?: string;
|
|
354
362
|
}
|
|
355
|
-
declare function PathBreadcrumb({ currentPath, onNavigate, className }: PathBreadcrumbProps):
|
|
363
|
+
declare function PathBreadcrumb({ currentPath, onNavigate, className }: PathBreadcrumbProps): React__default.JSX.Element;
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* FolderTree Component
|
|
367
|
+
* Displays a hierarchical tree view of folders
|
|
368
|
+
*/
|
|
356
369
|
|
|
357
370
|
interface FolderTreeProps {
|
|
358
371
|
tree: TreeNode[];
|
|
@@ -364,7 +377,12 @@ interface FolderTreeProps {
|
|
|
364
377
|
dropTargetPath?: string | null;
|
|
365
378
|
className?: string;
|
|
366
379
|
}
|
|
367
|
-
declare function FolderTree({ tree, currentPath, onSelect, onExpand, onToggle, isDragging, dropTargetPath, className, }: FolderTreeProps):
|
|
380
|
+
declare function FolderTree({ tree, currentPath, onSelect, onExpand, onToggle, isDragging, dropTargetPath, className, }: FolderTreeProps): React__default.JSX.Element;
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* FileList Component
|
|
384
|
+
* Displays a grid/list of files and folders
|
|
385
|
+
*/
|
|
368
386
|
|
|
369
387
|
interface FileListProps {
|
|
370
388
|
files: FileSystemItem[];
|
|
@@ -372,13 +390,13 @@ interface FileListProps {
|
|
|
372
390
|
isLoading: boolean;
|
|
373
391
|
onSelect: (item: FileSystemItem) => void;
|
|
374
392
|
onOpen: (item: FileSystemItem) => void;
|
|
375
|
-
onContextMenu?: (item: FileSystemItem, event:
|
|
393
|
+
onContextMenu?: (item: FileSystemItem, event: React__default.MouseEvent) => void;
|
|
376
394
|
viewMode?: 'grid' | 'list';
|
|
377
395
|
draggedItem?: FileSystemItem | null;
|
|
378
396
|
dropTargetPath?: string | null;
|
|
379
397
|
className?: string;
|
|
380
398
|
}
|
|
381
|
-
declare function FileList$1({ files, selectedItem, isLoading, onSelect, onOpen, onContextMenu, viewMode, draggedItem, dropTargetPath, className, }: FileListProps):
|
|
399
|
+
declare function FileList$1({ files, selectedItem, isLoading, onSelect, onOpen, onContextMenu, viewMode, draggedItem, dropTargetPath, className, }: FileListProps): React__default.JSX.Element;
|
|
382
400
|
|
|
383
401
|
interface FilePreviewProps {
|
|
384
402
|
item: FileSystemItem | null;
|
|
@@ -386,7 +404,12 @@ interface FilePreviewProps {
|
|
|
386
404
|
getFileContent?: (path: string) => Promise<string>;
|
|
387
405
|
className?: string;
|
|
388
406
|
}
|
|
389
|
-
declare function FilePreview({ item, getPreviewUrl, getFileContent, className, }: FilePreviewProps):
|
|
407
|
+
declare function FilePreview({ item, getPreviewUrl, getFileContent, className, }: FilePreviewProps): React.JSX.Element;
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* FileActions Component
|
|
411
|
+
* Toolbar with action buttons for file operations
|
|
412
|
+
*/
|
|
390
413
|
|
|
391
414
|
interface FileActionsProps {
|
|
392
415
|
selectedItem: FileSystemItem | null;
|
|
@@ -399,7 +422,12 @@ interface FileActionsProps {
|
|
|
399
422
|
isLoading?: boolean;
|
|
400
423
|
className?: string;
|
|
401
424
|
}
|
|
402
|
-
declare function FileActions({ selectedItem, onCreateFolder, onUpload, onDownload, onDelete, onRename, onRefresh, isLoading, className, }: FileActionsProps):
|
|
425
|
+
declare function FileActions({ selectedItem, onCreateFolder, onUpload, onDownload, onDelete, onRename, onRefresh, isLoading, className, }: FileActionsProps): React__default.JSX.Element;
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* ContextMenu Component
|
|
429
|
+
* Custom right-click context menu positioned at cursor location
|
|
430
|
+
*/
|
|
403
431
|
|
|
404
432
|
interface IconProps$1 {
|
|
405
433
|
className?: string;
|
|
@@ -408,7 +436,7 @@ interface IconProps$1 {
|
|
|
408
436
|
interface ContextMenuItem {
|
|
409
437
|
id: string;
|
|
410
438
|
label: string;
|
|
411
|
-
icon?:
|
|
439
|
+
icon?: React__default.ComponentType<IconProps$1>;
|
|
412
440
|
onClick: () => void;
|
|
413
441
|
disabled?: boolean;
|
|
414
442
|
danger?: boolean;
|
|
@@ -422,13 +450,18 @@ interface ContextMenuProps {
|
|
|
422
450
|
} | null;
|
|
423
451
|
onClose: () => void;
|
|
424
452
|
}
|
|
425
|
-
declare function ContextMenu({ items, position, onClose }: ContextMenuProps):
|
|
453
|
+
declare function ContextMenu({ items, position, onClose }: ContextMenuProps): React__default.JSX.Element | null;
|
|
426
454
|
|
|
427
455
|
interface DragPreviewProps {
|
|
428
456
|
item: FileSystemItem;
|
|
429
457
|
className?: string;
|
|
430
458
|
}
|
|
431
|
-
declare function DragPreview({ item, className }: DragPreviewProps):
|
|
459
|
+
declare function DragPreview({ item, className }: DragPreviewProps): React.JSX.Element;
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* FileBrowser Context
|
|
463
|
+
* Provides state management for the file browser component
|
|
464
|
+
*/
|
|
432
465
|
|
|
433
466
|
type FileBrowserAction = {
|
|
434
467
|
type: 'SET_LOADING';
|
|
@@ -485,7 +518,7 @@ interface FileBrowserAPI {
|
|
|
485
518
|
}
|
|
486
519
|
interface FileBrowserContextValue {
|
|
487
520
|
state: FileBrowserState;
|
|
488
|
-
dispatch:
|
|
521
|
+
dispatch: React__default.Dispatch<FileBrowserAction>;
|
|
489
522
|
api: FileBrowserAPI | null;
|
|
490
523
|
navigateTo: (path: string) => Promise<void>;
|
|
491
524
|
refresh: () => Promise<void>;
|
|
@@ -504,7 +537,7 @@ interface FileBrowserProviderProps {
|
|
|
504
537
|
api: FileBrowserAPI;
|
|
505
538
|
initialPath?: string;
|
|
506
539
|
}
|
|
507
|
-
declare function FileBrowserProvider({ children, api, initialPath }: FileBrowserProviderProps):
|
|
540
|
+
declare function FileBrowserProvider({ children, api, initialPath }: FileBrowserProviderProps): React__default.JSX.Element;
|
|
508
541
|
declare function useFileBrowserContext(): FileBrowserContextValue;
|
|
509
542
|
|
|
510
543
|
/**
|
|
@@ -576,39 +609,44 @@ interface UseMultiFileOperationsReturn {
|
|
|
576
609
|
}
|
|
577
610
|
declare function useMultiFileOperations(): UseMultiFileOperationsReturn;
|
|
578
611
|
|
|
612
|
+
/**
|
|
613
|
+
* File Type Icons
|
|
614
|
+
* SVG icons for different file types
|
|
615
|
+
*/
|
|
616
|
+
|
|
579
617
|
interface IconProps {
|
|
580
618
|
className?: string;
|
|
581
619
|
size?: number;
|
|
582
620
|
}
|
|
583
|
-
declare function FolderIcon({ className, size }: IconProps):
|
|
584
|
-
declare function FolderOpenIcon({ className, size }: IconProps):
|
|
585
|
-
declare function FileIcon({ className, size }: IconProps):
|
|
586
|
-
declare function FileTextIcon({ className, size }: IconProps):
|
|
587
|
-
declare function ImageIcon({ className, size }: IconProps):
|
|
588
|
-
declare function VideoIcon({ className, size }: IconProps):
|
|
589
|
-
declare function AudioIcon({ className, size }: IconProps):
|
|
590
|
-
declare function ArchiveIcon({ className, size }: IconProps):
|
|
591
|
-
declare function PdfIcon({ className, size }: IconProps):
|
|
592
|
-
declare function CodeIcon({ className, size }: IconProps):
|
|
593
|
-
declare function UploadIcon({ className, size }: IconProps):
|
|
594
|
-
declare function DownloadIcon({ className, size }: IconProps):
|
|
595
|
-
declare function TrashIcon({ className, size }: IconProps):
|
|
596
|
-
declare function PencilIcon({ className, size }: IconProps):
|
|
597
|
-
declare function PlusIcon({ className, size }: IconProps):
|
|
598
|
-
declare function RefreshIcon({ className, size }: IconProps):
|
|
599
|
-
declare function ChevronRightIcon({ className, size }: IconProps):
|
|
600
|
-
declare function ChevronDownIcon({ className, size }: IconProps):
|
|
601
|
-
declare function HomeIcon({ className, size }: IconProps):
|
|
602
|
-
declare function MoreVerticalIcon({ className, size }: IconProps):
|
|
603
|
-
declare function XIcon({ className, size }: IconProps):
|
|
604
|
-
declare function LoaderIcon({ className, size }: IconProps):
|
|
605
|
-
declare function InfoIcon({ className, size }: IconProps):
|
|
621
|
+
declare function FolderIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
622
|
+
declare function FolderOpenIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
623
|
+
declare function FileIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
624
|
+
declare function FileTextIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
625
|
+
declare function ImageIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
626
|
+
declare function VideoIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
627
|
+
declare function AudioIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
628
|
+
declare function ArchiveIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
629
|
+
declare function PdfIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
630
|
+
declare function CodeIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
631
|
+
declare function UploadIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
632
|
+
declare function DownloadIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
633
|
+
declare function TrashIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
634
|
+
declare function PencilIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
635
|
+
declare function PlusIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
636
|
+
declare function RefreshIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
637
|
+
declare function ChevronRightIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
638
|
+
declare function ChevronDownIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
639
|
+
declare function HomeIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
640
|
+
declare function MoreVerticalIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
641
|
+
declare function XIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
642
|
+
declare function LoaderIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
643
|
+
declare function InfoIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
606
644
|
/**
|
|
607
645
|
* Get the appropriate icon component for a file type
|
|
608
646
|
*/
|
|
609
|
-
declare function getFileIcon(mimeType: string, isDirectory: boolean):
|
|
647
|
+
declare function getFileIcon(mimeType: string, isDirectory: boolean): React__default.ComponentType<IconProps>;
|
|
610
648
|
|
|
611
|
-
declare function NamingRuleConfigurator({ variables, initialSchema, onChange, onExport, onImport, className, customDateFormats, readOnly, sampleFileName, }: NamingRuleConfiguratorProps):
|
|
649
|
+
declare function NamingRuleConfigurator({ variables, initialSchema, onChange, onExport, onImport, className, customDateFormats, readOnly, sampleFileName, }: NamingRuleConfiguratorProps): React.JSX.Element;
|
|
612
650
|
|
|
613
651
|
interface VariableListProps {
|
|
614
652
|
/** User-defined variables */
|
|
@@ -622,7 +660,7 @@ interface VariableListProps {
|
|
|
622
660
|
/** Additional CSS class */
|
|
623
661
|
className?: string;
|
|
624
662
|
}
|
|
625
|
-
declare function VariableList({ userVariables, customDateFormats, onVariableClick, disabled, className, }: VariableListProps):
|
|
663
|
+
declare function VariableList({ userVariables, customDateFormats, onVariableClick, disabled, className, }: VariableListProps): React.JSX.Element;
|
|
626
664
|
|
|
627
665
|
interface PatternBuilderProps {
|
|
628
666
|
/** Current pattern segments */
|
|
@@ -650,7 +688,7 @@ interface PatternBuilderProps {
|
|
|
650
688
|
/** Additional CSS class */
|
|
651
689
|
className?: string;
|
|
652
690
|
}
|
|
653
|
-
declare function PatternBuilder({ pattern, label, droppableId, onAddSegment, onRemoveSegment, onUpdateSegment, onClear, readOnly, placeholder, className, }: PatternBuilderProps):
|
|
691
|
+
declare function PatternBuilder({ pattern, label, droppableId, onAddSegment, onRemoveSegment, onUpdateSegment, onClear, readOnly, placeholder, className, }: PatternBuilderProps): React.JSX.Element;
|
|
654
692
|
|
|
655
693
|
interface PatternPreviewProps {
|
|
656
694
|
/** File pattern segments */
|
|
@@ -668,7 +706,7 @@ interface PatternPreviewProps {
|
|
|
668
706
|
/** Additional CSS class */
|
|
669
707
|
className?: string;
|
|
670
708
|
}
|
|
671
|
-
declare function PatternPreview({ filePattern, folderPattern, userVariables, sampleFileName, previewDate, counterValue, className, }: PatternPreviewProps):
|
|
709
|
+
declare function PatternPreview({ filePattern, folderPattern, userVariables, sampleFileName, previewDate, counterValue, className, }: PatternPreviewProps): React.JSX.Element;
|
|
672
710
|
|
|
673
711
|
interface DraggableVariableProps {
|
|
674
712
|
/** The variable data */
|
|
@@ -680,7 +718,7 @@ interface DraggableVariableProps {
|
|
|
680
718
|
/** Whether the variable is disabled */
|
|
681
719
|
disabled?: boolean;
|
|
682
720
|
}
|
|
683
|
-
declare function DraggableVariable({ variable, onClick, className, disabled, }: DraggableVariableProps):
|
|
721
|
+
declare function DraggableVariable({ variable, onClick, className, disabled, }: DraggableVariableProps): React.JSX.Element;
|
|
684
722
|
|
|
685
723
|
interface PatternSegmentItemProps {
|
|
686
724
|
/** The segment data */
|
|
@@ -694,7 +732,7 @@ interface PatternSegmentItemProps {
|
|
|
694
732
|
/** Additional CSS class */
|
|
695
733
|
className?: string;
|
|
696
734
|
}
|
|
697
|
-
declare function PatternSegmentItem({ segment, onUpdate, onDelete, readOnly, className, }: PatternSegmentItemProps):
|
|
735
|
+
declare function PatternSegmentItem({ segment, onUpdate, onDelete, readOnly, className, }: PatternSegmentItemProps): React.JSX.Element;
|
|
698
736
|
|
|
699
737
|
/**
|
|
700
738
|
* SeparatorPicker Component
|
|
@@ -708,7 +746,7 @@ interface SeparatorPickerProps {
|
|
|
708
746
|
/** Additional CSS class */
|
|
709
747
|
className?: string;
|
|
710
748
|
}
|
|
711
|
-
declare function SeparatorPicker({ onSelect, disabled, className, }: SeparatorPickerProps):
|
|
749
|
+
declare function SeparatorPicker({ onSelect, disabled, className, }: SeparatorPickerProps): React.JSX.Element;
|
|
712
750
|
|
|
713
751
|
/**
|
|
714
752
|
* useNamingRule Hook
|
|
@@ -726,6 +764,11 @@ interface UseNamingRuleOptions {
|
|
|
726
764
|
*/
|
|
727
765
|
declare function useNamingRule(options?: UseNamingRuleOptions): UseNamingRuleReturn;
|
|
728
766
|
|
|
767
|
+
/**
|
|
768
|
+
* Naming Convention List Component
|
|
769
|
+
* Displays a list of naming conventions with CRUD actions, grouped by type
|
|
770
|
+
*/
|
|
771
|
+
|
|
729
772
|
interface NamingConventionListProps {
|
|
730
773
|
/** List of naming conventions to display */
|
|
731
774
|
conventions: ParsedNamingConvention[];
|
|
@@ -765,7 +808,7 @@ interface NamingConventionListProps {
|
|
|
765
808
|
* />
|
|
766
809
|
* ```
|
|
767
810
|
*/
|
|
768
|
-
declare function NamingConventionList({ conventions, selectedId, onSelect, onCreate, onDelete, onDuplicate, isLoading, className, showScope, }: NamingConventionListProps):
|
|
811
|
+
declare function NamingConventionList({ conventions, selectedId, onSelect, onCreate, onDelete, onDuplicate, isLoading, className, showScope, }: NamingConventionListProps): React__default.JSX.Element;
|
|
769
812
|
|
|
770
813
|
/**
|
|
771
814
|
* Simplified variable definition for passing variables via props.
|
|
@@ -830,7 +873,7 @@ interface NamingConventionEditorProps {
|
|
|
830
873
|
* />
|
|
831
874
|
* ```
|
|
832
875
|
*/
|
|
833
|
-
declare function NamingConventionEditor({ convention, variableDefinitions, availableVariables, onSave, onCancel, isSaving, className, readOnly, defaultScopeId, onExport, onImport, }: NamingConventionEditorProps):
|
|
876
|
+
declare function NamingConventionEditor({ convention, variableDefinitions, availableVariables, onSave, onCancel, isSaving, className, readOnly, defaultScopeId, onExport, onImport, }: NamingConventionEditorProps): React.JSX.Element;
|
|
834
877
|
|
|
835
878
|
/**
|
|
836
879
|
* API interface for naming convention operations
|
|
@@ -917,6 +960,6 @@ interface NamingConventionManagerProps {
|
|
|
917
960
|
* />
|
|
918
961
|
* ```
|
|
919
962
|
*/
|
|
920
|
-
declare function NamingConventionManager({ api, availableVariables, listOptions, defaultScopeId, onSave, onDelete, onError, className, listWidth, showScope, initialSelectedId, }: NamingConventionManagerProps):
|
|
963
|
+
declare function NamingConventionManager({ api, availableVariables, listOptions, defaultScopeId, onSave, onDelete, onError, className, listWidth, showScope, initialSelectedId, }: NamingConventionManagerProps): React.JSX.Element;
|
|
921
964
|
|
|
922
965
|
export { ArchiveIcon, AudioIcon, ChevronDownIcon, ChevronRightIcon, CodeIcon, ContextMenu, type ContextMenuItem, type ContextMenuProps, CreateFolderDialog, type CreateFolderDialogProps, DeleteConfirmDialog, type DeleteConfirmDialogProps, DownloadIcon, DragPreview, type DragPreviewProps, DraggableVariable, type DraggableVariableProps, FileActions, type FileActionsProps, FileBrowser, type FileBrowserAPI$1 as FileBrowserAPI, type FileBrowserProps, FileBrowserProvider, type FileBrowserProviderProps, FileIcon, FileInfoPanel, type FileInfoPanelProps, FileList$1 as FileList, type FileListProps, type FileMetadata, FilePreview, type FilePreviewProps, FileTextIcon, FolderIcon, FolderOpenIcon, FolderTree, type FolderTreeProps, HomeIcon, ImageIcon, InfoIcon, LoaderIcon, MetadataDialog, type MetadataDialogProps, MoreVerticalIcon, type NamingConventionAPI, NamingConventionEditor, type NamingConventionEditorProps, NamingConventionList, type NamingConventionListProps, NamingConventionManager, type NamingConventionManagerProps, NamingRuleConfigurator, type OperationState, PathBreadcrumb, type PathBreadcrumbProps, PatternBuilder, type PatternBuilderProps, PatternPreview, type PatternPreviewProps, PatternSegmentItem, type PatternSegmentItemProps, PdfIcon, PencilIcon, PlusIcon, RefreshIcon, RenameDialog, type RenameDialogProps, SeparatorPicker, type SeparatorPickerProps, TrashIcon, UploadDialog, type UploadDialogProps, UploadIcon, type UseFileBrowserOptions, type UseFileBrowserReturn, type UseFileOperationsReturn, type UseMultiFileOperationsReturn, type UseNamingRuleOptions, VariableList, type VariableListProps, VideoIcon, XIcon, getFileIcon, useFileBrowser, useFileBrowserContext, useFileOperations, useMultiFileOperations, useNamingRule };
|
package/dist/ui/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import React__default, { ReactNode } from 'react';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Naming rule types for hazo_files package
|
|
@@ -223,13 +223,19 @@ interface FileBrowserState {
|
|
|
223
223
|
* CreateFolderDialog Component
|
|
224
224
|
* Dialog for creating a new folder
|
|
225
225
|
*/
|
|
226
|
+
|
|
226
227
|
interface CreateFolderDialogProps {
|
|
227
228
|
isOpen: boolean;
|
|
228
229
|
onClose: () => void;
|
|
229
230
|
onSubmit: (name: string) => Promise<void>;
|
|
230
231
|
currentPath: string;
|
|
231
232
|
}
|
|
232
|
-
declare function CreateFolderDialog({ isOpen, onClose, onSubmit, currentPath, }: CreateFolderDialogProps):
|
|
233
|
+
declare function CreateFolderDialog({ isOpen, onClose, onSubmit, currentPath, }: CreateFolderDialogProps): React__default.JSX.Element | null;
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* RenameDialog Component
|
|
237
|
+
* Dialog for renaming a file or folder
|
|
238
|
+
*/
|
|
233
239
|
|
|
234
240
|
interface RenameDialogProps {
|
|
235
241
|
isOpen: boolean;
|
|
@@ -237,7 +243,7 @@ interface RenameDialogProps {
|
|
|
237
243
|
onClose: () => void;
|
|
238
244
|
onSubmit: (newName: string) => Promise<void>;
|
|
239
245
|
}
|
|
240
|
-
declare function RenameDialog({ isOpen, item, onClose, onSubmit, }: RenameDialogProps):
|
|
246
|
+
declare function RenameDialog({ isOpen, item, onClose, onSubmit, }: RenameDialogProps): React__default.JSX.Element | null;
|
|
241
247
|
|
|
242
248
|
interface DeleteConfirmDialogProps {
|
|
243
249
|
isOpen: boolean;
|
|
@@ -245,19 +251,20 @@ interface DeleteConfirmDialogProps {
|
|
|
245
251
|
onClose: () => void;
|
|
246
252
|
onConfirm: () => Promise<void>;
|
|
247
253
|
}
|
|
248
|
-
declare function DeleteConfirmDialog({ isOpen, item, onClose, onConfirm, }: DeleteConfirmDialogProps):
|
|
254
|
+
declare function DeleteConfirmDialog({ isOpen, item, onClose, onConfirm, }: DeleteConfirmDialogProps): React.JSX.Element | null;
|
|
249
255
|
|
|
250
256
|
/**
|
|
251
257
|
* UploadDialog Component
|
|
252
258
|
* Dialog for uploading files with drag and drop support
|
|
253
259
|
*/
|
|
260
|
+
|
|
254
261
|
interface UploadDialogProps {
|
|
255
262
|
isOpen: boolean;
|
|
256
263
|
currentPath: string;
|
|
257
264
|
onClose: () => void;
|
|
258
265
|
onUpload: (files: FileList) => Promise<void>;
|
|
259
266
|
}
|
|
260
|
-
declare function UploadDialog({ isOpen, currentPath, onClose, onUpload, }: UploadDialogProps):
|
|
267
|
+
declare function UploadDialog({ isOpen, currentPath, onClose, onUpload, }: UploadDialogProps): React__default.JSX.Element | null;
|
|
261
268
|
|
|
262
269
|
/**
|
|
263
270
|
* Extended metadata including database record data
|
|
@@ -302,7 +309,7 @@ interface FileInfoPanelProps {
|
|
|
302
309
|
* // With custom styling
|
|
303
310
|
* <FileInfoPanel item={file} className="p-4 bg-gray-50 rounded-lg" />
|
|
304
311
|
*/
|
|
305
|
-
declare function FileInfoPanel({ item, metadata, isLoading, showCustomMetadata, className, }: FileInfoPanelProps):
|
|
312
|
+
declare function FileInfoPanel({ item, metadata, isLoading, showCustomMetadata, className, }: FileInfoPanelProps): React.JSX.Element;
|
|
306
313
|
|
|
307
314
|
interface MetadataDialogProps {
|
|
308
315
|
isOpen: boolean;
|
|
@@ -311,7 +318,7 @@ interface MetadataDialogProps {
|
|
|
311
318
|
isLoading?: boolean;
|
|
312
319
|
onClose: () => void;
|
|
313
320
|
}
|
|
314
|
-
declare function MetadataDialog({ isOpen, item, metadata, isLoading, onClose, }: MetadataDialogProps):
|
|
321
|
+
declare function MetadataDialog({ isOpen, item, metadata, isLoading, onClose, }: MetadataDialogProps): React.JSX.Element | null;
|
|
315
322
|
|
|
316
323
|
interface FileBrowserAPI$1 {
|
|
317
324
|
listDirectory: (path: string) => Promise<OperationResult<FileSystemItem[]>>;
|
|
@@ -341,18 +348,24 @@ interface FileBrowserProps {
|
|
|
341
348
|
onNavigate?: (path: string) => void;
|
|
342
349
|
onSelect?: (item: FileSystemItem | null) => void;
|
|
343
350
|
}
|
|
344
|
-
declare function FileBrowser({ api, initialPath, showPreview, showTree, viewMode, className, treeWidth, previewHeight, onError, onNavigate, onSelect, }: FileBrowserProps):
|
|
351
|
+
declare function FileBrowser({ api, initialPath, showPreview, showTree, viewMode, className, treeWidth, previewHeight, onError, onNavigate, onSelect, }: FileBrowserProps): React.JSX.Element;
|
|
345
352
|
|
|
346
353
|
/**
|
|
347
354
|
* PathBreadcrumb Component
|
|
348
355
|
* Displays the current path as a breadcrumb navigation
|
|
349
356
|
*/
|
|
357
|
+
|
|
350
358
|
interface PathBreadcrumbProps {
|
|
351
359
|
currentPath: string;
|
|
352
360
|
onNavigate: (path: string) => void;
|
|
353
361
|
className?: string;
|
|
354
362
|
}
|
|
355
|
-
declare function PathBreadcrumb({ currentPath, onNavigate, className }: PathBreadcrumbProps):
|
|
363
|
+
declare function PathBreadcrumb({ currentPath, onNavigate, className }: PathBreadcrumbProps): React__default.JSX.Element;
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* FolderTree Component
|
|
367
|
+
* Displays a hierarchical tree view of folders
|
|
368
|
+
*/
|
|
356
369
|
|
|
357
370
|
interface FolderTreeProps {
|
|
358
371
|
tree: TreeNode[];
|
|
@@ -364,7 +377,12 @@ interface FolderTreeProps {
|
|
|
364
377
|
dropTargetPath?: string | null;
|
|
365
378
|
className?: string;
|
|
366
379
|
}
|
|
367
|
-
declare function FolderTree({ tree, currentPath, onSelect, onExpand, onToggle, isDragging, dropTargetPath, className, }: FolderTreeProps):
|
|
380
|
+
declare function FolderTree({ tree, currentPath, onSelect, onExpand, onToggle, isDragging, dropTargetPath, className, }: FolderTreeProps): React__default.JSX.Element;
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* FileList Component
|
|
384
|
+
* Displays a grid/list of files and folders
|
|
385
|
+
*/
|
|
368
386
|
|
|
369
387
|
interface FileListProps {
|
|
370
388
|
files: FileSystemItem[];
|
|
@@ -372,13 +390,13 @@ interface FileListProps {
|
|
|
372
390
|
isLoading: boolean;
|
|
373
391
|
onSelect: (item: FileSystemItem) => void;
|
|
374
392
|
onOpen: (item: FileSystemItem) => void;
|
|
375
|
-
onContextMenu?: (item: FileSystemItem, event:
|
|
393
|
+
onContextMenu?: (item: FileSystemItem, event: React__default.MouseEvent) => void;
|
|
376
394
|
viewMode?: 'grid' | 'list';
|
|
377
395
|
draggedItem?: FileSystemItem | null;
|
|
378
396
|
dropTargetPath?: string | null;
|
|
379
397
|
className?: string;
|
|
380
398
|
}
|
|
381
|
-
declare function FileList$1({ files, selectedItem, isLoading, onSelect, onOpen, onContextMenu, viewMode, draggedItem, dropTargetPath, className, }: FileListProps):
|
|
399
|
+
declare function FileList$1({ files, selectedItem, isLoading, onSelect, onOpen, onContextMenu, viewMode, draggedItem, dropTargetPath, className, }: FileListProps): React__default.JSX.Element;
|
|
382
400
|
|
|
383
401
|
interface FilePreviewProps {
|
|
384
402
|
item: FileSystemItem | null;
|
|
@@ -386,7 +404,12 @@ interface FilePreviewProps {
|
|
|
386
404
|
getFileContent?: (path: string) => Promise<string>;
|
|
387
405
|
className?: string;
|
|
388
406
|
}
|
|
389
|
-
declare function FilePreview({ item, getPreviewUrl, getFileContent, className, }: FilePreviewProps):
|
|
407
|
+
declare function FilePreview({ item, getPreviewUrl, getFileContent, className, }: FilePreviewProps): React.JSX.Element;
|
|
408
|
+
|
|
409
|
+
/**
|
|
410
|
+
* FileActions Component
|
|
411
|
+
* Toolbar with action buttons for file operations
|
|
412
|
+
*/
|
|
390
413
|
|
|
391
414
|
interface FileActionsProps {
|
|
392
415
|
selectedItem: FileSystemItem | null;
|
|
@@ -399,7 +422,12 @@ interface FileActionsProps {
|
|
|
399
422
|
isLoading?: boolean;
|
|
400
423
|
className?: string;
|
|
401
424
|
}
|
|
402
|
-
declare function FileActions({ selectedItem, onCreateFolder, onUpload, onDownload, onDelete, onRename, onRefresh, isLoading, className, }: FileActionsProps):
|
|
425
|
+
declare function FileActions({ selectedItem, onCreateFolder, onUpload, onDownload, onDelete, onRename, onRefresh, isLoading, className, }: FileActionsProps): React__default.JSX.Element;
|
|
426
|
+
|
|
427
|
+
/**
|
|
428
|
+
* ContextMenu Component
|
|
429
|
+
* Custom right-click context menu positioned at cursor location
|
|
430
|
+
*/
|
|
403
431
|
|
|
404
432
|
interface IconProps$1 {
|
|
405
433
|
className?: string;
|
|
@@ -408,7 +436,7 @@ interface IconProps$1 {
|
|
|
408
436
|
interface ContextMenuItem {
|
|
409
437
|
id: string;
|
|
410
438
|
label: string;
|
|
411
|
-
icon?:
|
|
439
|
+
icon?: React__default.ComponentType<IconProps$1>;
|
|
412
440
|
onClick: () => void;
|
|
413
441
|
disabled?: boolean;
|
|
414
442
|
danger?: boolean;
|
|
@@ -422,13 +450,18 @@ interface ContextMenuProps {
|
|
|
422
450
|
} | null;
|
|
423
451
|
onClose: () => void;
|
|
424
452
|
}
|
|
425
|
-
declare function ContextMenu({ items, position, onClose }: ContextMenuProps):
|
|
453
|
+
declare function ContextMenu({ items, position, onClose }: ContextMenuProps): React__default.JSX.Element | null;
|
|
426
454
|
|
|
427
455
|
interface DragPreviewProps {
|
|
428
456
|
item: FileSystemItem;
|
|
429
457
|
className?: string;
|
|
430
458
|
}
|
|
431
|
-
declare function DragPreview({ item, className }: DragPreviewProps):
|
|
459
|
+
declare function DragPreview({ item, className }: DragPreviewProps): React.JSX.Element;
|
|
460
|
+
|
|
461
|
+
/**
|
|
462
|
+
* FileBrowser Context
|
|
463
|
+
* Provides state management for the file browser component
|
|
464
|
+
*/
|
|
432
465
|
|
|
433
466
|
type FileBrowserAction = {
|
|
434
467
|
type: 'SET_LOADING';
|
|
@@ -485,7 +518,7 @@ interface FileBrowserAPI {
|
|
|
485
518
|
}
|
|
486
519
|
interface FileBrowserContextValue {
|
|
487
520
|
state: FileBrowserState;
|
|
488
|
-
dispatch:
|
|
521
|
+
dispatch: React__default.Dispatch<FileBrowserAction>;
|
|
489
522
|
api: FileBrowserAPI | null;
|
|
490
523
|
navigateTo: (path: string) => Promise<void>;
|
|
491
524
|
refresh: () => Promise<void>;
|
|
@@ -504,7 +537,7 @@ interface FileBrowserProviderProps {
|
|
|
504
537
|
api: FileBrowserAPI;
|
|
505
538
|
initialPath?: string;
|
|
506
539
|
}
|
|
507
|
-
declare function FileBrowserProvider({ children, api, initialPath }: FileBrowserProviderProps):
|
|
540
|
+
declare function FileBrowserProvider({ children, api, initialPath }: FileBrowserProviderProps): React__default.JSX.Element;
|
|
508
541
|
declare function useFileBrowserContext(): FileBrowserContextValue;
|
|
509
542
|
|
|
510
543
|
/**
|
|
@@ -576,39 +609,44 @@ interface UseMultiFileOperationsReturn {
|
|
|
576
609
|
}
|
|
577
610
|
declare function useMultiFileOperations(): UseMultiFileOperationsReturn;
|
|
578
611
|
|
|
612
|
+
/**
|
|
613
|
+
* File Type Icons
|
|
614
|
+
* SVG icons for different file types
|
|
615
|
+
*/
|
|
616
|
+
|
|
579
617
|
interface IconProps {
|
|
580
618
|
className?: string;
|
|
581
619
|
size?: number;
|
|
582
620
|
}
|
|
583
|
-
declare function FolderIcon({ className, size }: IconProps):
|
|
584
|
-
declare function FolderOpenIcon({ className, size }: IconProps):
|
|
585
|
-
declare function FileIcon({ className, size }: IconProps):
|
|
586
|
-
declare function FileTextIcon({ className, size }: IconProps):
|
|
587
|
-
declare function ImageIcon({ className, size }: IconProps):
|
|
588
|
-
declare function VideoIcon({ className, size }: IconProps):
|
|
589
|
-
declare function AudioIcon({ className, size }: IconProps):
|
|
590
|
-
declare function ArchiveIcon({ className, size }: IconProps):
|
|
591
|
-
declare function PdfIcon({ className, size }: IconProps):
|
|
592
|
-
declare function CodeIcon({ className, size }: IconProps):
|
|
593
|
-
declare function UploadIcon({ className, size }: IconProps):
|
|
594
|
-
declare function DownloadIcon({ className, size }: IconProps):
|
|
595
|
-
declare function TrashIcon({ className, size }: IconProps):
|
|
596
|
-
declare function PencilIcon({ className, size }: IconProps):
|
|
597
|
-
declare function PlusIcon({ className, size }: IconProps):
|
|
598
|
-
declare function RefreshIcon({ className, size }: IconProps):
|
|
599
|
-
declare function ChevronRightIcon({ className, size }: IconProps):
|
|
600
|
-
declare function ChevronDownIcon({ className, size }: IconProps):
|
|
601
|
-
declare function HomeIcon({ className, size }: IconProps):
|
|
602
|
-
declare function MoreVerticalIcon({ className, size }: IconProps):
|
|
603
|
-
declare function XIcon({ className, size }: IconProps):
|
|
604
|
-
declare function LoaderIcon({ className, size }: IconProps):
|
|
605
|
-
declare function InfoIcon({ className, size }: IconProps):
|
|
621
|
+
declare function FolderIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
622
|
+
declare function FolderOpenIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
623
|
+
declare function FileIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
624
|
+
declare function FileTextIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
625
|
+
declare function ImageIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
626
|
+
declare function VideoIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
627
|
+
declare function AudioIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
628
|
+
declare function ArchiveIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
629
|
+
declare function PdfIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
630
|
+
declare function CodeIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
631
|
+
declare function UploadIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
632
|
+
declare function DownloadIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
633
|
+
declare function TrashIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
634
|
+
declare function PencilIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
635
|
+
declare function PlusIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
636
|
+
declare function RefreshIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
637
|
+
declare function ChevronRightIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
638
|
+
declare function ChevronDownIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
639
|
+
declare function HomeIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
640
|
+
declare function MoreVerticalIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
641
|
+
declare function XIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
642
|
+
declare function LoaderIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
643
|
+
declare function InfoIcon({ className, size }: IconProps): React__default.JSX.Element;
|
|
606
644
|
/**
|
|
607
645
|
* Get the appropriate icon component for a file type
|
|
608
646
|
*/
|
|
609
|
-
declare function getFileIcon(mimeType: string, isDirectory: boolean):
|
|
647
|
+
declare function getFileIcon(mimeType: string, isDirectory: boolean): React__default.ComponentType<IconProps>;
|
|
610
648
|
|
|
611
|
-
declare function NamingRuleConfigurator({ variables, initialSchema, onChange, onExport, onImport, className, customDateFormats, readOnly, sampleFileName, }: NamingRuleConfiguratorProps):
|
|
649
|
+
declare function NamingRuleConfigurator({ variables, initialSchema, onChange, onExport, onImport, className, customDateFormats, readOnly, sampleFileName, }: NamingRuleConfiguratorProps): React.JSX.Element;
|
|
612
650
|
|
|
613
651
|
interface VariableListProps {
|
|
614
652
|
/** User-defined variables */
|
|
@@ -622,7 +660,7 @@ interface VariableListProps {
|
|
|
622
660
|
/** Additional CSS class */
|
|
623
661
|
className?: string;
|
|
624
662
|
}
|
|
625
|
-
declare function VariableList({ userVariables, customDateFormats, onVariableClick, disabled, className, }: VariableListProps):
|
|
663
|
+
declare function VariableList({ userVariables, customDateFormats, onVariableClick, disabled, className, }: VariableListProps): React.JSX.Element;
|
|
626
664
|
|
|
627
665
|
interface PatternBuilderProps {
|
|
628
666
|
/** Current pattern segments */
|
|
@@ -650,7 +688,7 @@ interface PatternBuilderProps {
|
|
|
650
688
|
/** Additional CSS class */
|
|
651
689
|
className?: string;
|
|
652
690
|
}
|
|
653
|
-
declare function PatternBuilder({ pattern, label, droppableId, onAddSegment, onRemoveSegment, onUpdateSegment, onClear, readOnly, placeholder, className, }: PatternBuilderProps):
|
|
691
|
+
declare function PatternBuilder({ pattern, label, droppableId, onAddSegment, onRemoveSegment, onUpdateSegment, onClear, readOnly, placeholder, className, }: PatternBuilderProps): React.JSX.Element;
|
|
654
692
|
|
|
655
693
|
interface PatternPreviewProps {
|
|
656
694
|
/** File pattern segments */
|
|
@@ -668,7 +706,7 @@ interface PatternPreviewProps {
|
|
|
668
706
|
/** Additional CSS class */
|
|
669
707
|
className?: string;
|
|
670
708
|
}
|
|
671
|
-
declare function PatternPreview({ filePattern, folderPattern, userVariables, sampleFileName, previewDate, counterValue, className, }: PatternPreviewProps):
|
|
709
|
+
declare function PatternPreview({ filePattern, folderPattern, userVariables, sampleFileName, previewDate, counterValue, className, }: PatternPreviewProps): React.JSX.Element;
|
|
672
710
|
|
|
673
711
|
interface DraggableVariableProps {
|
|
674
712
|
/** The variable data */
|
|
@@ -680,7 +718,7 @@ interface DraggableVariableProps {
|
|
|
680
718
|
/** Whether the variable is disabled */
|
|
681
719
|
disabled?: boolean;
|
|
682
720
|
}
|
|
683
|
-
declare function DraggableVariable({ variable, onClick, className, disabled, }: DraggableVariableProps):
|
|
721
|
+
declare function DraggableVariable({ variable, onClick, className, disabled, }: DraggableVariableProps): React.JSX.Element;
|
|
684
722
|
|
|
685
723
|
interface PatternSegmentItemProps {
|
|
686
724
|
/** The segment data */
|
|
@@ -694,7 +732,7 @@ interface PatternSegmentItemProps {
|
|
|
694
732
|
/** Additional CSS class */
|
|
695
733
|
className?: string;
|
|
696
734
|
}
|
|
697
|
-
declare function PatternSegmentItem({ segment, onUpdate, onDelete, readOnly, className, }: PatternSegmentItemProps):
|
|
735
|
+
declare function PatternSegmentItem({ segment, onUpdate, onDelete, readOnly, className, }: PatternSegmentItemProps): React.JSX.Element;
|
|
698
736
|
|
|
699
737
|
/**
|
|
700
738
|
* SeparatorPicker Component
|
|
@@ -708,7 +746,7 @@ interface SeparatorPickerProps {
|
|
|
708
746
|
/** Additional CSS class */
|
|
709
747
|
className?: string;
|
|
710
748
|
}
|
|
711
|
-
declare function SeparatorPicker({ onSelect, disabled, className, }: SeparatorPickerProps):
|
|
749
|
+
declare function SeparatorPicker({ onSelect, disabled, className, }: SeparatorPickerProps): React.JSX.Element;
|
|
712
750
|
|
|
713
751
|
/**
|
|
714
752
|
* useNamingRule Hook
|
|
@@ -726,6 +764,11 @@ interface UseNamingRuleOptions {
|
|
|
726
764
|
*/
|
|
727
765
|
declare function useNamingRule(options?: UseNamingRuleOptions): UseNamingRuleReturn;
|
|
728
766
|
|
|
767
|
+
/**
|
|
768
|
+
* Naming Convention List Component
|
|
769
|
+
* Displays a list of naming conventions with CRUD actions, grouped by type
|
|
770
|
+
*/
|
|
771
|
+
|
|
729
772
|
interface NamingConventionListProps {
|
|
730
773
|
/** List of naming conventions to display */
|
|
731
774
|
conventions: ParsedNamingConvention[];
|
|
@@ -765,7 +808,7 @@ interface NamingConventionListProps {
|
|
|
765
808
|
* />
|
|
766
809
|
* ```
|
|
767
810
|
*/
|
|
768
|
-
declare function NamingConventionList({ conventions, selectedId, onSelect, onCreate, onDelete, onDuplicate, isLoading, className, showScope, }: NamingConventionListProps):
|
|
811
|
+
declare function NamingConventionList({ conventions, selectedId, onSelect, onCreate, onDelete, onDuplicate, isLoading, className, showScope, }: NamingConventionListProps): React__default.JSX.Element;
|
|
769
812
|
|
|
770
813
|
/**
|
|
771
814
|
* Simplified variable definition for passing variables via props.
|
|
@@ -830,7 +873,7 @@ interface NamingConventionEditorProps {
|
|
|
830
873
|
* />
|
|
831
874
|
* ```
|
|
832
875
|
*/
|
|
833
|
-
declare function NamingConventionEditor({ convention, variableDefinitions, availableVariables, onSave, onCancel, isSaving, className, readOnly, defaultScopeId, onExport, onImport, }: NamingConventionEditorProps):
|
|
876
|
+
declare function NamingConventionEditor({ convention, variableDefinitions, availableVariables, onSave, onCancel, isSaving, className, readOnly, defaultScopeId, onExport, onImport, }: NamingConventionEditorProps): React.JSX.Element;
|
|
834
877
|
|
|
835
878
|
/**
|
|
836
879
|
* API interface for naming convention operations
|
|
@@ -917,6 +960,6 @@ interface NamingConventionManagerProps {
|
|
|
917
960
|
* />
|
|
918
961
|
* ```
|
|
919
962
|
*/
|
|
920
|
-
declare function NamingConventionManager({ api, availableVariables, listOptions, defaultScopeId, onSave, onDelete, onError, className, listWidth, showScope, initialSelectedId, }: NamingConventionManagerProps):
|
|
963
|
+
declare function NamingConventionManager({ api, availableVariables, listOptions, defaultScopeId, onSave, onDelete, onError, className, listWidth, showScope, initialSelectedId, }: NamingConventionManagerProps): React.JSX.Element;
|
|
921
964
|
|
|
922
965
|
export { ArchiveIcon, AudioIcon, ChevronDownIcon, ChevronRightIcon, CodeIcon, ContextMenu, type ContextMenuItem, type ContextMenuProps, CreateFolderDialog, type CreateFolderDialogProps, DeleteConfirmDialog, type DeleteConfirmDialogProps, DownloadIcon, DragPreview, type DragPreviewProps, DraggableVariable, type DraggableVariableProps, FileActions, type FileActionsProps, FileBrowser, type FileBrowserAPI$1 as FileBrowserAPI, type FileBrowserProps, FileBrowserProvider, type FileBrowserProviderProps, FileIcon, FileInfoPanel, type FileInfoPanelProps, FileList$1 as FileList, type FileListProps, type FileMetadata, FilePreview, type FilePreviewProps, FileTextIcon, FolderIcon, FolderOpenIcon, FolderTree, type FolderTreeProps, HomeIcon, ImageIcon, InfoIcon, LoaderIcon, MetadataDialog, type MetadataDialogProps, MoreVerticalIcon, type NamingConventionAPI, NamingConventionEditor, type NamingConventionEditorProps, NamingConventionList, type NamingConventionListProps, NamingConventionManager, type NamingConventionManagerProps, NamingRuleConfigurator, type OperationState, PathBreadcrumb, type PathBreadcrumbProps, PatternBuilder, type PatternBuilderProps, PatternPreview, type PatternPreviewProps, PatternSegmentItem, type PatternSegmentItemProps, PdfIcon, PencilIcon, PlusIcon, RefreshIcon, RenameDialog, type RenameDialogProps, SeparatorPicker, type SeparatorPickerProps, TrashIcon, UploadDialog, type UploadDialogProps, UploadIcon, type UseFileBrowserOptions, type UseFileBrowserReturn, type UseFileOperationsReturn, type UseMultiFileOperationsReturn, type UseNamingRuleOptions, VariableList, type VariableListProps, VideoIcon, XIcon, getFileIcon, useFileBrowser, useFileBrowserContext, useFileOperations, useMultiFileOperations, useNamingRule };
|
package/dist/ui/index.js
CHANGED
|
@@ -3355,6 +3355,9 @@ function formatDateToken(date, format) {
|
|
|
3355
3355
|
return format;
|
|
3356
3356
|
}
|
|
3357
3357
|
}
|
|
3358
|
+
function isCounterVariable(variableName) {
|
|
3359
|
+
return variableName === "counter" || variableName.startsWith("counter:");
|
|
3360
|
+
}
|
|
3358
3361
|
function formatCounter(value, digits = 3) {
|
|
3359
3362
|
return String(value).padStart(digits, "0");
|
|
3360
3363
|
}
|
|
@@ -3852,9 +3855,16 @@ var import_react17 = require("react");
|
|
|
3852
3855
|
var import_sortable = require("@dnd-kit/sortable");
|
|
3853
3856
|
var import_utilities = require("@dnd-kit/utilities");
|
|
3854
3857
|
var import_jsx_runtime19 = (
|
|
3855
|
-
//
|
|
3858
|
+
// Counter variable - digit padding is editable via an inline stepper
|
|
3856
3859
|
require("react/jsx-runtime")
|
|
3857
3860
|
);
|
|
3861
|
+
var COUNTER_MIN_DIGITS = 1;
|
|
3862
|
+
var COUNTER_MAX_DIGITS = 6;
|
|
3863
|
+
function parseCounterDigits(value) {
|
|
3864
|
+
const m = value.match(/^counter:(\d+)$/);
|
|
3865
|
+
const n = m ? parseInt(m[1], 10) : 3;
|
|
3866
|
+
return Math.min(COUNTER_MAX_DIGITS, Math.max(COUNTER_MIN_DIGITS, n));
|
|
3867
|
+
}
|
|
3858
3868
|
function getSegmentStyle(type) {
|
|
3859
3869
|
if (type === "variable") {
|
|
3860
3870
|
return "bg-blue-100 border-blue-300 text-blue-800";
|
|
@@ -3912,6 +3922,12 @@ function PatternSegmentItem({
|
|
|
3912
3922
|
}
|
|
3913
3923
|
};
|
|
3914
3924
|
const segmentStyle = getSegmentStyle(segment.type);
|
|
3925
|
+
const isCounter = segment.type === "variable" && isCounterVariable(segment.value);
|
|
3926
|
+
const counterDigits = isCounter ? parseCounterDigits(segment.value) : 3;
|
|
3927
|
+
const handleCounterDigitsChange = (next) => {
|
|
3928
|
+
const clamped = Math.min(COUNTER_MAX_DIGITS, Math.max(COUNTER_MIN_DIGITS, next));
|
|
3929
|
+
onUpdate?.(segment.id, `counter:${clamped}`);
|
|
3930
|
+
};
|
|
3915
3931
|
return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3916
3932
|
"div",
|
|
3917
3933
|
{
|
|
@@ -3929,11 +3945,35 @@ function PatternSegmentItem({
|
|
|
3929
3945
|
onKeyDown: handleKeyDown,
|
|
3930
3946
|
tabIndex: 0,
|
|
3931
3947
|
children: [
|
|
3932
|
-
|
|
3948
|
+
isCounter ? /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center px-2 py-1 gap-0.5", children: [
|
|
3933
3949
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-xs opacity-60", children: "{" }),
|
|
3934
|
-
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "font-medium", children:
|
|
3950
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "font-medium", children: "counter" }),
|
|
3951
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-xs opacity-60", children: ":" }),
|
|
3952
|
+
readOnly ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "font-medium tabular-nums", children: counterDigits }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3953
|
+
"input",
|
|
3954
|
+
{
|
|
3955
|
+
type: "number",
|
|
3956
|
+
min: COUNTER_MIN_DIGITS,
|
|
3957
|
+
max: COUNTER_MAX_DIGITS,
|
|
3958
|
+
value: counterDigits,
|
|
3959
|
+
"aria-label": "Counter digits",
|
|
3960
|
+
title: "Number of digits (zero-padded)",
|
|
3961
|
+
onChange: (e) => handleCounterDigitsChange(parseInt(e.target.value, 10) || COUNTER_MIN_DIGITS),
|
|
3962
|
+
onPointerDown: (e) => e.stopPropagation(),
|
|
3963
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
3964
|
+
onClick: (e) => e.stopPropagation(),
|
|
3965
|
+
className: "w-10 px-1 py-0 text-sm text-center bg-white/70 border border-blue-300 rounded tabular-nums focus:outline-none focus:ring-1 focus:ring-blue-500"
|
|
3966
|
+
}
|
|
3967
|
+
),
|
|
3935
3968
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-xs opacity-60", children: "}" })
|
|
3936
|
-
] }) :
|
|
3969
|
+
] }) : segment.type === "variable" ? (
|
|
3970
|
+
// Variable segment - not editable, just display
|
|
3971
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center px-2 py-1", children: [
|
|
3972
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-xs opacity-60", children: "{" }),
|
|
3973
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "font-medium", children: segment.value }),
|
|
3974
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("span", { className: "text-xs opacity-60", children: "}" })
|
|
3975
|
+
] })
|
|
3976
|
+
) : isEditing && !readOnly ? (
|
|
3937
3977
|
// Literal segment in edit mode
|
|
3938
3978
|
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3939
3979
|
"input",
|
|
@@ -5273,6 +5313,7 @@ function NamingConventionManager({
|
|
|
5273
5313
|
const [isLoading, setIsLoading] = (0, import_react23.useState)(true);
|
|
5274
5314
|
const [isSaving, setIsSaving] = (0, import_react23.useState)(false);
|
|
5275
5315
|
const [isCreating, setIsCreating] = (0, import_react23.useState)(false);
|
|
5316
|
+
const [editorResetKey, setEditorResetKey] = (0, import_react23.useState)(0);
|
|
5276
5317
|
const loadConventions = (0, import_react23.useCallback)(async () => {
|
|
5277
5318
|
try {
|
|
5278
5319
|
setIsLoading(true);
|
|
@@ -5368,6 +5409,8 @@ function NamingConventionManager({
|
|
|
5368
5409
|
if (isCreating) {
|
|
5369
5410
|
setIsCreating(false);
|
|
5370
5411
|
setSelectedConvention(conventions[0] || null);
|
|
5412
|
+
} else if (selectedConvention) {
|
|
5413
|
+
setEditorResetKey((k) => k + 1);
|
|
5371
5414
|
}
|
|
5372
5415
|
};
|
|
5373
5416
|
const listStyle = typeof listWidth === "number" ? { width: `${listWidth}px` } : { width: listWidth };
|
|
@@ -5394,7 +5437,8 @@ function NamingConventionManager({
|
|
|
5394
5437
|
onCancel: handleCancel,
|
|
5395
5438
|
isSaving,
|
|
5396
5439
|
defaultScopeId
|
|
5397
|
-
}
|
|
5440
|
+
},
|
|
5441
|
+
isCreating ? "new" : `${selectedConvention?.id ?? "none"}-${editorResetKey}`
|
|
5398
5442
|
) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "flex items-center justify-center h-full bg-white", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "text-center", children: [
|
|
5399
5443
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
5400
5444
|
"svg",
|
package/dist/ui/index.mjs
CHANGED
|
@@ -3280,6 +3280,9 @@ function formatDateToken(date, format) {
|
|
|
3280
3280
|
return format;
|
|
3281
3281
|
}
|
|
3282
3282
|
}
|
|
3283
|
+
function isCounterVariable(variableName) {
|
|
3284
|
+
return variableName === "counter" || variableName.startsWith("counter:");
|
|
3285
|
+
}
|
|
3283
3286
|
function formatCounter(value, digits = 3) {
|
|
3284
3287
|
return String(value).padStart(digits, "0");
|
|
3285
3288
|
}
|
|
@@ -3780,6 +3783,13 @@ import { useState as useState11, useRef as useRef5, useEffect as useEffect8 } fr
|
|
|
3780
3783
|
import { useSortable } from "@dnd-kit/sortable";
|
|
3781
3784
|
import { CSS } from "@dnd-kit/utilities";
|
|
3782
3785
|
import { jsx as jsx19, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
3786
|
+
var COUNTER_MIN_DIGITS = 1;
|
|
3787
|
+
var COUNTER_MAX_DIGITS = 6;
|
|
3788
|
+
function parseCounterDigits(value) {
|
|
3789
|
+
const m = value.match(/^counter:(\d+)$/);
|
|
3790
|
+
const n = m ? parseInt(m[1], 10) : 3;
|
|
3791
|
+
return Math.min(COUNTER_MAX_DIGITS, Math.max(COUNTER_MIN_DIGITS, n));
|
|
3792
|
+
}
|
|
3783
3793
|
function getSegmentStyle(type) {
|
|
3784
3794
|
if (type === "variable") {
|
|
3785
3795
|
return "bg-blue-100 border-blue-300 text-blue-800";
|
|
@@ -3837,6 +3847,12 @@ function PatternSegmentItem({
|
|
|
3837
3847
|
}
|
|
3838
3848
|
};
|
|
3839
3849
|
const segmentStyle = getSegmentStyle(segment.type);
|
|
3850
|
+
const isCounter = segment.type === "variable" && isCounterVariable(segment.value);
|
|
3851
|
+
const counterDigits = isCounter ? parseCounterDigits(segment.value) : 3;
|
|
3852
|
+
const handleCounterDigitsChange = (next) => {
|
|
3853
|
+
const clamped = Math.min(COUNTER_MAX_DIGITS, Math.max(COUNTER_MIN_DIGITS, next));
|
|
3854
|
+
onUpdate?.(segment.id, `counter:${clamped}`);
|
|
3855
|
+
};
|
|
3840
3856
|
return /* @__PURE__ */ jsxs18(
|
|
3841
3857
|
"div",
|
|
3842
3858
|
{
|
|
@@ -3854,7 +3870,31 @@ function PatternSegmentItem({
|
|
|
3854
3870
|
onKeyDown: handleKeyDown,
|
|
3855
3871
|
tabIndex: 0,
|
|
3856
3872
|
children: [
|
|
3857
|
-
|
|
3873
|
+
isCounter ? (
|
|
3874
|
+
// Counter variable - digit padding is editable via an inline stepper
|
|
3875
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex items-center px-2 py-1 gap-0.5", children: [
|
|
3876
|
+
/* @__PURE__ */ jsx19("span", { className: "text-xs opacity-60", children: "{" }),
|
|
3877
|
+
/* @__PURE__ */ jsx19("span", { className: "font-medium", children: "counter" }),
|
|
3878
|
+
/* @__PURE__ */ jsx19("span", { className: "text-xs opacity-60", children: ":" }),
|
|
3879
|
+
readOnly ? /* @__PURE__ */ jsx19("span", { className: "font-medium tabular-nums", children: counterDigits }) : /* @__PURE__ */ jsx19(
|
|
3880
|
+
"input",
|
|
3881
|
+
{
|
|
3882
|
+
type: "number",
|
|
3883
|
+
min: COUNTER_MIN_DIGITS,
|
|
3884
|
+
max: COUNTER_MAX_DIGITS,
|
|
3885
|
+
value: counterDigits,
|
|
3886
|
+
"aria-label": "Counter digits",
|
|
3887
|
+
title: "Number of digits (zero-padded)",
|
|
3888
|
+
onChange: (e) => handleCounterDigitsChange(parseInt(e.target.value, 10) || COUNTER_MIN_DIGITS),
|
|
3889
|
+
onPointerDown: (e) => e.stopPropagation(),
|
|
3890
|
+
onKeyDown: (e) => e.stopPropagation(),
|
|
3891
|
+
onClick: (e) => e.stopPropagation(),
|
|
3892
|
+
className: "w-10 px-1 py-0 text-sm text-center bg-white/70 border border-blue-300 rounded tabular-nums focus:outline-none focus:ring-1 focus:ring-blue-500"
|
|
3893
|
+
}
|
|
3894
|
+
),
|
|
3895
|
+
/* @__PURE__ */ jsx19("span", { className: "text-xs opacity-60", children: "}" })
|
|
3896
|
+
] })
|
|
3897
|
+
) : segment.type === "variable" ? (
|
|
3858
3898
|
// Variable segment - not editable, just display
|
|
3859
3899
|
/* @__PURE__ */ jsxs18("div", { className: "flex items-center px-2 py-1", children: [
|
|
3860
3900
|
/* @__PURE__ */ jsx19("span", { className: "text-xs opacity-60", children: "{" }),
|
|
@@ -5201,6 +5241,7 @@ function NamingConventionManager({
|
|
|
5201
5241
|
const [isLoading, setIsLoading] = useState15(true);
|
|
5202
5242
|
const [isSaving, setIsSaving] = useState15(false);
|
|
5203
5243
|
const [isCreating, setIsCreating] = useState15(false);
|
|
5244
|
+
const [editorResetKey, setEditorResetKey] = useState15(0);
|
|
5204
5245
|
const loadConventions = useCallback16(async () => {
|
|
5205
5246
|
try {
|
|
5206
5247
|
setIsLoading(true);
|
|
@@ -5296,6 +5337,8 @@ function NamingConventionManager({
|
|
|
5296
5337
|
if (isCreating) {
|
|
5297
5338
|
setIsCreating(false);
|
|
5298
5339
|
setSelectedConvention(conventions[0] || null);
|
|
5340
|
+
} else if (selectedConvention) {
|
|
5341
|
+
setEditorResetKey((k) => k + 1);
|
|
5299
5342
|
}
|
|
5300
5343
|
};
|
|
5301
5344
|
const listStyle = typeof listWidth === "number" ? { width: `${listWidth}px` } : { width: listWidth };
|
|
@@ -5322,7 +5365,8 @@ function NamingConventionManager({
|
|
|
5322
5365
|
onCancel: handleCancel,
|
|
5323
5366
|
isSaving,
|
|
5324
5367
|
defaultScopeId
|
|
5325
|
-
}
|
|
5368
|
+
},
|
|
5369
|
+
isCreating ? "new" : `${selectedConvention?.id ?? "none"}-${editorResetKey}`
|
|
5326
5370
|
) : /* @__PURE__ */ jsx26("div", { className: "flex items-center justify-center h-full bg-white", children: /* @__PURE__ */ jsxs25("div", { className: "text-center", children: [
|
|
5327
5371
|
/* @__PURE__ */ jsx26(
|
|
5328
5372
|
"svg",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_files",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"description": "File management including integration to cloud files",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|
|
@@ -86,8 +86,11 @@
|
|
|
86
86
|
},
|
|
87
87
|
"homepage": "https://github.com/pub12/hazo_files#readme",
|
|
88
88
|
"dependencies": {
|
|
89
|
-
"
|
|
89
|
+
"@dnd-kit/core": "^6.0.0",
|
|
90
|
+
"@dnd-kit/sortable": "^8.0.0",
|
|
91
|
+
"@dnd-kit/utilities": "^3.0.0",
|
|
90
92
|
"googleapis": "^140",
|
|
93
|
+
"ini": "^4.1.3",
|
|
91
94
|
"mime-types": "^2.1.35"
|
|
92
95
|
},
|
|
93
96
|
"devDependencies": {
|
|
@@ -102,9 +105,9 @@
|
|
|
102
105
|
"@types/react": "^18.3.3",
|
|
103
106
|
"@types/react-dom": "^18.3.0",
|
|
104
107
|
"dropbox": "^10.34.0",
|
|
105
|
-
"hazo_core": "^
|
|
106
|
-
"hazo_jobs": "^0.
|
|
107
|
-
"hazo_llm_api": "^2.
|
|
108
|
+
"hazo_core": "^2.0.0",
|
|
109
|
+
"hazo_jobs": "^0.17.0",
|
|
110
|
+
"hazo_llm_api": "^2.3.0",
|
|
108
111
|
"jsdom": "^28.1.0",
|
|
109
112
|
"react": "^18.2.0",
|
|
110
113
|
"react-dom": "^18.2.0",
|
|
@@ -115,35 +118,23 @@
|
|
|
115
118
|
"xxhash-wasm": "^1.1.0"
|
|
116
119
|
},
|
|
117
120
|
"peerDependencies": {
|
|
118
|
-
"@dnd-kit/core": "^6.0.0",
|
|
119
|
-
"@dnd-kit/sortable": "^8.0.0",
|
|
120
|
-
"@dnd-kit/utilities": "^3.0.0",
|
|
121
121
|
"dropbox": "^10.0.0",
|
|
122
122
|
"googleapis": "^140.0.0",
|
|
123
|
-
"hazo_connect": "^
|
|
124
|
-
"hazo_core": "^
|
|
125
|
-
"hazo_debug": "^3.
|
|
126
|
-
"hazo_jobs": "^0.
|
|
127
|
-
"hazo_llm_api": "^2.
|
|
128
|
-
"hazo_logs": "^2.0
|
|
129
|
-
"hazo_secure": "^1.
|
|
130
|
-
"hazo_ui": "^
|
|
131
|
-
"react": "^18.0.0",
|
|
132
|
-
"react-dom": "^18.0.0",
|
|
123
|
+
"hazo_connect": "^4.0.0",
|
|
124
|
+
"hazo_core": "^2.0.0",
|
|
125
|
+
"hazo_debug": "^3.2.0",
|
|
126
|
+
"hazo_jobs": "^0.17.0",
|
|
127
|
+
"hazo_llm_api": "^2.3.0",
|
|
128
|
+
"hazo_logs": "^2.2.0",
|
|
129
|
+
"hazo_secure": "^1.7.1",
|
|
130
|
+
"hazo_ui": "^6.8.0",
|
|
131
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
132
|
+
"react-dom": "^18.0.0 || ^19.0.0",
|
|
133
133
|
"server-only": "^0.0.1",
|
|
134
134
|
"sonner": "^2.0.7",
|
|
135
135
|
"xxhash-wasm": "^1.0.0"
|
|
136
136
|
},
|
|
137
137
|
"peerDependenciesMeta": {
|
|
138
|
-
"@dnd-kit/core": {
|
|
139
|
-
"optional": true
|
|
140
|
-
},
|
|
141
|
-
"@dnd-kit/sortable": {
|
|
142
|
-
"optional": true
|
|
143
|
-
},
|
|
144
|
-
"@dnd-kit/utilities": {
|
|
145
|
-
"optional": true
|
|
146
|
-
},
|
|
147
138
|
"dropbox": {
|
|
148
139
|
"optional": true
|
|
149
140
|
},
|