@webority/mobile-ui 0.0.39 → 0.2.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/lib/commonjs/components/Accordion/Accordion.js +1 -343
- package/lib/commonjs/components/Accordion/index.js +1 -26
- package/lib/commonjs/components/AmountSlider/AmountSlider.js +1 -209
- package/lib/commonjs/components/AmountSlider/index.js +1 -20
- package/lib/commonjs/components/AnimatePresence/AnimatePresence.js +1 -71
- package/lib/commonjs/components/AnimatePresence/index.js +1 -13
- package/lib/commonjs/components/AppBar/AppBar.js +1 -358
- package/lib/commonjs/components/AppBar/index.js +1 -20
- package/lib/commonjs/components/AppIcon/AppIcon.js +1 -155
- package/lib/commonjs/components/AppIcon/catalog/bold/a.g.js +1 -84
- package/lib/commonjs/components/AppIcon/catalog/bold/b.g.js +1 -89
- package/lib/commonjs/components/AppIcon/catalog/bold/c.g.js +1 -118
- package/lib/commonjs/components/AppIcon/catalog/bold/d.g.js +1 -68
- package/lib/commonjs/components/AppIcon/catalog/bold/e.g.js +1 -46
- package/lib/commonjs/components/AppIcon/catalog/bold/f.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/bold/g.g.js +1 -54
- package/lib/commonjs/components/AppIcon/catalog/bold/h.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/bold/i.g.js +1 -31
- package/lib/commonjs/components/AppIcon/catalog/bold/j.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/bold/k.g.js +1 -20
- package/lib/commonjs/components/AppIcon/catalog/bold/l.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/bold/m.g.js +1 -105
- package/lib/commonjs/components/AppIcon/catalog/bold/n.g.js +1 -34
- package/lib/commonjs/components/AppIcon/catalog/bold/o.g.js +1 -21
- package/lib/commonjs/components/AppIcon/catalog/bold/p.g.js +1 -60
- package/lib/commonjs/components/AppIcon/catalog/bold/q.g.js +1 -22
- package/lib/commonjs/components/AppIcon/catalog/bold/r.g.js +1 -59
- package/lib/commonjs/components/AppIcon/catalog/bold/s.g.js +1 -113
- package/lib/commonjs/components/AppIcon/catalog/bold/t.g.js +1 -74
- package/lib/commonjs/components/AppIcon/catalog/bold/u.g.js +1 -28
- package/lib/commonjs/components/AppIcon/catalog/bold/v.g.js +1 -40
- package/lib/commonjs/components/AppIcon/catalog/bold/w.g.js +1 -41
- package/lib/commonjs/components/AppIcon/catalog/bold/x.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/bold/y.g.js +1 -16
- package/lib/commonjs/components/AppIcon/catalog/bold/z.g.js +1 -17
- package/lib/commonjs/components/AppIcon/catalog/broken/a.g.js +1 -84
- package/lib/commonjs/components/AppIcon/catalog/broken/b.g.js +1 -89
- package/lib/commonjs/components/AppIcon/catalog/broken/c.g.js +1 -118
- package/lib/commonjs/components/AppIcon/catalog/broken/d.g.js +1 -68
- package/lib/commonjs/components/AppIcon/catalog/broken/e.g.js +1 -46
- package/lib/commonjs/components/AppIcon/catalog/broken/f.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/broken/g.g.js +1 -54
- package/lib/commonjs/components/AppIcon/catalog/broken/h.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/broken/i.g.js +1 -31
- package/lib/commonjs/components/AppIcon/catalog/broken/j.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/broken/k.g.js +1 -20
- package/lib/commonjs/components/AppIcon/catalog/broken/l.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/broken/m.g.js +1 -105
- package/lib/commonjs/components/AppIcon/catalog/broken/n.g.js +1 -34
- package/lib/commonjs/components/AppIcon/catalog/broken/o.g.js +1 -21
- package/lib/commonjs/components/AppIcon/catalog/broken/p.g.js +1 -60
- package/lib/commonjs/components/AppIcon/catalog/broken/q.g.js +1 -22
- package/lib/commonjs/components/AppIcon/catalog/broken/r.g.js +1 -59
- package/lib/commonjs/components/AppIcon/catalog/broken/s.g.js +1 -113
- package/lib/commonjs/components/AppIcon/catalog/broken/t.g.js +1 -74
- package/lib/commonjs/components/AppIcon/catalog/broken/u.g.js +1 -28
- package/lib/commonjs/components/AppIcon/catalog/broken/v.g.js +1 -40
- package/lib/commonjs/components/AppIcon/catalog/broken/w.g.js +1 -41
- package/lib/commonjs/components/AppIcon/catalog/broken/x.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/broken/y.g.js +1 -16
- package/lib/commonjs/components/AppIcon/catalog/broken/z.g.js +1 -17
- package/lib/commonjs/components/AppIcon/catalog/bulk/a.g.js +1 -84
- package/lib/commonjs/components/AppIcon/catalog/bulk/b.g.js +1 -89
- package/lib/commonjs/components/AppIcon/catalog/bulk/c.g.js +1 -118
- package/lib/commonjs/components/AppIcon/catalog/bulk/d.g.js +1 -68
- package/lib/commonjs/components/AppIcon/catalog/bulk/e.g.js +1 -46
- package/lib/commonjs/components/AppIcon/catalog/bulk/f.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/bulk/g.g.js +1 -54
- package/lib/commonjs/components/AppIcon/catalog/bulk/h.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/bulk/i.g.js +1 -31
- package/lib/commonjs/components/AppIcon/catalog/bulk/j.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/bulk/k.g.js +1 -20
- package/lib/commonjs/components/AppIcon/catalog/bulk/l.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/bulk/m.g.js +1 -105
- package/lib/commonjs/components/AppIcon/catalog/bulk/n.g.js +1 -34
- package/lib/commonjs/components/AppIcon/catalog/bulk/o.g.js +1 -21
- package/lib/commonjs/components/AppIcon/catalog/bulk/p.g.js +1 -60
- package/lib/commonjs/components/AppIcon/catalog/bulk/q.g.js +1 -22
- package/lib/commonjs/components/AppIcon/catalog/bulk/r.g.js +1 -59
- package/lib/commonjs/components/AppIcon/catalog/bulk/s.g.js +1 -113
- package/lib/commonjs/components/AppIcon/catalog/bulk/t.g.js +1 -74
- package/lib/commonjs/components/AppIcon/catalog/bulk/u.g.js +1 -28
- package/lib/commonjs/components/AppIcon/catalog/bulk/v.g.js +1 -40
- package/lib/commonjs/components/AppIcon/catalog/bulk/w.g.js +1 -41
- package/lib/commonjs/components/AppIcon/catalog/bulk/x.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/bulk/y.g.js +1 -16
- package/lib/commonjs/components/AppIcon/catalog/bulk/z.g.js +1 -17
- package/lib/commonjs/components/AppIcon/catalog/linear/a.g.js +1 -84
- package/lib/commonjs/components/AppIcon/catalog/linear/b.g.js +1 -89
- package/lib/commonjs/components/AppIcon/catalog/linear/c.g.js +1 -118
- package/lib/commonjs/components/AppIcon/catalog/linear/d.g.js +1 -68
- package/lib/commonjs/components/AppIcon/catalog/linear/e.g.js +1 -46
- package/lib/commonjs/components/AppIcon/catalog/linear/f.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/linear/g.g.js +1 -54
- package/lib/commonjs/components/AppIcon/catalog/linear/h.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/linear/i.g.js +1 -31
- package/lib/commonjs/components/AppIcon/catalog/linear/j.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/linear/k.g.js +1 -20
- package/lib/commonjs/components/AppIcon/catalog/linear/l.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/linear/m.g.js +1 -105
- package/lib/commonjs/components/AppIcon/catalog/linear/n.g.js +1 -34
- package/lib/commonjs/components/AppIcon/catalog/linear/o.g.js +1 -21
- package/lib/commonjs/components/AppIcon/catalog/linear/p.g.js +1 -60
- package/lib/commonjs/components/AppIcon/catalog/linear/q.g.js +1 -22
- package/lib/commonjs/components/AppIcon/catalog/linear/r.g.js +1 -59
- package/lib/commonjs/components/AppIcon/catalog/linear/s.g.js +1 -113
- package/lib/commonjs/components/AppIcon/catalog/linear/t.g.js +1 -74
- package/lib/commonjs/components/AppIcon/catalog/linear/u.g.js +1 -28
- package/lib/commonjs/components/AppIcon/catalog/linear/v.g.js +1 -40
- package/lib/commonjs/components/AppIcon/catalog/linear/w.g.js +1 -41
- package/lib/commonjs/components/AppIcon/catalog/linear/x.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/linear/y.g.js +1 -16
- package/lib/commonjs/components/AppIcon/catalog/linear/z.g.js +1 -17
- package/lib/commonjs/components/AppIcon/catalog/outline/a.g.js +1 -84
- package/lib/commonjs/components/AppIcon/catalog/outline/b.g.js +1 -89
- package/lib/commonjs/components/AppIcon/catalog/outline/c.g.js +1 -118
- package/lib/commonjs/components/AppIcon/catalog/outline/d.g.js +1 -68
- package/lib/commonjs/components/AppIcon/catalog/outline/e.g.js +1 -46
- package/lib/commonjs/components/AppIcon/catalog/outline/f.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/outline/g.g.js +1 -54
- package/lib/commonjs/components/AppIcon/catalog/outline/h.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/outline/i.g.js +1 -31
- package/lib/commonjs/components/AppIcon/catalog/outline/j.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/outline/k.g.js +1 -20
- package/lib/commonjs/components/AppIcon/catalog/outline/l.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/outline/m.g.js +1 -105
- package/lib/commonjs/components/AppIcon/catalog/outline/n.g.js +1 -34
- package/lib/commonjs/components/AppIcon/catalog/outline/o.g.js +1 -21
- package/lib/commonjs/components/AppIcon/catalog/outline/p.g.js +1 -60
- package/lib/commonjs/components/AppIcon/catalog/outline/q.g.js +1 -22
- package/lib/commonjs/components/AppIcon/catalog/outline/r.g.js +1 -59
- package/lib/commonjs/components/AppIcon/catalog/outline/s.g.js +1 -113
- package/lib/commonjs/components/AppIcon/catalog/outline/t.g.js +1 -74
- package/lib/commonjs/components/AppIcon/catalog/outline/u.g.js +1 -28
- package/lib/commonjs/components/AppIcon/catalog/outline/v.g.js +1 -40
- package/lib/commonjs/components/AppIcon/catalog/outline/w.g.js +1 -41
- package/lib/commonjs/components/AppIcon/catalog/outline/x.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/outline/y.g.js +1 -16
- package/lib/commonjs/components/AppIcon/catalog/outline/z.g.js +1 -17
- package/lib/commonjs/components/AppIcon/catalog/twotone/a.g.js +1 -84
- package/lib/commonjs/components/AppIcon/catalog/twotone/b.g.js +1 -89
- package/lib/commonjs/components/AppIcon/catalog/twotone/c.g.js +1 -118
- package/lib/commonjs/components/AppIcon/catalog/twotone/d.g.js +1 -68
- package/lib/commonjs/components/AppIcon/catalog/twotone/e.g.js +1 -46
- package/lib/commonjs/components/AppIcon/catalog/twotone/f.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/twotone/g.g.js +1 -54
- package/lib/commonjs/components/AppIcon/catalog/twotone/h.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/twotone/i.g.js +1 -31
- package/lib/commonjs/components/AppIcon/catalog/twotone/j.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/twotone/k.g.js +1 -20
- package/lib/commonjs/components/AppIcon/catalog/twotone/l.g.js +1 -52
- package/lib/commonjs/components/AppIcon/catalog/twotone/m.g.js +1 -105
- package/lib/commonjs/components/AppIcon/catalog/twotone/n.g.js +1 -34
- package/lib/commonjs/components/AppIcon/catalog/twotone/o.g.js +1 -21
- package/lib/commonjs/components/AppIcon/catalog/twotone/p.g.js +1 -60
- package/lib/commonjs/components/AppIcon/catalog/twotone/q.g.js +1 -22
- package/lib/commonjs/components/AppIcon/catalog/twotone/r.g.js +1 -59
- package/lib/commonjs/components/AppIcon/catalog/twotone/s.g.js +1 -113
- package/lib/commonjs/components/AppIcon/catalog/twotone/t.g.js +1 -74
- package/lib/commonjs/components/AppIcon/catalog/twotone/u.g.js +1 -28
- package/lib/commonjs/components/AppIcon/catalog/twotone/v.g.js +1 -40
- package/lib/commonjs/components/AppIcon/catalog/twotone/w.g.js +1 -41
- package/lib/commonjs/components/AppIcon/catalog/twotone/x.g.js +1 -18
- package/lib/commonjs/components/AppIcon/catalog/twotone/y.g.js +1 -16
- package/lib/commonjs/components/AppIcon/catalog/twotone/z.g.js +1 -17
- package/lib/commonjs/components/AppIcon/catalog.g.js +1 -187
- package/lib/commonjs/components/AppIcon/defaultIcons.js +1 -83
- package/lib/commonjs/components/AppIcon/glyphs.g.js +1 -160
- package/lib/commonjs/components/AppIcon/index.js +1 -64
- package/lib/commonjs/components/AppIcon/slotIcon.js +1 -67
- package/lib/commonjs/components/AppIcon/variants.g.js +1 -741
- package/lib/commonjs/components/AsyncBlock/AsyncBlock.js +1 -87
- package/lib/commonjs/components/AsyncBlock/index.js +1 -20
- package/lib/commonjs/components/AuthedImage/AuthedImage.js +1 -230
- package/lib/commonjs/components/AuthedImage/authedImageCache.js +1 -351
- package/lib/commonjs/components/AuthedImage/index.js +1 -45
- package/lib/commonjs/components/Autocomplete/Autocomplete.js +1 -227
- package/lib/commonjs/components/Autocomplete/index.js +1 -13
- package/lib/commonjs/components/Avatar/Avatar.js +1 -502
- package/lib/commonjs/components/Avatar/index.js +1 -32
- package/lib/commonjs/components/Badge/Badge.js +1 -298
- package/lib/commonjs/components/Badge/index.js +1 -20
- package/lib/commonjs/components/Banner/Banner.js +1 -401
- package/lib/commonjs/components/Banner/index.js +1 -20
- package/lib/commonjs/components/BottomNavigation/BottomNavigation.js +1 -893
- package/lib/commonjs/components/BottomNavigation/index.js +1 -20
- package/lib/commonjs/components/BottomSheet/BottomSheet.js +1 -732
- package/lib/commonjs/components/BottomSheet/index.js +1 -26
- package/lib/commonjs/components/Box/Box.js +1 -226
- package/lib/commonjs/components/Box/index.js +1 -37
- package/lib/commonjs/components/Button/Button.js +1 -561
- package/lib/commonjs/components/Button/index.js +1 -20
- package/lib/commonjs/components/Card/Card.js +1 -407
- package/lib/commonjs/components/Card/index.js +1 -20
- package/lib/commonjs/components/Carousel/Carousel.js +1 -587
- package/lib/commonjs/components/Carousel/index.js +1 -20
- package/lib/commonjs/components/Checkbox/Checkbox.js +1 -187
- package/lib/commonjs/components/Checkbox/index.js +1 -20
- package/lib/commonjs/components/Chip/Chip.js +1 -358
- package/lib/commonjs/components/Chip/index.js +1 -20
- package/lib/commonjs/components/ChoiceGroup/ChoiceGroup.js +1 -336
- package/lib/commonjs/components/ChoiceGroup/index.js +1 -20
- package/lib/commonjs/components/Confetti/Confetti.js +1 -382
- package/lib/commonjs/components/Confetti/index.js +1 -13
- package/lib/commonjs/components/DatePicker/DatePicker.js +1 -1054
- package/lib/commonjs/components/DatePicker/index.js +1 -20
- package/lib/commonjs/components/DateRangePicker/DateRangePicker.js +1 -794
- package/lib/commonjs/components/DateRangePicker/index.js +1 -20
- package/lib/commonjs/components/DecimalInput/DecimalInput.js +1 -0
- package/lib/commonjs/components/DecimalInput/index.js +1 -0
- package/lib/commonjs/components/Descriptions/Descriptions.js +1 -107
- package/lib/commonjs/components/Descriptions/index.js +1 -20
- package/lib/commonjs/components/Dialog/Dialog.js +1 -248
- package/lib/commonjs/components/Dialog/index.js +1 -20
- package/lib/commonjs/components/Divider/Divider.js +1 -117
- package/lib/commonjs/components/Divider/index.js +1 -20
- package/lib/commonjs/components/Drawer/Drawer.js +1 -382
- package/lib/commonjs/components/Drawer/index.js +1 -20
- package/lib/commonjs/components/EmptyState/EmptyState.js +1 -236
- package/lib/commonjs/components/EmptyState/index.js +1 -20
- package/lib/commonjs/components/ErrorBoundary/ErrorBoundary.js +1 -136
- package/lib/commonjs/components/ErrorBoundary/index.js +1 -27
- package/lib/commonjs/components/ErrorBoundary/useErrorHandler.js +1 -24
- package/lib/commonjs/components/ErrorBoundary/withErrorBoundary.js +1 -28
- package/lib/commonjs/components/FieldBase/Chevron.js +1 -75
- package/lib/commonjs/components/FieldBase/ChoiceText.js +1 -0
- package/lib/commonjs/components/FieldBase/FieldBase.js +1 -804
- package/lib/commonjs/components/FieldBase/index.js +1 -75
- package/lib/commonjs/components/FieldBase/useFloatingLabel.js +1 -181
- package/lib/commonjs/components/FilePicker/FilePicker.js +1 -797
- package/lib/commonjs/components/FilePicker/index.js +1 -26
- package/lib/commonjs/components/FileViewer/FileViewer.js +1 -259
- package/lib/commonjs/components/FileViewer/index.js +1 -13
- package/lib/commonjs/components/FloatingActionButton/FloatingActionButton.js +1 -696
- package/lib/commonjs/components/FloatingActionButton/index.js +1 -26
- package/lib/commonjs/components/ForceUpdateDialog/ForceUpdateDialog.js +1 -90
- package/lib/commonjs/components/ForceUpdateDialog/index.js +1 -20
- package/lib/commonjs/components/FormField/FormField.js +1 -170
- package/lib/commonjs/components/FormField/index.js +1 -20
- package/lib/commonjs/components/IconBadge/IconBadge.js +1 -0
- package/lib/commonjs/components/IconBadge/index.js +1 -0
- package/lib/commonjs/components/IconButton/IconButton.js +1 -198
- package/lib/commonjs/components/IconButton/index.js +1 -13
- package/lib/commonjs/components/ImageGallery/ImageGallery.js +1 -594
- package/lib/commonjs/components/ImageGallery/index.js +1 -20
- package/lib/commonjs/components/InlineSelect/InlineSelect.js +1 -190
- package/lib/commonjs/components/InlineSelect/index.js +1 -20
- package/lib/commonjs/components/Input/Input.js +1 -591
- package/lib/commonjs/components/Input/index.js +1 -20
- package/lib/commonjs/components/KeyboardAwareScrollView/KeyboardAwareScrollView.js +1 -168
- package/lib/commonjs/components/KeyboardAwareScrollView/index.js +1 -13
- package/lib/commonjs/components/KeyboardToolbar/KeyboardToolbar.js +1 -135
- package/lib/commonjs/components/KeyboardToolbar/index.js +1 -13
- package/lib/commonjs/components/ListItem/ListItem.js +1 -344
- package/lib/commonjs/components/ListItem/index.js +1 -20
- package/lib/commonjs/components/LoaderOverlay/LoaderOverlay.js +1 -203
- package/lib/commonjs/components/LoaderOverlay/index.js +1 -25
- package/lib/commonjs/components/Markdown/Markdown.js +1 -276
- package/lib/commonjs/components/Markdown/index.js +1 -13
- package/lib/commonjs/components/Markdown/parse.js +1 -229
- package/lib/commonjs/components/Modal/Modal.js +1 -376
- package/lib/commonjs/components/Modal/index.js +1 -26
- package/lib/commonjs/components/Notation/Notation.js +1 -0
- package/lib/commonjs/components/Notation/index.js +1 -0
- package/lib/commonjs/components/NumberInput/NumberInput.js +1 -386
- package/lib/commonjs/components/NumberInput/index.js +1 -20
- package/lib/commonjs/components/OTPInput/OTPInput.js +1 -448
- package/lib/commonjs/components/OTPInput/index.js +1 -20
- package/lib/commonjs/components/OptionSheet/OptionSheet.js +1 -718
- package/lib/commonjs/components/OptionSheet/index.js +1 -0
- package/lib/commonjs/components/PhoneNumberInput/PhoneNumberInput.js +1 -574
- package/lib/commonjs/components/PhoneNumberInput/index.js +1 -32
- package/lib/commonjs/components/PickerTrigger/PickerTrigger.js +1 -150
- package/lib/commonjs/components/PickerTrigger/index.js +1 -20
- package/lib/commonjs/components/ProfileCompletion/ProfileCompletion.js +1 -214
- package/lib/commonjs/components/ProfileCompletion/index.js +1 -20
- package/lib/commonjs/components/ProfilePicker/ProfilePicker.js +1 -531
- package/lib/commonjs/components/ProfilePicker/index.js +1 -20
- package/lib/commonjs/components/ProgressBar/ProgressBar.js +1 -202
- package/lib/commonjs/components/ProgressBar/index.js +1 -20
- package/lib/commonjs/components/ProgressRing/ProgressRing.js +1 -191
- package/lib/commonjs/components/ProgressRing/index.js +1 -20
- package/lib/commonjs/components/Radio/Radio.js +1 -127
- package/lib/commonjs/components/Radio/RadioDot.js +1 -108
- package/lib/commonjs/components/Radio/RadioGroup.js +1 -50
- package/lib/commonjs/components/Radio/index.js +1 -46
- package/lib/commonjs/components/Rating/Rating.js +1 -338
- package/lib/commonjs/components/Rating/index.js +1 -20
- package/lib/commonjs/components/Repeater/Repeater.js +1 -166
- package/lib/commonjs/components/Repeater/index.js +1 -20
- package/lib/commonjs/components/RichTextEditor/RichTextEditor.js +1 -314
- package/lib/commonjs/components/RichTextEditor/index.js +1 -20
- package/lib/commonjs/components/RichTextEditor/markdownActions.js +1 -213
- package/lib/commonjs/components/SearchBar/SearchBar.js +1 -244
- package/lib/commonjs/components/SearchBar/index.js +1 -20
- package/lib/commonjs/components/SectionHeader/SectionHeader.js +1 -0
- package/lib/commonjs/components/SectionHeader/index.js +1 -0
- package/lib/commonjs/components/SegmentedControl/SegmentedControl.js +1 -320
- package/lib/commonjs/components/SegmentedControl/index.js +1 -20
- package/lib/commonjs/components/Select/Select.js +1 -277
- package/lib/commonjs/components/Select/index.js +1 -20
- package/lib/commonjs/components/Skeleton/Skeleton.js +1 -285
- package/lib/commonjs/components/Skeleton/SkeletonClock.js +1 -118
- package/lib/commonjs/components/Skeleton/SkeletonContent.js +1 -309
- package/lib/commonjs/components/Skeleton/SkeletonList.js +1 -92
- package/lib/commonjs/components/Skeleton/SkeletonProvider.js +1 -114
- package/lib/commonjs/components/Skeleton/SkeletonSkip.js +1 -37
- package/lib/commonjs/components/Skeleton/index.js +1 -85
- package/lib/commonjs/components/SlideToConfirm/SlideToConfirm.js +1 -262
- package/lib/commonjs/components/SlideToConfirm/index.js +1 -13
- package/lib/commonjs/components/Slider/Slider.js +1 -809
- package/lib/commonjs/components/Slider/index.js +1 -20
- package/lib/commonjs/components/Slider/valueText.js +1 -266
- package/lib/commonjs/components/SliderField/SliderField.js +1 -360
- package/lib/commonjs/components/SliderField/index.js +1 -20
- package/lib/commonjs/components/Spinner/Spinner.js +1 -203
- package/lib/commonjs/components/Spinner/index.js +1 -20
- package/lib/commonjs/components/SquircleFill/SquircleFill.js +1 -116
- package/lib/commonjs/components/StatTile/StatTile.js +1 -0
- package/lib/commonjs/components/StatTile/index.js +1 -0
- package/lib/commonjs/components/StatusBadge/StatusBadge.js +1 -233
- package/lib/commonjs/components/StatusBadge/index.js +1 -20
- package/lib/commonjs/components/Stepper/Stepper.js +1 -779
- package/lib/commonjs/components/Stepper/index.js +1 -20
- package/lib/commonjs/components/Swipeable/Swipeable.js +1 -383
- package/lib/commonjs/components/Swipeable/index.js +1 -20
- package/lib/commonjs/components/Switch/Switch.js +1 -233
- package/lib/commonjs/components/Switch/index.js +1 -20
- package/lib/commonjs/components/Tabs/Tabs.js +1 -428
- package/lib/commonjs/components/Tabs/index.js +1 -20
- package/lib/commonjs/components/TagInput/TagInput.js +1 -185
- package/lib/commonjs/components/TagInput/index.js +1 -20
- package/lib/commonjs/components/Text/Text.js +1 -146
- package/lib/commonjs/components/Text/index.js +1 -13
- package/lib/commonjs/components/TimePicker/TimePicker.js +1 -732
- package/lib/commonjs/components/TimePicker/index.js +1 -20
- package/lib/commonjs/components/Timeline/Timeline.js +1 -263
- package/lib/commonjs/components/Timeline/index.js +1 -20
- package/lib/commonjs/components/Toast/Toast.js +1 -326
- package/lib/commonjs/components/Toast/ToastProvider.js +1 -200
- package/lib/commonjs/components/Toast/index.js +1 -39
- package/lib/commonjs/components/Tooltip/Tooltip.js +1 -412
- package/lib/commonjs/components/Tooltip/index.js +1 -20
- package/lib/commonjs/components/Tour/Tour.js +1 -342
- package/lib/commonjs/components/Tour/index.js +1 -20
- package/lib/commonjs/components/ZoomableImage/ZoomableImage.js +1 -204
- package/lib/commonjs/components/ZoomableImage/index.js +1 -13
- package/lib/commonjs/components/index.js +1 -748
- package/lib/commonjs/form/FormContext.js +1 -52
- package/lib/commonjs/form/HookFormField.js +1 -0
- package/lib/commonjs/form/equal.js +1 -56
- package/lib/commonjs/form/index.js +1 -81
- package/lib/commonjs/form/path.js +1 -91
- package/lib/commonjs/form/rules.js +1 -73
- package/lib/commonjs/form/types.js +1 -2
- package/lib/commonjs/form/useField.js +1 -66
- package/lib/commonjs/form/useForm.js +1 -379
- package/lib/commonjs/form/useFormCompletion.js +1 -73
- package/lib/commonjs/form/useHookFormField.js +1 -0
- package/lib/commonjs/hooks/index.js +1 -85
- package/lib/commonjs/hooks/useControllableState.js +1 -32
- package/lib/commonjs/hooks/useDebounce.js +1 -17
- package/lib/commonjs/hooks/useDragToDismiss.js +1 -142
- package/lib/commonjs/hooks/useFlickGuard.js +1 -60
- package/lib/commonjs/hooks/usePressAnimation.js +1 -130
- package/lib/commonjs/hooks/useReducedMotion.js +1 -33
- package/lib/commonjs/hooks/useToggle.js +1 -22
- package/lib/commonjs/index.js +1 -468
- package/lib/commonjs/initUI.js +1 -24
- package/lib/commonjs/network/NetworkStatusBanner.js +1 -89
- package/lib/commonjs/network/index.js +1 -13
- package/lib/commonjs/specs/NativePdfRasterizer.js +1 -9
- package/lib/commonjs/theme/Gradient.js +1 -59
- package/lib/commonjs/theme/ThemeContext.js +1 -101
- package/lib/commonjs/theme/animatedValue.js +1 -69
- package/lib/commonjs/theme/index.js +1 -149
- package/lib/commonjs/theme/merge.js +1 -30
- package/lib/commonjs/theme/textStyle.js +1 -39
- package/lib/commonjs/theme/tokens.js +1 -706
- package/lib/commonjs/theme/types.js +1 -6
- package/lib/commonjs/utils/color.js +1 -58
- package/lib/commonjs/utils/corners.js +1 -22
- package/lib/commonjs/utils/dimensions.js +1 -37
- package/lib/commonjs/utils/feedback.js +1 -76
- package/lib/commonjs/utils/hapticUtils.js +1 -94
- package/lib/commonjs/utils/hashString.js +1 -22
- package/lib/commonjs/utils/index.js +1 -178
- package/lib/commonjs/utils/mergeRefs.js +1 -24
- package/lib/commonjs/utils/responsive.js +1 -104
- package/lib/commonjs/utils/shadows.js +1 -61
- package/lib/commonjs/utils/spacing.js +1 -86
- package/lib/commonjs/utils/squircle.js +1 -158
- package/lib/commonjs/utils/warnUnknownProps.js +1 -46
- package/lib/module/components/Accordion/Accordion.js +1 -337
- package/lib/module/components/Accordion/index.js +1 -4
- package/lib/module/components/AmountSlider/AmountSlider.js +1 -205
- package/lib/module/components/AmountSlider/index.js +1 -4
- package/lib/module/components/AnimatePresence/AnimatePresence.js +1 -65
- package/lib/module/components/AnimatePresence/index.js +1 -4
- package/lib/module/components/AppBar/AppBar.js +1 -354
- package/lib/module/components/AppBar/index.js +1 -4
- package/lib/module/components/AppIcon/AppIcon.js +1 -136
- package/lib/module/components/AppIcon/catalog/bold/a.g.js +1 -80
- package/lib/module/components/AppIcon/catalog/bold/b.g.js +1 -85
- package/lib/module/components/AppIcon/catalog/bold/c.g.js +1 -114
- package/lib/module/components/AppIcon/catalog/bold/d.g.js +1 -64
- package/lib/module/components/AppIcon/catalog/bold/e.g.js +1 -42
- package/lib/module/components/AppIcon/catalog/bold/f.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/bold/g.g.js +1 -50
- package/lib/module/components/AppIcon/catalog/bold/h.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/bold/i.g.js +1 -27
- package/lib/module/components/AppIcon/catalog/bold/j.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/bold/k.g.js +1 -16
- package/lib/module/components/AppIcon/catalog/bold/l.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/bold/m.g.js +1 -101
- package/lib/module/components/AppIcon/catalog/bold/n.g.js +1 -30
- package/lib/module/components/AppIcon/catalog/bold/o.g.js +1 -17
- package/lib/module/components/AppIcon/catalog/bold/p.g.js +1 -56
- package/lib/module/components/AppIcon/catalog/bold/q.g.js +1 -18
- package/lib/module/components/AppIcon/catalog/bold/r.g.js +1 -55
- package/lib/module/components/AppIcon/catalog/bold/s.g.js +1 -109
- package/lib/module/components/AppIcon/catalog/bold/t.g.js +1 -70
- package/lib/module/components/AppIcon/catalog/bold/u.g.js +1 -24
- package/lib/module/components/AppIcon/catalog/bold/v.g.js +1 -36
- package/lib/module/components/AppIcon/catalog/bold/w.g.js +1 -37
- package/lib/module/components/AppIcon/catalog/bold/x.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/bold/y.g.js +1 -12
- package/lib/module/components/AppIcon/catalog/bold/z.g.js +1 -13
- package/lib/module/components/AppIcon/catalog/broken/a.g.js +1 -80
- package/lib/module/components/AppIcon/catalog/broken/b.g.js +1 -85
- package/lib/module/components/AppIcon/catalog/broken/c.g.js +1 -114
- package/lib/module/components/AppIcon/catalog/broken/d.g.js +1 -64
- package/lib/module/components/AppIcon/catalog/broken/e.g.js +1 -42
- package/lib/module/components/AppIcon/catalog/broken/f.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/broken/g.g.js +1 -50
- package/lib/module/components/AppIcon/catalog/broken/h.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/broken/i.g.js +1 -27
- package/lib/module/components/AppIcon/catalog/broken/j.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/broken/k.g.js +1 -16
- package/lib/module/components/AppIcon/catalog/broken/l.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/broken/m.g.js +1 -101
- package/lib/module/components/AppIcon/catalog/broken/n.g.js +1 -30
- package/lib/module/components/AppIcon/catalog/broken/o.g.js +1 -17
- package/lib/module/components/AppIcon/catalog/broken/p.g.js +1 -56
- package/lib/module/components/AppIcon/catalog/broken/q.g.js +1 -18
- package/lib/module/components/AppIcon/catalog/broken/r.g.js +1 -55
- package/lib/module/components/AppIcon/catalog/broken/s.g.js +1 -109
- package/lib/module/components/AppIcon/catalog/broken/t.g.js +1 -70
- package/lib/module/components/AppIcon/catalog/broken/u.g.js +1 -24
- package/lib/module/components/AppIcon/catalog/broken/v.g.js +1 -36
- package/lib/module/components/AppIcon/catalog/broken/w.g.js +1 -37
- package/lib/module/components/AppIcon/catalog/broken/x.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/broken/y.g.js +1 -12
- package/lib/module/components/AppIcon/catalog/broken/z.g.js +1 -13
- package/lib/module/components/AppIcon/catalog/bulk/a.g.js +1 -80
- package/lib/module/components/AppIcon/catalog/bulk/b.g.js +1 -85
- package/lib/module/components/AppIcon/catalog/bulk/c.g.js +1 -114
- package/lib/module/components/AppIcon/catalog/bulk/d.g.js +1 -64
- package/lib/module/components/AppIcon/catalog/bulk/e.g.js +1 -42
- package/lib/module/components/AppIcon/catalog/bulk/f.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/bulk/g.g.js +1 -50
- package/lib/module/components/AppIcon/catalog/bulk/h.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/bulk/i.g.js +1 -27
- package/lib/module/components/AppIcon/catalog/bulk/j.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/bulk/k.g.js +1 -16
- package/lib/module/components/AppIcon/catalog/bulk/l.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/bulk/m.g.js +1 -101
- package/lib/module/components/AppIcon/catalog/bulk/n.g.js +1 -30
- package/lib/module/components/AppIcon/catalog/bulk/o.g.js +1 -17
- package/lib/module/components/AppIcon/catalog/bulk/p.g.js +1 -56
- package/lib/module/components/AppIcon/catalog/bulk/q.g.js +1 -18
- package/lib/module/components/AppIcon/catalog/bulk/r.g.js +1 -55
- package/lib/module/components/AppIcon/catalog/bulk/s.g.js +1 -109
- package/lib/module/components/AppIcon/catalog/bulk/t.g.js +1 -70
- package/lib/module/components/AppIcon/catalog/bulk/u.g.js +1 -24
- package/lib/module/components/AppIcon/catalog/bulk/v.g.js +1 -36
- package/lib/module/components/AppIcon/catalog/bulk/w.g.js +1 -37
- package/lib/module/components/AppIcon/catalog/bulk/x.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/bulk/y.g.js +1 -12
- package/lib/module/components/AppIcon/catalog/bulk/z.g.js +1 -13
- package/lib/module/components/AppIcon/catalog/linear/a.g.js +1 -80
- package/lib/module/components/AppIcon/catalog/linear/b.g.js +1 -85
- package/lib/module/components/AppIcon/catalog/linear/c.g.js +1 -114
- package/lib/module/components/AppIcon/catalog/linear/d.g.js +1 -64
- package/lib/module/components/AppIcon/catalog/linear/e.g.js +1 -42
- package/lib/module/components/AppIcon/catalog/linear/f.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/linear/g.g.js +1 -50
- package/lib/module/components/AppIcon/catalog/linear/h.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/linear/i.g.js +1 -27
- package/lib/module/components/AppIcon/catalog/linear/j.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/linear/k.g.js +1 -16
- package/lib/module/components/AppIcon/catalog/linear/l.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/linear/m.g.js +1 -101
- package/lib/module/components/AppIcon/catalog/linear/n.g.js +1 -30
- package/lib/module/components/AppIcon/catalog/linear/o.g.js +1 -17
- package/lib/module/components/AppIcon/catalog/linear/p.g.js +1 -56
- package/lib/module/components/AppIcon/catalog/linear/q.g.js +1 -18
- package/lib/module/components/AppIcon/catalog/linear/r.g.js +1 -55
- package/lib/module/components/AppIcon/catalog/linear/s.g.js +1 -109
- package/lib/module/components/AppIcon/catalog/linear/t.g.js +1 -70
- package/lib/module/components/AppIcon/catalog/linear/u.g.js +1 -24
- package/lib/module/components/AppIcon/catalog/linear/v.g.js +1 -36
- package/lib/module/components/AppIcon/catalog/linear/w.g.js +1 -37
- package/lib/module/components/AppIcon/catalog/linear/x.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/linear/y.g.js +1 -12
- package/lib/module/components/AppIcon/catalog/linear/z.g.js +1 -13
- package/lib/module/components/AppIcon/catalog/outline/a.g.js +1 -80
- package/lib/module/components/AppIcon/catalog/outline/b.g.js +1 -85
- package/lib/module/components/AppIcon/catalog/outline/c.g.js +1 -114
- package/lib/module/components/AppIcon/catalog/outline/d.g.js +1 -64
- package/lib/module/components/AppIcon/catalog/outline/e.g.js +1 -42
- package/lib/module/components/AppIcon/catalog/outline/f.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/outline/g.g.js +1 -50
- package/lib/module/components/AppIcon/catalog/outline/h.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/outline/i.g.js +1 -27
- package/lib/module/components/AppIcon/catalog/outline/j.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/outline/k.g.js +1 -16
- package/lib/module/components/AppIcon/catalog/outline/l.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/outline/m.g.js +1 -101
- package/lib/module/components/AppIcon/catalog/outline/n.g.js +1 -30
- package/lib/module/components/AppIcon/catalog/outline/o.g.js +1 -17
- package/lib/module/components/AppIcon/catalog/outline/p.g.js +1 -56
- package/lib/module/components/AppIcon/catalog/outline/q.g.js +1 -18
- package/lib/module/components/AppIcon/catalog/outline/r.g.js +1 -55
- package/lib/module/components/AppIcon/catalog/outline/s.g.js +1 -109
- package/lib/module/components/AppIcon/catalog/outline/t.g.js +1 -70
- package/lib/module/components/AppIcon/catalog/outline/u.g.js +1 -24
- package/lib/module/components/AppIcon/catalog/outline/v.g.js +1 -36
- package/lib/module/components/AppIcon/catalog/outline/w.g.js +1 -37
- package/lib/module/components/AppIcon/catalog/outline/x.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/outline/y.g.js +1 -12
- package/lib/module/components/AppIcon/catalog/outline/z.g.js +1 -13
- package/lib/module/components/AppIcon/catalog/twotone/a.g.js +1 -80
- package/lib/module/components/AppIcon/catalog/twotone/b.g.js +1 -85
- package/lib/module/components/AppIcon/catalog/twotone/c.g.js +1 -114
- package/lib/module/components/AppIcon/catalog/twotone/d.g.js +1 -64
- package/lib/module/components/AppIcon/catalog/twotone/e.g.js +1 -42
- package/lib/module/components/AppIcon/catalog/twotone/f.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/twotone/g.g.js +1 -50
- package/lib/module/components/AppIcon/catalog/twotone/h.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/twotone/i.g.js +1 -27
- package/lib/module/components/AppIcon/catalog/twotone/j.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/twotone/k.g.js +1 -16
- package/lib/module/components/AppIcon/catalog/twotone/l.g.js +1 -48
- package/lib/module/components/AppIcon/catalog/twotone/m.g.js +1 -101
- package/lib/module/components/AppIcon/catalog/twotone/n.g.js +1 -30
- package/lib/module/components/AppIcon/catalog/twotone/o.g.js +1 -17
- package/lib/module/components/AppIcon/catalog/twotone/p.g.js +1 -56
- package/lib/module/components/AppIcon/catalog/twotone/q.g.js +1 -18
- package/lib/module/components/AppIcon/catalog/twotone/r.g.js +1 -55
- package/lib/module/components/AppIcon/catalog/twotone/s.g.js +1 -109
- package/lib/module/components/AppIcon/catalog/twotone/t.g.js +1 -70
- package/lib/module/components/AppIcon/catalog/twotone/u.g.js +1 -24
- package/lib/module/components/AppIcon/catalog/twotone/v.g.js +1 -36
- package/lib/module/components/AppIcon/catalog/twotone/w.g.js +1 -37
- package/lib/module/components/AppIcon/catalog/twotone/x.g.js +1 -14
- package/lib/module/components/AppIcon/catalog/twotone/y.g.js +1 -12
- package/lib/module/components/AppIcon/catalog/twotone/z.g.js +1 -13
- package/lib/module/components/AppIcon/catalog.g.js +1 -183
- package/lib/module/components/AppIcon/defaultIcons.js +1 -79
- package/lib/module/components/AppIcon/glyphs.g.js +1 -156
- package/lib/module/components/AppIcon/index.js +1 -6
- package/lib/module/components/AppIcon/slotIcon.js +1 -62
- package/lib/module/components/AppIcon/variants.g.js +1 -737
- package/lib/module/components/AsyncBlock/AsyncBlock.js +1 -81
- package/lib/module/components/AsyncBlock/index.js +1 -4
- package/lib/module/components/AuthedImage/AuthedImage.js +1 -226
- package/lib/module/components/AuthedImage/authedImageCache.js +1 -337
- package/lib/module/components/AuthedImage/index.js +1 -5
- package/lib/module/components/Autocomplete/Autocomplete.js +1 -222
- package/lib/module/components/Autocomplete/index.js +1 -4
- package/lib/module/components/Avatar/Avatar.js +1 -496
- package/lib/module/components/Avatar/index.js +1 -4
- package/lib/module/components/Badge/Badge.js +1 -294
- package/lib/module/components/Badge/index.js +1 -4
- package/lib/module/components/Banner/Banner.js +1 -397
- package/lib/module/components/Banner/index.js +1 -4
- package/lib/module/components/BottomNavigation/BottomNavigation.js +1 -889
- package/lib/module/components/BottomNavigation/index.js +1 -4
- package/lib/module/components/BottomSheet/BottomSheet.js +1 -727
- package/lib/module/components/BottomSheet/index.js +1 -4
- package/lib/module/components/Box/Box.js +1 -220
- package/lib/module/components/Box/index.js +1 -4
- package/lib/module/components/Button/Button.js +1 -557
- package/lib/module/components/Button/index.js +1 -4
- package/lib/module/components/Card/Card.js +1 -403
- package/lib/module/components/Card/index.js +1 -4
- package/lib/module/components/Carousel/Carousel.js +1 -583
- package/lib/module/components/Carousel/index.js +1 -4
- package/lib/module/components/Checkbox/Checkbox.js +1 -184
- package/lib/module/components/Checkbox/index.js +1 -4
- package/lib/module/components/Chip/Chip.js +1 -354
- package/lib/module/components/Chip/index.js +1 -4
- package/lib/module/components/ChoiceGroup/ChoiceGroup.js +1 -332
- package/lib/module/components/ChoiceGroup/index.js +1 -4
- package/lib/module/components/Confetti/Confetti.js +1 -377
- package/lib/module/components/Confetti/index.js +1 -4
- package/lib/module/components/DatePicker/DatePicker.js +1 -1049
- package/lib/module/components/DatePicker/index.js +1 -4
- package/lib/module/components/DateRangePicker/DateRangePicker.js +1 -791
- package/lib/module/components/DateRangePicker/index.js +1 -4
- package/lib/module/components/DecimalInput/DecimalInput.js +1 -0
- package/lib/module/components/DecimalInput/index.js +1 -0
- package/lib/module/components/Descriptions/Descriptions.js +1 -101
- package/lib/module/components/Descriptions/index.js +1 -4
- package/lib/module/components/Dialog/Dialog.js +1 -243
- package/lib/module/components/Dialog/index.js +1 -4
- package/lib/module/components/Divider/Divider.js +1 -114
- package/lib/module/components/Divider/index.js +1 -4
- package/lib/module/components/Drawer/Drawer.js +1 -378
- package/lib/module/components/Drawer/index.js +1 -4
- package/lib/module/components/EmptyState/EmptyState.js +1 -232
- package/lib/module/components/EmptyState/index.js +1 -4
- package/lib/module/components/ErrorBoundary/ErrorBoundary.js +1 -130
- package/lib/module/components/ErrorBoundary/index.js +1 -6
- package/lib/module/components/ErrorBoundary/useErrorHandler.js +1 -20
- package/lib/module/components/ErrorBoundary/withErrorBoundary.js +1 -23
- package/lib/module/components/FieldBase/Chevron.js +1 -69
- package/lib/module/components/FieldBase/ChoiceText.js +1 -0
- package/lib/module/components/FieldBase/FieldBase.js +1 -790
- package/lib/module/components/FieldBase/index.js +1 -5
- package/lib/module/components/FieldBase/useFloatingLabel.js +1 -177
- package/lib/module/components/FilePicker/FilePicker.js +1 -791
- package/lib/module/components/FilePicker/index.js +1 -4
- package/lib/module/components/FileViewer/FileViewer.js +1 -253
- package/lib/module/components/FileViewer/index.js +1 -4
- package/lib/module/components/FloatingActionButton/FloatingActionButton.js +1 -691
- package/lib/module/components/FloatingActionButton/index.js +1 -4
- package/lib/module/components/ForceUpdateDialog/ForceUpdateDialog.js +1 -84
- package/lib/module/components/ForceUpdateDialog/index.js +1 -4
- package/lib/module/components/FormField/FormField.js +1 -166
- package/lib/module/components/FormField/index.js +1 -4
- package/lib/module/components/IconBadge/IconBadge.js +1 -0
- package/lib/module/components/IconBadge/index.js +1 -0
- package/lib/module/components/IconButton/IconButton.js +1 -194
- package/lib/module/components/IconButton/index.js +1 -4
- package/lib/module/components/ImageGallery/ImageGallery.js +1 -589
- package/lib/module/components/ImageGallery/index.js +1 -4
- package/lib/module/components/InlineSelect/InlineSelect.js +1 -186
- package/lib/module/components/InlineSelect/index.js +1 -4
- package/lib/module/components/Input/Input.js +1 -587
- package/lib/module/components/Input/index.js +1 -4
- package/lib/module/components/KeyboardAwareScrollView/KeyboardAwareScrollView.js +1 -164
- package/lib/module/components/KeyboardAwareScrollView/index.js +1 -4
- package/lib/module/components/KeyboardToolbar/KeyboardToolbar.js +1 -130
- package/lib/module/components/KeyboardToolbar/index.js +1 -4
- package/lib/module/components/ListItem/ListItem.js +1 -340
- package/lib/module/components/ListItem/index.js +1 -4
- package/lib/module/components/LoaderOverlay/LoaderOverlay.js +1 -196
- package/lib/module/components/LoaderOverlay/index.js +1 -4
- package/lib/module/components/Markdown/Markdown.js +1 -270
- package/lib/module/components/Markdown/index.js +1 -4
- package/lib/module/components/Markdown/parse.js +1 -223
- package/lib/module/components/Modal/Modal.js +1 -372
- package/lib/module/components/Modal/index.js +1 -4
- package/lib/module/components/Notation/Notation.js +1 -0
- package/lib/module/components/Notation/index.js +1 -0
- package/lib/module/components/NumberInput/NumberInput.js +1 -382
- package/lib/module/components/NumberInput/index.js +1 -4
- package/lib/module/components/OTPInput/OTPInput.js +1 -445
- package/lib/module/components/OTPInput/index.js +1 -4
- package/lib/module/components/OptionSheet/OptionSheet.js +1 -714
- package/lib/module/components/OptionSheet/index.js +1 -0
- package/lib/module/components/PhoneNumberInput/PhoneNumberInput.js +1 -569
- package/lib/module/components/PhoneNumberInput/index.js +1 -4
- package/lib/module/components/PickerTrigger/PickerTrigger.js +1 -146
- package/lib/module/components/PickerTrigger/index.js +1 -4
- package/lib/module/components/ProfileCompletion/ProfileCompletion.js +1 -211
- package/lib/module/components/ProfileCompletion/index.js +1 -4
- package/lib/module/components/ProfilePicker/ProfilePicker.js +1 -526
- package/lib/module/components/ProfilePicker/index.js +1 -4
- package/lib/module/components/ProgressBar/ProgressBar.js +1 -199
- package/lib/module/components/ProgressBar/index.js +1 -4
- package/lib/module/components/ProgressRing/ProgressRing.js +1 -187
- package/lib/module/components/ProgressRing/index.js +1 -4
- package/lib/module/components/Radio/Radio.js +1 -123
- package/lib/module/components/Radio/RadioDot.js +1 -102
- package/lib/module/components/Radio/RadioGroup.js +1 -45
- package/lib/module/components/Radio/index.js +1 -6
- package/lib/module/components/Rating/Rating.js +1 -334
- package/lib/module/components/Rating/index.js +1 -4
- package/lib/module/components/Repeater/Repeater.js +1 -162
- package/lib/module/components/Repeater/index.js +1 -4
- package/lib/module/components/RichTextEditor/RichTextEditor.js +1 -309
- package/lib/module/components/RichTextEditor/index.js +1 -5
- package/lib/module/components/RichTextEditor/markdownActions.js +1 -207
- package/lib/module/components/SearchBar/SearchBar.js +1 -241
- package/lib/module/components/SearchBar/index.js +1 -4
- package/lib/module/components/SectionHeader/SectionHeader.js +1 -0
- package/lib/module/components/SectionHeader/index.js +1 -0
- package/lib/module/components/SegmentedControl/SegmentedControl.js +1 -317
- package/lib/module/components/SegmentedControl/index.js +1 -4
- package/lib/module/components/Select/Select.js +1 -273
- package/lib/module/components/Select/index.js +1 -4
- package/lib/module/components/Skeleton/Skeleton.js +1 -278
- package/lib/module/components/Skeleton/SkeletonClock.js +1 -111
- package/lib/module/components/Skeleton/SkeletonContent.js +1 -304
- package/lib/module/components/Skeleton/SkeletonList.js +1 -87
- package/lib/module/components/Skeleton/SkeletonProvider.js +1 -106
- package/lib/module/components/Skeleton/SkeletonSkip.js +1 -31
- package/lib/module/components/Skeleton/index.js +1 -9
- package/lib/module/components/SlideToConfirm/SlideToConfirm.js +1 -258
- package/lib/module/components/SlideToConfirm/index.js +1 -4
- package/lib/module/components/Slider/Slider.js +1 -805
- package/lib/module/components/Slider/index.js +1 -4
- package/lib/module/components/Slider/valueText.js +1 -258
- package/lib/module/components/SliderField/SliderField.js +1 -357
- package/lib/module/components/SliderField/index.js +1 -4
- package/lib/module/components/Spinner/Spinner.js +1 -199
- package/lib/module/components/Spinner/index.js +1 -4
- package/lib/module/components/SquircleFill/SquircleFill.js +1 -110
- package/lib/module/components/StatTile/StatTile.js +1 -0
- package/lib/module/components/StatTile/index.js +1 -0
- package/lib/module/components/StatusBadge/StatusBadge.js +1 -229
- package/lib/module/components/StatusBadge/index.js +1 -4
- package/lib/module/components/Stepper/Stepper.js +1 -775
- package/lib/module/components/Stepper/index.js +1 -4
- package/lib/module/components/Swipeable/Swipeable.js +1 -378
- package/lib/module/components/Swipeable/index.js +1 -4
- package/lib/module/components/Switch/Switch.js +1 -230
- package/lib/module/components/Switch/index.js +1 -4
- package/lib/module/components/Tabs/Tabs.js +1 -425
- package/lib/module/components/Tabs/index.js +1 -4
- package/lib/module/components/TagInput/TagInput.js +1 -181
- package/lib/module/components/TagInput/index.js +1 -4
- package/lib/module/components/Text/Text.js +1 -142
- package/lib/module/components/Text/index.js +1 -4
- package/lib/module/components/TimePicker/TimePicker.js +1 -726
- package/lib/module/components/TimePicker/index.js +1 -4
- package/lib/module/components/Timeline/Timeline.js +1 -257
- package/lib/module/components/Timeline/index.js +1 -4
- package/lib/module/components/Toast/Toast.js +1 -321
- package/lib/module/components/Toast/ToastProvider.js +1 -192
- package/lib/module/components/Toast/index.js +1 -5
- package/lib/module/components/Tooltip/Tooltip.js +1 -407
- package/lib/module/components/Tooltip/index.js +1 -4
- package/lib/module/components/Tour/Tour.js +1 -338
- package/lib/module/components/Tour/index.js +1 -4
- package/lib/module/components/ZoomableImage/ZoomableImage.js +1 -198
- package/lib/module/components/ZoomableImage/index.js +1 -4
- package/lib/module/components/index.js +1 -79
- package/lib/module/form/FormContext.js +1 -44
- package/lib/module/form/HookFormField.js +1 -0
- package/lib/module/form/equal.js +1 -51
- package/lib/module/form/index.js +1 -17
- package/lib/module/form/path.js +1 -84
- package/lib/module/form/rules.js +1 -59
- package/lib/module/form/types.js +1 -2
- package/lib/module/form/useField.js +1 -61
- package/lib/module/form/useForm.js +1 -375
- package/lib/module/form/useFormCompletion.js +1 -67
- package/lib/module/form/useHookFormField.js +1 -0
- package/lib/module/hooks/index.js +1 -10
- package/lib/module/hooks/useControllableState.js +1 -28
- package/lib/module/hooks/useDebounce.js +1 -12
- package/lib/module/hooks/useDragToDismiss.js +1 -137
- package/lib/module/hooks/useFlickGuard.js +1 -55
- package/lib/module/hooks/usePressAnimation.js +1 -126
- package/lib/module/hooks/useReducedMotion.js +1 -29
- package/lib/module/hooks/useToggle.js +1 -17
- package/lib/module/index.js +1 -18
- package/lib/module/initUI.js +1 -19
- package/lib/module/network/NetworkStatusBanner.js +1 -83
- package/lib/module/network/index.js +1 -4
- package/lib/module/specs/NativePdfRasterizer.js +1 -5
- package/lib/module/theme/Gradient.js +1 -52
- package/lib/module/theme/ThemeContext.js +1 -93
- package/lib/module/theme/animatedValue.js +1 -64
- package/lib/module/theme/index.js +1 -67
- package/lib/module/theme/merge.js +1 -25
- package/lib/module/theme/textStyle.js +1 -34
- package/lib/module/theme/tokens.js +1 -702
- package/lib/module/theme/types.js +1 -4
- package/lib/module/utils/color.js +1 -52
- package/lib/module/utils/corners.js +1 -18
- package/lib/module/utils/dimensions.js +1 -4
- package/lib/module/utils/feedback.js +1 -70
- package/lib/module/utils/hapticUtils.js +1 -86
- package/lib/module/utils/hashString.js +1 -17
- package/lib/module/utils/index.js +1 -13
- package/lib/module/utils/mergeRefs.js +1 -19
- package/lib/module/utils/responsive.js +1 -97
- package/lib/module/utils/shadows.js +1 -54
- package/lib/module/utils/spacing.js +1 -82
- package/lib/module/utils/squircle.js +1 -151
- package/lib/module/utils/warnUnknownProps.js +1 -42
- package/lib/typescript/commonjs/components/AppBar/AppBar.d.ts +42 -1
- package/lib/typescript/commonjs/components/AppIcon/AppIcon.d.ts +15 -2
- package/lib/typescript/commonjs/components/AppIcon/catalog.g.d.ts +1 -1
- package/lib/typescript/commonjs/components/AppIcon/glyphs.g.d.ts +62 -0
- package/lib/typescript/commonjs/components/AppIcon/index.d.ts +2 -2
- package/lib/typescript/commonjs/components/AppIcon/slotIcon.d.ts +9 -5
- package/lib/typescript/commonjs/components/AsyncBlock/AsyncBlock.d.ts +17 -1
- package/lib/typescript/commonjs/components/AsyncBlock/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/AuthedImage/AuthedImage.d.ts +17 -2
- package/lib/typescript/commonjs/components/AuthedImage/authedImageCache.d.ts +12 -0
- package/lib/typescript/commonjs/components/Avatar/Avatar.d.ts +8 -5
- package/lib/typescript/commonjs/components/Banner/Banner.d.ts +28 -1
- package/lib/typescript/commonjs/components/Banner/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/BottomSheet/BottomSheet.d.ts +44 -2
- package/lib/typescript/commonjs/components/BottomSheet/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/Button/Button.d.ts +11 -0
- package/lib/typescript/commonjs/components/Card/Card.d.ts +31 -1
- package/lib/typescript/commonjs/components/Card/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/Checkbox/Checkbox.d.ts +22 -4
- package/lib/typescript/commonjs/components/Chip/Chip.d.ts +19 -1
- package/lib/typescript/commonjs/components/Chip/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/ChoiceGroup/ChoiceGroup.d.ts +31 -7
- package/lib/typescript/commonjs/components/ChoiceGroup/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/DecimalInput/DecimalInput.d.ts +56 -0
- package/lib/typescript/commonjs/components/DecimalInput/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/Descriptions/Descriptions.d.ts +15 -2
- package/lib/typescript/commonjs/components/Descriptions/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/Dialog/Dialog.d.ts +6 -2
- package/lib/typescript/commonjs/components/EmptyState/EmptyState.d.ts +6 -0
- package/lib/typescript/commonjs/components/FieldBase/ChoiceText.d.ts +24 -0
- package/lib/typescript/commonjs/components/FieldBase/FieldBase.d.ts +24 -4
- package/lib/typescript/commonjs/components/FieldBase/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/FieldBase/useFloatingLabel.d.ts +3 -1
- package/lib/typescript/commonjs/components/FormField/FormField.d.ts +15 -5
- package/lib/typescript/commonjs/components/IconBadge/IconBadge.d.ts +30 -0
- package/lib/typescript/commonjs/components/IconBadge/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/IconButton/IconButton.d.ts +15 -8
- package/lib/typescript/commonjs/components/Input/Input.d.ts +33 -3
- package/lib/typescript/commonjs/components/KeyboardAwareScrollView/KeyboardAwareScrollView.d.ts +19 -22
- package/lib/typescript/commonjs/components/KeyboardAwareScrollView/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/KeyboardToolbar/KeyboardToolbar.d.ts +15 -10
- package/lib/typescript/commonjs/components/ListItem/ListItem.d.ts +39 -2
- package/lib/typescript/commonjs/components/ListItem/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/Notation/Notation.d.ts +27 -0
- package/lib/typescript/commonjs/components/Notation/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/NumberInput/NumberInput.d.ts +11 -3
- package/lib/typescript/commonjs/components/OTPInput/OTPInput.d.ts +6 -0
- package/lib/typescript/commonjs/components/OptionSheet/OptionSheet.d.ts +11 -1
- package/lib/typescript/commonjs/components/OptionSheet/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/PhoneNumberInput/PhoneNumberInput.d.ts +43 -7
- package/lib/typescript/commonjs/components/PhoneNumberInput/index.d.ts +2 -2
- package/lib/typescript/commonjs/components/PickerTrigger/PickerTrigger.d.ts +8 -6
- package/lib/typescript/commonjs/components/ProfilePicker/ProfilePicker.d.ts +3 -3
- package/lib/typescript/commonjs/components/ProgressBar/ProgressBar.d.ts +5 -0
- package/lib/typescript/commonjs/components/Radio/Radio.d.ts +4 -0
- package/lib/typescript/commonjs/components/Repeater/Repeater.d.ts +15 -1
- package/lib/typescript/commonjs/components/SearchBar/SearchBar.d.ts +2 -0
- package/lib/typescript/commonjs/components/SectionHeader/SectionHeader.d.ts +18 -0
- package/lib/typescript/commonjs/components/SectionHeader/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/SegmentedControl/SegmentedControl.d.ts +7 -0
- package/lib/typescript/commonjs/components/Select/Select.d.ts +32 -2
- package/lib/typescript/commonjs/components/Slider/valueText.d.ts +3 -0
- package/lib/typescript/commonjs/components/StatTile/StatTile.d.ts +31 -0
- package/lib/typescript/commonjs/components/StatTile/index.d.ts +3 -0
- package/lib/typescript/commonjs/components/Stepper/Stepper.d.ts +7 -0
- package/lib/typescript/commonjs/components/Switch/Switch.d.ts +19 -0
- package/lib/typescript/commonjs/components/Switch/index.d.ts +1 -1
- package/lib/typescript/commonjs/components/Text/Text.d.ts +8 -3
- package/lib/typescript/commonjs/components/Toast/Toast.d.ts +6 -0
- package/lib/typescript/commonjs/components/Toast/ToastProvider.d.ts +24 -1
- package/lib/typescript/commonjs/components/Toast/index.d.ts +2 -2
- package/lib/typescript/commonjs/components/index.d.ts +26 -14
- package/lib/typescript/commonjs/form/FormContext.d.ts +10 -1
- package/lib/typescript/commonjs/form/HookFormField.d.ts +44 -0
- package/lib/typescript/commonjs/form/index.d.ts +4 -0
- package/lib/typescript/commonjs/form/useField.d.ts +6 -0
- package/lib/typescript/commonjs/form/useForm.d.ts +4 -0
- package/lib/typescript/commonjs/form/useHookFormField.d.ts +32 -0
- package/lib/typescript/commonjs/index.d.ts +5 -5
- package/lib/typescript/commonjs/network/NetworkStatusBanner.d.ts +6 -0
- package/lib/typescript/commonjs/theme/ThemeContext.d.ts +8 -0
- package/lib/typescript/commonjs/theme/index.d.ts +1 -1
- package/lib/typescript/commonjs/theme/types.d.ts +40 -1
- package/lib/typescript/module/components/AppBar/AppBar.d.ts +42 -1
- package/lib/typescript/module/components/AppIcon/AppIcon.d.ts +15 -2
- package/lib/typescript/module/components/AppIcon/catalog.g.d.ts +1 -1
- package/lib/typescript/module/components/AppIcon/glyphs.g.d.ts +62 -0
- package/lib/typescript/module/components/AppIcon/index.d.ts +2 -2
- package/lib/typescript/module/components/AppIcon/slotIcon.d.ts +9 -5
- package/lib/typescript/module/components/AsyncBlock/AsyncBlock.d.ts +17 -1
- package/lib/typescript/module/components/AsyncBlock/index.d.ts +1 -1
- package/lib/typescript/module/components/AuthedImage/AuthedImage.d.ts +17 -2
- package/lib/typescript/module/components/AuthedImage/authedImageCache.d.ts +12 -0
- package/lib/typescript/module/components/Avatar/Avatar.d.ts +8 -5
- package/lib/typescript/module/components/Banner/Banner.d.ts +28 -1
- package/lib/typescript/module/components/Banner/index.d.ts +1 -1
- package/lib/typescript/module/components/BottomSheet/BottomSheet.d.ts +44 -2
- package/lib/typescript/module/components/BottomSheet/index.d.ts +1 -1
- package/lib/typescript/module/components/Button/Button.d.ts +11 -0
- package/lib/typescript/module/components/Card/Card.d.ts +31 -1
- package/lib/typescript/module/components/Card/index.d.ts +1 -1
- package/lib/typescript/module/components/Checkbox/Checkbox.d.ts +22 -4
- package/lib/typescript/module/components/Chip/Chip.d.ts +19 -1
- package/lib/typescript/module/components/Chip/index.d.ts +1 -1
- package/lib/typescript/module/components/ChoiceGroup/ChoiceGroup.d.ts +31 -7
- package/lib/typescript/module/components/ChoiceGroup/index.d.ts +1 -1
- package/lib/typescript/module/components/DecimalInput/DecimalInput.d.ts +56 -0
- package/lib/typescript/module/components/DecimalInput/index.d.ts +3 -0
- package/lib/typescript/module/components/Descriptions/Descriptions.d.ts +15 -2
- package/lib/typescript/module/components/Descriptions/index.d.ts +1 -1
- package/lib/typescript/module/components/Dialog/Dialog.d.ts +6 -2
- package/lib/typescript/module/components/EmptyState/EmptyState.d.ts +6 -0
- package/lib/typescript/module/components/FieldBase/ChoiceText.d.ts +24 -0
- package/lib/typescript/module/components/FieldBase/FieldBase.d.ts +24 -4
- package/lib/typescript/module/components/FieldBase/index.d.ts +1 -1
- package/lib/typescript/module/components/FieldBase/useFloatingLabel.d.ts +3 -1
- package/lib/typescript/module/components/FormField/FormField.d.ts +15 -5
- package/lib/typescript/module/components/IconBadge/IconBadge.d.ts +30 -0
- package/lib/typescript/module/components/IconBadge/index.d.ts +3 -0
- package/lib/typescript/module/components/IconButton/IconButton.d.ts +15 -8
- package/lib/typescript/module/components/Input/Input.d.ts +33 -3
- package/lib/typescript/module/components/KeyboardAwareScrollView/KeyboardAwareScrollView.d.ts +19 -22
- package/lib/typescript/module/components/KeyboardAwareScrollView/index.d.ts +1 -1
- package/lib/typescript/module/components/KeyboardToolbar/KeyboardToolbar.d.ts +15 -10
- package/lib/typescript/module/components/ListItem/ListItem.d.ts +39 -2
- package/lib/typescript/module/components/ListItem/index.d.ts +1 -1
- package/lib/typescript/module/components/Notation/Notation.d.ts +27 -0
- package/lib/typescript/module/components/Notation/index.d.ts +3 -0
- package/lib/typescript/module/components/NumberInput/NumberInput.d.ts +11 -3
- package/lib/typescript/module/components/OTPInput/OTPInput.d.ts +6 -0
- package/lib/typescript/module/components/OptionSheet/OptionSheet.d.ts +11 -1
- package/lib/typescript/module/components/OptionSheet/index.d.ts +3 -0
- package/lib/typescript/module/components/PhoneNumberInput/PhoneNumberInput.d.ts +43 -7
- package/lib/typescript/module/components/PhoneNumberInput/index.d.ts +2 -2
- package/lib/typescript/module/components/PickerTrigger/PickerTrigger.d.ts +8 -6
- package/lib/typescript/module/components/ProfilePicker/ProfilePicker.d.ts +3 -3
- package/lib/typescript/module/components/ProgressBar/ProgressBar.d.ts +5 -0
- package/lib/typescript/module/components/Radio/Radio.d.ts +4 -0
- package/lib/typescript/module/components/Repeater/Repeater.d.ts +15 -1
- package/lib/typescript/module/components/SearchBar/SearchBar.d.ts +2 -0
- package/lib/typescript/module/components/SectionHeader/SectionHeader.d.ts +18 -0
- package/lib/typescript/module/components/SectionHeader/index.d.ts +3 -0
- package/lib/typescript/module/components/SegmentedControl/SegmentedControl.d.ts +7 -0
- package/lib/typescript/module/components/Select/Select.d.ts +32 -2
- package/lib/typescript/module/components/Slider/valueText.d.ts +3 -0
- package/lib/typescript/module/components/StatTile/StatTile.d.ts +31 -0
- package/lib/typescript/module/components/StatTile/index.d.ts +3 -0
- package/lib/typescript/module/components/Stepper/Stepper.d.ts +7 -0
- package/lib/typescript/module/components/Switch/Switch.d.ts +19 -0
- package/lib/typescript/module/components/Switch/index.d.ts +1 -1
- package/lib/typescript/module/components/Text/Text.d.ts +8 -3
- package/lib/typescript/module/components/Toast/Toast.d.ts +6 -0
- package/lib/typescript/module/components/Toast/ToastProvider.d.ts +24 -1
- package/lib/typescript/module/components/Toast/index.d.ts +2 -2
- package/lib/typescript/module/components/index.d.ts +26 -14
- package/lib/typescript/module/form/FormContext.d.ts +10 -1
- package/lib/typescript/module/form/HookFormField.d.ts +44 -0
- package/lib/typescript/module/form/index.d.ts +4 -0
- package/lib/typescript/module/form/useField.d.ts +6 -0
- package/lib/typescript/module/form/useForm.d.ts +4 -0
- package/lib/typescript/module/form/useHookFormField.d.ts +32 -0
- package/lib/typescript/module/index.d.ts +5 -5
- package/lib/typescript/module/network/NetworkStatusBanner.d.ts +6 -0
- package/lib/typescript/module/theme/ThemeContext.d.ts +8 -0
- package/lib/typescript/module/theme/index.d.ts +1 -1
- package/lib/typescript/module/theme/types.d.ts +40 -1
- package/package.json +14 -5
|
@@ -1,790 +1 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* FieldBase — the unified field-box primitive.
|
|
5
|
-
*
|
|
6
|
-
* Every input-like control in the library (Input, Select, SearchBar,
|
|
7
|
-
* NumberInput, OTPInput cell, PickerTrigger) composes FieldBase so the
|
|
8
|
-
* height / radius / padding / border / fill / focus + disabled + error
|
|
9
|
-
* states stay identical across the library. Differences (pill SearchBar,
|
|
10
|
-
* OTP underline, NumberInput steppers) become explicit overrides via
|
|
11
|
-
* props or via theme tokens — never accidental drift.
|
|
12
|
-
*
|
|
13
|
-
* Responsibilities:
|
|
14
|
-
* - Resolve size / variant dimensions from `theme.components.field`.
|
|
15
|
-
* - Animate the border + background between idle / focused / error.
|
|
16
|
-
* - Render leading + trailing slots either side of `children`.
|
|
17
|
-
* - Become Pressable when `onPress` is set (Select, PickerTrigger).
|
|
18
|
-
* - Apply disabled fill + cursor semantics.
|
|
19
|
-
*
|
|
20
|
-
* Non-responsibilities (the parent owns these):
|
|
21
|
-
* - The actual TextInput / Text / nested editor.
|
|
22
|
-
* - Floating / static labels rendered above the field.
|
|
23
|
-
* - Helper / error / counter text rendered below the field.
|
|
24
|
-
* - Shake-on-error or any cross-field animation.
|
|
25
|
-
*/
|
|
26
|
-
|
|
27
|
-
import React, { useEffect, useMemo, useRef } from 'react';
|
|
28
|
-
import { Animated, Easing, Pressable, StyleSheet, Text, View } from 'react-native';
|
|
29
|
-
import { createAnimatedValue, fontFor, useTheme } from "../../theme/index.js";
|
|
30
|
-
import { smoothCorners } from "../../utils/corners.js";
|
|
31
|
-
import { defaultIcons } from "../AppIcon/defaultIcons.js";
|
|
32
|
-
import { SquircleFill, useSquircle } from "../SquircleFill/SquircleFill.js";
|
|
33
|
-
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
34
|
-
/** Map a single colour string to all four sides (shorthand expansion). */
|
|
35
|
-
const expandColorSides = value => {
|
|
36
|
-
if (typeof value === 'string') {
|
|
37
|
-
return {
|
|
38
|
-
top: value,
|
|
39
|
-
right: value,
|
|
40
|
-
bottom: value,
|
|
41
|
-
left: value
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
// Object form: any side the consumer omitted falls through to 'transparent'.
|
|
45
|
-
// Rationale: if a consumer says `{ bottom: '#000' }`, they want only the
|
|
46
|
-
// bottom drawn — the other sides should be invisible, not inherit some
|
|
47
|
-
// unrelated colour.
|
|
48
|
-
return {
|
|
49
|
-
top: value.top ?? 'transparent',
|
|
50
|
-
right: value.right ?? 'transparent',
|
|
51
|
-
bottom: value.bottom ?? 'transparent',
|
|
52
|
-
left: value.left ?? 'transparent'
|
|
53
|
-
};
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
/** Map a single width number to all four sides (shorthand expansion). */
|
|
57
|
-
const expandWidthSides = value => {
|
|
58
|
-
if (typeof value === 'number') {
|
|
59
|
-
return {
|
|
60
|
-
top: value,
|
|
61
|
-
right: value,
|
|
62
|
-
bottom: value,
|
|
63
|
-
left: value
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
return {
|
|
67
|
-
top: value.top ?? 0,
|
|
68
|
-
right: value.right ?? 0,
|
|
69
|
-
bottom: value.bottom ?? 0,
|
|
70
|
-
left: value.left ?? 0
|
|
71
|
-
};
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Pick the most "representative" side colour from a 4-side record. Used by
|
|
76
|
-
* consumers (Input's selectionColor, focus rings, etc.) that need a single
|
|
77
|
-
* colour to mirror the visible focus indicator. Priority: bottom → top →
|
|
78
|
-
* left → right, skipping `'transparent'`. The bottom-first order means
|
|
79
|
-
* underline variants pick their underline colour automatically.
|
|
80
|
-
*/
|
|
81
|
-
export const pickRepresentativeBorderColor = sides => {
|
|
82
|
-
for (const side of ['bottom', 'top', 'left', 'right']) {
|
|
83
|
-
const c = sides[side];
|
|
84
|
-
if (c && c !== 'transparent') {
|
|
85
|
-
return c;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return sides.bottom;
|
|
89
|
-
};
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Resolved text styling for the editable / displayed content inside a field.
|
|
93
|
-
* Single source of truth so every field component (Input, NumberInput,
|
|
94
|
-
* Select, SearchBar, PickerTrigger) renders identical colour + weight +
|
|
95
|
-
* fontFamily for value text — and reads the placeholder colour from the
|
|
96
|
-
* same place. OTPInput intentionally overrides this with its own semibold
|
|
97
|
-
* display weight.
|
|
98
|
-
*/
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Resolve the canonical text style chunk for a field's value. Reads from
|
|
102
|
-
* `theme.components.field.{textColor,disabledTextColor,placeholderColor,fontWeight}`
|
|
103
|
-
* first, then the field palette (`theme.colors.field`); brand fonts wired via
|
|
104
|
-
* `typography.fontFamily` apply via the shared `fontFor` helper.
|
|
105
|
-
*/
|
|
106
|
-
export const resolveFieldTextStyle = (theme, options = {}) => {
|
|
107
|
-
const {
|
|
108
|
-
disabled = false
|
|
109
|
-
} = options;
|
|
110
|
-
const tokens = theme.components.field;
|
|
111
|
-
const palette = theme.colors.field;
|
|
112
|
-
// Disabled: value, placeholder and icons all drop to the same dimmed ink.
|
|
113
|
-
const color = disabled ? tokens?.disabledTextColor ?? palette.textDisabled : tokens?.textColor ?? palette.text;
|
|
114
|
-
// The spec dims the placeholder a second step when the field is disabled.
|
|
115
|
-
const placeholderColor = tokens?.placeholderColor ?? (disabled ? palette.placeholderDisabled : palette.placeholder);
|
|
116
|
-
|
|
117
|
-
// If a consumer sets `field.fontWeight` directly (raw RN weight string),
|
|
118
|
-
// honour it verbatim — they've opted out of the brand-font path. Otherwise
|
|
119
|
-
// resolve weight through `fontFor` so `typography.fontFamily.<weight>`
|
|
120
|
-
// takes precedence when a custom face is registered. Value text is regular
|
|
121
|
-
// weight: the label above carries the emphasis.
|
|
122
|
-
const weightStyle = tokens?.fontWeight ? {
|
|
123
|
-
fontWeight: tokens.fontWeight
|
|
124
|
-
} : fontFor(theme, 'normal');
|
|
125
|
-
return {
|
|
126
|
-
color,
|
|
127
|
-
placeholderColor,
|
|
128
|
-
weightStyle
|
|
129
|
-
};
|
|
130
|
-
};
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* The required-field marker appended to a field's label. Single source of
|
|
134
|
-
* truth for the whole field family (Input, Select, FormField, PickerTrigger →
|
|
135
|
-
* Date/Time/DateRange pickers). Themeable via
|
|
136
|
-
* `theme.components.field.{requiredMarker,requiredMarkerColor}`; font family /
|
|
137
|
-
* weight / size are inherited from the parent label `<Text>`.
|
|
138
|
-
*/
|
|
139
|
-
export const RequiredMark = () => {
|
|
140
|
-
const theme = useTheme();
|
|
141
|
-
const tokens = theme.components.field;
|
|
142
|
-
return /*#__PURE__*/_jsx(Text, {
|
|
143
|
-
style: {
|
|
144
|
-
color: tokens?.requiredMarkerColor ?? theme.colors.error
|
|
145
|
-
},
|
|
146
|
-
children: ` ${tokens?.requiredMarker ?? '*'}`
|
|
147
|
-
});
|
|
148
|
-
};
|
|
149
|
-
|
|
150
|
-
/**
|
|
151
|
-
* The placeholder of a required field that has no static label, drawn by the
|
|
152
|
-
* field itself with the required marker after it ("Enter your email *"). It
|
|
153
|
-
* is laid over the empty TextInput, whose own placeholder the field
|
|
154
|
-
* suppresses, in the same type as the input text, and the field removes it
|
|
155
|
-
* the moment it has a value: the star belongs to the hint, so it leaves with
|
|
156
|
-
* the hint rather than standing beside what the user typed. Inert to touch.
|
|
157
|
-
*/
|
|
158
|
-
export const RequiredPlaceholder = ({
|
|
159
|
-
text,
|
|
160
|
-
color,
|
|
161
|
-
fontSize,
|
|
162
|
-
weightStyle,
|
|
163
|
-
align = 'center',
|
|
164
|
-
paddingTop,
|
|
165
|
-
textAlign
|
|
166
|
-
}) => /*#__PURE__*/_jsx(View, {
|
|
167
|
-
pointerEvents: "none",
|
|
168
|
-
style: [StyleSheet.absoluteFill, {
|
|
169
|
-
justifyContent: align === 'top' ? 'flex-start' : 'center',
|
|
170
|
-
paddingTop
|
|
171
|
-
}],
|
|
172
|
-
children: /*#__PURE__*/_jsxs(Text, {
|
|
173
|
-
accessible: false,
|
|
174
|
-
numberOfLines: 1,
|
|
175
|
-
style: {
|
|
176
|
-
color,
|
|
177
|
-
fontSize,
|
|
178
|
-
...weightStyle,
|
|
179
|
-
includeFontPadding: false,
|
|
180
|
-
textAlign
|
|
181
|
-
},
|
|
182
|
-
children: [text, /*#__PURE__*/_jsx(RequiredMark, {})]
|
|
183
|
-
})
|
|
184
|
-
});
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* The circled-exclamation glyph that leads a field's error message. Uses the
|
|
188
|
-
* theme's `icons.error` renderer when one is registered; otherwise draws a
|
|
189
|
-
* ring-and-bang from views so the message never renders bare. Shared by
|
|
190
|
-
* every field component that shows an error line (Input, Select, FormField,
|
|
191
|
-
* the pickers) so the message row reads identically across the family.
|
|
192
|
-
*/
|
|
193
|
-
export const FieldErrorGlyph = ({
|
|
194
|
-
size,
|
|
195
|
-
color
|
|
196
|
-
}) => {
|
|
197
|
-
const theme = useTheme();
|
|
198
|
-
const renderer = theme.icons?.error ?? defaultIcons.error;
|
|
199
|
-
return /*#__PURE__*/_jsx(_Fragment, {
|
|
200
|
-
children: renderer({
|
|
201
|
-
size,
|
|
202
|
-
color
|
|
203
|
-
})
|
|
204
|
-
});
|
|
205
|
-
};
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* The static label above a field, per the design spec: `field.label` ink,
|
|
209
|
-
* the size ladder's `labelFontSize`, semibold, `labelGap` below. It stays on
|
|
210
|
-
* that ink through focus and error (the ring and the message row carry the
|
|
211
|
-
* error). Shared by Select, PickerTrigger, NumberInput; Input renders the
|
|
212
|
-
* same styling inline because it also owns the floating-label variant.
|
|
213
|
-
*/
|
|
214
|
-
export const FieldLabel = ({
|
|
215
|
-
children,
|
|
216
|
-
size = 'md',
|
|
217
|
-
required = false,
|
|
218
|
-
style
|
|
219
|
-
}) => {
|
|
220
|
-
const theme = useTheme();
|
|
221
|
-
const sizeTokens = resolveFieldSize(theme, size);
|
|
222
|
-
return /*#__PURE__*/_jsxs(Text, {
|
|
223
|
-
style: [familyStyles.label, {
|
|
224
|
-
color: theme.colors.field.label,
|
|
225
|
-
fontSize: sizeTokens.labelFontSize,
|
|
226
|
-
...fontFor(theme, 'semibold'),
|
|
227
|
-
marginBottom: sizeTokens.labelGap
|
|
228
|
-
}, style],
|
|
229
|
-
children: [children, required ? /*#__PURE__*/_jsx(RequiredMark, {}) : null]
|
|
230
|
-
});
|
|
231
|
-
};
|
|
232
|
-
|
|
233
|
-
/**
|
|
234
|
-
* The helper / error line under a field: `messageFontSize`, `messageGap`
|
|
235
|
-
* from the box, `field.message` red with the circled-exclamation glyph when
|
|
236
|
-
* `error`, `text.secondary` otherwise. Renders nothing without text.
|
|
237
|
-
*/
|
|
238
|
-
export const FieldMessage = ({
|
|
239
|
-
text,
|
|
240
|
-
error = false,
|
|
241
|
-
size = 'md',
|
|
242
|
-
style
|
|
243
|
-
}) => {
|
|
244
|
-
const theme = useTheme();
|
|
245
|
-
const sizeTokens = resolveFieldSize(theme, size);
|
|
246
|
-
if (!text) {
|
|
247
|
-
return null;
|
|
248
|
-
}
|
|
249
|
-
const color = error ? theme.colors.field.message : theme.colors.text.secondary;
|
|
250
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
251
|
-
style: [familyStyles.messageRow, {
|
|
252
|
-
marginTop: sizeTokens.messageGap,
|
|
253
|
-
columnGap: theme.spacing.xs + 2
|
|
254
|
-
}],
|
|
255
|
-
accessibilityLiveRegion: error ? 'polite' : 'none',
|
|
256
|
-
children: [error ? /*#__PURE__*/_jsx(FieldErrorGlyph, {
|
|
257
|
-
size: sizeTokens.messageFontSize,
|
|
258
|
-
color: color
|
|
259
|
-
}) : null, /*#__PURE__*/_jsx(Text, {
|
|
260
|
-
style: [familyStyles.messageText, {
|
|
261
|
-
color,
|
|
262
|
-
fontSize: sizeTokens.messageFontSize,
|
|
263
|
-
...fontFor(theme, 'normal')
|
|
264
|
-
}, style],
|
|
265
|
-
children: text
|
|
266
|
-
})]
|
|
267
|
-
});
|
|
268
|
-
};
|
|
269
|
-
const familyStyles = StyleSheet.create({
|
|
270
|
-
label: {
|
|
271
|
-
includeFontPadding: false
|
|
272
|
-
},
|
|
273
|
-
messageRow: {
|
|
274
|
-
flexDirection: 'row',
|
|
275
|
-
alignItems: 'center'
|
|
276
|
-
},
|
|
277
|
-
messageText: {
|
|
278
|
-
flexShrink: 1,
|
|
279
|
-
includeFontPadding: false
|
|
280
|
-
}
|
|
281
|
-
});
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Public re-export of the resolved size tokens — components that need to
|
|
285
|
-
* compute their own padding adjustments (e.g. multiline Input, icon-slot
|
|
286
|
-
* sizing) read from this rather than re-hardcoding the size table.
|
|
287
|
-
*/
|
|
288
|
-
export const resolveFieldSize = (theme, size) => {
|
|
289
|
-
const sizeFromTheme = theme.components.field?.[size];
|
|
290
|
-
const fallback = DEFAULT_SIZES[size];
|
|
291
|
-
return {
|
|
292
|
-
paddingHorizontal: sizeFromTheme?.paddingHorizontal ?? fallback.paddingHorizontal,
|
|
293
|
-
paddingVertical: sizeFromTheme?.paddingVertical ?? fallback.paddingVertical,
|
|
294
|
-
minHeight: sizeFromTheme?.minHeight ?? fallback.minHeight,
|
|
295
|
-
fontSize: sizeFromTheme?.fontSize ?? fallback.fontSize,
|
|
296
|
-
borderRadius: sizeFromTheme?.borderRadius ?? fallback.borderRadius,
|
|
297
|
-
iconSize: sizeFromTheme?.iconSize ?? fallback.iconSize,
|
|
298
|
-
labelFontSize: sizeFromTheme?.labelFontSize ?? fallback.labelFontSize,
|
|
299
|
-
labelGap: sizeFromTheme?.labelGap ?? fallback.labelGap,
|
|
300
|
-
messageFontSize: sizeFromTheme?.messageFontSize ?? fallback.messageFontSize,
|
|
301
|
-
messageGap: sizeFromTheme?.messageGap ?? fallback.messageGap
|
|
302
|
-
};
|
|
303
|
-
};
|
|
304
|
-
|
|
305
|
-
// Library defaults for when consumers haven't supplied per-size tokens. The
|
|
306
|
-
// numbers here MUST stay in sync with the `fieldSizes` table in tokens.ts —
|
|
307
|
-
// these are the same values, duplicated so resolveFieldSize works even when
|
|
308
|
-
// the consumer passes a custom theme without `components.field` set.
|
|
309
|
-
const DEFAULT_SIZES = {
|
|
310
|
-
sm: {
|
|
311
|
-
paddingHorizontal: 12,
|
|
312
|
-
paddingVertical: 10,
|
|
313
|
-
minHeight: 38,
|
|
314
|
-
fontSize: 13,
|
|
315
|
-
borderRadius: 10,
|
|
316
|
-
iconSize: 14,
|
|
317
|
-
labelFontSize: 11,
|
|
318
|
-
labelGap: 4,
|
|
319
|
-
messageFontSize: 11,
|
|
320
|
-
messageGap: 2
|
|
321
|
-
},
|
|
322
|
-
md: {
|
|
323
|
-
paddingHorizontal: 14,
|
|
324
|
-
paddingVertical: 13,
|
|
325
|
-
minHeight: 44,
|
|
326
|
-
fontSize: 14,
|
|
327
|
-
borderRadius: 10,
|
|
328
|
-
iconSize: 16,
|
|
329
|
-
labelFontSize: 12,
|
|
330
|
-
labelGap: 4,
|
|
331
|
-
messageFontSize: 12,
|
|
332
|
-
messageGap: 2
|
|
333
|
-
},
|
|
334
|
-
lg: {
|
|
335
|
-
paddingHorizontal: 16,
|
|
336
|
-
paddingVertical: 15,
|
|
337
|
-
minHeight: 52,
|
|
338
|
-
fontSize: 16,
|
|
339
|
-
borderRadius: 10,
|
|
340
|
-
iconSize: 18,
|
|
341
|
-
labelFontSize: 13,
|
|
342
|
-
labelGap: 4,
|
|
343
|
-
messageFontSize: 13,
|
|
344
|
-
messageGap: 2
|
|
345
|
-
}
|
|
346
|
-
};
|
|
347
|
-
|
|
348
|
-
/**
|
|
349
|
-
* Strict, fully-resolved colour set used internally. Mirrors `FieldVariantTokens`
|
|
350
|
-
* but every border colour / width is expanded to a 4-side record by the time
|
|
351
|
-
* the box renders, so the animation pipeline can treat per-side and shorthand
|
|
352
|
-
* the same way. `borderFocusedRepresentative` is a single colour pulled from
|
|
353
|
-
* the focused sides — exposed for consumers (Input's selectionColor) that
|
|
354
|
-
* need to mirror the visible focus indicator without re-resolving per side.
|
|
355
|
-
*/
|
|
356
|
-
|
|
357
|
-
/**
|
|
358
|
-
* Resolve the full set of state-aware fill + border colours for a given
|
|
359
|
-
* variant. Order: explicit override → theme token → library default. Border
|
|
360
|
-
* colour + width are normalized to per-side records here; callers that need
|
|
361
|
-
* a single colour read `borderFocusedRepresentative`.
|
|
362
|
-
*/
|
|
363
|
-
export const resolveVariantColors = (theme, variant, override) => {
|
|
364
|
-
const tokenSet = theme.components.field?.[variant];
|
|
365
|
-
const palette = theme.colors.field;
|
|
366
|
-
|
|
367
|
-
// Variant-specific defaults for resting fill + border treatment, all from
|
|
368
|
-
// the field palette. `outlined` is the spec's box: hairline border on the
|
|
369
|
-
// resting fill, white while focused. `filled` is the same box without the
|
|
370
|
-
// hairline. `underline` draws only the bottom rule on a transparent
|
|
371
|
-
// background — the spec's second row.
|
|
372
|
-
let idleEmpty;
|
|
373
|
-
let focusedDefault;
|
|
374
|
-
let disabledDefault;
|
|
375
|
-
let borderIdleDefault;
|
|
376
|
-
let borderWidthDefault;
|
|
377
|
-
if (variant === 'outlined') {
|
|
378
|
-
idleEmpty = palette.background;
|
|
379
|
-
focusedDefault = palette.backgroundFocused;
|
|
380
|
-
disabledDefault = palette.backgroundDisabled;
|
|
381
|
-
borderIdleDefault = palette.border;
|
|
382
|
-
borderWidthDefault = theme.colors.border.width;
|
|
383
|
-
} else if (variant === 'underline') {
|
|
384
|
-
// No box to dim: the underline row stays transparent while disabled too,
|
|
385
|
-
// only its rule, text and icons drop to the disabled ink.
|
|
386
|
-
idleEmpty = 'transparent';
|
|
387
|
-
focusedDefault = undefined;
|
|
388
|
-
disabledDefault = 'transparent';
|
|
389
|
-
borderIdleDefault = {
|
|
390
|
-
bottom: palette.border
|
|
391
|
-
};
|
|
392
|
-
borderWidthDefault = {
|
|
393
|
-
bottom: theme.colors.border.width
|
|
394
|
-
};
|
|
395
|
-
} else {
|
|
396
|
-
// Filled has no hairline, so the fill IS the box: it must stay put on
|
|
397
|
-
// focus (the outlined box goes white because its ring still shows the
|
|
398
|
-
// edge; a borderless box going white would vanish into the page).
|
|
399
|
-
idleEmpty = palette.background;
|
|
400
|
-
focusedDefault = undefined;
|
|
401
|
-
disabledDefault = palette.backgroundDisabled;
|
|
402
|
-
borderIdleDefault = 'transparent';
|
|
403
|
-
borderWidthDefault = 0;
|
|
404
|
-
}
|
|
405
|
-
|
|
406
|
-
// For focused/error/disabled we expand using the same per-side shape as
|
|
407
|
-
// idle. If `borderIdle` ended up bottom-only (underline), an unset
|
|
408
|
-
// `borderFocused` defaults to `{ bottom: field.borderFocused }` so the
|
|
409
|
-
// focus indicator stays on the same edge. Same logic for error.
|
|
410
|
-
const wrapToIdleShape = colour => typeof borderIdleDefault === 'string' ? colour : {
|
|
411
|
-
bottom: colour
|
|
412
|
-
};
|
|
413
|
-
const borderIdle = expandColorSides(override?.borderIdle ?? tokenSet?.borderIdle ?? borderIdleDefault);
|
|
414
|
-
const borderFocused = expandColorSides(override?.borderFocused ?? tokenSet?.borderFocused ?? wrapToIdleShape(palette.borderFocused));
|
|
415
|
-
const borderError = expandColorSides(override?.borderError ?? tokenSet?.borderError ?? wrapToIdleShape(palette.borderError));
|
|
416
|
-
// The spec keeps the resting hairline while disabled; only the fill and the
|
|
417
|
-
// placeholder dim.
|
|
418
|
-
const borderDisabled = expandColorSides(override?.borderDisabled ?? tokenSet?.borderDisabled ?? borderIdleDefault);
|
|
419
|
-
const borderWidth = expandWidthSides(override?.borderWidth ?? tokenSet?.borderWidth ?? borderWidthDefault);
|
|
420
|
-
return {
|
|
421
|
-
backgroundIdleEmpty: override?.backgroundIdleEmpty ?? tokenSet?.backgroundIdleEmpty ?? idleEmpty,
|
|
422
|
-
backgroundIdleFilled: override?.backgroundIdleFilled ?? tokenSet?.backgroundIdleFilled ?? override?.backgroundIdleEmpty ?? tokenSet?.backgroundIdleEmpty ?? idleEmpty,
|
|
423
|
-
backgroundFocused: override?.backgroundFocused ?? tokenSet?.backgroundFocused ?? focusedDefault,
|
|
424
|
-
backgroundError: override?.backgroundError ?? tokenSet?.backgroundError ?? undefined,
|
|
425
|
-
backgroundDisabled: override?.backgroundDisabled ?? tokenSet?.backgroundDisabled ?? disabledDefault,
|
|
426
|
-
borderIdle,
|
|
427
|
-
borderFocused,
|
|
428
|
-
borderError,
|
|
429
|
-
borderDisabled,
|
|
430
|
-
borderWidth,
|
|
431
|
-
borderFocusedRepresentative: pickRepresentativeBorderColor(borderFocused)
|
|
432
|
-
};
|
|
433
|
-
};
|
|
434
|
-
export const FieldBase = props => {
|
|
435
|
-
const {
|
|
436
|
-
size = 'md',
|
|
437
|
-
variant: variantProp,
|
|
438
|
-
focused = false,
|
|
439
|
-
disabled = false,
|
|
440
|
-
error = false,
|
|
441
|
-
filled = false,
|
|
442
|
-
leading,
|
|
443
|
-
leadingDivider = false,
|
|
444
|
-
trailing,
|
|
445
|
-
slotAlign = 'center',
|
|
446
|
-
slotLineHeight,
|
|
447
|
-
topNotch,
|
|
448
|
-
children,
|
|
449
|
-
onPress,
|
|
450
|
-
pressFeedback = true,
|
|
451
|
-
minHeight: minHeightProp,
|
|
452
|
-
maxHeight,
|
|
453
|
-
width,
|
|
454
|
-
height,
|
|
455
|
-
paddingHorizontal: paddingHorizontalProp,
|
|
456
|
-
paddingLeft: paddingLeftProp,
|
|
457
|
-
paddingRight: paddingRightProp,
|
|
458
|
-
paddingVertical: paddingVerticalProp,
|
|
459
|
-
borderRadius: borderRadiusProp,
|
|
460
|
-
borderTopLeftRadius: borderTopLeftRadiusProp,
|
|
461
|
-
borderTopRightRadius: borderTopRightRadiusProp,
|
|
462
|
-
borderBottomLeftRadius: borderBottomLeftRadiusProp,
|
|
463
|
-
borderBottomRightRadius: borderBottomRightRadiusProp,
|
|
464
|
-
borderWidth: borderWidthProp,
|
|
465
|
-
borderTopWidth: borderTopWidthProp,
|
|
466
|
-
borderRightWidth: borderRightWidthProp,
|
|
467
|
-
borderBottomWidth: borderBottomWidthProp,
|
|
468
|
-
borderLeftWidth: borderLeftWidthProp,
|
|
469
|
-
gap: gapProp,
|
|
470
|
-
fillOverrides,
|
|
471
|
-
style,
|
|
472
|
-
testID,
|
|
473
|
-
accessibilityRole,
|
|
474
|
-
accessibilityLabel,
|
|
475
|
-
accessibilityState,
|
|
476
|
-
accessibilityHint
|
|
477
|
-
} = props;
|
|
478
|
-
const theme = useTheme();
|
|
479
|
-
const styles = useMemo(() => buildStyles(), []);
|
|
480
|
-
const variant = variantProp ?? theme.components.field?.defaultVariant ?? 'outlined';
|
|
481
|
-
const sizeTokens = resolveFieldSize(theme, size);
|
|
482
|
-
const colors = useMemo(() => resolveVariantColors(theme, variant, fillOverrides), [theme, variant, fillOverrides]);
|
|
483
|
-
|
|
484
|
-
// ONE animated value carries the visual state: 0 idle, 1 focused, 2 error
|
|
485
|
-
// (error wins over focus). Every colour below is a single three-stop
|
|
486
|
-
// interpolation of this value, so the Animated node driving `borderColor`
|
|
487
|
-
// is created once and never swapped for one on a different source. The
|
|
488
|
-
// earlier two-value design (focusAnim, errorAnim) re-pointed the style at a
|
|
489
|
-
// fresh interpolation when `error` flipped, and Android painted the border
|
|
490
|
-
// transparent from that moment: the ring vanished exactly in the error
|
|
491
|
-
// state, while the JS-side style still said pink.
|
|
492
|
-
const IDLE = 0;
|
|
493
|
-
const FOCUSED = 1;
|
|
494
|
-
const ERROR = 2;
|
|
495
|
-
const targetState = error ? ERROR : focused ? FOCUSED : IDLE;
|
|
496
|
-
const stateAnim = useRef(createAnimatedValue(targetState)).current;
|
|
497
|
-
useEffect(() => {
|
|
498
|
-
const anim = Animated.timing(stateAnim, {
|
|
499
|
-
toValue: targetState,
|
|
500
|
-
duration: theme.motion.duration.fast,
|
|
501
|
-
easing: Easing.bezier(...theme.motion.easing.standard),
|
|
502
|
-
useNativeDriver: false
|
|
503
|
-
});
|
|
504
|
-
anim.start();
|
|
505
|
-
return () => anim.stop();
|
|
506
|
-
}, [targetState, stateAnim, theme.motion.duration.fast, theme.motion.easing.standard]);
|
|
507
|
-
const STATE_RANGE = [IDLE, FOCUSED, ERROR];
|
|
508
|
-
|
|
509
|
-
// Resting border + fill (pre-animation).
|
|
510
|
-
const idleFill = filled ? colors.backgroundIdleFilled : colors.backgroundIdleEmpty;
|
|
511
|
-
const focusedFill = colors.backgroundFocused ?? idleFill;
|
|
512
|
-
const errorFill = colors.backgroundError ?? idleFill;
|
|
513
|
-
const animatedBackgroundColor = disabled ? colors.backgroundDisabled : stateAnim.interpolate({
|
|
514
|
-
inputRange: STATE_RANGE,
|
|
515
|
-
outputRange: [idleFill, focusedFill, errorFill]
|
|
516
|
-
});
|
|
517
|
-
|
|
518
|
-
// Per-side border colour: idle → focused → error stops for each side, all
|
|
519
|
-
// driven by `stateAnim`. When all four sides agree at every stop we
|
|
520
|
-
// collapse to one `borderColor` key — the common case stays cheap.
|
|
521
|
-
const sideIdle = colors.borderIdle;
|
|
522
|
-
const sideFocused = colors.borderFocused;
|
|
523
|
-
const sideError = colors.borderError;
|
|
524
|
-
|
|
525
|
-
// Per-side widths: longhand prop wins over shorthand prop wins over
|
|
526
|
-
// resolved variant token. Each side independently.
|
|
527
|
-
const propWidth = {
|
|
528
|
-
top: borderTopWidthProp,
|
|
529
|
-
right: borderRightWidthProp,
|
|
530
|
-
bottom: borderBottomWidthProp,
|
|
531
|
-
left: borderLeftWidthProp
|
|
532
|
-
};
|
|
533
|
-
const resolvedWidths = {
|
|
534
|
-
top: propWidth.top ?? borderWidthProp ?? colors.borderWidth.top,
|
|
535
|
-
right: propWidth.right ?? borderWidthProp ?? colors.borderWidth.right,
|
|
536
|
-
bottom: propWidth.bottom ?? borderWidthProp ?? colors.borderWidth.bottom,
|
|
537
|
-
left: propWidth.left ?? borderWidthProp ?? colors.borderWidth.left
|
|
538
|
-
};
|
|
539
|
-
const boxStyle = {
|
|
540
|
-
minHeight: height ?? minHeightProp ?? sizeTokens.minHeight,
|
|
541
|
-
maxHeight,
|
|
542
|
-
paddingHorizontal: paddingHorizontalProp ?? sizeTokens.paddingHorizontal,
|
|
543
|
-
paddingVertical: paddingVerticalProp ?? sizeTokens.paddingVertical,
|
|
544
|
-
paddingLeft: paddingLeftProp ?? paddingHorizontalProp ?? sizeTokens.paddingHorizontal,
|
|
545
|
-
paddingRight: paddingRightProp ?? paddingHorizontalProp ?? sizeTokens.paddingHorizontal,
|
|
546
|
-
backgroundColor: animatedBackgroundColor,
|
|
547
|
-
columnGap: gapProp ?? theme.spacing.md,
|
|
548
|
-
alignItems: slotAlign === 'top' ? 'flex-start' : 'center'
|
|
549
|
-
};
|
|
550
|
-
|
|
551
|
-
// Radius: per-corner prop wins over shorthand prop wins over size token.
|
|
552
|
-
// Underline variant draws ONLY the bottom edge — a non-zero radius arcs the
|
|
553
|
-
// bottom border up around the corners, so the visible line stops short of
|
|
554
|
-
// both ends ("cut" outline). Underline is therefore always square: radius
|
|
555
|
-
// props and tokens are ignored on it, so a consumer switching variants
|
|
556
|
-
// never has to zero the radius by hand.
|
|
557
|
-
const isUnderlineVariant = variant === 'underline';
|
|
558
|
-
const radiusShorthand = isUnderlineVariant ? 0 : borderRadiusProp ?? sizeTokens.borderRadius;
|
|
559
|
-
const corners = isUnderlineVariant ? {
|
|
560
|
-
tl: 0,
|
|
561
|
-
tr: 0,
|
|
562
|
-
bl: 0,
|
|
563
|
-
br: 0
|
|
564
|
-
} : {
|
|
565
|
-
tl: borderTopLeftRadiusProp ?? radiusShorthand,
|
|
566
|
-
tr: borderTopRightRadiusProp ?? radiusShorthand,
|
|
567
|
-
bl: borderBottomLeftRadiusProp ?? radiusShorthand,
|
|
568
|
-
br: borderBottomRightRadiusProp ?? radiusShorthand
|
|
569
|
-
};
|
|
570
|
-
// Every radius / width / colour key below is emitted in its per-corner or
|
|
571
|
-
// per-side LONGHAND form on every render, whatever the variant. The key set
|
|
572
|
-
// therefore never changes when `variant` flips (outlined → underline →
|
|
573
|
-
// outlined): only values do. The earlier code collapsed to the shorthand
|
|
574
|
-
// (`borderWidth`, `borderColor`) whenever all sides agreed, so a variant
|
|
575
|
-
// switch added and removed keys; on Android the removed longhand sides
|
|
576
|
-
// stayed cleared and the freshly added shorthand never painted, leaving the
|
|
577
|
-
// box with no border at all (and no focus ring) until remount. Measured on
|
|
578
|
-
// the showcase, not inferred.
|
|
579
|
-
boxStyle.borderTopLeftRadius = corners.tl;
|
|
580
|
-
boxStyle.borderTopRightRadius = corners.tr;
|
|
581
|
-
boxStyle.borderBottomLeftRadius = corners.bl;
|
|
582
|
-
boxStyle.borderBottomRightRadius = corners.br;
|
|
583
|
-
// Apple's continuous curve on iOS; Android ignores the key (see utils/corners).
|
|
584
|
-
boxStyle.borderCurve = smoothCorners.borderCurve;
|
|
585
|
-
boxStyle.borderTopWidth = resolvedWidths.top;
|
|
586
|
-
boxStyle.borderRightWidth = resolvedWidths.right;
|
|
587
|
-
boxStyle.borderBottomWidth = resolvedWidths.bottom;
|
|
588
|
-
boxStyle.borderLeftWidth = resolvedWidths.left;
|
|
589
|
-
|
|
590
|
-
// Colour: four `borderXColor` interpolations of the one state value.
|
|
591
|
-
// Disabled state is static (no animation needed).
|
|
592
|
-
const sideColor = side => stateAnim.interpolate({
|
|
593
|
-
inputRange: STATE_RANGE,
|
|
594
|
-
outputRange: [sideIdle[side], sideFocused[side], sideError[side]]
|
|
595
|
-
});
|
|
596
|
-
|
|
597
|
-
// Android smooth corners: when the box is one shape (four equal corners,
|
|
598
|
-
// one border width and one border colour all round, in every state) its
|
|
599
|
-
// fill and border are drawn as an SVG squircle over a transparent host.
|
|
600
|
-
// Per-side or per-corner styling and the underline variant keep the native
|
|
601
|
-
// box: the shape has no per-side form, and the underline has no corner.
|
|
602
|
-
const sameOnEverySide = sides => sides.top === sides.right && sides.top === sides.bottom && sides.top === sides.left;
|
|
603
|
-
const oneShape = !isUnderlineVariant && corners.tl === corners.tr && corners.tl === corners.bl && corners.tl === corners.br && sameOnEverySide(resolvedWidths) && sameOnEverySide(sideIdle) && sameOnEverySide(sideFocused) && sameOnEverySide(sideError) && sameOnEverySide(colors.borderDisabled);
|
|
604
|
-
const squircle = useSquircle(oneShape, corners.tl);
|
|
605
|
-
if (squircle.active) {
|
|
606
|
-
// The widths stay (layout must not move by a pixel); the paint moves to
|
|
607
|
-
// the squircle, whose stroke follows the same state interpolation.
|
|
608
|
-
boxStyle.backgroundColor = 'transparent';
|
|
609
|
-
boxStyle.borderTopColor = 'transparent';
|
|
610
|
-
boxStyle.borderRightColor = 'transparent';
|
|
611
|
-
boxStyle.borderBottomColor = 'transparent';
|
|
612
|
-
boxStyle.borderLeftColor = 'transparent';
|
|
613
|
-
} else if (disabled) {
|
|
614
|
-
const sideDisabled = colors.borderDisabled;
|
|
615
|
-
boxStyle.borderTopColor = sideDisabled.top;
|
|
616
|
-
boxStyle.borderRightColor = sideDisabled.right;
|
|
617
|
-
boxStyle.borderBottomColor = sideDisabled.bottom;
|
|
618
|
-
boxStyle.borderLeftColor = sideDisabled.left;
|
|
619
|
-
} else {
|
|
620
|
-
boxStyle.borderTopColor = sideColor('top');
|
|
621
|
-
boxStyle.borderRightColor = sideColor('right');
|
|
622
|
-
boxStyle.borderBottomColor = sideColor('bottom');
|
|
623
|
-
boxStyle.borderLeftColor = sideColor('left');
|
|
624
|
-
}
|
|
625
|
-
const squircleStroke = disabled ? colors.borderDisabled.top : sideColor('top');
|
|
626
|
-
|
|
627
|
-
// When the colour records themselves change (variant or theme switch), the
|
|
628
|
-
// interpolation nodes above are new objects. Re-assert the current state
|
|
629
|
-
// value so Animated pushes their values to the native view straight away
|
|
630
|
-
// instead of waiting for the next focus / error transition.
|
|
631
|
-
const targetStateRef = useRef(targetState);
|
|
632
|
-
targetStateRef.current = targetState;
|
|
633
|
-
// biome-ignore lint/correctness/useExhaustiveDependencies: `colors` is deliberately a dependency without being read: the effect must re-run when the colour set changes so the new interpolation nodes are pushed to native, and reading it would add nothing.
|
|
634
|
-
useEffect(() => {
|
|
635
|
-
// `colors` is the identity that changes with variant / theme / overrides.
|
|
636
|
-
// Read the target through a ref so a plain state change (which the timing
|
|
637
|
-
// effect above animates) does not also snap the value here.
|
|
638
|
-
stateAnim.setValue(targetStateRef.current);
|
|
639
|
-
}, [colors, stateAnim]);
|
|
640
|
-
if (width !== undefined) {
|
|
641
|
-
boxStyle.width = width;
|
|
642
|
-
}
|
|
643
|
-
if (height !== undefined) {
|
|
644
|
-
boxStyle.height = height;
|
|
645
|
-
}
|
|
646
|
-
const a11yState = {
|
|
647
|
-
disabled,
|
|
648
|
-
...accessibilityState
|
|
649
|
-
};
|
|
650
|
-
|
|
651
|
-
// Top-aligned slots: the row stops centring, and each slot (and the divider)
|
|
652
|
-
// is nudged down so its centre lands on the first line's centre.
|
|
653
|
-
const slotsOnTop = slotAlign === 'top';
|
|
654
|
-
const slotTopStyle = slotsOnTop ? {
|
|
655
|
-
alignSelf: 'flex-start',
|
|
656
|
-
marginTop: Math.max(0, ((slotLineHeight ?? sizeTokens.iconSize) - sizeTokens.iconSize) / 2)
|
|
657
|
-
} : null;
|
|
658
|
-
// The notch is a strip of the box's own fill laid over the top border, so
|
|
659
|
-
// the rule visibly stops either side of the label. Absolute children sit
|
|
660
|
-
// inside the border, hence the border-width offsets.
|
|
661
|
-
// When the notch starts inside the top-left corner's arc (a pill, whose
|
|
662
|
-
// radius is wider than the padding the label floats at), the rule there
|
|
663
|
-
// has already curved below the top edge, so a one-line strip would leave
|
|
664
|
-
// it running under the label's left end. Deepen the strip to the arc's
|
|
665
|
-
// depth at the notch's left, so the rule stops with the same air on that
|
|
666
|
-
// side as on the right.
|
|
667
|
-
const boxMinHeight = height ?? minHeightProp ?? sizeTokens.minHeight;
|
|
668
|
-
const notchArcDepth = (() => {
|
|
669
|
-
if (!topNotch) {
|
|
670
|
-
return 0;
|
|
671
|
-
}
|
|
672
|
-
const r = Math.min(corners.tl, boxMinHeight / 2);
|
|
673
|
-
const x = topNotch.left;
|
|
674
|
-
if (r <= 0 || x >= r) {
|
|
675
|
-
return 0;
|
|
676
|
-
}
|
|
677
|
-
return Math.ceil(r - Math.sqrt(r * r - (r - x) * (r - x)));
|
|
678
|
-
})();
|
|
679
|
-
const notch = topNotch && resolvedWidths.top > 0 ? /*#__PURE__*/_jsx(Animated.View, {
|
|
680
|
-
pointerEvents: "none",
|
|
681
|
-
style: {
|
|
682
|
-
position: 'absolute',
|
|
683
|
-
top: -resolvedWidths.top,
|
|
684
|
-
left: topNotch.left - resolvedWidths.left,
|
|
685
|
-
width: topNotch.width,
|
|
686
|
-
height: resolvedWidths.top + notchArcDepth,
|
|
687
|
-
backgroundColor: animatedBackgroundColor
|
|
688
|
-
}
|
|
689
|
-
}) : null;
|
|
690
|
-
const renderInner = pressed => /*#__PURE__*/_jsxs(_Fragment, {
|
|
691
|
-
children: [squircle.active && squircle.size ? /*#__PURE__*/_jsx(SquircleFill, {
|
|
692
|
-
width: squircle.size.width,
|
|
693
|
-
height: squircle.size.height,
|
|
694
|
-
radius: corners.tl,
|
|
695
|
-
fill: pressed && !disabled ? theme.colors.surface.pressed : animatedBackgroundColor,
|
|
696
|
-
stroke: squircleStroke,
|
|
697
|
-
strokeWidth: resolvedWidths.top,
|
|
698
|
-
outset: resolvedWidths.top
|
|
699
|
-
}) : null, notch, leading != null ? /*#__PURE__*/_jsx(View, {
|
|
700
|
-
style: [styles.slot, slotTopStyle],
|
|
701
|
-
children: leading
|
|
702
|
-
}) : null, leading != null && leadingDivider ? /*#__PURE__*/_jsx(View, {
|
|
703
|
-
pointerEvents: "none",
|
|
704
|
-
style: [styles.divider, slotTopStyle, {
|
|
705
|
-
height: sizeTokens.iconSize,
|
|
706
|
-
backgroundColor: theme.colors.field.border
|
|
707
|
-
}]
|
|
708
|
-
}) : null, /*#__PURE__*/_jsx(View, {
|
|
709
|
-
style: [styles.content, slotsOnTop ? styles.contentTop : null],
|
|
710
|
-
children: children
|
|
711
|
-
}), trailing != null ? /*#__PURE__*/_jsx(View, {
|
|
712
|
-
style: [styles.slot, slotTopStyle],
|
|
713
|
-
children: trailing
|
|
714
|
-
}) : null]
|
|
715
|
-
});
|
|
716
|
-
const box = /*#__PURE__*/_jsx(Animated.View, {
|
|
717
|
-
onLayout: squircle.onLayout,
|
|
718
|
-
style: [styles.box, boxStyle, style],
|
|
719
|
-
accessibilityRole: accessibilityRole,
|
|
720
|
-
accessibilityLabel: accessibilityLabel,
|
|
721
|
-
accessibilityHint: accessibilityHint,
|
|
722
|
-
accessibilityState: a11yState,
|
|
723
|
-
testID: testID,
|
|
724
|
-
children: renderInner(false)
|
|
725
|
-
});
|
|
726
|
-
if (onPress && !pressFeedback) {
|
|
727
|
-
// A tap anywhere on the box (padding, icon, gap) reaches the parent's
|
|
728
|
-
// handler, which focuses the hosted TextInput. The input's own touches
|
|
729
|
-
// never get here: it takes the responder first. `accessible={false}`
|
|
730
|
-
// keeps this wrapper out of the accessibility tree, and the child is a
|
|
731
|
-
// plain node, so press state changes re-render nothing.
|
|
732
|
-
return /*#__PURE__*/_jsx(Pressable, {
|
|
733
|
-
onPress: onPress,
|
|
734
|
-
disabled: disabled,
|
|
735
|
-
accessible: false,
|
|
736
|
-
children: box
|
|
737
|
-
});
|
|
738
|
-
}
|
|
739
|
-
if (onPress) {
|
|
740
|
-
return /*#__PURE__*/_jsx(Pressable, {
|
|
741
|
-
onPress: onPress,
|
|
742
|
-
disabled: disabled
|
|
743
|
-
// No android_ripple: the ripple paints on this square Pressable, not
|
|
744
|
-
// the rounded box inside it, so its corners showed outside the field's
|
|
745
|
-
// radius. The box's own pressed fill below is the feedback instead.
|
|
746
|
-
,
|
|
747
|
-
accessibilityRole: accessibilityRole ?? 'button',
|
|
748
|
-
accessibilityLabel: accessibilityLabel,
|
|
749
|
-
accessibilityHint: accessibilityHint,
|
|
750
|
-
accessibilityState: a11yState,
|
|
751
|
-
testID: testID,
|
|
752
|
-
children: ({
|
|
753
|
-
pressed
|
|
754
|
-
}) => /*#__PURE__*/_jsx(Animated.View, {
|
|
755
|
-
onLayout: squircle.onLayout,
|
|
756
|
-
style: [styles.box, boxStyle, pressed && !disabled && !squircle.active ? {
|
|
757
|
-
backgroundColor: theme.colors.surface.pressed
|
|
758
|
-
} : null, style],
|
|
759
|
-
children: renderInner(pressed)
|
|
760
|
-
})
|
|
761
|
-
});
|
|
762
|
-
}
|
|
763
|
-
return box;
|
|
764
|
-
};
|
|
765
|
-
FieldBase.displayName = 'FieldBase';
|
|
766
|
-
const buildStyles = () => StyleSheet.create({
|
|
767
|
-
box: {
|
|
768
|
-
flexDirection: 'row',
|
|
769
|
-
alignItems: 'center',
|
|
770
|
-
overflow: 'visible'
|
|
771
|
-
},
|
|
772
|
-
slot: {
|
|
773
|
-
alignItems: 'center',
|
|
774
|
-
justifyContent: 'center'
|
|
775
|
-
},
|
|
776
|
-
divider: {
|
|
777
|
-
width: 1,
|
|
778
|
-
alignSelf: 'center'
|
|
779
|
-
},
|
|
780
|
-
content: {
|
|
781
|
-
flex: 1,
|
|
782
|
-
flexDirection: 'row',
|
|
783
|
-
alignItems: 'center'
|
|
784
|
-
},
|
|
785
|
-
contentTop: {
|
|
786
|
-
alignItems: 'flex-start'
|
|
787
|
-
}
|
|
788
|
-
});
|
|
789
|
-
export default FieldBase;
|
|
790
|
-
//# sourceMappingURL=FieldBase.js.map
|
|
1
|
+
"use strict";import React,{useEffect,useMemo,useRef}from"react";import{Animated,Easing,Pressable,StyleSheet,Text,View}from"react-native";import{createAnimatedValue,fontFor,useTheme}from"../../theme/index.js";import{smoothCorners}from"../../utils/corners.js";import{defaultIcons}from"../AppIcon/defaultIcons.js";import{SquircleFill,useSquircle}from"../SquircleFill/SquircleFill.js";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";const expandColorSides=e=>"string"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??"transparent",right:e.right??"transparent",bottom:e.bottom??"transparent",left:e.left??"transparent"},expandWidthSides=e=>"number"==typeof e?{top:e,right:e,bottom:e,left:e}:{top:e.top??0,right:e.right??0,bottom:e.bottom??0,left:e.left??0};export const pickRepresentativeBorderColor=e=>{for(const t of["bottom","top","left","right"]){const o=e[t];if(o&&"transparent"!==o)return o}return e.bottom};export const resolveFieldTextStyle=(e,t={})=>{const{disabled:o=!1}=t,r=e.components.field,i=e.colors.field;return{color:o?r?.disabledTextColor??i.textDisabled:r?.textColor??i.text,placeholderColor:r?.placeholderColor??(o?i.placeholderDisabled:i.placeholder),weightStyle:r?.fontWeight?{fontWeight:r.fontWeight}:fontFor(e,"normal")}};export const RequiredMark=()=>{const e=useTheme(),t=e.components.field;return _jsx(Text,{style:{color:t?.requiredMarkerColor??e.colors.error},children:` ${t?.requiredMarker??"*"}`})};export const RequiredPlaceholder=({text:e,color:t,fontSize:o,weightStyle:r,align:i="center",paddingTop:l,textAlign:n})=>_jsx(View,{pointerEvents:"none",style:[StyleSheet.absoluteFill,{justifyContent:"top"===i?"flex-start":"center",paddingTop:l}],children:_jsxs(Text,{accessible:!1,numberOfLines:1,style:{color:t,fontSize:o,...r,includeFontPadding:!1,textAlign:n},children:[e,_jsx(RequiredMark,{})]})});export const FieldErrorGlyph=({size:e,color:t})=>{const o=useTheme(),r=o.icons?.error??defaultIcons.error;return _jsx(_Fragment,{children:r({size:e,color:t})})};export const hasFieldText=e=>null!=e&&!1!==e&&!0!==e&&""!==e;export const fieldTextAsString=e=>"string"==typeof e?e:void 0;export const FieldLabel=({children:e,size:t="md",required:o=!1,help:r,color:i,style:l})=>{const n=useTheme(),s=resolveFieldSize(n,t),d=hasFieldText(r),a=_jsxs(Text,{style:[familyStyles.label,{color:i??n.colors.field.label,fontSize:s.labelFontSize,...fontFor(n,"semibold"),marginBottom:d?0:s.labelGap},d?familyStyles.labelShrink:null,l],children:[e,o?_jsx(RequiredMark,{}):null]});return d?_jsxs(View,{style:[familyStyles.labelRow,{marginBottom:s.labelGap}],children:[a,_jsx(View,{style:[familyStyles.help,{marginLeft:n.spacing.xs}],children:r})]}):a};export const FieldMessage=({text:e,error:t=!1,size:o="md",style:r})=>{const i=useTheme(),l=resolveFieldSize(i,o);if(!hasFieldText(e))return null;const n=t?i.colors.field.message:i.colors.text.secondary;return _jsxs(View,{style:[familyStyles.messageRow,{marginTop:l.messageGap,columnGap:i.spacing.xs+2}],accessibilityLiveRegion:t?"polite":"none",children:[t?_jsx(FieldErrorGlyph,{size:l.messageFontSize,color:n}):null,_jsx(Text,{style:[familyStyles.messageText,{color:n,fontSize:l.messageFontSize,...fontFor(i,"normal")},r],children:e})]})};const familyStyles=StyleSheet.create({label:{includeFontPadding:!1},labelShrink:{flexShrink:1},labelRow:{flexDirection:"row",alignItems:"center"},help:{flexShrink:0,alignItems:"center",justifyContent:"center"},messageRow:{flexDirection:"row",alignItems:"center"},messageText:{flexShrink:1,includeFontPadding:!1}});export const resolveFieldSize=(e,t)=>{const o=e.components.field?.[t],r=DEFAULT_SIZES[t];return{paddingHorizontal:o?.paddingHorizontal??r.paddingHorizontal,paddingVertical:o?.paddingVertical??r.paddingVertical,minHeight:o?.minHeight??r.minHeight,fontSize:o?.fontSize??r.fontSize,borderRadius:o?.borderRadius??r.borderRadius,iconSize:o?.iconSize??r.iconSize,labelFontSize:o?.labelFontSize??r.labelFontSize,labelGap:o?.labelGap??r.labelGap,messageFontSize:o?.messageFontSize??r.messageFontSize,messageGap:o?.messageGap??r.messageGap}};const DEFAULT_SIZES={sm:{paddingHorizontal:12,paddingVertical:10,minHeight:38,fontSize:13,borderRadius:10,iconSize:14,labelFontSize:11,labelGap:4,messageFontSize:11,messageGap:2},md:{paddingHorizontal:14,paddingVertical:13,minHeight:44,fontSize:14,borderRadius:10,iconSize:16,labelFontSize:12,labelGap:4,messageFontSize:12,messageGap:2},lg:{paddingHorizontal:16,paddingVertical:15,minHeight:52,fontSize:16,borderRadius:10,iconSize:18,labelFontSize:13,labelGap:4,messageFontSize:13,messageGap:2}};export const resolveVariantColors=(e,t,o)=>{const r=e.components.field?.[t],i=e.colors.field;let l,n,s,d,a;"outlined"===t?(l=i.background,n=i.backgroundFocused,s=i.backgroundDisabled,d=i.border,a=e.colors.border.width):"underline"===t?(l="transparent",n=void 0,s="transparent",d={bottom:i.border},a={bottom:e.colors.border.width}):(l=i.background,n=void 0,s=i.backgroundDisabled,d="transparent",a=0);const wrapToIdleShape=e=>"string"==typeof d?e:{bottom:e},c=expandColorSides(o?.borderIdle??r?.borderIdle??d),b=expandColorSides(o?.borderFocused??r?.borderFocused??wrapToIdleShape(i.borderFocused)),p=expandColorSides(o?.borderError??r?.borderError??wrapToIdleShape(i.borderError)),g=expandColorSides(o?.borderDisabled??r?.borderDisabled??d),u=expandWidthSides(o?.borderWidth??r?.borderWidth??a);return{backgroundIdleEmpty:o?.backgroundIdleEmpty??r?.backgroundIdleEmpty??l,backgroundIdleFilled:o?.backgroundIdleFilled??r?.backgroundIdleFilled??o?.backgroundIdleEmpty??r?.backgroundIdleEmpty??l,backgroundFocused:o?.backgroundFocused??r?.backgroundFocused??n,backgroundError:o?.backgroundError??r?.backgroundError??void 0,backgroundDisabled:o?.backgroundDisabled??r?.backgroundDisabled??s,borderIdle:c,borderFocused:b,borderError:p,borderDisabled:g,borderWidth:u,borderFocusedRepresentative:pickRepresentativeBorderColor(b)}};export const FieldBase=e=>{const{size:t="md",variant:o,focused:r=!1,disabled:i=!1,error:l=!1,filled:n=!1,leading:s,leadingDivider:d=!1,trailing:a,slotAlign:c="center",slotLineHeight:b,topNotch:p,children:g,onPress:u,pressFeedback:m=!0,minHeight:h,maxHeight:f,width:x,height:S,paddingHorizontal:y,paddingLeft:F,paddingRight:z,paddingVertical:R,borderRadius:k,borderTopLeftRadius:C,borderTopRightRadius:T,borderBottomLeftRadius:j,borderBottomRightRadius:v,borderWidth:w,borderTopWidth:I,borderRightWidth:_,borderBottomWidth:E,borderLeftWidth:V,gap:H,fillOverrides:D,style:L,testID:W,accessibilityRole:G,accessibilityLabel:B,accessibilityState:q,accessibilityHint:A}=e,M=useTheme(),P=useMemo(()=>buildStyles(),[]),N=o??M.components.field?.defaultVariant??"outlined",O=resolveFieldSize(M,t),U=useMemo(()=>resolveVariantColors(M,N,D),[M,N,D]),Z=l?2:r?1:0,$=useRef(createAnimatedValue(Z)).current;useEffect(()=>{const e=Animated.timing($,{toValue:Z,duration:M.motion.duration.fast,easing:Easing.bezier(...M.motion.easing.standard),useNativeDriver:!1});return e.start(),()=>e.stop()},[Z,$,M.motion.duration.fast,M.motion.easing.standard]);const J=[0,1,2],K=n?U.backgroundIdleFilled:U.backgroundIdleEmpty,Q=U.backgroundFocused??K,X=U.backgroundError??K,Y=i?U.backgroundDisabled:$.interpolate({inputRange:J,outputRange:[K,Q,X]}),ee=U.borderIdle,te=U.borderFocused,oe=U.borderError,re={top:I,right:_,bottom:E,left:V},ie={top:re.top??w??U.borderWidth.top,right:re.right??w??U.borderWidth.right,bottom:re.bottom??w??U.borderWidth.bottom,left:re.left??w??U.borderWidth.left},le={minHeight:S??h??O.minHeight,maxHeight:f,paddingHorizontal:y??O.paddingHorizontal,paddingVertical:R??O.paddingVertical,paddingLeft:F??y??O.paddingHorizontal,paddingRight:z??y??O.paddingHorizontal,backgroundColor:Y,columnGap:H??M.spacing.md,alignItems:"top"===c?"flex-start":"center"},ne="underline"===N,se=ne?0:k??O.borderRadius,de=ne?{tl:0,tr:0,bl:0,br:0}:{tl:C??se,tr:T??se,bl:j??se,br:v??se};le.borderTopLeftRadius=de.tl,le.borderTopRightRadius=de.tr,le.borderBottomLeftRadius=de.bl,le.borderBottomRightRadius=de.br,le.borderCurve=smoothCorners.borderCurve,le.borderTopWidth=ie.top,le.borderRightWidth=ie.right,le.borderBottomWidth=ie.bottom,le.borderLeftWidth=ie.left;const sideColor=e=>$.interpolate({inputRange:J,outputRange:[ee[e],te[e],oe[e]]}),sameOnEverySide=e=>e.top===e.right&&e.top===e.bottom&&e.top===e.left,ae=!ne&&de.tl===de.tr&&de.tl===de.bl&&de.tl===de.br&&sameOnEverySide(ie)&&sameOnEverySide(ee)&&sameOnEverySide(te)&&sameOnEverySide(oe)&&sameOnEverySide(U.borderDisabled),ce=useSquircle(ae,de.tl);if(ce.active)le.backgroundColor="transparent",le.borderTopColor="transparent",le.borderRightColor="transparent",le.borderBottomColor="transparent",le.borderLeftColor="transparent";else if(i){const e=U.borderDisabled;le.borderTopColor=e.top,le.borderRightColor=e.right,le.borderBottomColor=e.bottom,le.borderLeftColor=e.left}else le.borderTopColor=sideColor("top"),le.borderRightColor=sideColor("right"),le.borderBottomColor=sideColor("bottom"),le.borderLeftColor=sideColor("left");const be=i?U.borderDisabled.top:sideColor("top"),pe=useRef(Z);pe.current=Z,useEffect(()=>{$.setValue(pe.current)},[U,$]),void 0!==x&&(le.width=x),void 0!==S&&(le.height=S);const ge={disabled:i,...q},ue="top"===c,me=ue?{alignSelf:"flex-start",marginTop:Math.max(0,((b??O.iconSize)-O.iconSize)/2)}:null,he=S??h??O.minHeight,fe=(()=>{if(!p)return 0;const e=Math.min(de.tl,he/2),t=p.left;return e<=0||t>=e?0:Math.ceil(e-Math.sqrt(e*e-(e-t)*(e-t)))})(),xe=p&&ie.top>0?_jsx(Animated.View,{pointerEvents:"none",style:{position:"absolute",top:-ie.top,left:p.left-ie.left,width:p.width,height:ie.top+fe,backgroundColor:Y}}):null,renderInner=e=>_jsxs(_Fragment,{children:[ce.active&&ce.size?_jsx(SquircleFill,{width:ce.size.width,height:ce.size.height,radius:de.tl,fill:e&&!i?M.colors.surface.pressed:Y,stroke:be,strokeWidth:ie.top,outset:ie.top}):null,xe,null!=s?_jsx(View,{style:[P.slot,me],children:s}):null,null!=s&&d?_jsx(View,{pointerEvents:"none",style:[P.divider,me,{height:O.iconSize,backgroundColor:M.colors.field.border}]}):null,_jsx(View,{style:[P.content,ue?P.contentTop:null],children:g}),null!=a?_jsx(View,{style:[P.slot,me],children:a}):null]}),Se=_jsx(Animated.View,{onLayout:ce.onLayout,style:[P.box,le,L],accessibilityRole:G,accessibilityLabel:B,accessibilityHint:A,accessibilityState:ge,testID:W,children:renderInner(!1)});return u&&!m?_jsx(Pressable,{onPress:u,disabled:i,accessible:!1,children:Se}):u?_jsx(Pressable,{onPress:u,disabled:i,accessibilityRole:G??"button",accessibilityLabel:B,accessibilityHint:A,accessibilityState:ge,testID:W,children:({pressed:e})=>_jsx(Animated.View,{onLayout:ce.onLayout,style:[P.box,le,!e||i||ce.active?null:{backgroundColor:M.colors.surface.pressed},L],children:renderInner(e)})}):Se};FieldBase.displayName="FieldBase";const buildStyles=()=>StyleSheet.create({box:{flexDirection:"row",alignItems:"center",overflow:"visible"},slot:{alignItems:"center",justifyContent:"center"},divider:{width:1,alignSelf:"center"},content:{flex:1,flexDirection:"row",alignItems:"center"},contentTop:{alignItems:"flex-start"}});export default FieldBase;
|