@bspk/ui 1.3.20 → 1.3.22
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/components/Accordion/Accordion.js +1 -1
- package/dist/components/Accordion/Accordion.js.map +1 -1
- package/dist/components/Accordion/accordion.css +19 -12
- package/dist/components/Accordion/accordion.css.js +19 -12
- package/dist/components/BottomNavigation/BottomNavigation.d.ts +0 -1
- package/dist/components/BottomNavigation/BottomNavigation.js +0 -1
- package/dist/components/BottomNavigation/BottomNavigation.js.map +1 -1
- package/dist/components/BottomNavigation/bottom-navigation.css +1 -0
- package/dist/components/BottomNavigation/bottom-navigation.css.js +1 -0
- package/dist/components/Button/button.css +4 -0
- package/dist/components/Button/button.css.js +4 -0
- package/dist/components/Checkbox/Checkbox.js +3 -3
- package/dist/components/Checkbox/Checkbox.js.map +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +4 -5
- package/dist/components/CheckboxGroup/CheckboxGroup.js +8 -13
- package/dist/components/CheckboxGroup/CheckboxGroup.js.map +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroupExample.js +5 -0
- package/dist/components/CheckboxGroup/CheckboxGroupExample.js.map +1 -1
- package/dist/components/CheckboxGroup/checkbox-group.css +2 -0
- package/dist/components/CheckboxGroup/checkbox-group.css.js +2 -0
- package/dist/components/CheckboxGroupField/CheckboxGroupField.d.ts +3 -3
- package/dist/components/CheckboxGroupField/CheckboxGroupField.js +6 -4
- package/dist/components/CheckboxGroupField/CheckboxGroupField.js.map +1 -1
- package/dist/components/ChipGroup/ChipGroup.d.ts +0 -1
- package/dist/components/ChipGroup/ChipGroup.js +0 -1
- package/dist/components/ChipGroup/ChipGroup.js.map +1 -1
- package/dist/components/ChipGroup/chip-group.css +3 -0
- package/dist/components/ChipGroup/chip-group.css.js +3 -0
- package/dist/components/DatePicker/DatePicker.d.ts +4 -8
- package/dist/components/DatePicker/DatePicker.js +6 -18
- package/dist/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/components/DatePicker/DatePickerExample.js +3 -3
- package/dist/components/DatePicker/DatePickerExample.js.map +1 -1
- package/dist/components/DatePickerField/DatePickerField.d.ts +4 -4
- package/dist/components/DatePickerField/DatePickerField.js +6 -4
- package/dist/components/DatePickerField/DatePickerField.js.map +1 -1
- package/dist/components/Dialog/Dialog.d.ts +2 -3
- package/dist/components/Dialog/Dialog.js +2 -3
- package/dist/components/Dialog/Dialog.js.map +1 -1
- package/dist/components/Fab/Fab.d.ts +8 -5
- package/dist/components/Fab/Fab.js +8 -5
- package/dist/components/Fab/Fab.js.map +1 -1
- package/dist/components/Fab/fab.css +1 -0
- package/dist/components/Fab/fab.css.js +1 -0
- package/dist/components/Field/Field.d.ts +32 -18
- package/dist/components/Field/Field.js +8 -38
- package/dist/components/Field/Field.js.map +1 -1
- package/dist/components/Field/FieldExample.d.ts +1 -0
- package/dist/components/Field/FieldExample.js +10 -3
- package/dist/components/Field/FieldExample.js.map +1 -1
- package/dist/components/Field/Fieldset.d.ts +40 -0
- package/dist/components/Field/Fieldset.js +44 -0
- package/dist/components/Field/Fieldset.js.map +1 -0
- package/dist/components/Field/field.css +5 -7
- package/dist/components/Field/field.css.js +5 -7
- package/dist/components/Field/index.d.ts +1 -3
- package/dist/components/Field/index.js +1 -3
- package/dist/components/Field/index.js.map +1 -1
- package/dist/components/Field/utils.d.ts +8 -38
- package/dist/components/Field/utils.js +6 -33
- package/dist/components/Field/utils.js.map +1 -1
- package/dist/components/FileUpload/FileUpload.js +1 -1
- package/dist/components/FileUpload/FileUpload.js.map +1 -1
- package/dist/components/FileUploadItem/FileUploadItem.js +1 -1
- package/dist/components/FileUploadItem/FileUploadItem.js.map +1 -1
- package/dist/components/Flex/Flex.d.ts +11 -7
- package/dist/components/Flex/Flex.js +12 -8
- package/dist/components/Flex/Flex.js.map +1 -1
- package/dist/components/InlineAlert/InlineAlert.d.ts +2 -2
- package/dist/components/InlineAlert/InlineAlert.js +2 -2
- package/dist/components/InlineAlert/InlineAlert.js.map +1 -1
- package/dist/components/Input/Input.d.ts +60 -15
- package/dist/components/Input/Input.js +42 -25
- package/dist/components/Input/Input.js.map +1 -1
- package/dist/components/Input/InputExample.js +4 -4
- package/dist/components/Input/InputExample.js.map +1 -1
- package/dist/components/Input/index.d.ts +0 -1
- package/dist/components/Input/index.js +0 -1
- package/dist/components/Input/index.js.map +1 -1
- package/dist/components/InputField/InputField.d.ts +4 -4
- package/dist/components/InputField/InputField.js +6 -4
- package/dist/components/InputField/InputField.js.map +1 -1
- package/dist/components/InputNumber/InputNumber.d.ts +8 -7
- package/dist/components/InputNumber/InputNumber.js +9 -16
- package/dist/components/InputNumber/InputNumber.js.map +1 -1
- package/dist/components/InputNumber/InputNumberExample.js +3 -3
- package/dist/components/InputNumber/InputNumberExample.js.map +1 -1
- package/dist/components/InputNumber/input-number.css +1 -0
- package/dist/components/InputNumber/input-number.css.js +1 -0
- package/dist/components/InputNumberField/InputNumberField.d.ts +4 -4
- package/dist/components/InputNumberField/InputNumberField.js +6 -4
- package/dist/components/InputNumberField/InputNumberField.js.map +1 -1
- package/dist/components/InputPhone/InputPhone.d.ts +8 -8
- package/dist/components/InputPhone/InputPhone.js +12 -18
- package/dist/components/InputPhone/InputPhone.js.map +1 -1
- package/dist/components/InputPhone/InputPhoneExample.js +3 -3
- package/dist/components/InputPhone/InputPhoneExample.js.map +1 -1
- package/dist/components/InputPhone/input-phone.css +1 -0
- package/dist/components/InputPhone/input-phone.css.js +1 -0
- package/dist/components/InputPhoneField/InputPhoneField.d.ts +4 -4
- package/dist/components/InputPhoneField/InputPhoneField.js +6 -4
- package/dist/components/InputPhoneField/InputPhoneField.js.map +1 -1
- package/dist/components/ListItem/list-item.css +1 -0
- package/dist/components/ListItem/list-item.css.js +1 -0
- package/dist/components/Modal/Modal.js +22 -26
- package/dist/components/Modal/Modal.js.map +1 -1
- package/dist/components/Modal/ModalExample.js +4 -1
- package/dist/components/Modal/ModalExample.js.map +1 -1
- package/dist/components/Modal/modal.css +4 -2
- package/dist/components/Modal/modal.css.js +4 -2
- package/dist/components/OTPInput/otp-input.css +1 -0
- package/dist/components/OTPInput/otp-input.css.js +1 -0
- package/dist/components/Pagination/Pagination.js +2 -2
- package/dist/components/Pagination/Pagination.js.map +1 -1
- package/dist/components/Password/Password.d.ts +9 -7
- package/dist/components/Password/Password.js +13 -17
- package/dist/components/Password/Password.js.map +1 -1
- package/dist/components/Password/PasswordExample.js +3 -3
- package/dist/components/Password/PasswordExample.js.map +1 -1
- package/dist/components/PasswordField/PasswordField.d.ts +4 -4
- package/dist/components/PasswordField/PasswordField.js +6 -4
- package/dist/components/PasswordField/PasswordField.js.map +1 -1
- package/dist/components/Popover/Popover.d.ts +0 -1
- package/dist/components/Popover/Popover.js +0 -1
- package/dist/components/Popover/Popover.js.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts +1 -2
- package/dist/components/RadioGroup/RadioGroup.js +5 -11
- package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
- package/dist/components/RadioGroupField/RadioGroupField.d.ts +3 -3
- package/dist/components/RadioGroupField/RadioGroupField.js +6 -4
- package/dist/components/RadioGroupField/RadioGroupField.js.map +1 -1
- package/dist/components/SearchBar/SearchBar.d.ts +0 -1
- package/dist/components/SearchBar/SearchBar.js +0 -1
- package/dist/components/SearchBar/SearchBar.js.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.d.ts +0 -1
- package/dist/components/SegmentedControl/SegmentedControl.js +0 -1
- package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/components/Select/Select.d.ts +7 -6
- package/dist/components/Select/Select.js +10 -15
- package/dist/components/Select/Select.js.map +1 -1
- package/dist/components/Select/SelectExample.js +3 -3
- package/dist/components/Select/SelectExample.js.map +1 -1
- package/dist/components/SelectField/SelectField.d.ts +4 -4
- package/dist/components/SelectField/SelectField.js +6 -4
- package/dist/components/SelectField/SelectField.js.map +1 -1
- package/dist/components/Slider/Slider.d.ts +1 -2
- package/dist/components/Slider/Slider.js +1 -2
- package/dist/components/Slider/Slider.js.map +1 -1
- package/dist/components/Snackbar/Snackbar.d.ts +0 -1
- package/dist/components/Snackbar/Snackbar.js +0 -1
- package/dist/components/Snackbar/Snackbar.js.map +1 -1
- package/dist/components/Switch/Switch.d.ts +0 -1
- package/dist/components/Switch/Switch.js +0 -1
- package/dist/components/Switch/Switch.js.map +1 -1
- package/dist/components/TabGroup/TabGroup.d.ts +0 -1
- package/dist/components/TabGroup/TabGroup.js +0 -1
- package/dist/components/TabGroup/TabGroup.js.map +1 -1
- package/dist/components/TabList/TabList.d.ts +0 -1
- package/dist/components/TabList/TabList.js +0 -1
- package/dist/components/TabList/TabList.js.map +1 -1
- package/dist/components/TabList/tab-list.css +1 -0
- package/dist/components/TabList/tab-list.css.js +1 -0
- package/dist/components/Table/table.css +2 -1
- package/dist/components/Table/table.css.js +2 -1
- package/dist/components/Textarea/Textarea.d.ts +4 -7
- package/dist/components/Textarea/Textarea.js +5 -16
- package/dist/components/Textarea/Textarea.js.map +1 -1
- package/dist/components/Textarea/TextareaExample.js +3 -3
- package/dist/components/Textarea/TextareaExample.js.map +1 -1
- package/dist/components/TextareaField/TextareaField.d.ts +4 -4
- package/dist/components/TextareaField/TextareaField.js +6 -4
- package/dist/components/TextareaField/TextareaField.js.map +1 -1
- package/dist/components/TimePicker/TimePicker.d.ts +8 -6
- package/dist/components/TimePicker/TimePicker.js +10 -14
- package/dist/components/TimePicker/TimePicker.js.map +1 -1
- package/dist/components/TimePicker/TimePickerExample.js +3 -3
- package/dist/components/TimePicker/TimePickerExample.js.map +1 -1
- package/dist/components/TimePickerField/TimePickerField.d.ts +4 -4
- package/dist/components/TimePickerField/TimePickerField.js +6 -4
- package/dist/components/TimePickerField/TimePickerField.js.map +1 -1
- package/dist/types/common.d.ts +2 -0
- package/dist/types/common.js.map +1 -1
- package/dist/utils/demo.js +1 -1
- package/dist/utils/demo.js.map +1 -1
- package/package.json +3 -4
- package/src/components/Accordion/Accordion.tsx +2 -2
- package/src/components/Accordion/accordion.scss +10 -1
- package/src/components/BottomNavigation/BottomNavigation.tsx +0 -1
- package/src/components/BottomNavigation/bottom-navigation.scss +1 -0
- package/src/components/Button/button.scss +4 -0
- package/src/components/Checkbox/Checkbox.tsx +3 -3
- package/src/components/CheckboxGroup/CheckboxGroup.tsx +37 -52
- package/src/components/CheckboxGroup/CheckboxGroupExample.tsx +6 -0
- package/src/components/CheckboxGroup/checkbox-group.scss +2 -0
- package/src/components/CheckboxGroupField/CheckboxGroupField.tsx +15 -11
- package/src/components/ChipGroup/ChipGroup.tsx +0 -1
- package/src/components/ChipGroup/chip-group.scss +4 -0
- package/src/components/DatePicker/DatePicker.tsx +9 -20
- package/src/components/DatePicker/DatePickerExample.tsx +3 -5
- package/src/components/DatePickerField/DatePickerField.rtl.test.tsx +1 -1
- package/src/components/DatePickerField/DatePickerField.tsx +10 -6
- package/src/components/Dialog/Dialog.tsx +2 -3
- package/src/components/Fab/Fab.tsx +8 -5
- package/src/components/Fab/fab.scss +1 -0
- package/src/components/Field/Field.rtl.test.tsx +8 -6
- package/src/components/Field/Field.tsx +64 -61
- package/src/components/Field/FieldExample.tsx +27 -5
- package/src/components/Field/Fieldset.tsx +78 -0
- package/src/components/Field/field.scss +23 -27
- package/src/components/Field/index.tsx +1 -3
- package/src/components/Field/utils.ts +15 -77
- package/src/components/FileUpload/FileUpload.tsx +1 -1
- package/src/components/FileUploadItem/FileUploadItem.tsx +1 -1
- package/src/components/Flex/Flex.tsx +12 -7
- package/src/components/InlineAlert/InlineAlert.rtl.test.tsx +1 -1
- package/src/components/InlineAlert/InlineAlert.tsx +3 -3
- package/src/components/Input/Input.tsx +140 -48
- package/src/components/Input/InputExample.tsx +4 -6
- package/src/components/Input/index.tsx +0 -1
- package/src/components/InputField/InputField.tsx +10 -6
- package/src/components/InputNumber/InputNumber.tsx +11 -16
- package/src/components/InputNumber/InputNumberExample.tsx +7 -4
- package/src/components/InputNumber/input-number.scss +1 -0
- package/src/components/InputNumberField/InputNumberField.tsx +10 -6
- package/src/components/InputPhone/InputPhone.tsx +14 -18
- package/src/components/InputPhone/InputPhoneExample.tsx +7 -6
- package/src/components/InputPhone/input-phone.scss +1 -0
- package/src/components/InputPhoneField/InputPhoneField.tsx +10 -6
- package/src/components/ListItem/list-item.scss +1 -0
- package/src/components/Modal/Modal.tsx +26 -30
- package/src/components/Modal/ModalExample.tsx +7 -2
- package/src/components/Modal/modal.scss +1 -1
- package/src/components/OTPInput/otp-input.scss +1 -0
- package/src/components/Pagination/Pagination.tsx +2 -2
- package/src/components/Password/Password.tsx +15 -17
- package/src/components/Password/PasswordExample.tsx +13 -5
- package/src/components/PasswordField/PasswordField.tsx +10 -6
- package/src/components/Popover/Popover.tsx +0 -1
- package/src/components/RadioGroup/RadioGroup.tsx +14 -20
- package/src/components/RadioGroupField/RadioGroupField.tsx +16 -11
- package/src/components/SearchBar/SearchBar.tsx +0 -1
- package/src/components/SegmentedControl/SegmentedControl.tsx +0 -1
- package/src/components/Select/Select.tsx +13 -14
- package/src/components/Select/SelectExample.tsx +7 -4
- package/src/components/SelectField/SelectField.rtl.test.tsx +7 -18
- package/src/components/SelectField/SelectField.tsx +10 -6
- package/src/components/Slider/Slider.tsx +1 -2
- package/src/components/Snackbar/Snackbar.tsx +0 -1
- package/src/components/Switch/Switch.tsx +0 -1
- package/src/components/TabGroup/TabGroup.tsx +0 -1
- package/src/components/TabList/TabList.tsx +0 -1
- package/src/components/TabList/tab-list.scss +1 -0
- package/src/components/Table/table.scss +2 -1
- package/src/components/Textarea/Textarea.tsx +8 -17
- package/src/components/Textarea/TextareaExample.tsx +3 -5
- package/src/components/TextareaField/TextareaField.tsx +10 -6
- package/src/components/TimePicker/TimePicker.tsx +12 -15
- package/src/components/TimePicker/TimePickerExample.tsx +3 -5
- package/src/components/TimePickerField/TimePickerField.tsx +10 -6
- package/src/types/common.ts +8 -0
- package/src/utils/demo.ts +1 -1
- package/dist/components/Field/FieldDescription.d.ts +0 -9
- package/dist/components/Field/FieldDescription.js +0 -13
- package/dist/components/Field/FieldDescription.js.map +0 -1
- package/dist/components/Field/FieldError.d.ts +0 -11
- package/dist/components/Field/FieldError.js +0 -14
- package/dist/components/Field/FieldError.js.map +0 -1
- package/dist/components/Field/FieldLabel.d.ts +0 -21
- package/dist/components/Field/FieldLabel.js +0 -14
- package/dist/components/Field/FieldLabel.js.map +0 -1
- package/dist/components/FormField/FormField.d.ts +0 -66
- package/dist/components/FormField/FormField.js +0 -31
- package/dist/components/FormField/FormField.js.map +0 -1
- package/dist/components/FormField/FormFieldExample.d.ts +0 -9
- package/dist/components/FormField/FormFieldExample.js +0 -99
- package/dist/components/FormField/FormFieldExample.js.map +0 -1
- package/dist/components/FormField/index.d.ts +0 -1
- package/dist/components/FormField/index.js +0 -2
- package/dist/components/FormField/index.js.map +0 -1
- package/dist/components/Input/InputElement.d.ts +0 -82
- package/dist/components/Input/InputElement.js +0 -64
- package/dist/components/Input/InputElement.js.map +0 -1
- package/src/components/Field/FieldDescription.tsx +0 -17
- package/src/components/Field/FieldError.tsx +0 -25
- package/src/components/Field/FieldLabel.tsx +0 -44
- package/src/components/FormField/FormField.rtl.test.tsx +0 -20
- package/src/components/FormField/FormField.tsx +0 -95
- package/src/components/FormField/FormFieldExample.tsx +0 -277
- package/src/components/FormField/index.tsx +0 -1
- package/src/components/Input/InputElement.tsx +0 -192
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FieldControlProps } from '-/components/Field';
|
|
2
2
|
import { InputProps } from '-/components/Input';
|
|
3
|
-
export type InputFieldProps =
|
|
3
|
+
export type InputFieldProps = FieldControlProps<InputProps>;
|
|
4
4
|
/**
|
|
5
5
|
* A field wrapper for the Input component.
|
|
6
6
|
*
|
|
7
7
|
* This component takes properties from the FormField and Input components.
|
|
8
8
|
*
|
|
9
9
|
* @name InputField
|
|
10
|
-
* @phase
|
|
10
|
+
* @phase UXReview
|
|
11
11
|
*
|
|
12
12
|
* @generated
|
|
13
13
|
*/
|
|
14
|
-
export declare function InputField({ label, helperText, labelTrailing, errorMessage, style, ...controlProps }: InputFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function InputField({ label, helperText, labelTrailing, errorMessage, style, id: idProp, ...controlProps }: InputFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { Field, propsWithAria } from '../Field';
|
|
3
3
|
import { Input } from '../Input';
|
|
4
|
+
import { useId } from '../../hooks/useId';
|
|
4
5
|
/**
|
|
5
6
|
* A field wrapper for the Input component.
|
|
6
7
|
*
|
|
7
8
|
* This component takes properties from the FormField and Input components.
|
|
8
9
|
*
|
|
9
10
|
* @name InputField
|
|
10
|
-
* @phase
|
|
11
|
+
* @phase UXReview
|
|
11
12
|
*
|
|
12
13
|
* @generated
|
|
13
14
|
*/
|
|
14
|
-
export function InputField({ label, helperText, labelTrailing, errorMessage, style, ...controlProps }) {
|
|
15
|
-
|
|
15
|
+
export function InputField({ label, helperText, labelTrailing, errorMessage, style, id: idProp, ...controlProps }) {
|
|
16
|
+
const id = useId(idProp);
|
|
17
|
+
return (_jsx(Field, { controlId: id, errorMessage: errorMessage, helperText: helperText, label: label, labelTrailing: labelTrailing, style: style, children: _jsx(Input, { ...propsWithAria({ id, controlProps, errorMessage, helperText }) }) }));
|
|
16
18
|
}
|
|
17
19
|
//# sourceMappingURL=InputField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputField.js","sourceRoot":"","sources":["../../../src/components/InputField/InputField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"InputField.js","sourceRoot":"","sources":["../../../src/components/InputField/InputField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAqB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAc,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAItC;;;;;;;;;GASG;AACH,MAAM,UAAU,UAAU,CAAC,EACvB,KAAK,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,KAAK,EACL,EAAE,EAAE,MAAM,EACV,GAAG,YAAY,EACD;IACd,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO,CACH,KAAC,KAAK,IACF,SAAS,EAAE,EAAE,EACb,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,YAEZ,KAAC,KAAK,OAAK,aAAa,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,GAAI,GACxE,CACX,CAAC;AACN,CAAC"}
|
|
@@ -35,24 +35,25 @@ export type InputNumberProps = CommonProps<'size'> & FieldControlProps<number> &
|
|
|
35
35
|
* For a more complete example with field usage, see the InputNumberField component.
|
|
36
36
|
*
|
|
37
37
|
* @example
|
|
38
|
-
* import { InputNumber } from '
|
|
38
|
+
* import { InputNumber } from '-/components/InputNumber';
|
|
39
39
|
*
|
|
40
40
|
* () => {
|
|
41
41
|
* const [value, setValue] = useState<number | undefined>();
|
|
42
42
|
*
|
|
43
43
|
* return (
|
|
44
44
|
* <div style={{ width: 320 }}>
|
|
45
|
-
* <Field
|
|
46
|
-
*
|
|
45
|
+
* <Field
|
|
46
|
+
* controlId="example-input-number"
|
|
47
|
+
* helperText="The input number allows you to increment or decrement a value."
|
|
48
|
+
* label="Example Input Number"
|
|
49
|
+
* >
|
|
47
50
|
* <InputNumber
|
|
48
51
|
* aria-label="Example aria-label"
|
|
52
|
+
* id="example-input-number"
|
|
49
53
|
* name="example-name"
|
|
50
54
|
* onChange={(nextValue) => setValue(nextValue)}
|
|
51
55
|
* value={value}
|
|
52
56
|
* />
|
|
53
|
-
* <FieldDescription>
|
|
54
|
-
* The input number allows you to increment or decrement a value.
|
|
55
|
-
* </FieldDescription>
|
|
56
57
|
* </Field>
|
|
57
58
|
* </div>
|
|
58
59
|
* );
|
|
@@ -61,5 +62,5 @@ export type InputNumberProps = CommonProps<'size'> & FieldControlProps<number> &
|
|
|
61
62
|
* @name InputNumber
|
|
62
63
|
* @phase Stable
|
|
63
64
|
*/
|
|
64
|
-
export declare function InputNumber({ value: valueProp, onChange, align, size, disabled, readOnly, name, id: idProp, 'aria-label': ariaLabel, max: maxProp, min, invalid
|
|
65
|
+
export declare function InputNumber({ value: valueProp, onChange, align, size, disabled, readOnly, name, id: idProp, 'aria-label': ariaLabel, max: maxProp, min, invalid, step, required, 'aria-describedby': ariaDescribedBy, 'aria-errormessage': ariaErrorMessage, ...inputElementProps }: InputNumberProps): import("react/jsx-runtime").JSX.Element;
|
|
65
66
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
@@ -2,7 +2,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import './input-number.css.js';
|
|
3
3
|
import { useEffect, useRef } from 'react';
|
|
4
4
|
import { IncrementButton } from './IncrementButton';
|
|
5
|
-
import { useFieldInit } from '../Field';
|
|
6
5
|
import { useId } from '../../hooks/useId';
|
|
7
6
|
function isNumber(value, fallbackValue) {
|
|
8
7
|
if (typeof value === 'number')
|
|
@@ -21,24 +20,25 @@ function isNumber(value, fallbackValue) {
|
|
|
21
20
|
* For a more complete example with field usage, see the InputNumberField component.
|
|
22
21
|
*
|
|
23
22
|
* @example
|
|
24
|
-
* import { InputNumber } from '
|
|
23
|
+
* import { InputNumber } from '.';
|
|
25
24
|
*
|
|
26
25
|
* () => {
|
|
27
26
|
* const [value, setValue] = useState<number | undefined>();
|
|
28
27
|
*
|
|
29
28
|
* return (
|
|
30
29
|
* <div style={{ width: 320 }}>
|
|
31
|
-
* <Field
|
|
32
|
-
*
|
|
30
|
+
* <Field
|
|
31
|
+
* controlId="example-input-number"
|
|
32
|
+
* helperText="The input number allows you to increment or decrement a value."
|
|
33
|
+
* label="Example Input Number"
|
|
34
|
+
* >
|
|
33
35
|
* <InputNumber
|
|
34
36
|
* aria-label="Example aria-label"
|
|
37
|
+
* id="example-input-number"
|
|
35
38
|
* name="example-name"
|
|
36
39
|
* onChange={(nextValue) => setValue(nextValue)}
|
|
37
40
|
* value={value}
|
|
38
41
|
* />
|
|
39
|
-
* <FieldDescription>
|
|
40
|
-
* The input number allows you to increment or decrement a value.
|
|
41
|
-
* </FieldDescription>
|
|
42
42
|
* </Field>
|
|
43
43
|
* </div>
|
|
44
44
|
* );
|
|
@@ -47,17 +47,10 @@ function isNumber(value, fallbackValue) {
|
|
|
47
47
|
* @name InputNumber
|
|
48
48
|
* @phase Stable
|
|
49
49
|
*/
|
|
50
|
-
export function InputNumber({ value: valueProp, onChange, align = 'center', size = 'medium', disabled = false, readOnly = false, name, id: idProp, 'aria-label': ariaLabel = 'Input number', max: maxProp, min = 0, invalid
|
|
51
|
-
const
|
|
52
|
-
idProp,
|
|
53
|
-
required,
|
|
54
|
-
disabled,
|
|
55
|
-
readOnly,
|
|
56
|
-
invalidProp,
|
|
57
|
-
});
|
|
50
|
+
export function InputNumber({ value: valueProp, onChange, align = 'center', size = 'medium', disabled = false, readOnly = false, name, id: idProp, 'aria-label': ariaLabel = 'Input number', max: maxProp, min = 0, invalid = false, step = 1, required = false, 'aria-describedby': ariaDescribedBy, 'aria-errormessage': ariaErrorMessage, ...inputElementProps }) {
|
|
51
|
+
const inputId = useId(idProp);
|
|
58
52
|
const max = typeof maxProp === 'number' && maxProp >= min ? maxProp : Number.MAX_SAFE_INTEGER;
|
|
59
53
|
const centered = align !== 'left';
|
|
60
|
-
const inputId = useId(id);
|
|
61
54
|
const value = isNumber(valueProp, min);
|
|
62
55
|
const removeDisabled = disabled || value + step * -1 < min;
|
|
63
56
|
const addDisabled = disabled || value + step > max;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumber.js","sourceRoot":"","sources":["../../../src/components/InputNumber/InputNumber.tsx"],"names":[],"mappings":";AAAA,OAAO,qBAAqB,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"InputNumber.js","sourceRoot":"","sources":["../../../src/components/InputNumber/InputNumber.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { InputNumber } from './InputNumber';
|
|
4
|
-
import { Field
|
|
4
|
+
import { Field } from '../Field';
|
|
5
5
|
export const InputNumberExample = {
|
|
6
6
|
defaultState: {
|
|
7
7
|
'aria-label': 'input number aria-label',
|
|
@@ -13,6 +13,6 @@ export const InputNumberExample = {
|
|
|
13
13
|
};
|
|
14
14
|
export const Usage = () => {
|
|
15
15
|
const [value, setValue] = useState();
|
|
16
|
-
return (_jsx("div", { style: { width: 320 }, children:
|
|
16
|
+
return (_jsx("div", { style: { width: 320 }, children: _jsx(Field, { controlId: "example-input-number", helperText: "The input number allows you to increment or decrement a value.", label: "Example Input Number", children: _jsx(InputNumber, { "aria-label": "Example aria-label", id: "example-input-number", name: "example-name", onChange: (nextValue) => setValue(nextValue), value: value }) }) }));
|
|
17
17
|
};
|
|
18
18
|
//# sourceMappingURL=InputNumberExample.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumberExample.js","sourceRoot":"","sources":["../../../src/components/InputNumber/InputNumberExample.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"InputNumberExample.js","sourceRoot":"","sources":["../../../src/components/InputNumber/InputNumberExample.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,WAAW,EAAoB,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,MAAM,CAAC,MAAM,kBAAkB,GAAuC;IAClE,YAAY,EAAE;QACV,YAAY,EAAE,yBAAyB;KAC1C;IACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,KAAC,SAAS,OAAK,KAAK,GAAI;IAC1D,QAAQ,EAAE,KAAK;IACf,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE;CAC7C,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE;IACtB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAsB,CAAC;IAEzD,OAAO,CACH,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,YACtB,KAAC,KAAK,IACF,SAAS,EAAC,sBAAsB,EAChC,UAAU,EAAC,gEAAgE,EAC3E,KAAK,EAAC,sBAAsB,YAE5B,KAAC,WAAW,kBACG,oBAAoB,EAC/B,EAAE,EAAC,sBAAsB,EACzB,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,EAC5C,KAAK,EAAE,KAAK,GACd,GACE,GACN,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FieldControlProps } from '-/components/Field';
|
|
2
2
|
import { InputNumberProps } from '-/components/InputNumber';
|
|
3
|
-
export type InputNumberFieldProps =
|
|
3
|
+
export type InputNumberFieldProps = FieldControlProps<InputNumberProps>;
|
|
4
4
|
/**
|
|
5
5
|
* A field wrapper for the InputNumber component.
|
|
6
6
|
*
|
|
7
7
|
* This component takes properties from the FormField and InputNumber components.
|
|
8
8
|
*
|
|
9
9
|
* @name InputNumberField
|
|
10
|
-
* @phase
|
|
10
|
+
* @phase UXReview
|
|
11
11
|
*
|
|
12
12
|
* @generated
|
|
13
13
|
*/
|
|
14
|
-
export declare function InputNumberField({ label, helperText, labelTrailing, errorMessage, style, ...controlProps }: InputNumberFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function InputNumberField({ label, helperText, labelTrailing, errorMessage, style, id: idProp, ...controlProps }: InputNumberFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { Field, propsWithAria } from '../Field';
|
|
3
3
|
import { InputNumber } from '../InputNumber';
|
|
4
|
+
import { useId } from '../../hooks/useId';
|
|
4
5
|
/**
|
|
5
6
|
* A field wrapper for the InputNumber component.
|
|
6
7
|
*
|
|
7
8
|
* This component takes properties from the FormField and InputNumber components.
|
|
8
9
|
*
|
|
9
10
|
* @name InputNumberField
|
|
10
|
-
* @phase
|
|
11
|
+
* @phase UXReview
|
|
11
12
|
*
|
|
12
13
|
* @generated
|
|
13
14
|
*/
|
|
14
|
-
export function InputNumberField({ label, helperText, labelTrailing, errorMessage, style, ...controlProps }) {
|
|
15
|
-
|
|
15
|
+
export function InputNumberField({ label, helperText, labelTrailing, errorMessage, style, id: idProp, ...controlProps }) {
|
|
16
|
+
const id = useId(idProp);
|
|
17
|
+
return (_jsx(Field, { controlId: id, errorMessage: errorMessage, helperText: helperText, label: label, labelTrailing: labelTrailing, style: style, children: _jsx(InputNumber, { ...propsWithAria({ id, controlProps, errorMessage, helperText }) }) }));
|
|
16
18
|
}
|
|
17
19
|
//# sourceMappingURL=InputNumberField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputNumberField.js","sourceRoot":"","sources":["../../../src/components/InputNumberField/InputNumberField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"InputNumberField.js","sourceRoot":"","sources":["../../../src/components/InputNumberField/InputNumberField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAqB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,WAAW,EAAoB,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAItC;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC7B,KAAK,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,KAAK,EACL,EAAE,EAAE,MAAM,EACV,GAAG,YAAY,EACK;IACpB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO,CACH,KAAC,KAAK,IACF,SAAS,EAAE,EAAE,EACb,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,YAEZ,KAAC,WAAW,OAAK,aAAa,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,GAAI,GAC9E,CACX,CAAC;AACN,CAAC"}
|
|
@@ -28,26 +28,26 @@ export type InputPhoneProps = FieldControlProps<string, SupportedCountryCode> &
|
|
|
28
28
|
* For a more complete example with field usage, see the InputPhoneField component.
|
|
29
29
|
*
|
|
30
30
|
* @example
|
|
31
|
-
* import { InputPhone } from '
|
|
32
|
-
* import { Field, FieldDescription, FieldLabel } from '@bspk/ui/Field';
|
|
31
|
+
* import { InputPhone } from '-/components/InputPhone';
|
|
33
32
|
*
|
|
34
33
|
* () => {
|
|
35
34
|
* const [value, onChange] = useState<string | undefined>();
|
|
36
35
|
*
|
|
37
36
|
* return (
|
|
38
37
|
* <div style={{ width: 320 }}>
|
|
39
|
-
* <Field
|
|
40
|
-
*
|
|
38
|
+
* <Field
|
|
39
|
+
* controlId="example-input-phone"
|
|
40
|
+
* helperText="The phone input allows you to enter a phone number with country code."
|
|
41
|
+
* label="Example Input Phone"
|
|
42
|
+
* >
|
|
41
43
|
* <InputPhone
|
|
42
44
|
* aria-label="Phone Number"
|
|
45
|
+
* id="example-input-phone"
|
|
43
46
|
* initialCountryCode="US"
|
|
44
47
|
* name="example-name"
|
|
45
48
|
* onChange={onChange}
|
|
46
49
|
* value={value}
|
|
47
50
|
* />
|
|
48
|
-
* <FieldDescription>
|
|
49
|
-
* The phone input allows you to enter a phone number with country code.
|
|
50
|
-
* </FieldDescription>
|
|
51
51
|
* </Field>
|
|
52
52
|
* </div>
|
|
53
53
|
* );
|
|
@@ -56,5 +56,5 @@ export type InputPhoneProps = FieldControlProps<string, SupportedCountryCode> &
|
|
|
56
56
|
* @name InputPhone
|
|
57
57
|
* @phase Stable
|
|
58
58
|
*/
|
|
59
|
-
export declare function InputPhone({ value, onChange, disableFormatting, initialCountryCode, disabled, readOnly, name, id: idProp, invalid
|
|
59
|
+
export declare function InputPhone({ value, onChange, disableFormatting, initialCountryCode, disabled, readOnly, name, id: idProp, invalid, required, size, inputRef, scrollLimit, 'aria-label': ariaLabel, 'aria-describedby': ariaDescribedBy, 'aria-errormessage': ariaErrorMessage, }: InputPhoneProps): import("react/jsx-runtime").JSX.Element;
|
|
60
60
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
@@ -5,12 +5,12 @@ import { SvgIcon } from '@bspk/icons/SvgIcon';
|
|
|
5
5
|
import { AsYouType, getCountryCallingCode } from 'libphonenumber-js';
|
|
6
6
|
import { useMemo, useRef, useState } from 'react';
|
|
7
7
|
import { Button } from '../Button';
|
|
8
|
-
import {
|
|
9
|
-
import { InputElement } from '../Input';
|
|
8
|
+
import { Input } from '../Input';
|
|
10
9
|
import { ListItem } from '../ListItem';
|
|
11
10
|
import { Menu } from '../Menu';
|
|
12
11
|
import { useArrowNavigation } from '../../hooks/useArrowNavigation';
|
|
13
12
|
import { useFloating } from '../../hooks/useFloating';
|
|
13
|
+
import { useId } from '../../hooks/useId';
|
|
14
14
|
import { useOutsideClick } from '../../hooks/useOutsideClick';
|
|
15
15
|
import { countryCodeData, countryCodes } from '../../utils/countryCodes';
|
|
16
16
|
import { getElementById } from '../../utils/dom';
|
|
@@ -36,26 +36,26 @@ const SELECT_OPTIONS = countryCodes.map((code) => {
|
|
|
36
36
|
* For a more complete example with field usage, see the InputPhoneField component.
|
|
37
37
|
*
|
|
38
38
|
* @example
|
|
39
|
-
* import { InputPhone } from '
|
|
40
|
-
* import { Field, FieldDescription, FieldLabel } from '@bspk/ui/Field';
|
|
39
|
+
* import { InputPhone } from '.';
|
|
41
40
|
*
|
|
42
41
|
* () => {
|
|
43
42
|
* const [value, onChange] = useState<string | undefined>();
|
|
44
43
|
*
|
|
45
44
|
* return (
|
|
46
45
|
* <div style={{ width: 320 }}>
|
|
47
|
-
* <Field
|
|
48
|
-
*
|
|
46
|
+
* <Field
|
|
47
|
+
* controlId="example-input-phone"
|
|
48
|
+
* helperText="The phone input allows you to enter a phone number with country code."
|
|
49
|
+
* label="Example Input Phone"
|
|
50
|
+
* >
|
|
49
51
|
* <InputPhone
|
|
50
52
|
* aria-label="Phone Number"
|
|
53
|
+
* id="example-input-phone"
|
|
51
54
|
* initialCountryCode="US"
|
|
52
55
|
* name="example-name"
|
|
53
56
|
* onChange={onChange}
|
|
54
57
|
* value={value}
|
|
55
58
|
* />
|
|
56
|
-
* <FieldDescription>
|
|
57
|
-
* The phone input allows you to enter a phone number with country code.
|
|
58
|
-
* </FieldDescription>
|
|
59
59
|
* </Field>
|
|
60
60
|
* </div>
|
|
61
61
|
* );
|
|
@@ -64,14 +64,8 @@ const SELECT_OPTIONS = countryCodes.map((code) => {
|
|
|
64
64
|
* @name InputPhone
|
|
65
65
|
* @phase Stable
|
|
66
66
|
*/
|
|
67
|
-
export function InputPhone({ value, onChange, disableFormatting, initialCountryCode, disabled, readOnly, name, id: idProp, invalid
|
|
68
|
-
const
|
|
69
|
-
idProp,
|
|
70
|
-
required,
|
|
71
|
-
disabled,
|
|
72
|
-
readOnly,
|
|
73
|
-
invalidProp,
|
|
74
|
-
});
|
|
67
|
+
export function InputPhone({ value, onChange, disableFormatting, initialCountryCode, disabled, readOnly, name, id: idProp, invalid = false, required = false, size = 'medium', inputRef, scrollLimit = 5, 'aria-label': ariaLabel = 'Phone number input', 'aria-describedby': ariaDescribedBy, 'aria-errormessage': ariaErrorMessage, }) {
|
|
68
|
+
const id = useId(idProp);
|
|
75
69
|
const menuId = useMemo(() => `${id}-menu`, [id]);
|
|
76
70
|
const items = useIds(`input-phone-${id}`, SELECT_OPTIONS);
|
|
77
71
|
const [countryCode, setCountryCode] = useState(initialCountryCode || guessUserCountryCode());
|
|
@@ -120,7 +114,7 @@ export function InputPhone({ value, onChange, disableFormatting, initialCountryC
|
|
|
120
114
|
Tab: () => {
|
|
121
115
|
// if (open) closeMenu();
|
|
122
116
|
},
|
|
123
|
-
}), children: _jsx(
|
|
117
|
+
}), children: _jsx(Input, { "aria-describedby": ariaDescribedBy, "aria-errormessage": ariaErrorMessage, "aria-label": ariaLabel || undefined, autoComplete: "off", containerRef: elements.setReference, disabled: disabled, id: id, inputMode: "tel", inputRef: (node) => {
|
|
124
118
|
inputRef?.(node);
|
|
125
119
|
inputInternalRef.current = node;
|
|
126
120
|
}, invalid: invalid, leading: _jsxs(_Fragment, { children: [_jsxs(Button, { "aria-activedescendant": open ? activeElementId || undefined : undefined, "aria-controls": open ? menuId : undefined, "aria-disabled": disabled || undefined, "aria-expanded": open, "aria-haspopup": "listbox", "aria-label": "select country code", "aria-owns": menuId, "aria-readonly": readOnly || undefined, disabled: disabled || readOnly, label: "Open country code menu", name: `${name}-country-code`, onClick: (event) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputPhone.js","sourceRoot":"","sources":["../../../src/components/InputPhone/InputPhone.tsx"],"names":[],"mappings":";;AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"InputPhone.js","sourceRoot":"","sources":["../../../src/components/InputPhone/InputPhone.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { jsx as _jsx
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { InputPhone } from '.';
|
|
4
|
-
import { Field
|
|
4
|
+
import { Field } from '../Field';
|
|
5
5
|
export const presets = [];
|
|
6
6
|
export const InputPhoneExample = {
|
|
7
7
|
containerStyle: { width: 320, padding: 0 },
|
|
@@ -13,6 +13,6 @@ export const InputPhoneExample = {
|
|
|
13
13
|
};
|
|
14
14
|
export const Usage = () => {
|
|
15
15
|
const [value, onChange] = useState();
|
|
16
|
-
return (_jsx("div", { style: { width: 320 }, children:
|
|
16
|
+
return (_jsx("div", { style: { width: 320 }, children: _jsx(Field, { controlId: "example-input-phone", helperText: "The phone input allows you to enter a phone number with country code.", label: "Example Input Phone", children: _jsx(InputPhone, { "aria-label": "Phone Number", id: "example-input-phone", initialCountryCode: "US", name: "example-name", onChange: onChange, value: value }) }) }));
|
|
17
17
|
};
|
|
18
18
|
//# sourceMappingURL=InputPhoneExample.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputPhoneExample.js","sourceRoot":"","sources":["../../../src/components/InputPhone/InputPhoneExample.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAmB,MAAM,GAAG,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"InputPhoneExample.js","sourceRoot":"","sources":["../../../src/components/InputPhone/InputPhoneExample.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,UAAU,EAAmB,MAAM,GAAG,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAG3C,MAAM,CAAC,MAAM,OAAO,GAA8B,EAAE,CAAC;AAErD,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAChE,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE;IAC1C,YAAY,EAAE;QACV,YAAY,EAAE,wBAAwB;KACzC;IACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,KAAC,SAAS,OAAK,KAAK,GAAI;IAC1D,QAAQ,EAAE,IAAI;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,GAAG,EAAE;IACtB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAsB,CAAC;IAEzD,OAAO,CACH,cAAK,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,YACtB,KAAC,KAAK,IACF,SAAS,EAAC,qBAAqB,EAC/B,UAAU,EAAC,uEAAuE,EAClF,KAAK,EAAC,qBAAqB,YAE3B,KAAC,UAAU,kBACI,cAAc,EACzB,EAAE,EAAC,qBAAqB,EACxB,kBAAkB,EAAC,IAAI,EACvB,IAAI,EAAC,cAAc,EACnB,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,KAAK,GACd,GACE,GACN,CACT,CAAC;AACN,CAAC,CAAC"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
}
|
|
12
12
|
[data-bspk-owner=input-phone][data-bspk=input] input:focus-visible {
|
|
13
13
|
outline: solid 2px var(--stroke-neutral-focus);
|
|
14
|
+
isolation: isolate;
|
|
14
15
|
border-radius: var(--radius-sm);
|
|
15
16
|
}
|
|
16
17
|
[data-bspk-owner=input-phone][data-bspk=input] [data-bspk=divider] {
|
|
@@ -14,6 +14,7 @@ style.appendChild(document.createTextNode(`[data-bspk=input-phone] {
|
|
|
14
14
|
}
|
|
15
15
|
[data-bspk-owner=input-phone][data-bspk=input] input:focus-visible {
|
|
16
16
|
outline: solid 2px var(--stroke-neutral-focus);
|
|
17
|
+
isolation: isolate;
|
|
17
18
|
border-radius: var(--radius-sm);
|
|
18
19
|
}
|
|
19
20
|
[data-bspk-owner=input-phone][data-bspk=input] [data-bspk=divider] {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { FieldControlProps } from '-/components/Field';
|
|
2
2
|
import { InputPhoneProps } from '-/components/InputPhone';
|
|
3
|
-
export type InputPhoneFieldProps =
|
|
3
|
+
export type InputPhoneFieldProps = FieldControlProps<InputPhoneProps>;
|
|
4
4
|
/**
|
|
5
5
|
* A field wrapper for the InputPhone component.
|
|
6
6
|
*
|
|
7
7
|
* This component takes properties from the FormField and InputPhone components.
|
|
8
8
|
*
|
|
9
9
|
* @name InputPhoneField
|
|
10
|
-
* @phase
|
|
10
|
+
* @phase UXReview
|
|
11
11
|
*
|
|
12
12
|
* @generated
|
|
13
13
|
*/
|
|
14
|
-
export declare function InputPhoneField({ label, helperText, labelTrailing, errorMessage, style, ...controlProps }: InputPhoneFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function InputPhoneField({ label, helperText, labelTrailing, errorMessage, style, id: idProp, ...controlProps }: InputPhoneFieldProps): import("react/jsx-runtime").JSX.Element;
|
|
15
15
|
/** Copyright 2025 Anywhere Real Estate - CC BY 4.0 */
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { Field, propsWithAria } from '../Field';
|
|
3
3
|
import { InputPhone } from '../InputPhone';
|
|
4
|
+
import { useId } from '../../hooks/useId';
|
|
4
5
|
/**
|
|
5
6
|
* A field wrapper for the InputPhone component.
|
|
6
7
|
*
|
|
7
8
|
* This component takes properties from the FormField and InputPhone components.
|
|
8
9
|
*
|
|
9
10
|
* @name InputPhoneField
|
|
10
|
-
* @phase
|
|
11
|
+
* @phase UXReview
|
|
11
12
|
*
|
|
12
13
|
* @generated
|
|
13
14
|
*/
|
|
14
|
-
export function InputPhoneField({ label, helperText, labelTrailing, errorMessage, style, ...controlProps }) {
|
|
15
|
-
|
|
15
|
+
export function InputPhoneField({ label, helperText, labelTrailing, errorMessage, style, id: idProp, ...controlProps }) {
|
|
16
|
+
const id = useId(idProp);
|
|
17
|
+
return (_jsx(Field, { controlId: id, errorMessage: errorMessage, helperText: helperText, label: label, labelTrailing: labelTrailing, style: style, children: _jsx(InputPhone, { ...propsWithAria({ id, controlProps, errorMessage, helperText }) }) }));
|
|
16
18
|
}
|
|
17
19
|
//# sourceMappingURL=InputPhoneField.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputPhoneField.js","sourceRoot":"","sources":["../../../src/components/InputPhoneField/InputPhoneField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"InputPhoneField.js","sourceRoot":"","sources":["../../../src/components/InputPhoneField/InputPhoneField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,KAAK,EAAqB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAmB,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAItC;;;;;;;;;GASG;AACH,MAAM,UAAU,eAAe,CAAC,EAC5B,KAAK,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,KAAK,EACL,EAAE,EAAE,MAAM,EACV,GAAG,YAAY,EACI;IACnB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACzB,OAAO,CACH,KAAC,KAAK,IACF,SAAS,EAAE,EAAE,EACb,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAK,YAEZ,KAAC,UAAU,OAAK,aAAa,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,GAAI,GAC7E,CACX,CAAC;AACN,CAAC"}
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
}
|
|
22
22
|
[data-pseudo=focus] [data-bspk=list-item], [data-bspk=list-item]:focus-visible, [data-bspk=list-item]:has(*:focus-visible) {
|
|
23
23
|
outline: solid 2px var(--stroke-neutral-focus);
|
|
24
|
+
isolation: isolate;
|
|
24
25
|
}
|
|
25
26
|
[data-pseudo=focus] [data-bspk=list-item] [data-inner], [data-bspk=list-item]:focus-visible [data-inner], [data-bspk=list-item]:has(*:focus-visible) [data-inner] {
|
|
26
27
|
border-color: transparent;
|
|
@@ -24,6 +24,7 @@ style.appendChild(document.createTextNode(`[data-bspk=list-item] {
|
|
|
24
24
|
}
|
|
25
25
|
[data-pseudo=focus] [data-bspk=list-item], [data-bspk=list-item]:focus-visible, [data-bspk=list-item]:has(*:focus-visible) {
|
|
26
26
|
outline: solid 2px var(--stroke-neutral-focus);
|
|
27
|
+
isolation: isolate;
|
|
27
28
|
}
|
|
28
29
|
[data-pseudo=focus] [data-bspk=list-item] [data-inner], [data-bspk=list-item]:focus-visible [data-inner], [data-bspk=list-item]:has(*:focus-visible) [data-inner] {
|
|
29
30
|
border-color: transparent;
|
|
@@ -4,35 +4,28 @@ import { SvgClose } from '@bspk/icons/Close';
|
|
|
4
4
|
import { useMemo, useRef } from 'react';
|
|
5
5
|
import { Button } from '../Button';
|
|
6
6
|
import { Dialog } from '../Dialog';
|
|
7
|
-
import { useDebounceCallback } from '../../hooks/useDebounceCallback';
|
|
8
7
|
import { useEventListener } from '../../hooks/useEventListener';
|
|
9
8
|
import { useUIContext } from '../../hooks/useUIContext';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
if (!
|
|
9
|
+
function useMatchParentHeight() {
|
|
10
|
+
const elementRef = useRef(null);
|
|
11
|
+
const updateHeight = () => {
|
|
12
|
+
const element = elementRef.current;
|
|
13
|
+
const parentElement = element?.parentElement;
|
|
14
|
+
if (!element || !parentElement)
|
|
16
15
|
return;
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
// Reset height to allow shrinking or growing
|
|
17
|
+
element.style.height = '';
|
|
18
|
+
// Apply new height on next frame
|
|
19
|
+
requestAnimationFrame(() => {
|
|
20
|
+
element.style.height = `${parentElement.clientHeight}px`;
|
|
21
|
+
});
|
|
19
22
|
};
|
|
20
|
-
useEventListener('resize',
|
|
21
|
-
|
|
23
|
+
useEventListener('resize', updateHeight);
|
|
24
|
+
useEventListener('orientationchange', updateHeight);
|
|
22
25
|
return {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const dialogBox = node.querySelector('[data-dialog-box]');
|
|
27
|
-
const modal = node.querySelector('[data-bspk="modal"]');
|
|
28
|
-
modalRefs.current = {
|
|
29
|
-
dialogBox,
|
|
30
|
-
modal,
|
|
31
|
-
};
|
|
32
|
-
if (!dialogBox || !modal)
|
|
33
|
-
return;
|
|
34
|
-
modal.style.height = `${dialogBox.offsetHeight}px`;
|
|
35
|
-
modal.style.visibility = '';
|
|
26
|
+
setElement: (el) => {
|
|
27
|
+
elementRef.current = el;
|
|
28
|
+
updateHeight();
|
|
36
29
|
},
|
|
37
30
|
};
|
|
38
31
|
}
|
|
@@ -87,7 +80,10 @@ export function Modal({ header, description, children, callToAction, cancelButto
|
|
|
87
80
|
}
|
|
88
81
|
return nextButtons;
|
|
89
82
|
}, [callToAction, cancelButton, dialogProps.onClose, isMobile]);
|
|
90
|
-
const {
|
|
91
|
-
return (_jsx(Dialog, { ...dialogProps, "aria-description": description, "aria-label": header, disableFocusTrap: disableFocusTrap,
|
|
83
|
+
const { setElement } = useMatchParentHeight();
|
|
84
|
+
return (_jsx(Dialog, { ...dialogProps, "aria-description": description, "aria-label": header, disableFocusTrap: disableFocusTrap, placement: "center", showScrim: true, children: _jsxs("div", { "data-bspk": "modal", ref: (node) => {
|
|
85
|
+
innerRef?.(node);
|
|
86
|
+
setElement(node);
|
|
87
|
+
}, children: [_jsxs("div", { "data-modal-header": true, children: [_jsx("div", { "data-modal-title": true, children: header }), _jsx(Button, { icon: _jsx(SvgClose, {}), iconOnly: true, label: "close", onClick: dialogProps.onClose, size: isMobile ? 'medium' : 'small', variant: "tertiary" })] }), _jsx("div", { "data-modal-main": true, children: children }), Array.isArray(buttons) && buttons.length > 0 && (_jsx("div", { "data-button-format": buttonFormat, "data-modal-footer": true, children: buttons.map((buttonProps, idx) => (_jsx(Button, { ...buttonProps, size: isMobile ? 'medium' : 'small', width: buttonFormat === 'vertical' && isMobile ? 'fill' : 'hug' }, idx))) }))] }) }));
|
|
92
88
|
}
|
|
93
89
|
//# sourceMappingURL=Modal.js.map
|