@floegence/floe-webapp-core 0.11.8 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/components/ui/DirectoryPicker.d.ts +2 -30
  2. package/dist/components/ui/FileSavePicker.d.ts +2 -30
  3. package/dist/components/ui/Input.d.ts +10 -1
  4. package/dist/components/ui/ProcessingIndicator.d.ts +2 -5
  5. package/dist/components/ui/Tabs.d.ts +24 -0
  6. package/dist/components/ui/index.d.ts +1 -0
  7. package/dist/components/ui/picker/PickerBase.d.ts +36 -0
  8. package/dist/index.js +527 -526
  9. package/dist/index10.js +2 -2
  10. package/dist/index100.js +19 -13
  11. package/dist/index101.js +13 -10
  12. package/dist/index102.js +10 -22
  13. package/dist/index103.js +22 -10
  14. package/dist/index104.js +10 -8
  15. package/dist/index105.js +8 -74
  16. package/dist/index106.js +74 -5
  17. package/dist/index107.js +5 -11
  18. package/dist/index108.js +10 -25
  19. package/dist/index109.js +24 -30
  20. package/dist/index11.js +4 -4
  21. package/dist/index110.js +31 -90
  22. package/dist/index111.js +90 -26
  23. package/dist/index112.js +24 -43
  24. package/dist/index113.js +45 -13
  25. package/dist/index114.js +14 -35
  26. package/dist/index115.js +33 -62
  27. package/dist/index116.js +61 -81
  28. package/dist/index117.js +84 -13
  29. package/dist/index118.js +14 -2763
  30. package/dist/index119.js +2763 -8
  31. package/dist/index12.js +5 -5
  32. package/dist/index120.js +6 -406
  33. package/dist/index13.js +3 -3
  34. package/dist/index14.js +4 -4
  35. package/dist/index15.js +5 -5
  36. package/dist/index16.js +5 -5
  37. package/dist/index17.js +4 -4
  38. package/dist/index18.js +7 -7
  39. package/dist/index19.js +2 -2
  40. package/dist/index2.js +6 -6
  41. package/dist/index20.js +2 -2
  42. package/dist/index21.js +66 -32
  43. package/dist/index22.js +4 -4
  44. package/dist/index23.js +4 -4
  45. package/dist/index24.js +3 -3
  46. package/dist/index25.js +1 -1
  47. package/dist/index26.js +5 -5
  48. package/dist/index27.js +1 -1
  49. package/dist/index28.js +114 -113
  50. package/dist/index29.js +3 -3
  51. package/dist/index3.js +2 -2
  52. package/dist/index30.js +4 -4
  53. package/dist/index31.js +397 -54
  54. package/dist/index32.js +55 -133
  55. package/dist/index33.js +118 -853
  56. package/dist/index34.js +782 -744
  57. package/dist/index35.js +828 -77
  58. package/dist/index36.js +86 -37
  59. package/dist/index37.js +37 -66
  60. package/dist/index38.js +69 -2104
  61. package/dist/index39.js +2104 -146
  62. package/dist/index4.js +1 -1
  63. package/dist/index40.js +141 -23
  64. package/dist/index41.js +25 -45
  65. package/dist/index42.js +45 -10
  66. package/dist/index43.js +10 -27
  67. package/dist/index44.js +27 -186
  68. package/dist/index45.js +180 -351
  69. package/dist/index46.js +352 -120
  70. package/dist/index47.js +97 -322
  71. package/dist/index48.js +304 -122
  72. package/dist/index49.js +160 -178
  73. package/dist/index5.js +4 -4
  74. package/dist/index50.js +182 -145
  75. package/dist/index51.js +142 -113
  76. package/dist/index52.js +119 -47
  77. package/dist/index53.js +50 -91
  78. package/dist/index54.js +84 -301
  79. package/dist/index55.js +308 -8
  80. package/dist/index56.js +9 -142
  81. package/dist/index57.js +108 -70
  82. package/dist/index58.js +95 -40
  83. package/dist/index59.js +43 -36
  84. package/dist/index6.js +2 -2
  85. package/dist/index60.js +36 -38
  86. package/dist/index61.js +34 -32
  87. package/dist/index62.js +35 -43
  88. package/dist/index63.js +50 -278
  89. package/dist/index64.js +277 -8
  90. package/dist/index65.js +9 -59
  91. package/dist/index66.js +51 -75
  92. package/dist/index67.js +58 -148
  93. package/dist/index68.js +158 -122
  94. package/dist/index69.js +137 -18
  95. package/dist/index7.js +2 -2
  96. package/dist/index70.js +18 -136
  97. package/dist/index71.js +135 -22
  98. package/dist/index72.js +23 -33
  99. package/dist/index73.js +33 -29
  100. package/dist/index74.js +23 -22
  101. package/dist/index75.js +18 -278
  102. package/dist/index76.js +271 -59
  103. package/dist/index77.js +71 -58
  104. package/dist/index78.js +63 -9
  105. package/dist/index79.js +7 -7
  106. package/dist/index8.js +2 -2
  107. package/dist/index80.js +8 -45
  108. package/dist/index81.js +45 -115
  109. package/dist/index82.js +109 -67
  110. package/dist/index83.js +54 -53
  111. package/dist/index84.js +69 -30
  112. package/dist/index85.js +28 -89
  113. package/dist/index86.js +90 -44
  114. package/dist/index87.js +40 -29
  115. package/dist/index88.js +31 -42
  116. package/dist/index89.js +48 -25
  117. package/dist/index9.js +1 -1
  118. package/dist/index90.js +21 -168
  119. package/dist/index91.js +168 -36
  120. package/dist/index92.js +38 -63
  121. package/dist/index93.js +62 -90
  122. package/dist/index94.js +83 -108
  123. package/dist/index95.js +111 -129
  124. package/dist/index96.js +129 -32
  125. package/dist/index97.js +29 -511
  126. package/dist/index98.js +519 -36
  127. package/dist/index99.js +31 -12
  128. package/package.json +1 -1
@@ -1,35 +1,7 @@
1
- import type { FileItem } from '../file-browser/types';
2
- export interface DirectoryPickerProps {
3
- /** Whether the picker dialog is open */
4
- open: boolean;
5
- onOpenChange: (open: boolean) => void;
6
- /** Full file tree (same FileItem[] as FileBrowser) */
7
- files: FileItem[];
8
- /** Initial selected path (default: '/') */
9
- initialPath?: string;
10
- /** Dialog title (default: 'Select Directory') */
11
- title?: string;
12
- /** Confirm button text (default: 'Select') */
13
- confirmText?: string;
14
- /** Cancel button text (default: 'Cancel') */
15
- cancelText?: string;
1
+ import { type BasePickerProps } from './picker/PickerBase';
2
+ export interface DirectoryPickerProps extends BasePickerProps {
16
3
  /** Called when user confirms selection */
17
4
  onSelect: (path: string) => void;
18
- /**
19
- * Called when user creates a new folder.
20
- * When provided, a "New Folder" button is shown.
21
- */
22
- onCreateFolder?: (parentPath: string, name: string) => Promise<void>;
23
- /** Optional: filter which directories are selectable (return false to grey-out) */
24
- filter?: (item: FileItem) => boolean;
25
- /** Label for the home/root directory in tree and breadcrumb (default: 'Root') */
26
- homeLabel?: string;
27
- /**
28
- * Real filesystem path of the home directory (e.g. '/home/user').
29
- * When set, path input and display paths show real filesystem paths.
30
- */
31
- homePath?: string;
32
- class?: string;
33
5
  }
34
6
  /**
35
7
  * Modal directory picker for selecting a folder path.
@@ -1,42 +1,14 @@
1
- import type { FileItem } from '../file-browser/types';
2
- export interface FileSavePickerProps {
3
- /** Whether the picker dialog is open */
4
- open: boolean;
5
- onOpenChange: (open: boolean) => void;
6
- /** Full file tree (same FileItem[] as FileBrowser) */
7
- files: FileItem[];
8
- /** Initial directory path (default: '/') */
9
- initialPath?: string;
1
+ import { type BasePickerProps } from './picker/PickerBase';
2
+ export interface FileSavePickerProps extends BasePickerProps {
10
3
  /** Pre-filled filename (e.g. rename scenario) */
11
4
  initialFileName?: string;
12
- /** Dialog title (default: 'Save File') */
13
- title?: string;
14
- /** Confirm button text (default: 'Save') */
15
- confirmText?: string;
16
- /** Cancel button text (default: 'Cancel') */
17
- cancelText?: string;
18
5
  /** Called when user confirms save */
19
6
  onSave: (dirPath: string, fileName: string) => void;
20
- /**
21
- * Called when user creates a new folder.
22
- * When provided, a "New Folder" button is shown.
23
- */
24
- onCreateFolder?: (parentPath: string, name: string) => Promise<void>;
25
- /** Optional: filter which directories are selectable (return false to grey-out) */
26
- filter?: (item: FileItem) => boolean;
27
7
  /**
28
8
  * Validate the filename before save.
29
9
  * Return an error message string to block, or empty string to allow.
30
10
  */
31
11
  validateFileName?: (name: string) => string;
32
- /** Label for the home/root directory in tree and breadcrumb (default: 'Root') */
33
- homeLabel?: string;
34
- /**
35
- * Real filesystem path of the home directory (e.g. '/home/user').
36
- * When set, path input and display paths show real filesystem paths.
37
- */
38
- homePath?: string;
39
- class?: string;
40
12
  }
41
13
  /**
42
14
  * Modal file-save picker with directory tree, file list, and filename input.
@@ -1,16 +1,25 @@
1
1
  import { type JSX } from 'solid-js';
2
2
  export type InputSize = 'sm' | 'md' | 'lg';
3
3
  export interface InputProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, 'size'> {
4
+ /** Input size variant */
4
5
  size?: InputSize;
6
+ /** Error message - also sets aria-invalid and aria-describedby */
5
7
  error?: string;
8
+ /** Helper text displayed below the input */
9
+ helperText?: string;
10
+ /** Icon displayed on the left side */
6
11
  leftIcon?: JSX.Element;
12
+ /** Icon displayed on the right side */
7
13
  rightIcon?: JSX.Element;
8
14
  }
9
15
  export declare function Input(props: InputProps): JSX.Element;
10
16
  /**
11
- * Textarea variant
17
+ * Textarea variant - Multi-line text input with auto-resize support
12
18
  */
13
19
  export interface TextareaProps extends JSX.TextareaHTMLAttributes<HTMLTextAreaElement> {
20
+ /** Error message - also sets aria-invalid and aria-describedby */
14
21
  error?: string;
22
+ /** Helper text displayed below the textarea */
23
+ helperText?: string;
15
24
  }
16
25
  export declare function Textarea(props: TextareaProps): JSX.Element;
@@ -1,13 +1,10 @@
1
- import { type JSX } from 'solid-js';
2
1
  export type ProcessingIndicatorVariant = 'minimal' | 'pill' | 'card' | 'elegant' | 'aurora' | 'neural' | 'orbit' | 'quantum' | 'pulse' | 'atom';
3
2
  export type ProcessingIndicatorStatus = 'thinking' | 'working' | 'processing' | 'loading' | 'analyzing';
4
3
  export interface ProcessingIndicatorProps {
5
4
  /** Display status text */
6
5
  status?: ProcessingIndicatorStatus | string;
7
- /** Visual variant */
6
+ /** Visual variant - each has unique built-in animations */
8
7
  variant?: ProcessingIndicatorVariant;
9
- /** Custom icon */
10
- icon?: JSX.Element;
11
8
  /** Show elapsed time */
12
9
  showElapsed?: boolean;
13
10
  /** Start time for elapsed calculation (defaults to mount time) */
@@ -34,5 +31,5 @@ export interface ProcessingIndicatorProps {
34
31
  * - Pulse: Expanding rings
35
32
  * - Atom: 3D electron orbits
36
33
  */
37
- export declare function ProcessingIndicator(props: ProcessingIndicatorProps): JSX.Element;
34
+ export declare function ProcessingIndicator(props: ProcessingIndicatorProps): import("solid-js").JSX.Element;
38
35
  export default ProcessingIndicator;
@@ -7,14 +7,38 @@ export interface TabItem {
7
7
  disabled?: boolean;
8
8
  }
9
9
  export interface TabsProps extends Omit<JSX.HTMLAttributes<HTMLDivElement>, 'onChange' | 'onClose'> {
10
+ /** Tab data items */
10
11
  items: TabItem[];
12
+ /**
13
+ * Active tab id (controlled mode).
14
+ * When set, you must also provide onChange to handle changes.
15
+ */
11
16
  activeId?: string;
17
+ /**
18
+ * Default active tab id (uncontrolled mode).
19
+ * Use this when you don't need external control over the active tab.
20
+ */
21
+ defaultActiveId?: string;
22
+ /**
23
+ * Callback when active tab changes.
24
+ * Alias: onActiveIdChange (for consistency with other components)
25
+ */
12
26
  onChange?: (id: string) => void;
27
+ /**
28
+ * Alias for onChange (consistent naming with Radix/shadcn patterns).
29
+ */
30
+ onActiveIdChange?: (id: string) => void;
31
+ /** Callback when tab is closed */
13
32
  onClose?: (id: string) => void;
33
+ /** Callback when add button is clicked */
14
34
  onAdd?: () => void;
35
+ /** Whether to show add button */
15
36
  showAdd?: boolean;
37
+ /** Whether tabs are closable by default */
16
38
  closable?: boolean;
39
+ /** Tab size variant */
17
40
  size?: 'sm' | 'md';
41
+ /** Tab style variant */
18
42
  variant?: 'default' | 'card' | 'underline';
19
43
  }
20
44
  export declare function Tabs(props: TabsProps): JSX.Element;
@@ -9,6 +9,7 @@ export { Card, CardHeader, CardTitle, CardDescription, CardContent, CardFooter,
9
9
  export { Tabs, TabPanel, type TabsProps, type TabPanelProps, type TabItem } from './Tabs';
10
10
  export { DirectoryPicker, type DirectoryPickerProps } from './DirectoryPicker';
11
11
  export { FileSavePicker, type FileSavePickerProps } from './FileSavePicker';
12
+ export { type BasePickerProps } from './picker/PickerBase';
12
13
  export { QuoteBlock, type QuoteBlockProps } from './QuoteBlock';
13
14
  export { HighlightBlock, InfoBlock, WarningBlock, SuccessBlock, ErrorBlock, NoteBlock, TipBlock, type HighlightBlockProps, type HighlightVariant, } from './HighlightBlock';
14
15
  export { ProcessingIndicator, type ProcessingIndicatorProps, type ProcessingIndicatorVariant, type ProcessingIndicatorStatus, } from './ProcessingIndicator';
@@ -4,6 +4,42 @@
4
4
  */
5
5
  import { type Accessor, type JSX } from 'solid-js';
6
6
  import type { FileItem } from '../../file-browser/types';
7
+ /**
8
+ * Base props shared by DirectoryPicker and FileSavePicker.
9
+ * Provides consistent API for file tree navigation.
10
+ */
11
+ export interface BasePickerProps {
12
+ /** Whether the picker dialog is open */
13
+ open: boolean;
14
+ /** Callback when open state changes */
15
+ onOpenChange: (open: boolean) => void;
16
+ /** Full file tree data */
17
+ files: FileItem[];
18
+ /** Initial directory path (default: '/') */
19
+ initialPath?: string;
20
+ /** Dialog title */
21
+ title?: string;
22
+ /** Confirm button text */
23
+ confirmText?: string;
24
+ /** Cancel button text (default: 'Cancel') */
25
+ cancelText?: string;
26
+ /**
27
+ * Callback when user creates a new folder.
28
+ * When provided, a "New Folder" button is shown.
29
+ */
30
+ onCreateFolder?: (parentPath: string, name: string) => Promise<void>;
31
+ /** Filter which directories are selectable (return false to grey-out) */
32
+ filter?: (item: FileItem) => boolean;
33
+ /** Label for the home/root directory (default: 'Root') */
34
+ homeLabel?: string;
35
+ /**
36
+ * Real filesystem path of the home directory (e.g. '/home/user').
37
+ * When set, paths display with real filesystem paths.
38
+ */
39
+ homePath?: string;
40
+ /** Additional CSS class */
41
+ class?: string;
42
+ }
7
43
  export declare function normalizePath(path: string): string;
8
44
  /**
9
45
  * Returns ancestor paths (excluding root and the path itself).