@multiplatform.one/forms 7.7.6 → 7.10.0
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/cjs/Button/index.cjs +1 -4
- package/dist/cjs/Button/index.native.js +5 -6
- package/dist/cjs/Button/index.native.js.map +1 -1
- package/dist/cjs/Chip/index.cjs +1 -1
- package/dist/cjs/Chip/index.native.js +1 -1
- package/dist/cjs/Chip/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/index.cjs +59 -14
- package/dist/cjs/FloatingPanel/index.native.js +16 -7
- package/dist/cjs/FloatingPanel/index.native.js.map +1 -1
- package/dist/cjs/FloatingPanel/nestedAction.cjs +37 -0
- package/dist/cjs/FloatingPanel/nestedAction.native.js +42 -0
- package/dist/cjs/FloatingPanel/nestedAction.native.js.map +1 -0
- package/dist/cjs/InputParts/index.cjs +19 -8
- package/dist/cjs/InputParts/index.native.js +20 -11
- package/dist/cjs/InputParts/index.native.js.map +1 -1
- package/dist/cjs/Wheel/index.cjs +3 -3
- package/dist/cjs/Wheel/index.native.js +3 -3
- package/dist/cjs/Wheel/index.native.js.map +1 -1
- package/dist/cjs/fieldLayout.cjs +3 -3
- package/dist/cjs/fieldLayout.native.js +3 -3
- package/dist/cjs/fieldLayout.native.js.map +1 -1
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.cjs +9 -2
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js +10 -1
- package/dist/cjs/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/cjs/fields/Combobox/index.cjs +36 -29
- package/dist/cjs/fields/Combobox/index.native.js +38 -38
- package/dist/cjs/fields/Combobox/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/Calendar.cjs +6 -1
- package/dist/cjs/fields/DatePicker/Calendar.native.js +6 -1
- package/dist/cjs/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DateRangePicker.cjs +2 -2
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js +2 -2
- package/dist/cjs/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.cjs +15 -12
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js +16 -12
- package/dist/cjs/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js +39 -14
- package/dist/cjs/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MonthPicker.cjs +10 -3
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js +10 -3
- package/dist/cjs/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/MultiDatePicker.cjs +2 -2
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js +2 -2
- package/dist/cjs/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/index.native.js +3 -0
- package/dist/cjs/fields/DatePicker/index.native.js.map +1 -1
- package/dist/cjs/fields/DatePicker/parts.cjs +26 -14
- package/dist/cjs/fields/DatePicker/parts.native.js +28 -14
- package/dist/cjs/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/cjs/fields/FileUpload/index.cjs +6 -0
- package/dist/cjs/fields/FileUpload/index.native.js +6 -0
- package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/GeolocationMap.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/geocoder.cjs +63 -0
- package/dist/cjs/fields/Geolocation/geocoder.native.js +68 -0
- package/dist/cjs/fields/Geolocation/geocoder.native.js.map +1 -0
- package/dist/cjs/fields/Geolocation/index.cjs +801 -152
- package/dist/cjs/fields/Geolocation/index.native.js +856 -167
- package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
- package/dist/cjs/fields/Geolocation/nativeSearchFocus.cjs +44 -0
- package/dist/cjs/fields/Geolocation/nativeSearchFocus.native.js +47 -0
- package/dist/cjs/fields/Geolocation/nativeSearchFocus.native.js.map +1 -0
- package/dist/cjs/fields/Icon/drawnSet.cjs +16 -3
- package/dist/cjs/fields/Icon/drawnSet.native.js +20 -3
- package/dist/cjs/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/cjs/fields/Icon/index.cjs +102 -27
- package/dist/cjs/fields/Icon/index.native.js +115 -31
- package/dist/cjs/fields/Icon/index.native.js.map +1 -1
- package/dist/cjs/fields/Input/index.cjs +5 -12
- package/dist/cjs/fields/Input/index.native.js +5 -13
- package/dist/cjs/fields/Input/index.native.js.map +1 -1
- package/dist/cjs/fields/PhoneInput/index.cjs +2 -2
- package/dist/cjs/fields/PhoneInput/index.native.js +2 -2
- package/dist/cjs/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/cjs/fields/RadioGroup/index.cjs +34 -5
- package/dist/cjs/fields/RadioGroup/index.native.js +49 -7
- package/dist/cjs/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/cjs/fields/SearchInput/index.cjs +8 -9
- package/dist/cjs/fields/SearchInput/index.native.js +8 -9
- package/dist/cjs/fields/SearchInput/index.native.js.map +1 -1
- package/dist/cjs/fields/Select/index.cjs +42 -11
- package/dist/cjs/fields/Select/index.native.js +52 -20
- package/dist/cjs/fields/Select/index.native.js.map +1 -1
- package/dist/cjs/fields/Stepper/index.cjs +144 -31
- package/dist/cjs/fields/Stepper/index.native.js +151 -31
- package/dist/cjs/fields/Stepper/index.native.js.map +1 -1
- package/dist/cjs/fields/ToggleGroup/index.cjs +35 -2
- package/dist/cjs/fields/ToggleGroup/index.native.js +42 -2
- package/dist/cjs/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.native.js +2 -0
- package/dist/cjs/index.native.js.map +1 -1
- package/dist/cjs/shared/focusManagement.cjs +24 -11
- package/dist/cjs/shared/focusManagement.native.js +24 -11
- package/dist/cjs/shared/focusManagement.native.js.map +1 -1
- package/dist/cjs/shared/nativeA11y.cjs +57 -0
- package/dist/cjs/shared/nativeA11y.native.js +61 -0
- package/dist/cjs/shared/nativeA11y.native.js.map +1 -0
- package/dist/esm/Button/index.mjs +1 -4
- package/dist/esm/Button/index.mjs.map +1 -1
- package/dist/esm/Button/index.native.js +5 -6
- package/dist/esm/Button/index.native.js.map +1 -1
- package/dist/esm/Chip/index.mjs +1 -1
- package/dist/esm/Chip/index.mjs.map +1 -1
- package/dist/esm/Chip/index.native.js +1 -1
- package/dist/esm/Chip/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/index.mjs +58 -15
- package/dist/esm/FloatingPanel/index.mjs.map +1 -1
- package/dist/esm/FloatingPanel/index.native.js +15 -8
- package/dist/esm/FloatingPanel/index.native.js.map +1 -1
- package/dist/esm/FloatingPanel/nestedAction.mjs +11 -0
- package/dist/esm/FloatingPanel/nestedAction.mjs.map +1 -0
- package/dist/esm/FloatingPanel/nestedAction.native.js +13 -0
- package/dist/esm/FloatingPanel/nestedAction.native.js.map +1 -0
- package/dist/esm/InputParts/index.mjs +20 -9
- package/dist/esm/InputParts/index.mjs.map +1 -1
- package/dist/esm/InputParts/index.native.js +21 -12
- package/dist/esm/InputParts/index.native.js.map +1 -1
- package/dist/esm/Wheel/index.mjs +3 -3
- package/dist/esm/Wheel/index.mjs.map +1 -1
- package/dist/esm/Wheel/index.native.js +3 -3
- package/dist/esm/Wheel/index.native.js.map +1 -1
- package/dist/esm/fieldLayout.mjs +3 -3
- package/dist/esm/fieldLayout.mjs.map +1 -1
- package/dist/esm/fieldLayout.native.js +3 -3
- package/dist/esm/fieldLayout.native.js.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.mjs +8 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.mjs.map +1 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js +10 -1
- package/dist/esm/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/esm/fields/Combobox/index.mjs +36 -29
- package/dist/esm/fields/Combobox/index.mjs.map +1 -1
- package/dist/esm/fields/Combobox/index.native.js +38 -38
- package/dist/esm/fields/Combobox/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/Calendar.mjs +6 -1
- package/dist/esm/fields/DatePicker/Calendar.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/Calendar.native.js +6 -1
- package/dist/esm/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.mjs +2 -2
- package/dist/esm/fields/DatePicker/DateRangePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js +2 -2
- package/dist/esm/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs +15 -12
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js +16 -12
- package/dist/esm/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/DatetimePicker.native.js +39 -14
- package/dist/esm/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MonthPicker.mjs +10 -3
- package/dist/esm/fields/DatePicker/MonthPicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/MonthPicker.native.js +10 -3
- package/dist/esm/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.mjs +2 -2
- package/dist/esm/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/MultiDatePicker.native.js +2 -2
- package/dist/esm/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/index.native.js +3 -0
- package/dist/esm/fields/DatePicker/index.native.js.map +1 -1
- package/dist/esm/fields/DatePicker/parts.mjs +28 -16
- package/dist/esm/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/esm/fields/DatePicker/parts.native.js +30 -16
- package/dist/esm/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/esm/fields/FileUpload/index.mjs +6 -0
- package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
- package/dist/esm/fields/FileUpload/index.native.js +6 -0
- package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/GeolocationMap.mjs.map +1 -1
- package/dist/esm/fields/Geolocation/GeolocationMap.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/geocoder.mjs +33 -0
- package/dist/esm/fields/Geolocation/geocoder.mjs.map +1 -0
- package/dist/esm/fields/Geolocation/geocoder.native.js +35 -0
- package/dist/esm/fields/Geolocation/geocoder.native.js.map +1 -0
- package/dist/esm/fields/Geolocation/index.mjs +792 -149
- package/dist/esm/fields/Geolocation/index.mjs.map +1 -1
- package/dist/esm/fields/Geolocation/index.native.js +847 -164
- package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
- package/dist/esm/fields/Geolocation/nativeSearchFocus.mjs +19 -0
- package/dist/esm/fields/Geolocation/nativeSearchFocus.mjs.map +1 -0
- package/dist/esm/fields/Geolocation/nativeSearchFocus.native.js +19 -0
- package/dist/esm/fields/Geolocation/nativeSearchFocus.native.js.map +1 -0
- package/dist/esm/fields/Icon/drawnSet.mjs +16 -3
- package/dist/esm/fields/Icon/drawnSet.mjs.map +1 -1
- package/dist/esm/fields/Icon/drawnSet.native.js +20 -3
- package/dist/esm/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/esm/fields/Icon/index.mjs +93 -18
- package/dist/esm/fields/Icon/index.mjs.map +1 -1
- package/dist/esm/fields/Icon/index.native.js +106 -22
- package/dist/esm/fields/Icon/index.native.js.map +1 -1
- package/dist/esm/fields/Input/index.mjs +5 -12
- package/dist/esm/fields/Input/index.mjs.map +1 -1
- package/dist/esm/fields/Input/index.native.js +5 -13
- package/dist/esm/fields/Input/index.native.js.map +1 -1
- package/dist/esm/fields/PhoneInput/index.mjs +2 -2
- package/dist/esm/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/esm/fields/PhoneInput/index.native.js +2 -2
- package/dist/esm/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/esm/fields/RadioGroup/index.mjs +34 -5
- package/dist/esm/fields/RadioGroup/index.mjs.map +1 -1
- package/dist/esm/fields/RadioGroup/index.native.js +49 -7
- package/dist/esm/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/esm/fields/SearchInput/index.mjs +9 -10
- package/dist/esm/fields/SearchInput/index.mjs.map +1 -1
- package/dist/esm/fields/SearchInput/index.native.js +9 -10
- package/dist/esm/fields/SearchInput/index.native.js.map +1 -1
- package/dist/esm/fields/Select/index.mjs +42 -11
- package/dist/esm/fields/Select/index.mjs.map +1 -1
- package/dist/esm/fields/Select/index.native.js +52 -20
- package/dist/esm/fields/Select/index.native.js.map +1 -1
- package/dist/esm/fields/Stepper/index.mjs +145 -32
- package/dist/esm/fields/Stepper/index.mjs.map +1 -1
- package/dist/esm/fields/Stepper/index.native.js +152 -32
- package/dist/esm/fields/Stepper/index.native.js.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.mjs +35 -2
- package/dist/esm/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/esm/fields/ToggleGroup/index.native.js +42 -2
- package/dist/esm/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/esm/index.mjs +2 -1
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/index.native.js +2 -1
- package/dist/esm/index.native.js.map +1 -1
- package/dist/esm/shared/focusManagement.mjs +24 -11
- package/dist/esm/shared/focusManagement.mjs.map +1 -1
- package/dist/esm/shared/focusManagement.native.js +24 -11
- package/dist/esm/shared/focusManagement.native.js.map +1 -1
- package/dist/esm/shared/nativeA11y.mjs +31 -0
- package/dist/esm/shared/nativeA11y.mjs.map +1 -0
- package/dist/esm/shared/nativeA11y.native.js +32 -0
- package/dist/esm/shared/nativeA11y.native.js.map +1 -0
- package/dist/jsx/Button/index.mjs +1 -4
- package/dist/jsx/Button/index.mjs.map +1 -1
- package/dist/jsx/Button/index.native.js +5 -6
- package/dist/jsx/Button/index.native.js.map +1 -1
- package/dist/jsx/Chip/index.mjs +1 -1
- package/dist/jsx/Chip/index.mjs.map +1 -1
- package/dist/jsx/Chip/index.native.js +1 -1
- package/dist/jsx/Chip/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/index.mjs +58 -15
- package/dist/jsx/FloatingPanel/index.mjs.map +1 -1
- package/dist/jsx/FloatingPanel/index.native.js +16 -7
- package/dist/jsx/FloatingPanel/index.native.js.map +1 -1
- package/dist/jsx/FloatingPanel/nestedAction.mjs +11 -0
- package/dist/jsx/FloatingPanel/nestedAction.mjs.map +1 -0
- package/dist/jsx/FloatingPanel/nestedAction.native.js +42 -0
- package/dist/jsx/FloatingPanel/nestedAction.native.js.map +1 -0
- package/dist/jsx/InputParts/index.mjs +20 -9
- package/dist/jsx/InputParts/index.mjs.map +1 -1
- package/dist/jsx/InputParts/index.native.js +20 -11
- package/dist/jsx/InputParts/index.native.js.map +1 -1
- package/dist/jsx/Wheel/index.mjs +3 -3
- package/dist/jsx/Wheel/index.mjs.map +1 -1
- package/dist/jsx/Wheel/index.native.js +3 -3
- package/dist/jsx/Wheel/index.native.js.map +1 -1
- package/dist/jsx/fieldLayout.mjs +3 -3
- package/dist/jsx/fieldLayout.mjs.map +1 -1
- package/dist/jsx/fieldLayout.native.js +3 -3
- package/dist/jsx/fieldLayout.native.js.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.mjs +8 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.mjs.map +1 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.native.js +10 -1
- package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
- package/dist/jsx/fields/Combobox/index.mjs +36 -29
- package/dist/jsx/fields/Combobox/index.mjs.map +1 -1
- package/dist/jsx/fields/Combobox/index.native.js +38 -38
- package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/Calendar.mjs +6 -1
- package/dist/jsx/fields/DatePicker/Calendar.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/Calendar.native.js +6 -1
- package/dist/jsx/fields/DatePicker/Calendar.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DateRangePicker.mjs +2 -2
- package/dist/jsx/fields/DatePicker/DateRangePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js +2 -2
- package/dist/jsx/fields/DatePicker/DateRangePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs +15 -12
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js +16 -12
- package/dist/jsx/fields/DatePicker/DatetimePicker.catalog.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js +39 -14
- package/dist/jsx/fields/DatePicker/DatetimePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/MonthPicker.mjs +10 -3
- package/dist/jsx/fields/DatePicker/MonthPicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/MonthPicker.native.js +10 -3
- package/dist/jsx/fields/DatePicker/MonthPicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs +2 -2
- package/dist/jsx/fields/DatePicker/MultiDatePicker.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js +2 -2
- package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/index.native.js +3 -0
- package/dist/jsx/fields/DatePicker/index.native.js.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.mjs +28 -16
- package/dist/jsx/fields/DatePicker/parts.mjs.map +1 -1
- package/dist/jsx/fields/DatePicker/parts.native.js +28 -14
- package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
- package/dist/jsx/fields/FileUpload/index.mjs +6 -0
- package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
- package/dist/jsx/fields/FileUpload/index.native.js +6 -0
- package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/GeolocationMap.mjs.map +1 -1
- package/dist/jsx/fields/Geolocation/GeolocationMap.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/geocoder.mjs +33 -0
- package/dist/jsx/fields/Geolocation/geocoder.mjs.map +1 -0
- package/dist/jsx/fields/Geolocation/geocoder.native.js +68 -0
- package/dist/jsx/fields/Geolocation/geocoder.native.js.map +1 -0
- package/dist/jsx/fields/Geolocation/index.mjs +792 -149
- package/dist/jsx/fields/Geolocation/index.mjs.map +1 -1
- package/dist/jsx/fields/Geolocation/index.native.js +856 -167
- package/dist/jsx/fields/Geolocation/index.native.js.map +1 -1
- package/dist/jsx/fields/Geolocation/nativeSearchFocus.mjs +19 -0
- package/dist/jsx/fields/Geolocation/nativeSearchFocus.mjs.map +1 -0
- package/dist/jsx/fields/Geolocation/nativeSearchFocus.native.js +47 -0
- package/dist/jsx/fields/Geolocation/nativeSearchFocus.native.js.map +1 -0
- package/dist/jsx/fields/Icon/drawnSet.mjs +16 -3
- package/dist/jsx/fields/Icon/drawnSet.mjs.map +1 -1
- package/dist/jsx/fields/Icon/drawnSet.native.js +20 -3
- package/dist/jsx/fields/Icon/drawnSet.native.js.map +1 -1
- package/dist/jsx/fields/Icon/index.mjs +93 -18
- package/dist/jsx/fields/Icon/index.mjs.map +1 -1
- package/dist/jsx/fields/Icon/index.native.js +115 -31
- package/dist/jsx/fields/Icon/index.native.js.map +1 -1
- package/dist/jsx/fields/Input/index.mjs +5 -12
- package/dist/jsx/fields/Input/index.mjs.map +1 -1
- package/dist/jsx/fields/Input/index.native.js +5 -13
- package/dist/jsx/fields/Input/index.native.js.map +1 -1
- package/dist/jsx/fields/PhoneInput/index.mjs +2 -2
- package/dist/jsx/fields/PhoneInput/index.mjs.map +1 -1
- package/dist/jsx/fields/PhoneInput/index.native.js +2 -2
- package/dist/jsx/fields/PhoneInput/index.native.js.map +1 -1
- package/dist/jsx/fields/RadioGroup/index.mjs +34 -5
- package/dist/jsx/fields/RadioGroup/index.mjs.map +1 -1
- package/dist/jsx/fields/RadioGroup/index.native.js +49 -7
- package/dist/jsx/fields/RadioGroup/index.native.js.map +1 -1
- package/dist/jsx/fields/SearchInput/index.mjs +9 -10
- package/dist/jsx/fields/SearchInput/index.mjs.map +1 -1
- package/dist/jsx/fields/SearchInput/index.native.js +8 -9
- package/dist/jsx/fields/SearchInput/index.native.js.map +1 -1
- package/dist/jsx/fields/Select/index.mjs +42 -11
- package/dist/jsx/fields/Select/index.mjs.map +1 -1
- package/dist/jsx/fields/Select/index.native.js +52 -20
- package/dist/jsx/fields/Select/index.native.js.map +1 -1
- package/dist/jsx/fields/Stepper/index.mjs +145 -32
- package/dist/jsx/fields/Stepper/index.mjs.map +1 -1
- package/dist/jsx/fields/Stepper/index.native.js +151 -31
- package/dist/jsx/fields/Stepper/index.native.js.map +1 -1
- package/dist/jsx/fields/ToggleGroup/index.mjs +35 -2
- package/dist/jsx/fields/ToggleGroup/index.mjs.map +1 -1
- package/dist/jsx/fields/ToggleGroup/index.native.js +42 -2
- package/dist/jsx/fields/ToggleGroup/index.native.js.map +1 -1
- package/dist/jsx/index.js +2 -1
- package/dist/jsx/index.js.map +1 -1
- package/dist/jsx/index.mjs +2 -1
- package/dist/jsx/index.mjs.map +1 -1
- package/dist/jsx/index.native.js +2 -0
- package/dist/jsx/index.native.js.map +1 -1
- package/dist/jsx/shared/focusManagement.mjs +24 -11
- package/dist/jsx/shared/focusManagement.mjs.map +1 -1
- package/dist/jsx/shared/focusManagement.native.js +24 -11
- package/dist/jsx/shared/focusManagement.native.js.map +1 -1
- package/dist/jsx/shared/nativeA11y.mjs +31 -0
- package/dist/jsx/shared/nativeA11y.mjs.map +1 -0
- package/dist/jsx/shared/nativeA11y.native.js +61 -0
- package/dist/jsx/shared/nativeA11y.native.js.map +1 -0
- package/package.json +9 -7
- package/src/Button/Button.fontWeight.spec.tsx +75 -0
- package/src/Button/Button.labelInk.spec.tsx +21 -18
- package/src/Button/Button.outlinedChannel.spec.tsx +46 -0
- package/src/Button/Button.sizeLadder.spec.tsx +4 -3
- package/src/Button/Button.stories.tsx +20 -0
- package/src/Button/index.tsx +30 -7
- package/src/Chip/Chip.spec.tsx +3 -1
- package/src/Chip/index.tsx +1 -5
- package/src/FieldGroup.stories.tsx +3 -7
- package/src/FieldLayout.stories.tsx +75 -12
- package/src/Fieldset.stories.tsx +3 -7
- package/src/FloatingPanel/FloatingPanel.native.spec.tsx +54 -0
- package/src/FloatingPanel/FloatingPanel.spec.tsx +109 -0
- package/src/FloatingPanel/index.native.tsx +24 -7
- package/src/FloatingPanel/index.tsx +80 -13
- package/src/FloatingPanel/nestedAction.spec.ts +36 -0
- package/src/FloatingPanel/nestedAction.ts +15 -0
- package/src/FloatingPanel/panelWidthContract.spec.ts +12 -15
- package/src/FormGrid.stories.tsx +5 -11
- package/src/FormsIntegration.stories.tsx +2 -6
- package/src/InputParts/InputButton.spec.tsx +16 -0
- package/src/InputParts/index.tsx +34 -7
- package/src/InputParts/layoutGap.spec.tsx +43 -0
- package/src/Wheel/Wheel.spec.tsx +16 -0
- package/src/Wheel/index.tsx +3 -3
- package/src/fieldFamilyStories.radius.spec.tsx +118 -0
- package/src/fieldLayout.spec.tsx +42 -1
- package/src/fieldLayout.tsx +9 -9
- package/src/fields/Barcode/Barcode.spec.tsx +2 -0
- package/src/fields/Checkbox/CheckboxFieldFrame.spec.tsx +18 -0
- package/src/fields/Checkbox/CheckboxFieldFrame.tsx +6 -1
- package/src/fields/Combobox/Combobox.spec.tsx +48 -1
- package/src/fields/Combobox/index.tsx +53 -39
- package/src/fields/DatePicker/Calendar.tsx +4 -1
- package/src/fields/DatePicker/DatePicker.stories.tsx +22 -1
- package/src/fields/DatePicker/DateRangePicker.tsx +4 -2
- package/src/fields/DatePicker/DatetimePicker.catalog.tsx +21 -19
- package/src/fields/DatePicker/DatetimePicker.native.spec.tsx +144 -0
- package/src/fields/DatePicker/DatetimePicker.native.tsx +57 -32
- package/src/fields/DatePicker/DatetimePicker.stories.tsx +22 -0
- package/src/fields/DatePicker/MonthPicker.tsx +8 -3
- package/src/fields/DatePicker/MultiDatePicker.tsx +4 -2
- package/src/fields/DatePicker/index.native.tsx +1 -0
- package/src/fields/DatePicker/parts.spec.tsx +56 -0
- package/src/fields/DatePicker/parts.tsx +33 -12
- package/src/fields/FileUpload/FileUpload.spec.tsx +29 -0
- package/src/fields/FileUpload/index.tsx +6 -0
- package/src/fields/Geolocation/Geolocation.spec.tsx +287 -35
- package/src/fields/Geolocation/Geolocation.stories.tsx +141 -7
- package/src/fields/Geolocation/GeolocationMap.native.tsx +3 -0
- package/src/fields/Geolocation/GeolocationMap.tsx +4 -0
- package/src/fields/Geolocation/geocoder.spec.ts +59 -0
- package/src/fields/Geolocation/geocoder.ts +84 -0
- package/src/fields/Geolocation/geocoderSeam.spec.tsx +203 -0
- package/src/fields/Geolocation/index.tsx +912 -180
- package/src/fields/Geolocation/nativeSearchFocus.spec.ts +34 -0
- package/src/fields/Geolocation/nativeSearchFocus.ts +19 -0
- package/src/fields/Geolocation/salvage.spec.tsx +398 -0
- package/src/fields/Geolocation/storyProviders.spec.tsx +44 -0
- package/src/fields/Icon/Icon.spec.tsx +215 -1
- package/src/fields/Icon/Icon.stories.tsx +9 -1
- package/src/fields/Icon/drawnSet.tsx +44 -4
- package/src/fields/Icon/index.tsx +118 -18
- package/src/fields/Input/Input.copy.spec.tsx +1 -0
- package/src/fields/Input/Input.spec.tsx +50 -0
- package/src/fields/Input/Input.stories.tsx +1 -1
- package/src/fields/Input/index.tsx +7 -13
- package/src/fields/PhoneInput/index.tsx +2 -2
- package/src/fields/RadioGroup/RadioGroup.native.spec.tsx +67 -0
- package/src/fields/RadioGroup/index.tsx +82 -8
- package/src/fields/SearchInput/SearchInput.spec.tsx +14 -0
- package/src/fields/SearchInput/index.tsx +5 -6
- package/src/fields/Select/Select.spec.tsx +54 -0
- package/src/fields/Select/index.tsx +52 -17
- package/src/fields/Stepper/Stepper.spec.tsx +34 -1
- package/src/fields/Stepper/index.tsx +193 -33
- package/src/fields/ToggleGroup/ToggleGroup.native.spec.tsx +73 -0
- package/src/fields/ToggleGroup/ToggleGroup.spec.tsx +49 -0
- package/src/fields/ToggleGroup/index.tsx +76 -1
- package/src/index.ts +9 -0
- package/src/shared/focusManagement.spec.tsx +68 -0
- package/src/shared/focusManagement.ts +20 -10
- package/src/shared/nativeA11y.spec.ts +64 -0
- package/src/shared/nativeA11y.ts +80 -0
- package/types/Button/index.d.ts +22 -3
- package/types/Button/index.d.ts.map +1 -1
- package/types/Chip/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.d.ts +11 -1
- package/types/FloatingPanel/index.d.ts.map +1 -1
- package/types/FloatingPanel/index.native.d.ts +2 -1
- package/types/FloatingPanel/index.native.d.ts.map +1 -1
- package/types/FloatingPanel/nestedAction.d.ts +13 -0
- package/types/FloatingPanel/nestedAction.d.ts.map +1 -0
- package/types/InputParts/index.d.ts.map +1 -1
- package/types/fields/Checkbox/CheckboxFieldFrame.d.ts +46 -2
- package/types/fields/Checkbox/CheckboxFieldFrame.d.ts.map +1 -1
- package/types/fields/Checkbox/index.d.ts +3 -3
- package/types/fields/Combobox/index.d.ts +3 -1
- package/types/fields/Combobox/index.d.ts.map +1 -1
- package/types/fields/DatePicker/Calendar.d.ts.map +1 -1
- package/types/fields/DatePicker/DateRangePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/DatetimePicker.catalog.d.ts.map +1 -1
- package/types/fields/DatePicker/DatetimePicker.native.d.ts.map +1 -1
- package/types/fields/DatePicker/MonthPicker.d.ts.map +1 -1
- package/types/fields/DatePicker/MultiDatePicker.d.ts.map +1 -1
- package/types/fields/DatePicker/index.native.d.ts.map +1 -1
- package/types/fields/DatePicker/parts.d.ts.map +1 -1
- package/types/fields/FileUpload/index.d.ts.map +1 -1
- package/types/fields/Geolocation/GeolocationMap.d.ts +4 -0
- package/types/fields/Geolocation/GeolocationMap.d.ts.map +1 -1
- package/types/fields/Geolocation/GeolocationMap.native.d.ts +3 -0
- package/types/fields/Geolocation/GeolocationMap.native.d.ts.map +1 -1
- package/types/fields/Geolocation/geocoder.d.ts +53 -0
- package/types/fields/Geolocation/geocoder.d.ts.map +1 -0
- package/types/fields/Geolocation/index.d.ts +18 -2
- package/types/fields/Geolocation/index.d.ts.map +1 -1
- package/types/fields/Geolocation/nativeSearchFocus.d.ts +8 -0
- package/types/fields/Geolocation/nativeSearchFocus.d.ts.map +1 -0
- package/types/fields/Icon/drawnSet.d.ts.map +1 -1
- package/types/fields/Icon/index.d.ts.map +1 -1
- package/types/fields/Input/index.d.ts.map +1 -1
- package/types/fields/PhoneInput/index.d.ts.map +1 -1
- package/types/fields/RadioGroup/index.d.ts +30 -3
- package/types/fields/RadioGroup/index.d.ts.map +1 -1
- package/types/fields/SearchInput/index.d.ts.map +1 -1
- package/types/fields/Select/index.d.ts.map +1 -1
- package/types/fields/Stepper/index.d.ts.map +1 -1
- package/types/fields/ToggleGroup/index.d.ts +31 -2
- package/types/fields/ToggleGroup/index.d.ts.map +1 -1
- package/types/index.d.ts +2 -0
- package/types/index.d.ts.map +1 -1
- package/types/shared/focusManagement.d.ts +2 -2
- package/types/shared/focusManagement.d.ts.map +1 -1
- package/types/shared/nativeA11y.d.ts +61 -0
- package/types/shared/nativeA11y.d.ts.map +1 -0
- package/src/router.d.ts +0 -16
|
@@ -2,6 +2,7 @@ import type { DeepKeys, DeepValue } from "@tanstack/form-core";
|
|
|
2
2
|
import { ChevronLeft, ChevronRight } from "@tamagui/lucide-icons-2";
|
|
3
3
|
import { type ComponentProps, useCallback, useEffect, useRef, useState } from "react";
|
|
4
4
|
import { Text, View, useProps, type Popover } from "tamagui";
|
|
5
|
+
import { useGlyphColor } from "@multiplatform.one/theme";
|
|
5
6
|
|
|
6
7
|
import { Field, FieldLayout } from "../../fieldLayout";
|
|
7
8
|
import { t } from "../../shared/t";
|
|
@@ -107,6 +108,7 @@ function MonthPickerBody({
|
|
|
107
108
|
maxYear,
|
|
108
109
|
}: MonthPickerBodyProps) {
|
|
109
110
|
const { knobProps } = useCalendarKnobs();
|
|
111
|
+
const glyphColor = useGlyphColor();
|
|
110
112
|
const { px } = knobProps.nestedControl;
|
|
111
113
|
const [viewMode, setViewMode] = useState<ViewMode>("month");
|
|
112
114
|
const year = displayDate.getFullYear();
|
|
@@ -122,6 +124,7 @@ function MonthPickerBody({
|
|
|
122
124
|
const handleSelectYear = useCallback(
|
|
123
125
|
(selectedYear: number) => {
|
|
124
126
|
const newDate = new Date(displayDate);
|
|
127
|
+
newDate.setDate(1);
|
|
125
128
|
newDate.setFullYear(selectedYear);
|
|
126
129
|
onSetDisplayDate(newDate);
|
|
127
130
|
setViewMode("month");
|
|
@@ -131,6 +134,7 @@ function MonthPickerBody({
|
|
|
131
134
|
|
|
132
135
|
const handlePrevYear = useCallback(() => {
|
|
133
136
|
const newDate = new Date(displayDate);
|
|
137
|
+
newDate.setDate(1);
|
|
134
138
|
newDate.setFullYear(newDate.getFullYear() - 1);
|
|
135
139
|
if (minYear && newDate.getFullYear() < minYear) return;
|
|
136
140
|
onSetDisplayDate(newDate);
|
|
@@ -138,6 +142,7 @@ function MonthPickerBody({
|
|
|
138
142
|
|
|
139
143
|
const handleNextYear = useCallback(() => {
|
|
140
144
|
const newDate = new Date(displayDate);
|
|
145
|
+
newDate.setDate(1);
|
|
141
146
|
newDate.setFullYear(newDate.getFullYear() + 1);
|
|
142
147
|
if (maxYear && newDate.getFullYear() > maxYear) return;
|
|
143
148
|
onSetDisplayDate(newDate);
|
|
@@ -171,7 +176,7 @@ function MonthPickerBody({
|
|
|
171
176
|
{...knobProps.gap}
|
|
172
177
|
width={px * 7}
|
|
173
178
|
{...animation}
|
|
174
|
-
transition=
|
|
179
|
+
transition={knobProps.transition}
|
|
175
180
|
>
|
|
176
181
|
<View flexDirection="row" width={px * 7} alignItems="center" justifyContent="space-between">
|
|
177
182
|
<CalendarChromeButton
|
|
@@ -181,7 +186,7 @@ function MonthPickerBody({
|
|
|
181
186
|
label={t("Previous year")}
|
|
182
187
|
>
|
|
183
188
|
<View opacity={prevDisabled ? 0.4 : 1}>
|
|
184
|
-
<ChevronLeft size={
|
|
189
|
+
<ChevronLeft size={knobProps.controlIcon.width} color={glyphColor} />
|
|
185
190
|
</View>
|
|
186
191
|
</CalendarChromeButton>
|
|
187
192
|
|
|
@@ -198,7 +203,7 @@ function MonthPickerBody({
|
|
|
198
203
|
label={t("Next year")}
|
|
199
204
|
>
|
|
200
205
|
<View opacity={nextDisabled ? 0.4 : 1}>
|
|
201
|
-
<ChevronRight size={
|
|
206
|
+
<ChevronRight size={knobProps.controlIcon.width} color={glyphColor} />
|
|
202
207
|
</View>
|
|
203
208
|
</CalendarChromeButton>
|
|
204
209
|
</View>
|
|
@@ -209,6 +209,7 @@ function DualCalendarBody({
|
|
|
209
209
|
|
|
210
210
|
const prevMonthDate = useMemo(() => {
|
|
211
211
|
const date = new Date(displayDate);
|
|
212
|
+
date.setDate(1);
|
|
212
213
|
date.setMonth(date.getMonth() - 1);
|
|
213
214
|
return date;
|
|
214
215
|
}, [displayDate]);
|
|
@@ -223,6 +224,7 @@ function DualCalendarBody({
|
|
|
223
224
|
const handleSetDisplayForPrev = useCallback(
|
|
224
225
|
(date: Date) => {
|
|
225
226
|
const next = new Date(date);
|
|
227
|
+
next.setDate(1);
|
|
226
228
|
next.setMonth(next.getMonth() + 1);
|
|
227
229
|
setDisplayDate(next);
|
|
228
230
|
},
|
|
@@ -231,7 +233,7 @@ function DualCalendarBody({
|
|
|
231
233
|
|
|
232
234
|
if (!fullWidthMode) {
|
|
233
235
|
return (
|
|
234
|
-
<View
|
|
236
|
+
<View>
|
|
235
237
|
<SingleCalendar
|
|
236
238
|
displayDate={displayDate}
|
|
237
239
|
selectedDates={selectedDates}
|
|
@@ -247,7 +249,7 @@ function DualCalendarBody({
|
|
|
247
249
|
}
|
|
248
250
|
|
|
249
251
|
return (
|
|
250
|
-
<View flexDirection="row" {...knobProps.gap}
|
|
252
|
+
<View flexDirection="row" {...knobProps.gap}>
|
|
251
253
|
<SingleCalendar
|
|
252
254
|
displayDate={prevMonthDate}
|
|
253
255
|
selectedDates={selectedDates}
|
|
@@ -158,6 +158,7 @@ export function DatePicker<
|
|
|
158
158
|
disabled={disabled}
|
|
159
159
|
accessibilityRole="button"
|
|
160
160
|
accessibilityLabel={hasLabel ? undefined : t("Date")}
|
|
161
|
+
accessibilityValue={{ text: formatDateDisplay(selectedDate) || placeholder }}
|
|
161
162
|
style={{ width: "100%" }}
|
|
162
163
|
>
|
|
163
164
|
<DatePickerInputTrigger
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { act, fireEvent, renderHook } from "@testing-library/react";
|
|
2
|
+
import { useState } from "react";
|
|
3
|
+
import { describe, expect, it } from "vitest";
|
|
4
|
+
import { renderWithProviders } from "@multiplatform.one/test-utils";
|
|
5
|
+
import { CalendarViewSwitcher, useCalendarData, useDateNavigation, type ViewMode } from "./parts";
|
|
6
|
+
|
|
7
|
+
function MonthCursor({ initial, view }: { initial: Date; view: ViewMode }) {
|
|
8
|
+
const [date, setDate] = useState(initial);
|
|
9
|
+
const [viewMode, setViewMode] = useState(view);
|
|
10
|
+
const [yearPageStart, setYearPageStart] = useState(2020);
|
|
11
|
+
const calendarData = useCalendarData(date);
|
|
12
|
+
return (
|
|
13
|
+
<>
|
|
14
|
+
<output data-testid="display-month">{`${date.getFullYear()}-${date.getMonth() + 1}`}</output>
|
|
15
|
+
<CalendarViewSwitcher
|
|
16
|
+
calendarData={calendarData}
|
|
17
|
+
displayDate={date}
|
|
18
|
+
onSetDisplayDate={setDate}
|
|
19
|
+
viewMode={viewMode}
|
|
20
|
+
setViewMode={setViewMode}
|
|
21
|
+
yearPageStart={yearPageStart}
|
|
22
|
+
setYearPageStart={setYearPageStart}
|
|
23
|
+
>
|
|
24
|
+
<span>Day view</span>
|
|
25
|
+
</CalendarViewSwitcher>
|
|
26
|
+
</>
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
describe("calendar display-month navigation", () => {
|
|
31
|
+
it.each([
|
|
32
|
+
["next", 3],
|
|
33
|
+
["prev", 1],
|
|
34
|
+
] as const)("moves %s from March 31 without skipping a month", (direction, month) => {
|
|
35
|
+
const initial = new Date(2024, 2, 31);
|
|
36
|
+
const { result } = renderHook(() => useDateNavigation(initial));
|
|
37
|
+
act(() => result.current.navigateMonth(direction));
|
|
38
|
+
expect(result.current.displayDate.getFullYear()).toBe(2024);
|
|
39
|
+
expect(result.current.displayDate.getMonth()).toBe(month);
|
|
40
|
+
expect(initial.getDate()).toBe(31);
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it("selects February from a January 31 display cursor", async () => {
|
|
44
|
+
const result = renderWithProviders(
|
|
45
|
+
<MonthCursor initial={new Date(2024, 0, 31)} view="month" />,
|
|
46
|
+
);
|
|
47
|
+
await act(async () => fireEvent.click(result.getByText("Feb")));
|
|
48
|
+
expect(result.getByTestId("display-month").textContent).toBe("2024-2");
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it("keeps February when switching a leap-day cursor to a non-leap year", async () => {
|
|
52
|
+
const result = renderWithProviders(<MonthCursor initial={new Date(2024, 1, 29)} view="year" />);
|
|
53
|
+
await act(async () => fireEvent.click(result.getByText("2025")));
|
|
54
|
+
expect(result.getByTestId("display-month").textContent).toBe("2025-2");
|
|
55
|
+
});
|
|
56
|
+
});
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
formatAbsoluteDate,
|
|
11
11
|
getMonthNames,
|
|
12
12
|
useAccentOnSurface,
|
|
13
|
+
useGlyphColor,
|
|
13
14
|
useResolvedKnobs,
|
|
14
15
|
} from "@multiplatform.one/theme";
|
|
15
16
|
import {
|
|
@@ -23,7 +24,8 @@ import {
|
|
|
23
24
|
} from "react";
|
|
24
25
|
import { AnimatePresence, Text, View, isWeb } from "tamagui";
|
|
25
26
|
|
|
26
|
-
import { FloatingPanel } from "../../FloatingPanel";
|
|
27
|
+
import { FloatingPanel, floatingPanelActionProps, isNestedPanelAction } from "../../FloatingPanel";
|
|
28
|
+
import type { PanelActionEvent } from "../../FloatingPanel/nestedAction";
|
|
27
29
|
import { Input as InputParts } from "../../InputParts";
|
|
28
30
|
import { formCommonColors } from "../../shared/colorRamps";
|
|
29
31
|
import { t } from "../../shared/t";
|
|
@@ -141,6 +143,7 @@ export function useDateNavigation(initialDate?: Date) {
|
|
|
141
143
|
const navigateMonth = useCallback((direction: "prev" | "next") => {
|
|
142
144
|
setDisplayDate((prev) => {
|
|
143
145
|
const next = new Date(prev);
|
|
146
|
+
next.setDate(1);
|
|
144
147
|
next.setMonth(next.getMonth() + (direction === "prev" ? -1 : 1));
|
|
145
148
|
return next;
|
|
146
149
|
});
|
|
@@ -199,7 +202,7 @@ export function CalendarPanelFrame({ children }: { children: ReactNode }) {
|
|
|
199
202
|
flexDirection="column"
|
|
200
203
|
alignItems="center"
|
|
201
204
|
{...knobProps.gap}
|
|
202
|
-
|
|
205
|
+
minWidth={px * 7}
|
|
203
206
|
alignSelf="center"
|
|
204
207
|
{...knobProps.panelPadding}
|
|
205
208
|
data-testid="date-picker-calendar"
|
|
@@ -484,7 +487,7 @@ export function CalendarDays({
|
|
|
484
487
|
return (
|
|
485
488
|
<AnimatePresence key={animationKey}>
|
|
486
489
|
<View
|
|
487
|
-
transition=
|
|
490
|
+
transition={knobProps.transition}
|
|
488
491
|
{...animation}
|
|
489
492
|
alignSelf="center"
|
|
490
493
|
gap="$1"
|
|
@@ -616,6 +619,7 @@ export function CalendarHeader({
|
|
|
616
619
|
showNext = true,
|
|
617
620
|
}: CalendarHeaderProps) {
|
|
618
621
|
const { knobProps } = useCalendarKnobs();
|
|
622
|
+
const glyphColor = useGlyphColor();
|
|
619
623
|
const { px } = knobProps.nestedControl;
|
|
620
624
|
return (
|
|
621
625
|
<View
|
|
@@ -627,7 +631,7 @@ export function CalendarHeader({
|
|
|
627
631
|
>
|
|
628
632
|
{showPrev && onPrevMonth ? (
|
|
629
633
|
<CalendarChromeButton onPress={onPrevMonth} label={t("Previous month")}>
|
|
630
|
-
<CaretLeftIcon size={
|
|
634
|
+
<CaretLeftIcon size={knobProps.controlIcon.width} color={glyphColor} />
|
|
631
635
|
</CalendarChromeButton>
|
|
632
636
|
) : (
|
|
633
637
|
<View width={px} height={px} />
|
|
@@ -648,7 +652,7 @@ export function CalendarHeader({
|
|
|
648
652
|
|
|
649
653
|
{showNext && onNextMonth ? (
|
|
650
654
|
<CalendarChromeButton onPress={onNextMonth} label={t("Next month")}>
|
|
651
|
-
<CaretRightIcon size={
|
|
655
|
+
<CaretRightIcon size={knobProps.controlIcon.width} color={glyphColor} />
|
|
652
656
|
</CalendarChromeButton>
|
|
653
657
|
) : (
|
|
654
658
|
<View width={px} height={px} />
|
|
@@ -677,7 +681,7 @@ export function MonthGrid({ currentYear, selectedMonth, onSelectMonth }: MonthGr
|
|
|
677
681
|
<AnimatePresence key={animationKey}>
|
|
678
682
|
<View
|
|
679
683
|
{...animation}
|
|
680
|
-
transition=
|
|
684
|
+
transition={knobProps.transition}
|
|
681
685
|
flexDirection="row"
|
|
682
686
|
flexWrap="wrap"
|
|
683
687
|
width={px * 7}
|
|
@@ -752,6 +756,7 @@ export function YearGrid({
|
|
|
752
756
|
onNextPage,
|
|
753
757
|
}: YearGridProps) {
|
|
754
758
|
const { knobProps } = useCalendarKnobs();
|
|
759
|
+
const glyphColor = useGlyphColor();
|
|
755
760
|
const { px, hitSlop, box } = splitNestedControl(knobProps.nestedControl);
|
|
756
761
|
const cellW = (px * 7) / 3;
|
|
757
762
|
const years = useMemo(() => {
|
|
@@ -768,18 +773,24 @@ export function YearGrid({
|
|
|
768
773
|
<View width={px * 7} alignSelf="center" {...knobProps.gap}>
|
|
769
774
|
<View flexDirection="row" width={px * 7} alignItems="center" justifyContent="space-between">
|
|
770
775
|
<CalendarChromeButton onPress={onPrevPage} label={t("Previous years")}>
|
|
771
|
-
<CaretLeftIcon size={
|
|
776
|
+
<CaretLeftIcon size={knobProps.controlIcon.width} color={glyphColor} />
|
|
772
777
|
</CalendarChromeButton>
|
|
773
778
|
<Text {...knobProps.label} {...knobProps.textWeight}>
|
|
774
779
|
{years[0]} – {years[years.length - 1]}
|
|
775
780
|
</Text>
|
|
776
781
|
<CalendarChromeButton onPress={onNextPage} label={t("Next years")}>
|
|
777
|
-
<CaretRightIcon size={
|
|
782
|
+
<CaretRightIcon size={knobProps.controlIcon.width} color={glyphColor} />
|
|
778
783
|
</CalendarChromeButton>
|
|
779
784
|
</View>
|
|
780
785
|
|
|
781
786
|
<AnimatePresence key={animationKey}>
|
|
782
|
-
<View
|
|
787
|
+
<View
|
|
788
|
+
{...animation}
|
|
789
|
+
transition={knobProps.transition}
|
|
790
|
+
flexDirection="row"
|
|
791
|
+
flexWrap="wrap"
|
|
792
|
+
width={px * 7}
|
|
793
|
+
>
|
|
783
794
|
{years.map((year) => {
|
|
784
795
|
const isSelected = year === selectedYear;
|
|
785
796
|
return (
|
|
@@ -863,6 +874,7 @@ export function DatePickerClearButton({
|
|
|
863
874
|
}) {
|
|
864
875
|
return (
|
|
865
876
|
<InputParts.Button
|
|
877
|
+
{...floatingPanelActionProps}
|
|
866
878
|
data-testid="date-picker-clear"
|
|
867
879
|
aria-label={label ?? t("Clear date")}
|
|
868
880
|
disabled={disabled}
|
|
@@ -894,8 +906,10 @@ export function DatePickerInputTrigger({
|
|
|
894
906
|
"aria-required": ariaRequired,
|
|
895
907
|
"aria-invalid": ariaInvalid,
|
|
896
908
|
}: DatePickerInputTriggerProps) {
|
|
897
|
-
const handleTriggerKey = (
|
|
898
|
-
|
|
909
|
+
const handleTriggerKey = (
|
|
910
|
+
e: PanelActionEvent & { key?: string; code?: string; preventDefault?: () => void },
|
|
911
|
+
) => {
|
|
912
|
+
if (disabled || isNestedPanelAction(e)) return;
|
|
899
913
|
const key = e.key;
|
|
900
914
|
if (key === "Enter" || key === " " || key === "ArrowDown" || e.code === "Space") {
|
|
901
915
|
e.preventDefault?.();
|
|
@@ -920,9 +934,13 @@ export function DatePickerInputTrigger({
|
|
|
920
934
|
alignItems="center"
|
|
921
935
|
width="100%"
|
|
922
936
|
cursor={disabled ? "not-allowed" : "pointer"}
|
|
937
|
+
// Native parents own the tap; expanded field paint must not consume it.
|
|
938
|
+
pointerEvents={isWeb ? undefined : "none"}
|
|
923
939
|
>
|
|
924
940
|
<InputParts.Box
|
|
925
941
|
theme={error ? "red" : undefined}
|
|
942
|
+
// Yoga has no intrinsic TextInput width to size this row child.
|
|
943
|
+
{...(isWeb ? undefined : { flex: 1, minWidth: 0 })}
|
|
926
944
|
// Elevation is an overlay recipe: it belongs on the open panel, never
|
|
927
945
|
// on the closed text-field trigger.
|
|
928
946
|
elevation={undefined}
|
|
@@ -1014,7 +1032,8 @@ export function DatePickerPopoverShell({
|
|
|
1014
1032
|
triggerEnd={triggerEnd ?? nativeClear}
|
|
1015
1033
|
disabled={disabled}
|
|
1016
1034
|
sizing="grow"
|
|
1017
|
-
|
|
1035
|
+
contentPadding="none"
|
|
1036
|
+
widthMode="fit-content"
|
|
1018
1037
|
triggerA11y={triggerA11y}
|
|
1019
1038
|
>
|
|
1020
1039
|
{children}
|
|
@@ -1051,6 +1070,7 @@ export function CalendarViewSwitcher({
|
|
|
1051
1070
|
const handleSelectMonth = useCallback(
|
|
1052
1071
|
(month: number) => {
|
|
1053
1072
|
const newDate = new Date(displayDate);
|
|
1073
|
+
newDate.setDate(1);
|
|
1054
1074
|
newDate.setMonth(month);
|
|
1055
1075
|
onSetDisplayDate(newDate);
|
|
1056
1076
|
setViewMode("day");
|
|
@@ -1061,6 +1081,7 @@ export function CalendarViewSwitcher({
|
|
|
1061
1081
|
const handleSelectYear = useCallback(
|
|
1062
1082
|
(year: number) => {
|
|
1063
1083
|
const newDate = new Date(displayDate);
|
|
1084
|
+
newDate.setDate(1);
|
|
1064
1085
|
newDate.setFullYear(year);
|
|
1065
1086
|
onSetDisplayDate(newDate);
|
|
1066
1087
|
setViewMode("month");
|
|
@@ -45,6 +45,14 @@ function getZone(container: Element): HTMLElement {
|
|
|
45
45
|
return zone as HTMLElement;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
function borderWidthAtomPx(el: HTMLElement, prefix: string): number {
|
|
49
|
+
const atom = el.className.split(/\s+/).find((cls) => cls.startsWith(prefix));
|
|
50
|
+
// No atom means the side declares no width and falls through to the UA
|
|
51
|
+
// initial, which is exactly the defect — report it as such, not as 0.
|
|
52
|
+
if (!atom) return Number.NaN;
|
|
53
|
+
return Number.parseFloat(atom.slice(prefix.length));
|
|
54
|
+
}
|
|
55
|
+
|
|
48
56
|
async function pickFile(container: Element, file: File) {
|
|
49
57
|
const input = container.querySelector("input[type='file']") as HTMLInputElement | null;
|
|
50
58
|
expect(input).toBeTruthy();
|
|
@@ -317,6 +325,27 @@ describe("FileUpload bento-derived dropzone (MPO-57)", () => {
|
|
|
317
325
|
expect(zone.textContent).toContain("Choose File");
|
|
318
326
|
});
|
|
319
327
|
|
|
328
|
+
it("hangs the file list off ONE top hairline — bottom/left/right are 0, not the UA 3px initial (MPO-124)", async () => {
|
|
329
|
+
const { container } = renderWithHouseThemes(
|
|
330
|
+
<FileUpload label="Attachment" name="attachment" />,
|
|
331
|
+
);
|
|
332
|
+
await pickFile(container, new File(["hello"], "hello.txt", { type: "text/plain" }));
|
|
333
|
+
|
|
334
|
+
const zone = getZone(container);
|
|
335
|
+
const flist = zone.querySelector('[data-file-upload="files"]') as HTMLElement;
|
|
336
|
+
expect(flist).toBeTruthy();
|
|
337
|
+
|
|
338
|
+
// The frame declares `borderStyle: dashed` for all four sides. A side that
|
|
339
|
+
// declares no width therefore does not render nothing — it renders the CSS
|
|
340
|
+
// initial `medium` (3px) in `currentColor` ($color12), which is a heavy
|
|
341
|
+
// dashed BOX around the picked files instead of the one hairline the
|
|
342
|
+
// divider contract asks for.
|
|
343
|
+
expect(borderWidthAtomPx(flist, "_btw-")).toBe(1);
|
|
344
|
+
for (const prefix of ["_bbw-", "_blw-", "_brw-"] as const) {
|
|
345
|
+
expect(borderWidthAtomPx(flist, prefix)).toBe(0);
|
|
346
|
+
}
|
|
347
|
+
});
|
|
348
|
+
|
|
320
349
|
it("keeps compact a space-only dial — CTA stays 44 and remove stays nested 32 (LC-76)", async () => {
|
|
321
350
|
const { container } = renderWithHouseThemes(
|
|
322
351
|
<FileUpload label="Attachment" name="attachment" compact />,
|
|
@@ -170,6 +170,12 @@ const DropOverlayFrame = styled(YStack, {
|
|
|
170
170
|
const UploadFileListFrame = styled(YStack, {
|
|
171
171
|
width: "100%",
|
|
172
172
|
borderTopWidth: 1,
|
|
173
|
+
// A side with a declared style and no declared width is NOT a side with no
|
|
174
|
+
// border: it takes the CSS initial `medium` (3px) in `currentColor`, which
|
|
175
|
+
// boxed the picked files in a heavy $color12 dash (MPO-124).
|
|
176
|
+
borderBottomWidth: 0,
|
|
177
|
+
borderLeftWidth: 0,
|
|
178
|
+
borderRightWidth: 0,
|
|
173
179
|
borderStyle: "dashed",
|
|
174
180
|
borderTopColor: formDropzoneColors.border,
|
|
175
181
|
});
|