@allxsmith/bestax-bulma 5.26.4 → 5.26.5

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 (36) hide show
  1. package/dist/bestax.css +1 -1
  2. package/dist/bestax.css.map +1 -1
  3. package/dist/extras.css +1 -1
  4. package/dist/extras.css.map +1 -1
  5. package/dist/index.cjs +224 -39
  6. package/dist/index.cjs.map +1 -1
  7. package/dist/index.esm.js +224 -39
  8. package/dist/index.esm.js.map +1 -1
  9. package/dist/types/form/Autocomplete.d.ts +6 -1
  10. package/dist/types/form/DateInput.d.ts +8 -4
  11. package/dist/types/form/DateTimeInput.d.ts +8 -4
  12. package/dist/types/form/FormContext.d.ts +47 -0
  13. package/dist/types/form/Input.d.ts +4 -3
  14. package/dist/types/form/Numberinput.d.ts +3 -0
  15. package/dist/types/form/Select.d.ts +4 -3
  16. package/dist/types/form/TextArea.d.ts +4 -3
  17. package/dist/types/form/TimeInput.d.ts +8 -4
  18. package/dist/types-cjs/form/Autocomplete.d.ts +6 -1
  19. package/dist/types-cjs/form/DateInput.d.ts +8 -4
  20. package/dist/types-cjs/form/DateTimeInput.d.ts +8 -4
  21. package/dist/types-cjs/form/FormContext.d.ts +47 -0
  22. package/dist/types-cjs/form/Input.d.ts +4 -3
  23. package/dist/types-cjs/form/Numberinput.d.ts +3 -0
  24. package/dist/types-cjs/form/Select.d.ts +4 -3
  25. package/dist/types-cjs/form/TextArea.d.ts +4 -3
  26. package/dist/types-cjs/form/TimeInput.d.ts +8 -4
  27. package/dist/versions/bestax-no-dark-mode.css +1 -1
  28. package/dist/versions/bestax-no-dark-mode.css.map +1 -1
  29. package/dist/versions/bestax-no-helpers-prefixed.css +1 -1
  30. package/dist/versions/bestax-no-helpers-prefixed.css.map +1 -1
  31. package/dist/versions/bestax-no-helpers.css +1 -1
  32. package/dist/versions/bestax-no-helpers.css.map +1 -1
  33. package/dist/versions/bestax-prefixed.css +1 -1
  34. package/dist/versions/bestax-prefixed.css.map +1 -1
  35. package/package.json +1 -1
  36. package/src/scss/form/_taginput.scss +8 -0
@@ -37,7 +37,12 @@ export interface AutocompleteProps extends Omit<React.HTMLAttributes<HTMLDivElem
37
37
  placeholder?: string;
38
38
  /** Object property to use as the display field. */
39
39
  field?: string;
40
- /** Whether to show a clear button. */
40
+ /**
41
+ * Whether to show a clear button while the input holds a value.
42
+ * It hides while the input is disabled, and gives way to a loading
43
+ * spinner at the same right edge: the one `loading` draws, or that of a
44
+ * `Control` with `isLoading` around the Autocomplete.
45
+ */
41
46
  clearable?: boolean;
42
47
  /** Open dropdown when input is focused. */
43
48
  openOnFocus?: boolean;
@@ -5,9 +5,12 @@ 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.
8
+ * Inside an existing `Control` it renders no `Control` of its own, so its
9
+ * Control-level props do nothing there and warn in development; set them on
10
+ * that `Control` instead. In `inline` mode it renders no `Control` anywhere,
11
+ * so they do nothing inside a `Control` or out, and warn in development
12
+ * there too. Inside an outer `Field`, or a `Control` with no `Field` around
13
+ * it, it renders no `Field` of its own either.
11
14
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
12
15
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
13
16
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -52,7 +55,8 @@ export interface DateInputProps extends DateInputBaseProps {
52
55
  /**
53
56
  * Shows a loading spinner on the `Control` it renders, and hides the
54
57
  * launcher (`triggerIcon`) while it does. Inside your own `Control` it
55
- * renders none, so this draws nothing; set `isLoading` on that `Control`.
58
+ * renders none, so this draws nothing and warns in development; set
59
+ * `isLoading` on that `Control`.
56
60
  * Under `prefers-reduced-motion: reduce` the spinner stops and stays
57
61
  * drawn (with bestax's CSS loaded).
58
62
  */
@@ -5,9 +5,12 @@ 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.
8
+ * Inside an existing `Control` it renders no `Control` of its own, so its
9
+ * Control-level props do nothing there and warn in development; set them on
10
+ * that `Control` instead. In `inline` mode it renders no `Control` anywhere,
11
+ * so they do nothing inside a `Control` or out, and warn in development
12
+ * there too. Inside an outer `Field`, or a `Control` with no `Field` around
13
+ * it, it renders no `Field` of its own either.
11
14
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
12
15
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
13
16
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -50,7 +53,8 @@ export interface DateTimeInputProps extends DateTimeInputBaseProps {
50
53
  /**
51
54
  * Shows a loading spinner on the `Control` it renders, and hides the
52
55
  * launcher (`triggerIcon`) while it does. Inside your own `Control` it
53
- * renders none, so this draws nothing; set `isLoading` on that `Control`.
56
+ * renders none, so this draws nothing and warns in development; set
57
+ * `isLoading` on that `Control`.
54
58
  * Under `prefers-reduced-motion: reduce` the spinner stops and stays
55
59
  * drawn (with bestax's CSS loaded).
56
60
  */
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { ControlBaseProps } from './Control.js';
2
3
  /**
3
4
  * Hook to detect if the component is inside a Field wrapper.
4
5
  * Form components use this to skip rendering their own Field.
@@ -43,6 +44,52 @@ interface OwnFieldOptions extends FieldShapingProps {
43
44
  * Internal; not part of the public API.
44
45
  */
45
46
  export declare const rendersOwnField: (component: string, options: OwnFieldOptions) => boolean;
47
+ /** The props a convenience form wrapper hands its own `Control`. Internal. */
48
+ export interface ControlLevelProps {
49
+ /** Shows the `Control`'s loading spinner. */
50
+ isLoading?: boolean;
51
+ /** The `Control`'s left icon. */
52
+ iconLeft?: ControlBaseProps['iconLeft'];
53
+ /** Shortcut for the left icon's name. */
54
+ iconLeftName?: string;
55
+ /** Shortcut for the left icon's size. */
56
+ iconLeftSize?: ControlBaseProps['iconLeftSize'];
57
+ /** The `Control`'s right icon. */
58
+ iconRight?: ControlBaseProps['iconRight'];
59
+ /** Shortcut for the right icon's name. */
60
+ iconRightName?: string;
61
+ /** Shortcut for the right icon's size. */
62
+ iconRightSize?: ControlBaseProps['iconRightSize'];
63
+ /** Reserves the `Control`'s left icon space. */
64
+ hasIconsLeft?: boolean;
65
+ /** Reserves the `Control`'s right icon space. */
66
+ hasIconsRight?: boolean;
67
+ /** Expands the `Control`. */
68
+ isExpanded?: boolean;
69
+ /** Set on the `Control` as its `size`. */
70
+ controlSize?: ControlBaseProps['size'];
71
+ /** Set on the `Control` as its class. */
72
+ controlClassName?: string;
73
+ }
74
+ interface OwnControlOptions extends ControlLevelProps {
75
+ /** `useInsideControl()` as the wrapper read it. */
76
+ insideControl: boolean;
77
+ /** A picker's `inline`, which renders no `Control` inside one or out. */
78
+ inline?: boolean;
79
+ }
80
+ /**
81
+ * Whether a convenience form wrapper renders a `Control` of its own (#921):
82
+ * only outside one. Inside a `Control` it renders none, so the props it
83
+ * would have handed its own do nothing there, and it warns in development,
84
+ * naming them and saying to set them on that `Control`. An `inline` picker
85
+ * renders none in either place, so it drops them inside a `Control` or not,
86
+ * and its warning says so without pointing at a `Control`. A wrapper passes
87
+ * only the props it hands its own `Control`, as the caller gave them, so a
88
+ * default the wrapper fills in itself never warns. A prop counts when it is
89
+ * truthy, since a falsy one would change nothing on a `Control` either.
90
+ * Internal; not part of the public API.
91
+ */
92
+ export declare const rendersOwnControl: (component: string, options: OwnControlOptions) => boolean;
46
93
  /**
47
94
  * The id a labeled Field wants its single composed control to adopt (#495).
48
95
  * `undefined` outside a Field, in unlabeled/grouped/addons Fields, or when the
@@ -8,9 +8,10 @@ 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.
11
+ * Inside an existing `Control` it renders no `Control` of its own, so its
12
+ * Control-level props do nothing there and warn in development; set them on
13
+ * that `Control` instead. Inside an outer `Field`, or a `Control` with no
14
+ * `Field` around it, it renders no `Field` of its own either.
14
15
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
15
16
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
16
17
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -57,6 +57,9 @@ export interface NumberinputProps extends Omit<React.InputHTMLAttributes<HTMLInp
57
57
  * Shows a loading spinner on the input's control.
58
58
  * Under `prefers-reduced-motion: reduce` the spinner stops and stays
59
59
  * drawn (with bestax's CSS loaded).
60
+ * Use this rather than `isLoading` on a `Control` around the Numberinput:
61
+ * that spinner sits at the `Control`'s right edge, on top of whichever
62
+ * button is there, while this one stays inside the input.
60
63
  */
61
64
  isLoading?: boolean;
62
65
  /** Enables exponential step increments when holding buttons. */
@@ -8,9 +8,10 @@ import { SelectBaseProps } from './SelectBase.js';
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) 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.
11
+ * Inside an existing `Control` it renders no `Control` of its own, so its
12
+ * Control-level props do nothing there and warn in development; set them on
13
+ * that `Control` instead. Inside an outer `Field`, or a `Control` with no
14
+ * `Field` around it, it renders no `Field` of its own either.
14
15
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
15
16
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
16
17
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -8,9 +8,10 @@ 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.
11
+ * Inside an existing `Control` it renders no `Control` of its own, so its
12
+ * Control-level props do nothing there and warn in development; set them on
13
+ * that `Control` instead. Inside an outer `Field`, or a `Control` with no
14
+ * `Field` around it, it renders no `Field` of its own either.
14
15
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
15
16
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
16
17
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -5,9 +5,12 @@ 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.
8
+ * Inside an existing `Control` it renders no `Control` of its own, so its
9
+ * Control-level props do nothing there and warn in development; set them on
10
+ * that `Control` instead. In `inline` mode it renders no `Control` anywhere,
11
+ * so they do nothing inside a `Control` or out, and warn in development
12
+ * there too. Inside an outer `Field`, or a `Control` with no `Field` around
13
+ * it, it renders no `Field` of its own either.
11
14
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
12
15
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
13
16
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -52,7 +55,8 @@ export interface TimeInputProps extends TimeInputBaseProps {
52
55
  /**
53
56
  * Shows a loading spinner on the `Control` it renders, and hides the
54
57
  * launcher (`triggerIcon`) while it does. Inside your own `Control` it
55
- * renders none, so this draws nothing; set `isLoading` on that `Control`.
58
+ * renders none, so this draws nothing and warns in development; set
59
+ * `isLoading` on that `Control`.
56
60
  * Under `prefers-reduced-motion: reduce` the spinner stops and stays
57
61
  * drawn (with bestax's CSS loaded).
58
62
  */
@@ -37,7 +37,12 @@ export interface AutocompleteProps extends Omit<React.HTMLAttributes<HTMLDivElem
37
37
  placeholder?: string;
38
38
  /** Object property to use as the display field. */
39
39
  field?: string;
40
- /** Whether to show a clear button. */
40
+ /**
41
+ * Whether to show a clear button while the input holds a value.
42
+ * It hides while the input is disabled, and gives way to a loading
43
+ * spinner at the same right edge: the one `loading` draws, or that of a
44
+ * `Control` with `isLoading` around the Autocomplete.
45
+ */
41
46
  clearable?: boolean;
42
47
  /** Open dropdown when input is focused. */
43
48
  openOnFocus?: boolean;
@@ -5,9 +5,12 @@ 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.
8
+ * Inside an existing `Control` it renders no `Control` of its own, so its
9
+ * Control-level props do nothing there and warn in development; set them on
10
+ * that `Control` instead. In `inline` mode it renders no `Control` anywhere,
11
+ * so they do nothing inside a `Control` or out, and warn in development
12
+ * there too. Inside an outer `Field`, or a `Control` with no `Field` around
13
+ * it, it renders no `Field` of its own either.
11
14
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
12
15
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
13
16
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -52,7 +55,8 @@ export interface DateInputProps extends DateInputBaseProps {
52
55
  /**
53
56
  * Shows a loading spinner on the `Control` it renders, and hides the
54
57
  * launcher (`triggerIcon`) while it does. Inside your own `Control` it
55
- * renders none, so this draws nothing; set `isLoading` on that `Control`.
58
+ * renders none, so this draws nothing and warns in development; set
59
+ * `isLoading` on that `Control`.
56
60
  * Under `prefers-reduced-motion: reduce` the spinner stops and stays
57
61
  * drawn (with bestax's CSS loaded).
58
62
  */
@@ -5,9 +5,12 @@ 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.
8
+ * Inside an existing `Control` it renders no `Control` of its own, so its
9
+ * Control-level props do nothing there and warn in development; set them on
10
+ * that `Control` instead. In `inline` mode it renders no `Control` anywhere,
11
+ * so they do nothing inside a `Control` or out, and warn in development
12
+ * there too. Inside an outer `Field`, or a `Control` with no `Field` around
13
+ * it, it renders no `Field` of its own either.
11
14
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
12
15
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
13
16
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -50,7 +53,8 @@ export interface DateTimeInputProps extends DateTimeInputBaseProps {
50
53
  /**
51
54
  * Shows a loading spinner on the `Control` it renders, and hides the
52
55
  * launcher (`triggerIcon`) while it does. Inside your own `Control` it
53
- * renders none, so this draws nothing; set `isLoading` on that `Control`.
56
+ * renders none, so this draws nothing and warns in development; set
57
+ * `isLoading` on that `Control`.
54
58
  * Under `prefers-reduced-motion: reduce` the spinner stops and stays
55
59
  * drawn (with bestax's CSS loaded).
56
60
  */
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import type { ControlBaseProps } from './Control.js';
2
3
  /**
3
4
  * Hook to detect if the component is inside a Field wrapper.
4
5
  * Form components use this to skip rendering their own Field.
@@ -43,6 +44,52 @@ interface OwnFieldOptions extends FieldShapingProps {
43
44
  * Internal; not part of the public API.
44
45
  */
45
46
  export declare const rendersOwnField: (component: string, options: OwnFieldOptions) => boolean;
47
+ /** The props a convenience form wrapper hands its own `Control`. Internal. */
48
+ export interface ControlLevelProps {
49
+ /** Shows the `Control`'s loading spinner. */
50
+ isLoading?: boolean;
51
+ /** The `Control`'s left icon. */
52
+ iconLeft?: ControlBaseProps['iconLeft'];
53
+ /** Shortcut for the left icon's name. */
54
+ iconLeftName?: string;
55
+ /** Shortcut for the left icon's size. */
56
+ iconLeftSize?: ControlBaseProps['iconLeftSize'];
57
+ /** The `Control`'s right icon. */
58
+ iconRight?: ControlBaseProps['iconRight'];
59
+ /** Shortcut for the right icon's name. */
60
+ iconRightName?: string;
61
+ /** Shortcut for the right icon's size. */
62
+ iconRightSize?: ControlBaseProps['iconRightSize'];
63
+ /** Reserves the `Control`'s left icon space. */
64
+ hasIconsLeft?: boolean;
65
+ /** Reserves the `Control`'s right icon space. */
66
+ hasIconsRight?: boolean;
67
+ /** Expands the `Control`. */
68
+ isExpanded?: boolean;
69
+ /** Set on the `Control` as its `size`. */
70
+ controlSize?: ControlBaseProps['size'];
71
+ /** Set on the `Control` as its class. */
72
+ controlClassName?: string;
73
+ }
74
+ interface OwnControlOptions extends ControlLevelProps {
75
+ /** `useInsideControl()` as the wrapper read it. */
76
+ insideControl: boolean;
77
+ /** A picker's `inline`, which renders no `Control` inside one or out. */
78
+ inline?: boolean;
79
+ }
80
+ /**
81
+ * Whether a convenience form wrapper renders a `Control` of its own (#921):
82
+ * only outside one. Inside a `Control` it renders none, so the props it
83
+ * would have handed its own do nothing there, and it warns in development,
84
+ * naming them and saying to set them on that `Control`. An `inline` picker
85
+ * renders none in either place, so it drops them inside a `Control` or not,
86
+ * and its warning says so without pointing at a `Control`. A wrapper passes
87
+ * only the props it hands its own `Control`, as the caller gave them, so a
88
+ * default the wrapper fills in itself never warns. A prop counts when it is
89
+ * truthy, since a falsy one would change nothing on a `Control` either.
90
+ * Internal; not part of the public API.
91
+ */
92
+ export declare const rendersOwnControl: (component: string, options: OwnControlOptions) => boolean;
46
93
  /**
47
94
  * The id a labeled Field wants its single composed control to adopt (#495).
48
95
  * `undefined` outside a Field, in unlabeled/grouped/addons Fields, or when the
@@ -8,9 +8,10 @@ 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.
11
+ * Inside an existing `Control` it renders no `Control` of its own, so its
12
+ * Control-level props do nothing there and warn in development; set them on
13
+ * that `Control` instead. Inside an outer `Field`, or a `Control` with no
14
+ * `Field` around it, it renders no `Field` of its own either.
14
15
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
15
16
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
16
17
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -57,6 +57,9 @@ export interface NumberinputProps extends Omit<React.InputHTMLAttributes<HTMLInp
57
57
  * Shows a loading spinner on the input's control.
58
58
  * Under `prefers-reduced-motion: reduce` the spinner stops and stays
59
59
  * drawn (with bestax's CSS loaded).
60
+ * Use this rather than `isLoading` on a `Control` around the Numberinput:
61
+ * that spinner sits at the `Control`'s right edge, on top of whichever
62
+ * button is there, while this one stays inside the input.
60
63
  */
61
64
  isLoading?: boolean;
62
65
  /** Enables exponential step increments when holding buttons. */
@@ -8,9 +8,10 @@ import { SelectBaseProps } from './SelectBase.js';
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) 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.
11
+ * Inside an existing `Control` it renders no `Control` of its own, so its
12
+ * Control-level props do nothing there and warn in development; set them on
13
+ * that `Control` instead. Inside an outer `Field`, or a `Control` with no
14
+ * `Field` around it, it renders no `Field` of its own either.
14
15
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
15
16
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
16
17
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -8,9 +8,10 @@ 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.
11
+ * Inside an existing `Control` it renders no `Control` of its own, so its
12
+ * Control-level props do nothing there and warn in development; set them on
13
+ * that `Control` instead. Inside an outer `Field`, or a `Control` with no
14
+ * `Field` around it, it renders no `Field` of its own either.
14
15
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
15
16
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
16
17
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -5,9 +5,12 @@ 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.
8
+ * Inside an existing `Control` it renders no `Control` of its own, so its
9
+ * Control-level props do nothing there and warn in development; set them on
10
+ * that `Control` instead. In `inline` mode it renders no `Control` anywhere,
11
+ * so they do nothing inside a `Control` or out, and warn in development
12
+ * there too. Inside an outer `Field`, or a `Control` with no `Field` around
13
+ * it, it renders no `Field` of its own either.
11
14
  * The exception is `label`, `message`, `horizontal` or `fieldClassName` in that
12
15
  * bare `Control`: it keeps a `Field` for them, nested in the `.control`, and
13
16
  * warns in development. Wrap the `Control` in a `Field` instead, and set the
@@ -52,7 +55,8 @@ export interface TimeInputProps extends TimeInputBaseProps {
52
55
  /**
53
56
  * Shows a loading spinner on the `Control` it renders, and hides the
54
57
  * launcher (`triggerIcon`) while it does. Inside your own `Control` it
55
- * renders none, so this draws nothing; set `isLoading` on that `Control`.
58
+ * renders none, so this draws nothing and warns in development; set
59
+ * `isLoading` on that `Control`.
56
60
  * Under `prefers-reduced-motion: reduce` the spinner stops and stays
57
61
  * drawn (with bestax's CSS loaded).
58
62
  */