@jobber/components 6.103.2-JOB-140609-9051081.26 → 6.103.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.
Files changed (74) hide show
  1. package/dist/Autocomplete/Autocomplete.types.d.ts +1 -12
  2. package/dist/Autocomplete/index.cjs +13 -1
  3. package/dist/Autocomplete/index.mjs +13 -1
  4. package/dist/Checkbox/Checkbox.types.d.ts +9 -2
  5. package/dist/Checkbox/index.cjs +2 -3
  6. package/dist/Checkbox/index.mjs +2 -3
  7. package/dist/Chips/InternalChipDismissible/hooks/index.cjs +2 -2
  8. package/dist/Chips/InternalChipDismissible/hooks/index.mjs +2 -2
  9. package/dist/Chips/InternalChipDismissible/index.cjs +2 -2
  10. package/dist/Chips/InternalChipDismissible/index.mjs +2 -2
  11. package/dist/Chips/index.cjs +2 -2
  12. package/dist/Chips/index.mjs +2 -2
  13. package/dist/DataList/components/DataListSearch/index.cjs +12 -1
  14. package/dist/DataList/components/DataListSearch/index.mjs +12 -1
  15. package/dist/DataList/index.cjs +8 -0
  16. package/dist/DataList/index.mjs +8 -0
  17. package/dist/DataTable/index.cjs +2 -2
  18. package/dist/DataTable/index.mjs +2 -2
  19. package/dist/DatePicker/index.cjs +2 -2
  20. package/dist/DatePicker/index.mjs +2 -2
  21. package/dist/FormField/FormFieldTypes.d.ts +1 -217
  22. package/dist/FormField-cjs.js +6 -1
  23. package/dist/FormField-es.js +6 -2
  24. package/dist/InputDate/index.cjs +4 -8
  25. package/dist/InputDate/index.mjs +4 -8
  26. package/dist/InputDate/useInputDateActivatorActions.d.ts +2 -2
  27. package/dist/InputEmail/InputEmail.types.d.ts +21 -16
  28. package/dist/InputEmail/hooks/useInputEmailActions.d.ts +1 -1
  29. package/dist/InputEmail/hooks/useInputEmailFormField.d.ts +32 -0
  30. package/dist/InputEmail/index.cjs +45 -10
  31. package/dist/InputEmail/index.mjs +45 -10
  32. package/dist/InputNumber/InputNumber.rebuilt.types.d.ts +2 -23
  33. package/dist/InputNumber/index.cjs +3 -6
  34. package/dist/InputNumber/index.mjs +3 -6
  35. package/dist/InputPhoneNumber/InputPhoneNumber.types.d.ts +26 -15
  36. package/dist/InputPhoneNumber/hooks/useInputPhoneActions.d.ts +1 -1
  37. package/dist/InputPhoneNumber/hooks/useInputPhoneFormField.d.ts +71 -0
  38. package/dist/InputPhoneNumber/index.cjs +35 -20
  39. package/dist/InputPhoneNumber/index.mjs +35 -20
  40. package/dist/InputText/InputText.d.ts +2 -2
  41. package/dist/InputText/InputText.types.d.ts +24 -27
  42. package/dist/InputText/index.cjs +55 -26
  43. package/dist/InputText/index.mjs +56 -27
  44. package/dist/InputText/useInputTextActions.d.ts +1 -1
  45. package/dist/InputText/useInputTextFormField.d.ts +352 -0
  46. package/dist/InputTime/InputTime.rebuilt.d.ts +1 -1
  47. package/dist/InputTime/InputTime.types.d.ts +1 -21
  48. package/dist/InputTime/index.cjs +25 -30
  49. package/dist/InputTime/index.d.ts +1 -1
  50. package/dist/InputTime/index.mjs +27 -32
  51. package/dist/List/index.cjs +2 -2
  52. package/dist/List/index.mjs +2 -2
  53. package/dist/RecurringSelect/index.cjs +2 -2
  54. package/dist/RecurringSelect/index.mjs +2 -2
  55. package/dist/Select/Select.rebuilt.d.ts +1 -1
  56. package/dist/Select/Select.types.d.ts +1 -14
  57. package/dist/Select/hooks/useSelectActions.d.ts +5 -5
  58. package/dist/Select/hooks/useSelectFormField.d.ts +34 -0
  59. package/dist/Select/index.cjs +41 -27
  60. package/dist/Select/index.d.ts +5 -7
  61. package/dist/Select/index.mjs +43 -29
  62. package/dist/_baseEach-cjs.js +12 -12
  63. package/dist/_baseEach-es.js +1 -1
  64. package/dist/_baseFlatten-cjs.js +2 -2
  65. package/dist/_baseFlatten-es.js +1 -1
  66. package/dist/{_getAllKeys-cjs.js → _baseGet-cjs.js} +181 -181
  67. package/dist/{_getAllKeys-es.js → _baseGet-es.js} +182 -182
  68. package/dist/index.cjs +2 -2
  69. package/dist/index.mjs +2 -2
  70. package/dist/omit-cjs.js +14 -14
  71. package/dist/omit-es.js +1 -1
  72. package/dist/useScrollToActive-cjs.js +3 -3
  73. package/dist/useScrollToActive-es.js +1 -1
  74. package/package.json +2 -2
@@ -1,17 +1,6 @@
1
1
  import type { CSSProperties, Key, Ref, RefObject } from "react";
2
- import type { AriaInputProps } from "../FormField/FormFieldTypes";
3
2
  import type { FormFieldProps } from "../FormField";
4
3
  import type { InputTextRebuiltProps, InputTextRef } from "../InputText";
5
- /**
6
- * ARIA attributes for Autocomplete with managed/orchestrated behavior.
7
- * Certain ARIA attributes are controlled internally by Autocomplete's
8
- * state management and floating-ui integration and shouldn't be overridden.
9
- *
10
- * Omits: ariaControls, ariaExpanded, ariaActiveDescendant, ariaAutocomplete
11
- * (These are managed by the component's internal state/floating-ui)
12
- */
13
- export interface AriaInputPropsManaged extends Omit<AriaInputProps, "ariaControls" | "ariaExpanded" | "ariaActiveDescendant" | "ariaAutocomplete"> {
14
- }
15
4
  export type ExtraProps = Record<string, unknown>;
16
5
  type OptionValue = string | number;
17
6
  export interface BaseOption {
@@ -233,7 +222,7 @@ export type MenuFooter<Extra extends object = ExtraProps> = Extra & {
233
222
  };
234
223
  export type MenuItem<T extends OptionLike, SectionExtra extends object = ExtraProps, ActionExtra extends object = ExtraProps> = MenuSection<T, SectionExtra, ActionExtra> | MenuOptions<T, ActionExtra> | MenuHeader<ActionExtra> | MenuFooter<ActionExtra>;
235
224
  export type AutocompleteValue<Value extends OptionLike, Multiple extends boolean> = Multiple extends true ? Value[] : Value | undefined;
236
- interface AutocompleteRebuiltBaseProps<Value extends OptionLike, Multiple extends boolean, SectionExtra extends object, ActionExtra extends object> extends AriaInputPropsManaged {
225
+ interface AutocompleteRebuiltBaseProps<Value extends OptionLike, Multiple extends boolean, SectionExtra extends object, ActionExtra extends object> {
237
226
  version: 2;
238
227
  /**
239
228
  * Whether the autocomplete allows multiple selections.
@@ -20,6 +20,18 @@ require('react-hook-form');
20
20
  require('framer-motion');
21
21
  require('../Button-cjs.js');
22
22
  require('react-router-dom');
23
+ require('../omit-cjs.js');
24
+ require('../_commonjsHelpers-cjs.js');
25
+ require('../_baseGet-cjs.js');
26
+ require('../isTypedArray-cjs.js');
27
+ require('../isObjectLike-cjs.js');
28
+ require('../identity-cjs.js');
29
+ require('../_getTag-cjs.js');
30
+ require('../isSymbol-cjs.js');
31
+ require('../keysIn-cjs.js');
32
+ require('../_baseAssignValue-cjs.js');
33
+ require('../_baseFlatten-cjs.js');
34
+ require('../_setToString-cjs.js');
23
35
  require('../useFormFieldFocus-cjs.js');
24
36
  require('../InputValidation-cjs.js');
25
37
  require('../Spinner-cjs.js');
@@ -909,7 +921,7 @@ function AutocompleteRebuiltInternal(props, forwardedRef) {
909
921
  onBlur: onInputBlur,
910
922
  });
911
923
  const inputProps = Object.assign(Object.assign(Object.assign(Object.assign({ version: 2, value: inputValue, onChange: props.readOnly ? undefined : onInputChangeFromUser }, (props.readOnly ? { onFocus: onInputFocus, onBlur: onInputBlur } : {})), { placeholder,
912
- disabled, readOnly: props.readOnly, error: error !== null && error !== void 0 ? error : undefined, name: props.name, invalid, autoComplete: "off", description, size: sizeProp ? sizeProp : undefined, prefix: props.prefix, suffix: props.suffix }), (props.readOnly ? {} : composedReferenceProps)), { role: "combobox", ariaAutocomplete: "list", ariaExpanded: open ? true : false, ariaControls: listboxId, ariaActiveDescendant: open && activeIndex != null
924
+ disabled, readOnly: props.readOnly, error: error !== null && error !== void 0 ? error : undefined, name: props.name, invalid, autoComplete: "off", description, size: sizeProp ? sizeProp : undefined, prefix: props.prefix, suffix: props.suffix }), (props.readOnly ? {} : composedReferenceProps)), { role: "combobox", "aria-autocomplete": "list", "aria-expanded": open ? true : false, "aria-controls": listboxId, "aria-activedescendant": open && activeIndex != null
913
925
  ? `${listboxId}-item-${activeIndex}`
914
926
  : undefined });
915
927
  const referenceInputRef = (node) => {
@@ -18,6 +18,18 @@ import 'react-hook-form';
18
18
  import 'framer-motion';
19
19
  import '../Button-es.js';
20
20
  import 'react-router-dom';
21
+ import '../omit-es.js';
22
+ import '../_commonjsHelpers-es.js';
23
+ import '../_baseGet-es.js';
24
+ import '../isTypedArray-es.js';
25
+ import '../isObjectLike-es.js';
26
+ import '../identity-es.js';
27
+ import '../_getTag-es.js';
28
+ import '../isSymbol-es.js';
29
+ import '../keysIn-es.js';
30
+ import '../_baseAssignValue-es.js';
31
+ import '../_baseFlatten-es.js';
32
+ import '../_setToString-es.js';
21
33
  import '../useFormFieldFocus-es.js';
22
34
  import '../InputValidation-es.js';
23
35
  import '../Spinner-es.js';
@@ -907,7 +919,7 @@ function AutocompleteRebuiltInternal(props, forwardedRef) {
907
919
  onBlur: onInputBlur,
908
920
  });
909
921
  const inputProps = Object.assign(Object.assign(Object.assign(Object.assign({ version: 2, value: inputValue, onChange: props.readOnly ? undefined : onInputChangeFromUser }, (props.readOnly ? { onFocus: onInputFocus, onBlur: onInputBlur } : {})), { placeholder,
910
- disabled, readOnly: props.readOnly, error: error !== null && error !== void 0 ? error : undefined, name: props.name, invalid, autoComplete: "off", description, size: sizeProp ? sizeProp : undefined, prefix: props.prefix, suffix: props.suffix }), (props.readOnly ? {} : composedReferenceProps)), { role: "combobox", ariaAutocomplete: "list", ariaExpanded: open ? true : false, ariaControls: listboxId, ariaActiveDescendant: open && activeIndex != null
922
+ disabled, readOnly: props.readOnly, error: error !== null && error !== void 0 ? error : undefined, name: props.name, invalid, autoComplete: "off", description, size: sizeProp ? sizeProp : undefined, prefix: props.prefix, suffix: props.suffix }), (props.readOnly ? {} : composedReferenceProps)), { role: "combobox", "aria-autocomplete": "list", "aria-expanded": open ? true : false, "aria-controls": listboxId, "aria-activedescendant": open && activeIndex != null
911
923
  ? `${listboxId}-item-${activeIndex}`
912
924
  : undefined });
913
925
  const referenceInputRef = (node) => {
@@ -1,7 +1,6 @@
1
1
  import type { ReactElement, ReactNode } from "react";
2
2
  import type { XOR } from "ts-xor";
3
- import type { AriaInputProps, FocusEvents } from "../FormField/FormFieldTypes";
4
- export interface BaseCheckboxProps extends AriaInputProps, FocusEvents<HTMLInputElement> {
3
+ export interface BaseCheckboxProps {
5
4
  /**
6
5
  * Determines if the checkbox is checked or not.
7
6
  */
@@ -42,6 +41,14 @@ export interface BaseCheckboxProps extends AriaInputProps, FocusEvents<HTMLInput
42
41
  * Called when the checkbox value changes
43
42
  */
44
43
  onChange?(newValue: boolean): void;
44
+ /**
45
+ * Called when the checkbox is focused
46
+ */
47
+ onFocus?(event: React.FocusEvent<HTMLInputElement>): void;
48
+ /**
49
+ * Called when the checkbox loses focus
50
+ */
51
+ onBlur?(event: React.FocusEvent<HTMLInputElement>): void;
45
52
  /**
46
53
  * Whether the checkbox is invalid
47
54
  */
@@ -54,7 +54,7 @@ function CheckboxLegacy({ checked, defaultChecked, disabled, label, name, value,
54
54
  } }));
55
55
  }
56
56
 
57
- const CheckboxRebuilt = React.forwardRef(function CheckboxRebuiltInternal({ checked, defaultChecked, disabled, label, name, value, indeterminate = false, description, id, onBlur, onChange, onFocus, invalid, ariaLabel, ariaDescribedBy, ariaInvalid, ariaRequired, }, ref) {
57
+ const CheckboxRebuilt = React.forwardRef(function CheckboxRebuiltInternal({ checked, defaultChecked, disabled, label, name, value, indeterminate = false, description, id, onBlur, onChange, onFocus, invalid, }, ref) {
58
58
  const descriptionIdentifier = React.useId();
59
59
  const wrapperClassName = classnames(styles.wrapper, disabled && styles.disabled, invalid && styles.invalid);
60
60
  const inputClassName = classnames(styles.input, {
@@ -70,8 +70,7 @@ const CheckboxRebuilt = React.forwardRef(function CheckboxRebuiltInternal({ chec
70
70
  return (React.createElement("div", { className: styles.checkBoxParent },
71
71
  React.createElement("label", { className: wrapperClassName },
72
72
  React.createElement("span", { className: styles.checkHolder },
73
- React.createElement("input", { ref: ref, type: "checkbox", id: id, className: inputClassName, name: name, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy ||
74
- (description ? descriptionIdentifier : undefined), "aria-invalid": ariaInvalid, "aria-required": ariaRequired, checked: checked, value: value, defaultChecked: defaultChecked, disabled: disabled, onChange: handleChange, onFocus: onFocus, onBlur: onBlur }),
73
+ React.createElement("input", { ref: ref, type: "checkbox", id: id, className: inputClassName, name: name, "aria-describedby": description ? descriptionIdentifier : undefined, checked: checked, value: value, defaultChecked: defaultChecked, disabled: disabled, onChange: handleChange, onFocus: onFocus, onBlur: onBlur }),
75
74
  React.createElement("span", { className: styles.checkBox },
76
75
  React.createElement(Icon.Icon, { name: iconName, color: "surface" }))),
77
76
  labelContent && React.createElement("span", { className: styles.label }, labelContent)),
@@ -52,7 +52,7 @@ function CheckboxLegacy({ checked, defaultChecked, disabled, label, name, value,
52
52
  } }));
53
53
  }
54
54
 
55
- const CheckboxRebuilt = forwardRef(function CheckboxRebuiltInternal({ checked, defaultChecked, disabled, label, name, value, indeterminate = false, description, id, onBlur, onChange, onFocus, invalid, ariaLabel, ariaDescribedBy, ariaInvalid, ariaRequired, }, ref) {
55
+ const CheckboxRebuilt = forwardRef(function CheckboxRebuiltInternal({ checked, defaultChecked, disabled, label, name, value, indeterminate = false, description, id, onBlur, onChange, onFocus, invalid, }, ref) {
56
56
  const descriptionIdentifier = useId();
57
57
  const wrapperClassName = classnames(styles.wrapper, disabled && styles.disabled, invalid && styles.invalid);
58
58
  const inputClassName = classnames(styles.input, {
@@ -68,8 +68,7 @@ const CheckboxRebuilt = forwardRef(function CheckboxRebuiltInternal({ checked, d
68
68
  return (React__default.createElement("div", { className: styles.checkBoxParent },
69
69
  React__default.createElement("label", { className: wrapperClassName },
70
70
  React__default.createElement("span", { className: styles.checkHolder },
71
- React__default.createElement("input", { ref: ref, type: "checkbox", id: id, className: inputClassName, name: name, "aria-label": ariaLabel, "aria-describedby": ariaDescribedBy ||
72
- (description ? descriptionIdentifier : undefined), "aria-invalid": ariaInvalid, "aria-required": ariaRequired, checked: checked, value: value, defaultChecked: defaultChecked, disabled: disabled, onChange: handleChange, onFocus: onFocus, onBlur: onBlur }),
71
+ React__default.createElement("input", { ref: ref, type: "checkbox", id: id, className: inputClassName, name: name, "aria-describedby": description ? descriptionIdentifier : undefined, checked: checked, value: value, defaultChecked: defaultChecked, disabled: disabled, onChange: handleChange, onFocus: onFocus, onBlur: onBlur }),
73
72
  React__default.createElement("span", { className: styles.checkBox },
74
73
  React__default.createElement(Icon, { name: iconName, color: "surface" }))),
75
74
  labelContent && React__default.createElement("span", { className: styles.label }, labelContent)),
@@ -4,12 +4,12 @@ var useScrollToActive = require('../../../useScrollToActive-cjs.js');
4
4
  require('react');
5
5
  require('../../../_commonjsHelpers-cjs.js');
6
6
  require('../../../_baseFlatten-cjs.js');
7
- require('../../../_getAllKeys-cjs.js');
7
+ require('../../../_baseGet-cjs.js');
8
8
  require('../../../isTypedArray-cjs.js');
9
9
  require('../../../isObjectLike-cjs.js');
10
- require('../../../isSymbol-cjs.js');
11
10
  require('../../../identity-cjs.js');
12
11
  require('../../../_getTag-cjs.js');
12
+ require('../../../isSymbol-cjs.js');
13
13
  require('../../../_baseEach-cjs.js');
14
14
  require('../../../_baseFor-cjs.js');
15
15
  require('../../../_isIterateeCall-cjs.js');
@@ -2,12 +2,12 @@ export { b as useInView, u as useInternalChipDismissible, a as useInternalChipDi
2
2
  import 'react';
3
3
  import '../../../_commonjsHelpers-es.js';
4
4
  import '../../../_baseFlatten-es.js';
5
- import '../../../_getAllKeys-es.js';
5
+ import '../../../_baseGet-es.js';
6
6
  import '../../../isTypedArray-es.js';
7
7
  import '../../../isObjectLike-es.js';
8
- import '../../../isSymbol-es.js';
9
8
  import '../../../identity-es.js';
10
9
  import '../../../_getTag-es.js';
10
+ import '../../../isSymbol-es.js';
11
11
  import '../../../_baseEach-es.js';
12
12
  import '../../../_baseFor-es.js';
13
13
  import '../../../_isIterateeCall-es.js';
@@ -5,12 +5,12 @@ require('react');
5
5
  require('../../useScrollToActive-cjs.js');
6
6
  require('../../_commonjsHelpers-cjs.js');
7
7
  require('../../_baseFlatten-cjs.js');
8
- require('../../_getAllKeys-cjs.js');
8
+ require('../../_baseGet-cjs.js');
9
9
  require('../../isTypedArray-cjs.js');
10
10
  require('../../isObjectLike-cjs.js');
11
- require('../../isSymbol-cjs.js');
12
11
  require('../../identity-cjs.js');
13
12
  require('../../_getTag-cjs.js');
13
+ require('../../isSymbol-cjs.js');
14
14
  require('../../_baseEach-cjs.js');
15
15
  require('../../_baseFor-cjs.js');
16
16
  require('../../_isIterateeCall-cjs.js');
@@ -3,12 +3,12 @@ import 'react';
3
3
  import '../../useScrollToActive-es.js';
4
4
  import '../../_commonjsHelpers-es.js';
5
5
  import '../../_baseFlatten-es.js';
6
- import '../../_getAllKeys-es.js';
6
+ import '../../_baseGet-es.js';
7
7
  import '../../isTypedArray-es.js';
8
8
  import '../../isObjectLike-es.js';
9
- import '../../isSymbol-es.js';
10
9
  import '../../identity-es.js';
11
10
  import '../../_getTag-es.js';
11
+ import '../../isSymbol-es.js';
12
12
  import '../../_baseEach-es.js';
13
13
  import '../../_baseFor-es.js';
14
14
  import '../../_isIterateeCall-es.js';
@@ -7,12 +7,12 @@ var Chips = require('../Chips-cjs.js');
7
7
  require('../useScrollToActive-cjs.js');
8
8
  require('../_commonjsHelpers-cjs.js');
9
9
  require('../_baseFlatten-cjs.js');
10
- require('../_getAllKeys-cjs.js');
10
+ require('../_baseGet-cjs.js');
11
11
  require('../isTypedArray-cjs.js');
12
12
  require('../isObjectLike-cjs.js');
13
- require('../isSymbol-cjs.js');
14
13
  require('../identity-cjs.js');
15
14
  require('../_getTag-cjs.js');
15
+ require('../isSymbol-cjs.js');
16
16
  require('../_baseEach-cjs.js');
17
17
  require('../_baseFor-cjs.js');
18
18
  require('../_isIterateeCall-cjs.js');
@@ -5,12 +5,12 @@ export { C as Chips } from '../Chips-es.js';
5
5
  import '../useScrollToActive-es.js';
6
6
  import '../_commonjsHelpers-es.js';
7
7
  import '../_baseFlatten-es.js';
8
- import '../_getAllKeys-es.js';
8
+ import '../_baseGet-es.js';
9
9
  import '../isTypedArray-es.js';
10
10
  import '../isObjectLike-es.js';
11
- import '../isSymbol-es.js';
12
11
  import '../identity-es.js';
13
12
  import '../_getTag-es.js';
13
+ import '../isSymbol-es.js';
14
14
  import '../_baseEach-es.js';
15
15
  import '../_baseFor-es.js';
16
16
  import '../_isIterateeCall-es.js';
@@ -18,9 +18,20 @@ require('../../../useFormFieldFocus-cjs.js');
18
18
  require('../../../InputValidation-cjs.js');
19
19
  require('../../../Spinner-cjs.js');
20
20
  require('react-hook-form');
21
+ require('../../../omit-cjs.js');
22
+ require('../../../_commonjsHelpers-cjs.js');
23
+ require('../../../_baseGet-cjs.js');
24
+ require('../../../isTypedArray-cjs.js');
25
+ require('../../../isObjectLike-cjs.js');
26
+ require('../../../identity-cjs.js');
27
+ require('../../../_getTag-cjs.js');
28
+ require('../../../isSymbol-cjs.js');
29
+ require('../../../keysIn-cjs.js');
30
+ require('../../../_baseAssignValue-cjs.js');
31
+ require('../../../_baseFlatten-cjs.js');
32
+ require('../../../_setToString-cjs.js');
21
33
  require('../../../DataListContext-cjs.js');
22
34
  require('../../../noop-cjs.js');
23
- require('../../../_commonjsHelpers-cjs.js');
24
35
  require('../../../DataList.const-cjs.js');
25
36
  require('../../../AnimatedSwitcher-cjs.js');
26
37
 
@@ -16,8 +16,19 @@ import '../../../useFormFieldFocus-es.js';
16
16
  import '../../../InputValidation-es.js';
17
17
  import '../../../Spinner-es.js';
18
18
  import 'react-hook-form';
19
+ import '../../../omit-es.js';
20
+ import '../../../_commonjsHelpers-es.js';
21
+ import '../../../_baseGet-es.js';
22
+ import '../../../isTypedArray-es.js';
23
+ import '../../../isObjectLike-es.js';
24
+ import '../../../identity-es.js';
25
+ import '../../../_getTag-es.js';
26
+ import '../../../isSymbol-es.js';
27
+ import '../../../keysIn-es.js';
28
+ import '../../../_baseAssignValue-es.js';
29
+ import '../../../_baseFlatten-es.js';
30
+ import '../../../_setToString-es.js';
19
31
  import '../../../DataListContext-es.js';
20
32
  import '../../../noop-es.js';
21
- import '../../../_commonjsHelpers-es.js';
22
33
  import '../../../DataList.const-es.js';
23
34
  import '../../../AnimatedSwitcher-es.js';
@@ -81,6 +81,14 @@ require('../InputText/index.cjs');
81
81
  require('../FormField-cjs.js');
82
82
  require('../useFormFieldFocus-cjs.js');
83
83
  require('../InputValidation-cjs.js');
84
+ require('../omit-cjs.js');
85
+ require('../_baseGet-cjs.js');
86
+ require('../identity-cjs.js');
87
+ require('../isSymbol-cjs.js');
88
+ require('../keysIn-cjs.js');
89
+ require('../_baseAssignValue-cjs.js');
90
+ require('../_baseFlatten-cjs.js');
91
+ require('../_setToString-cjs.js');
84
92
  require('../DataListEmptyState-cjs.js');
85
93
  require('../DataListLoadMore-cjs.js');
86
94
  require('../DataListAction-cjs.js');
@@ -79,6 +79,14 @@ import '../InputText/index.mjs';
79
79
  import '../FormField-es.js';
80
80
  import '../useFormFieldFocus-es.js';
81
81
  import '../InputValidation-es.js';
82
+ import '../omit-es.js';
83
+ import '../_baseGet-es.js';
84
+ import '../identity-es.js';
85
+ import '../isSymbol-es.js';
86
+ import '../keysIn-es.js';
87
+ import '../_baseAssignValue-es.js';
88
+ import '../_baseFlatten-es.js';
89
+ import '../_setToString-es.js';
82
90
  import '../DataListEmptyState-es.js';
83
91
  import '../DataListLoadMore-es.js';
84
92
  import '../DataListAction-es.js';
@@ -13,12 +13,12 @@ require('../Content-cjs.js');
13
13
  require('../Select/index.cjs');
14
14
  require('../omit-cjs.js');
15
15
  require('../_commonjsHelpers-cjs.js');
16
- require('../_getAllKeys-cjs.js');
16
+ require('../_baseGet-cjs.js');
17
17
  require('../isTypedArray-cjs.js');
18
18
  require('../isObjectLike-cjs.js');
19
- require('../isSymbol-cjs.js');
20
19
  require('../identity-cjs.js');
21
20
  require('../_getTag-cjs.js');
21
+ require('../isSymbol-cjs.js');
22
22
  require('../keysIn-cjs.js');
23
23
  require('../_baseAssignValue-cjs.js');
24
24
  require('../_baseFlatten-cjs.js');
@@ -11,12 +11,12 @@ import '../Content-es.js';
11
11
  import '../Select/index.mjs';
12
12
  import '../omit-es.js';
13
13
  import '../_commonjsHelpers-es.js';
14
- import '../_getAllKeys-es.js';
14
+ import '../_baseGet-es.js';
15
15
  import '../isTypedArray-es.js';
16
16
  import '../isObjectLike-es.js';
17
- import '../isSymbol-es.js';
18
17
  import '../identity-es.js';
19
18
  import '../_getTag-es.js';
19
+ import '../isSymbol-es.js';
20
20
  import '../keysIn-es.js';
21
21
  import '../_baseAssignValue-es.js';
22
22
  import '../_baseFlatten-es.js';
@@ -16,12 +16,12 @@ require('../Icon-cjs.js');
16
16
  require('@jobber/design');
17
17
  require('../omit-cjs.js');
18
18
  require('../_commonjsHelpers-cjs.js');
19
- require('../_getAllKeys-cjs.js');
19
+ require('../_baseGet-cjs.js');
20
20
  require('../isTypedArray-cjs.js');
21
21
  require('../isObjectLike-cjs.js');
22
- require('../isSymbol-cjs.js');
23
22
  require('../identity-cjs.js');
24
23
  require('../_getTag-cjs.js');
24
+ require('../isSymbol-cjs.js');
25
25
  require('../keysIn-cjs.js');
26
26
  require('../_baseAssignValue-cjs.js');
27
27
  require('../_baseFlatten-cjs.js');
@@ -14,12 +14,12 @@ import '../Icon-es.js';
14
14
  import '@jobber/design';
15
15
  import '../omit-es.js';
16
16
  import '../_commonjsHelpers-es.js';
17
- import '../_getAllKeys-es.js';
17
+ import '../_baseGet-es.js';
18
18
  import '../isTypedArray-es.js';
19
19
  import '../isObjectLike-es.js';
20
- import '../isSymbol-es.js';
21
20
  import '../identity-es.js';
22
21
  import '../_getTag-es.js';
22
+ import '../isSymbol-es.js';
23
23
  import '../keysIn-es.js';
24
24
  import '../_baseAssignValue-es.js';
25
25
  import '../_baseFlatten-es.js';
@@ -1,4 +1,4 @@
1
- import type { AriaAttributes, ChangeEvent, ReactNode, RefObject } from "react";
1
+ import type { ChangeEvent, ReactNode, RefObject } from "react";
2
2
  import type React from "react";
3
3
  import type { RegisterOptions } from "react-hook-form";
4
4
  import type { XOR } from "ts-xor";
@@ -7,222 +7,6 @@ import type { IconNames } from "../Icon";
7
7
  export type FormFieldTypes = "text" | "password" | "number" | "time" | "textarea" | "select" | "tel" | "email";
8
8
  export type KeyBoardTypes = "text" | "none" | "tel" | "url" | "email" | "numeric" | "decimal";
9
9
  export type AutocompleteTypes = "one-time-code" | "address-line1" | "address-line2";
10
- /**
11
- * Core ARIA attributes for input elements.
12
- * Uses camelCase naming for consistency with React props pattern.
13
- * Based on React's canonical ARIA type definitions.
14
- */
15
- export interface AriaInputProps {
16
- /**
17
- * Defines a string value that labels the current element.
18
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-label}
19
- */
20
- readonly ariaLabel?: AriaAttributes["aria-label"];
21
- /**
22
- * Identifies the element (or elements) that labels the current element.
23
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-labelledby}
24
- */
25
- readonly ariaLabelledBy?: AriaAttributes["aria-labelledby"];
26
- /**
27
- * Identifies the element (or elements) that describes the object.
28
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-describedby}
29
- */
30
- readonly ariaDescribedBy?: AriaAttributes["aria-describedby"];
31
- /**
32
- * Identifies the element (or elements) that provide a detailed, extended description.
33
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-details}
34
- */
35
- readonly ariaDetails?: AriaAttributes["aria-details"];
36
- /**
37
- * ID of the currently active descendant element.
38
- * Used for composite widgets like combobox or listbox.
39
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-activedescendant}
40
- */
41
- readonly ariaActiveDescendant?: AriaAttributes["aria-activedescendant"];
42
- /**
43
- * Indicates the entered value does not conform to the format expected.
44
- * Supports boolean or specific error types: "grammar" | "spelling".
45
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-invalid}
46
- */
47
- readonly ariaInvalid?: AriaAttributes["aria-invalid"];
48
- /**
49
- * Indicates the element that controls the current element.
50
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-controls}
51
- */
52
- readonly ariaControls?: AriaAttributes["aria-controls"];
53
- /**
54
- * Indicates whether the element is expanded or collapsed.
55
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-expanded}
56
- */
57
- readonly ariaExpanded?: AriaAttributes["aria-expanded"];
58
- /**
59
- * Indicates the type of autocomplete interaction.
60
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-autocomplete}
61
- */
62
- readonly ariaAutocomplete?: AriaAttributes["aria-autocomplete"];
63
- /**
64
- * Indicates that user input is required before form submission.
65
- * @see {@link https://www.w3.org/TR/wai-aria-1.2/#aria-required}
66
- */
67
- readonly ariaRequired?: AriaAttributes["aria-required"];
68
- }
69
- /**
70
- * Focus event handlers for input elements.
71
- * Generic interface that can be specialized for different element types.
72
- */
73
- export interface FocusEvents<Target = HTMLElement> {
74
- /**
75
- * Focus event handler.
76
- */
77
- readonly onFocus?: (event: React.FocusEvent<Target>) => void;
78
- /**
79
- * Blur event handler.
80
- */
81
- readonly onBlur?: (event: React.FocusEvent<Target>) => void;
82
- }
83
- /**
84
- * Keyboard event handlers for input elements.
85
- * Generic interface that can be specialized for different element types.
86
- */
87
- export interface KeyboardEvents<Target = HTMLElement> {
88
- /**
89
- * Key down event handler.
90
- */
91
- readonly onKeyDown?: (event: React.KeyboardEvent<Target>) => void;
92
- /**
93
- * Key up event handler.
94
- */
95
- readonly onKeyUp?: (event: React.KeyboardEvent<Target>) => void;
96
- }
97
- /**
98
- * Curated set of HTML input attributes for rebuilt input components.
99
- * This provides a whitelist of standard HTML/React props we want to support,
100
- * avoiding the issues of extending React.InputHTMLAttributes directly.
101
- * Note: Event handlers and ARIA attributes are separate - use FocusEvents, KeyboardEvents, and AriaInputProps.
102
- */
103
- export interface HTMLInputBaseProps extends AriaInputProps {
104
- /**
105
- * The unique identifier for the input element.
106
- */
107
- readonly id?: string;
108
- /**
109
- * The name attribute for the input element.
110
- */
111
- readonly name?: string;
112
- /**
113
- * Placeholder text that appears when the input is empty.
114
- */
115
- readonly placeholder?: string;
116
- /**
117
- * Whether the input is disabled.
118
- */
119
- readonly disabled?: boolean;
120
- /**
121
- * Whether the input is required.
122
- */
123
- readonly required?: boolean;
124
- /**
125
- * Whether the input is read-only (HTML standard casing).
126
- */
127
- readonly readOnly?: boolean;
128
- /**
129
- * Whether the input should be auto-focused (React casing).
130
- */
131
- readonly autoFocus?: boolean;
132
- /**
133
- * Autocomplete behavior for the input (React casing, string values only).
134
- * Use standard HTML autocomplete values or "on"/"off".
135
- */
136
- readonly autoComplete?: string;
137
- /**
138
- * Maximum character length for the input (HTML validation only).
139
- * Note: In v2, this does NOT affect the visual width of the component.
140
- * Use CSS or the size prop for width control.
141
- */
142
- readonly maxLength?: number;
143
- /**
144
- * Minimum character length for the input.
145
- */
146
- readonly minLength?: number;
147
- /**
148
- * Maximum numerical value (for number inputs).
149
- */
150
- readonly max?: number | string;
151
- /**
152
- * Minimum numerical value (for number inputs).
153
- */
154
- readonly min?: number | string;
155
- /**
156
- * Validation pattern (regex) for the input.
157
- */
158
- readonly pattern?: string;
159
- /**
160
- * Input mode hint for virtual keyboards.
161
- */
162
- readonly inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search";
163
- /**
164
- * Role attribute for accessibility.
165
- */
166
- readonly role?: string;
167
- /**
168
- * Tab index for keyboard navigation.
169
- */
170
- readonly tabIndex?: number;
171
- }
172
- /**
173
- * Common props shared across all rebuilt input components.
174
- * These are Atlantis-specific features not part of standard HTML inputs.
175
- */
176
- export interface RebuiltInputCommonProps {
177
- /**
178
- * Error message to display. This also highlights the field red.
179
- */
180
- readonly error?: string;
181
- /**
182
- * Highlights the field red to indicate an error.
183
- */
184
- readonly invalid?: boolean;
185
- /**
186
- * Show a spinner to indicate loading.
187
- */
188
- readonly loading?: boolean;
189
- /**
190
- * Add a clear action on the input that clears the value.
191
- */
192
- readonly clearable?: Clearable;
193
- /**
194
- * Adjusts the interface to either have small or large spacing.
195
- */
196
- readonly size?: "small" | "large";
197
- /**
198
- * Adjusts the form field to go inline with content.
199
- */
200
- readonly inline?: boolean;
201
- /**
202
- * Determines the alignment of the text inside the input.
203
- */
204
- readonly align?: "center" | "right";
205
- /**
206
- * Adds a prefix label and icon to the field.
207
- */
208
- readonly prefix?: Affix;
209
- /**
210
- * Adds a suffix label and icon with an optional action to the field.
211
- */
212
- readonly suffix?: XOR<Affix, Suffix>;
213
- /**
214
- * Further description of the input, can be used for a hint.
215
- */
216
- readonly description?: ReactNode;
217
- /**
218
- * Children elements to render inside the component.
219
- */
220
- readonly children?: ReactNode;
221
- /**
222
- * Version 2 is highly experimental. Avoid using it unless you have talked with Atlantis first.
223
- */
224
- readonly version: 2;
225
- }
226
10
  export interface FieldActionsRef {
227
11
  setValue(value: string | number): void;
228
12
  }
@@ -383,6 +383,7 @@ function FormField(props) {
383
383
  return React.createElement(FormFieldInternal, Object.assign({}, props, { id: id }));
384
384
  }
385
385
  function FormFieldInternal(props) {
386
+ var _a;
386
387
  const { actionsRef, autocomplete = true, children, defaultValue, description, disabled, id, inputRef, inline, keyboard, max, maxLength, min, name: nameProp, pattern, readonly, rows, loading, type = "text", validations, value, onChange, onEnter, onFocus, onBlur, onValidation, onKeyUp, clearable = "never", autofocus, } = props;
387
388
  const { name } = useAtlantisFormFieldName({ id, nameProp });
388
389
  const { errorMessage, inputRefs, useControllerField, setValue, onControllerBlur, onControllerChange, } = useAtlantisReactHookForm({
@@ -429,7 +430,10 @@ function FormFieldInternal(props) {
429
430
  handleValidation,
430
431
  handleKeyDown,
431
432
  });
432
- return (React.createElement(FormFieldWrapper, Object.assign({}, props, { value: useControllerField.value, error: errorMessage, identifier: id, descriptionIdentifier: descriptionIdentifier, clearable: clearable, onClear: handleClear }), renderField()));
433
+ // Ensure focus tracking works by providing a wrapperRef when none is passed
434
+ const internalWrapperRef = React.useRef(null);
435
+ const wrapperRef = (_a = props.wrapperRef) !== null && _a !== void 0 ? _a : internalWrapperRef;
436
+ return (React.createElement(FormFieldWrapper, Object.assign({}, props, { value: useControllerField.value, error: errorMessage, identifier: id, descriptionIdentifier: descriptionIdentifier, clearable: clearable, onClear: handleClear, wrapperRef: wrapperRef }), renderField()));
433
437
  function renderField() {
434
438
  switch (type) {
435
439
  case "select":
@@ -467,6 +471,7 @@ exports.FormFieldWrapper = FormFieldWrapper;
467
471
  exports.FormFieldWrapperMain = FormFieldWrapperMain;
468
472
  exports.FormFieldWrapperToolbar = FormFieldWrapperToolbar;
469
473
  exports.mergeRefs = mergeRefs;
474
+ exports.styles = styles$1;
470
475
  exports.useAtlantisFormField = useAtlantisFormField;
471
476
  exports.useAtlantisFormFieldActions = useAtlantisFormFieldActions;
472
477
  exports.useAtlantisFormFieldName = useAtlantisFormFieldName;