@allxsmith/bestax-bulma 5.8.0 → 5.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -0
- package/dist/index.cjs.js +304 -387
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +304 -387
- package/dist/index.esm.js.map +1 -1
- package/dist/types/columns/Column.d.ts +25 -30
- package/dist/types/columns/Columns.d.ts +23 -30
- package/dist/types/components/Avatar.d.ts +15 -20
- package/dist/types/components/Avatars.d.ts +8 -9
- package/dist/types/components/Badge.d.ts +13 -21
- package/dist/types/components/Breadcrumb.d.ts +6 -9
- package/dist/types/components/Card.d.ts +34 -36
- package/dist/types/components/Carousel.d.ts +29 -29
- package/dist/types/components/Collapse.d.ts +17 -18
- package/dist/types/components/Dialog.d.ts +24 -29
- package/dist/types/components/Dropdown.d.ts +16 -18
- package/dist/types/components/Loading.d.ts +13 -18
- package/dist/types/components/Menu.d.ts +11 -15
- package/dist/types/components/Message.d.ts +11 -14
- package/dist/types/components/Modal.d.ts +23 -29
- package/dist/types/components/Navbar.d.ts +60 -72
- package/dist/types/components/Pagination.d.ts +39 -35
- package/dist/types/components/Panel.d.ts +26 -33
- package/dist/types/components/Reveal.d.ts +11 -17
- package/dist/types/components/Sidebar.d.ts +17 -20
- package/dist/types/components/Steps.d.ts +28 -37
- package/dist/types/components/Tabs.d.ts +44 -43
- package/dist/types/components/Toast.d.ts +23 -28
- package/dist/types/components/Tooltip.d.ts +16 -20
- package/dist/types/elements/Block.d.ts +11 -10
- package/dist/types/elements/Box.d.ts +12 -10
- package/dist/types/elements/Button.d.ts +30 -23
- package/dist/types/elements/Buttons.d.ts +13 -9
- package/dist/types/elements/Code.d.ts +5 -10
- package/dist/types/elements/Content.d.ts +12 -11
- package/dist/types/elements/Delete.d.ts +14 -12
- package/dist/types/elements/Divider.d.ts +3 -7
- package/dist/types/elements/Emphasis.d.ts +5 -10
- package/dist/types/elements/Figure.d.ts +8 -10
- package/dist/types/elements/Icon.d.ts +18 -18
- package/dist/types/elements/IconText.d.ts +14 -11
- package/dist/types/elements/Image.d.ts +17 -17
- package/dist/types/elements/Link.d.ts +10 -14
- package/dist/types/elements/LinkButton.d.ts +3 -9
- package/dist/types/elements/ListItem.d.ts +6 -11
- package/dist/types/elements/Notification.d.ts +33 -24
- package/dist/types/elements/OrderedList.d.ts +7 -8
- package/dist/types/elements/Paragraph.d.ts +5 -10
- package/dist/types/elements/Pre.d.ts +5 -10
- package/dist/types/elements/Progress.d.ts +16 -10
- package/dist/types/elements/Skeleton.d.ts +4 -13
- package/dist/types/elements/Span.d.ts +5 -9
- package/dist/types/elements/Strong.d.ts +5 -10
- package/dist/types/elements/SubTitle.d.ts +9 -11
- package/dist/types/elements/Table.d.ts +8 -9
- package/dist/types/elements/Tag.d.ts +9 -12
- package/dist/types/elements/Tags.d.ts +4 -5
- package/dist/types/elements/Tbody.d.ts +2 -3
- package/dist/types/elements/Td.d.ts +3 -4
- package/dist/types/elements/Tfoot.d.ts +2 -3
- package/dist/types/elements/Th.d.ts +5 -6
- package/dist/types/elements/Thead.d.ts +2 -3
- package/dist/types/elements/Title.d.ts +10 -12
- package/dist/types/elements/Tr.d.ts +4 -5
- package/dist/types/elements/UnorderedList.d.ts +4 -5
- package/dist/types/form/Autocomplete.d.ts +35 -38
- package/dist/types/form/Checkbox.d.ts +7 -18
- package/dist/types/form/Checkboxes.d.ts +6 -7
- package/dist/types/form/Control.d.ts +21 -20
- package/dist/types/form/DateInput.d.ts +24 -24
- package/dist/types/form/DateInputBase.d.ts +36 -34
- package/dist/types/form/DateTimeInput.d.ts +22 -22
- package/dist/types/form/DateTimeInputBase.d.ts +44 -42
- package/dist/types/form/Field.d.ts +23 -26
- package/dist/types/form/File.d.ts +20 -16
- package/dist/types/form/Input.d.ts +20 -24
- package/dist/types/form/InputBase.d.ts +10 -11
- package/dist/types/form/Numberinput.d.ts +27 -24
- package/dist/types/form/Radio.d.ts +7 -18
- package/dist/types/form/Radios.d.ts +6 -7
- package/dist/types/form/Rate.d.ts +21 -37
- package/dist/types/form/Select.d.ts +16 -20
- package/dist/types/form/SelectBase.d.ts +13 -14
- package/dist/types/form/Slider.d.ts +62 -41
- package/dist/types/form/Switch.d.ts +16 -19
- package/dist/types/form/Taginput.d.ts +45 -48
- package/dist/types/form/TextArea.d.ts +11 -15
- package/dist/types/form/TextAreaBase.d.ts +13 -14
- package/dist/types/form/TimeInput.d.ts +24 -23
- package/dist/types/form/TimeInputBase.d.ts +38 -59
- package/dist/types/form/fieldProps.d.ts +1 -1
- package/dist/types/form/useAutoLabelId.d.ts +28 -0
- package/dist/types/grid/Cell.d.ts +12 -13
- package/dist/types/grid/Grid.d.ts +16 -17
- package/dist/types/helpers/colorDeprecations.d.ts +17 -0
- package/dist/types/layout/Container.d.ts +16 -13
- package/dist/types/layout/Footer.d.ts +7 -8
- package/dist/types/layout/Hero.d.ts +34 -28
- package/dist/types/layout/Level.d.ts +30 -33
- package/dist/types/layout/Media.d.ts +25 -29
- package/dist/types/layout/Section.d.ts +7 -8
- package/package.json +18 -18
|
@@ -7,12 +7,6 @@ type IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols';
|
|
|
7
7
|
type BulmaColor = 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
|
|
8
8
|
/**
|
|
9
9
|
* Props for individual rate icons.
|
|
10
|
-
*
|
|
11
|
-
* @property {number} index - The index of this icon (0-based).
|
|
12
|
-
* @property {boolean} isActive - Whether this icon is currently active (filled).
|
|
13
|
-
* @property {boolean} isHovered - Whether this icon is currently hovered.
|
|
14
|
-
* @property {number} value - The current value.
|
|
15
|
-
* @property {number} fillPercent - Fill percentage for partial icons (0-100). Used with precision < 1.
|
|
16
10
|
*/
|
|
17
11
|
export interface RateIconProps {
|
|
18
12
|
/** The index of this icon (0-based) */
|
|
@@ -28,45 +22,39 @@ export interface RateIconProps {
|
|
|
28
22
|
}
|
|
29
23
|
/**
|
|
30
24
|
* Props for the Rate component.
|
|
31
|
-
*
|
|
32
|
-
* @
|
|
33
|
-
* @property {number} [defaultValue] - Initial value for uncontrolled mode. Default: 0.
|
|
34
|
-
* @property {number} [max] - Maximum number of icons. Default: 5.
|
|
35
|
-
* @property {RateSize} [size] - Size modifier for the component.
|
|
36
|
-
* @property {boolean} [disabled] - Whether the rating is disabled.
|
|
37
|
-
* @property {boolean} [showScore] - Display the numeric score next to icons.
|
|
38
|
-
* @property {boolean} [showText] - Display text label for the current value.
|
|
39
|
-
* @property {string[]} [texts] - Text labels per rating level (used with showText).
|
|
40
|
-
* @property {(value: number) => void} [onChange] - Callback when the rating changes.
|
|
41
|
-
* @property {(props: RateIconProps) => React.ReactNode} [customIcon] - Custom icon render function.
|
|
42
|
-
* @property {boolean} [spaced] - Add spacing between icons.
|
|
43
|
-
* @property {boolean} [rtl] - Render icons in right-to-left order.
|
|
44
|
-
* @property {string} [iconName] - Font icon name (e.g., 'star'). When set, renders Icon instead of default SVG.
|
|
45
|
-
* @property {IconLibrary} [iconLibrary] - Icon library to use (defaults to ConfigProvider value or 'fa').
|
|
46
|
-
* @property {string} [iconVariant] - Icon style variant (e.g., 'solid', 'outlined').
|
|
47
|
-
* @property {string|string[]} [iconFeatures] - Additional icon modifiers.
|
|
48
|
-
* @property {BulmaColor} [color] - Bulma color for active icons.
|
|
49
|
-
* @property {number} [precision] - Granularity: 1 for whole stars, 0.5 for half, 0.25 for quarter. Default: 1.
|
|
50
|
-
* @property {string} [customText] - Text displayed after score (e.g., "(128 reviews)").
|
|
51
|
-
* @property {string} [name] - Form field name. When provided, a hidden input is rendered so the rating value is submitted with the surrounding form.
|
|
52
|
-
* @property {string} [form] - The id of the form this hidden input belongs to (for use outside the form element).
|
|
25
|
+
* @extraProp {string} [className] - Additional CSS classes.
|
|
26
|
+
* @extraProp {React.Ref<HTMLElement>} [ref] - Ref forwarded to the container element.
|
|
53
27
|
*/
|
|
54
28
|
export interface RateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'color'>, Omit<BulmaClassesProps, 'size'>, FormFieldProps {
|
|
29
|
+
/** Form field name. When set, a hidden input is rendered. */
|
|
55
30
|
name?: string;
|
|
31
|
+
/** Optional id of the form this hidden input belongs to (use when the input lives outside the form element). */
|
|
56
32
|
form?: string;
|
|
33
|
+
/** Controlled value (0 to max). */
|
|
57
34
|
value?: number;
|
|
35
|
+
/** Default value for uncontrolled usage. */
|
|
58
36
|
defaultValue?: number;
|
|
37
|
+
/** Maximum rating value. */
|
|
59
38
|
max?: number;
|
|
39
|
+
/** Size variant. */
|
|
60
40
|
size?: RateSize;
|
|
41
|
+
/** Whether the rating is disabled. */
|
|
61
42
|
disabled?: boolean;
|
|
43
|
+
/** Show the numeric score next to stars. */
|
|
62
44
|
showScore?: boolean;
|
|
45
|
+
/** Show custom text based on value. */
|
|
63
46
|
showText?: boolean;
|
|
47
|
+
/** Array of text labels for each rating value. */
|
|
64
48
|
texts?: string[];
|
|
49
|
+
/** Callback when rating changes. */
|
|
65
50
|
onChange?: (value: number) => void;
|
|
51
|
+
/** Custom icon renderer. */
|
|
66
52
|
customIcon?: (props: RateIconProps) => React.ReactNode;
|
|
53
|
+
/** Add spacing between icons. */
|
|
67
54
|
spaced?: boolean;
|
|
55
|
+
/** Right-to-left direction. */
|
|
68
56
|
rtl?: boolean;
|
|
69
|
-
/**
|
|
57
|
+
/** Custom icon name for the rating stars. */
|
|
70
58
|
iconName?: string;
|
|
71
59
|
/** Icon library to use (defaults to ConfigProvider value or 'fa'). */
|
|
72
60
|
iconLibrary?: IconLibrary;
|
|
@@ -74,19 +62,15 @@ export interface RateProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'o
|
|
|
74
62
|
iconVariant?: string;
|
|
75
63
|
/** Additional icon modifiers. */
|
|
76
64
|
iconFeatures?: string | string[];
|
|
77
|
-
/**
|
|
65
|
+
/** Color of the active rating icons. */
|
|
78
66
|
color?: BulmaColor;
|
|
79
|
-
/**
|
|
67
|
+
/** Rating precision (e.g., `0.5` for half stars). */
|
|
80
68
|
precision?: number;
|
|
81
|
-
/**
|
|
69
|
+
/** Custom text displayed next to the rating. */
|
|
82
70
|
customText?: string;
|
|
83
71
|
}
|
|
84
72
|
/**
|
|
85
|
-
* Rate component
|
|
86
|
-
*
|
|
87
|
-
* Provides an interactive rating system with customizable icons,
|
|
88
|
-
* sizes, and display options. Works in controlled or uncontrolled modes.
|
|
89
|
-
* Supports icon libraries, Bulma color variants, and fractional precision.
|
|
73
|
+
* The `Rate` component provides a star/icon-based rating system.
|
|
90
74
|
*
|
|
91
75
|
* @function
|
|
92
76
|
* @param {RateProps} props - Props for the Rate component.
|
|
@@ -8,45 +8,41 @@ import { SelectBaseProps } from './SelectBase';
|
|
|
8
8
|
* Composes Field, Control, and SelectBase into a single convenience component.
|
|
9
9
|
* Supports all SelectBase props, plus Field-level (label, horizontal) and
|
|
10
10
|
* Control-level (icons, loading) props.
|
|
11
|
-
*
|
|
12
|
-
* @property {React.ReactNode} [label] - Field label.
|
|
13
|
-
* @property {FieldProps['labelSize']} [labelSize] - Size for the label.
|
|
14
|
-
* @property {FieldProps['labelProps']} [labelProps] - Props for the label element.
|
|
15
|
-
* @property {boolean} [horizontal] - Horizontal field layout.
|
|
16
|
-
* @property {ControlBaseProps['iconLeft']} [iconLeft] - Icon props for left icon.
|
|
17
|
-
* @property {string} [iconLeftName] - Shortcut for left icon name.
|
|
18
|
-
* @property {ControlBaseProps['iconLeftSize']} [iconLeftSize] - Shortcut for left icon size.
|
|
19
|
-
* @property {boolean} [hasIconsLeft] - Force left icon container.
|
|
20
|
-
* @property {boolean} [isLoading] - Show loading indicator on the control.
|
|
21
|
-
* @property {boolean} [isExpanded] - Expand the control.
|
|
22
|
-
* @property {'small'|'medium'|'large'} [controlSize] - Control size.
|
|
23
|
-
* @property {React.ReactNode} [message] - Help/validation message below the select.
|
|
24
|
-
* @property {string} [messageColor] - Bulma color for the message.
|
|
25
|
-
* @property {string} [fieldClassName] - Additional CSS classes for the Field.
|
|
26
|
-
* @property {string} [controlClassName] - Additional CSS classes for the Control.
|
|
27
11
|
*/
|
|
28
12
|
export interface SelectProps extends SelectBaseProps {
|
|
13
|
+
/** Field label. Automatically associated with the select via `htmlFor` — uses your `id` when provided, otherwise a generated one. Dropped inside an outer `Field` (label that `Field` yourself). */
|
|
29
14
|
label?: React.ReactNode;
|
|
15
|
+
/** Size for the label. */
|
|
30
16
|
labelSize?: FieldProps['labelSize'];
|
|
17
|
+
/** Props for the label element. An explicit `htmlFor` here overrides the automatic association (no id is generated then). */
|
|
31
18
|
labelProps?: FieldProps['labelProps'];
|
|
19
|
+
/** Horizontal field layout. */
|
|
32
20
|
horizontal?: boolean;
|
|
21
|
+
/** Icon props for left icon. */
|
|
33
22
|
iconLeft?: ControlBaseProps['iconLeft'];
|
|
23
|
+
/** Shortcut for left icon name. */
|
|
34
24
|
iconLeftName?: string;
|
|
25
|
+
/** Shortcut for left icon size. */
|
|
35
26
|
iconLeftSize?: ControlBaseProps['iconLeftSize'];
|
|
27
|
+
/** Force left icon container. */
|
|
36
28
|
hasIconsLeft?: boolean;
|
|
29
|
+
/** Shows loading indicator. */
|
|
37
30
|
isLoading?: boolean;
|
|
31
|
+
/** Expand the control. */
|
|
38
32
|
isExpanded?: boolean;
|
|
33
|
+
/** Control size. */
|
|
39
34
|
controlSize?: ControlBaseProps['size'];
|
|
35
|
+
/** Help/validation message below the select. */
|
|
40
36
|
message?: React.ReactNode;
|
|
37
|
+
/** Bulma color for the message. */
|
|
41
38
|
messageColor?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
|
|
39
|
+
/** Additional CSS classes for the Field. */
|
|
42
40
|
fieldClassName?: string;
|
|
41
|
+
/** Additional CSS classes for the Control. */
|
|
43
42
|
controlClassName?: string;
|
|
44
43
|
}
|
|
45
44
|
/**
|
|
46
|
-
* Select
|
|
47
|
-
*
|
|
48
|
-
* Use this for typical form fields. For complex layouts (grouped fields,
|
|
49
|
-
* addons, etc.), compose Field, Control, and SelectBase directly.
|
|
45
|
+
* The `Select` component provides a Bulma-styled dropdown for selecting one or more options.
|
|
50
46
|
*
|
|
51
47
|
* @function
|
|
52
48
|
* @param {SelectProps} props - Props for Select.
|
|
@@ -2,34 +2,33 @@ import React from 'react';
|
|
|
2
2
|
import { BulmaClassesProps } from '../helpers/useBulmaClasses';
|
|
3
3
|
/**
|
|
4
4
|
* Props for the Select component.
|
|
5
|
-
*
|
|
6
|
-
* @property {'primary'|'link'|'info'|'success'|'warning'|'danger'|'black'|'dark'|'light'|'white'} [color] - Bulma color modifier for the select.
|
|
7
|
-
* @property {'small'|'medium'|'large'} [size] - Size modifier for the select.
|
|
8
|
-
* @property {boolean} [isRounded] - Renders the select with rounded corners.
|
|
9
|
-
* @property {boolean} [isLoading] - Shows loading indicator.
|
|
10
|
-
* @property {boolean} [isActive] - Applies Bulma's is-active modifier.
|
|
11
|
-
* @property {boolean} [isHovered] - Forces the hovered state on the inner select element.
|
|
12
|
-
* @property {boolean} [isFocused] - Forces the focused state on the inner select element.
|
|
13
|
-
* @property {boolean} [isFullwidth] - Makes the select span the full width of its parent.
|
|
14
|
-
* @property {string} [className] - Additional CSS classes to apply.
|
|
15
|
-
* @property {boolean} [disabled] - Whether the select is disabled.
|
|
16
|
-
* @property {boolean} [multiple] - Whether the select allows multiple values.
|
|
17
|
-
* @property {number} [multipleSize] - For multiple select: number of visible options.
|
|
18
|
-
* @property {React.ReactNode} [children] - Option elements.
|
|
19
5
|
*/
|
|
20
6
|
export interface SelectBaseProps extends Omit<React.SelectHTMLAttributes<HTMLSelectElement>, 'size'>, Omit<BulmaClassesProps, 'color'> {
|
|
7
|
+
/** Bulma color modifier for the select. */
|
|
21
8
|
color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
|
|
9
|
+
/** Size modifier for the select. */
|
|
22
10
|
size?: 'small' | 'medium' | 'large';
|
|
11
|
+
/** Rounded select corners. */
|
|
23
12
|
isRounded?: boolean;
|
|
13
|
+
/** Shows loading indicator. */
|
|
24
14
|
isLoading?: boolean;
|
|
15
|
+
/** Applies Bulma's is-active modifier. */
|
|
25
16
|
isActive?: boolean;
|
|
17
|
+
/** Forces hovered state on the inner select. */
|
|
26
18
|
isHovered?: boolean;
|
|
19
|
+
/** Forces focused state on the inner select. */
|
|
27
20
|
isFocused?: boolean;
|
|
21
|
+
/** Makes the select span the full width of parent. */
|
|
28
22
|
isFullwidth?: boolean;
|
|
23
|
+
/** Additional CSS classes to apply. */
|
|
29
24
|
className?: string;
|
|
25
|
+
/** Disables the select. */
|
|
30
26
|
disabled?: boolean;
|
|
27
|
+
/** Allows multiple selections. */
|
|
31
28
|
multiple?: boolean;
|
|
29
|
+
/** Number of visible options in multiselect. */
|
|
32
30
|
multipleSize?: number;
|
|
31
|
+
/** `<option>` elements. */
|
|
33
32
|
children?: React.ReactNode;
|
|
34
33
|
}
|
|
35
34
|
/**
|
|
@@ -11,98 +11,119 @@ export type SliderTooltip = 'auto' | 'always' | 'hidden';
|
|
|
11
11
|
export type SliderOrientation = 'horizontal' | 'vertical';
|
|
12
12
|
/**
|
|
13
13
|
* A tick mark displayed along the Slider track.
|
|
14
|
-
*
|
|
15
|
-
* @property {number} value - Position of the mark along the slider range.
|
|
16
|
-
* @property {React.ReactNode} [label] - Optional label rendered below the tick mark.
|
|
17
14
|
*/
|
|
18
15
|
export interface SliderMark {
|
|
16
|
+
/** Controlled value. */
|
|
19
17
|
value: number;
|
|
18
|
+
/** Optional label rendered below the tick mark. */
|
|
20
19
|
label?: React.ReactNode;
|
|
21
20
|
}
|
|
22
21
|
/**
|
|
23
22
|
* Shared base props for single and range Slider modes.
|
|
24
|
-
*
|
|
25
|
-
* @property {number} [min] - Minimum slider value (default: 0).
|
|
26
|
-
* @property {number} [max] - Maximum slider value (default: 100).
|
|
27
|
-
* @property {number} [step] - Step increment (default: 1).
|
|
28
|
-
* @property {SliderSize} [size] - Size of the slider.
|
|
29
|
-
* @property {SliderColor} [color] - Color of the slider.
|
|
30
|
-
* @property {boolean} [isRounded] - Whether the slider thumb is rounded.
|
|
31
|
-
* @property {boolean} [isCircle] - Whether the slider thumb is circular.
|
|
32
|
-
* @property {boolean} [showOutput] - Whether to show a tooltip with the current value (maps to tooltip 'auto').
|
|
33
|
-
* @property {SliderTooltip} [tooltip] - Tooltip display mode (overrides showOutput).
|
|
34
|
-
* @property {boolean} [ticks] - Whether to display tick marks at each step.
|
|
35
|
-
* @property {SliderMark[]} [marks] - Custom tick mark positions and labels.
|
|
36
|
-
* @property {SliderOrientation} [orientation] - Slider orientation (default: 'horizontal').
|
|
37
|
-
* @property {(value: number) => number} [scale] - Non-linear scale function for displayed values.
|
|
38
|
-
* @property {(value: number) => string} [getAriaValueText] - Custom aria-valuetext formatter.
|
|
39
|
-
* @property {(value: number) => string} [formatOutput] - Custom formatter for the tooltip output.
|
|
40
23
|
*/
|
|
41
24
|
interface SliderBaseProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'color' | 'size' | 'onChange' | 'value' | 'defaultValue'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'>, FormFieldProps {
|
|
25
|
+
/** Field label. Automatically associated with the slider input via `htmlFor` — uses your `id` when provided, otherwise a generated one. In range mode the label targets the low (minimum) thumb. Dropped inside an outer `Field` (label that `Field` yourself). */
|
|
26
|
+
label?: React.ReactNode;
|
|
27
|
+
/** Props for the label element. An explicit `htmlFor` here overrides the automatic association (no id is generated then). */
|
|
28
|
+
labelProps?: React.LabelHTMLAttributes<HTMLLabelElement> & {
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
};
|
|
31
|
+
/** Minimum value. */
|
|
42
32
|
min?: number;
|
|
33
|
+
/** Maximum value. */
|
|
43
34
|
max?: number;
|
|
35
|
+
/** Step increment (default: 1). */
|
|
44
36
|
step?: number;
|
|
37
|
+
/** Size variant. */
|
|
45
38
|
size?: SliderSize;
|
|
39
|
+
/** Color variant. */
|
|
46
40
|
color?: SliderColor;
|
|
41
|
+
/** Use rounded track ends. */
|
|
47
42
|
isRounded?: boolean;
|
|
43
|
+
/** Use circular thumb. */
|
|
48
44
|
isCircle?: boolean;
|
|
45
|
+
/** Show current value tooltip. */
|
|
49
46
|
showOutput?: boolean;
|
|
47
|
+
/** Controls tooltip visibility on the thumb. */
|
|
50
48
|
tooltip?: SliderTooltip;
|
|
49
|
+
/** Shows tick marks along the track. */
|
|
51
50
|
ticks?: boolean;
|
|
51
|
+
/** Custom labeled marks along the track. Each mark has `{ value: number; label?: ReactNode }`. */
|
|
52
52
|
marks?: SliderMark[];
|
|
53
|
+
/** Orientation of the slider. */
|
|
53
54
|
orientation?: SliderOrientation;
|
|
55
|
+
/** Function to scale the displayed value. */
|
|
54
56
|
scale?: (value: number) => number;
|
|
57
|
+
/** Function to generate the `aria-valuetext` attribute. */
|
|
55
58
|
getAriaValueText?: (value: number) => string;
|
|
59
|
+
/** Format function for output display. */
|
|
56
60
|
formatOutput?: (value: number) => string;
|
|
57
61
|
}
|
|
58
62
|
/**
|
|
59
63
|
* Props for the Slider in single-value mode.
|
|
60
|
-
*
|
|
61
|
-
* @property {false} [range] - Must be false or omitted for single-value mode.
|
|
62
|
-
* @property {number} [value] - Controlled slider value.
|
|
63
|
-
* @property {number} [defaultValue] - Initial value for uncontrolled mode.
|
|
64
|
-
* @property {(value: number) => void} [onChange] - Callback when the value changes.
|
|
65
|
-
* @property {never} [minDistance] - Not applicable in single-value mode.
|
|
66
|
-
* @property {string} [ariaLabel] - Accessible label for the slider input.
|
|
67
64
|
*/
|
|
68
65
|
export interface SliderSingleProps extends SliderBaseProps {
|
|
66
|
+
/**
|
|
67
|
+
* Enables range mode with two thumbs.
|
|
68
|
+
* @defaultValue false
|
|
69
|
+
*/
|
|
69
70
|
range?: false;
|
|
71
|
+
/** Controlled value. */
|
|
70
72
|
value?: number;
|
|
73
|
+
/**
|
|
74
|
+
* Default value for uncontrolled usage.
|
|
75
|
+
* @defaultValue 0
|
|
76
|
+
*/
|
|
71
77
|
defaultValue?: number;
|
|
78
|
+
/** Callback when value changes. */
|
|
72
79
|
onChange?: (value: number) => void;
|
|
80
|
+
/**
|
|
81
|
+
* Minimum distance between thumbs in range mode.
|
|
82
|
+
* @defaultValue 0
|
|
83
|
+
*/
|
|
73
84
|
minDistance?: never;
|
|
85
|
+
/** ARIA label(s) for the slider thumb(s). */
|
|
74
86
|
ariaLabel?: string;
|
|
75
87
|
}
|
|
76
88
|
/**
|
|
77
89
|
* Props for the Slider in range (dual-thumb) mode.
|
|
78
|
-
*
|
|
79
|
-
* @property {true} range - Must be true to enable range mode.
|
|
80
|
-
* @property {[number, number]} [value] - Controlled range value as [low, high].
|
|
81
|
-
* @property {[number, number]} [defaultValue] - Initial range for uncontrolled mode.
|
|
82
|
-
* @property {(value: [number, number]) => void} [onChange] - Callback when the range changes.
|
|
83
|
-
* @property {number} [minDistance] - Minimum distance between the two thumbs.
|
|
84
|
-
* @property {[string, string]} [ariaLabel] - Accessible labels for the low and high thumb inputs.
|
|
85
|
-
* @property {string} [nameLow] - Form field name for the low thumb. Use this in range mode so each thumb submits with its own name.
|
|
86
|
-
* @property {string} [nameHigh] - Form field name for the high thumb.
|
|
87
90
|
*/
|
|
88
91
|
export interface SliderRangeProps extends SliderBaseProps {
|
|
92
|
+
/**
|
|
93
|
+
* Enables range mode with two thumbs.
|
|
94
|
+
* @defaultValue false
|
|
95
|
+
*/
|
|
89
96
|
range: true;
|
|
97
|
+
/** Controlled value. */
|
|
90
98
|
value?: [number, number];
|
|
99
|
+
/**
|
|
100
|
+
* Default value for uncontrolled usage.
|
|
101
|
+
* @defaultValue 0
|
|
102
|
+
*/
|
|
91
103
|
defaultValue?: [number, number];
|
|
104
|
+
/** Callback when value changes. */
|
|
92
105
|
onChange?: (value: [number, number]) => void;
|
|
106
|
+
/**
|
|
107
|
+
* Minimum distance between thumbs in range mode.
|
|
108
|
+
* @defaultValue 0
|
|
109
|
+
*/
|
|
93
110
|
minDistance?: number;
|
|
111
|
+
/** ARIA label(s) for the slider thumb(s). */
|
|
94
112
|
ariaLabel?: [string, string];
|
|
113
|
+
/** Form field name for the low thumb. Use this in range mode so each thumb submits with its own name. */
|
|
95
114
|
nameLow?: string;
|
|
115
|
+
/** Form field name for the high thumb. */
|
|
96
116
|
nameHigh?: string;
|
|
97
117
|
}
|
|
98
|
-
/**
|
|
118
|
+
/**
|
|
119
|
+
* Props for the Slider component — a discriminated union of single and range modes.
|
|
120
|
+
* @extraProp {boolean} [disabled=false] - Whether the slider is disabled.
|
|
121
|
+
* @extraProp {string} [className] - Additional CSS classes.
|
|
122
|
+
* @extraProp {React.Ref<HTMLElement>} [ref] - Ref forwarded to the input element.
|
|
123
|
+
*/
|
|
99
124
|
export type SliderProps = SliderSingleProps | SliderRangeProps;
|
|
100
125
|
/**
|
|
101
|
-
* Slider component
|
|
102
|
-
*
|
|
103
|
-
* A styled range input that supports different sizes, colors,
|
|
104
|
-
* optional value display, ticks/marks, range mode (dual thumb),
|
|
105
|
-
* vertical orientation, and non-linear scale.
|
|
126
|
+
* The `Slider` component provides a range slider input for selecting values within a range.
|
|
106
127
|
*
|
|
107
128
|
* @function
|
|
108
129
|
* @param {SliderProps} props - Props for the Slider component.
|
|
@@ -10,38 +10,35 @@ export declare const switchColors: readonly ["primary", "link", "info", "success
|
|
|
10
10
|
export declare const switchSizes: readonly ["small", "normal", "medium", "large"];
|
|
11
11
|
/**
|
|
12
12
|
* Props for the Switch component.
|
|
13
|
-
*
|
|
14
|
-
* @
|
|
15
|
-
* @
|
|
16
|
-
* @
|
|
17
|
-
* @
|
|
18
|
-
* @
|
|
19
|
-
* @property {boolean} [isRtl] - Right-to-left layout (label on left).
|
|
20
|
-
* @property {(typeof switchColors)[number]} [passiveType] - Color for the unchecked (inactive) state.
|
|
21
|
-
* @property {boolean} [checked] - Whether the switch is checked.
|
|
22
|
-
* @property {boolean} [defaultChecked] - Default checked state for uncontrolled usage.
|
|
23
|
-
* @property {boolean} [disabled] - Whether the switch is disabled.
|
|
24
|
-
* @property {string} [className] - Additional CSS classes.
|
|
25
|
-
* @property {(typeof validColors)[number] | 'inherit' | 'current'} [textColor] - Text color.
|
|
26
|
-
* @property {React.ReactNode} [children] - Label content for the switch.
|
|
27
|
-
* @property {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange] - Change handler.
|
|
13
|
+
* @extraProp {boolean} [checked] - Controlled checked state.
|
|
14
|
+
* @extraProp {boolean} [defaultChecked=false] - Default checked state for uncontrolled usage.
|
|
15
|
+
* @extraProp {boolean} [disabled=false] - Whether the switch is disabled.
|
|
16
|
+
* @extraProp {string} [className] - Additional CSS classes.
|
|
17
|
+
* @extraProp {(event: React.ChangeEvent<HTMLInputElement>) => void} [onChange] - Callback when switch state changes.
|
|
18
|
+
* @extraProp {React.Ref<HTMLInputElement>} [ref] - Ref forwarded to the input element.
|
|
28
19
|
*/
|
|
29
20
|
export interface SwitchProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type' | 'color'>, Omit<BulmaClassesProps, 'color' | 'backgroundColor' | 'size'> {
|
|
21
|
+
/** Color variant for the switch. */
|
|
30
22
|
color?: (typeof switchColors)[number];
|
|
23
|
+
/** Size of the switch. */
|
|
31
24
|
size?: (typeof switchSizes)[number];
|
|
25
|
+
/** Use rounded switch style. */
|
|
32
26
|
isRounded?: boolean;
|
|
27
|
+
/** Use thin switch style. */
|
|
33
28
|
isThin?: boolean;
|
|
29
|
+
/** Use outlined switch style. */
|
|
34
30
|
isOutlined?: boolean;
|
|
31
|
+
/** Right-to-left layout (label on left). */
|
|
35
32
|
isRtl?: boolean;
|
|
33
|
+
/** Color when the switch is in the off/passive state. */
|
|
36
34
|
passiveType?: (typeof switchColors)[number];
|
|
35
|
+
/** Text color helper. */
|
|
37
36
|
textColor?: (typeof validColors)[number] | 'inherit' | 'current';
|
|
37
|
+
/** Label content for the switch. */
|
|
38
38
|
children?: React.ReactNode;
|
|
39
39
|
}
|
|
40
40
|
/**
|
|
41
|
-
* Switch component for
|
|
42
|
-
*
|
|
43
|
-
* A styled checkbox that appears as a toggle switch, commonly used for
|
|
44
|
-
* settings and preferences. Supports various colors, sizes, and styles.
|
|
41
|
+
* The `Switch` component provides a toggle switch for boolean on/off states.
|
|
45
42
|
*
|
|
46
43
|
* @function
|
|
47
44
|
* @param {SwitchProps} props - Props for the Switch component.
|
|
@@ -3,12 +3,11 @@ import { BulmaClassesProps } from '../helpers/useBulmaClasses';
|
|
|
3
3
|
import { FormFieldProps } from './fieldProps';
|
|
4
4
|
/**
|
|
5
5
|
* Represents a tag item object with a value and optional label.
|
|
6
|
-
*
|
|
7
|
-
* @property {string} value - The tag value.
|
|
8
|
-
* @property {string} [label] - Display label for the tag.
|
|
9
6
|
*/
|
|
10
7
|
export interface TaginputItem {
|
|
8
|
+
/** The tag value. */
|
|
11
9
|
value: string;
|
|
10
|
+
/** Display label (optional). */
|
|
12
11
|
label?: string;
|
|
13
12
|
[key: string]: unknown;
|
|
14
13
|
}
|
|
@@ -17,95 +16,93 @@ export type TaginputTag = TaginputItem | string;
|
|
|
17
16
|
type IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols';
|
|
18
17
|
/**
|
|
19
18
|
* Props for the Taginput component.
|
|
20
|
-
*
|
|
21
|
-
* @
|
|
22
|
-
* @property {TaginputTag[]} [defaultValue] - Default tags (uncontrolled).
|
|
23
|
-
* @property {string[]} [data] - Autocomplete suggestions.
|
|
24
|
-
* @property {string} [placeholder] - Placeholder text when no tags.
|
|
25
|
-
* @property {string} [field] - Object property to use as display field.
|
|
26
|
-
* @property {boolean} [allowNew] - Allow creating new tags not in suggestions.
|
|
27
|
-
* @property {boolean} [allowDuplicates] - Allow duplicate tags.
|
|
28
|
-
* @property {boolean} [openOnFocus] - Open autocomplete dropdown on focus.
|
|
29
|
-
* @property {boolean} [removeOnKeys] - Remove tag on backspace. Default: true.
|
|
30
|
-
* @property {string[]} [confirmKeys] - Keys to confirm tag creation. Default: ['Enter', ','].
|
|
31
|
-
* @property {boolean} [closable] - Show close button on tags. Default: true.
|
|
32
|
-
* @property {boolean} [attached] - Attach tags visually.
|
|
33
|
-
* @property {number} [maxTags] - Maximum number of tags allowed.
|
|
34
|
-
* @property {number} [maxlength] - Maximum length of input.
|
|
35
|
-
* @property {boolean} [disabled] - Whether the input is disabled.
|
|
36
|
-
* @property {boolean} [readonly] - Whether the input is read-only.
|
|
37
|
-
* @property {boolean} [rounded] - Makes tags rounded.
|
|
38
|
-
* @property {boolean} [ellipsis] - Truncate long tag text with ellipsis and show title tooltip.
|
|
39
|
-
* @property {boolean} [hasCounter] - Show counter for maxTags/maxlength. Default: true.
|
|
40
|
-
* @property {string[]} [onPasteSeparators] - Characters to split on paste. Default: [','].
|
|
41
|
-
* @property {(tag: string) => boolean} [beforeAdding] - Validate before adding a tag.
|
|
42
|
-
* @property {(input: string) => TaginputTag} [createTag] - Transform input string to tag.
|
|
43
|
-
* @property {boolean} [keepFirst] - Auto-highlight first autocomplete result.
|
|
44
|
-
* @property {boolean} [keepOpen] - Keep dropdown open after selecting. Default: true.
|
|
45
|
-
* @property {boolean} [loading] - Show loading spinner in input.
|
|
46
|
-
* @property {string} [ariaCloseLabel] - Accessibility label for close buttons.
|
|
47
|
-
* @property {(tags: TaginputTag[]) => void} [onChange] - Callback when tags change.
|
|
48
|
-
* @property {(tag: TaginputTag) => void} [onAdd] - Callback when tag is added.
|
|
49
|
-
* @property {(tag: TaginputTag, index: number) => void} [onRemove] - Callback when tag is removed.
|
|
50
|
-
* @property {(value: string) => void} [onTyping] - Callback when typing in input.
|
|
51
|
-
* @property {(tag: TaginputTag) => React.ReactNode} [tagTemplate] - Custom render for tags.
|
|
52
|
-
* @property {string} [name] - Form field name. When provided, one hidden input per tag is rendered so tags submit as a standard form-encoded array (e.g., `tags=react&tags=vue`).
|
|
53
|
-
* @property {string} [form] - The id of the form the hidden inputs belong to.
|
|
54
|
-
* @property {string} [icon] - Icon name for the input field.
|
|
55
|
-
* @property {IconLibrary} [iconLibrary] - Icon library to use.
|
|
56
|
-
* @property {string} [iconVariant] - Icon style variant (e.g., 'solid', 'outlined').
|
|
57
|
-
* @property {string | string[]} [iconFeatures] - Additional icon modifiers.
|
|
58
|
-
* @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'} [color] - Bulma color modifier for the input.
|
|
59
|
-
* @property {'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'dark' | 'light'} [tagColor] - Color modifier for tags.
|
|
60
|
-
* @property {'small' | 'medium' | 'large'} [size] - Size modifier for the component.
|
|
19
|
+
* @extraProp {string} [className] - Additional CSS classes.
|
|
20
|
+
* @extraProp {React.Ref<HTMLElement>} [ref] - Ref forwarded to the input element.
|
|
61
21
|
*/
|
|
62
22
|
export interface TaginputProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue'>, Omit<BulmaClassesProps, 'color'>, FormFieldProps {
|
|
23
|
+
/** The current tags (controlled). */
|
|
63
24
|
value?: TaginputTag[];
|
|
25
|
+
/** Default tags (uncontrolled). */
|
|
64
26
|
defaultValue?: TaginputTag[];
|
|
27
|
+
/** Autocomplete suggestions. */
|
|
65
28
|
data?: string[];
|
|
29
|
+
/** Placeholder text when no tags. */
|
|
66
30
|
placeholder?: string;
|
|
31
|
+
/** Object property to use as display field. */
|
|
67
32
|
field?: string;
|
|
33
|
+
/** Allow creating new tags not in suggestions. */
|
|
68
34
|
allowNew?: boolean;
|
|
35
|
+
/** Allow duplicate tags. */
|
|
69
36
|
allowDuplicates?: boolean;
|
|
37
|
+
/** Open autocomplete dropdown on focus. */
|
|
70
38
|
openOnFocus?: boolean;
|
|
39
|
+
/** Remove tag on backspace. Default: true. */
|
|
71
40
|
removeOnKeys?: boolean;
|
|
41
|
+
/** Keys to confirm tag creation. Default: ['Enter', ',']. */
|
|
72
42
|
confirmKeys?: string[];
|
|
43
|
+
/** Show close button on tags. Default: true. */
|
|
73
44
|
closable?: boolean;
|
|
45
|
+
/** Attach tags visually. */
|
|
74
46
|
attached?: boolean;
|
|
47
|
+
/** Maximum number of tags allowed. */
|
|
75
48
|
maxTags?: number;
|
|
49
|
+
/** Maximum length of input. */
|
|
76
50
|
maxlength?: number;
|
|
51
|
+
/** Whether the input is disabled. */
|
|
77
52
|
disabled?: boolean;
|
|
53
|
+
/** Whether the input is read-only. */
|
|
78
54
|
readonly?: boolean;
|
|
55
|
+
/** Applies rounded corners to the tags. */
|
|
79
56
|
rounded?: boolean;
|
|
57
|
+
/** Truncates long tag text with ellipsis. */
|
|
80
58
|
ellipsis?: boolean;
|
|
59
|
+
/** Shows a counter of the number of tags. */
|
|
81
60
|
hasCounter?: boolean;
|
|
61
|
+
/** Characters that split pasted text into tags. */
|
|
82
62
|
onPasteSeparators?: string[];
|
|
63
|
+
/** Validation function called before adding a tag. */
|
|
83
64
|
beforeAdding?: (tag: string) => boolean;
|
|
65
|
+
/** Custom function for creating tag objects from input. */
|
|
84
66
|
createTag?: (input: string) => TaginputTag;
|
|
67
|
+
/** Keeps the first autocomplete suggestion highlighted. */
|
|
85
68
|
keepFirst?: boolean;
|
|
69
|
+
/** Keeps the autocomplete dropdown open after selection. */
|
|
86
70
|
keepOpen?: boolean;
|
|
71
|
+
/** Shows a loading indicator. */
|
|
87
72
|
loading?: boolean;
|
|
73
|
+
/** ARIA label for tag close buttons. */
|
|
88
74
|
ariaCloseLabel?: string;
|
|
75
|
+
/** Icon name for the input field. */
|
|
89
76
|
icon?: string;
|
|
77
|
+
/** Icon library to use. */
|
|
90
78
|
iconLibrary?: IconLibrary;
|
|
79
|
+
/** Icon style variant (e.g., 'solid', 'outlined'). */
|
|
91
80
|
iconVariant?: string;
|
|
81
|
+
/** Additional icon modifiers. */
|
|
92
82
|
iconFeatures?: string | string[];
|
|
83
|
+
/** Input color variant. */
|
|
93
84
|
color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
|
|
85
|
+
/** Tag color variant. */
|
|
94
86
|
tagColor?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'dark' | 'light';
|
|
87
|
+
/** Size variant. */
|
|
95
88
|
size?: 'small' | 'medium' | 'large';
|
|
89
|
+
/** Form field name. When set, one hidden input per tag is rendered. */
|
|
96
90
|
name?: string;
|
|
91
|
+
/** Optional id of the form the hidden inputs belong to. */
|
|
97
92
|
form?: string;
|
|
93
|
+
/** Callback when tags change. */
|
|
98
94
|
onChange?: (tags: TaginputTag[]) => void;
|
|
95
|
+
/** Callback when tag is added. */
|
|
99
96
|
onAdd?: (tag: TaginputTag) => void;
|
|
97
|
+
/** Callback when tag is removed. */
|
|
100
98
|
onRemove?: (tag: TaginputTag, index: number) => void;
|
|
99
|
+
/** Callback when typing in input. */
|
|
101
100
|
onTyping?: (value: string) => void;
|
|
101
|
+
/** Custom render for tags. */
|
|
102
102
|
tagTemplate?: (tag: TaginputTag) => React.ReactNode;
|
|
103
103
|
}
|
|
104
104
|
/**
|
|
105
|
-
* Taginput component for managing multiple tags.
|
|
106
|
-
*
|
|
107
|
-
* Allows users to create, edit, and remove tags with optional
|
|
108
|
-
* autocomplete suggestions.
|
|
105
|
+
* The `Taginput` component provides a tag/chip input field for managing multiple tags.
|
|
109
106
|
*
|
|
110
107
|
* @function
|
|
111
108
|
* @param {TaginputProps} props - Props for the Taginput component.
|
|
@@ -8,35 +8,31 @@ import { TextAreaBaseProps } from './TextAreaBase';
|
|
|
8
8
|
* Composes Field, Control, and TextAreaBase into a single convenience component.
|
|
9
9
|
* Supports all TextAreaBase props, plus Field-level (label, horizontal) and
|
|
10
10
|
* Control-level (loading) props.
|
|
11
|
-
*
|
|
12
|
-
* @property {React.ReactNode} [label] - Field label.
|
|
13
|
-
* @property {FieldProps['labelSize']} [labelSize] - Size for the label.
|
|
14
|
-
* @property {FieldProps['labelProps']} [labelProps] - Props for the label element.
|
|
15
|
-
* @property {boolean} [horizontal] - Horizontal field layout.
|
|
16
|
-
* @property {boolean} [isLoading] - Show loading indicator on the control.
|
|
17
|
-
* @property {'small'|'medium'|'large'} [controlSize] - Control size.
|
|
18
|
-
* @property {React.ReactNode} [message] - Help/validation message below the textarea.
|
|
19
|
-
* @property {string} [messageColor] - Bulma color for the message.
|
|
20
|
-
* @property {string} [fieldClassName] - Additional CSS classes for the Field.
|
|
21
|
-
* @property {string} [controlClassName] - Additional CSS classes for the Control.
|
|
22
11
|
*/
|
|
23
12
|
export interface TextAreaProps extends TextAreaBaseProps {
|
|
13
|
+
/** Field label. Automatically associated with the textarea via `htmlFor` — uses your `id` when provided, otherwise a generated one. Dropped inside an outer `Field` (label that `Field` yourself). */
|
|
24
14
|
label?: React.ReactNode;
|
|
15
|
+
/** Size for the label. */
|
|
25
16
|
labelSize?: FieldProps['labelSize'];
|
|
17
|
+
/** Props for the label element. An explicit `htmlFor` here overrides the automatic association (no id is generated then). */
|
|
26
18
|
labelProps?: FieldProps['labelProps'];
|
|
19
|
+
/** Horizontal field layout. */
|
|
27
20
|
horizontal?: boolean;
|
|
21
|
+
/** Shows loading indicator on the wrapping Control. */
|
|
28
22
|
isLoading?: boolean;
|
|
23
|
+
/** Control size. */
|
|
29
24
|
controlSize?: ControlBaseProps['size'];
|
|
25
|
+
/** Help/validation message below the textarea. */
|
|
30
26
|
message?: React.ReactNode;
|
|
27
|
+
/** Bulma color for the message. */
|
|
31
28
|
messageColor?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
|
|
29
|
+
/** Additional CSS classes for the Field. */
|
|
32
30
|
fieldClassName?: string;
|
|
31
|
+
/** Additional CSS classes for the Control. */
|
|
33
32
|
controlClassName?: string;
|
|
34
33
|
}
|
|
35
34
|
/**
|
|
36
|
-
* TextArea
|
|
37
|
-
*
|
|
38
|
-
* Use this for typical form fields. For complex layouts (grouped fields,
|
|
39
|
-
* addons, etc.), compose Field, Control, and TextAreaBase directly.
|
|
35
|
+
* The `TextArea` component provides a Bulma-styled multi-line text input, supporting color, size, rounded corners, static/read-only state, hover/focus/loading states, fixed size, and all Bulma helper props.
|
|
40
36
|
*
|
|
41
37
|
* @function
|
|
42
38
|
* @param {TextAreaProps} props - Props for TextArea.
|