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
|
@@ -35,6 +35,8 @@ context + a stateless helper with no React-tree footprint of its own, not a depe
|
|
|
35
35
|
| `onValuesChange` | `(values: string[]) => void` | — | Required. Fired immediately on row press with the next array — no separate Apply/Cancel. |
|
|
36
36
|
| `placeholder` | `string` | — | Shown when `values` is empty. |
|
|
37
37
|
| `label` | `string` | — | Field label above the trigger; also folded into its accessible name. |
|
|
38
|
+
| `status` | `InputStatus` (`Input.variants`) | `default` | `"error"` swaps the trigger border to `status.danger.solid` at `2`dp and sets `aria-invalid`. |
|
|
39
|
+
| `errorText` | `string` | — | Rendered under the trigger, only while `status === "error"`. |
|
|
38
40
|
| `disabled` | `boolean` | `false` | Blocks opening the sheet; dimmed like Select's disabled state. |
|
|
39
41
|
| `size` | `sm \| md \| lg` | `md` | 32 / 40 / 48 dp; short sizes reach 44 via `hitSlop`. |
|
|
40
42
|
| `containerStyle` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
|
|
@@ -67,6 +69,8 @@ caller-configurable.
|
|
|
67
69
|
- Each option row is `accessibilityRole="checkbox"` with flat `aria-checked`, toggled immediately on
|
|
68
70
|
press — the indicator box (outline when unchecked, `accent.solid` fill + "check" glyph when
|
|
69
71
|
checked) is the sighted echo of the same state, never the only signal.
|
|
72
|
+
- **Android** — the trigger (gated `!disabled`), the header close button and every option row carry
|
|
73
|
+
`android_ripple` (`borderless: false`); trigger and close button clip it with `overflow: "hidden"`.
|
|
70
74
|
- The header close button is `accessibilityRole="button"` with a fixed `accessibilityLabel="Close"`
|
|
71
75
|
(icon-only, hardcoded — not a caller-configurable slot); its icon shares the row label's colour
|
|
72
76
|
pairing, already measured ≥ 3:1 (in practice ≥ 4.5:1) on the sheet fill.
|
|
@@ -84,8 +88,7 @@ caller-configurable.
|
|
|
84
88
|
2. **Pure, testable resolvers** in `MultiSelect.variants.ts` — the WCAG + behaviour contract is
|
|
85
89
|
unit-tested against real palettes, never eyeballed.
|
|
86
90
|
3. **Row indicator colours mirror `Checkbox`'s role mapping** (`border.interactive` /
|
|
87
|
-
`accent.solid` / `accent.onSolid`) — duplicated locally
|
|
88
|
-
across `src/modules/*`.
|
|
91
|
+
`accent.solid` / `accent.onSolid`) — duplicated locally rather than imported from `checkbox/`.
|
|
89
92
|
4. **Closed-ish surface** — `size` is a closed union; `options`/`values`/`onValuesChange` are the
|
|
90
93
|
data contract a multi-select inherently needs, not a colour escape hatch. `containerStyle` is the
|
|
91
94
|
one `style` exception (a component wrapping a native primitive's outer box), not a second `style` prop.
|
|
@@ -160,12 +163,3 @@ Via `core/motion` only — `opacity`/`transform`, native driver, all reduce-moti
|
|
|
160
163
|
why `useEnterExit`'s `mounted` gate was dropped; `Select`/`Combobox` use the identical gate.
|
|
161
164
|
- No chip/token UI on the trigger, so there is nothing to animate there (see Known gaps).
|
|
162
165
|
|
|
163
|
-
## Modernization (v1.0.7)
|
|
164
|
-
|
|
165
|
-
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
166
|
-
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
167
|
-
|
|
168
|
-
- **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
|
|
169
|
-
- **Round 5 (Android parity)** — `android_ripple` (`borderless: false`) added to the trigger (gated
|
|
170
|
-
`!disabled`), the header close button, and each option row. The trigger and close button also
|
|
171
|
-
gained `overflow: "hidden"` so their ripple clips to their shape.
|
|
@@ -5,19 +5,21 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
8
|
-
import {
|
|
8
|
+
import { Modal, Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
9
|
+
import Reanimated, { useAnimatedStyle } from "react-native-reanimated";
|
|
9
10
|
import { focusItemProps, useDismissOnEscape, useFocusTrap, useRovingKeys, useSpaceActivation } from "../../core/a11y/keyboard";
|
|
10
11
|
import { Icon } from "../../core/icon/index.js";
|
|
11
12
|
import { VirtualList } from "../../core/list/index.js";
|
|
12
|
-
import {
|
|
13
|
+
import { renderNodeSlot } from "../../core/slot/index.js";
|
|
14
|
+
import { withAlpha } from "../../core/gradient/index.js";
|
|
15
|
+
import { MOTION_TRANSFORM, useMotion, useAnimatedValue, usePressMotion, useReveal } from "../../core/motion/index.js";
|
|
13
16
|
import { rippleColor } from "../../theme/platform/stateLayer.native.js";
|
|
14
17
|
import { useTheme } from "../../theme/hooks.js";
|
|
15
|
-
import { ModalPortalContext } from "
|
|
16
|
-
import { renderWebPortal } from "../modal/renderWebPortal";
|
|
18
|
+
import { ModalPortalContext, renderWebPortal } from "../../core/overlay/index.js";
|
|
17
19
|
import { MULTI_SELECT_CLOSE_BUTTON_HIT_SLOP, MULTI_SELECT_CLOSE_ICON_SIZE, MULTI_SELECT_LISTBOX_ROLE, MULTI_SELECT_ROW_ICON_SIZE, MULTI_SELECT_ROW_MIN_HEIGHT, MULTI_SELECT_SIZES, multiSelectCloseButtonStructure, multiSelectHeaderStructure, multiSelectOverlayStructure, multiSelectRowIndicatorStructure, multiSelectRowLeadingStructure, multiSelectRowStructure, multiSelectSheetStructure, multiSelectTriggerStructure, resolveMultiSelectAccessibility, resolveMultiSelectRowColors, resolveMultiSelectTriggerColors } from "./MultiSelect.variants.js";
|
|
18
20
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
19
21
|
const ICON_STROKE = 2;
|
|
20
|
-
const BACKDROP_SCRIM = "#
|
|
22
|
+
const BACKDROP_SCRIM = withAlpha("#000000", MOTION_TRANSFORM.scrimOpacity);
|
|
21
23
|
const MultiSelectOptionRow = /*#__PURE__*/memo(function MultiSelectOptionRow({
|
|
22
24
|
option,
|
|
23
25
|
checked,
|
|
@@ -42,19 +44,18 @@ const MultiSelectOptionRow = /*#__PURE__*/memo(function MultiSelectOptionRow({
|
|
|
42
44
|
|
|
43
45
|
// `checkbox` is not `button`, so RNW never presses on Space — see `core/a11y/keyboard.web.ts`.
|
|
44
46
|
useSpaceActivation(rowRef, handlePress);
|
|
45
|
-
const checkOpacity =
|
|
47
|
+
const checkOpacity = useAnimatedValue(checked ? 1 : 0);
|
|
46
48
|
const skipFirst = useRef(true);
|
|
47
49
|
const running = useRef(null);
|
|
48
50
|
useEffect(() => {
|
|
49
51
|
running.current?.stop();
|
|
50
|
-
// A row scrolled into view already-checked must snap, never fade.
|
|
51
52
|
if (skipFirst.current) {
|
|
52
53
|
skipFirst.current = false;
|
|
53
|
-
checkOpacity.
|
|
54
|
+
checkOpacity.value = checked ? 1 : 0;
|
|
54
55
|
return;
|
|
55
56
|
}
|
|
56
57
|
if (!motion.enabled) {
|
|
57
|
-
checkOpacity.
|
|
58
|
+
checkOpacity.value = checked ? 1 : 0;
|
|
58
59
|
return;
|
|
59
60
|
}
|
|
60
61
|
running.current = motion.timing(checkOpacity, checked ? 1 : 0, {
|
|
@@ -64,6 +65,9 @@ const MultiSelectOptionRow = /*#__PURE__*/memo(function MultiSelectOptionRow({
|
|
|
64
65
|
return () => running.current?.stop();
|
|
65
66
|
}, [checked, motion, checkOpacity]);
|
|
66
67
|
useEffect(() => () => running.current?.stop(), []);
|
|
68
|
+
const checkStyle = useAnimatedStyle(() => ({
|
|
69
|
+
opacity: checkOpacity.value
|
|
70
|
+
}));
|
|
67
71
|
const rowStructure = useMemo(() => multiSelectRowStructure(theme), [theme]);
|
|
68
72
|
const indicatorStructure = useMemo(() => multiSelectRowIndicatorStructure(theme), [theme]);
|
|
69
73
|
const leadingStructure = useMemo(() => multiSelectRowLeadingStructure(theme), [theme]);
|
|
@@ -96,16 +100,14 @@ const MultiSelectOptionRow = /*#__PURE__*/memo(function MultiSelectOptionRow({
|
|
|
96
100
|
onPressOut: press.onPressOut,
|
|
97
101
|
android_ripple: androidRipple,
|
|
98
102
|
style: rowStyle,
|
|
99
|
-
children: /*#__PURE__*/_jsxs(
|
|
103
|
+
children: /*#__PURE__*/_jsxs(Reanimated.View, {
|
|
100
104
|
testID: testID ? `${testID}-option-${option.value}-content` : undefined,
|
|
101
105
|
style: [rowStructure, press.style],
|
|
102
106
|
children: [/*#__PURE__*/_jsx(View, {
|
|
103
107
|
style: indicatorStyle,
|
|
104
|
-
children: checked && /*#__PURE__*/_jsx(
|
|
108
|
+
children: checked && /*#__PURE__*/_jsx(Reanimated.View, {
|
|
105
109
|
testID: testID ? `${testID}-option-${option.value}-check` : undefined,
|
|
106
|
-
style:
|
|
107
|
-
opacity: checkOpacity
|
|
108
|
-
},
|
|
110
|
+
style: checkStyle,
|
|
109
111
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
110
112
|
name: "check",
|
|
111
113
|
size: MULTI_SELECT_ROW_ICON_SIZE,
|
|
@@ -115,7 +117,7 @@ const MultiSelectOptionRow = /*#__PURE__*/memo(function MultiSelectOptionRow({
|
|
|
115
117
|
})
|
|
116
118
|
}), option.leading !== undefined && /*#__PURE__*/_jsx(View, {
|
|
117
119
|
style: leadingStructure,
|
|
118
|
-
children: option.leading
|
|
120
|
+
children: renderNodeSlot(option.leading, labelStyle)
|
|
119
121
|
}), /*#__PURE__*/_jsx(Text, {
|
|
120
122
|
numberOfLines: 1,
|
|
121
123
|
style: labelStyle,
|
|
@@ -130,6 +132,8 @@ export const MultiSelect = /*#__PURE__*/memo(function MultiSelect({
|
|
|
130
132
|
onValuesChange,
|
|
131
133
|
placeholder,
|
|
132
134
|
label,
|
|
135
|
+
status = "default",
|
|
136
|
+
errorText,
|
|
133
137
|
disabled = false,
|
|
134
138
|
size = "md",
|
|
135
139
|
containerStyle,
|
|
@@ -209,10 +213,11 @@ export const MultiSelect = /*#__PURE__*/memo(function MultiSelect({
|
|
|
209
213
|
size
|
|
210
214
|
}), {
|
|
211
215
|
backgroundColor: triggerColors.background,
|
|
212
|
-
borderColor: triggerColors.border
|
|
216
|
+
borderColor: status === "error" ? theme.colors.status.danger.solid : triggerColors.border,
|
|
217
|
+
borderWidth: status === "error" ? 2 : theme.borderWidths.thin
|
|
213
218
|
}, {
|
|
214
219
|
overflow: "hidden"
|
|
215
|
-
}, disabled && styles.dimmed], [theme, size, triggerColors, disabled]);
|
|
220
|
+
}, disabled && styles.dimmed], [theme, size, triggerColors, disabled, status]);
|
|
216
221
|
const triggerRipple = useMemo(() => Platform.OS === "android" && !disabled ? {
|
|
217
222
|
color: rippleColor(theme.mode),
|
|
218
223
|
borderless: false
|
|
@@ -247,9 +252,10 @@ export const MultiSelect = /*#__PURE__*/memo(function MultiSelect({
|
|
|
247
252
|
style: styles.backdrop,
|
|
248
253
|
onPress: closeMenu
|
|
249
254
|
}), /*#__PURE__*/_jsx(View, {
|
|
250
|
-
style: overlayStructure,
|
|
251
|
-
|
|
252
|
-
|
|
255
|
+
style: [overlayStructure, {
|
|
256
|
+
pointerEvents: 'box-none'
|
|
257
|
+
}],
|
|
258
|
+
children: /*#__PURE__*/_jsxs(Reanimated.View, {
|
|
253
259
|
ref: sheetRef,
|
|
254
260
|
style: [sheetStyle, reveal.style],
|
|
255
261
|
children: [/*#__PURE__*/_jsx(View, {
|
|
@@ -280,8 +286,9 @@ export const MultiSelect = /*#__PURE__*/memo(function MultiSelect({
|
|
|
280
286
|
})]
|
|
281
287
|
}) : null;
|
|
282
288
|
const menu = Platform.OS === "web" && portalContainer != null ? open ? renderWebPortal(/*#__PURE__*/_jsx(View, {
|
|
283
|
-
style: StyleSheet.absoluteFill,
|
|
284
|
-
|
|
289
|
+
style: [StyleSheet.absoluteFill, {
|
|
290
|
+
pointerEvents: 'box-none'
|
|
291
|
+
}],
|
|
285
292
|
children: sheet
|
|
286
293
|
}), portalContainer) : null : /*#__PURE__*/_jsx(Modal, {
|
|
287
294
|
visible: open,
|
|
@@ -302,6 +309,7 @@ export const MultiSelect = /*#__PURE__*/memo(function MultiSelect({
|
|
|
302
309
|
accessibilityRole: a11y.accessibilityRole,
|
|
303
310
|
accessibilityLabel: accessibleName,
|
|
304
311
|
"aria-disabled": a11y["aria-disabled"],
|
|
312
|
+
"aria-invalid": status === "error" ? true : undefined,
|
|
305
313
|
"aria-expanded": a11y["aria-expanded"],
|
|
306
314
|
disabled: a11y.disabled,
|
|
307
315
|
onPress: openMenu,
|
|
@@ -320,7 +328,14 @@ export const MultiSelect = /*#__PURE__*/memo(function MultiSelect({
|
|
|
320
328
|
color: triggerColors.icon,
|
|
321
329
|
strokeWidth: ICON_STROKE
|
|
322
330
|
})]
|
|
323
|
-
}),
|
|
331
|
+
}), status === "error" && errorText ? /*#__PURE__*/_jsx(Text, {
|
|
332
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
333
|
+
fontSize: theme.fontSizes.xs,
|
|
334
|
+
color: theme.colors.status.danger.solid,
|
|
335
|
+
marginTop: theme.space[1]
|
|
336
|
+
}],
|
|
337
|
+
children: errorText
|
|
338
|
+
}) : null, menu]
|
|
324
339
|
});
|
|
325
340
|
});
|
|
326
341
|
const styles = StyleSheet.create({
|
|
@@ -18,10 +18,12 @@
|
|
|
18
18
|
* directly (mocking only `react-native`'s `StyleSheet`, as `core/style` does).
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
+
import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
|
|
21
22
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
23
|
+
export { MIN_TOUCH_TARGET };
|
|
24
|
+
|
|
22
25
|
/** Same touch-target floor as Button/Select (44dp — Apple HIG minimum, WCAG 2.5.5 AAA). */
|
|
23
|
-
|
|
24
|
-
const slopFor = dimension => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - dimension) / 2));
|
|
26
|
+
|
|
25
27
|
export const MULTI_SELECT_SIZES = {
|
|
26
28
|
sm: {
|
|
27
29
|
height: 32,
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# notification-bell/ — an icon trigger with an unread count badge
|
|
2
|
+
|
|
3
|
+
Ghost `Button` (bell icon) with an `UnreadBadge` overlay, shown only when `unreadCount > 0`. Panel
|
|
4
|
+
composition stays in the app (`BottomSheet` / `Menu`).
|
|
5
|
+
|
|
6
|
+
## Exports
|
|
7
|
+
|
|
8
|
+
- `NotificationBell` — `unreadCount` (`number`, default `0`), `onPress` (required), `style`, `testID`
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo } from "react";
|
|
4
|
+
import { View } from "react-native";
|
|
5
|
+
import { Button } from "../button/index.js";
|
|
6
|
+
import { UnreadBadge } from "../unread-badge/index.js";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
export const NotificationBell = /*#__PURE__*/memo(function NotificationBell({
|
|
9
|
+
unreadCount = 0,
|
|
10
|
+
onPress,
|
|
11
|
+
style,
|
|
12
|
+
testID
|
|
13
|
+
}) {
|
|
14
|
+
return /*#__PURE__*/_jsx(View, {
|
|
15
|
+
testID: testID,
|
|
16
|
+
style: style,
|
|
17
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
18
|
+
style: {
|
|
19
|
+
position: "relative",
|
|
20
|
+
alignSelf: "flex-start"
|
|
21
|
+
},
|
|
22
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
23
|
+
variant: "ghost",
|
|
24
|
+
icon: "bell",
|
|
25
|
+
accessibilityLabel: "Notifications",
|
|
26
|
+
onPress: onPress,
|
|
27
|
+
testID: testID ? `${testID}-button` : undefined
|
|
28
|
+
}), unreadCount > 0 ? /*#__PURE__*/_jsx(View, {
|
|
29
|
+
style: {
|
|
30
|
+
position: "absolute",
|
|
31
|
+
top: 4,
|
|
32
|
+
right: 4,
|
|
33
|
+
pointerEvents: 'none'
|
|
34
|
+
},
|
|
35
|
+
children: /*#__PURE__*/_jsx(UnreadBadge, {
|
|
36
|
+
count: unreadCount,
|
|
37
|
+
size: "sm"
|
|
38
|
+
})
|
|
39
|
+
}) : null]
|
|
40
|
+
})
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=NotificationBell.js.map
|
|
@@ -8,8 +8,8 @@ TWO trailing controls, which doesn't fit Input's single leading/trailing icon sl
|
|
|
8
8
|
|
|
9
9
|
| File | Role |
|
|
10
10
|
|------|------|
|
|
11
|
-
| `NumberInput.tsx` | The component. Composition, draft/clamp wiring, a11y, focus ring, stepper buttons. |
|
|
12
|
-
| `NumberInput.variants.ts` | Pure resolvers (`NUMBER_INPUT_SIZES`, `resolveNumberInputStatus`, `resolveNumberInputStepperPressColors`, `resolveNumberInputAccessibility`, `clampNumberInputValue`, `parseNumberInputDraft`, `canDecrementNumberInput`, `canIncrementNumberInput`) + the themed structural resolvers `numberInputStructure` / `numberInputStepperStructure`. No React, no lucide. |
|
|
11
|
+
| `NumberInput.tsx` | The component. Composition, draft/clamp wiring, a11y, focus ring (local `FOCUS_RING_WIDTH`/`FOCUS_RING_GAP` + `stepperFocusRingStyle`), stepper buttons. |
|
|
12
|
+
| `NumberInput.variants.ts` | Pure resolvers (`NUMBER_INPUT_SIZES`, `resolveNumberInputStatus`, `resolveNumberInputStepperPressColors`, `resolveNumberInputAccessibility`, `clampNumberInputValue`, `parseNumberInputDraft`, `canDecrementNumberInput`, `canIncrementNumberInput`) + the themed structural resolvers `numberInputStructure` / `numberInputStepperStructure`. `MIN_TOUCH_TARGET` / `slopFor` from `core/a11y/touchTarget`. No React, no lucide. |
|
|
13
13
|
| `index.ts` | Public surface: `NumberInput`, `NumberInputProps`, the closed unions. No `icon` prop, so `IconName` is not re-exported. |
|
|
14
14
|
| `__tests__/NumberInput.test.ts` | Pure: WCAG contrast (all brands × modes, incl. the stepper pressed-fill) + touch target + clamp/parse/limit + a11y contract. |
|
|
15
15
|
| `__tests__/NumberInput.render.test.tsx` | Render: stepper press, typed input, clamping, disabled/at-limit, the field's and each stepper's own focus ring, the rendered `hitSlop`, `accessibilityValue`, and the increment/decrement accessibility actions. |
|
|
@@ -26,7 +26,7 @@ TWO trailing controls, which doesn't fit Input's single leading/trailing icon sl
|
|
|
26
26
|
| `status` | `default \| error` | `default` | Closed union — a **state**, not a brand `tone` (same reasoning as Input). |
|
|
27
27
|
| `disabled` | `boolean` | `false` | Dims the field; blocks editing and both steppers. |
|
|
28
28
|
| `label` | `string` | — | Rendered above the field; falls back into `accessibilityLabel`. |
|
|
29
|
-
| `errorText` | `string` | — | Shown below the field and folded into the accessible name (`aria-invalid` set) when `status="error"` — same prop name and rule as `Input`/`FormField`.
|
|
29
|
+
| `errorText` | `string` | — | Shown below the field and folded into the accessible name (`aria-invalid` set) when `status="error"` — same prop name and rule as `Input`/`FormField`. |
|
|
30
30
|
| `accessibilityLabel` | `string` | `label` | Overrides the label fallback. |
|
|
31
31
|
| `containerStyle` | `LayoutStyle` | — | The documented exception for a native-primitive wrapper. Outermost, last, once. Never `inputStyle`. |
|
|
32
32
|
| `testID` | `string` | — | Forwarded to the `TextInput`; the steppers get `${testID}-decrement` / `${testID}-increment`. |
|
|
@@ -62,11 +62,9 @@ typed values are clamped to range but never snapped to a `step` grid.
|
|
|
62
62
|
`accessibilityValue`, so object-only would be silently dropped on web. Both forms, one per
|
|
63
63
|
platform. A bound the caller omitted is **left out**, never defaulted to `0` — absent means "no
|
|
64
64
|
floor"/"no ceiling" here.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
screen showed `draft` — a 4.1.2 failure in itself. The announced text is now `draft`, matching what
|
|
69
|
-
is actually on screen; `now` stays the raw, unclamped `value` (unlike `Slider`'s clamped `now`).
|
|
65
|
+
`aria-valuetext` announces the visible `draft`, not `value` — the two diverge while typing (a
|
|
66
|
+
keystroke that doesn't parse yet, or one that clamps). `now` stays the raw, unclamped `value`
|
|
67
|
+
(unlike `Slider`'s clamped `now`).
|
|
70
68
|
- **2.5.7 non-pointer alternative** — the field also declares
|
|
71
69
|
`accessibilityActions: [{name:"increment"},{name:"decrement"}]` + `onAccessibilityAction`, reusing
|
|
72
70
|
the same `handleIncrement`/`handleDecrement` (so an at-limit or disabled action is a no-op).
|
|
@@ -110,6 +108,8 @@ typed values are clamped to range but never snapped to a `step` grid.
|
|
|
110
108
|
- Decrement/increment each carry `accessibilityRole="button"` and their own
|
|
111
109
|
`accessibilityLabel` ("Decrease" / "Increase") plus flat `aria-disabled`, so a screen
|
|
112
110
|
reader announces the control and its at-limit state even though it shows no visible text.
|
|
111
|
+
- **Android** — both steppers carry `android_ripple` (`rippleColor(theme.mode)`, `borderless: false`),
|
|
112
|
+
gated on the stepper being enabled.
|
|
113
113
|
- A disabled field is exempt from the contrast minimum (WCAG 1.4.3) and dims via `opacity: 0.5`, same
|
|
114
114
|
as Input/Button. An at-limit stepper (value already at `min`/`max`) dims the same way *without*
|
|
115
115
|
double-dimming when the whole field is also `disabled` (the outer dim already covers that case).
|
|
@@ -136,8 +136,3 @@ typed values are clamped to range but never snapped to a `step` grid.
|
|
|
136
136
|
|
|
137
137
|
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Same shape as `MultiSelect`: `Icon` gets only primitive props, no `.map()` list, every handler goes to host `Pressable`/`TextInput` — nothing to memoize.
|
|
138
138
|
|
|
139
|
-
## Modernization (v1.0.7)
|
|
140
|
-
|
|
141
|
-
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
142
|
-
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
143
|
-
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -148,7 +148,6 @@ export const NumberInput = /*#__PURE__*/memo(function NumberInput(props) {
|
|
|
148
148
|
borderColor: statusColors.border
|
|
149
149
|
}, disabled && styles.dimmed],
|
|
150
150
|
children: [focused && !disabled && /*#__PURE__*/_jsx(View, {
|
|
151
|
-
pointerEvents: "none",
|
|
152
151
|
testID: "number-input-focus-ring",
|
|
153
152
|
style: {
|
|
154
153
|
position: "absolute",
|
|
@@ -159,14 +158,16 @@ export const NumberInput = /*#__PURE__*/memo(function NumberInput(props) {
|
|
|
159
158
|
borderWidth: FOCUS_RING_WIDTH,
|
|
160
159
|
borderColor: theme.colors.border.focus,
|
|
161
160
|
borderRadius: theme.radii.md + FOCUS_RING_GAP + FOCUS_RING_WIDTH,
|
|
162
|
-
borderCurve: "continuous"
|
|
161
|
+
borderCurve: "continuous",
|
|
162
|
+
pointerEvents: "none"
|
|
163
163
|
}
|
|
164
164
|
}), /*#__PURE__*/_jsxs(View, {
|
|
165
165
|
style: styles.stepperHost,
|
|
166
166
|
children: [decrementFocused && decrementEnabled && /*#__PURE__*/_jsx(View, {
|
|
167
|
-
pointerEvents: "none",
|
|
168
167
|
testID: "number-input-decrement-focus-ring",
|
|
169
|
-
style: stepperFocusRingStyle(theme, "leading")
|
|
168
|
+
style: [stepperFocusRingStyle(theme, "leading"), {
|
|
169
|
+
pointerEvents: "none"
|
|
170
|
+
}]
|
|
170
171
|
}), /*#__PURE__*/_jsx(AnimatedPressable, {
|
|
171
172
|
testID: testID ? `${testID}-decrement` : undefined,
|
|
172
173
|
accessibilityRole: "button",
|
|
@@ -231,9 +232,10 @@ export const NumberInput = /*#__PURE__*/memo(function NumberInput(props) {
|
|
|
231
232
|
}), /*#__PURE__*/_jsxs(View, {
|
|
232
233
|
style: styles.stepperHost,
|
|
233
234
|
children: [incrementFocused && incrementEnabled && /*#__PURE__*/_jsx(View, {
|
|
234
|
-
pointerEvents: "none",
|
|
235
235
|
testID: "number-input-increment-focus-ring",
|
|
236
|
-
style: stepperFocusRingStyle(theme, "trailing")
|
|
236
|
+
style: [stepperFocusRingStyle(theme, "trailing"), {
|
|
237
|
+
pointerEvents: "none"
|
|
238
|
+
}]
|
|
237
239
|
}), /*#__PURE__*/_jsx(AnimatedPressable, {
|
|
238
240
|
testID: testID ? `${testID}-increment` : undefined,
|
|
239
241
|
accessibilityRole: "button",
|
|
@@ -16,14 +16,12 @@
|
|
|
16
16
|
* only `react-native`'s `StyleSheet`, as `core/style` does).
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
|
+
import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
|
|
19
20
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
21
|
+
export { MIN_TOUCH_TARGET };
|
|
20
22
|
|
|
21
23
|
/** A state, not a brand tone — same reasoning as Input's `status`. */
|
|
22
24
|
|
|
23
|
-
/** Same floor as Button/Input/Select — 44dp (WCAG 2.5.5 / HIG). Duplicated, not imported: modules
|
|
24
|
-
* stay isolated. */
|
|
25
|
-
export const MIN_TOUCH_TARGET = 44;
|
|
26
|
-
const slopFor = height => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - height) / 2));
|
|
27
25
|
/** Same numbers as Input's sizes, so a NumberInput lines up beside a plain field. */
|
|
28
26
|
export const NUMBER_INPUT_SIZES = {
|
|
29
27
|
sm: {
|
|
@@ -52,7 +52,7 @@ mode — `bg.selected` is not, which is exactly why `Select` refuses to tint.
|
|
|
52
52
|
| Prop | Type | Default | Notes |
|
|
53
53
|
|------|------|---------|-------|
|
|
54
54
|
| `options` | `OrgSwitcherOption[]` | — | `{ value, label, role?, avatarSource?, avatarInitials? }`. `avatarInitials` defaults to the first letters of `label`'s first two words. |
|
|
55
|
-
| `value` | `string` | — |
|
|
55
|
+
| `value` | `string` | — | Optional — active org id. Absent shows the `placeholder`. |
|
|
56
56
|
| `onValueChange` | `(value: string) => void` | — | |
|
|
57
57
|
| `placeholder` | `string` | `"Select organization"` | Shown with a `building-2` glyph when nothing is selected. |
|
|
58
58
|
| `size` | `sm \| md \| lg` | `md` | Trigger heights 32 / 40 / 48 dp; avatar `xs` / `sm` / `md`. |
|
|
@@ -73,7 +73,8 @@ mode — `bg.selected` is not, which is exactly why `Select` refuses to tint.
|
|
|
73
73
|
mutually exclusive set, and `aria-selected` is invalid ARIA on `role="menuitem"` (2026-08 sweep;
|
|
74
74
|
React Native's typed `accessibilityRole` has no `menuitemradio`, so `radio` is the closest valid
|
|
75
75
|
role). The tint is never the *only* selection cue.
|
|
76
|
-
- Rows and trigger both clear the 44dp touch target (trigger via `hitSlop`)
|
|
76
|
+
- Rows and trigger both clear the 44dp touch target (trigger via `hitSlop`), and both carry
|
|
77
|
+
`android_ripple` on Android.
|
|
77
78
|
- **2.1.1 keyboard (web only)** — on the `ModalPortalProvider` branch there is no RN `<Modal>`, so
|
|
78
79
|
`react-native-web`'s own Escape / focus trap / focus restore never run. The sheet wires
|
|
79
80
|
`useDismissOnEscape` + `useFocusTrap` (`core/a11y/keyboard`) gated on `portalled && open`;
|
|
@@ -120,14 +121,6 @@ The host app owns fetching the org list and the active org id, passing `role` as
|
|
|
120
121
|
conditional render.
|
|
121
122
|
- **Sheet** — `useEnterExit(open)` on the panel; the `Modal` keeps `visible={open}` with
|
|
122
123
|
`animationType="none"` so the library owns the reveal and the sheet always fully unmounts when
|
|
123
|
-
closed (never gated on an animation callback).
|
|
124
|
-
|
|
124
|
+
closed (never gated on an animation callback). Reduce-motion is handled inside `core/motion`
|
|
125
|
+
(`motion.enabled === false` snaps). The backdrop scrim uses `MOTION_TRANSFORM.scrimOpacity`.
|
|
125
126
|
|
|
126
|
-
## Modernization (v1.0.7)
|
|
127
|
-
|
|
128
|
-
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
129
|
-
|
|
130
|
-
- **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
|
|
131
|
-
- **Round 5 tonal** — the trigger's `border.interactive` hairline is KEPT: it's a form-control
|
|
132
|
-
affordance (opens a picker), the identical role `Select`'s own trigger border plays, not decorative
|
|
133
|
-
container chrome. Trigger and rows both gained `android_ripple` for Android parity.
|
|
@@ -20,22 +20,23 @@
|
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
22
|
import { memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
23
|
-
import {
|
|
23
|
+
import { Modal, Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
24
|
+
import Reanimated, { useAnimatedStyle } from "react-native-reanimated";
|
|
24
25
|
import { useDismissOnEscape, useFocusTrap } from "../../core/a11y/keyboard";
|
|
25
26
|
import { Icon } from "../../core/icon/index.js";
|
|
26
27
|
import { VirtualList } from "../../core/list/index.js";
|
|
27
|
-
import {
|
|
28
|
+
import { withAlpha } from "../../core/gradient/index.js";
|
|
29
|
+
import { MOTION_TRANSFORM, useEnterExit, useMotion, useAnimatedValue, usePressMotion } from "../../core/motion/index.js";
|
|
28
30
|
import { useTheme } from "../../theme/hooks.js";
|
|
29
31
|
import { rippleColor } from "../../theme/platform/stateLayer.native.js";
|
|
30
32
|
import { Avatar } from "../avatar/index.js";
|
|
31
|
-
import { ModalPortalContext } from "
|
|
32
|
-
import { renderWebPortal } from "../modal/renderWebPortal";
|
|
33
|
+
import { ModalPortalContext, renderWebPortal } from "../../core/overlay/index.js";
|
|
33
34
|
import { ORG_SWITCHER_ROW_ICON_SIZE, ORG_SWITCHER_ROW_MIN_HEIGHT, ORG_SWITCHER_SIZES, orgInitials, orgSwitcherOverlayStructure, orgSwitcherRowBodyStructure, orgSwitcherRowContentStructure, orgSwitcherRowStructure, orgSwitcherSheetStructure, orgSwitcherTriggerContentStructure, orgSwitcherTriggerStructure, orgSwitcherTriggerValueStructure, resolveOrgSwitcherAccessibility, resolveOrgSwitcherRowColors, resolveOrgSwitcherTriggerColors } from "./OrgSwitcher.variants.js";
|
|
34
35
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
35
36
|
const ICON_STROKE = 2;
|
|
36
37
|
// Decorative dismiss scrim behind the sheet — a design constant, not a role token: it is neither
|
|
37
38
|
// text nor an interactive boundary, so WCAG's contrast minimums don't apply to it.
|
|
38
|
-
const BACKDROP_SCRIM = "#
|
|
39
|
+
const BACKDROP_SCRIM = withAlpha("#000000", MOTION_TRANSFORM.scrimOpacity);
|
|
39
40
|
const OrgSwitcherRow = /*#__PURE__*/memo(function OrgSwitcherRow({
|
|
40
41
|
option,
|
|
41
42
|
selected,
|
|
@@ -69,21 +70,20 @@ const OrgSwitcherRow = /*#__PURE__*/memo(function OrgSwitcherRow({
|
|
|
69
70
|
color: restingColors.subtitle
|
|
70
71
|
}], [theme, restingColors]);
|
|
71
72
|
const checkOpacity = useAnimatedValue(selected ? 1 : 0);
|
|
72
|
-
const checkStyle =
|
|
73
|
-
opacity: checkOpacity
|
|
74
|
-
})
|
|
73
|
+
const checkStyle = useAnimatedStyle(() => ({
|
|
74
|
+
opacity: checkOpacity.value
|
|
75
|
+
}));
|
|
75
76
|
const skipFirst = useRef(true);
|
|
76
77
|
const running = useRef(null);
|
|
77
78
|
useEffect(() => {
|
|
78
79
|
running.current?.stop();
|
|
79
|
-
// A row scrolled into view already-selected must snap, never fade — no motion during scroll.
|
|
80
80
|
if (skipFirst.current) {
|
|
81
81
|
skipFirst.current = false;
|
|
82
|
-
checkOpacity.
|
|
82
|
+
checkOpacity.value = selected ? 1 : 0;
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
85
85
|
if (!motion.enabled) {
|
|
86
|
-
checkOpacity.
|
|
86
|
+
checkOpacity.value = selected ? 1 : 0;
|
|
87
87
|
return;
|
|
88
88
|
}
|
|
89
89
|
running.current = motion.timing(checkOpacity, selected ? 1 : 0, {
|
|
@@ -102,7 +102,7 @@ const OrgSwitcherRow = /*#__PURE__*/memo(function OrgSwitcherRow({
|
|
|
102
102
|
onPressOut: press.onPressOut,
|
|
103
103
|
android_ripple: androidRipple,
|
|
104
104
|
style: rowStyle,
|
|
105
|
-
children: /*#__PURE__*/_jsxs(
|
|
105
|
+
children: /*#__PURE__*/_jsxs(Reanimated.View, {
|
|
106
106
|
style: [contentStructure, press.style],
|
|
107
107
|
children: [/*#__PURE__*/_jsx(Avatar, {
|
|
108
108
|
size: spec.avatarSize,
|
|
@@ -121,7 +121,7 @@ const OrgSwitcherRow = /*#__PURE__*/memo(function OrgSwitcherRow({
|
|
|
121
121
|
style: roleStyle,
|
|
122
122
|
children: option.role
|
|
123
123
|
})]
|
|
124
|
-
}), selected && /*#__PURE__*/_jsx(
|
|
124
|
+
}), selected && /*#__PURE__*/_jsx(Reanimated.View, {
|
|
125
125
|
style: checkStyle,
|
|
126
126
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
127
127
|
name: "check",
|
|
@@ -213,9 +213,10 @@ export const OrgSwitcher = /*#__PURE__*/memo(function OrgSwitcher({
|
|
|
213
213
|
style: styles.backdrop,
|
|
214
214
|
onPress: closeMenu
|
|
215
215
|
}), /*#__PURE__*/_jsx(View, {
|
|
216
|
-
style: overlayStructure,
|
|
217
|
-
|
|
218
|
-
|
|
216
|
+
style: [overlayStructure, {
|
|
217
|
+
pointerEvents: 'box-none'
|
|
218
|
+
}],
|
|
219
|
+
children: /*#__PURE__*/_jsx(Reanimated.View, {
|
|
219
220
|
ref: sheetRef,
|
|
220
221
|
style: [sheetStyle, sheetMotion.style],
|
|
221
222
|
children: /*#__PURE__*/_jsx(VirtualList, {
|
|
@@ -228,8 +229,9 @@ export const OrgSwitcher = /*#__PURE__*/memo(function OrgSwitcher({
|
|
|
228
229
|
})]
|
|
229
230
|
}) : null;
|
|
230
231
|
const menu = portalled ? open ? renderWebPortal(/*#__PURE__*/_jsx(View, {
|
|
231
|
-
style: StyleSheet.absoluteFill,
|
|
232
|
-
|
|
232
|
+
style: [StyleSheet.absoluteFill, {
|
|
233
|
+
pointerEvents: 'box-none'
|
|
234
|
+
}],
|
|
233
235
|
children: sheet
|
|
234
236
|
}), portalContainer) : null : /*#__PURE__*/_jsx(Modal, {
|
|
235
237
|
visible: open,
|
|
@@ -253,7 +255,7 @@ export const OrgSwitcher = /*#__PURE__*/memo(function OrgSwitcher({
|
|
|
253
255
|
hitSlop: spec.hitSlop,
|
|
254
256
|
android_ripple: androidRipple,
|
|
255
257
|
style: triggerStyle,
|
|
256
|
-
children: /*#__PURE__*/_jsxs(
|
|
258
|
+
children: /*#__PURE__*/_jsxs(Reanimated.View, {
|
|
257
259
|
style: [triggerContentStructure, triggerPress.style],
|
|
258
260
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
259
261
|
style: triggerValueStructure,
|
|
@@ -18,10 +18,12 @@
|
|
|
18
18
|
* directly (mocking only `react-native`'s `StyleSheet`, as `core/style` does).
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
+
import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
|
|
21
22
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
23
|
+
export { MIN_TOUCH_TARGET };
|
|
24
|
+
|
|
22
25
|
/** Same touch-target floor as Button (44dp — Apple HIG minimum, WCAG 2.5.5 AAA). */
|
|
23
|
-
|
|
24
|
-
const slopFor = height => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - height) / 2));
|
|
26
|
+
|
|
25
27
|
export const ORG_SWITCHER_SIZES = {
|
|
26
28
|
sm: {
|
|
27
29
|
height: 32,
|
|
@@ -98,6 +98,8 @@ for a closed union to resolve.
|
|
|
98
98
|
`fast` + `decelerate`) — opacity only, native driver, no fade on first mount, stopped on effect
|
|
99
99
|
cleanup and unmount. That is the whole motion budget for this module.
|
|
100
100
|
|
|
101
|
+
A page change also fires `useHaptics().selection()`, skipped under reduced motion.
|
|
102
|
+
|
|
101
103
|
`numbered` deliberately animates **nothing**: it is a row of up to nine controls, and moving or
|
|
102
104
|
fading each one on every page change reads as noise rather than feedback. `loadMore` keeps its
|
|
103
105
|
existing spinner and no transition.
|
|
@@ -156,8 +158,3 @@ most `2·siblingCount + 5` items, so `VirtualizedList` setup would be pure cost
|
|
|
156
158
|
benefit (Menu's rows document the same measurement). The themed structural resolvers compile once
|
|
157
159
|
per `(theme, size)` via the `WeakMap` cache and never rebuild per render.
|
|
158
160
|
|
|
159
|
-
## Modernization (v1.0.7)
|
|
160
|
-
|
|
161
|
-
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
162
|
-
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
163
|
-
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|