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
|
@@ -10,17 +10,14 @@ VoiceOver's escape gesture via `onAccessibilityEscape`).
|
|
|
10
10
|
|
|
11
11
|
| File | Role |
|
|
12
12
|
|------|------|
|
|
13
|
-
| `Modal.tsx` | The component. RN `<Modal>` composition, backdrop, overlay, panel, title. Falls back to the web portal mechanism below when opted in. |
|
|
13
|
+
| `Modal.tsx` | The component. RN `<Modal>` composition, backdrop, overlay, panel, title. Panel lift/scrim opacity use `useMotion` + `useAnimatedValue` (Reanimated). Falls back to the web portal mechanism below when opted in. |
|
|
14
14
|
| `Modal.variants.ts` | Pure resolvers (`MODAL_SIZES`, `resolveModalPanelColors`, `resolveModalAnimationType`) + the themed structural resolvers (`modalOverlayStructure`, `modalPanelStructure`). No React, no lucide. Untouched by the web portal mechanism — see below. |
|
|
15
15
|
| `ModalPortalContext.ts` | The web-only portal-container `React.Context<unknown>`, default `null`. Read by `Modal`, `Select`, `MultiSelect`, and `Menu`. |
|
|
16
16
|
| `ModalPortalProvider.tsx` | Public provider wrapping `ModalPortalContext.Provider`. A consumer's opt-in API. |
|
|
17
17
|
| `renderWebPortal.ts` / `renderWebPortal.web.ts` | The platform-split portal renderer — see "Web portal mechanism" below. |
|
|
18
18
|
| `index.ts` | Public surface: `Modal`, `ModalProps`, `ModalSize`, `ModalPortalProvider`, `ModalPortalProviderProps`. |
|
|
19
|
-
| `__tests__/Modal.test.ts` | Pure
|
|
20
|
-
| `__tests__/Modal.
|
|
21
|
-
| `__tests__/ModalPortalProvider.test.tsx` | The provider forwards `container` onto `ModalPortalContext`; an unwrapped tree reads the `null` default. |
|
|
22
|
-
| `__tests__/renderWebPortal.test.ts` / `renderWebPortal.web.test.ts` | Each platform file in isolation — the native file is always a no-op; the web file calls `ReactDOM.createPortal` with the exact children/container (mocked — no real DOM under Jest). |
|
|
23
|
-
| `__tests__/Modal.keyboard.web.test.tsx` | Escape / Tab trap / focus restore on the portal branch, and their deliberate ABSENCE on the RNModal branch. |
|
|
19
|
+
| `__tests__/Modal.test.ts` / `Modal.render.test.tsx` | Pure (WCAG contrast, size caps, reduced motion) + render (visibility, title semantics, backdrop dismissal, portal branch). |
|
|
20
|
+
| `__tests__/ModalPortalProvider.test.tsx`, `renderWebPortal*.test.ts`, `Modal.keyboard.web.test.tsx` | Provider context default; each platform portal file in isolation; Escape/Tab-trap/focus-restore on the portal branch and their deliberate absence on the RNModal branch. |
|
|
24
21
|
|
|
25
22
|
## Props
|
|
26
23
|
|
|
@@ -29,7 +26,11 @@ VoiceOver's escape gesture via `onAccessibilityEscape`).
|
|
|
29
26
|
| `visible` | `boolean` | — | Required. Fully controlled — no internal open state. |
|
|
30
27
|
| `onRequestClose` | `() => void` | — | Required. Fired by the backdrop press, Android hardware back, and iOS VoiceOver's escape gesture (`onAccessibilityEscape` on the panel). |
|
|
31
28
|
| `title` | `string` | — | Optional heading, rendered `accessibilityRole="header"`. |
|
|
29
|
+
| `subtitle` | `string` | — | Optional muted line under the title (`fg.muted`). |
|
|
32
30
|
| `children` | `ReactNode` | — | Required. Panel content. |
|
|
31
|
+
| `footer` | `ReactNode` | — | Actions row below body (e.g. Cancel / Save). |
|
|
32
|
+
| `isLoading` | `boolean` | `false` | Scrim + centered `Spinner` over the panel; swallows taps, so footer and body cannot be activated while it is up. |
|
|
33
|
+
| `hideCloseButton` | `boolean` | `true` | When `false`, renders an explicit header close control wired to `onRequestClose`. |
|
|
33
34
|
| `size` | `sm \| md \| lg` | `md` | Closed union — panel max width, reusing the shared `sizes` primitive (384/448/512dp). |
|
|
34
35
|
| `testID` | `string` | — | Also seeds `${testID}-backdrop` and `${testID}-panel`. |
|
|
35
36
|
|
|
@@ -44,16 +45,12 @@ No `style`/`containerStyle` — see "Why no `style`" below.
|
|
|
44
45
|
- **2.3.3** — `resolveModalAnimationType(reducedMotion)` returns `"none"` instead of `"fade"` when
|
|
45
46
|
the OS reduce-motion setting is on.
|
|
46
47
|
- The title is `accessibilityRole="header"`, giving it heading semantics for screen readers.
|
|
47
|
-
- The backdrop is `accessible={false}` — a decorative dismiss target,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
`overFullScreen`, which has no native iOS swipe-to-dismiss gesture at all; `onAccessibilityEscape`
|
|
54
|
-
is the real, working native hook here, not a swipe.)
|
|
55
|
-
- No touch-target sizing needed: the only interactive surface is the full-screen backdrop, already
|
|
56
|
-
far larger than the 44dp floor.
|
|
48
|
+
- The backdrop is `accessible={false}` — a decorative dismiss target, never the *only* way to
|
|
49
|
+
close: Android hardware back fires `onRequestClose`, and `onAccessibilityEscape` on the panel
|
|
50
|
+
gives VoiceOver a real two-finger-Z dismiss. There is no iOS swipe-to-dismiss here —
|
|
51
|
+
`transparent` with no `presentationStyle` forces `overFullScreen`, which has no such gesture.
|
|
52
|
+
- Touch targets need no local sizing: the backdrop is full-screen, and the optional header close
|
|
53
|
+
control is a library `Button`, which already enforces the 44dp floor.
|
|
57
54
|
|
|
58
55
|
## Why no `style`
|
|
59
56
|
|
|
@@ -64,76 +61,46 @@ component spec omits `style` rather than including it as an unused escape hatch.
|
|
|
64
61
|
|
|
65
62
|
## Web portal mechanism (opt-in)
|
|
66
63
|
|
|
67
|
-
`react-native-web`'s
|
|
68
|
-
|
|
69
|
-
`
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
their own RN `<Modal>` directly (never this module's `Modal` component) and read the identical
|
|
75
|
-
mechanism below.
|
|
76
|
-
|
|
77
|
-
- **`ModalPortalContext`** — a `React.Context<unknown>`, default `null`. `unknown` because this
|
|
78
|
-
package has no `"dom"` lib entry (native has no DOM) — a `HTMLElement` type here wouldn't
|
|
79
|
-
compile. Internal; a consumer never reads it directly.
|
|
64
|
+
`react-native-web`'s `<Modal>` portals to `document.body` unconditionally with no `container` prop
|
|
65
|
+
to override it, which breaks containment inside a fixed-size preview frame
|
|
66
|
+
(`example/DeviceFrame.tsx`). `Select`, `MultiSelect` and `Menu` render their own RN `<Modal>`
|
|
67
|
+
directly (never this component) and read the identical mechanism.
|
|
68
|
+
|
|
69
|
+
- **`ModalPortalContext`** — `React.Context<unknown>`, default `null`. `unknown` because the
|
|
70
|
+
package has no `"dom"` lib entry, so `HTMLElement` would not compile. Internal.
|
|
80
71
|
- **`ModalPortalProvider`** — the public opt-in. `<ModalPortalProvider container={node}>` makes
|
|
81
|
-
every `Modal` / `AlertDialog` / `Select` / `MultiSelect` / `Menu` underneath portal into `node
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
`react-dom`) is what an actual web bundle resolves to instead. Metro never resolves
|
|
89
|
-
`react-dom` for a native bundle, so it's never part of that dependency graph — verified via
|
|
90
|
-
`expo export --platform ios` vs `--platform web`, grepping each bundle for a marker string
|
|
91
|
-
unique to each file. Jest's `react-native` preset has no `web` haste platform either, so every
|
|
92
|
-
test also resolves the base file by default — this is why `Modal.render.test.tsx` /
|
|
93
|
-
`Select.render.test.tsx` / `MultiSelect.render.test.tsx` / `Menu.render.test.tsx` mock
|
|
94
|
-
`renderWebPortal` directly to exercise the opt-in branch, and `renderWebPortal.web.test.ts` is the
|
|
95
|
-
one place the real `ReactDOM.createPortal` call is verified (mocking `react-dom` itself — no real
|
|
96
|
-
DOM under Jest).
|
|
72
|
+
every `Modal` / `AlertDialog` / `Select` / `MultiSelect` / `Menu` underneath portal into `node`.
|
|
73
|
+
Safe to mount on every platform; off web, `container` is never read.
|
|
74
|
+
- **`renderWebPortal.ts` / `.web.ts`** — a Metro platform-extension pair where the BASE file is the
|
|
75
|
+
no-op default and only the `.web` file imports `react-dom`, so `react-dom` never enters a native
|
|
76
|
+
bundle. Jest has no `web` haste platform either, so render tests mock `renderWebPortal` to reach
|
|
77
|
+
the opt-in branch; `renderWebPortal.web.test.ts` is the only place the real `createPortal` is
|
|
78
|
+
verified.
|
|
97
79
|
- **Backward compatibility (the hard bar):** `Platform.OS === "web" && portalContainer != null`
|
|
98
|
-
gates the whole mechanism
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
- **Known simplification:** the portal path skips RN `<Modal>`'s open/close animation entirely
|
|
105
|
-
(mounts/unmounts on `visible`/`open` directly) — `resolveModalAnimationType`/reduced-motion only
|
|
106
|
-
apply to the RNModal path. Acceptable: the goal is containment, not animation fidelity, and this
|
|
107
|
-
only affects a consumer that has opted in.
|
|
80
|
+
gates the whole mechanism, so native and provider-less web take the untouched RN `<Modal>` path.
|
|
81
|
+
No shared structural resolver was changed — the portal path only reproduces the sizing RN's
|
|
82
|
+
`<Modal>` otherwise supplies around the same backdrop+panel tree.
|
|
83
|
+
- **The portal path runs its own motion**, not RN `<Modal>`'s: the shared `enter` value drives the
|
|
84
|
+
panel and scrim, and `mounted` holds the tree through a timed exit rather than unmounting on
|
|
85
|
+
`visible`. `resolveModalAnimationType` applies only to the RNModal branch.
|
|
108
86
|
- `react-dom` is an **optional peer dependency** (`peerDependenciesMeta.react-dom.optional`) —
|
|
109
87
|
only needed by an app that actually renders for web; native-only consumers never install it.
|
|
110
88
|
|
|
111
89
|
### Keyboard — the portal branch has to supply its own
|
|
112
90
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
must stay unwired**: two Escape listeners and two competing traps on one dialog is a worse bug than
|
|
121
|
-
the one being fixed. Both hooks are no-ops on native by file resolution, so nothing changes there.
|
|
122
|
-
|
|
123
|
-
`AlertDialog`, `LimitReachedModal` and `ImageViewer` compose this component and inherit all of it —
|
|
124
|
-
none of them contains keyboard code, and each has a test asserting the inheritance.
|
|
91
|
+
Escape, Tab cycling and focus restore all come from `react-native-web`'s own `ModalContent` /
|
|
92
|
+
`ModalFocusTrap`, which the portal branch never renders. `Modal.tsx` therefore calls
|
|
93
|
+
`useDismissOnEscape` + `useFocusTrap` (`core/a11y/keyboard`, imported directly) gated on
|
|
94
|
+
`portalled && visible`. **The RNModal path must stay unwired** — two Escape listeners and two
|
|
95
|
+
competing traps is a worse bug than the one being fixed. Both hooks are native no-ops by file
|
|
96
|
+
resolution. `AlertDialog`, `LimitReachedModal` and `ImageViewer` compose this and inherit all of
|
|
97
|
+
it, each with a test asserting the inheritance.
|
|
125
98
|
|
|
126
99
|
## Patterns copied from Button / Select (the reference modules)
|
|
127
100
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
contract are unit-tested against real palettes, never eyeballed.
|
|
132
|
-
3. **RN's own `<Modal>`, not a hand-rolled portal** — `transparent` + backdrop `Pressable` +
|
|
133
|
-
`pointerEvents="box-none"` overlay, the same shape `Select`'s option list uses (converged on
|
|
134
|
-
independently — this module owns none of that code, built in parallel).
|
|
135
|
-
4. **Closed `size` union** reusing the shared `sizes` primitive (384/448/512dp) instead of
|
|
136
|
-
Modal-local numbers — `theme/tokens/primitives/sizes.ts` is documented for exactly this case.
|
|
101
|
+
Structure vs colour split (`createThemedVariants` for sizing, `RoleColors` inline); pure resolvers
|
|
102
|
+
in `Modal.variants.ts` unit-tested against real palettes; RN's own `<Modal>` rather than a
|
|
103
|
+
hand-rolled portal; a closed `size` union reusing the shared `sizes` primitive.
|
|
137
104
|
|
|
138
105
|
## Android edge-to-edge
|
|
139
106
|
|
|
@@ -145,31 +112,27 @@ solid white on open. Add both any time a new module renders its own RN `<Modal t
|
|
|
145
112
|
|
|
146
113
|
## Known gaps
|
|
147
114
|
|
|
148
|
-
- **No full SCREEN-READER trap.** iOS gets `accessibilityViewIsModal
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
to the element it's set on, not to arbitrary siblings elsewhere in the tree) — a full Android
|
|
152
|
-
reader trap needs the app root to cooperate. Out of scope for v1. (The web *keyboard* trap above
|
|
153
|
-
is a separate mechanism and is wired.)
|
|
115
|
+
- **No full SCREEN-READER trap on Android.** iOS gets `accessibilityViewIsModal`; Android has no
|
|
116
|
+
JS-level way to mark background siblings hidden from inside this component, so a reader trap
|
|
117
|
+
there needs the app root to cooperate. The web *keyboard* trap above is separate, and is wired.
|
|
154
118
|
- **The web keyboard trap only cycles Tab.** It does not pull focus back if focus leaves the panel
|
|
155
119
|
by a click outside or a programmatic `focus()` — that needs sentinel nodes at the panel's edges,
|
|
156
120
|
a component-level change nobody has needed yet. Inherited from `core/a11y/keyboard`.
|
|
157
121
|
- **No built-in scrolling.** The panel caps at `maxHeight: "92%"` but does not wrap `children` in a
|
|
158
122
|
`ScrollView` — forcing one risks nested-`VirtualizedList` warnings if a consumer's content is
|
|
159
123
|
already scrollable. Tall content is the consumer's own `ScrollView`/`FlatList` to add.
|
|
160
|
-
-
|
|
161
|
-
|
|
162
|
-
|
|
124
|
+
- **`isLoading` was visual-only before this release** — the spinner scrim rendered with
|
|
125
|
+
`pointerEvents: "none"`, so taps reached the footer underneath and a consumer could fire a submit
|
|
126
|
+
twice. A consumer pinned to an older version must still disable its own footer buttons.
|
|
163
127
|
|
|
164
128
|
## Performance
|
|
165
129
|
|
|
166
|
-
Both `Modal` and `ModalPortalProvider` are wrapped in `React.memo
|
|
167
|
-
|
|
168
|
-
## Modernization (v1.0.7)
|
|
130
|
+
Both `Modal` and `ModalPortalProvider` are wrapped in `React.memo`. Neither has a `.map()` list or
|
|
131
|
+
a memoizable child — `ModalPortalProvider` only passes `container`/`children` into a provider.
|
|
169
132
|
|
|
170
|
-
|
|
171
|
-
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
172
|
-
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
133
|
+
## Motion
|
|
173
134
|
|
|
174
|
-
|
|
175
|
-
|
|
135
|
+
One `enter` shared value drives panel slide+fade and scrim opacity together on both branches, so
|
|
136
|
+
they are a single gesture; `MODAL_BACKDROP` takes its alpha from `MOTION_TRANSFORM.scrimOpacity`.
|
|
137
|
+
The inner content layer additionally carries `FadeInDown`/`FadeOut`/`LinearTransition`, each with
|
|
138
|
+
`ReduceMotion.System`.
|
|
@@ -34,14 +34,18 @@
|
|
|
34
34
|
*/
|
|
35
35
|
|
|
36
36
|
import { memo, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
37
|
-
import {
|
|
37
|
+
import { Modal as RNModal, Platform, Pressable, StyleSheet, View } from "react-native";
|
|
38
|
+
import Reanimated, { FadeInDown, FadeOut, interpolate, LinearTransition, ReduceMotion, useAnimatedStyle } from "react-native-reanimated";
|
|
38
39
|
import { useDismissOnEscape, useFocusTrap } from "../../core/a11y/keyboard";
|
|
39
|
-
import {
|
|
40
|
+
import { renderNodeSlot } from "../../core/slot/index.js";
|
|
41
|
+
import { MOTION_TRANSFORM, useMotion, useAnimatedValue } from "../../core/motion/index.js";
|
|
40
42
|
import { withAlpha } from "../../core/gradient/index.js";
|
|
41
43
|
import { elevation, floatingBackground, floatingSurfaceStyle, highlight } from "../../theme/platform/index.js";
|
|
42
44
|
import { elevation as elevationTokens } from "../../theme/tokens/primitives/index.js";
|
|
43
45
|
import { useTheme } from "../../theme/hooks.js";
|
|
44
|
-
import {
|
|
46
|
+
import { Button } from "../button/index.js";
|
|
47
|
+
import { Spinner } from "../spinner/index.js";
|
|
48
|
+
import { Heading, Text } from "../text/index.js";
|
|
45
49
|
import { ModalPortalContext } from "./ModalPortalContext.js";
|
|
46
50
|
import { renderWebPortal } from "./renderWebPortal";
|
|
47
51
|
import { modalOverlayStructure, modalPanelStructure, resolveModalAnimationType } from "./Modal.variants.js";
|
|
@@ -53,7 +57,11 @@ export const Modal = /*#__PURE__*/memo(function Modal({
|
|
|
53
57
|
visible,
|
|
54
58
|
onRequestClose,
|
|
55
59
|
title,
|
|
60
|
+
subtitle,
|
|
56
61
|
children,
|
|
62
|
+
footer,
|
|
63
|
+
isLoading = false,
|
|
64
|
+
hideCloseButton = true,
|
|
57
65
|
size = "md",
|
|
58
66
|
testID
|
|
59
67
|
}) {
|
|
@@ -72,6 +80,7 @@ export const Modal = /*#__PURE__*/memo(function Modal({
|
|
|
72
80
|
mountedRef.current = mounted;
|
|
73
81
|
const enter = useAnimatedValue(visible ? 1 : 0);
|
|
74
82
|
const running = useRef(null);
|
|
83
|
+
const offsetY = motion.transform.offsetY;
|
|
75
84
|
const unmountTimer = useRef(null);
|
|
76
85
|
useEffect(() => {
|
|
77
86
|
const clearUnmount = () => {
|
|
@@ -85,10 +94,10 @@ export const Modal = /*#__PURE__*/memo(function Modal({
|
|
|
85
94
|
if (visible) {
|
|
86
95
|
setMounted(true);
|
|
87
96
|
if (!motion.enabled) {
|
|
88
|
-
enter.
|
|
97
|
+
enter.value = 1;
|
|
89
98
|
return;
|
|
90
99
|
}
|
|
91
|
-
enter.
|
|
100
|
+
enter.value = 0;
|
|
92
101
|
running.current = motion.timing(enter, 1, {
|
|
93
102
|
easing: "decelerate"
|
|
94
103
|
});
|
|
@@ -98,7 +107,7 @@ export const Modal = /*#__PURE__*/memo(function Modal({
|
|
|
98
107
|
if (!mountedRef.current) return;
|
|
99
108
|
const exitMs = motion.duration("fast");
|
|
100
109
|
if (!motion.enabled || exitMs === 0) {
|
|
101
|
-
enter.
|
|
110
|
+
enter.value = 0;
|
|
102
111
|
setMounted(false);
|
|
103
112
|
return;
|
|
104
113
|
}
|
|
@@ -126,26 +135,57 @@ export const Modal = /*#__PURE__*/memo(function Modal({
|
|
|
126
135
|
...floatingSurfaceStyle(theme, "lg")
|
|
127
136
|
};
|
|
128
137
|
}, [theme]);
|
|
129
|
-
const
|
|
138
|
+
const panelStaticStyle = useMemo(() => [modalPanelStructure(theme, {
|
|
130
139
|
size
|
|
131
|
-
}), floatingStyle,
|
|
132
|
-
|
|
140
|
+
}), floatingStyle], [theme, size, floatingStyle]);
|
|
141
|
+
const panelAnimatedStyle = useAnimatedStyle(() => ({
|
|
142
|
+
opacity: enter.value,
|
|
133
143
|
transform: [{
|
|
134
|
-
translateY: enter.
|
|
135
|
-
inputRange: [0, 1],
|
|
136
|
-
outputRange: [motion.transform.offsetY, 0]
|
|
137
|
-
})
|
|
144
|
+
translateY: interpolate(enter.value, [0, 1], [offsetY, 0])
|
|
138
145
|
}]
|
|
139
|
-
}
|
|
140
|
-
const
|
|
141
|
-
opacity: enter
|
|
142
|
-
}
|
|
143
|
-
const
|
|
144
|
-
|
|
146
|
+
}));
|
|
147
|
+
const backdropAnimatedStyle = useAnimatedStyle(() => ({
|
|
148
|
+
opacity: enter.value
|
|
149
|
+
}));
|
|
150
|
+
const panelSlotTextStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
151
|
+
color: theme.colors.fg.default,
|
|
152
|
+
fontSize: theme.fontSizes.md
|
|
153
|
+
}], [theme]);
|
|
154
|
+
const titleBlock = title !== undefined || !hideCloseButton ? /*#__PURE__*/_jsxs(View, {
|
|
155
|
+
style: {
|
|
156
|
+
flexDirection: "row",
|
|
157
|
+
alignItems: "flex-start",
|
|
158
|
+
justifyContent: "space-between",
|
|
159
|
+
gap: theme.space[2],
|
|
160
|
+
marginBottom: theme.space[3]
|
|
161
|
+
},
|
|
162
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
163
|
+
style: {
|
|
164
|
+
flex: 1,
|
|
165
|
+
gap: theme.space[1]
|
|
166
|
+
},
|
|
167
|
+
children: [title !== undefined ? /*#__PURE__*/_jsx(Heading, {
|
|
168
|
+
variant: "h3",
|
|
169
|
+
children: title
|
|
170
|
+
}) : null, subtitle !== undefined ? /*#__PURE__*/_jsx(Text, {
|
|
171
|
+
variant: "body-sm",
|
|
172
|
+
color: "muted",
|
|
173
|
+
children: subtitle
|
|
174
|
+
}) : null]
|
|
175
|
+
}), !hideCloseButton ? /*#__PURE__*/_jsx(Button, {
|
|
176
|
+
variant: "ghost",
|
|
177
|
+
icon: "x",
|
|
178
|
+
accessibilityLabel: "Close",
|
|
179
|
+
onPress: onRequestClose,
|
|
180
|
+
testID: testID ? `${testID}-close` : undefined
|
|
181
|
+
}) : null]
|
|
182
|
+
}) : subtitle !== undefined ? /*#__PURE__*/_jsx(Text, {
|
|
183
|
+
variant: "body-sm",
|
|
184
|
+
color: "muted",
|
|
145
185
|
style: {
|
|
146
186
|
marginBottom: theme.space[3]
|
|
147
187
|
},
|
|
148
|
-
children:
|
|
188
|
+
children: subtitle
|
|
149
189
|
}) : null;
|
|
150
190
|
const overlay = /*#__PURE__*/_jsxs(_Fragment, {
|
|
151
191
|
children: [/*#__PURE__*/_jsx(Pressable, {
|
|
@@ -154,20 +194,48 @@ export const Modal = /*#__PURE__*/memo(function Modal({
|
|
|
154
194
|
tabIndex: -1,
|
|
155
195
|
style: StyleSheet.absoluteFill,
|
|
156
196
|
onPress: onRequestClose,
|
|
157
|
-
children: /*#__PURE__*/_jsx(
|
|
158
|
-
|
|
159
|
-
|
|
197
|
+
children: /*#__PURE__*/_jsx(Reanimated.View, {
|
|
198
|
+
style: [styles.backdrop, backdropAnimatedStyle, {
|
|
199
|
+
pointerEvents: 'none'
|
|
200
|
+
}]
|
|
160
201
|
})
|
|
161
202
|
}), /*#__PURE__*/_jsx(View, {
|
|
162
|
-
style: modalOverlayStructure(theme),
|
|
163
|
-
|
|
164
|
-
|
|
203
|
+
style: [modalOverlayStructure(theme), {
|
|
204
|
+
pointerEvents: 'box-none'
|
|
205
|
+
}],
|
|
206
|
+
children: /*#__PURE__*/_jsx(Reanimated.View, {
|
|
165
207
|
ref: panelRef,
|
|
166
208
|
testID: testID ? `${testID}-panel` : undefined,
|
|
167
209
|
accessibilityViewIsModal: true,
|
|
168
210
|
onAccessibilityEscape: onRequestClose,
|
|
169
|
-
style:
|
|
170
|
-
children:
|
|
211
|
+
style: [panelStaticStyle, panelAnimatedStyle],
|
|
212
|
+
children: /*#__PURE__*/_jsxs(Reanimated.View, {
|
|
213
|
+
entering: FadeInDown.springify().reduceMotion(ReduceMotion.System),
|
|
214
|
+
exiting: FadeOut.reduceMotion(ReduceMotion.System),
|
|
215
|
+
layout: LinearTransition.reduceMotion(ReduceMotion.System),
|
|
216
|
+
style: {
|
|
217
|
+
position: "relative"
|
|
218
|
+
},
|
|
219
|
+
children: [titleBlock, renderNodeSlot(children, panelSlotTextStyle), footer !== undefined ? /*#__PURE__*/_jsx(View, {
|
|
220
|
+
style: {
|
|
221
|
+
marginTop: theme.space[4],
|
|
222
|
+
gap: theme.space[2]
|
|
223
|
+
},
|
|
224
|
+
children: renderNodeSlot(footer, panelSlotTextStyle)
|
|
225
|
+
}) : null, isLoading ? /*#__PURE__*/_jsx(View, {
|
|
226
|
+
testID: testID ? `${testID}-loading-overlay` : undefined,
|
|
227
|
+
style: {
|
|
228
|
+
...StyleSheet.absoluteFill,
|
|
229
|
+
alignItems: "center",
|
|
230
|
+
justifyContent: "center",
|
|
231
|
+
backgroundColor: withAlpha(theme.colors.bg.surface, 0.72),
|
|
232
|
+
pointerEvents: 'auto'
|
|
233
|
+
},
|
|
234
|
+
children: /*#__PURE__*/_jsx(Spinner, {
|
|
235
|
+
testID: testID ? `${testID}-loading` : undefined
|
|
236
|
+
})
|
|
237
|
+
}) : null]
|
|
238
|
+
})
|
|
171
239
|
})
|
|
172
240
|
})]
|
|
173
241
|
});
|
|
@@ -179,8 +247,9 @@ export const Modal = /*#__PURE__*/memo(function Modal({
|
|
|
179
247
|
// still uses untouched) so the same tree fills `portalContainer`'s bounds instead of the
|
|
180
248
|
// viewport.
|
|
181
249
|
return renderWebPortal(/*#__PURE__*/_jsx(View, {
|
|
182
|
-
style: StyleSheet.absoluteFill,
|
|
183
|
-
|
|
250
|
+
style: [StyleSheet.absoluteFill, {
|
|
251
|
+
pointerEvents: 'box-none'
|
|
252
|
+
}],
|
|
184
253
|
children: overlay
|
|
185
254
|
}), portalContainer);
|
|
186
255
|
}
|
|
@@ -1,25 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
* Web-only escape hatch for where Modal (and, via this same context, Select/Menu's option/action
|
|
5
|
-
* sheets) portal their overlay content on `react-native-web`.
|
|
6
|
-
*
|
|
7
|
-
* `react-native-web`'s own `<Modal>` unconditionally portals to `document.body`
|
|
8
|
-
* (`react-native-web/src/exports/Modal/ModalPortal.js` — `document.body.appendChild(...)`, then
|
|
9
|
-
* `createPortal(children, elementRef.current)`; no `container`/`portalHost` prop exists to
|
|
10
|
-
* override it, verified against the installed 0.21.2 source). That is correct for a full app, but
|
|
11
|
-
* breaks visual containment inside a fixed-size preview frame (see `example/DeviceFrame.tsx`): the
|
|
12
|
-
* overlay renders full-browser-viewport instead of clipped to the frame.
|
|
13
|
-
*
|
|
14
|
-
* Defaults to `null` — every existing consumer, native or web, reads `null` here and keeps
|
|
15
|
-
* rendering through RN's own `<Modal>` exactly as before this context existed. A consumer opts in
|
|
16
|
-
* via `ModalPortalProvider` (`./ModalPortalProvider`).
|
|
17
|
-
*
|
|
18
|
-
* Typed `unknown`, not a DOM type: this package has no `"dom"` lib entry (native has no DOM), so a
|
|
19
|
-
* `HTMLElement`/`Element` annotation here would fail to compile. On web the value must be a real
|
|
20
|
-
* DOM node capable of receiving `ReactDOM.createPortal` — `renderWebPortal.web.ts` is the one place
|
|
21
|
-
* that actually dereferences it, and does the environment-appropriate cast there.
|
|
22
|
-
*/
|
|
23
|
-
import { createContext } from "react";
|
|
24
|
-
export const ModalPortalContext = /*#__PURE__*/createContext(null);
|
|
3
|
+
export { ModalPortalContext } from "../../core/overlay/ModalPortalContext.js";
|
|
25
4
|
//# sourceMappingURL=ModalPortalContext.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { memo } from "react";
|
|
4
|
-
import { ModalPortalContext } from "
|
|
4
|
+
import { ModalPortalContext } from "../../core/overlay/ModalPortalContext.js";
|
|
5
5
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
6
|
/**
|
|
7
7
|
* Opts a subtree into containing its Modal / AlertDialog / Select / Menu overlays inside
|
|
@@ -1,18 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
* Native/default counterpart of `renderWebPortal.web.ts`. There is no DOM to portal into outside a
|
|
5
|
-
* web environment, so this always returns `null` — the caller (Modal/Select/Menu) then falls back
|
|
6
|
-
* to rendering through RN's own `<Modal>`, exactly as it did before this mechanism existed.
|
|
7
|
-
*
|
|
8
|
-
* Exists so the bare specifier `import { renderWebPortal } from "./renderWebPortal"` has a
|
|
9
|
-
* same-shaped default to resolve to on every platform except an actual web bundle: Metro's
|
|
10
|
-
* platform-extension resolution picks `renderWebPortal.web.ts` only when bundling for web, and
|
|
11
|
-
* falls back to THIS file everywhere else (iOS, Android, and Jest — Jest's `react-native` preset
|
|
12
|
-
* haste config has no `web` platform, so it also always resolves here). `react-dom` therefore never
|
|
13
|
-
* enters a native dependency graph.
|
|
14
|
-
*/
|
|
15
|
-
export function renderWebPortal(_children, _container) {
|
|
16
|
-
return null;
|
|
17
|
-
}
|
|
3
|
+
export { renderWebPortal } from "../../core/overlay/renderWebPortal";
|
|
18
4
|
//# sourceMappingURL=renderWebPortal.js.map
|
|
@@ -1,24 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Web implementation: portals `children` into `container` via `ReactDOM.createPortal`, bypassing
|
|
6
|
-
* `react-native-web`'s own `<Modal>` (which always portals to `document.body` — see
|
|
7
|
-
* `ModalPortalContext.ts`). Returns `null` when `container` is nullish so the caller falls back to
|
|
8
|
-
* the default `<Modal>` path.
|
|
9
|
-
*
|
|
10
|
-
* `container` is cast from `unknown` to `Element` here — the one place this mechanism's `unknown`
|
|
11
|
-
* portal-container contract gets a concrete DOM type, since only this file (Metro only ever
|
|
12
|
-
* resolves it for an actual web bundle — see `renderWebPortal.ts`) has a real DOM environment to
|
|
13
|
-
* assume. A caller that passes something that isn't really a DOM node fails at `createPortal`'s own
|
|
14
|
-
* runtime, same as any other incorrect `ReactDOM.createPortal` call would.
|
|
15
|
-
*
|
|
16
|
-
* This module's exported signature stays identical to `renderWebPortal.ts`'s (`ReactNode`,
|
|
17
|
-
* `unknown` — never a `react-dom` type), so a consumer never needs `@types/react-dom` just because
|
|
18
|
-
* they import `pixelize-native-library/modal`; that type dependency stays internal to this one file.
|
|
19
|
-
*/
|
|
20
|
-
export function renderWebPortal(children, container) {
|
|
21
|
-
if (container == null) return null;
|
|
22
|
-
return /*#__PURE__*/createPortal(children, container);
|
|
23
|
-
}
|
|
3
|
+
export { renderWebPortal } from "../../core/overlay/renderWebPortal.web.js";
|
|
24
4
|
//# sourceMappingURL=renderWebPortal.web.js.map
|
|
@@ -73,5 +73,3 @@ Renders `null` when the count is ≤0 and there is no `triggerText` — nothing
|
|
|
73
73
|
|
|
74
74
|
- Rows are display-only — no press/selection. A selectable overflow list would be a different
|
|
75
75
|
component (`Select`/`Menu`), not a prop added here.
|
|
76
|
-
|
|
77
|
-
- **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
|
|
@@ -5,14 +5,16 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { memo, useCallback, useMemo, useState } from "react";
|
|
8
|
-
import {
|
|
8
|
+
import { Modal, Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
9
|
+
import Reanimated from "react-native-reanimated";
|
|
9
10
|
import { VirtualList } from "../../core/list/index.js";
|
|
10
|
-
import {
|
|
11
|
+
import { withAlpha } from "../../core/gradient/index.js";
|
|
12
|
+
import { MOTION_TRANSFORM, useEnterExit, usePressMotion } from "../../core/motion/index.js";
|
|
11
13
|
import { useTheme } from "../../theme/hooks.js";
|
|
12
14
|
import { rippleColor } from "../../theme/platform/stateLayer.native.js";
|
|
13
15
|
import { moreItemsBadgeStructure, moreItemsDotStructure, moreItemsOverlayStructure, moreItemsRowStructure, moreItemsSheetStructure, moreItemsTriggerContentStructure, moreItemsTriggerStructure, resolveMoreItemsCount, resolveMoreItemsDotColor } from "./MoreItems.variants.js";
|
|
14
16
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
15
|
-
const BACKDROP = "#
|
|
17
|
+
const BACKDROP = withAlpha("#000000", MOTION_TRANSFORM.scrimOpacity);
|
|
16
18
|
const MoreItemsRow = /*#__PURE__*/memo(function MoreItemsRow({
|
|
17
19
|
item,
|
|
18
20
|
theme,
|
|
@@ -109,7 +111,7 @@ export const MoreItems = /*#__PURE__*/memo(function MoreItems({
|
|
|
109
111
|
onPressOut: press.onPressOut,
|
|
110
112
|
android_ripple: androidRipple,
|
|
111
113
|
style: triggerStyle,
|
|
112
|
-
children: /*#__PURE__*/_jsxs(
|
|
114
|
+
children: /*#__PURE__*/_jsxs(Reanimated.View, {
|
|
113
115
|
style: [triggerContentStructure, press.style],
|
|
114
116
|
children: [triggerText !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
115
117
|
numberOfLines: 1,
|
|
@@ -137,9 +139,10 @@ export const MoreItems = /*#__PURE__*/memo(function MoreItems({
|
|
|
137
139
|
style: styles.backdrop
|
|
138
140
|
})
|
|
139
141
|
}), /*#__PURE__*/_jsx(View, {
|
|
140
|
-
style: overlayStructure,
|
|
141
|
-
|
|
142
|
-
|
|
142
|
+
style: [overlayStructure, {
|
|
143
|
+
pointerEvents: 'box-none'
|
|
144
|
+
}],
|
|
145
|
+
children: /*#__PURE__*/_jsx(Reanimated.View, {
|
|
143
146
|
testID: testID ? `${testID}-sheet` : undefined
|
|
144
147
|
// The modal-semantics pair every other overlay in this library gives its panel, plus a
|
|
145
148
|
// name: the sheet had neither, so VoiceOver could wander into the row behind it.
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { MIN_TOUCH_TARGET } from "../../core/a11y/touchTarget.js";
|
|
3
4
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
4
5
|
import { resolveBadgeTone } from "../badge/Badge.variants.js";
|
|
6
|
+
export { MIN_TOUCH_TARGET };
|
|
5
7
|
export function resolveMoreItemsCount(moreCount, itemsLength) {
|
|
6
8
|
return moreCount ?? itemsLength;
|
|
7
9
|
}
|
|
@@ -18,7 +20,6 @@ export const MORE_ITEMS_SHEET_MAX_HEIGHT = 280;
|
|
|
18
20
|
* neighbouring target to overlap, and a slop-expanded rectangle would still leave a ~22dp visual
|
|
19
21
|
* control that misses under an unsteady finger.
|
|
20
22
|
*/
|
|
21
|
-
export const MIN_TOUCH_TARGET = 44;
|
|
22
23
|
export const moreItemsTriggerStructure = createThemedVariants(_theme => ({
|
|
23
24
|
base: {
|
|
24
25
|
maxWidth: 250,
|