pixelize-native-library 1.2.0 → 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 +23 -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 +83 -0
- package/lib/module/core/gradient/ShimmerGradientFill.js +79 -0
- package/lib/module/core/gradient/darkenHex.js +13 -0
- package/lib/module/core/gradient/gradientStops.js +27 -0
- package/lib/module/core/gradient/index.js +8 -0
- package/lib/module/core/gradient/withAlpha.js +19 -0
- package/lib/module/core/haptics/MODULE.md +8 -0
- package/lib/module/core/haptics/context.js +7 -0
- package/lib/module/core/haptics/haptics.js +17 -0
- package/lib/module/core/haptics/index.js +6 -0
- package/lib/module/core/haptics/useHaptics.js +73 -0
- package/lib/module/core/heading/MODULE.md +1 -1
- package/lib/module/core/icon/MODULE.md +22 -23
- 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/icon/icons/trending-up.js +10 -0
- package/lib/module/core/icon/resolve.js +2 -0
- package/lib/module/core/list/VirtualList.js +16 -3
- package/lib/module/core/media/expoImage.js +6 -0
- package/lib/module/core/motion/MODULE.md +25 -16
- package/lib/module/core/motion/animatedComponents.js +8 -0
- package/lib/module/core/motion/config.js +4 -1
- package/lib/module/core/motion/index.js +4 -1
- 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 +140 -0
- 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 +2 -1
- package/lib/module/core/style/radius.js +4 -0
- package/lib/module/index.js +24 -4
- package/lib/module/modules/accordion/Accordion.js +115 -153
- package/lib/module/modules/accordion/Accordion.variants.js +6 -7
- package/lib/module/modules/accordion/AccordionProps.js +4 -0
- package/lib/module/modules/accordion/MODULE.md +15 -23
- package/lib/module/modules/alert-dialog/AlertDialog.js +25 -7
- package/lib/module/modules/alert-dialog/AlertDialog.variants.js +4 -0
- 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 +27 -22
- package/lib/module/modules/app-bar/AppBar.variants.js +6 -2
- 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.js +7 -1
- package/lib/module/modules/avatar/Avatar.variants.js +3 -1
- package/lib/module/modules/avatar/AvatarProps.js +4 -0
- package/lib/module/modules/avatar/MODULE.md +3 -3
- package/lib/module/modules/avatar-group/AvatarGroup.js +10 -6
- package/lib/module/modules/avatar-group/AvatarGroup.variants.js +23 -0
- package/lib/module/modules/avatar-group/AvatarGroupProps.js +4 -0
- package/lib/module/modules/avatar-group/MODULE.md +17 -0
- 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/Badge.js +11 -5
- package/lib/module/modules/badge/Badge.variants.js +2 -1
- package/lib/module/modules/badge/BadgeProps.js +4 -0
- package/lib/module/modules/badge/MODULE.md +11 -9
- package/lib/module/modules/banner/Banner.js +106 -60
- package/lib/module/modules/banner/Banner.variants.js +5 -3
- package/lib/module/modules/banner/BannerProps.js +4 -0
- package/lib/module/modules/banner/MODULE.md +27 -33
- package/lib/module/modules/bottom-nav/BottomNav.js +6 -3
- package/lib/module/modules/bottom-nav/BottomNav.variants.js +11 -12
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +18 -19
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +35 -10
- package/lib/module/modules/bottom-nav/BottomNavProps.js +4 -0
- package/lib/module/modules/bottom-nav/BottomNavTab.js +38 -15
- package/lib/module/modules/bottom-nav/MODULE.md +14 -5
- package/lib/module/modules/bottom-sheet/BottomSheet.js +49 -13
- package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +15 -5
- package/lib/module/modules/bottom-sheet/BottomSheetProps.js +4 -0
- package/lib/module/modules/bottom-sheet/MODULE.md +24 -3
- 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 +89 -101
- package/lib/module/modules/button/Button.variants.js +14 -17
- package/lib/module/modules/button/ButtonProps.js +4 -0
- package/lib/module/modules/button/MODULE.md +11 -10
- package/lib/module/modules/button-group/ButtonGroup.js +38 -38
- package/lib/module/modules/button-group/ButtonGroup.variants.js +23 -50
- package/lib/module/modules/button-group/ButtonGroupProps.js +4 -0
- package/lib/module/modules/button-group/MODULE.md +27 -32
- package/lib/module/modules/card/Card.js +140 -19
- package/lib/module/modules/card/Card.variants.js +1 -0
- package/lib/module/modules/card/CardProps.js +4 -0
- package/lib/module/modules/card/MODULE.md +17 -12
- package/lib/module/modules/charts/BarChart.js +35 -18
- package/lib/module/modules/charts/BarChartProps.js +4 -0
- package/lib/module/modules/charts/BarList.js +33 -19
- 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 +69 -3
- package/lib/module/modules/charts/DonutChart.js +12 -6
- package/lib/module/modules/charts/DonutChartProps.js +4 -0
- package/lib/module/modules/charts/LineChart.js +8 -5
- package/lib/module/modules/charts/LineChartProps.js +4 -0
- package/lib/module/modules/charts/MODULE.md +33 -20
- package/lib/module/modules/charts/PieChart.js +19 -8
- package/lib/module/modules/charts/PieChartProps.js +4 -0
- package/lib/module/modules/charts/Sparkline.js +4 -2
- package/lib/module/modules/charts/SparklineProps.js +4 -0
- package/lib/module/modules/checkbox/Checkbox.js +30 -28
- 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 +17 -6
- package/lib/module/modules/chip/Chip.js +116 -54
- package/lib/module/modules/chip/Chip.variants.js +18 -5
- 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 +8 -8
- package/lib/module/modules/combobox/Combobox.js +111 -78
- package/lib/module/modules/combobox/Combobox.variants.js +24 -10
- package/lib/module/modules/combobox/ComboboxProps.js +4 -0
- package/lib/module/modules/combobox/MODULE.md +14 -10
- package/lib/module/modules/composer/Composer.js +20 -11
- package/lib/module/modules/composer/Composer.variants.js +2 -0
- package/lib/module/modules/composer/ComposerProps.js +4 -0
- package/lib/module/modules/composer/MODULE.md +7 -2
- package/lib/module/modules/copy-button/CopyButton.js +35 -9
- package/lib/module/modules/copy-button/CopyButton.variants.js +7 -4
- package/lib/module/modules/copy-button/CopyButtonProps.js +4 -0
- package/lib/module/modules/copy-button/MODULE.md +11 -8
- package/lib/module/modules/data-table/DataTable.js +37 -14
- package/lib/module/modules/data-table/DataTable.variants.js +5 -4
- package/lib/module/modules/data-table/DataTableProps.js +4 -0
- package/lib/module/modules/data-table/MODULE.md +6 -10
- package/lib/module/modules/date-picker/Calendar.js +78 -29
- package/lib/module/modules/date-picker/CalendarProps.js +4 -0
- package/lib/module/modules/date-picker/DatePicker.variants.js +26 -10
- 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 +29 -11
- package/lib/module/modules/date-picker/PickerField.js +13 -4
- package/lib/module/modules/date-picker/PickerFieldProps.js +4 -0
- package/lib/module/modules/date-picker/PickerShell.js +23 -12
- package/lib/module/modules/date-picker/PickerShellProps.js +4 -0
- package/lib/module/modules/date-picker/TimePicker.js +15 -19
- 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/Divider.variants.js +6 -5
- package/lib/module/modules/divider/DividerProps.js +4 -0
- package/lib/module/modules/divider/MODULE.md +1 -6
- 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 +62 -45
- package/lib/module/modules/drawer/Drawer.variants.js +4 -4
- package/lib/module/modules/drawer/DrawerProps.js +4 -0
- package/lib/module/modules/drawer/MODULE.md +14 -21
- package/lib/module/modules/empty-state/EmptyState.js +19 -29
- package/lib/module/modules/empty-state/EmptyState.variants.js +7 -0
- package/lib/module/modules/empty-state/EmptyStateProps.js +4 -0
- package/lib/module/modules/empty-state/MODULE.md +5 -9
- package/lib/module/modules/fab/Fab.js +47 -69
- package/lib/module/modules/fab/Fab.variants.js +25 -5
- package/lib/module/modules/fab/FabGroup.js +113 -89
- 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 +17 -11
- 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 +31 -16
- package/lib/module/modules/file-grid/FileGrid.variants.js +2 -2
- package/lib/module/modules/file-grid/FileGridProps.js +4 -0
- package/lib/module/modules/file-grid/MODULE.md +29 -4
- package/lib/module/modules/file-upload/FileUpload.js +56 -15
- package/lib/module/modules/file-upload/FileUpload.variants.js +3 -1
- package/lib/module/modules/file-upload/FileUploadProps.js +4 -0
- package/lib/module/modules/file-upload/MODULE.md +10 -12
- 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 +13 -4
- 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 +39 -17
- package/lib/module/modules/filter-sheet/FilterSheetProps.js +2 -0
- package/lib/module/modules/filter-sheet/MODULE.md +4 -4
- package/lib/module/modules/folder-row/FolderRow.js +33 -19
- package/lib/module/modules/folder-row/FolderRow.variants.js +4 -2
- package/lib/module/modules/folder-row/FolderRowProps.js +4 -0
- package/lib/module/modules/folder-row/MODULE.md +6 -4
- 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 +52 -14
- package/lib/module/modules/gantt/Gantt.variants.js +47 -3
- package/lib/module/modules/gantt/GanttProps.js +4 -0
- package/lib/module/modules/gantt/MODULE.md +14 -4
- package/lib/module/modules/image-viewer/ImageViewer.js +37 -6
- package/lib/module/modules/image-viewer/ImageViewerProps.js +4 -0
- package/lib/module/modules/image-viewer/MODULE.md +7 -1
- package/lib/module/modules/input/Input.js +75 -27
- package/lib/module/modules/input/Input.variants.js +10 -10
- package/lib/module/modules/input/InputProps.js +4 -0
- package/lib/module/modules/input/MODULE.md +9 -14
- 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 +60 -27
- package/lib/module/modules/list-item/ListItem.variants.js +11 -2
- package/lib/module/modules/list-item/ListItemProps.js +4 -0
- package/lib/module/modules/list-item/MODULE.md +14 -10
- 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 +6 -5
- package/lib/module/modules/markdown/Markdown.js +57 -22
- package/lib/module/modules/markdown/Markdown.variants.js +2 -1
- package/lib/module/modules/markdown/MarkdownProps.js +4 -0
- package/lib/module/modules/menu/MODULE.md +11 -7
- package/lib/module/modules/menu/Menu.js +149 -76
- package/lib/module/modules/menu/Menu.variants.js +5 -5
- package/lib/module/modules/menu/MenuProps.js +4 -0
- package/lib/module/modules/message-bubble/MODULE.md +7 -3
- package/lib/module/modules/message-bubble/MessageBubble.js +4 -5
- package/lib/module/modules/message-bubble/MessageBubble.variants.js +5 -5
- package/lib/module/modules/message-bubble/MessageBubbleProps.js +4 -0
- package/lib/module/modules/modal/MODULE.md +63 -89
- package/lib/module/modules/modal/Modal.js +168 -47
- package/lib/module/modules/modal/Modal.variants.js +2 -2
- 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 +3 -0
- package/lib/module/modules/more-items/MoreItems.js +16 -7
- package/lib/module/modules/more-items/MoreItems.variants.js +6 -2
- package/lib/module/modules/more-items/MoreItemsProps.js +4 -0
- package/lib/module/modules/multi-select/MODULE.md +5 -6
- package/lib/module/modules/multi-select/MultiSelect.js +61 -24
- package/lib/module/modules/multi-select/MultiSelect.variants.js +8 -4
- 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 +10 -14
- package/lib/module/modules/number-input/NumberInput.js +100 -85
- package/lib/module/modules/number-input/NumberInput.variants.js +11 -10
- package/lib/module/modules/number-input/NumberInputProps.js +4 -0
- package/lib/module/modules/org-switcher/MODULE.md +13 -8
- package/lib/module/modules/org-switcher/OrgSwitcher.js +34 -21
- package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +8 -4
- package/lib/module/modules/org-switcher/OrgSwitcherProps.js +4 -0
- package/lib/module/modules/pagination/MODULE.md +4 -7
- package/lib/module/modules/pagination/Pagination.js +97 -48
- package/lib/module/modules/pagination/Pagination.variants.js +6 -4
- package/lib/module/modules/pagination/PaginationControls.js +58 -36
- 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 +12 -19
- package/lib/module/modules/pin-input/PinInput.js +10 -3
- package/lib/module/modules/pin-input/PinInput.variants.js +4 -4
- 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 +7 -13
- package/lib/module/modules/radio-group/RadioGroup.js +125 -65
- package/lib/module/modules/radio-group/RadioGroup.variants.js +4 -4
- package/lib/module/modules/radio-group/RadioGroupProps.js +4 -0
- package/lib/module/modules/reorder/MODULE.md +7 -9
- package/lib/module/modules/reorder/Reorder.js +12 -6
- package/lib/module/modules/reorder/Reorder.variants.js +7 -6
- package/lib/module/modules/reorder/ReorderProps.js +4 -0
- package/lib/module/modules/rich-text/MODULE.md +5 -3
- package/lib/module/modules/rich-text/RichText.js +42 -22
- package/lib/module/modules/rich-text/RichTextProps.js +4 -0
- package/lib/module/modules/rich-text-editor/MODULE.md +8 -15
- package/lib/module/modules/rich-text-editor/RichTextEditor.js +13 -5
- package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +9 -6
- 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 +14 -5
- package/lib/module/modules/screen/Screen.js +109 -33
- package/lib/module/modules/screen/Screen.variants.js +18 -0
- package/lib/module/modules/screen/ScreenProps.js +4 -0
- package/lib/module/modules/search-bar/MODULE.md +9 -8
- package/lib/module/modules/search-bar/SearchBar.js +49 -27
- package/lib/module/modules/search-bar/SearchBar.variants.js +13 -12
- package/lib/module/modules/search-bar/SearchBarProps.js +4 -0
- package/lib/module/modules/section/MODULE.md +3 -1
- package/lib/module/modules/section/Section.js +14 -16
- package/lib/module/modules/section/Section.variants.js +1 -6
- 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 -26
- package/lib/module/modules/segmented-control/SegmentedControl.js +124 -70
- package/lib/module/modules/segmented-control/SegmentedControl.variants.js +11 -43
- package/lib/module/modules/segmented-control/SegmentedControlProps.js +4 -0
- package/lib/module/modules/select/MODULE.md +34 -10
- package/lib/module/modules/select/Select.js +74 -34
- package/lib/module/modules/select/Select.variants.js +39 -16
- 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 +25 -28
- package/lib/module/modules/skeleton/Skeleton.js +54 -53
- package/lib/module/modules/skeleton/Skeleton.variants.js +11 -74
- package/lib/module/modules/skeleton/SkeletonProps.js +4 -0
- package/lib/module/modules/slider/MODULE.md +4 -1
- package/lib/module/modules/slider/Slider.js +7 -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 +32 -14
- package/lib/module/modules/stage-progress/StageProgress.js +136 -59
- package/lib/module/modules/stage-progress/StageProgress.variants.js +57 -20
- 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 +14 -1
- package/lib/module/modules/stat-tile/StatTile.js +51 -21
- package/lib/module/modules/stat-tile/StatTile.variants.js +7 -0
- package/lib/module/modules/stat-tile/StatTileProps.js +4 -0
- package/lib/module/modules/state-block/MODULE.md +12 -3
- package/lib/module/modules/state-block/StateBlock.js +54 -41
- package/lib/module/modules/state-block/StateBlock.variants.js +7 -0
- 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 +57 -0
- package/lib/module/modules/surface/Surface.js +47 -0
- package/lib/module/modules/surface/Surface.variants.js +33 -0
- package/lib/module/modules/surface/SurfaceProps.js +4 -0
- package/lib/module/modules/surface/index.js +4 -0
- package/lib/module/modules/swipeable-row/MODULE.md +12 -2
- package/lib/module/modules/swipeable-row/SwipeableRow.js +57 -13
- package/lib/module/modules/swipeable-row/SwipeableRowProps.js +4 -0
- package/lib/module/modules/switch/MODULE.md +7 -2
- package/lib/module/modules/switch/Switch.js +49 -9
- 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 +11 -14
- package/lib/module/modules/tabs/Tabs.js +115 -51
- package/lib/module/modules/tabs/Tabs.variants.js +6 -6
- package/lib/module/modules/tabs/TabsProps.js +4 -0
- package/lib/module/modules/text/MODULE.md +25 -14
- package/lib/module/modules/text/Text.js +18 -6
- package/lib/module/modules/text/Text.variants.js +116 -44
- package/lib/module/modules/text/TextProps.js +4 -0
- package/lib/module/modules/textarea/MODULE.md +12 -16
- package/lib/module/modules/textarea/Textarea.js +15 -12
- package/lib/module/modules/textarea/Textarea.variants.js +6 -2
- 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 +15 -18
- package/lib/module/modules/toast/Toast.js +75 -55
- package/lib/module/modules/toast/Toast.variants.js +7 -5
- package/lib/module/modules/tooltip/MODULE.md +22 -22
- package/lib/module/modules/tooltip/Tooltip.js +77 -16
- package/lib/module/modules/tooltip/Tooltip.variants.js +8 -1
- 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 +5 -1
- package/lib/module/theme/platform/MODULE.md +16 -8
- package/lib/module/theme/platform/elevation.native.js +1 -51
- package/lib/module/theme/platform/floatingSurface.native.js +75 -0
- package/lib/module/theme/platform/highlight.native.js +59 -0
- package/lib/module/theme/platform/index.js +5 -0
- package/lib/module/theme/platform/motion.native.js +31 -11
- package/lib/module/theme/platform/stateLayer.native.js +14 -0
- package/lib/module/theme/platform/surfaces.native.js +11 -0
- package/lib/module/theme/provider/PixelizeProvider.js +18 -5
- package/lib/module/theme/tokens/MODULE.md +36 -28
- package/lib/module/theme/tokens/THEME-CONTRACT.md +187 -0
- package/lib/module/theme/tokens/assertPalette.js +29 -0
- package/lib/module/theme/tokens/brands/emerald/palette.light.js +12 -9
- package/lib/module/theme/tokens/brands/lavender/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/meadow/palette.light.js +9 -8
- package/lib/module/theme/tokens/brands/radiant/palette.light.js +10 -9
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js +10 -9
- package/lib/module/theme/tokens/brands/skyline/palette.light.js +9 -8
- package/lib/module/theme/tokens/brands/slate/palette.light.js +11 -13
- package/lib/module/theme/tokens/brands/storefront/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/zinc/palette.dark.js +3 -2
- package/lib/module/theme/tokens/brands/zinc/palette.light.js +3 -2
- 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/buildDarkPalette.js +3 -2
- package/lib/module/theme/tokens/builders/finalizePalette.js +34 -0
- package/lib/module/theme/tokens/builders/gradientInk.js +23 -0
- package/lib/module/theme/tokens/builders/liftToContrast.js +44 -0
- package/lib/module/theme/tokens/builders/paletteFromAccent.js +30 -0
- package/lib/module/theme/tokens/builders/placeholderInk.js +22 -0
- package/lib/module/theme/tokens/builders/semanticText.js +14 -0
- package/lib/module/theme/tokens/builders/skeletonShimmer.js +22 -0
- package/lib/module/theme/tokens/builders/surfaceRungs.js +44 -0
- package/lib/module/theme/tokens/index.js +8 -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 +7 -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/AccentGradientFill.d.ts +7 -0
- package/lib/typescript/core/gradient/ShimmerGradientFill.d.ts +8 -0
- package/lib/typescript/core/gradient/darkenHex.d.ts +2 -0
- package/lib/typescript/core/gradient/gradientStops.d.ts +10 -0
- package/lib/typescript/core/gradient/index.d.ts +6 -0
- package/lib/typescript/core/gradient/withAlpha.d.ts +2 -0
- package/lib/typescript/core/haptics/context.d.ts +3 -0
- package/lib/typescript/core/haptics/haptics.d.ts +33 -0
- package/lib/typescript/core/haptics/index.d.ts +6 -0
- package/lib/typescript/core/haptics/useHaptics.d.ts +12 -0
- package/lib/typescript/core/icon/icons/trending-up.d.ts +3 -0
- package/lib/typescript/core/icon/names.d.ts +1 -1
- package/lib/typescript/core/list/VirtualList.d.ts +6 -1
- package/lib/typescript/core/media/expoImage.d.ts +15 -6
- package/lib/typescript/core/media/pickers.d.ts +5 -5
- package/lib/typescript/core/motion/animatedComponents.d.ts +4 -0
- package/lib/typescript/core/motion/config.d.ts +2 -1
- package/lib/typescript/core/motion/index.d.ts +5 -1
- 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 +20 -0
- 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 +2 -1
- package/lib/typescript/core/style/radius.d.ts +2 -0
- package/lib/typescript/index.d.ts +52 -12
- package/lib/typescript/modules/accordion/Accordion.d.ts +2 -37
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts +4 -5
- 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/AlertDialog.variants.d.ts +1 -0
- 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 +3 -1
- 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 +5 -20
- package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +19 -0
- 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 -20
- 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 +3 -4
- 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/BottomSheet.variants.d.ts +3 -1
- 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 -60
- 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 -36
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +24 -59
- 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 +4 -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 +31 -1
- 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 -28
- package/lib/typescript/modules/chip/Chip.variants.d.ts +8 -3
- 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 +3 -3
- package/lib/typescript/modules/combobox/Combobox.d.ts +2 -45
- package/lib/typescript/modules/combobox/Combobox.variants.d.ts +20 -5
- 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 +3 -2
- 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 +17 -4
- 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 +2 -16
- 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/Divider.variants.d.ts +4 -4
- 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 -15
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +1 -0
- 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 +5 -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 -19
- 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 +29 -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 +8 -8
- 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 +3 -17
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts +137 -1
- 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 +8 -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 +3 -11
- package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +1 -2
- 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 +9 -8
- 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/PaginationControls.d.ts +1 -4
- 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 +2 -14
- 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 +2 -31
- package/lib/typescript/modules/screen/Screen.variants.d.ts +4 -0
- 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 +8 -9
- 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/Section.variants.d.ts +0 -3
- 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 +5 -13
- package/lib/typescript/modules/select/Select.variants.d.ts +24 -10
- package/lib/typescript/modules/select/SelectProps.d.ts +25 -0
- package/lib/typescript/modules/select/index.d.ts +3 -2
- 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 +3 -28
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +8 -66
- 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 +31 -10
- 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 -28
- package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +1 -0
- 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 +6 -0
- package/lib/typescript/modules/surface/Surface.variants.d.ts +15 -0
- package/lib/typescript/modules/surface/SurfaceProps.d.ts +17 -0
- package/lib/typescript/modules/surface/index.d.ts +4 -0
- 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 -20
- package/lib/typescript/modules/text/Text.variants.d.ts +14 -11
- 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 +4 -3
- package/lib/typescript/modules/tooltip/Tooltip.d.ts +1 -25
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +7 -0
- 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/index.d.ts +1 -1
- package/lib/typescript/theme/platform/elevation.native.d.ts +1 -31
- package/lib/typescript/theme/platform/floatingSurface.native.d.ts +10 -0
- package/lib/typescript/theme/platform/highlight.native.d.ts +17 -0
- package/lib/typescript/theme/platform/index.d.ts +9 -0
- package/lib/typescript/theme/platform/motion.native.d.ts +33 -13
- package/lib/typescript/theme/platform/stateLayer.native.d.ts +11 -0
- package/lib/typescript/theme/platform/surfaces.native.d.ts +8 -0
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts +1 -1
- package/lib/typescript/theme/provider/types.d.ts +8 -0
- package/lib/typescript/theme/tokens/assertPalette.d.ts +10 -0
- package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts +4 -3
- 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/finalizePalette.d.ts +4 -0
- package/lib/typescript/theme/tokens/builders/gradientInk.d.ts +9 -0
- package/lib/typescript/theme/tokens/builders/liftToContrast.d.ts +9 -0
- package/lib/typescript/theme/tokens/builders/paletteFromAccent.d.ts +3 -0
- package/lib/typescript/theme/tokens/builders/placeholderInk.d.ts +13 -0
- package/lib/typescript/theme/tokens/builders/semanticText.d.ts +4 -0
- package/lib/typescript/theme/tokens/builders/skeletonShimmer.d.ts +9 -0
- package/lib/typescript/theme/tokens/builders/surfaceRungs.d.ts +12 -0
- package/lib/typescript/theme/tokens/index.d.ts +8 -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 +3 -0
- package/lib/typescript/theme/tokens/types.d.ts +10 -9
- package/package.json +114 -5
- package/registry.json +114 -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
|
@@ -1,79 +1,68 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Skeleton — a loading placeholder
|
|
5
|
-
* still on its way. It is its own size (`width`/`height` are component-owned props, not
|
|
6
|
-
* `LayoutStyle` — sizing IS the point of this component) and has exactly one neutral appearance:
|
|
7
|
-
* a resting `bg.sunken` fill cross-faded with a fixed-alpha `fg.default` overlay composited over it
|
|
8
|
-
* (see `resolveSkeletonColors`), pulsing on an `Animated` opacity loop. Purely decorative by default
|
|
9
|
-
* (see `Skeleton.variants.ts` →
|
|
10
|
-
* `resolveSkeletonAccessibility`, the same "decorative unless labelled" contract as `Avatar`).
|
|
11
|
-
*
|
|
12
|
-
* The shimmer is gated on `motion.decorative`, so it runs on high-tier devices only. A skeleton is
|
|
13
|
-
* usually rendered one-per-row across a whole loading list, and a per-row loop is the single most
|
|
14
|
-
* expensive thing a placeholder can do — low/mid tiers and reduce-motion get the static fill. Even
|
|
15
|
-
* on high tier the loop is shaped so it costs zero JS per iteration: see the effect below.
|
|
4
|
+
* Skeleton — a loading placeholder with a translating highlight-band shimmer over a neutral base.
|
|
16
5
|
*/
|
|
17
6
|
|
|
18
|
-
import { memo, useEffect, useMemo
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
7
|
+
import { memo, useEffect, useMemo } from "react";
|
|
8
|
+
import { StyleSheet } from "react-native";
|
|
9
|
+
import Animated, { Easing, ReduceMotion, useAnimatedStyle, useSharedValue, withDelay, withRepeat, withTiming } from "react-native-reanimated";
|
|
10
|
+
import { useReducedMotion } from "../../core/a11y/index.js";
|
|
11
|
+
import { ShimmerGradientFill } from "../../core/gradient/index.js";
|
|
12
|
+
import { useTheme, useThemeColors } from "../../theme/hooks.js";
|
|
13
|
+
import { resolveSkeletonAccessibility, resolveSkeletonColors, resolveSkeletonSize, SKELETON_BAND_WIDTH_RATIO, SKELETON_SHIMMER_DURATION_MS, SKELETON_STAGGER_MS, skeletonStructure } from "./Skeleton.variants.js";
|
|
23
14
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
15
|
export const Skeleton = /*#__PURE__*/memo(function Skeleton({
|
|
25
16
|
shape = "rect",
|
|
26
17
|
width,
|
|
27
18
|
height,
|
|
19
|
+
staggerIndex = 0,
|
|
28
20
|
accessibilityLabel,
|
|
29
21
|
style,
|
|
30
22
|
testID
|
|
31
23
|
}) {
|
|
32
24
|
const theme = useTheme();
|
|
33
|
-
const
|
|
34
|
-
const
|
|
35
|
-
const
|
|
25
|
+
const roleColors = useThemeColors();
|
|
26
|
+
const reducedMotion = useReducedMotion();
|
|
27
|
+
const translateX = useSharedValue(0);
|
|
36
28
|
const size = resolveSkeletonSize(shape, width, height);
|
|
37
29
|
const a11y = resolveSkeletonAccessibility({
|
|
38
30
|
accessibilityLabel
|
|
39
31
|
});
|
|
40
|
-
const colors = useMemo(() => resolveSkeletonColors(
|
|
41
|
-
const shimmer =
|
|
32
|
+
const colors = useMemo(() => resolveSkeletonColors(roleColors), [roleColors]);
|
|
33
|
+
const shimmer = !reducedMotion;
|
|
34
|
+
const bandWidth = size.width * SKELETON_BAND_WIDTH_RATIO;
|
|
42
35
|
useEffect(() => {
|
|
43
|
-
if (!shimmer)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}, [shimmer, motion, pulse]);
|
|
58
|
-
|
|
59
|
-
// The effect cleanup above already stops the loop, but only while `shimmer` stays true across the
|
|
60
|
-
// unmount — this guarantees it regardless of the order React tears the tree down in.
|
|
61
|
-
useEffect(() => () => loop.current?.stop(), []);
|
|
36
|
+
if (!shimmer || size.width <= 0) {
|
|
37
|
+
translateX.value = 0;
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
const travel = size.width + bandWidth;
|
|
41
|
+
const delay = staggerIndex * SKELETON_STAGGER_MS;
|
|
42
|
+
translateX.value = -bandWidth;
|
|
43
|
+
translateX.value = withDelay(delay, withRepeat(withTiming(travel, {
|
|
44
|
+
duration: SKELETON_SHIMMER_DURATION_MS,
|
|
45
|
+
easing: Easing.linear,
|
|
46
|
+
reduceMotion: ReduceMotion.System
|
|
47
|
+
}), -1, false));
|
|
48
|
+
return undefined;
|
|
49
|
+
}, [shimmer, size.width, bandWidth, staggerIndex, translateX]);
|
|
62
50
|
const rootStyle = useMemo(() => [skeletonStructure(theme, {
|
|
63
51
|
shape
|
|
64
52
|
}), {
|
|
65
53
|
width: size.width,
|
|
66
54
|
height: size.height,
|
|
67
55
|
backgroundColor: colors.base
|
|
68
|
-
}, style], [theme, shape, size.width, size.height, colors, style]);
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
56
|
+
}, style], [theme, shape, size.width, size.height, colors.base, style]);
|
|
57
|
+
const bandStyle = useAnimatedStyle(() => ({
|
|
58
|
+
transform: [{
|
|
59
|
+
translateX: translateX.value
|
|
60
|
+
}]
|
|
61
|
+
}));
|
|
62
|
+
const bandSizeStyle = useMemo(() => ({
|
|
63
|
+
width: bandWidth,
|
|
64
|
+
height: size.height
|
|
65
|
+
}), [bandWidth, size.height]);
|
|
77
66
|
return /*#__PURE__*/_jsx(Animated.View, {
|
|
78
67
|
testID: testID,
|
|
79
68
|
accessible: a11y.accessible,
|
|
@@ -83,10 +72,22 @@ export const Skeleton = /*#__PURE__*/memo(function Skeleton({
|
|
|
83
72
|
"aria-hidden": a11y["aria-hidden"],
|
|
84
73
|
style: rootStyle,
|
|
85
74
|
children: shimmer && /*#__PURE__*/_jsx(Animated.View, {
|
|
86
|
-
testID: testID === undefined ? undefined : `${testID}-
|
|
87
|
-
|
|
88
|
-
|
|
75
|
+
testID: testID === undefined ? undefined : `${testID}-shimmer`,
|
|
76
|
+
style: [styles.band, bandSizeStyle, bandStyle, {
|
|
77
|
+
pointerEvents: 'none'
|
|
78
|
+
}],
|
|
79
|
+
children: /*#__PURE__*/_jsx(ShimmerGradientFill, {
|
|
80
|
+
base: colors.base,
|
|
81
|
+
highlight: colors.highlight
|
|
82
|
+
})
|
|
89
83
|
})
|
|
90
84
|
});
|
|
91
85
|
});
|
|
86
|
+
const styles = StyleSheet.create({
|
|
87
|
+
band: {
|
|
88
|
+
position: "absolute",
|
|
89
|
+
top: 0,
|
|
90
|
+
left: 0
|
|
91
|
+
}
|
|
92
|
+
});
|
|
92
93
|
//# sourceMappingURL=Skeleton.js.map
|
|
@@ -3,28 +3,8 @@
|
|
|
3
3
|
/**
|
|
4
4
|
* Skeleton's style + accessibility resolution — the pure functions the component (and its tests)
|
|
5
5
|
* depend on, plus the themed structural variant resolver.
|
|
6
|
-
*
|
|
7
|
-
* The split every sibling module copies (see `Button.variants.ts` / `Avatar.variants.ts`):
|
|
8
|
-
* - STRUCTURE (the shape's corner radius) lives in the `createThemedVariants` resolver below —
|
|
9
|
-
* static per (brand, mode), registered once via `StyleSheet.create`.
|
|
10
|
-
* - SIZE is NOT theme-driven: a skeleton's whole job is standing in for a specific piece of
|
|
11
|
-
* content, so `width`/`height` are per-instance numbers the caller supplies (or a per-shape
|
|
12
|
-
* fallback), resolved by `resolveSkeletonSize` and applied inline — never a themed variant,
|
|
13
|
-
* since there is no closed set of values to register.
|
|
14
|
-
* - COLOUR is resolved from the theme's ROLE colours (`resolveSkeletonColors`), never a raw ramp,
|
|
15
|
-
* never a hardcoded hex. There is no `tone` prop to widen — a loading placeholder has exactly
|
|
16
|
-
* one neutral appearance (same reasoning as `resolveAvatarColors`). `pulse` is `base` composited
|
|
17
|
-
* with a fixed-alpha overlay (see `resolveSkeletonColors`), not a second role lookup — two
|
|
18
|
-
* arbitrary role rungs are not guaranteed to differ enough to read as a shimmer.
|
|
19
|
-
* - ACCESSIBILITY prop derivation is `resolveSkeletonAccessibility`, kept pure so the "decorative
|
|
20
|
-
* unless labelled" contract is unit-testable without rendering React Native (same shape as
|
|
21
|
-
* `resolveAvatarAccessibility`).
|
|
22
|
-
*
|
|
23
|
-
* Free of React and of any lucide import, so the WCAG + behaviour tests import it directly (mocking
|
|
24
|
-
* only `react-native`'s `StyleSheet`, as `core/style` and every sibling module's tests do).
|
|
25
6
|
*/
|
|
26
7
|
|
|
27
|
-
import { compositeOver } from "../../theme/tokens/builders/color.js";
|
|
28
8
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
29
9
|
/** Fallback dp size per shape, used whenever the caller gives neither `width` nor `height`. */
|
|
30
10
|
export const SKELETON_DEFAULT_SIZE = {
|
|
@@ -42,12 +22,10 @@ export const SKELETON_DEFAULT_SIZE = {
|
|
|
42
22
|
}
|
|
43
23
|
};
|
|
44
24
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
* silently drifting apart.
|
|
50
|
-
*/
|
|
25
|
+
// Ambient loop, not a one-shot transition — deliberately outside `MOTION_DURATION`; see MODULE.md.
|
|
26
|
+
export const SKELETON_SHIMMER_DURATION_MS = 1400;
|
|
27
|
+
export const SKELETON_BAND_WIDTH_RATIO = 0.4;
|
|
28
|
+
export const SKELETON_STAGGER_MS = 100;
|
|
51
29
|
export function resolveSkeletonSize(shape, width, height) {
|
|
52
30
|
const fallback = SKELETON_DEFAULT_SIZE[shape];
|
|
53
31
|
if (shape === "circle") {
|
|
@@ -62,45 +40,13 @@ export function resolveSkeletonSize(shape, width, height) {
|
|
|
62
40
|
height: height ?? fallback.height
|
|
63
41
|
};
|
|
64
42
|
}
|
|
65
|
-
|
|
66
|
-
// need a guaranteed visible delta, not a role lookup"). `fg.default` is dark in light mode and light
|
|
67
|
-
// in dark mode, so compositing it darkens/lightens `base` for free with no `if (dark)` branch. ~30%
|
|
68
|
-
// alpha keeps the composited contrast ratio ≥ `MIN_PULSE_CONTRAST` (see `Skeleton.test.ts`) on every
|
|
69
|
-
// brand × mode, with comfortable headroom above the floor.
|
|
70
|
-
const PULSE_OVERLAY_ALPHA_HEX = "4d"; // 0x4d / 0xff ≈ 30%
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Maps the placeholder onto role colours, then derives `pulse` as `base` composited with a small,
|
|
74
|
-
* fixed-alpha overlay — never a second role lookup. A prior version returned `base: bg.sunken, pulse:
|
|
75
|
-
* bg.raised`: two role rungs whose luminance gap is whatever the brand's ramp happens to produce, and
|
|
76
|
-
* an independent re-measurement found that gap collapses to visually-indistinguishable on every
|
|
77
|
-
* brand × mode — the shimmer was a silent no-op everywhere, not just on one theme. Compositing a
|
|
78
|
-
* fixed-alpha overlay makes the luminance delta a controlled constant instead of an incidental one,
|
|
79
|
-
* so it can't collapse regardless of how a brand's `bg.raised`/`bg.sunken` rungs happen to relate.
|
|
80
|
-
*/
|
|
43
|
+
/** Sunken base + skeleton-only shimmer highlight (not shared `bg.hover`). */
|
|
81
44
|
export function resolveSkeletonColors(colors) {
|
|
82
|
-
const base = colors.bg.sunken;
|
|
83
|
-
const pulse = compositeOver(`${colors.fg.default}${PULSE_OVERLAY_ALPHA_HEX}`, base);
|
|
84
45
|
return {
|
|
85
|
-
base,
|
|
86
|
-
|
|
46
|
+
base: colors.bg.sunken,
|
|
47
|
+
highlight: colors.bg.skeletonShimmer
|
|
87
48
|
};
|
|
88
49
|
}
|
|
89
|
-
/**
|
|
90
|
-
* Derives the accessibility surface once, purely, so the "decorative unless labelled" contract is
|
|
91
|
-
* testable without a renderer (same shape as `resolveAvatarAccessibility`):
|
|
92
|
-
* - no label → the placeholder stands in for content that hasn't rendered yet and carries no
|
|
93
|
-
* meaning of its own, so it is hidden from assistive tech rather than read as a bare,
|
|
94
|
-
* unexplained box.
|
|
95
|
-
* - a label (e.g. `"Loading"`) → exposed as one `"progressbar"`-role element carrying it, with
|
|
96
|
-
* `busy: true` (WCAG 1.4.1 — the loading state is announced, not left to be inferred from a box
|
|
97
|
-
* appearing on screen).
|
|
98
|
-
*
|
|
99
|
-
* `aria-hidden` covers BOTH platforms in one prop: RN maps it onto `accessibilityElementsHidden`
|
|
100
|
-
* (iOS) + `importantForAccessibility="no-hide-descendants"` (Android), and react-native-web forwards
|
|
101
|
-
* it to the DOM — where those two native props reach nothing, so an unlabelled skeleton used to stay
|
|
102
|
-
* fully exposed to a screen reader on web.
|
|
103
|
-
*/
|
|
104
50
|
export function resolveSkeletonAccessibility(input) {
|
|
105
51
|
const hasLabel = input.accessibilityLabel !== undefined && input.accessibilityLabel.length > 0;
|
|
106
52
|
return {
|
|
@@ -111,17 +57,6 @@ export function resolveSkeletonAccessibility(input) {
|
|
|
111
57
|
"aria-hidden": hasLabel ? undefined : true
|
|
112
58
|
};
|
|
113
59
|
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Structural styles only — the shape's corner radius, plus `overflow: "hidden"` so the animated
|
|
117
|
-
* shimmer overlay (an absolutely-positioned sibling, see `Skeleton.tsx`) clips to it without each
|
|
118
|
-
* shape recomputing the same radius on that overlay. No colour (state-driven, applied inline over
|
|
119
|
-
* this), so this compiles once per theme identity via the `WeakMap`-cached themed resolver and
|
|
120
|
-
* never rebuilds per render.
|
|
121
|
-
*
|
|
122
|
-
* Unlike `Button`, there is no focus ring here that needs to escape the bounds, so `overflow:
|
|
123
|
-
* "hidden"` is safe — nothing else needs to be drawn outside this box.
|
|
124
|
-
*/
|
|
125
60
|
export const skeletonStructure = createThemedVariants(theme => ({
|
|
126
61
|
base: {
|
|
127
62
|
overflow: "hidden"
|
|
@@ -129,10 +64,12 @@ export const skeletonStructure = createThemedVariants(theme => ({
|
|
|
129
64
|
variants: {
|
|
130
65
|
shape: {
|
|
131
66
|
rect: {
|
|
132
|
-
borderRadius: theme.radii.
|
|
67
|
+
borderRadius: theme.radii.md,
|
|
68
|
+
borderCurve: "continuous"
|
|
133
69
|
},
|
|
134
70
|
circle: {
|
|
135
|
-
borderRadius: theme.radii.full
|
|
71
|
+
borderRadius: theme.radii.full,
|
|
72
|
+
borderCurve: "continuous"
|
|
136
73
|
},
|
|
137
74
|
text: {
|
|
138
75
|
borderRadius: theme.radii.sm
|
|
@@ -13,6 +13,7 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
|
|
|
13
13
|
| `index.ts` | Public surface: `Slider`, `SliderProps`, `SliderSize`. |
|
|
14
14
|
| `__tests__/Slider.test.ts` | Pure: WCAG contrast (all brands × modes) + drag-math/step/accessibility contracts. |
|
|
15
15
|
| `__tests__/Slider.render.test.tsx` | Render: layout-driven positioning, the REAL `PanResponder` gesture fired end-to-end, increment/decrement actions, disabled. |
|
|
16
|
+
| `__tests__/Slider.dom.test.tsx` | Real DOM (`jest.web.config.js`): the flat `aria-value*` props and the Tab stop. |
|
|
16
17
|
|
|
17
18
|
## Props
|
|
18
19
|
|
|
@@ -67,7 +68,7 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
|
|
|
67
68
|
- **2.5.5 / 2.5.8 (target size)** — the row's rendered height is `thumbSize` (16sm/20md);
|
|
68
69
|
`SLIDER_SIZES[size].hitSlop`, applied as the row's `hitSlop`, expands it to the 44dp floor —
|
|
69
70
|
ACHIEVED via `hitSlop` on the actual responder node, not just arithmetic (`Slider.test.ts`).
|
|
70
|
-
- **1.4.11 (non-text contrast)** — measured, not assumed, for all
|
|
71
|
+
- **1.4.11 (non-text contrast)** — measured, not assumed, for all 9 brands × both modes
|
|
71
72
|
(`Slider.test.ts`):
|
|
72
73
|
- Fill vs track: `accent.text` (NOT `accent.solid` — measured as low as ~1.6:1 against `bg.sunken`
|
|
73
74
|
on rosewood light, the same class of gap `ProgressBar` found) clears ≥ 4.4:1 against `bg.sunken`.
|
|
@@ -119,3 +120,5 @@ Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLA
|
|
|
119
120
|
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
120
121
|
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
121
122
|
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
123
|
+
|
|
124
|
+
- **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
|
|
@@ -188,18 +188,19 @@ export const Slider = /*#__PURE__*/memo(function Slider(props) {
|
|
|
188
188
|
size
|
|
189
189
|
}), disabled && styles.dimmed, style],
|
|
190
190
|
children: [focused && !disabled && /*#__PURE__*/_jsx(View, {
|
|
191
|
-
pointerEvents: "none",
|
|
192
191
|
testID: testID === undefined ? undefined : `${testID}-focus-ring`,
|
|
193
192
|
style: [styles.focusRing, {
|
|
194
193
|
borderColor: theme.colors.border.focus,
|
|
195
|
-
borderRadius: theme.radii.
|
|
194
|
+
borderRadius: theme.radii.md + FOCUS_RING_GAP + FOCUS_RING_WIDTH,
|
|
195
|
+
borderCurve: "continuous",
|
|
196
|
+
pointerEvents: "none"
|
|
196
197
|
}]
|
|
197
198
|
}), /*#__PURE__*/_jsx(View, {
|
|
198
|
-
pointerEvents: "none",
|
|
199
199
|
style: [sliderTrackStructure(theme, {
|
|
200
200
|
size
|
|
201
201
|
}), {
|
|
202
|
-
backgroundColor: trackColors.track
|
|
202
|
+
backgroundColor: trackColors.track,
|
|
203
|
+
pointerEvents: "none"
|
|
203
204
|
}],
|
|
204
205
|
children: /*#__PURE__*/_jsx(View, {
|
|
205
206
|
testID: testID === undefined ? undefined : `${testID}-fill`,
|
|
@@ -209,7 +210,6 @@ export const Slider = /*#__PURE__*/memo(function Slider(props) {
|
|
|
209
210
|
}]
|
|
210
211
|
})
|
|
211
212
|
}), /*#__PURE__*/_jsx(View, {
|
|
212
|
-
pointerEvents: "none",
|
|
213
213
|
testID: testID === undefined ? undefined : `${testID}-thumb`,
|
|
214
214
|
style: [sliderThumbStructure(theme, {
|
|
215
215
|
size
|
|
@@ -217,7 +217,8 @@ export const Slider = /*#__PURE__*/memo(function Slider(props) {
|
|
|
217
217
|
left: `${fraction * 100}%`,
|
|
218
218
|
marginLeft: -(spec.thumbSize / 2),
|
|
219
219
|
backgroundColor: thumbColors.fill,
|
|
220
|
-
borderColor: thumbColors.border
|
|
220
|
+
borderColor: thumbColors.border,
|
|
221
|
+
pointerEvents: "none"
|
|
221
222
|
}]
|
|
222
223
|
})]
|
|
223
224
|
});
|
|
@@ -16,10 +16,12 @@
|
|
|
16
16
|
* only `react-native`'s `StyleSheet`, as `core/style` and `Button.variants.ts` do).
|
|
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 };
|
|
22
|
+
|
|
20
23
|
/** Same touch-target floor as every other interactive control in this library (44dp, WCAG 2.5.5 AAA). */
|
|
21
|
-
|
|
22
|
-
const slopFor = dimension => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - dimension) / 2));
|
|
24
|
+
|
|
23
25
|
export const SLIDER_SIZES = {
|
|
24
26
|
sm: {
|
|
25
27
|
trackHeight: 4,
|
|
@@ -12,6 +12,7 @@ mounting it always means work is in progress.
|
|
|
12
12
|
| `index.ts` | Public surface: `Spinner`, `SpinnerProps`, `SpinnerSize`, `SpinnerTone`. No `icon` prop, so no `IconName` re-export. |
|
|
13
13
|
| `__tests__/Spinner.test.ts` | Pure: WCAG 1.4.11 contrast (all brands × modes) + the size→box invariant + the accessibility contract. |
|
|
14
14
|
| `__tests__/Spinner.render.test.tsx` | Render: name/busy, each size's resolved box, tone's resolved colour, reduced-motion freeze, glyph hidden from AT, consumer `style` last. |
|
|
15
|
+
| `__tests__/Spinner.dom.test.tsx` | Real DOM (`jest.web.config.js`): the flat `aria-busy` / `aria-hidden` pair reaching the DOM. |
|
|
15
16
|
|
|
16
17
|
## Props
|
|
17
18
|
|
|
@@ -53,13 +54,13 @@ the scale lives on the child, never the box.
|
|
|
53
54
|
`accessibilityElementsHidden` + `importantForAccessibility="no-hide-descendants"` for native.
|
|
54
55
|
- **1.4.11 (Graphical Objects)** — a spinner is a graphical object required to understand that work
|
|
55
56
|
is ongoing, so both tones are measured ≥ 3:1 against `bg.canvas`, `bg.surface`, AND `bg.raised` on
|
|
56
|
-
all
|
|
57
|
+
all 9 brands × both modes (`Spinner.test.ts`) — never eyeballed.
|
|
57
58
|
- **2.3.3 (reduced motion)** — see "Reduced motion" below.
|
|
58
59
|
- **Touch target (2.5.x)** — N/A. A Spinner is never interactive; there is no `hitSlop`.
|
|
59
60
|
|
|
60
61
|
## Reduced motion — frozen, not removed
|
|
61
62
|
|
|
62
|
-
`
|
|
63
|
+
`useMotion().enabled` gates `animating`: when reduce-motion is on, the glyph stops spinning
|
|
63
64
|
(`animating={false}`) rather than being conveyed through motion alone. `hidesWhenStopped={false}`
|
|
64
65
|
(iOS otherwise defaults this to `true`) keeps a still-visible ring rather than the glyph vanishing —
|
|
65
66
|
freezing the motion shouldn't also remove the only visual cue a sighted, non-AT user has that
|
|
@@ -1,18 +1,32 @@
|
|
|
1
|
-
# stage-progress/
|
|
1
|
+
# stage-progress/ — a horizontal pipeline in pills, bar, stepper or chevron form
|
|
2
2
|
|
|
3
|
-
Horizontal pipeline — `variant`: `pills` | `bar` | `stepper`. `value` is active stage id.
|
|
3
|
+
Horizontal pipeline — `variant`: `pills` | `bar` | `stepper` | `chevron`. `value` is active stage id.
|
|
4
4
|
|
|
5
5
|
## Files
|
|
6
6
|
|
|
7
7
|
| File | Role |
|
|
8
8
|
|------|------|
|
|
9
9
|
| `StageProgress.variants.ts` | `resolveStageState` / `resolveActiveStageIndex`, the accessibility resolvers, `resolveStageProgressColors(RoleColors)`, and the structure resolvers. Plain, hook-free. |
|
|
10
|
-
| `
|
|
10
|
+
| `index.ts` | Public surface: `StageProgress`, `StageProgressProps`, `StageProgressStage`, `StageProgressVariant`, `StageState`. |
|
|
11
|
+
| `__tests__/StageProgress.test.ts` | Pure: stage state, active index, the accessibility + colour resolvers. |
|
|
12
|
+
| `__tests__/StageProgress.render.test.tsx` | Render: each variant, press gating, focus ring, `aria-busy`. |
|
|
13
|
+
| `StageProgress.tsx` | Renders the row; picks the fill/text pair per stage state and wraps an interactive stage in the memoized `StagePressable` (scale/opacity via `usePressState` + `android_ripple`), same pattern as `Button`/`RadioGroup`. |
|
|
11
14
|
|
|
12
15
|
## Props
|
|
13
16
|
|
|
14
|
-
|
|
15
|
-
|
|
17
|
+
| Prop | Type | Default | Notes |
|
|
18
|
+
|------|------|---------|-------|
|
|
19
|
+
| `stages` | `readonly StageProgressStage[]` | — | `{ id, label, disabled? }`. |
|
|
20
|
+
| `value` | `string` | — | Active stage id. |
|
|
21
|
+
| `variant` | `pills \| bar \| stepper \| chevron` | `pills` | `chevron` uses the same pill geometry with a chevron separator. |
|
|
22
|
+
| `size` | `sm \| md \| lg` | `md` | Pill/stepper typography and min heights. |
|
|
23
|
+
| `colorScheme` | `default \| neutral` | `default` | `neutral` mutes fills to sunken/canvas tones. |
|
|
24
|
+
| `isLoading` | `boolean` | `false` | When true, the active stage shows a `Spinner` instead of its label; root sets `aria-busy`. |
|
|
25
|
+
| `minStageWidth` | `number` | from `size` | Minimum width per stage pill (layout). |
|
|
26
|
+
| `readOnly` | `boolean` | `true` | `false` makes stages pressable, but only when `onStagePress` is also given. |
|
|
27
|
+
| `onStagePress` | `(stageId: string) => void` | — | Omitted → stages render read-only regardless of `readOnly`. |
|
|
28
|
+
| `style` | `LayoutStyle` | — | Outermost, once, last. |
|
|
29
|
+
| `testID` | `string` | — | Seeds per-stage and focus-ring ids. |
|
|
16
30
|
|
|
17
31
|
## Accessibility
|
|
18
32
|
|
|
@@ -24,9 +38,11 @@ Horizontal pipeline — `variant`: `pills` | `bar` | `stepper`. `value` is activ
|
|
|
24
38
|
- **`pills` / `stepper`** label each stage instead: `resolveStageAccessibilityLabel` appends the
|
|
25
39
|
state — `", completed"` / `", current stage"` / `", not started"`. That suffix is the WCAG 1.4.1
|
|
26
40
|
fix; fill colour is otherwise the only thing separating a completed stage from an upcoming one, and
|
|
27
|
-
there is no "completed" state to announce directly. `resolveStageAccessibilityState` supplies
|
|
28
|
-
`aria-
|
|
29
|
-
|
|
41
|
+
there is no "completed" state to announce directly. `resolveStageAccessibilityState` supplies
|
|
42
|
+
`aria-current="step"` (active only, WEB) + `accessibilityState={{ selected }}` (the NATIVE
|
|
43
|
+
fallback — React Native has no "current" concept) — not `aria-selected`, which is invalid ARIA on
|
|
44
|
+
`role="button"` and on a read-only stage's bare `View` alike (2026-08 sweep; mirrors `pagination`'s
|
|
45
|
+
`aria-current="page"` for "the page you're on", token `"step"` here instead).
|
|
30
46
|
- **WCAG 2.4.7** — an interactive stage (`readOnly={false}`, not `disabled`) draws a `border.focus`
|
|
31
47
|
ring (`${testID}-focus-ring-${stage.id}`) while focused. It is drawn **inside** the stage's
|
|
32
48
|
bounds: `stageProgressRowStructure` clips to `overflow: "hidden"` and spaces stages one space step
|
|
@@ -38,8 +54,8 @@ Horizontal pipeline — `variant`: `pills` | `bar` | `stepper`. `value` is activ
|
|
|
38
54
|
`MIN_TOUCH_TARGET` 44. `STAGE_PILL_MIN_HEIGHT` 32 and `STAGE_STEPPER_CIRCLE` 28 are padded to it by
|
|
39
55
|
vertical-only `hitSlop` (`STAGE_PILL_HIT_SLOP`, `STAGE_STEPPER_HIT_SLOP`) — both shapes already
|
|
40
56
|
exceed 44 horizontally (`minWidth` 72 / 64), so horizontal slop would only overlap neighbours. Slop
|
|
41
|
-
is applied only where a stage is pressable; `readOnly`
|
|
42
|
-
no `Pressable`, and need no target.
|
|
57
|
+
is applied only where a stage is pressable; `readOnly`, `disabled`, and no-`onStagePress` stages
|
|
58
|
+
render a plain `View`, no `Pressable`, and need no target.
|
|
43
59
|
|
|
44
60
|
## Contrast (measured, 9 brands × both modes)
|
|
45
61
|
|
|
@@ -50,10 +66,10 @@ no `Pressable`, and need no target.
|
|
|
50
66
|
| `upcomingText` on `upcomingFill` (`fg.muted` / `bg.sunken`) | 6.45 |
|
|
51
67
|
| `upcomingText` on `bg.canvas` (the `stepper` label under the circle) | 6.52 |
|
|
52
68
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
(`bg.sunken` at ~1.01–1.12 on the canvas); the
|
|
56
|
-
label, not by contrast.
|
|
69
|
+
Pills and stepper circles carry no outline any more — `theme.elevation.sm` lifts them off the row
|
|
70
|
+
instead (Wave 5 tonal restyle), the same "tone/depth, not a hairline" treatment `Card`'s elevated
|
|
71
|
+
variant uses. Bar-segment fills are deliberately quiet (`bg.sunken` at ~1.01–1.12 on the canvas); the
|
|
72
|
+
state they encode is carried by the progressbar label, not by contrast.
|
|
57
73
|
|
|
58
74
|
## Known gaps
|
|
59
75
|
|
|
@@ -62,3 +78,5 @@ label, not by contrast.
|
|
|
62
78
|
cannot move outside the stage — the row clips — so a fix would be a token-level decision, not a
|
|
63
79
|
change here.
|
|
64
80
|
- There is no arrow-key path between stages: each interactive stage is its own tab stop.
|
|
81
|
+
|
|
82
|
+
- **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
|