pixelize-native-library 1.2.1 → 1.3.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/COMPONENT-GOTCHAS.md +309 -0
- package/DESIGN-GUIDE.md +215 -0
- package/README.md +44 -0
- package/lib/module/core/MODULE.md +22 -16
- package/lib/module/core/a11y/MODULE.md +7 -7
- package/lib/module/core/a11y/touchTarget.js +6 -0
- package/lib/module/core/blur/blur.js +17 -0
- package/lib/module/core/blur/index.js +4 -0
- package/lib/module/core/device/MODULE.md +5 -8
- package/lib/module/core/gradient/AccentGradientFill.js +9 -6
- package/lib/module/core/gradient/ShimmerGradientFill.js +79 -0
- package/lib/module/core/gradient/index.js +1 -0
- package/lib/module/core/haptics/MODULE.md +7 -3
- package/lib/module/core/heading/MODULE.md +1 -1
- package/lib/module/core/icon/MODULE.md +14 -22
- package/lib/module/core/icon/icons/building-2.js +1 -1
- package/lib/module/core/icon/icons/trash.js +1 -1
- package/lib/module/core/list/VirtualList.js +16 -3
- package/lib/module/core/motion/MODULE.md +18 -9
- package/lib/module/core/motion/animatedComponents.js +8 -0
- package/lib/module/core/motion/index.js +2 -0
- package/lib/module/core/motion/motionAnimation.js +87 -0
- package/lib/module/core/motion/presets.js +81 -81
- package/lib/module/core/motion/reanimatedEasing.js +19 -0
- package/lib/module/core/motion/useAnimatedValue.js +2 -14
- package/lib/module/core/motion/useMotion.js +19 -20
- package/lib/module/core/motion/usePressState.js +0 -5
- package/lib/module/core/overlay/MODULE.md +17 -0
- package/lib/module/core/overlay/ModalPortalContext.js +8 -0
- package/lib/module/core/overlay/index.js +5 -0
- package/lib/module/core/overlay/renderWebPortal.js +6 -0
- package/lib/module/core/overlay/renderWebPortal.web.js +8 -0
- package/lib/module/core/screen-scroll/ScreenScrollContext.js +9 -0
- package/lib/module/core/screen-scroll/index.js +4 -0
- package/lib/module/core/slot/MODULE.md +9 -0
- package/lib/module/core/slot/index.js +4 -0
- package/lib/module/core/slot/nodeSlot.js +21 -0
- package/lib/module/core/style/focusRing.js +37 -0
- package/lib/module/core/style/index.js +1 -1
- package/lib/module/index.js +23 -4
- package/lib/module/modules/accordion/Accordion.js +50 -108
- package/lib/module/modules/accordion/Accordion.variants.js +2 -4
- package/lib/module/modules/accordion/AccordionProps.js +4 -0
- package/lib/module/modules/accordion/MODULE.md +15 -24
- package/lib/module/modules/alert-dialog/AlertDialog.js +19 -2
- package/lib/module/modules/alert-dialog/AlertDialogProps.js +4 -0
- package/lib/module/modules/alert-dialog/MODULE.md +2 -1
- package/lib/module/modules/app-bar/AppBar.js +21 -18
- package/lib/module/modules/app-bar/AppBar.variants.js +5 -0
- package/lib/module/modules/app-bar/AppBarProps.js +4 -0
- package/lib/module/modules/app-bar/MODULE.md +1 -1
- package/lib/module/modules/app-switcher/AppSwitcher.js +30 -0
- package/lib/module/modules/app-switcher/AppSwitcherProps.js +4 -0
- package/lib/module/modules/app-switcher/MODULE.md +14 -0
- package/lib/module/modules/app-switcher/index.js +4 -0
- package/lib/module/modules/appearance-settings/AppearanceSettings.js +58 -0
- package/lib/module/modules/appearance-settings/AppearanceSettingsProps.js +4 -0
- package/lib/module/modules/appearance-settings/MODULE.md +9 -0
- package/lib/module/modules/appearance-settings/index.js +4 -0
- package/lib/module/modules/avatar/Avatar.variants.js +2 -0
- package/lib/module/modules/avatar/AvatarProps.js +4 -0
- package/lib/module/modules/avatar/MODULE.md +3 -3
- package/lib/module/modules/avatar-group/AvatarGroupProps.js +4 -0
- package/lib/module/modules/avatar-group/MODULE.md +2 -1
- package/lib/module/modules/backdrop/Backdrop.js +38 -0
- package/lib/module/modules/backdrop/BackdropProps.js +4 -0
- package/lib/module/modules/backdrop/MODULE.md +11 -0
- package/lib/module/modules/backdrop/index.js +4 -0
- package/lib/module/modules/badge/BadgeProps.js +4 -0
- package/lib/module/modules/badge/MODULE.md +6 -4
- package/lib/module/modules/banner/Banner.js +2 -2
- package/lib/module/modules/banner/Banner.variants.js +3 -1
- package/lib/module/modules/banner/BannerProps.js +4 -0
- package/lib/module/modules/banner/MODULE.md +20 -31
- package/lib/module/modules/bottom-nav/BottomNav.variants.js +2 -2
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +18 -19
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +8 -7
- package/lib/module/modules/bottom-nav/BottomNavProps.js +4 -0
- package/lib/module/modules/bottom-nav/BottomNavTab.js +15 -16
- package/lib/module/modules/bottom-nav/MODULE.md +13 -13
- package/lib/module/modules/bottom-sheet/BottomSheet.js +30 -7
- package/lib/module/modules/bottom-sheet/BottomSheetProps.js +4 -0
- package/lib/module/modules/bottom-sheet/MODULE.md +11 -1
- package/lib/module/modules/breadcrumbs/Breadcrumbs.js +54 -0
- package/lib/module/modules/breadcrumbs/Breadcrumbs.variants.js +28 -0
- package/lib/module/modules/breadcrumbs/BreadcrumbsProps.js +4 -0
- package/lib/module/modules/breadcrumbs/MODULE.md +13 -0
- package/lib/module/modules/breadcrumbs/index.js +4 -0
- package/lib/module/modules/button/Button.js +6 -4
- package/lib/module/modules/button/Button.variants.js +12 -16
- package/lib/module/modules/button/ButtonProps.js +4 -0
- package/lib/module/modules/button/MODULE.md +6 -11
- package/lib/module/modules/button-group/ButtonGroup.js +4 -3
- package/lib/module/modules/button-group/ButtonGroup.variants.js +2 -4
- package/lib/module/modules/button-group/ButtonGroupProps.js +4 -0
- package/lib/module/modules/button-group/MODULE.md +2 -2
- package/lib/module/modules/card/Card.js +30 -7
- package/lib/module/modules/card/CardProps.js +4 -0
- package/lib/module/modules/card/MODULE.md +4 -2
- package/lib/module/modules/charts/BarChart.js +6 -4
- package/lib/module/modules/charts/BarChartProps.js +4 -0
- package/lib/module/modules/charts/BarList.js +2 -1
- package/lib/module/modules/charts/BarListProps.js +4 -0
- package/lib/module/modules/charts/ChartLegendProps.js +4 -0
- package/lib/module/modules/charts/Charts.variants.js +3 -1
- package/lib/module/modules/charts/DonutChart.js +3 -2
- package/lib/module/modules/charts/DonutChartProps.js +4 -0
- package/lib/module/modules/charts/LineChart.js +3 -2
- package/lib/module/modules/charts/LineChartProps.js +4 -0
- package/lib/module/modules/charts/MODULE.md +14 -14
- package/lib/module/modules/charts/PieChart.js +6 -4
- package/lib/module/modules/charts/PieChartProps.js +4 -0
- package/lib/module/modules/charts/SparklineProps.js +4 -0
- package/lib/module/modules/checkbox/Checkbox.js +21 -27
- package/lib/module/modules/checkbox/Checkbox.variants.js +4 -2
- package/lib/module/modules/checkbox/CheckboxProps.js +4 -0
- package/lib/module/modules/checkbox/MODULE.md +12 -6
- package/lib/module/modules/chip/Chip.js +49 -32
- package/lib/module/modules/chip/Chip.variants.js +3 -2
- package/lib/module/modules/chip/ChipGroup.js +16 -5
- package/lib/module/modules/chip/ChipGroupProps.js +4 -0
- package/lib/module/modules/chip/ChipProps.js +4 -0
- package/lib/module/modules/chip/MODULE.md +5 -7
- package/lib/module/modules/combobox/Combobox.js +22 -25
- package/lib/module/modules/combobox/Combobox.variants.js +2 -3
- package/lib/module/modules/combobox/ComboboxProps.js +4 -0
- package/lib/module/modules/combobox/MODULE.md +6 -12
- package/lib/module/modules/composer/Composer.js +11 -9
- package/lib/module/modules/composer/ComposerProps.js +4 -0
- package/lib/module/modules/composer/MODULE.md +6 -6
- package/lib/module/modules/copy-button/CopyButton.js +14 -6
- package/lib/module/modules/copy-button/CopyButton.variants.js +3 -2
- package/lib/module/modules/copy-button/CopyButtonProps.js +4 -0
- package/lib/module/modules/copy-button/MODULE.md +10 -12
- package/lib/module/modules/data-table/DataTable.js +11 -7
- package/lib/module/modules/data-table/DataTable.variants.js +2 -2
- package/lib/module/modules/data-table/DataTableProps.js +4 -0
- package/lib/module/modules/data-table/MODULE.md +5 -10
- package/lib/module/modules/date-picker/Calendar.js +11 -8
- package/lib/module/modules/date-picker/CalendarProps.js +4 -0
- package/lib/module/modules/date-picker/DatePicker.variants.js +2 -1
- package/lib/module/modules/date-picker/DatePickerProps.js +4 -0
- package/lib/module/modules/date-picker/DateRangePickerProps.js +4 -0
- package/lib/module/modules/date-picker/MODULE.md +6 -9
- package/lib/module/modules/date-picker/PickerFieldProps.js +4 -0
- package/lib/module/modules/date-picker/PickerShell.js +21 -12
- package/lib/module/modules/date-picker/PickerShellProps.js +4 -0
- package/lib/module/modules/date-picker/TimePicker.js +3 -2
- package/lib/module/modules/date-picker/TimePickerProps.js +4 -0
- package/lib/module/modules/description-list/DescriptionList.js +90 -0
- package/lib/module/modules/description-list/DescriptionList.variants.js +63 -0
- package/lib/module/modules/description-list/DescriptionListProps.js +4 -0
- package/lib/module/modules/description-list/MODULE.md +15 -0
- package/lib/module/modules/description-list/index.js +4 -0
- package/lib/module/modules/divider/DividerProps.js +4 -0
- package/lib/module/modules/divider/MODULE.md +1 -8
- package/lib/module/modules/document-viewer/DocumentViewer.js +35 -0
- package/lib/module/modules/document-viewer/DocumentViewerProps.js +4 -0
- package/lib/module/modules/document-viewer/MODULE.md +12 -0
- package/lib/module/modules/document-viewer/index.js +4 -0
- package/lib/module/modules/drawer/Drawer.js +45 -40
- package/lib/module/modules/drawer/DrawerProps.js +4 -0
- package/lib/module/modules/drawer/MODULE.md +14 -24
- package/lib/module/modules/empty-state/EmptyState.js +2 -1
- package/lib/module/modules/empty-state/EmptyStateProps.js +4 -0
- package/lib/module/modules/empty-state/MODULE.md +4 -9
- package/lib/module/modules/fab/Fab.js +9 -11
- package/lib/module/modules/fab/Fab.variants.js +10 -4
- package/lib/module/modules/fab/FabGroup.js +40 -43
- package/lib/module/modules/fab/FabGroupProps.js +4 -0
- package/lib/module/modules/fab/FabProps.js +4 -0
- package/lib/module/modules/fab/MODULE.md +10 -17
- package/lib/module/modules/field-select-modal/FieldSelectModal.js +52 -0
- package/lib/module/modules/field-select-modal/FieldSelectModalProps.js +4 -0
- package/lib/module/modules/field-select-modal/MODULE.md +13 -0
- package/lib/module/modules/field-select-modal/index.js +4 -0
- package/lib/module/modules/file-grid/FileGrid.js +3 -2
- package/lib/module/modules/file-grid/FileGridProps.js +4 -0
- package/lib/module/modules/file-grid/MODULE.md +27 -4
- package/lib/module/modules/file-upload/FileUpload.js +56 -15
- package/lib/module/modules/file-upload/FileUploadProps.js +4 -0
- package/lib/module/modules/file-upload/MODULE.md +10 -14
- package/lib/module/modules/filter-bar/FilterBar.js +68 -0
- package/lib/module/modules/filter-bar/FilterBarProps.js +4 -0
- package/lib/module/modules/filter-bar/MODULE.md +16 -0
- package/lib/module/modules/filter-bar/index.js +4 -0
- package/lib/module/modules/filter-sheet/FilterChip.js +3 -2
- package/lib/module/modules/filter-sheet/FilterChipProps.js +4 -0
- package/lib/module/modules/filter-sheet/FilterSheet.js +19 -14
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js +2 -3
- package/lib/module/modules/filter-sheet/FilterSheetBody.js +26 -16
- package/lib/module/modules/filter-sheet/FilterSheetProps.js +2 -0
- package/lib/module/modules/filter-sheet/MODULE.md +5 -14
- package/lib/module/modules/folder-row/FolderRow.js +6 -4
- package/lib/module/modules/folder-row/FolderRowProps.js +4 -0
- package/lib/module/modules/folder-row/MODULE.md +6 -5
- package/lib/module/modules/form-field/FormField.js +9 -4
- package/lib/module/modules/form-field/FormFieldProps.js +4 -0
- package/lib/module/modules/form-field/MODULE.md +2 -7
- package/lib/module/modules/gantt/Gantt.js +23 -6
- package/lib/module/modules/gantt/Gantt.variants.js +12 -4
- package/lib/module/modules/gantt/GanttProps.js +4 -0
- package/lib/module/modules/gantt/MODULE.md +3 -3
- package/lib/module/modules/image-viewer/ImageViewer.js +3 -2
- package/lib/module/modules/image-viewer/ImageViewerProps.js +4 -0
- package/lib/module/modules/image-viewer/MODULE.md +1 -1
- package/lib/module/modules/input/Input.js +55 -20
- package/lib/module/modules/input/Input.variants.js +2 -3
- package/lib/module/modules/input/InputProps.js +4 -0
- package/lib/module/modules/input/MODULE.md +9 -16
- package/lib/module/modules/key-value/KeyValue.js +36 -0
- package/lib/module/modules/key-value/KeyValueProps.js +4 -0
- package/lib/module/modules/key-value/MODULE.md +16 -0
- package/lib/module/modules/key-value/index.js +4 -0
- package/lib/module/modules/limit-reached-modal/LimitReachedModalProps.js +4 -0
- package/lib/module/modules/limit-reached-modal/MODULE.md +1 -6
- package/lib/module/modules/list-item/ListItem.js +17 -6
- package/lib/module/modules/list-item/ListItemProps.js +4 -0
- package/lib/module/modules/list-item/MODULE.md +14 -9
- package/lib/module/modules/list-screen/ListScreen.js +63 -0
- package/lib/module/modules/list-screen/ListScreenProps.js +4 -0
- package/lib/module/modules/list-screen/MODULE.md +12 -0
- package/lib/module/modules/list-screen/index.js +4 -0
- package/lib/module/modules/markdown/MODULE.md +0 -6
- package/lib/module/modules/markdown/MarkdownProps.js +4 -0
- package/lib/module/modules/menu/MODULE.md +10 -17
- package/lib/module/modules/menu/Menu.js +66 -52
- package/lib/module/modules/menu/Menu.variants.js +2 -2
- package/lib/module/modules/menu/MenuProps.js +4 -0
- package/lib/module/modules/message-bubble/MODULE.md +5 -4
- package/lib/module/modules/message-bubble/MessageBubbleProps.js +4 -0
- package/lib/module/modules/modal/MODULE.md +56 -93
- package/lib/module/modules/modal/Modal.js +99 -30
- package/lib/module/modules/modal/ModalPortalContext.js +1 -22
- package/lib/module/modules/modal/ModalPortalProvider.js +1 -1
- package/lib/module/modules/modal/ModalPortalProviderProps.js +4 -0
- package/lib/module/modules/modal/ModalProps.js +4 -0
- package/lib/module/modules/modal/renderWebPortal.js +1 -15
- package/lib/module/modules/modal/renderWebPortal.web.js +1 -21
- package/lib/module/modules/more-items/MODULE.md +0 -2
- package/lib/module/modules/more-items/MoreItems.js +10 -7
- package/lib/module/modules/more-items/MoreItems.variants.js +2 -1
- package/lib/module/modules/more-items/MoreItemsProps.js +4 -0
- package/lib/module/modules/multi-select/MODULE.md +5 -11
- package/lib/module/modules/multi-select/MultiSelect.js +38 -23
- package/lib/module/modules/multi-select/MultiSelect.variants.js +4 -2
- package/lib/module/modules/multi-select/MultiSelectProps.js +4 -0
- package/lib/module/modules/notification-bell/MODULE.md +8 -0
- package/lib/module/modules/notification-bell/NotificationBell.js +43 -0
- package/lib/module/modules/notification-bell/NotificationBellProps.js +4 -0
- package/lib/module/modules/notification-bell/index.js +4 -0
- package/lib/module/modules/number-input/MODULE.md +8 -13
- package/lib/module/modules/number-input/NumberInput.js +8 -6
- package/lib/module/modules/number-input/NumberInput.variants.js +2 -4
- package/lib/module/modules/number-input/NumberInputProps.js +4 -0
- package/lib/module/modules/org-switcher/MODULE.md +5 -12
- package/lib/module/modules/org-switcher/OrgSwitcher.js +21 -19
- package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +4 -2
- package/lib/module/modules/org-switcher/OrgSwitcherProps.js +4 -0
- package/lib/module/modules/pagination/MODULE.md +2 -5
- package/lib/module/modules/pagination/Pagination.js +25 -15
- package/lib/module/modules/pagination/Pagination.variants.js +2 -2
- package/lib/module/modules/pagination/PaginationControls.js +7 -5
- package/lib/module/modules/pagination/PaginationProps.js +4 -0
- package/lib/module/modules/person-chip/MODULE.md +11 -0
- package/lib/module/modules/person-chip/PersonChip.js +65 -0
- package/lib/module/modules/person-chip/PersonChipProps.js +4 -0
- package/lib/module/modules/person-chip/index.js +4 -0
- package/lib/module/modules/pin-input/MODULE.md +9 -20
- package/lib/module/modules/pin-input/PinInput.js +2 -2
- package/lib/module/modules/pin-input/PinInput.variants.js +2 -3
- package/lib/module/modules/pin-input/PinInputProps.js +4 -0
- package/lib/module/modules/plan-badge/MODULE.md +4 -0
- package/lib/module/modules/plan-badge/PlanBadge.js +25 -0
- package/lib/module/modules/plan-badge/PlanBadgeProps.js +4 -0
- package/lib/module/modules/plan-badge/index.js +4 -0
- package/lib/module/modules/plan-pill/MODULE.md +4 -0
- package/lib/module/modules/plan-pill/PlanPill.js +24 -0
- package/lib/module/modules/plan-pill/PlanPillProps.js +4 -0
- package/lib/module/modules/plan-pill/index.js +4 -0
- package/lib/module/modules/progress-bar/MODULE.md +12 -14
- package/lib/module/modules/progress-bar/ProgressBar.js +28 -36
- package/lib/module/modules/progress-bar/ProgressBarProps.js +4 -0
- package/lib/module/modules/radio-group/MODULE.md +6 -12
- package/lib/module/modules/radio-group/RadioGroup.js +7 -6
- package/lib/module/modules/radio-group/RadioGroup.variants.js +2 -3
- package/lib/module/modules/radio-group/RadioGroupProps.js +4 -0
- package/lib/module/modules/reorder/MODULE.md +7 -11
- package/lib/module/modules/reorder/Reorder.js +8 -3
- package/lib/module/modules/reorder/Reorder.variants.js +3 -4
- package/lib/module/modules/reorder/ReorderProps.js +4 -0
- package/lib/module/modules/rich-text/MODULE.md +4 -4
- package/lib/module/modules/rich-text/RichTextProps.js +4 -0
- package/lib/module/modules/rich-text-editor/MODULE.md +6 -16
- package/lib/module/modules/rich-text-editor/RichTextEditor.js +5 -4
- package/lib/module/modules/rich-text-editor/RichTextEditorProps.js +4 -0
- package/lib/module/modules/save-bar/MODULE.md +3 -0
- package/lib/module/modules/save-bar/SaveBar.js +49 -0
- package/lib/module/modules/save-bar/SaveBarProps.js +4 -0
- package/lib/module/modules/save-bar/index.js +4 -0
- package/lib/module/modules/screen/MODULE.md +7 -5
- package/lib/module/modules/screen/Screen.js +65 -22
- package/lib/module/modules/screen/ScreenProps.js +4 -0
- package/lib/module/modules/search-bar/MODULE.md +8 -8
- package/lib/module/modules/search-bar/SearchBar.js +8 -6
- package/lib/module/modules/search-bar/SearchBar.variants.js +2 -4
- package/lib/module/modules/search-bar/SearchBarProps.js +4 -0
- package/lib/module/modules/section/MODULE.md +1 -1
- package/lib/module/modules/section/Section.js +6 -1
- package/lib/module/modules/section/SectionProps.js +4 -0
- package/lib/module/modules/section-list/MODULE.md +21 -1
- package/lib/module/modules/section-list/SectionListProps.js +4 -0
- package/lib/module/modules/segmented-control/MODULE.md +30 -28
- package/lib/module/modules/segmented-control/SegmentedControl.js +20 -30
- package/lib/module/modules/segmented-control/SegmentedControl.variants.js +9 -42
- package/lib/module/modules/segmented-control/SegmentedControlProps.js +4 -0
- package/lib/module/modules/select/MODULE.md +8 -5
- package/lib/module/modules/select/Select.js +38 -25
- package/lib/module/modules/select/Select.variants.js +4 -5
- package/lib/module/modules/select/SelectProps.js +4 -0
- package/lib/module/modules/setting-row/MODULE.md +8 -0
- package/lib/module/modules/setting-row/SettingRow.js +50 -0
- package/lib/module/modules/setting-row/SettingRowProps.js +4 -0
- package/lib/module/modules/setting-row/index.js +4 -0
- package/lib/module/modules/settings-section/MODULE.md +7 -0
- package/lib/module/modules/settings-section/SettingsSection.js +37 -0
- package/lib/module/modules/settings-section/SettingsSectionProps.js +4 -0
- package/lib/module/modules/settings-section/index.js +4 -0
- package/lib/module/modules/skeleton/MODULE.md +2 -1
- package/lib/module/modules/skeleton/Skeleton.js +14 -8
- package/lib/module/modules/skeleton/Skeleton.variants.js +4 -9
- package/lib/module/modules/skeleton/SkeletonProps.js +4 -0
- package/lib/module/modules/slider/MODULE.md +2 -1
- package/lib/module/modules/slider/Slider.js +6 -6
- package/lib/module/modules/slider/Slider.variants.js +4 -2
- package/lib/module/modules/slider/SliderProps.js +4 -0
- package/lib/module/modules/spinner/MODULE.md +3 -2
- package/lib/module/modules/spinner/SpinnerProps.js +4 -0
- package/lib/module/modules/stage-progress/MODULE.md +20 -6
- package/lib/module/modules/stage-progress/StageProgress.js +45 -15
- package/lib/module/modules/stage-progress/StageProgress.variants.js +40 -8
- package/lib/module/modules/stage-progress/StageProgressProps.js +4 -0
- package/lib/module/modules/stat-grid/MODULE.md +11 -0
- package/lib/module/modules/stat-grid/StatGrid.js +34 -0
- package/lib/module/modules/stat-grid/StatGridProps.js +4 -0
- package/lib/module/modules/stat-grid/index.js +4 -0
- package/lib/module/modules/stat-tile/MODULE.md +12 -1
- package/lib/module/modules/stat-tile/StatTile.js +40 -15
- package/lib/module/modules/stat-tile/StatTile.variants.js +5 -0
- package/lib/module/modules/stat-tile/StatTileProps.js +4 -0
- package/lib/module/modules/state-block/MODULE.md +9 -3
- package/lib/module/modules/state-block/StateBlock.js +46 -38
- package/lib/module/modules/state-block/StateBlockProps.js +4 -0
- package/lib/module/modules/stepper/MODULE.md +2 -0
- package/lib/module/modules/stepper/Stepper.js +22 -21
- package/lib/module/modules/stepper/Stepper.variants.js +2 -0
- package/lib/module/modules/stepper/StepperProps.js +4 -0
- package/lib/module/modules/surface/MODULE.md +6 -8
- package/lib/module/modules/surface/Surface.js +6 -1
- package/lib/module/modules/surface/SurfaceProps.js +4 -0
- package/lib/module/modules/swipeable-row/MODULE.md +3 -2
- package/lib/module/modules/swipeable-row/SwipeableRow.js +31 -8
- package/lib/module/modules/swipeable-row/SwipeableRowProps.js +4 -0
- package/lib/module/modules/switch/MODULE.md +6 -3
- package/lib/module/modules/switch/Switch.js +42 -8
- package/lib/module/modules/switch/Switch.variants.js +2 -3
- package/lib/module/modules/switch/SwitchProps.js +4 -0
- package/lib/module/modules/tabs/MODULE.md +10 -14
- package/lib/module/modules/tabs/Tabs.js +84 -39
- package/lib/module/modules/tabs/Tabs.variants.js +2 -4
- package/lib/module/modules/tabs/TabsProps.js +4 -0
- package/lib/module/modules/text/MODULE.md +25 -17
- package/lib/module/modules/text/Text.variants.js +9 -1
- package/lib/module/modules/text/TextProps.js +4 -0
- package/lib/module/modules/textarea/MODULE.md +12 -18
- package/lib/module/modules/textarea/Textarea.js +12 -10
- package/lib/module/modules/textarea/Textarea.variants.js +4 -1
- package/lib/module/modules/textarea/TextareaProps.js +4 -0
- package/lib/module/modules/timeline/MODULE.md +8 -17
- package/lib/module/modules/timeline/Timeline.js +79 -22
- package/lib/module/modules/timeline/Timeline.variants.js +2 -0
- package/lib/module/modules/timeline/TimelineProps.js +4 -0
- package/lib/module/modules/toast/MODULE.md +13 -20
- package/lib/module/modules/toast/Toast.js +53 -51
- package/lib/module/modules/toast/Toast.variants.js +2 -5
- package/lib/module/modules/tooltip/MODULE.md +9 -13
- package/lib/module/modules/tooltip/Tooltip.js +36 -7
- package/lib/module/modules/tooltip/TooltipProps.js +4 -0
- package/lib/module/modules/typing-indicator/MODULE.md +1 -1
- package/lib/module/modules/typing-indicator/TypingIndicator.js +78 -51
- package/lib/module/modules/typing-indicator/TypingIndicatorProps.js +4 -0
- package/lib/module/modules/upgrade-button/MODULE.md +3 -0
- package/lib/module/modules/upgrade-button/UpgradeButton.js +23 -0
- package/lib/module/modules/upgrade-button/UpgradeButtonProps.js +4 -0
- package/lib/module/modules/upgrade-button/index.js +4 -0
- package/lib/module/theme/MODULE.md +2 -0
- package/lib/module/theme/platform/MODULE.md +2 -6
- package/lib/module/theme/platform/elevation.native.js +1 -7
- package/lib/module/theme/provider/PixelizeProvider.js +6 -0
- package/lib/module/theme/tokens/MODULE.md +4 -0
- package/lib/module/theme/tokens/THEME-CONTRACT.md +53 -3
- package/lib/module/theme/tokens/brands/emerald/palette.light.js +5 -3
- package/lib/module/theme/tokens/brands/lavender/palette.light.js +4 -4
- package/lib/module/theme/tokens/brands/meadow/palette.light.js +2 -2
- package/lib/module/theme/tokens/brands/radiant/palette.light.js +3 -3
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js +3 -3
- package/lib/module/theme/tokens/brands/skyline/palette.light.js +2 -2
- package/lib/module/theme/tokens/brands/slate/palette.light.js +3 -3
- package/lib/module/theme/tokens/builders/accentText.js +10 -1
- package/lib/module/theme/tokens/builders/buildBrandScale.js +42 -0
- package/lib/module/theme/tokens/builders/gradientInk.js +23 -0
- package/lib/module/theme/tokens/builders/paletteFromAccent.js +30 -0
- package/lib/module/theme/tokens/builders/skeletonShimmer.js +22 -0
- package/lib/module/theme/tokens/index.js +3 -0
- package/lib/module/theme/tokens/primitives/controlSizes.js +16 -0
- package/lib/module/theme/tokens/primitives/index.js +1 -0
- package/lib/module/theme/tokens/roles/index.js +2 -0
- package/lib/typescript/core/a11y/touchTarget.d.ts +4 -0
- package/lib/typescript/core/blur/blur.d.ts +14 -0
- package/lib/typescript/core/blur/index.d.ts +3 -0
- package/lib/typescript/core/gradient/ShimmerGradientFill.d.ts +8 -0
- package/lib/typescript/core/gradient/index.d.ts +1 -0
- package/lib/typescript/core/list/VirtualList.d.ts +6 -1
- package/lib/typescript/core/motion/animatedComponents.d.ts +4 -0
- package/lib/typescript/core/motion/index.d.ts +2 -0
- package/lib/typescript/core/motion/motionAnimation.d.ts +12 -0
- package/lib/typescript/core/motion/presets.d.ts +5 -36
- package/lib/typescript/core/motion/reanimatedEasing.d.ts +4 -0
- package/lib/typescript/core/motion/useAnimatedValue.d.ts +2 -10
- package/lib/typescript/core/motion/useMotion.d.ts +4 -13
- package/lib/typescript/core/motion/usePressState.d.ts +0 -1
- package/lib/typescript/core/overlay/ModalPortalContext.d.ts +2 -0
- package/lib/typescript/core/overlay/index.d.ts +3 -0
- package/lib/typescript/core/overlay/renderWebPortal.d.ts +3 -0
- package/lib/typescript/core/overlay/renderWebPortal.web.d.ts +3 -0
- package/lib/typescript/core/screen-scroll/ScreenScrollContext.d.ts +8 -0
- package/lib/typescript/core/screen-scroll/index.d.ts +3 -0
- package/lib/typescript/core/slot/index.d.ts +2 -0
- package/lib/typescript/core/slot/nodeSlot.d.ts +5 -0
- package/lib/typescript/core/style/focusRing.d.ts +10 -0
- package/lib/typescript/core/style/index.d.ts +1 -1
- package/lib/typescript/index.d.ts +49 -11
- package/lib/typescript/modules/accordion/Accordion.d.ts +2 -37
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts +2 -3
- package/lib/typescript/modules/accordion/AccordionProps.d.ts +49 -0
- package/lib/typescript/modules/accordion/index.d.ts +1 -1
- package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts +2 -15
- package/lib/typescript/modules/alert-dialog/AlertDialogProps.d.ts +20 -0
- package/lib/typescript/modules/alert-dialog/index.d.ts +1 -1
- package/lib/typescript/modules/app-bar/AppBar.d.ts +1 -20
- package/lib/typescript/modules/app-bar/AppBar.variants.d.ts +4 -0
- package/lib/typescript/modules/app-bar/AppBarProps.d.ts +25 -0
- package/lib/typescript/modules/app-bar/index.d.ts +1 -1
- package/lib/typescript/modules/app-switcher/AppSwitcher.d.ts +3 -0
- package/lib/typescript/modules/app-switcher/AppSwitcherProps.d.ts +17 -0
- package/lib/typescript/modules/app-switcher/index.d.ts +3 -0
- package/lib/typescript/modules/appearance-settings/AppearanceSettings.d.ts +3 -0
- package/lib/typescript/modules/appearance-settings/AppearanceSettingsProps.d.ts +15 -0
- package/lib/typescript/modules/appearance-settings/index.d.ts +3 -0
- package/lib/typescript/modules/avatar/Avatar.d.ts +2 -33
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts +2 -0
- package/lib/typescript/modules/avatar/AvatarProps.d.ts +23 -0
- package/lib/typescript/modules/avatar/index.d.ts +1 -1
- package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +1 -18
- package/lib/typescript/modules/avatar-group/AvatarGroupProps.d.ts +27 -0
- package/lib/typescript/modules/avatar-group/index.d.ts +1 -1
- package/lib/typescript/modules/backdrop/Backdrop.d.ts +3 -0
- package/lib/typescript/modules/backdrop/BackdropProps.d.ts +11 -0
- package/lib/typescript/modules/backdrop/index.d.ts +3 -0
- package/lib/typescript/modules/badge/Badge.d.ts +2 -14
- package/lib/typescript/modules/badge/BadgeProps.d.ts +17 -0
- package/lib/typescript/modules/badge/index.d.ts +1 -1
- package/lib/typescript/modules/banner/Banner.d.ts +1 -22
- package/lib/typescript/modules/banner/Banner.variants.d.ts +2 -0
- package/lib/typescript/modules/banner/BannerProps.d.ts +29 -0
- package/lib/typescript/modules/banner/index.d.ts +2 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +1 -34
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +2 -1
- package/lib/typescript/modules/bottom-nav/BottomNavProps.d.ts +29 -0
- package/lib/typescript/modules/bottom-nav/index.d.ts +2 -1
- package/lib/typescript/modules/bottom-sheet/BottomSheet.d.ts +1 -13
- package/lib/typescript/modules/bottom-sheet/BottomSheetProps.d.ts +17 -0
- package/lib/typescript/modules/bottom-sheet/index.d.ts +1 -1
- package/lib/typescript/modules/breadcrumbs/Breadcrumbs.d.ts +3 -0
- package/lib/typescript/modules/breadcrumbs/Breadcrumbs.variants.d.ts +6 -0
- package/lib/typescript/modules/breadcrumbs/BreadcrumbsProps.d.ts +18 -0
- package/lib/typescript/modules/breadcrumbs/index.d.ts +3 -0
- package/lib/typescript/modules/button/Button.d.ts +1 -35
- package/lib/typescript/modules/button/Button.variants.d.ts +11 -15
- package/lib/typescript/modules/button/ButtonProps.d.ts +47 -0
- package/lib/typescript/modules/button/index.d.ts +1 -1
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts +2 -17
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +2 -3
- package/lib/typescript/modules/button-group/ButtonGroupProps.d.ts +21 -0
- package/lib/typescript/modules/button-group/index.d.ts +1 -1
- package/lib/typescript/modules/card/Card.d.ts +2 -15
- package/lib/typescript/modules/card/CardProps.d.ts +27 -0
- package/lib/typescript/modules/card/index.d.ts +1 -1
- package/lib/typescript/modules/charts/BarChart.d.ts +1 -24
- package/lib/typescript/modules/charts/BarChartProps.d.ts +36 -0
- package/lib/typescript/modules/charts/BarList.d.ts +1 -16
- package/lib/typescript/modules/charts/BarListProps.d.ts +22 -0
- package/lib/typescript/modules/charts/ChartLegend.d.ts +2 -14
- package/lib/typescript/modules/charts/ChartLegendProps.d.ts +19 -0
- package/lib/typescript/modules/charts/Charts.variants.d.ts +2 -0
- package/lib/typescript/modules/charts/DonutChart.d.ts +1 -19
- package/lib/typescript/modules/charts/DonutChartProps.d.ts +27 -0
- package/lib/typescript/modules/charts/LineChart.d.ts +1 -28
- package/lib/typescript/modules/charts/LineChartProps.d.ts +40 -0
- package/lib/typescript/modules/charts/PieChart.d.ts +1 -16
- package/lib/typescript/modules/charts/PieChartProps.d.ts +24 -0
- package/lib/typescript/modules/charts/Sparkline.d.ts +1 -11
- package/lib/typescript/modules/charts/SparklineProps.d.ts +17 -0
- package/lib/typescript/modules/charts/index.d.ts +6 -6
- package/lib/typescript/modules/checkbox/Checkbox.d.ts +1 -33
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +2 -1
- package/lib/typescript/modules/checkbox/CheckboxProps.d.ts +27 -0
- package/lib/typescript/modules/checkbox/index.d.ts +1 -1
- package/lib/typescript/modules/chip/Chip.d.ts +1 -30
- package/lib/typescript/modules/chip/Chip.variants.d.ts +2 -1
- package/lib/typescript/modules/chip/ChipGroup.d.ts +1 -14
- package/lib/typescript/modules/chip/ChipGroupProps.d.ts +16 -0
- package/lib/typescript/modules/chip/ChipProps.d.ts +27 -0
- package/lib/typescript/modules/chip/index.d.ts +2 -2
- package/lib/typescript/modules/combobox/Combobox.d.ts +2 -45
- package/lib/typescript/modules/combobox/Combobox.variants.d.ts +3 -1
- package/lib/typescript/modules/combobox/ComboboxProps.d.ts +40 -0
- package/lib/typescript/modules/combobox/index.d.ts +1 -1
- package/lib/typescript/modules/composer/Composer.d.ts +1 -18
- package/lib/typescript/modules/composer/ComposerProps.d.ts +20 -0
- package/lib/typescript/modules/composer/index.d.ts +1 -1
- package/lib/typescript/modules/copy-button/CopyButton.d.ts +1 -15
- package/lib/typescript/modules/copy-button/CopyButton.variants.d.ts +2 -1
- package/lib/typescript/modules/copy-button/CopyButtonProps.d.ts +18 -0
- package/lib/typescript/modules/copy-button/index.d.ts +1 -1
- package/lib/typescript/modules/data-table/DataTable.d.ts +2 -31
- package/lib/typescript/modules/data-table/DataTable.variants.d.ts +2 -1
- package/lib/typescript/modules/data-table/DataTableProps.d.ts +43 -0
- package/lib/typescript/modules/data-table/index.d.ts +1 -1
- package/lib/typescript/modules/date-picker/Calendar.d.ts +1 -23
- package/lib/typescript/modules/date-picker/CalendarProps.d.ts +31 -0
- package/lib/typescript/modules/date-picker/DatePicker.d.ts +1 -27
- package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +2 -1
- package/lib/typescript/modules/date-picker/DatePickerProps.d.ts +33 -0
- package/lib/typescript/modules/date-picker/DateRangePicker.d.ts +1 -23
- package/lib/typescript/modules/date-picker/DateRangePickerProps.d.ts +27 -0
- package/lib/typescript/modules/date-picker/PickerField.d.ts +1 -17
- package/lib/typescript/modules/date-picker/PickerFieldProps.d.ts +19 -0
- package/lib/typescript/modules/date-picker/PickerShell.d.ts +1 -12
- package/lib/typescript/modules/date-picker/PickerShellProps.d.ts +16 -0
- package/lib/typescript/modules/date-picker/TimePicker.d.ts +1 -9
- package/lib/typescript/modules/date-picker/TimePickerProps.d.ts +14 -0
- package/lib/typescript/modules/date-picker/index.d.ts +4 -4
- package/lib/typescript/modules/description-list/DescriptionList.d.ts +8 -0
- package/lib/typescript/modules/description-list/DescriptionList.variants.d.ts +29 -0
- package/lib/typescript/modules/description-list/DescriptionListProps.d.ts +23 -0
- package/lib/typescript/modules/description-list/index.d.ts +4 -0
- package/lib/typescript/modules/divider/Divider.d.ts +1 -8
- package/lib/typescript/modules/divider/DividerProps.d.ts +11 -0
- package/lib/typescript/modules/divider/index.d.ts +1 -1
- package/lib/typescript/modules/document-viewer/DocumentViewer.d.ts +3 -0
- package/lib/typescript/modules/document-viewer/DocumentViewerProps.d.ts +13 -0
- package/lib/typescript/modules/document-viewer/index.d.ts +3 -0
- package/lib/typescript/modules/drawer/Drawer.d.ts +2 -7
- package/lib/typescript/modules/drawer/DrawerProps.d.ts +9 -0
- package/lib/typescript/modules/drawer/index.d.ts +1 -1
- package/lib/typescript/modules/empty-state/EmptyState.d.ts +1 -17
- package/lib/typescript/modules/empty-state/EmptyStateProps.d.ts +24 -0
- package/lib/typescript/modules/empty-state/index.d.ts +1 -1
- package/lib/typescript/modules/fab/Fab.d.ts +1 -51
- package/lib/typescript/modules/fab/Fab.variants.d.ts +3 -2
- package/lib/typescript/modules/fab/FabGroup.d.ts +1 -34
- package/lib/typescript/modules/fab/FabGroupProps.d.ts +34 -0
- package/lib/typescript/modules/fab/FabProps.d.ts +50 -0
- package/lib/typescript/modules/fab/index.d.ts +2 -2
- package/lib/typescript/modules/field-select-modal/FieldSelectModal.d.ts +3 -0
- package/lib/typescript/modules/field-select-modal/FieldSelectModalProps.d.ts +20 -0
- package/lib/typescript/modules/field-select-modal/index.d.ts +3 -0
- package/lib/typescript/modules/file-grid/FileGrid.d.ts +1 -18
- package/lib/typescript/modules/file-grid/FileGridProps.d.ts +23 -0
- package/lib/typescript/modules/file-grid/index.d.ts +1 -1
- package/lib/typescript/modules/file-upload/FileUpload.d.ts +1 -27
- package/lib/typescript/modules/file-upload/FileUploadProps.d.ts +27 -0
- package/lib/typescript/modules/file-upload/index.d.ts +1 -1
- package/lib/typescript/modules/filter-bar/FilterBar.d.ts +3 -0
- package/lib/typescript/modules/filter-bar/FilterBarProps.d.ts +17 -0
- package/lib/typescript/modules/filter-bar/index.d.ts +3 -0
- package/lib/typescript/modules/filter-sheet/FilterChip.d.ts +1 -9
- package/lib/typescript/modules/filter-sheet/FilterChipProps.d.ts +11 -0
- package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts +1 -32
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +2 -1
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +1 -1
- package/lib/typescript/modules/filter-sheet/FilterSheetProps.d.ts +36 -0
- package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts +1 -1
- package/lib/typescript/modules/filter-sheet/index.d.ts +2 -2
- package/lib/typescript/modules/folder-row/FolderRow.d.ts +1 -11
- package/lib/typescript/modules/folder-row/FolderRowProps.d.ts +17 -0
- package/lib/typescript/modules/folder-row/index.d.ts +1 -1
- package/lib/typescript/modules/form-field/FormField.d.ts +2 -17
- package/lib/typescript/modules/form-field/FormFieldProps.d.ts +23 -0
- package/lib/typescript/modules/form-field/index.d.ts +1 -1
- package/lib/typescript/modules/gantt/Gantt.d.ts +2 -9
- package/lib/typescript/modules/gantt/Gantt.variants.d.ts +8 -2
- package/lib/typescript/modules/gantt/GanttProps.d.ts +13 -0
- package/lib/typescript/modules/gantt/index.d.ts +1 -1
- package/lib/typescript/modules/image-viewer/ImageViewer.d.ts +2 -15
- package/lib/typescript/modules/image-viewer/ImageViewerProps.d.ts +16 -0
- package/lib/typescript/modules/image-viewer/index.d.ts +2 -1
- package/lib/typescript/modules/input/Input.d.ts +2 -30
- package/lib/typescript/modules/input/Input.variants.d.ts +2 -2
- package/lib/typescript/modules/input/InputProps.d.ts +43 -0
- package/lib/typescript/modules/input/index.d.ts +1 -1
- package/lib/typescript/modules/key-value/KeyValue.d.ts +3 -0
- package/lib/typescript/modules/key-value/KeyValueProps.d.ts +11 -0
- package/lib/typescript/modules/key-value/index.d.ts +3 -0
- package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.d.ts +1 -17
- package/lib/typescript/modules/limit-reached-modal/LimitReachedModalProps.d.ts +24 -0
- package/lib/typescript/modules/limit-reached-modal/index.d.ts +1 -1
- package/lib/typescript/modules/list-item/ListItem.d.ts +2 -12
- package/lib/typescript/modules/list-item/ListItemProps.d.ts +22 -0
- package/lib/typescript/modules/list-item/index.d.ts +1 -1
- package/lib/typescript/modules/list-screen/ListScreen.d.ts +5 -0
- package/lib/typescript/modules/list-screen/ListScreenProps.d.ts +17 -0
- package/lib/typescript/modules/list-screen/index.d.ts +3 -0
- package/lib/typescript/modules/markdown/Markdown.d.ts +1 -8
- package/lib/typescript/modules/markdown/MarkdownProps.d.ts +12 -0
- package/lib/typescript/modules/markdown/index.d.ts +1 -1
- package/lib/typescript/modules/menu/Menu.d.ts +2 -19
- package/lib/typescript/modules/menu/Menu.variants.d.ts +2 -1
- package/lib/typescript/modules/menu/MenuProps.d.ts +26 -0
- package/lib/typescript/modules/menu/index.d.ts +1 -1
- package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +1 -9
- package/lib/typescript/modules/message-bubble/MessageBubbleProps.d.ts +12 -0
- package/lib/typescript/modules/message-bubble/index.d.ts +1 -1
- package/lib/typescript/modules/modal/Modal.d.ts +2 -10
- package/lib/typescript/modules/modal/ModalPortalContext.d.ts +1 -1
- package/lib/typescript/modules/modal/ModalPortalProvider.d.ts +2 -12
- package/lib/typescript/modules/modal/ModalPortalProviderProps.d.ts +8 -0
- package/lib/typescript/modules/modal/ModalProps.d.ts +22 -0
- package/lib/typescript/modules/modal/index.d.ts +2 -2
- package/lib/typescript/modules/modal/renderWebPortal.d.ts +1 -14
- package/lib/typescript/modules/modal/renderWebPortal.web.d.ts +1 -18
- package/lib/typescript/modules/more-items/MoreItems.d.ts +2 -10
- package/lib/typescript/modules/more-items/MoreItems.variants.d.ts +3 -1
- package/lib/typescript/modules/more-items/MoreItemsProps.d.ts +14 -0
- package/lib/typescript/modules/more-items/index.d.ts +1 -1
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts +1 -19
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +2 -1
- package/lib/typescript/modules/multi-select/MultiSelectProps.d.ts +29 -0
- package/lib/typescript/modules/multi-select/index.d.ts +1 -1
- package/lib/typescript/modules/notification-bell/NotificationBell.d.ts +3 -0
- package/lib/typescript/modules/notification-bell/NotificationBellProps.d.ts +10 -0
- package/lib/typescript/modules/notification-bell/index.d.ts +3 -0
- package/lib/typescript/modules/number-input/NumberInput.d.ts +1 -26
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +2 -3
- package/lib/typescript/modules/number-input/NumberInputProps.d.ts +23 -0
- package/lib/typescript/modules/number-input/index.d.ts +1 -1
- package/lib/typescript/modules/org-switcher/OrgSwitcher.d.ts +1 -24
- package/lib/typescript/modules/org-switcher/OrgSwitcher.variants.d.ts +2 -1
- package/lib/typescript/modules/org-switcher/OrgSwitcherProps.d.ts +29 -0
- package/lib/typescript/modules/org-switcher/index.d.ts +1 -1
- package/lib/typescript/modules/pagination/Pagination.d.ts +1 -26
- package/lib/typescript/modules/pagination/Pagination.variants.d.ts +2 -1
- package/lib/typescript/modules/pagination/PaginationProps.d.ts +28 -0
- package/lib/typescript/modules/pagination/index.d.ts +1 -1
- package/lib/typescript/modules/person-chip/PersonChip.d.ts +3 -0
- package/lib/typescript/modules/person-chip/PersonChipProps.d.ts +17 -0
- package/lib/typescript/modules/person-chip/index.d.ts +3 -0
- package/lib/typescript/modules/pin-input/PinInput.d.ts +1 -32
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +2 -2
- package/lib/typescript/modules/pin-input/PinInputProps.d.ts +26 -0
- package/lib/typescript/modules/pin-input/index.d.ts +1 -1
- package/lib/typescript/modules/plan-badge/PlanBadge.d.ts +3 -0
- package/lib/typescript/modules/plan-badge/PlanBadgeProps.d.ts +10 -0
- package/lib/typescript/modules/plan-badge/index.d.ts +3 -0
- package/lib/typescript/modules/plan-pill/PlanPill.d.ts +3 -0
- package/lib/typescript/modules/plan-pill/PlanPillProps.d.ts +10 -0
- package/lib/typescript/modules/plan-pill/index.d.ts +3 -0
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +1 -13
- package/lib/typescript/modules/progress-bar/ProgressBarProps.d.ts +16 -0
- package/lib/typescript/modules/progress-bar/index.d.ts +1 -1
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts +2 -22
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +2 -2
- package/lib/typescript/modules/radio-group/RadioGroupProps.d.ts +21 -0
- package/lib/typescript/modules/radio-group/index.d.ts +1 -1
- package/lib/typescript/modules/reorder/Reorder.d.ts +1 -13
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts +2 -2
- package/lib/typescript/modules/reorder/ReorderProps.d.ts +19 -0
- package/lib/typescript/modules/reorder/index.d.ts +1 -1
- package/lib/typescript/modules/rich-text/RichText.d.ts +2 -10
- package/lib/typescript/modules/rich-text/RichTextProps.d.ts +15 -0
- package/lib/typescript/modules/rich-text/index.d.ts +1 -1
- package/lib/typescript/modules/rich-text-editor/RichTextEditor.d.ts +1 -45
- package/lib/typescript/modules/rich-text-editor/RichTextEditorProps.d.ts +40 -0
- package/lib/typescript/modules/rich-text-editor/index.d.ts +1 -1
- package/lib/typescript/modules/save-bar/SaveBar.d.ts +3 -0
- package/lib/typescript/modules/save-bar/SaveBarProps.d.ts +18 -0
- package/lib/typescript/modules/save-bar/index.d.ts +3 -0
- package/lib/typescript/modules/screen/Screen.d.ts +1 -24
- package/lib/typescript/modules/screen/ScreenProps.d.ts +35 -0
- package/lib/typescript/modules/screen/index.d.ts +1 -1
- package/lib/typescript/modules/search-bar/SearchBar.d.ts +2 -28
- package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +2 -3
- package/lib/typescript/modules/search-bar/SearchBarProps.d.ts +30 -0
- package/lib/typescript/modules/search-bar/index.d.ts +1 -1
- package/lib/typescript/modules/section/Section.d.ts +1 -8
- package/lib/typescript/modules/section/SectionProps.d.ts +11 -0
- package/lib/typescript/modules/section/index.d.ts +1 -1
- package/lib/typescript/modules/section-list/SectionList.d.ts +1 -19
- package/lib/typescript/modules/section-list/SectionListProps.d.ts +24 -0
- package/lib/typescript/modules/section-list/index.d.ts +1 -1
- package/lib/typescript/modules/segmented-control/SegmentedControl.d.ts +2 -41
- package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +5 -44
- package/lib/typescript/modules/segmented-control/SegmentedControlProps.d.ts +29 -0
- package/lib/typescript/modules/segmented-control/index.d.ts +1 -1
- package/lib/typescript/modules/select/Select.d.ts +2 -13
- package/lib/typescript/modules/select/Select.variants.d.ts +2 -2
- package/lib/typescript/modules/select/SelectProps.d.ts +25 -0
- package/lib/typescript/modules/select/index.d.ts +2 -1
- package/lib/typescript/modules/setting-row/SettingRow.d.ts +3 -0
- package/lib/typescript/modules/setting-row/SettingRowProps.d.ts +14 -0
- package/lib/typescript/modules/setting-row/index.d.ts +3 -0
- package/lib/typescript/modules/settings-section/SettingsSection.d.ts +3 -0
- package/lib/typescript/modules/settings-section/SettingsSectionProps.d.ts +11 -0
- package/lib/typescript/modules/settings-section/index.d.ts +3 -0
- package/lib/typescript/modules/skeleton/Skeleton.d.ts +2 -12
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +3 -5
- package/lib/typescript/modules/skeleton/SkeletonProps.d.ts +18 -0
- package/lib/typescript/modules/skeleton/index.d.ts +1 -1
- package/lib/typescript/modules/slider/Slider.d.ts +1 -24
- package/lib/typescript/modules/slider/Slider.variants.d.ts +2 -1
- package/lib/typescript/modules/slider/SliderProps.d.ts +27 -0
- package/lib/typescript/modules/slider/index.d.ts +1 -1
- package/lib/typescript/modules/spinner/Spinner.d.ts +1 -11
- package/lib/typescript/modules/spinner/SpinnerProps.d.ts +15 -0
- package/lib/typescript/modules/spinner/index.d.ts +1 -1
- package/lib/typescript/modules/stage-progress/StageProgress.d.ts +1 -12
- package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +16 -4
- package/lib/typescript/modules/stage-progress/StageProgressProps.d.ts +22 -0
- package/lib/typescript/modules/stage-progress/index.d.ts +1 -1
- package/lib/typescript/modules/stat-grid/StatGrid.d.ts +3 -0
- package/lib/typescript/modules/stat-grid/StatGridProps.d.ts +15 -0
- package/lib/typescript/modules/stat-grid/index.d.ts +3 -0
- package/lib/typescript/modules/stat-tile/StatTile.d.ts +1 -14
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +3 -0
- package/lib/typescript/modules/stat-tile/StatTileProps.d.ts +25 -0
- package/lib/typescript/modules/stat-tile/index.d.ts +1 -1
- package/lib/typescript/modules/state-block/StateBlock.d.ts +1 -32
- package/lib/typescript/modules/state-block/StateBlockProps.d.ts +36 -0
- package/lib/typescript/modules/state-block/index.d.ts +1 -1
- package/lib/typescript/modules/stepper/Stepper.d.ts +3 -11
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts +2 -0
- package/lib/typescript/modules/stepper/StepperProps.d.ts +12 -0
- package/lib/typescript/modules/stepper/index.d.ts +2 -1
- package/lib/typescript/modules/surface/Surface.d.ts +1 -14
- package/lib/typescript/modules/surface/SurfaceProps.d.ts +17 -0
- package/lib/typescript/modules/surface/index.d.ts +1 -1
- package/lib/typescript/modules/swipeable-row/SwipeableRow.d.ts +1 -19
- package/lib/typescript/modules/swipeable-row/SwipeableRowProps.d.ts +22 -0
- package/lib/typescript/modules/swipeable-row/index.d.ts +1 -1
- package/lib/typescript/modules/switch/Switch.d.ts +1 -14
- package/lib/typescript/modules/switch/Switch.variants.d.ts +2 -2
- package/lib/typescript/modules/switch/SwitchProps.d.ts +20 -0
- package/lib/typescript/modules/switch/index.d.ts +1 -1
- package/lib/typescript/modules/tabs/Tabs.d.ts +1 -17
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts +2 -3
- package/lib/typescript/modules/tabs/TabsProps.d.ts +29 -0
- package/lib/typescript/modules/tabs/index.d.ts +1 -1
- package/lib/typescript/modules/text/Text.d.ts +1 -24
- package/lib/typescript/modules/text/TextProps.d.ts +35 -0
- package/lib/typescript/modules/text/index.d.ts +1 -1
- package/lib/typescript/modules/textarea/Textarea.d.ts +1 -19
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts +2 -1
- package/lib/typescript/modules/textarea/TextareaProps.d.ts +23 -0
- package/lib/typescript/modules/textarea/index.d.ts +1 -1
- package/lib/typescript/modules/timeline/Timeline.d.ts +1 -16
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts +2 -0
- package/lib/typescript/modules/timeline/TimelineProps.d.ts +37 -0
- package/lib/typescript/modules/timeline/index.d.ts +1 -1
- package/lib/typescript/modules/toast/Toast.variants.d.ts +2 -3
- package/lib/typescript/modules/tooltip/Tooltip.d.ts +1 -25
- package/lib/typescript/modules/tooltip/TooltipProps.d.ts +27 -0
- package/lib/typescript/modules/tooltip/index.d.ts +1 -1
- package/lib/typescript/modules/typing-indicator/TypingIndicator.d.ts +5 -14
- package/lib/typescript/modules/typing-indicator/TypingIndicatorProps.d.ts +11 -0
- package/lib/typescript/modules/typing-indicator/index.d.ts +1 -1
- package/lib/typescript/modules/upgrade-button/UpgradeButton.d.ts +3 -0
- package/lib/typescript/modules/upgrade-button/UpgradeButtonProps.d.ts +11 -0
- package/lib/typescript/modules/upgrade-button/index.d.ts +3 -0
- package/lib/typescript/test/motionJest.d.ts +12 -0
- package/lib/typescript/theme/platform/elevation.native.d.ts +1 -1
- package/lib/typescript/theme/tokens/builders/accentText.d.ts +3 -0
- package/lib/typescript/theme/tokens/builders/buildBrandScale.d.ts +4 -0
- package/lib/typescript/theme/tokens/builders/gradientInk.d.ts +9 -0
- package/lib/typescript/theme/tokens/builders/paletteFromAccent.d.ts +3 -0
- package/lib/typescript/theme/tokens/builders/skeletonShimmer.d.ts +9 -0
- package/lib/typescript/theme/tokens/index.d.ts +3 -0
- package/lib/typescript/theme/tokens/primitives/controlSizes.d.ts +6 -0
- package/lib/typescript/theme/tokens/primitives/index.d.ts +2 -0
- package/lib/typescript/theme/tokens/roles/index.d.ts +2 -0
- package/lib/typescript/theme/tokens/types.d.ts +2 -2
- package/package.json +106 -5
- package/registry.json +109 -14
- package/lib/module/core/style/useThemedStyles.js +0 -8
- package/lib/module/test/mocks/flashList.js +0 -5
- package/lib/module/test/perfHelpers.js +0 -18
- package/lib/typescript/core/style/useThemedStyles.d.ts +0 -5
- package/lib/typescript/test/mocks/flashList.d.ts +0 -3
|
@@ -9,8 +9,8 @@ without collapsing the individually-focusable rows into one.
|
|
|
9
9
|
|
|
10
10
|
| File | Role |
|
|
11
11
|
|------|------|
|
|
12
|
-
| `RadioGroup.tsx` | The component. Row composition, press wiring, a11y wiring. |
|
|
13
|
-
| `RadioGroup.variants.ts` | Pure resolvers (`RADIO_GROUP_SIZES`, `resolveRadioGroupColors`, `resolveRadioRowAccessibility`) + the themed/untethemed structural resolvers (`radioGroupStructure`, `radioRowStructure`, `radioRingStructure`, `radioDotStructure`). No React, no lucide. |
|
|
12
|
+
| `RadioGroup.tsx` | The component. Row composition, press wiring, a11y wiring. Focus ring geometry uses `FOCUS_RING_GAP` / `FOCUS_RING_WIDTH` from `core/style/focusRing`. |
|
|
13
|
+
| `RadioGroup.variants.ts` | Pure resolvers (`RADIO_GROUP_SIZES`, `resolveRadioGroupColors`, `resolveRadioRowAccessibility`, `resolveRadioGroupKeyIndex`) + the themed/untethemed structural resolvers (`radioGroupStructure`, `radioRowStructure`, `radioRingStructure`, `radioDotStructure`). `MIN_TOUCH_TARGET` from `core/a11y/touchTarget`. No React, no lucide. |
|
|
14
14
|
| `index.ts` | Public surface: `RadioGroup`, `RadioGroupProps`, `RadioGroupOption`, `RadioGroupSize`. |
|
|
15
15
|
| `__tests__/RadioGroup.test.ts` | Pure: WCAG contrast (label-on-canvas, label-on-pressed-row, ring, dot — all brands × modes) + touch target + a11y contract. |
|
|
16
16
|
| `__tests__/RadioGroup.render.test.tsx` | Render: selection, press blocking when disabled, per-row a11y state. |
|
|
@@ -24,7 +24,7 @@ without collapsing the individually-focusable rows into one.
|
|
|
24
24
|
| `onValueChange` | `(value: string) => void` | — | Fires with the pressed option's `value`; gated off while `disabled`. |
|
|
25
25
|
| `disabled` | `boolean` | `false` | Dims every row and blocks all presses. |
|
|
26
26
|
| `size` | `sm \| md` | `md` | Both rows are 44 dp tall (see WCAG below); `sm` is the denser variant through its smaller ring/dot/font and tighter gaps. |
|
|
27
|
-
| `accessibilityLabel` | `string` | — | Names the `radiogroup` container
|
|
27
|
+
| `accessibilityLabel` | `string` | — | Names the `radiogroup` container — without it a reader hears each option's label but nothing saying what the set is FOR (WCAG 1.3.1). |
|
|
28
28
|
| `style` | `LayoutStyle` | — | Layout-only, outermost (the container `View`), applied exactly once, last. |
|
|
29
29
|
| `testID` | `string` | — | Container's testID; each row gets `` `${testID}-${option.value}` ``, and the focused row a `` `${testID}-${option.value}-focus-ring` `` child, when set. |
|
|
30
30
|
|
|
@@ -61,12 +61,12 @@ closed union of appearances. The ring is always `border.interactive`; the select
|
|
|
61
61
|
handler also calls `.focus()` on the newly-selected row's node, because the tab stop moved and DOM
|
|
62
62
|
focus has to follow it or the ring is stranded on the old row. RN's TypeScript `ViewPropTypes.d.ts`
|
|
63
63
|
omits `onKeyDown` (its Flow types declare it), so the container `View` is re-typed once, locally.
|
|
64
|
-
- **2.4.7 (focus visible)** —
|
|
65
|
-
in the group clips), on the focused row only, never while disabled. Rows also carry
|
|
64
|
+
- **2.4.7 (focus visible)** — `border.focus` ring (`core/style/focusRing` offsets), drawn outside the
|
|
65
|
+
row (nothing in the group clips), on the focused row only, never while disabled. Rows also carry
|
|
66
66
|
`focusable={!disabled}` — RN's `Pressable` stays focusable when disabled, which on a TV remote
|
|
67
67
|
would otherwise land on a row that renders no ring (same fix NumberInput's steppers use).
|
|
68
68
|
- **2.3.3** — n/a for selection dot (conditional render). Row presses use `usePressState` (scale +
|
|
69
|
-
state-layer overlay), which snaps under reduce motion.
|
|
69
|
+
state-layer overlay), which snaps under reduce motion. Rows also carry `android_ripple`.
|
|
70
70
|
- Disabled rows are exempt from the contrast minimum (WCAG 1.4.3), so the uniform `opacity: 0.5`
|
|
71
71
|
dim is correct, same as Button.
|
|
72
72
|
|
|
@@ -93,9 +93,3 @@ closed union of appearances. The ring is always `border.interactive`; the select
|
|
|
93
93
|
## Performance
|
|
94
94
|
|
|
95
95
|
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). The `options.map()` renders host `Pressable`/`View`/`Text`, not a library child component, so the inline per-row `onPress`/style closures were left as-is.
|
|
96
|
-
|
|
97
|
-
## Modernization (v1.0.7)
|
|
98
|
-
|
|
99
|
-
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
100
|
-
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
101
|
-
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -15,6 +15,7 @@ import { Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
|
15
15
|
import Animated from "react-native-reanimated";
|
|
16
16
|
import { usePressState } from "../../core/motion/usePressState.js";
|
|
17
17
|
import { useHaptics } from "../../core/haptics/index.js";
|
|
18
|
+
import { FOCUS_RING_GAP, FOCUS_RING_WIDTH } from "../../core/style/focusRing.js";
|
|
18
19
|
import { rippleColor, stateLayerScrim } from "../../theme/platform/stateLayer.native.js";
|
|
19
20
|
import { useTheme } from "../../theme/hooks.js";
|
|
20
21
|
import { RADIO_GROUP_SIZES, radioDotStructure, radioGroupStructure, radioRingStructure, radioRowStructure, resolveRadioGroupColors, resolveRadioGroupKeyIndex, resolveRadioRowAccessibility } from "./RadioGroup.variants.js";
|
|
@@ -27,8 +28,6 @@ const KeyboardView = View;
|
|
|
27
28
|
|
|
28
29
|
// Same offset ring as Button: `border.focus` a small gap OUTSIDE the row, on the canvas, which is
|
|
29
30
|
// the surface that role token is proven ≥ 3:1 against (WCAG 2.4.11).
|
|
30
|
-
const FOCUS_RING_WIDTH = 2;
|
|
31
|
-
const FOCUS_RING_GAP = 2;
|
|
32
31
|
const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
|
|
33
32
|
function RadioRow({
|
|
34
33
|
option,
|
|
@@ -60,9 +59,10 @@ function RadioRow({
|
|
|
60
59
|
return /*#__PURE__*/_jsxs(View, {
|
|
61
60
|
style: styles.rowHost,
|
|
62
61
|
children: [focusedIndex === index && !disabled && /*#__PURE__*/_jsx(View, {
|
|
63
|
-
pointerEvents: "none",
|
|
64
62
|
testID: testID ? `${testID}-${option.value}-focus-ring` : undefined,
|
|
65
|
-
style: [styles.focusRing, focusRingStyle
|
|
63
|
+
style: [styles.focusRing, focusRingStyle, {
|
|
64
|
+
pointerEvents: 'none'
|
|
65
|
+
}]
|
|
66
66
|
}), /*#__PURE__*/_jsxs(AnimatedPressable, {
|
|
67
67
|
ref: node => {
|
|
68
68
|
rowRefs.current[index] = node;
|
|
@@ -92,8 +92,9 @@ function RadioRow({
|
|
|
92
92
|
overflow: "hidden"
|
|
93
93
|
}, press.animatedStyle, disabled && styles.dimmed],
|
|
94
94
|
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle, {
|
|
96
|
+
pointerEvents: 'none'
|
|
97
|
+
}]
|
|
97
98
|
}), /*#__PURE__*/_jsx(View, {
|
|
98
99
|
style: [radioRingStructure(theme, {
|
|
99
100
|
size
|
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
* "selected"/"disabled" contract is unit-testable without rendering React Native.
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
|
|
13
14
|
import { createThemedVariants, createVariants } from "../../core/style/index.js";
|
|
14
|
-
|
|
15
|
-
export const MIN_TOUCH_TARGET = 44;
|
|
16
|
-
const slopFor = height => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - height) / 2));
|
|
15
|
+
export { MIN_TOUCH_TARGET };
|
|
17
16
|
/**
|
|
18
17
|
* RadioGroup-specific dimensions. Kept a plain constant — no theme dependency — so the hit-target
|
|
19
18
|
* test can assert `rowMinHeight + 2·hitSlop ≥ 44` without a provider, same as `BUTTON_SIZES`.
|
|
@@ -11,7 +11,7 @@ way to preview the drop position. Built on **one** shared `Gesture.Pan()`
|
|
|
11
11
|
| File | Role |
|
|
12
12
|
|------|------|
|
|
13
13
|
| `Reorder.tsx` | The component. The single shared pan, the five shared values that drive every row, and the two `Button` up/down alternatives. `ReorderRow` is a private, memoized sub-component rendered through `VirtualList`. |
|
|
14
|
-
| `Reorder.variants.ts` | Pure resolvers (`resolveReorderColors`, `resolveReorderMoveState`, `moveItem`, `resolveRowPitch`, `resolveDragTargetIndex`, `resolveRowShift`) + the themed/untethered structural resolvers. No React, no lucide. The two drag-math resolvers are `"worklet"`-marked so the UI thread can call them. |
|
|
14
|
+
| `Reorder.variants.ts` | Pure resolvers (`resolveReorderColors`, `resolveReorderMoveState`, `moveItem`, `resolveRowPitch`, `resolveDragTargetIndex`, `resolveRowShift`, `resolveReorderRowLabel`, `resolveReorderMoveAnnouncement`) + the themed/untethered structural resolvers. No React, no lucide. The two drag-math resolvers are `"worklet"`-marked so the UI thread can call them. |
|
|
15
15
|
| `index.ts` | Public surface: `Reorder`, `ReorderProps`, `ReorderItem`. |
|
|
16
16
|
| `__tests__/Reorder.test.ts` | Pure: WCAG contrast (all brands × modes), grip touch target, and the drag/alternative-path arithmetic. |
|
|
17
17
|
| `__tests__/Reorder.render.test.tsx` | Render: labels, grip hidden from a11y, grip drag gating, the WCAG 2.5.7 alternative in both directions, disabled gating, testID wiring, the reduced-motion row shift, and the shift reset on drop. Mocks both animation peers locally and captures the pan's callbacks so a test drives a real drag. |
|
|
@@ -72,7 +72,12 @@ No `variant`/`size`/`tone` — every row reads identically; the only per-row sta
|
|
|
72
72
|
|
|
73
73
|
Every timing comes from `core/motion` — `useMotion().duration("fast")` for the lift and the row
|
|
74
74
|
shift, `useMotion().transform.pressOpacity` for the lifted row's opacity. No local duration constant
|
|
75
|
-
lives in this module. Only `opacity` and `transform` animate, on reanimated's UI thread.
|
|
75
|
+
lives in this module. Only `opacity` and `transform` animate, on reanimated's UI thread. Lift fires
|
|
76
|
+
`haptics.impact("light")` and a committed move fires `haptics.selection()`, both gated on
|
|
77
|
+
`useReducedMotion()` being false. Drag completion hops to JS with `scheduleOnRN`
|
|
78
|
+
(`react-native-worklets`), never the deprecated `runOnJS`.
|
|
79
|
+
|
|
80
|
+
`react-native-gesture-handler` and `react-native-reanimated` are non-optional peers here.
|
|
76
81
|
|
|
77
82
|
## Accessibility contract (WCAG)
|
|
78
83
|
|
|
@@ -129,12 +134,3 @@ lives in this module. Only `opacity` and `transform` animate, on reanimated's UI
|
|
|
129
134
|
reads the current `items`/`onReorder` through refs, so the `Gesture.Pan()` object never has to be
|
|
130
135
|
rebuilt mid-drag (re-registering a `GestureDetector` mid-drag drops the live gesture). Row callbacks
|
|
131
136
|
take an `index`/`id` argument, so no per-row closure is allocated in the render loop.
|
|
132
|
-
|
|
133
|
-
## History (v1.0.7)
|
|
134
|
-
|
|
135
|
-
Replaced the original `PanResponder` + per-row `Animated.Value` implementation — one responder AND
|
|
136
|
-
one animated node per row, no virtualization, unusable past a few hundred rows — with the single
|
|
137
|
-
shared gesture + `VirtualList` described above. `react-native-gesture-handler` and
|
|
138
|
-
`react-native-reanimated` are non-optional peers. **No public prop API change.**
|
|
139
|
-
|
|
140
|
-
Drag completion uses `scheduleOnRN` from `react-native-worklets` (not deprecated `runOnJS`).
|
|
@@ -39,7 +39,8 @@ import { Text, View } from "react-native";
|
|
|
39
39
|
import { Gesture, GestureDetector } from "react-native-gesture-handler";
|
|
40
40
|
import Animated, { cancelAnimation, useAnimatedStyle, useSharedValue, withTiming } from "react-native-reanimated";
|
|
41
41
|
import { scheduleOnRN } from "react-native-worklets";
|
|
42
|
-
import { useAnnounce } from "../../core/a11y/index.js";
|
|
42
|
+
import { useAnnounce, useReducedMotion } from "../../core/a11y/index.js";
|
|
43
|
+
import { useHaptics } from "../../core/haptics/index.js";
|
|
43
44
|
import { VirtualList } from "../../core/list/index.js";
|
|
44
45
|
import { useMotion } from "../../core/motion/index.js";
|
|
45
46
|
import { useTheme } from "../../theme/hooks.js";
|
|
@@ -57,6 +58,8 @@ export const Reorder = /*#__PURE__*/memo(function Reorder({
|
|
|
57
58
|
}) {
|
|
58
59
|
const theme = useTheme();
|
|
59
60
|
const motion = useMotion();
|
|
61
|
+
const haptics = useHaptics();
|
|
62
|
+
const reducedMotion = useReducedMotion();
|
|
60
63
|
const colors = useMemo(() => resolveReorderColors(theme.colors), [theme.colors]);
|
|
61
64
|
const rowPitch = resolveRowPitch(theme.space[2]);
|
|
62
65
|
const activeIndex = useSharedValue(IDLE);
|
|
@@ -102,7 +105,8 @@ export const Reorder = /*#__PURE__*/memo(function Reorder({
|
|
|
102
105
|
duration: liftMs
|
|
103
106
|
}) : 1;
|
|
104
107
|
setActiveRow(index);
|
|
105
|
-
|
|
108
|
+
if (!reducedMotion) haptics.impact("light");
|
|
109
|
+
}, [disabled, activeIndex, targetIndex, translationY, lift, motionEnabled, liftMs, reducedMotion, haptics]);
|
|
106
110
|
const endDrag = useCallback(() => {
|
|
107
111
|
const from = activeIndex.value;
|
|
108
112
|
if (from === IDLE) return;
|
|
@@ -119,8 +123,9 @@ export const Reorder = /*#__PURE__*/memo(function Reorder({
|
|
|
119
123
|
if (moved !== undefined) {
|
|
120
124
|
setAnnouncement(resolveReorderMoveAnnouncement(moved.label, to, itemsRef.current.length));
|
|
121
125
|
}
|
|
126
|
+
if (!reducedMotion) haptics.selection();
|
|
122
127
|
}
|
|
123
|
-
}, [activeIndex, targetIndex, translationY, lift]);
|
|
128
|
+
}, [activeIndex, targetIndex, translationY, lift, reducedMotion, haptics]);
|
|
124
129
|
const pan = useMemo(() => Gesture.Pan()
|
|
125
130
|
// Without manual activation the pan swallows the virtualized list's own scroll gesture.
|
|
126
131
|
.manualActivation(true).onTouchesMove((_event, manager) => {
|
|
@@ -16,7 +16,9 @@
|
|
|
16
16
|
* only `react-native`'s `StyleSheet`, as `core/style` and every sibling module's tests do).
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
+
import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
|
|
19
20
|
import { createThemedVariants, createVariants } from "../../core/style/index.js";
|
|
21
|
+
export { MIN_TOUCH_TARGET };
|
|
20
22
|
|
|
21
23
|
/**
|
|
22
24
|
* Fixed row height, in dp. A fixed height — rather than per-row `onLayout` measurement — is what
|
|
@@ -25,10 +27,6 @@ import { createThemedVariants, createVariants } from "../../core/style/index.js"
|
|
|
25
27
|
*/
|
|
26
28
|
export const REORDER_ROW_HEIGHT = 56;
|
|
27
29
|
|
|
28
|
-
/** The 44dp floor every touch target holds itself to (WCAG 2.5.5 AAA; comfortably clears 2.5.8). */
|
|
29
|
-
export const MIN_TOUCH_TARGET = 44;
|
|
30
|
-
const slopFor = dimension => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - dimension) / 2));
|
|
31
|
-
|
|
32
30
|
/** Grip bar glyph — three of these stacked make the drag-handle affordance. No `IconName` in the
|
|
33
31
|
* closed 22-name set represents a drag handle, and that set is never extended for one component
|
|
34
32
|
* (per the build brief), so the grip is hand-built from plain themed bars instead. */
|
|
@@ -56,6 +54,7 @@ export const GRIP_HIT_SLOP = {
|
|
|
56
54
|
* one of these role lookups, guaranteed legible in both modes (same reasoning `resolveTimelineColors`
|
|
57
55
|
* documents for its own tone-less component).
|
|
58
56
|
*/
|
|
57
|
+
|
|
59
58
|
export function resolveReorderColors(colors) {
|
|
60
59
|
return {
|
|
61
60
|
rowBackground: colors.bg.surface,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# rich-text/
|
|
1
|
+
# rich-text/ — a read-only renderer for sanitized HTML
|
|
2
2
|
|
|
3
3
|
Read-only safe HTML renderer. Parse/sanitize in `parseRichText.ts` (ported from tickets/mobile). Heavy — subpath only.
|
|
4
4
|
|
|
@@ -29,8 +29,7 @@ safe schemes only) · `onImagePress` · `style` (layout-only, outermost, once, l
|
|
|
29
29
|
muted 6.52 and link 5.06 on the canvas · mention label 4.82 on its own `accent.subtle` pill · code and
|
|
30
30
|
`pre` 5.69 on `bg.sunken`. `quoteBorder` / `border` are decorative rules (1.08–1.43:1) with no contrast
|
|
31
31
|
floor — they are pinned to `border.default` and asserted never to escalate to `border.interactive`/`focus`.
|
|
32
|
-
- `blockquote`'s left border is `theme.borderWidths.thick
|
|
33
|
-
visible 1px change to every rendered blockquote.
|
|
32
|
+
- `blockquote`'s left border is `theme.borderWidths.thick`, never a raw literal.
|
|
34
33
|
|
|
35
34
|
## Performance
|
|
36
35
|
|
|
@@ -51,4 +50,5 @@ into inline spans inside one `Text` — which a `FlatList` cannot host. It also
|
|
|
51
50
|
## Known gaps
|
|
52
51
|
|
|
53
52
|
- Tables are sanitized through but render as their text runs, not as a grid.
|
|
54
|
-
- Images render as a `🖼 alt` placeholder — the library never fetches remote
|
|
53
|
+
- Images render as a `🖼 alt` placeholder inside a `Pressable` — the library never fetches remote
|
|
54
|
+
content itself.
|
|
@@ -26,7 +26,7 @@ button) — it is not the HTML and must not be used for persistence.
|
|
|
26
26
|
|
|
27
27
|
| File | Role |
|
|
28
28
|
|------|------|
|
|
29
|
-
| `RichTextEditor.tsx` | The component: toolbar (`Button`), the native editor, the link dialog (`Modal` + `Input`), the mention dropdown. |
|
|
29
|
+
| `RichTextEditor.tsx` | The component: toolbar (`Button`), the native editor, the link dialog (`Modal` + `Input`), the mention dropdown. Colocated props keep behavioural JSDoc on non-obvious fields only (no per-prop narration). |
|
|
30
30
|
| `RichTextEditor.variants.ts` | Pure resolvers — toolbar item catalogue, `onChangeState` → active-action mapping, mention filtering, colour + `HtmlStyle` token mapping — plus the themed structural resolvers. No React, no native import (types-only from `react-native-enriched-html`). |
|
|
31
31
|
| `index.ts` | Public surface: `RichTextEditor`, `RichTextEditorHandle`, `RichTextEditorProps`, `MentionUser`, `RichTextEditorImage`, `RichTextEditorToolbarAction`, `RICH_TEXT_EDITOR_TOOLBAR_ITEMS`. |
|
|
32
32
|
| `__tests__/RichTextEditor.test.ts` | Pure: WCAG contrast for the field/mention pill/code/code-block/blockquote/link/list-marker colours (all brands × modes), the toolbar item catalogue, `onChangeState` mapping, mention filtering. |
|
|
@@ -142,8 +142,7 @@ dropdown now does.
|
|
|
142
142
|
## Accessibility
|
|
143
143
|
|
|
144
144
|
- **Editor field accessible name.** The native `EnrichedTextInput` gets `accessibilityLabel` from
|
|
145
|
-
`accessibilityLabel ?? label` (`resolveRichTextEditorAccessibility`)
|
|
146
|
-
path to a name at all. On native the now-redundant visible `label` `Text` is hidden from
|
|
145
|
+
`accessibilityLabel ?? label` (`resolveRichTextEditorAccessibility`). On native the now-redundant visible `label` `Text` is hidden from
|
|
147
146
|
assistive tech (`aria-hidden`) so the name isn't announced twice. **On web it stays exposed**:
|
|
148
147
|
`react-native-enriched-html`'s web build renders a TipTap `EditorContent` and forwards no
|
|
149
148
|
accessibility prop to the underlying `contenteditable` (only `enterkeyhint`), so the field itself
|
|
@@ -152,8 +151,8 @@ dropdown now does.
|
|
|
152
151
|
close this gap.
|
|
153
152
|
- **Toolbar toggle (pressed) state.** The 14 style-toggle buttons (all but the `image`/`mention`
|
|
154
153
|
triggers, see `RichTextEditorToolbarItem.toggle`) pass `Button`'s `selected` prop, driven by the
|
|
155
|
-
same `activeActions` state that
|
|
156
|
-
|
|
154
|
+
same `activeActions` state that drives the `variant="solid"` highlight, so the toggle is never
|
|
155
|
+
colour-only (WCAG 1.4.1) and always announced (4.1.2). `Button` itself resolves
|
|
157
156
|
`selected` into `aria-pressed` (web) / `accessibilityState.selected` (native), per
|
|
158
157
|
`docs/PLATFORM-A11Y-PROPS.md`'s "genuinely diverge" case — RN has no `pressed` accessibility
|
|
159
158
|
state at all. `image`/`mention` never receive `selected`: they open a picker, not toggle a style.
|
|
@@ -181,10 +180,8 @@ Every colour handed to the native `htmlStyle`/native props is a role lookup, nev
|
|
|
181
180
|
|
|
182
181
|
## Known gaps
|
|
183
182
|
|
|
184
|
-
- **
|
|
185
|
-
|
|
186
|
-
level — jest cannot render a native Fabric component, so nothing here claims the editor "works" on
|
|
187
|
-
device.
|
|
183
|
+
- **Nothing here is device-verified.** Jest cannot render a native Fabric component, so the editor's
|
|
184
|
+
behaviour on device is a manual pass; the suite only covers the mocked surface.
|
|
188
185
|
- `onChangeState.image.isBlocking` (the caret is somewhere an `<img>` can't go, e.g. inside a code
|
|
189
186
|
block) is not honoured — the pick/upload still runs and native `addImage` then silently no-ops.
|
|
190
187
|
Disabling the button on that flag is the follow-up.
|
|
@@ -219,10 +216,3 @@ Wrapped in `React.memo`. This component re-renders on every keystroke (`onChange
|
|
|
219
216
|
|
|
220
217
|
No motion of its own — the editor's own visual state changes (toggle highlighting, focus ring) are
|
|
221
218
|
instant, and the mention dropdown is a list, where per-row animation is forbidden.
|
|
222
|
-
|
|
223
|
-
## Modernization (v1.0.7)
|
|
224
|
-
|
|
225
|
-
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
226
|
-
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
227
|
-
|
|
228
|
-
- **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
import { forwardRef, memo, useCallback, useImperativeHandle, useMemo, useRef, useState } from "react";
|
|
20
20
|
import { Platform, Pressable, ScrollView, StyleSheet, Text, View } from "react-native";
|
|
21
21
|
import { EnrichedTextInput } from "react-native-enriched-html";
|
|
22
|
+
import { FOCUS_RING_GAP, FOCUS_RING_WIDTH } from "../../core/style/focusRing.js";
|
|
22
23
|
import { VirtualList } from "../../core/list/index.js";
|
|
23
24
|
import { useTheme } from "../../theme/hooks.js";
|
|
24
25
|
import { rippleColor } from "../../theme/platform/stateLayer.native.js";
|
|
@@ -71,8 +72,7 @@ const MentionRow = /*#__PURE__*/memo(function MentionRow({
|
|
|
71
72
|
|
|
72
73
|
// Identical to `Input`/`Textarea`: the ring sits OUTSIDE the field, on the canvas, where
|
|
73
74
|
// `border.focus` is the token proven ≥ 3:1.
|
|
74
|
-
|
|
75
|
-
const FOCUS_RING_GAP = 2;
|
|
75
|
+
|
|
76
76
|
function RichTextEditorImpl({
|
|
77
77
|
defaultValue,
|
|
78
78
|
placeholder,
|
|
@@ -373,9 +373,10 @@ function RichTextEditorImpl({
|
|
|
373
373
|
})
|
|
374
374
|
})]
|
|
375
375
|
}), focused && /*#__PURE__*/_jsx(View, {
|
|
376
|
-
pointerEvents: "none",
|
|
377
376
|
testID: "rich-text-editor-focus-ring",
|
|
378
|
-
style: focusRingStyle
|
|
377
|
+
style: [focusRingStyle, {
|
|
378
|
+
pointerEvents: 'none'
|
|
379
|
+
}]
|
|
379
380
|
})]
|
|
380
381
|
}), /*#__PURE__*/_jsx(Modal, {
|
|
381
382
|
visible: linkOpen,
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useMemo } from "react";
|
|
4
|
+
import { View } from "react-native";
|
|
5
|
+
import { useSafeAreaInsets } from "react-native-safe-area-context";
|
|
6
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
7
|
+
import { Button } from "../button/index.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
export const SaveBar = /*#__PURE__*/memo(function SaveBar({
|
|
10
|
+
dirty,
|
|
11
|
+
onSave,
|
|
12
|
+
onDiscard,
|
|
13
|
+
saveLabel = "Save",
|
|
14
|
+
discardLabel = "Discard",
|
|
15
|
+
saving = false,
|
|
16
|
+
style,
|
|
17
|
+
testID
|
|
18
|
+
}) {
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
const insets = useSafeAreaInsets();
|
|
21
|
+
const barStyle = useMemo(() => ({
|
|
22
|
+
paddingHorizontal: theme.space[4],
|
|
23
|
+
paddingTop: theme.space[3],
|
|
24
|
+
paddingBottom: Math.max(theme.space[3], insets.bottom),
|
|
25
|
+
backgroundColor: theme.colors.bg.surface,
|
|
26
|
+
borderTopWidth: 1,
|
|
27
|
+
borderTopColor: theme.colors.border.default,
|
|
28
|
+
flexDirection: "row",
|
|
29
|
+
justifyContent: "flex-end",
|
|
30
|
+
gap: theme.space[2]
|
|
31
|
+
}), [theme, insets.bottom]);
|
|
32
|
+
if (!dirty) return null;
|
|
33
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
34
|
+
testID: testID,
|
|
35
|
+
style: [barStyle, style],
|
|
36
|
+
children: [onDiscard ? /*#__PURE__*/_jsx(Button, {
|
|
37
|
+
label: discardLabel,
|
|
38
|
+
variant: "ghost",
|
|
39
|
+
onPress: onDiscard,
|
|
40
|
+
disabled: saving
|
|
41
|
+
}) : null, /*#__PURE__*/_jsx(Button, {
|
|
42
|
+
label: saveLabel,
|
|
43
|
+
variant: "solid",
|
|
44
|
+
onPress: onSave,
|
|
45
|
+
loading: saving
|
|
46
|
+
})]
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
//# sourceMappingURL=SaveBar.js.map
|
|
@@ -12,6 +12,7 @@ content instead of `children`.
|
|
|
12
12
|
| `Screen.variants.ts` | Pure resolver (`resolveScreenColors`) + themed structural resolvers + `ScreenEdge` / `ScreenState` unions. |
|
|
13
13
|
| `index.ts` | Public surface: `Screen`, `ScreenProps`, `ScreenEdge`, `ScreenState`. |
|
|
14
14
|
| `__tests__/Screen.test.ts` | Pure: colour mapping, default edges. |
|
|
15
|
+
| `__tests__/Screen.dom.test.tsx` | Render under `react-dom` — guards the shell against web-only regressions. |
|
|
15
16
|
| `__tests__/Screen.render.test.tsx` | Render: default loading slot, idle children, consumer `style` last. Mocks `core/a11y` via `jest.requireActual` + override, not a full replacement — the default `LoadingState`/`ErrorState` slots call `useAnnounce`, which a full-replacement mock would drop. |
|
|
16
17
|
|
|
17
18
|
## Props
|
|
@@ -20,7 +21,7 @@ content instead of `children`.
|
|
|
20
21
|
|------|------|---------|-------|
|
|
21
22
|
| `children` | `ReactNode` | — | Shown when `state="idle"`. |
|
|
22
23
|
| `appBar` | `ReactNode` | — | Top header slot. Receives top safe-area inset; body omits `top` from `edges`. |
|
|
23
|
-
| `edges` | `ScreenEdge[]` | `["top"]` | Passed to `SafeAreaView`. |
|
|
24
|
+
| `edges` | `readonly ScreenEdge[]` | `["top"]` | Passed to `SafeAreaView`. |
|
|
24
25
|
| `padded` | `boolean` | `false` | Adds theme padding around content. |
|
|
25
26
|
| `keyboardAvoiding` | `boolean` | `false` | Wraps in `KeyboardAvoidingView`. |
|
|
26
27
|
| `keyboardVerticalOffset` | `number` | `0` | Passed to `KeyboardAvoidingView`. |
|
|
@@ -30,6 +31,7 @@ content instead of `children`.
|
|
|
30
31
|
| `loading` | `ReactNode` | `<LoadingState />` | Custom loading slot. |
|
|
31
32
|
| `empty` | `ReactNode` | — | Compose `EmptyState` here. |
|
|
32
33
|
| `error` | `ReactNode` | — | Compose `ErrorState` here. |
|
|
34
|
+
| `scrollLinked` | `boolean` | `false` | With `appBar`, uses `Animated.ScrollView` and publishes `scrollY` for `AppBar` `scrollEffect`. |
|
|
33
35
|
| `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
|
|
34
36
|
| `testID` | `string` | — | Forwarded to the outermost shell node. |
|
|
35
37
|
|
|
@@ -47,10 +49,10 @@ hand-rolled as `Screen` + `AppHeader`.
|
|
|
47
49
|
|
|
48
50
|
## Motion
|
|
49
51
|
|
|
50
|
-
**
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
**Scroll link only.** `scrollLinked` publishes `scrollY` for a composed `AppBar`; the shell itself
|
|
53
|
+
does not animate. Pull-to-refresh fires a light haptic as the refresh starts, before `onRefresh` (gated on
|
|
54
|
+
reduce-motion and the provider haptics flag). State swaps (`idle` → `loading` → `error`) are handled
|
|
55
|
+
by the composed `LoadingState` / `EmptyState` / `ErrorState` blocks, not by Screen.
|
|
54
56
|
|
|
55
57
|
## Performance
|
|
56
58
|
|
|
@@ -5,9 +5,14 @@
|
|
|
5
5
|
* optional `appBar` slot with safe-area edge splitting, and async-state slots.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import { memo, useMemo } from "react";
|
|
8
|
+
import { memo, useCallback, useMemo } from "react";
|
|
9
9
|
import { KeyboardAvoidingView, Platform, RefreshControl, ScrollView, View } from "react-native";
|
|
10
10
|
import { SafeAreaView } from "react-native-safe-area-context";
|
|
11
|
+
import Animated, { useAnimatedScrollHandler, useSharedValue } from "react-native-reanimated";
|
|
12
|
+
import { useReducedMotion } from "../../core/a11y/index.js";
|
|
13
|
+
import { useHaptics } from "../../core/haptics/index.js";
|
|
14
|
+
import { ScreenScrollContext } from "../../core/screen-scroll/index.js";
|
|
15
|
+
import { renderNodeSlot } from "../../core/slot/index.js";
|
|
11
16
|
import { useTheme, useThemeColors } from "../../theme/hooks.js";
|
|
12
17
|
import { LoadingState } from "../state-block/index.js";
|
|
13
18
|
import { SCREEN_DEFAULT_EDGES, resolveScreenAppBarEdges, resolveScreenBodyEdges, resolveScreenColors, screenBodyStructure, screenPaddedStructure, screenRootStructure, screenScrollContentStructure, screenShellStructure, screenStateSlotStructure } from "./Screen.variants.js";
|
|
@@ -21,6 +26,7 @@ export const Screen = /*#__PURE__*/memo(function Screen({
|
|
|
21
26
|
keyboardVerticalOffset = 0,
|
|
22
27
|
refreshing = false,
|
|
23
28
|
onRefresh,
|
|
29
|
+
scrollLinked = false,
|
|
24
30
|
state = "idle",
|
|
25
31
|
loading,
|
|
26
32
|
empty,
|
|
@@ -30,47 +36,84 @@ export const Screen = /*#__PURE__*/memo(function Screen({
|
|
|
30
36
|
}) {
|
|
31
37
|
const theme = useTheme();
|
|
32
38
|
const roleColors = useThemeColors();
|
|
39
|
+
const haptics = useHaptics();
|
|
40
|
+
const reducedMotion = useReducedMotion();
|
|
33
41
|
const screenColors = resolveScreenColors(theme.colors);
|
|
34
42
|
const hasAppBar = appBar !== undefined;
|
|
43
|
+
const scrollY = useSharedValue(0);
|
|
44
|
+
const scrollHandler = useAnimatedScrollHandler({
|
|
45
|
+
onScroll: event => {
|
|
46
|
+
scrollY.value = event.contentOffset.y;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
const scrollContextValue = useMemo(() => ({
|
|
50
|
+
scrollY
|
|
51
|
+
}), [scrollY]);
|
|
52
|
+
const linkScroll = scrollLinked && hasAppBar && state === "idle";
|
|
35
53
|
const bodyEdges = useMemo(() => resolveScreenBodyEdges(edges, hasAppBar), [edges, hasAppBar]);
|
|
36
54
|
const appBarEdges = useMemo(() => resolveScreenAppBarEdges(edges, hasAppBar), [edges, hasAppBar]);
|
|
55
|
+
const slotTextStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
56
|
+
color: theme.colors.fg.default,
|
|
57
|
+
fontSize: theme.fontSizes.md
|
|
58
|
+
}], [theme]);
|
|
37
59
|
const body = useMemo(() => {
|
|
38
60
|
if (state === "loading") {
|
|
39
61
|
return /*#__PURE__*/_jsx(View, {
|
|
40
62
|
style: screenStateSlotStructure(theme),
|
|
41
63
|
testID: testID === undefined ? undefined : `${testID}-loading`,
|
|
42
|
-
children: loading ?? /*#__PURE__*/_jsx(LoadingState, {})
|
|
64
|
+
children: renderNodeSlot(loading ?? /*#__PURE__*/_jsx(LoadingState, {}), slotTextStyle)
|
|
43
65
|
});
|
|
44
66
|
}
|
|
45
67
|
if (state === "empty") {
|
|
46
68
|
return /*#__PURE__*/_jsx(View, {
|
|
47
69
|
style: screenStateSlotStructure(theme),
|
|
48
70
|
testID: testID === undefined ? undefined : `${testID}-empty`,
|
|
49
|
-
children: empty
|
|
71
|
+
children: renderNodeSlot(empty, slotTextStyle)
|
|
50
72
|
});
|
|
51
73
|
}
|
|
52
74
|
if (state === "error") {
|
|
53
75
|
return /*#__PURE__*/_jsx(View, {
|
|
54
76
|
style: screenStateSlotStructure(theme),
|
|
55
77
|
testID: testID === undefined ? undefined : `${testID}-error`,
|
|
56
|
-
children: error
|
|
78
|
+
children: renderNodeSlot(error, slotTextStyle)
|
|
57
79
|
});
|
|
58
80
|
}
|
|
59
|
-
return children;
|
|
60
|
-
}, [children, empty, error, loading, state, testID, theme]);
|
|
81
|
+
return renderNodeSlot(children, slotTextStyle);
|
|
82
|
+
}, [children, empty, error, loading, slotTextStyle, state, testID, theme]);
|
|
61
83
|
const accent = roleColors.accent.solid;
|
|
84
|
+
const handleRefresh = useCallback(() => {
|
|
85
|
+
if (!reducedMotion) haptics.impact("light");
|
|
86
|
+
onRefresh?.();
|
|
87
|
+
}, [haptics, onRefresh, reducedMotion]);
|
|
62
88
|
const refreshControl = useMemo(() => onRefresh === undefined ? undefined : /*#__PURE__*/_jsx(RefreshControl, {
|
|
63
89
|
refreshing: refreshing,
|
|
64
|
-
onRefresh:
|
|
90
|
+
onRefresh: handleRefresh,
|
|
65
91
|
colors: [accent],
|
|
66
92
|
tintColor: accent
|
|
67
|
-
}), [onRefresh, refreshing, accent]);
|
|
68
|
-
const inner =
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
93
|
+
}), [handleRefresh, onRefresh, refreshing, accent]);
|
|
94
|
+
const inner = useMemo(() => {
|
|
95
|
+
if (linkScroll) {
|
|
96
|
+
return /*#__PURE__*/_jsx(Animated.ScrollView, {
|
|
97
|
+
onScroll: scrollHandler,
|
|
98
|
+
scrollEventThrottle: 16,
|
|
99
|
+
contentContainerStyle: screenScrollContentStructure(),
|
|
100
|
+
refreshControl: refreshControl,
|
|
101
|
+
keyboardShouldPersistTaps: "handled",
|
|
102
|
+
children: body
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (refreshControl === undefined) return body;
|
|
106
|
+
return /*#__PURE__*/_jsx(ScrollView, {
|
|
107
|
+
contentContainerStyle: screenScrollContentStructure(),
|
|
108
|
+
refreshControl: refreshControl,
|
|
109
|
+
keyboardShouldPersistTaps: "handled",
|
|
110
|
+
children: body
|
|
111
|
+
});
|
|
112
|
+
}, [body, linkScroll, refreshControl, scrollHandler]);
|
|
113
|
+
const scrollWrappedInner = linkScroll ? /*#__PURE__*/_jsx(ScreenScrollContext.Provider, {
|
|
114
|
+
value: scrollContextValue,
|
|
115
|
+
children: inner
|
|
116
|
+
}) : inner;
|
|
74
117
|
const background = screenColors.background;
|
|
75
118
|
const shellStyle = useMemo(() => [screenShellStructure(theme), {
|
|
76
119
|
backgroundColor: background
|
|
@@ -90,11 +133,11 @@ export const Screen = /*#__PURE__*/memo(function Screen({
|
|
|
90
133
|
testID: testID,
|
|
91
134
|
children: [appBarEdges.length > 0 ? /*#__PURE__*/_jsx(SafeAreaView, {
|
|
92
135
|
edges: appBarEdges,
|
|
93
|
-
children: appBar
|
|
94
|
-
}) : appBar, /*#__PURE__*/_jsx(SafeAreaView, {
|
|
136
|
+
children: renderNodeSlot(appBar, slotTextStyle)
|
|
137
|
+
}) : renderNodeSlot(appBar, slotTextStyle), /*#__PURE__*/_jsx(SafeAreaView, {
|
|
95
138
|
edges: bodyEdges,
|
|
96
139
|
style: bodySafeAreaStyle,
|
|
97
|
-
children:
|
|
140
|
+
children: scrollWrappedInner
|
|
98
141
|
})]
|
|
99
142
|
}) : null;
|
|
100
143
|
if (hasAppBar) {
|
|
@@ -108,11 +151,11 @@ export const Screen = /*#__PURE__*/memo(function Screen({
|
|
|
108
151
|
testID: testID,
|
|
109
152
|
children: [appBarEdges.length > 0 ? /*#__PURE__*/_jsx(SafeAreaView, {
|
|
110
153
|
edges: appBarEdges,
|
|
111
|
-
children: appBar
|
|
112
|
-
}) : appBar, /*#__PURE__*/_jsx(SafeAreaView, {
|
|
154
|
+
children: renderNodeSlot(appBar, slotTextStyle)
|
|
155
|
+
}) : renderNodeSlot(appBar, slotTextStyle), /*#__PURE__*/_jsx(SafeAreaView, {
|
|
113
156
|
edges: bodyEdges,
|
|
114
157
|
style: bodySafeAreaStyle,
|
|
115
|
-
children:
|
|
158
|
+
children: scrollWrappedInner
|
|
116
159
|
})]
|
|
117
160
|
});
|
|
118
161
|
}
|
|
@@ -121,7 +164,7 @@ export const Screen = /*#__PURE__*/memo(function Screen({
|
|
|
121
164
|
edges: edges,
|
|
122
165
|
style: legacyRootStyle,
|
|
123
166
|
testID: testID,
|
|
124
|
-
children:
|
|
167
|
+
children: scrollWrappedInner
|
|
125
168
|
});
|
|
126
169
|
}
|
|
127
170
|
return /*#__PURE__*/_jsx(KeyboardAvoidingView, {
|
|
@@ -132,7 +175,7 @@ export const Screen = /*#__PURE__*/memo(function Screen({
|
|
|
132
175
|
children: /*#__PURE__*/_jsx(SafeAreaView, {
|
|
133
176
|
edges: edges,
|
|
134
177
|
style: legacySafeAreaStyle,
|
|
135
|
-
children:
|
|
178
|
+
children: scrollWrappedInner
|
|
136
179
|
})
|
|
137
180
|
});
|
|
138
181
|
});
|