@floegence/floe-webapp-core 0.13.0 → 0.14.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.
@@ -5,6 +5,12 @@ export interface DropdownItem {
5
5
  icon?: () => JSX.Element;
6
6
  disabled?: boolean;
7
7
  separator?: boolean;
8
+ /** Submenu items for cascade dropdown */
9
+ children?: DropdownItem[];
10
+ /** Custom content to render instead of label (for embedding components) */
11
+ content?: () => JSX.Element;
12
+ /** Prevent closing menu when clicking this item */
13
+ keepOpen?: boolean;
8
14
  }
9
15
  export interface DropdownProps {
10
16
  trigger: JSX.Element;
@@ -15,7 +21,7 @@ export interface DropdownProps {
15
21
  class?: string;
16
22
  }
17
23
  /**
18
- * Dropdown menu component
24
+ * Dropdown menu component with cascade submenu support
19
25
  */
20
26
  export declare function Dropdown(props: DropdownProps): JSX.Element;
21
27
  /**
@@ -23,3 +23,65 @@ export interface TextareaProps extends JSX.TextareaHTMLAttributes<HTMLTextAreaEl
23
23
  helperText?: string;
24
24
  }
25
25
  export declare function Textarea(props: TextareaProps): JSX.Element;
26
+ /**
27
+ * NumberInput - Number input with increment/decrement buttons
28
+ */
29
+ export interface NumberInputProps {
30
+ /** Current value */
31
+ value: number;
32
+ /** Called when value changes */
33
+ onChange: (value: number) => void;
34
+ /** Minimum value */
35
+ min?: number;
36
+ /** Maximum value */
37
+ max?: number;
38
+ /** Step increment (default: 1) */
39
+ step?: number;
40
+ /** Input size variant */
41
+ size?: InputSize;
42
+ /** Disabled state (disables both input and buttons) */
43
+ disabled?: boolean;
44
+ /** Disable direct input, only allow button clicks */
45
+ inputDisabled?: boolean;
46
+ /** Placeholder text */
47
+ placeholder?: string;
48
+ /** Error message */
49
+ error?: string;
50
+ /** Helper text */
51
+ helperText?: string;
52
+ /** Additional CSS class */
53
+ class?: string;
54
+ }
55
+ export declare function NumberInput(props: NumberInputProps): JSX.Element;
56
+ /**
57
+ * AffixInput - Input with selectable prefix and/or suffix
58
+ */
59
+ export interface AffixOption {
60
+ value: string;
61
+ label: string;
62
+ }
63
+ export interface AffixInputProps extends Omit<JSX.InputHTMLAttributes<HTMLInputElement>, 'size' | 'prefix'> {
64
+ /** Input size variant */
65
+ size?: InputSize;
66
+ /** Error message */
67
+ error?: string;
68
+ /** Helper text */
69
+ helperText?: string;
70
+ /** Fixed prefix text (non-selectable) */
71
+ prefix?: string;
72
+ /** Fixed suffix text (non-selectable) */
73
+ suffix?: string;
74
+ /** Selectable prefix options */
75
+ prefixOptions?: AffixOption[];
76
+ /** Selected prefix value */
77
+ prefixValue?: string;
78
+ /** Called when prefix selection changes */
79
+ onPrefixChange?: (value: string) => void;
80
+ /** Selectable suffix options */
81
+ suffixOptions?: AffixOption[];
82
+ /** Selected suffix value */
83
+ suffixValue?: string;
84
+ /** Called when suffix selection changes */
85
+ onSuffixChange?: (value: string) => void;
86
+ }
87
+ export declare function AffixInput(props: AffixInputProps): JSX.Element;
@@ -1,5 +1,5 @@
1
1
  export { Button, type ButtonProps, type ButtonVariant, type ButtonSize } from './Button';
2
- export { Input, Textarea, type InputProps, type InputSize, type TextareaProps } from './Input';
2
+ export { Input, Textarea, NumberInput, AffixInput, type InputProps, type InputSize, type TextareaProps, type NumberInputProps, type AffixInputProps, type AffixOption, } from './Input';
3
3
  export { Dialog, ConfirmDialog, type DialogProps, type ConfirmDialogProps } from './Dialog';
4
4
  export { FloatingWindow, type FloatingWindowProps } from './FloatingWindow';
5
5
  export { Dropdown, Select, type DropdownProps, type DropdownItem, type SelectProps } from './Dropdown';