@allxsmith/bestax-bulma 5.26.2 → 5.26.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bestax.css +1 -1
- package/dist/bestax.css.map +1 -1
- package/dist/extras.css +1 -1
- package/dist/extras.css.map +1 -1
- package/dist/index.cjs +992 -580
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +992 -580
- package/dist/index.esm.js.map +1 -1
- package/dist/types/elements/Progress.d.ts +6 -1
- package/dist/types/form/Checkboxes.d.ts +7 -0
- package/dist/types/form/Control.d.ts +14 -2
- package/dist/types/form/DateInput.d.ts +28 -3
- package/dist/types/form/DateInputBase.d.ts +17 -3
- package/dist/types/form/DateTimeInput.d.ts +28 -3
- package/dist/types/form/DateTimeInputBase.d.ts +17 -3
- package/dist/types/form/File.d.ts +6 -0
- package/dist/types/form/FormContext.d.ts +39 -7
- package/dist/types/form/Input.d.ts +21 -4
- package/dist/types/form/InputBase.d.ts +5 -2
- package/dist/types/form/Radios.d.ts +7 -0
- package/dist/types/form/Rate.d.ts +7 -0
- package/dist/types/form/Select.d.ts +13 -2
- package/dist/types/form/Slider.d.ts +7 -0
- package/dist/types/form/Taginput.d.ts +6 -0
- package/dist/types/form/TextArea.d.ts +9 -2
- package/dist/types/form/TextAreaBase.d.ts +12 -3
- package/dist/types/form/TimeInput.d.ts +28 -3
- package/dist/types/form/TimeInputBase.d.ts +21 -4
- package/dist/types/form/_pickerInternals/Calendar.d.ts +17 -2
- package/dist/types/form/_pickerInternals/PickerPopover.d.ts +6 -0
- package/dist/types/form/_pickerInternals/dateUtils.d.ts +17 -0
- package/dist/types/form/controlLoading.d.ts +4 -0
- package/dist/types/helpers/Theme.d.ts +13 -4
- package/dist/types/helpers/portal.d.ts +2 -1
- package/dist/types/helpers/useAnchoredPosition.d.ts +10 -1
- package/dist/types/helpers/useFocusTrap.d.ts +13 -5
- package/dist/types/helpers/useOtherClasses.d.ts +13 -1
- package/dist/types-cjs/elements/Progress.d.ts +6 -1
- package/dist/types-cjs/form/Checkboxes.d.ts +7 -0
- package/dist/types-cjs/form/Control.d.ts +14 -2
- package/dist/types-cjs/form/DateInput.d.ts +28 -3
- package/dist/types-cjs/form/DateInputBase.d.ts +17 -3
- package/dist/types-cjs/form/DateTimeInput.d.ts +28 -3
- package/dist/types-cjs/form/DateTimeInputBase.d.ts +17 -3
- package/dist/types-cjs/form/File.d.ts +6 -0
- package/dist/types-cjs/form/FormContext.d.ts +39 -7
- package/dist/types-cjs/form/Input.d.ts +21 -4
- package/dist/types-cjs/form/InputBase.d.ts +5 -2
- package/dist/types-cjs/form/Radios.d.ts +7 -0
- package/dist/types-cjs/form/Rate.d.ts +7 -0
- package/dist/types-cjs/form/Select.d.ts +13 -2
- package/dist/types-cjs/form/Slider.d.ts +7 -0
- package/dist/types-cjs/form/Taginput.d.ts +6 -0
- package/dist/types-cjs/form/TextArea.d.ts +9 -2
- package/dist/types-cjs/form/TextAreaBase.d.ts +12 -3
- package/dist/types-cjs/form/TimeInput.d.ts +28 -3
- package/dist/types-cjs/form/TimeInputBase.d.ts +21 -4
- package/dist/types-cjs/form/_pickerInternals/Calendar.d.ts +17 -2
- package/dist/types-cjs/form/_pickerInternals/PickerPopover.d.ts +6 -0
- package/dist/types-cjs/form/_pickerInternals/dateUtils.d.ts +17 -0
- package/dist/types-cjs/form/controlLoading.d.ts +4 -0
- package/dist/types-cjs/helpers/Theme.d.ts +13 -4
- package/dist/types-cjs/helpers/portal.d.ts +2 -1
- package/dist/types-cjs/helpers/useAnchoredPosition.d.ts +10 -1
- package/dist/types-cjs/helpers/useFocusTrap.d.ts +13 -5
- package/dist/types-cjs/helpers/useOtherClasses.d.ts +13 -1
- package/dist/versions/bestax-no-dark-mode.css +1 -1
- package/dist/versions/bestax-no-dark-mode.css.map +1 -1
- package/dist/versions/bestax-no-helpers-prefixed.css +1 -1
- package/dist/versions/bestax-no-helpers-prefixed.css.map +1 -1
- package/dist/versions/bestax-no-helpers.css +1 -1
- package/dist/versions/bestax-no-helpers.css.map +1 -1
- package/dist/versions/bestax-prefixed.css +1 -1
- package/dist/versions/bestax-prefixed.css.map +1 -1
- package/package.json +1 -1
- package/src/scss/elements/_index.scss +2 -0
- package/src/scss/elements/_progress.scss +17 -0
- package/src/scss/elements/_skeleton.scss +21 -0
- package/src/scss/form/_datetimeinput.scss +9 -0
- package/src/scss/form/_picker-popover.scss +23 -4
- package/src/scss/form/_rate.scss +3 -1
- package/src/scss/form/_timeinput.scss +12 -2
|
@@ -18,7 +18,12 @@ export interface ProgressProps extends React.ProgressHTMLAttributes<HTMLProgress
|
|
|
18
18
|
color?: (typeof validColors)[number];
|
|
19
19
|
/** Size modifier for the progress bar. */
|
|
20
20
|
size?: 'small' | 'medium' | 'large';
|
|
21
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Current value of the progress bar. Leave it unset for an indeterminate
|
|
23
|
+
* bar, which sweeps across the track. Under `prefers-reduced-motion: reduce`
|
|
24
|
+
* that bar holds still (with bestax's CSS loaded), so it can read as
|
|
25
|
+
* partly filled.
|
|
26
|
+
*/
|
|
22
27
|
value?: number;
|
|
23
28
|
/** Maximum value of the progress bar. */
|
|
24
29
|
max?: number;
|
|
@@ -3,6 +3,13 @@ import { BulmaClassesProps } from '../helpers/useBulmaClasses.js';
|
|
|
3
3
|
import { FormFieldProps } from './fieldProps.js';
|
|
4
4
|
/**
|
|
5
5
|
* Props for the Checkboxes component.
|
|
6
|
+
* Inside an existing `Control` it renders no `Control` of its own. Inside an
|
|
7
|
+
* outer `Field`, or a `Control` with no `Field` around it, it renders no
|
|
8
|
+
* `Field` of its own either. The exception is `label`, `message`, `horizontal`
|
|
9
|
+
* or `fieldClassName` in that bare `Control`: it keeps a `Field` for them,
|
|
10
|
+
* nested in the `.control`, and warns in development. Wrap the `Control` in a
|
|
11
|
+
* `Field` instead, and set the `label`, `horizontal` and class name on that
|
|
12
|
+
* `Field`.
|
|
6
13
|
*/
|
|
7
14
|
export interface CheckboxesProps extends Omit<BulmaClassesProps, 'color'>, FormFieldProps {
|
|
8
15
|
/** Field label naming the whole group. Automatically associated via `aria-labelledby` on the `role="group"` wrapper — uses your `labelProps.id` when provided, otherwise a generated one. Dropped inside an outer `Field` (label that `Field` yourself). */
|
|
@@ -13,6 +13,8 @@ export interface ControlBaseProps extends React.HTMLAttributes<HTMLDivElement>,
|
|
|
13
13
|
* Shows a loading spinner inside the control.
|
|
14
14
|
* Under `prefers-reduced-motion: reduce` the spinner stops and stays
|
|
15
15
|
* drawn (with bestax's CSS loaded).
|
|
16
|
+
* The spinner sits at the right edge, where a right icon also sits, and the
|
|
17
|
+
* two overlap; leave the right icon out while loading.
|
|
16
18
|
*/
|
|
17
19
|
isLoading?: boolean;
|
|
18
20
|
/** Makes the control expand to fill available space. */
|
|
@@ -25,9 +27,19 @@ export interface ControlBaseProps extends React.HTMLAttributes<HTMLDivElement>,
|
|
|
25
27
|
color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger';
|
|
26
28
|
/** Background color. */
|
|
27
29
|
bgColor?: (typeof validColors)[number] | 'inherit' | 'current';
|
|
28
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Icon props for left icon, or a custom node (an inline SVG, a `react-icons` component, …) rendered in place of a class-based glyph.
|
|
32
|
+
* Bulma gives control icons `pointer-events: none`, so a click lands on
|
|
33
|
+
* the input and a clickable node placed here never receives one. Put a button beside the input
|
|
34
|
+
* in its own addon `Control` instead.
|
|
35
|
+
*/
|
|
29
36
|
iconLeft?: IconProps | React.ReactNode;
|
|
30
|
-
/**
|
|
37
|
+
/**
|
|
38
|
+
* Icon props for right icon, or a custom node (an inline SVG, a `react-icons` component, …) rendered in place of a class-based glyph.
|
|
39
|
+
* Bulma gives control icons `pointer-events: none`, so a click lands on
|
|
40
|
+
* the input and a clickable node placed here never receives one. Put a button beside the input
|
|
41
|
+
* in its own addon `Control` instead.
|
|
42
|
+
*/
|
|
31
43
|
iconRight?: IconProps | React.ReactNode;
|
|
32
44
|
/** Shortcut for left icon name. */
|
|
33
45
|
iconLeftName?: string;
|
|
@@ -5,6 +5,13 @@ import { DateInputBaseProps } from './DateInputBase.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* Props for the DateInput convenience wrapper. Extends `DateInputBaseProps`
|
|
7
7
|
* with Field-level (label, horizontal) and Control-level (icons, loading) props.
|
|
8
|
+
* Inside an existing `Control` it renders no `Control` of its own, so set the
|
|
9
|
+
* Control-level props on that `Control` instead. Inside an outer `Field`, or a
|
|
10
|
+
* `Control` with no `Field` around it, it renders no `Field` of its own either.
|
|
11
|
+
* The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
|
|
12
|
+
* bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
|
|
13
|
+
* warns in development. Wrap the `Control` in a `Field` instead, and set the
|
|
14
|
+
* `label`, `horizontal` and class name on that `Field`.
|
|
8
15
|
* @extraProp {string} [name] - Form field name. The text field submits the text it displays. The native input on touch devices submits the ISO value (`YYYY-MM-DD`, or `YYYY-MM` at month granularity), and an `inline` calendar, which has no visible input, submits it from a hidden input (`YYYY-MM-DD`, `YYYY-MM` or `YYYY`).
|
|
9
16
|
* @extraProp {string} [form] - Form id the input belongs to.
|
|
10
17
|
* @extraProp {boolean} [required=false] - Marks the input as required.
|
|
@@ -20,9 +27,17 @@ export interface DateInputProps extends DateInputBaseProps {
|
|
|
20
27
|
labelProps?: FieldProps['labelProps'];
|
|
21
28
|
/** Render the field with horizontal layout. */
|
|
22
29
|
horizontal?: boolean;
|
|
23
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Icon props for the left icon.
|
|
32
|
+
* Bulma gives control icons `pointer-events: none`, so a clickable node here
|
|
33
|
+
* never receives a click. Put a button beside the input in its own addon `Control` instead.
|
|
34
|
+
*/
|
|
24
35
|
iconLeft?: ControlBaseProps['iconLeft'];
|
|
25
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Icon props for the right icon.
|
|
38
|
+
* Bulma gives control icons `pointer-events: none`, so a clickable node here
|
|
39
|
+
* never receives a click. Put a button beside the input in its own addon `Control` instead.
|
|
40
|
+
*/
|
|
26
41
|
iconRight?: ControlBaseProps['iconRight'];
|
|
27
42
|
/** Shortcut for the right icon name. */
|
|
28
43
|
iconRightName?: string;
|
|
@@ -35,11 +50,21 @@ export interface DateInputProps extends DateInputBaseProps {
|
|
|
35
50
|
/** Force the right icon container. */
|
|
36
51
|
hasIconsRight?: boolean;
|
|
37
52
|
/**
|
|
38
|
-
*
|
|
53
|
+
* Shows a loading spinner on the `Control` it renders, and hides the
|
|
54
|
+
* launcher (`triggerIcon`) while it does. Inside your own `Control` it
|
|
55
|
+
* renders none, so this draws nothing; set `isLoading` on that `Control`.
|
|
39
56
|
* Under `prefers-reduced-motion: reduce` the spinner stops and stays
|
|
40
57
|
* drawn (with bestax's CSS loaded).
|
|
41
58
|
*/
|
|
42
59
|
isLoading?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Show a clickable launcher button on the right that toggles the popover.
|
|
62
|
+
* Hidden by default while a spinner shows at the same right edge: this
|
|
63
|
+
* component's `isLoading` when it renders its own `Control`, or the
|
|
64
|
+
* enclosing `Control`'s `isLoading` inside one.
|
|
65
|
+
* @defaultValue true
|
|
66
|
+
*/
|
|
67
|
+
triggerIcon?: boolean;
|
|
43
68
|
/** Expand the control to fill its container. */
|
|
44
69
|
isExpanded?: boolean;
|
|
45
70
|
/** Size of the wrapping Control. */
|
|
@@ -17,7 +17,11 @@ export interface DateInputBaseProps extends Omit<React.InputHTMLAttributes<HTMLI
|
|
|
17
17
|
onOpen?: () => void;
|
|
18
18
|
/** Fired when the popover closes. */
|
|
19
19
|
onClose?: () => void;
|
|
20
|
-
/**
|
|
20
|
+
/**
|
|
21
|
+
* Earliest selectable date. A `min` before year 1 is raised to 1 January of
|
|
22
|
+
* year 1, where the range starts without one too: HTML's date and month
|
|
23
|
+
* inputs hold no earlier year, so the calendar and typing stop there.
|
|
24
|
+
*/
|
|
21
25
|
min?: Date;
|
|
22
26
|
/** Latest selectable date. */
|
|
23
27
|
max?: Date;
|
|
@@ -54,7 +58,12 @@ export interface DateInputBaseProps extends Omit<React.InputHTMLAttributes<HTMLI
|
|
|
54
58
|
* @defaultValue 'YYYY-MM-DD'
|
|
55
59
|
*/
|
|
56
60
|
format?: DateFormatOption;
|
|
57
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Custom parser (use when `format` is `Intl.DateTimeFormatOptions`).
|
|
63
|
+
* Enter and leaving the field call it only if the user changed the text,
|
|
64
|
+
* so focus passing through commits nothing and the value keeps what the
|
|
65
|
+
* format leaves out, such as the time of day.
|
|
66
|
+
*/
|
|
58
67
|
parse?: (s: string) => Date | null;
|
|
59
68
|
/** BCP-47 locale tag for day/month names and Intl formatting. */
|
|
60
69
|
locale?: string;
|
|
@@ -115,7 +124,12 @@ export interface DateInputBaseProps extends Omit<React.InputHTMLAttributes<HTMLI
|
|
|
115
124
|
nearbyMonthDays?: boolean;
|
|
116
125
|
/** Decorative left icon glyph for the wrapping `Control` (shown by default). Set `''` to hide. */
|
|
117
126
|
iconLeftName?: string;
|
|
118
|
-
/**
|
|
127
|
+
/**
|
|
128
|
+
* Show a clickable launcher button on the right that toggles the popover.
|
|
129
|
+
* Hidden by default while a `Control` it sits in shows its `isLoading`
|
|
130
|
+
* spinner, which shares that right edge.
|
|
131
|
+
* @defaultValue true
|
|
132
|
+
*/
|
|
119
133
|
triggerIcon?: boolean;
|
|
120
134
|
/** Glyph for the right launcher button. */
|
|
121
135
|
triggerIconName?: string;
|
|
@@ -5,6 +5,13 @@ import { DateTimeInputBaseProps } from './DateTimeInputBase.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* Props for the DateTimeInput convenience wrapper. Extends
|
|
7
7
|
* `DateTimeInputBaseProps` with Field-level and Control-level props.
|
|
8
|
+
* Inside an existing `Control` it renders no `Control` of its own, so set the
|
|
9
|
+
* Control-level props on that `Control` instead. Inside an outer `Field`, or a
|
|
10
|
+
* `Control` with no `Field` around it, it renders no `Field` of its own either.
|
|
11
|
+
* The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
|
|
12
|
+
* bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
|
|
13
|
+
* warns in development. Wrap the `Control` in a `Field` instead, and set the
|
|
14
|
+
* `label`, `horizontal` and class name on that `Field`.
|
|
8
15
|
* @extraProp {string} [name] - Form field name.
|
|
9
16
|
* @extraProp {string} [form] - Optional id of the form the input belongs to.
|
|
10
17
|
* @extraProp {boolean} [required=false] - Marks the field as required for native HTML form validation.
|
|
@@ -18,9 +25,17 @@ export interface DateTimeInputProps extends DateTimeInputBaseProps {
|
|
|
18
25
|
labelProps?: FieldProps['labelProps'];
|
|
19
26
|
/** Render the field with horizontal layout. */
|
|
20
27
|
horizontal?: boolean;
|
|
21
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Icon props for the left icon.
|
|
30
|
+
* Bulma gives control icons `pointer-events: none`, so a clickable node here
|
|
31
|
+
* never receives a click. Put a button beside the input in its own addon `Control` instead.
|
|
32
|
+
*/
|
|
22
33
|
iconLeft?: ControlBaseProps['iconLeft'];
|
|
23
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Icon props for the right icon.
|
|
36
|
+
* Bulma gives control icons `pointer-events: none`, so a clickable node here
|
|
37
|
+
* never receives a click. Put a button beside the input in its own addon `Control` instead.
|
|
38
|
+
*/
|
|
24
39
|
iconRight?: ControlBaseProps['iconRight'];
|
|
25
40
|
/** Shortcut for the right icon name. */
|
|
26
41
|
iconRightName?: string;
|
|
@@ -33,11 +48,21 @@ export interface DateTimeInputProps extends DateTimeInputBaseProps {
|
|
|
33
48
|
/** Force the right icon container. */
|
|
34
49
|
hasIconsRight?: boolean;
|
|
35
50
|
/**
|
|
36
|
-
*
|
|
51
|
+
* Shows a loading spinner on the `Control` it renders, and hides the
|
|
52
|
+
* launcher (`triggerIcon`) while it does. Inside your own `Control` it
|
|
53
|
+
* renders none, so this draws nothing; set `isLoading` on that `Control`.
|
|
37
54
|
* Under `prefers-reduced-motion: reduce` the spinner stops and stays
|
|
38
55
|
* drawn (with bestax's CSS loaded).
|
|
39
56
|
*/
|
|
40
57
|
isLoading?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Show a clickable launcher button on the right that toggles the popover.
|
|
60
|
+
* Hidden by default while a spinner shows at the same right edge: this
|
|
61
|
+
* component's `isLoading` when it renders its own `Control`, or the
|
|
62
|
+
* enclosing `Control`'s `isLoading` inside one.
|
|
63
|
+
* @defaultValue true
|
|
64
|
+
*/
|
|
65
|
+
triggerIcon?: boolean;
|
|
41
66
|
/** Expand the control to fill its container. */
|
|
42
67
|
isExpanded?: boolean;
|
|
43
68
|
/** Size of the wrapping Control. */
|
|
@@ -18,7 +18,12 @@ export interface DateTimeInputBaseProps extends Omit<React.InputHTMLAttributes<H
|
|
|
18
18
|
onOpen?: () => void;
|
|
19
19
|
/** Fired when the popover closes. */
|
|
20
20
|
onClose?: () => void;
|
|
21
|
-
/**
|
|
21
|
+
/**
|
|
22
|
+
* Lower bound for the combined date-time. A `min` before year 1 is raised
|
|
23
|
+
* to midnight on 1 January of year 1, where the range starts without one
|
|
24
|
+
* too: HTML's datetime-local input holds no earlier year, so the calendar,
|
|
25
|
+
* the time wheels and typing stop there.
|
|
26
|
+
*/
|
|
22
27
|
min?: Date;
|
|
23
28
|
/** Upper bound for the combined date-time. */
|
|
24
29
|
max?: Date;
|
|
@@ -33,7 +38,11 @@ export interface DateTimeInputBaseProps extends Omit<React.InputHTMLAttributes<H
|
|
|
33
38
|
* @defaultValue 'YYYY-MM-DD HH:mm'
|
|
34
39
|
*/
|
|
35
40
|
format?: DateFormatOption;
|
|
36
|
-
/**
|
|
41
|
+
/**
|
|
42
|
+
* Custom parser. Enter and leaving the field call it only if the user
|
|
43
|
+
* changed the text, so focus passing through commits nothing and the value
|
|
44
|
+
* keeps what the format leaves out, such as seconds.
|
|
45
|
+
*/
|
|
37
46
|
parse?: (s: string) => Date | null;
|
|
38
47
|
/** BCP-47 locale tag. */
|
|
39
48
|
locale?: string;
|
|
@@ -102,7 +111,12 @@ export interface DateTimeInputBaseProps extends Omit<React.InputHTMLAttributes<H
|
|
|
102
111
|
unselectableTimes?: (d: Date) => boolean;
|
|
103
112
|
/** Decorative left icon glyph for the wrapping `Control` (shown by default). Set `''` to hide. */
|
|
104
113
|
iconLeftName?: string;
|
|
105
|
-
/**
|
|
114
|
+
/**
|
|
115
|
+
* Show a clickable launcher button on the right that toggles the popover.
|
|
116
|
+
* Hidden by default while a `Control` it sits in shows its `isLoading`
|
|
117
|
+
* spinner, which shares that right edge.
|
|
118
|
+
* @defaultValue true
|
|
119
|
+
*/
|
|
106
120
|
triggerIcon?: boolean;
|
|
107
121
|
/** Glyph for the right launcher button. */
|
|
108
122
|
triggerIconName?: string;
|
|
@@ -3,6 +3,12 @@ import { BulmaClassesProps } from '../helpers/useBulmaClasses.js';
|
|
|
3
3
|
import { FormFieldProps } from './fieldProps.js';
|
|
4
4
|
/**
|
|
5
5
|
* Props for the File component.
|
|
6
|
+
* Inside an outer `Field`, or a `Control` with no `Field` around it, it
|
|
7
|
+
* renders no `Field` of its own. The exception is `label`, `message`,
|
|
8
|
+
* `horizontal` or `fieldClassName` in that bare `Control`: it keeps a `Field`
|
|
9
|
+
* for them, nested in the `.control`, and warns in development. Wrap the
|
|
10
|
+
* `Control` in a `Field` instead, and set the `label`, `horizontal` and class
|
|
11
|
+
* name on that `Field`.
|
|
6
12
|
*/
|
|
7
13
|
export interface FileProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'color' | 'type'>, Omit<BulmaClassesProps, 'color'>, FormFieldProps {
|
|
8
14
|
/** Field label. Automatically associated with the file input via `htmlFor` — uses your `id` when provided, otherwise a generated one. The input then has two labels (this one plus the wrapping `file-label`); assistive tech reads both. Dropped inside an outer `Field` (label that `Field` yourself). */
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
/**
|
|
2
3
|
* Hook to detect if the component is inside a Field wrapper.
|
|
3
4
|
* Form components use this to skip rendering their own Field.
|
|
@@ -9,9 +10,39 @@ export declare const useInsideField: () => boolean;
|
|
|
9
10
|
*/
|
|
10
11
|
export declare const useInsideControl: () => boolean;
|
|
11
12
|
/** Provider for Field context — used internally by Field component. */
|
|
12
|
-
export declare const FieldProvider:
|
|
13
|
+
export declare const FieldProvider: React.Provider<boolean>;
|
|
13
14
|
/** Provider for Control context — used internally by Control component. */
|
|
14
|
-
export declare const ControlProvider:
|
|
15
|
+
export declare const ControlProvider: React.Provider<boolean>;
|
|
16
|
+
/** The wrapper props that change what its own `Field` renders. */
|
|
17
|
+
interface FieldShapingProps {
|
|
18
|
+
/** Rendered as the `Field`'s label. */
|
|
19
|
+
label?: React.ReactNode;
|
|
20
|
+
/** Rendered as help text after the widget. */
|
|
21
|
+
message?: React.ReactNode;
|
|
22
|
+
/** Lays the `Field` out horizontally. */
|
|
23
|
+
horizontal?: boolean;
|
|
24
|
+
/** Set on the `Field` as its class. */
|
|
25
|
+
fieldClassName?: string;
|
|
26
|
+
}
|
|
27
|
+
interface OwnFieldOptions extends FieldShapingProps {
|
|
28
|
+
/** `useInsideField()` as the wrapper read it. */
|
|
29
|
+
insideField: boolean;
|
|
30
|
+
/** `useInsideControl()` as the wrapper read it. */
|
|
31
|
+
insideControl: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Whether a convenience form wrapper renders a `Field` of its own (#905).
|
|
35
|
+
* Never inside an outer `Field`. Inside a `Control` with no `Field` around
|
|
36
|
+
* it, a `Field` of its own would put a `.field` inside the `.control`, where
|
|
37
|
+
* Bulma's control styles break (its icon rules are sibling selectors on the
|
|
38
|
+
* input). So it renders one there only when a prop that shapes the `Field`'s
|
|
39
|
+
* markup is set (`label`, `message`, `horizontal`, `fieldClassName`), keeping
|
|
40
|
+
* the markup it always had, and warns in development that the fix is a
|
|
41
|
+
* `Field` around that `Control`. A prop counts when it is truthy, the same
|
|
42
|
+
* test that decides whether it changes the `Field`'s output.
|
|
43
|
+
* Internal; not part of the public API.
|
|
44
|
+
*/
|
|
45
|
+
export declare const rendersOwnField: (component: string, options: OwnFieldOptions) => boolean;
|
|
15
46
|
/**
|
|
16
47
|
* The id a labeled Field wants its single composed control to adopt (#495).
|
|
17
48
|
* `undefined` outside a Field, in unlabeled/grouped/addons Fields, or when the
|
|
@@ -21,7 +52,7 @@ export declare const ControlProvider: import("react").Provider<boolean>;
|
|
|
21
52
|
*/
|
|
22
53
|
export declare const useFieldLabelId: () => string | undefined;
|
|
23
54
|
/** Provider for the Field label-target id — used internally by Field. */
|
|
24
|
-
export declare const FieldLabelIdProvider:
|
|
55
|
+
export declare const FieldLabelIdProvider: React.Provider<string | undefined>;
|
|
25
56
|
/**
|
|
26
57
|
* Shape of the Radios group context. The group provides:
|
|
27
58
|
* - `name`: shared form field name (Stage 1)
|
|
@@ -69,10 +100,11 @@ export declare const useRadiosName: () => string | undefined;
|
|
|
69
100
|
*/
|
|
70
101
|
export declare const useCheckboxesName: () => string | undefined;
|
|
71
102
|
/** Provider for the Radios group context — used internally by Radios. */
|
|
72
|
-
export declare const RadiosProvider:
|
|
103
|
+
export declare const RadiosProvider: React.Provider<RadiosGroupContextValue | undefined>;
|
|
73
104
|
/** Provider for the Checkboxes group context — used internally by Checkboxes. */
|
|
74
|
-
export declare const CheckboxesProvider:
|
|
105
|
+
export declare const CheckboxesProvider: React.Provider<CheckboxesGroupContextValue | undefined>;
|
|
75
106
|
/** @deprecated Use `RadiosProvider` (provides {name, value, onChange}). */
|
|
76
|
-
export declare const RadiosNameProvider:
|
|
107
|
+
export declare const RadiosNameProvider: React.Provider<RadiosGroupContextValue | undefined>;
|
|
77
108
|
/** @deprecated Use `CheckboxesProvider` (provides {name, value, onChange}). */
|
|
78
|
-
export declare const CheckboxesNameProvider:
|
|
109
|
+
export declare const CheckboxesNameProvider: React.Provider<CheckboxesGroupContextValue | undefined>;
|
|
110
|
+
export {};
|
|
@@ -8,6 +8,13 @@ import { InputBaseProps } from './InputBase.js';
|
|
|
8
8
|
* Composes Field, Control, and Input into a single convenience component.
|
|
9
9
|
* Supports all Input props, plus Field-level (label, horizontal) and
|
|
10
10
|
* Control-level (icons, loading) props.
|
|
11
|
+
* Inside an existing `Control` it renders no `Control` of its own, so set the
|
|
12
|
+
* Control-level props on that `Control` instead. Inside an outer `Field`, or a
|
|
13
|
+
* `Control` with no `Field` around it, it renders no `Field` of its own either.
|
|
14
|
+
* The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
|
|
15
|
+
* bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
|
|
16
|
+
* warns in development. Wrap the `Control` in a `Field` instead, and set the
|
|
17
|
+
* `label`, `horizontal` and class name on that `Field`.
|
|
11
18
|
*/
|
|
12
19
|
export interface InputProps extends InputBaseProps {
|
|
13
20
|
/** Field label. Automatically associated with the input via `htmlFor` — uses your `id` when provided, otherwise a generated one. Dropped inside an outer `Field`, whose own label associates instead when that `Field` generates a target id (not `grouped`/`hasAddons`, no explicit `labelProps.htmlFor`). */
|
|
@@ -18,9 +25,17 @@ export interface InputProps extends InputBaseProps {
|
|
|
18
25
|
labelProps?: FieldProps['labelProps'];
|
|
19
26
|
/** Horizontal field layout. */
|
|
20
27
|
horizontal?: boolean;
|
|
21
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Icon props for left icon.
|
|
30
|
+
* Bulma gives control icons `pointer-events: none`, so a clickable node here
|
|
31
|
+
* never receives a click. Put a button beside the input in its own addon `Control` instead.
|
|
32
|
+
*/
|
|
22
33
|
iconLeft?: ControlBaseProps['iconLeft'];
|
|
23
|
-
/**
|
|
34
|
+
/**
|
|
35
|
+
* Icon props for right icon.
|
|
36
|
+
* Bulma gives control icons `pointer-events: none`, so a clickable node here
|
|
37
|
+
* never receives a click. Put a button beside the input in its own addon `Control` instead.
|
|
38
|
+
*/
|
|
24
39
|
iconRight?: ControlBaseProps['iconRight'];
|
|
25
40
|
/** Shortcut for left icon name. */
|
|
26
41
|
iconLeftName?: string;
|
|
@@ -35,9 +50,11 @@ export interface InputProps extends InputBaseProps {
|
|
|
35
50
|
/** Force right icon container. */
|
|
36
51
|
hasIconsRight?: boolean;
|
|
37
52
|
/**
|
|
38
|
-
* Shows a loading spinner on the
|
|
53
|
+
* Shows a loading spinner on the `Control` it renders.
|
|
39
54
|
* Under `prefers-reduced-motion: reduce` the spinner stops and stays
|
|
40
55
|
* drawn (with bestax's CSS loaded).
|
|
56
|
+
* The spinner sits at the right edge, where `iconRight` also sits, and the
|
|
57
|
+
* two overlap; leave the right icon out while loading.
|
|
41
58
|
*/
|
|
42
59
|
isLoading?: boolean;
|
|
43
60
|
/** Expand the control. */
|
|
@@ -54,7 +71,7 @@ export interface InputProps extends InputBaseProps {
|
|
|
54
71
|
controlClassName?: string;
|
|
55
72
|
}
|
|
56
73
|
/**
|
|
57
|
-
* The `Input` component provides a Bulma-styled text input, supporting colors, sizes, rounded corners, static
|
|
74
|
+
* The `Input` component provides a Bulma-styled text input, supporting colors, sizes, rounded corners, static state, hover/focus/loading states, and all Bulma helper props.
|
|
58
75
|
*
|
|
59
76
|
* @function
|
|
60
77
|
* @param {InputProps} props - Props for Input.
|
|
@@ -10,13 +10,16 @@ export interface InputBaseProps extends Omit<React.InputHTMLAttributes<HTMLInput
|
|
|
10
10
|
size?: 'small' | 'medium' | 'large';
|
|
11
11
|
/** Rounded input corners. */
|
|
12
12
|
isRounded?: boolean;
|
|
13
|
-
/**
|
|
13
|
+
/** Styles the input as static text. It stays editable; add `readOnly` to stop edits. */
|
|
14
14
|
isStatic?: boolean;
|
|
15
15
|
/** Applies hovered state. */
|
|
16
16
|
isHovered?: boolean;
|
|
17
17
|
/** Applies focused state. */
|
|
18
18
|
isFocused?: boolean;
|
|
19
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* Adds the `is-loading` class to the `<input>`. Bulma draws no spinner for it there: the
|
|
21
|
+
* spinner belongs to the wrapping `Control`, so set `isLoading` on that `Control`.
|
|
22
|
+
*/
|
|
20
23
|
isLoading?: boolean;
|
|
21
24
|
/** Additional CSS classes to apply. */
|
|
22
25
|
className?: string;
|
|
@@ -3,6 +3,13 @@ import { BulmaClassesProps } from '../helpers/useBulmaClasses.js';
|
|
|
3
3
|
import { FormFieldProps } from './fieldProps.js';
|
|
4
4
|
/**
|
|
5
5
|
* Props for the Radios component.
|
|
6
|
+
* Inside an existing `Control` it renders no `Control` of its own. Inside an
|
|
7
|
+
* outer `Field`, or a `Control` with no `Field` around it, it renders no
|
|
8
|
+
* `Field` of its own either. The exception is `label`, `message`, `horizontal`
|
|
9
|
+
* or `fieldClassName` in that bare `Control`: it keeps a `Field` for them,
|
|
10
|
+
* nested in the `.control`, and warns in development. Wrap the `Control` in a
|
|
11
|
+
* `Field` instead, and set the `label`, `horizontal` and class name on that
|
|
12
|
+
* `Field`.
|
|
6
13
|
*/
|
|
7
14
|
export interface RadiosProps extends Omit<BulmaClassesProps, 'color'>, FormFieldProps {
|
|
8
15
|
/** Field label naming the whole group. Automatically associated via `aria-labelledby` on the `role="radiogroup"` wrapper — uses your `labelProps.id` when provided, otherwise a generated one. Dropped inside an outer `Field` (label that `Field` yourself). */
|
|
@@ -22,6 +22,13 @@ export interface RateIconProps {
|
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Props for the Rate component.
|
|
25
|
+
* Inside an existing `Control` it renders no `Control` of its own. Inside an
|
|
26
|
+
* outer `Field`, or a `Control` with no `Field` around it, it renders no
|
|
27
|
+
* `Field` of its own either. The exception is `label`, `message`, `horizontal`
|
|
28
|
+
* or `fieldClassName` in that bare `Control`: it keeps a `Field` for them,
|
|
29
|
+
* nested in the `.control`, and warns in development. Wrap the `Control` in a
|
|
30
|
+
* `Field` instead, and set the `label`, `horizontal` and class name on that
|
|
31
|
+
* `Field`.
|
|
25
32
|
* @extraProp {string} [className] - Additional CSS classes.
|
|
26
33
|
* @extraProp {React.Ref<HTMLElement>} [ref] - Ref forwarded to the container element.
|
|
27
34
|
*/
|
|
@@ -7,7 +7,14 @@ import { SelectBaseProps } from './SelectBase.js';
|
|
|
7
7
|
*
|
|
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
|
-
* Control-level (icons
|
|
10
|
+
* Control-level (icons) props.
|
|
11
|
+
* Inside an existing `Control` it renders no `Control` of its own, so set the
|
|
12
|
+
* Control-level props on that `Control` instead. Inside an outer `Field`, or a
|
|
13
|
+
* `Control` with no `Field` around it, it renders no `Field` of its own either.
|
|
14
|
+
* The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
|
|
15
|
+
* bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
|
|
16
|
+
* warns in development. Wrap the `Control` in a `Field` instead, and set the
|
|
17
|
+
* `label`, `horizontal` and class name on that `Field`.
|
|
11
18
|
*/
|
|
12
19
|
export interface SelectProps extends SelectBaseProps {
|
|
13
20
|
/** Field label. Automatically associated with the select via `htmlFor` — uses your `id` when provided, otherwise a generated one. Dropped inside an outer `Field`, whose own label associates instead when that `Field` generates a target id (not `grouped`/`hasAddons`, no explicit `labelProps.htmlFor`). */
|
|
@@ -18,7 +25,11 @@ export interface SelectProps extends SelectBaseProps {
|
|
|
18
25
|
labelProps?: FieldProps['labelProps'];
|
|
19
26
|
/** Horizontal field layout. */
|
|
20
27
|
horizontal?: boolean;
|
|
21
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Icon props for left icon.
|
|
30
|
+
* Bulma gives control icons `pointer-events: none`, so a clickable node here
|
|
31
|
+
* never receives a click. Put a button beside the input in its own addon `Control` instead.
|
|
32
|
+
*/
|
|
22
33
|
iconLeft?: ControlBaseProps['iconLeft'];
|
|
23
34
|
/** Shortcut for left icon name. */
|
|
24
35
|
iconLeftName?: string;
|
|
@@ -117,6 +117,13 @@ export interface SliderRangeProps extends SliderBaseProps {
|
|
|
117
117
|
}
|
|
118
118
|
/**
|
|
119
119
|
* Props for the Slider component — a discriminated union of single and range modes.
|
|
120
|
+
* Inside an existing `Control` it renders no `Control` of its own. Inside an
|
|
121
|
+
* outer `Field`, or a `Control` with no `Field` around it, it renders no
|
|
122
|
+
* `Field` of its own either. The exception is `label`, `message`, `horizontal`
|
|
123
|
+
* or `fieldClassName` in that bare `Control`: it keeps a `Field` for them,
|
|
124
|
+
* nested in the `.control`, and warns in development. Wrap the `Control` in a
|
|
125
|
+
* `Field` instead, and set the `label`, `horizontal` and class name on that
|
|
126
|
+
* `Field`.
|
|
120
127
|
* @extraProp {boolean} [disabled=false] - Whether the slider is disabled.
|
|
121
128
|
* @extraProp {string} [className] - Additional CSS classes.
|
|
122
129
|
* @extraProp {React.Ref<HTMLElement>} [ref] - Ref forwarded to the input element.
|
|
@@ -16,6 +16,12 @@ export type TaginputTag = TaginputItem | string;
|
|
|
16
16
|
type IconLibrary = 'fa' | 'mdi' | 'ion' | 'material-icons' | 'material-symbols';
|
|
17
17
|
/**
|
|
18
18
|
* Props for the Taginput component.
|
|
19
|
+
* Inside an outer `Field`, or a `Control` with no `Field` around it, it
|
|
20
|
+
* renders no `Field` of its own. The exception is `label`, `message`,
|
|
21
|
+
* `horizontal` or `fieldClassName` in that bare `Control`: it keeps a `Field`
|
|
22
|
+
* for them, nested in the `.control`, and warns in development. Wrap the
|
|
23
|
+
* `Control` in a `Field` instead, and set the `label`, `horizontal` and class
|
|
24
|
+
* name on that `Field`.
|
|
19
25
|
* @extraProp {string} [className] - Additional CSS classes.
|
|
20
26
|
* @extraProp {React.Ref<HTMLInputElement>} [ref] - Ref forwarded to the input element.
|
|
21
27
|
*/
|
|
@@ -8,6 +8,13 @@ import { TextAreaBaseProps } from './TextAreaBase.js';
|
|
|
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
|
+
* Inside an existing `Control` it renders no `Control` of its own, so set the
|
|
12
|
+
* Control-level props on that `Control` instead. Inside an outer `Field`, or a
|
|
13
|
+
* `Control` with no `Field` around it, it renders no `Field` of its own either.
|
|
14
|
+
* The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
|
|
15
|
+
* bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
|
|
16
|
+
* warns in development. Wrap the `Control` in a `Field` instead, and set the
|
|
17
|
+
* `label`, `horizontal` and class name on that `Field`.
|
|
11
18
|
*/
|
|
12
19
|
export interface TextAreaProps extends TextAreaBaseProps {
|
|
13
20
|
/** Field label. Automatically associated with the textarea via `htmlFor` — uses your `id` when provided, otherwise a generated one. Dropped inside an outer `Field`, whose own label associates instead when that `Field` generates a target id (not `grouped`/`hasAddons`, no explicit `labelProps.htmlFor`). */
|
|
@@ -19,7 +26,7 @@ export interface TextAreaProps extends TextAreaBaseProps {
|
|
|
19
26
|
/** Horizontal field layout. */
|
|
20
27
|
horizontal?: boolean;
|
|
21
28
|
/**
|
|
22
|
-
* Shows a loading spinner on the
|
|
29
|
+
* Shows a loading spinner on the `Control` it renders.
|
|
23
30
|
* Under `prefers-reduced-motion: reduce` the spinner stops and stays
|
|
24
31
|
* drawn (with bestax's CSS loaded).
|
|
25
32
|
*/
|
|
@@ -36,7 +43,7 @@ export interface TextAreaProps extends TextAreaBaseProps {
|
|
|
36
43
|
controlClassName?: string;
|
|
37
44
|
}
|
|
38
45
|
/**
|
|
39
|
-
* The `TextArea` component provides a Bulma-styled multi-line text input, supporting color, size,
|
|
46
|
+
* The `TextArea` component provides a Bulma-styled multi-line text input, supporting color, size, hover/focus/loading states, fixed size, and all Bulma helper props.
|
|
40
47
|
*
|
|
41
48
|
* @function
|
|
42
49
|
* @param {TextAreaProps} props - Props for TextArea.
|
|
@@ -8,15 +8,24 @@ export interface TextAreaBaseProps extends Omit<React.TextareaHTMLAttributes<HTM
|
|
|
8
8
|
color?: 'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'dark' | 'light' | 'white';
|
|
9
9
|
/** Size modifier for the textarea. */
|
|
10
10
|
size?: 'small' | 'medium' | 'large';
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Adds the `is-rounded` class to the `<textarea>`. Bulma styles it on `.input` only, so the
|
|
13
|
+
* textarea's corners don't change.
|
|
14
|
+
*/
|
|
12
15
|
isRounded?: boolean;
|
|
13
|
-
/**
|
|
16
|
+
/**
|
|
17
|
+
* Adds the `is-static` class to the `<textarea>`. Bulma styles it on `.input` only, so the
|
|
18
|
+
* textarea keeps its border, background and padding.
|
|
19
|
+
*/
|
|
14
20
|
isStatic?: boolean;
|
|
15
21
|
/** Applies hovered state. */
|
|
16
22
|
isHovered?: boolean;
|
|
17
23
|
/** Applies focused state. */
|
|
18
24
|
isFocused?: boolean;
|
|
19
|
-
/**
|
|
25
|
+
/**
|
|
26
|
+
* Accepted and ignored: `TextAreaBase` renders no loading state. The spinner belongs to the
|
|
27
|
+
* wrapping `Control`, so set `isLoading` on that `Control`.
|
|
28
|
+
*/
|
|
20
29
|
isLoading?: boolean;
|
|
21
30
|
/** Applies Bulma's is-active modifier. */
|
|
22
31
|
isActive?: boolean;
|
|
@@ -5,6 +5,13 @@ import { TimeInputBaseProps } from './TimeInputBase.js';
|
|
|
5
5
|
/**
|
|
6
6
|
* Props for the TimeInput convenience wrapper. Extends `TimeInputBaseProps`
|
|
7
7
|
* with Field-level (label, horizontal) and Control-level (icons, loading) props.
|
|
8
|
+
* Inside an existing `Control` it renders no `Control` of its own, so set the
|
|
9
|
+
* Control-level props on that `Control` instead. Inside an outer `Field`, or a
|
|
10
|
+
* `Control` with no `Field` around it, it renders no `Field` of its own either.
|
|
11
|
+
* The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
|
|
12
|
+
* bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
|
|
13
|
+
* warns in development. Wrap the `Control` in a `Field` instead, and set the
|
|
14
|
+
* `label`, `horizontal` and class name on that `Field`.
|
|
8
15
|
* @extraProp {string} [name] - Form field name.
|
|
9
16
|
* @extraProp {string} [form] - Form id the input belongs to.
|
|
10
17
|
* @extraProp {boolean} [required=false] - Marks the input as required.
|
|
@@ -20,9 +27,17 @@ export interface TimeInputProps extends TimeInputBaseProps {
|
|
|
20
27
|
labelProps?: FieldProps['labelProps'];
|
|
21
28
|
/** Render the field with horizontal layout. */
|
|
22
29
|
horizontal?: boolean;
|
|
23
|
-
/**
|
|
30
|
+
/**
|
|
31
|
+
* Icon props for the left icon.
|
|
32
|
+
* Bulma gives control icons `pointer-events: none`, so a clickable node here
|
|
33
|
+
* never receives a click. Put a button beside the input in its own addon `Control` instead.
|
|
34
|
+
*/
|
|
24
35
|
iconLeft?: ControlBaseProps['iconLeft'];
|
|
25
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* Icon props for the right icon.
|
|
38
|
+
* Bulma gives control icons `pointer-events: none`, so a clickable node here
|
|
39
|
+
* never receives a click. Put a button beside the input in its own addon `Control` instead.
|
|
40
|
+
*/
|
|
26
41
|
iconRight?: ControlBaseProps['iconRight'];
|
|
27
42
|
/** Shortcut for the right icon name. */
|
|
28
43
|
iconRightName?: string;
|
|
@@ -35,11 +50,21 @@ export interface TimeInputProps extends TimeInputBaseProps {
|
|
|
35
50
|
/** Force the right icon container. */
|
|
36
51
|
hasIconsRight?: boolean;
|
|
37
52
|
/**
|
|
38
|
-
*
|
|
53
|
+
* Shows a loading spinner on the `Control` it renders, and hides the
|
|
54
|
+
* launcher (`triggerIcon`) while it does. Inside your own `Control` it
|
|
55
|
+
* renders none, so this draws nothing; set `isLoading` on that `Control`.
|
|
39
56
|
* Under `prefers-reduced-motion: reduce` the spinner stops and stays
|
|
40
57
|
* drawn (with bestax's CSS loaded).
|
|
41
58
|
*/
|
|
42
59
|
isLoading?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Show a clickable launcher button on the right that toggles the popover.
|
|
62
|
+
* Hidden by default while a spinner shows at the same right edge: this
|
|
63
|
+
* component's `isLoading` when it renders its own `Control`, or the
|
|
64
|
+
* enclosing `Control`'s `isLoading` inside one.
|
|
65
|
+
* @defaultValue true
|
|
66
|
+
*/
|
|
67
|
+
triggerIcon?: boolean;
|
|
43
68
|
/** Expand the control to fill its container. */
|
|
44
69
|
isExpanded?: boolean;
|
|
45
70
|
/** Size of the wrapping Control. */
|