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
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useCallback, useMemo } from "react";
|
|
4
|
+
import { View } from "react-native";
|
|
5
|
+
import { themeNames } from "../../theme/index.js";
|
|
6
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
7
|
+
import { Chip, ChipGroup } from "../chip/index.js";
|
|
8
|
+
import { SegmentedControl } from "../segmented-control/index.js";
|
|
9
|
+
import { Text } from "../text/index.js";
|
|
10
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
11
|
+
export const AppearanceSettings = /*#__PURE__*/memo(function AppearanceSettings({
|
|
12
|
+
brand,
|
|
13
|
+
mode,
|
|
14
|
+
onBrandChange,
|
|
15
|
+
onModeChange,
|
|
16
|
+
style,
|
|
17
|
+
testID
|
|
18
|
+
}) {
|
|
19
|
+
const theme = useTheme();
|
|
20
|
+
const modeOptions = useMemo(() => [{
|
|
21
|
+
value: "light",
|
|
22
|
+
label: "Light"
|
|
23
|
+
}, {
|
|
24
|
+
value: "dark",
|
|
25
|
+
label: "Dark"
|
|
26
|
+
}], []);
|
|
27
|
+
const handleMode = useCallback(value => onModeChange(value), [onModeChange]);
|
|
28
|
+
const handleBrand = useCallback(next => () => onBrandChange(next), [onBrandChange]);
|
|
29
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
30
|
+
testID: testID,
|
|
31
|
+
style: [{
|
|
32
|
+
gap: theme.space[4]
|
|
33
|
+
}, style],
|
|
34
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
35
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
36
|
+
variant: "body-sm",
|
|
37
|
+
children: "Colour mode"
|
|
38
|
+
}), /*#__PURE__*/_jsx(SegmentedControl, {
|
|
39
|
+
options: modeOptions,
|
|
40
|
+
value: mode,
|
|
41
|
+
onChange: handleMode
|
|
42
|
+
})]
|
|
43
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
44
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
45
|
+
variant: "body-sm",
|
|
46
|
+
children: "Brand"
|
|
47
|
+
}), /*#__PURE__*/_jsx(ChipGroup, {
|
|
48
|
+
wrap: true,
|
|
49
|
+
children: themeNames.map(name => /*#__PURE__*/_jsx(Chip, {
|
|
50
|
+
label: name,
|
|
51
|
+
selected: brand === name,
|
|
52
|
+
onPress: handleBrand(name)
|
|
53
|
+
}, name))
|
|
54
|
+
})]
|
|
55
|
+
})]
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=AppearanceSettings.js.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# appearance-settings/ — a brand and light/dark mode picker
|
|
2
|
+
|
|
3
|
+
Brand + light/dark picker for a settings screen: a `SegmentedControl` over `AppearanceColorMode`
|
|
4
|
+
(`"light"` | `"dark"`) and a wrapping `ChipGroup` over `themeNames`.
|
|
5
|
+
|
|
6
|
+
## Exports
|
|
7
|
+
|
|
8
|
+
- `AppearanceSettings` — `brand`, `mode`, `onBrandChange`, `onModeChange`, layout-only `style`, `testID`
|
|
9
|
+
- `AppearanceColorMode` — `"light" | "dark"`, not the theme's own `ThemeMode` (no `"system"` option here)
|
|
@@ -18,8 +18,10 @@
|
|
|
18
18
|
* only `react-native`'s `StyleSheet`, as `core/style` and `Button.variants.ts` do).
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
|
+
import { MIN_TOUCH_TARGET } from "../../core/a11y/touchTarget.js";
|
|
21
22
|
import { resolveFilledAccent } from "../../theme/tokens/builders/accentText.js";
|
|
22
23
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
24
|
+
export { MIN_TOUCH_TARGET };
|
|
23
25
|
|
|
24
26
|
/** `circle` for a person, `rounded` for an organisation/product, `square` for tiles/thumbnails. */
|
|
25
27
|
|
|
@@ -10,7 +10,7 @@ which is exactly why its accessibility default is the one place it deliberately
|
|
|
10
10
|
| File | Role |
|
|
11
11
|
|------|------|
|
|
12
12
|
| `Avatar.tsx` | The component. Fallback precedence (image → initials → placeholder), a11y wiring. |
|
|
13
|
-
| `Avatar.variants.ts` | Pure resolvers (`AVATAR_SIZES`, `resolveAvatarColors`, `resolveAvatarIdentityColors`, `avatarIdentityRamp`, `resolveAvatarAccessibility`) + the themed structural variant resolver `avatarStructure`. No React. |
|
|
13
|
+
| `Avatar.variants.ts` | Pure resolvers (`AVATAR_SIZES`, `resolveAvatarColors`, `resolveAvatarIdentityColors`, `avatarIdentityRamp`, `resolveAvatarAccessibility`) + the themed structural variant resolver `avatarStructure`. Re-exports `MIN_TOUCH_TARGET` from `core/a11y/touchTarget` for tests only — this module is not interactive. No React. |
|
|
14
14
|
| `index.ts` | Public surface: `Avatar`, `AvatarProps`, `AvatarSize`, `AvatarShape`. |
|
|
15
15
|
| `__tests__/Avatar.test.ts` | Pure: WCAG contrast for the neutral **and** every identity fill (all brands × modes) + the identity hash + the size scale + the a11y contract. |
|
|
16
16
|
| `__tests__/Avatar.render.test.tsx` | Render: fallback precedence, size scale, shape, identity fill, recycling key, decorative-vs-labelled a11y. |
|
|
@@ -20,7 +20,7 @@ which is exactly why its accessibility default is the one place it deliberately
|
|
|
20
20
|
| Prop | Type | Default | Notes |
|
|
21
21
|
|------|------|---------|-------|
|
|
22
22
|
| `size` | `xs \| sm \| md \| lg \| xl` | `md` | Diameters 24 / 32 / 40 / 56 / 72 dp. |
|
|
23
|
-
| `shape` | `circle \| rounded` | `circle` | `
|
|
23
|
+
| `shape` | `circle \| rounded \| square` | `circle` | `circle` is `radii.full` (a person), `rounded` is `radii.lg` (an org/product), `square` is `radii.none` (a tile/thumbnail). |
|
|
24
24
|
| `source` | `{ uri: string }` | — | A remote image. Wins over `initials` when present. |
|
|
25
25
|
| `initials` | `string` | — | Shown when there is no `source`. Clipped to the first two characters. |
|
|
26
26
|
| `identity` | `string` | — | Seeds a stable hashed fill for the initials/placeholder state. Absent → the neutral fill. |
|
|
@@ -72,7 +72,7 @@ fewer place to special-case the optional-peer fallback.
|
|
|
72
72
|
contract is unit-tested by measuring real palettes — never eyeballed.
|
|
73
73
|
3. **`radii.full` clips a circle for any diameter.** One token (a finite `9999`, not `Infinity` —
|
|
74
74
|
RN rejects non-finite style values) covers every size instead of each variant computing its own
|
|
75
|
-
`box / 2`;
|
|
75
|
+
`box / 2`; the other two shapes swap it for `radii.lg` / `radii.none`.
|
|
76
76
|
4. **`style: LayoutStyle` last and once, no `{...rest}`** — internals never receive consumer style.
|
|
77
77
|
|
|
78
78
|
## Testing note — hidden elements and React Native Testing Library
|
|
@@ -8,6 +8,7 @@ overflow pill when `avatars.length` exceeds `max`.
|
|
|
8
8
|
| File | Role |
|
|
9
9
|
|------|------|
|
|
10
10
|
| `AvatarGroup.tsx` | The component. Composes `Avatar` + overflow pill; `style` last. |
|
|
11
|
+
| `AvatarGroupProps.ts` | `AvatarGroupProps` + `AvatarGroupItem`, with the per-prop JSDoc consumers see on hover. |
|
|
11
12
|
| `AvatarGroup.variants.ts` | Pure resolvers (colours, overlap math, overflow counts) + themed structural resolvers. |
|
|
12
13
|
| `index.ts` | Public surface: `AvatarGroup`, `AvatarGroupProps`, `AvatarGroupItem`, `AvatarSize`. |
|
|
13
14
|
| `__tests__/AvatarGroup.test.ts` | Pure: overflow math, WCAG on overflow pill label. |
|
|
@@ -32,7 +33,7 @@ overflow pill when `avatars.length` exceeds `max`.
|
|
|
32
33
|
consumer doesn't set `AvatarGroupItem.accessibilityLabel` — a grouped face has no adjacent visible
|
|
33
34
|
name to lean on, unlike a standalone `Avatar`, so leaving it unlabeled would leave it silent.
|
|
34
35
|
|
|
35
|
-
## Borders
|
|
36
|
+
## Borders
|
|
36
37
|
|
|
37
38
|
The `AVATAR_GROUP_RING_WIDTH` ring (`avatarGroupItemStructure`) is deliberately KEPT, unlike other
|
|
38
39
|
modules' container hairlines: it is drawn in `colors.ring` (`bg.canvas`, not a visible stroke
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { memo, useMemo } from "react";
|
|
4
|
+
import { Pressable, StyleSheet, View } from "react-native";
|
|
5
|
+
import { withAlpha } from "../../core/gradient/index.js";
|
|
6
|
+
import { MOTION_TRANSFORM } from "../../core/motion/index.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
const SCRIM = withAlpha("#000000", MOTION_TRANSFORM.scrimOpacity);
|
|
9
|
+
export const Backdrop = /*#__PURE__*/memo(function Backdrop({
|
|
10
|
+
visible = true,
|
|
11
|
+
onPress,
|
|
12
|
+
style,
|
|
13
|
+
testID
|
|
14
|
+
}) {
|
|
15
|
+
const rootStyle = useMemo(() => [styles.fill, {
|
|
16
|
+
backgroundColor: SCRIM
|
|
17
|
+
}, style], [style]);
|
|
18
|
+
if (!visible) return null;
|
|
19
|
+
if (onPress) {
|
|
20
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
21
|
+
accessibilityRole: "button",
|
|
22
|
+
accessibilityLabel: "Dismiss",
|
|
23
|
+
onPress: onPress,
|
|
24
|
+
style: rootStyle,
|
|
25
|
+
testID: testID
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
return /*#__PURE__*/_jsx(View, {
|
|
29
|
+
style: [rootStyle, {
|
|
30
|
+
pointerEvents: 'none'
|
|
31
|
+
}],
|
|
32
|
+
testID: testID
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
const styles = StyleSheet.create({
|
|
36
|
+
fill: StyleSheet.absoluteFill
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=Backdrop.js.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# backdrop/ — a full-screen scrim for sheets and overlays
|
|
2
|
+
|
|
3
|
+
Full-screen scrim using `MOTION_TRANSFORM.scrimOpacity`. Pairs with sheets and overlays; prefer this over hand-rolled `absoluteFill` + hex.
|
|
4
|
+
|
|
5
|
+
## Exports
|
|
6
|
+
|
|
7
|
+
- `Backdrop` — `visible` (default `true`; `false` renders nothing), `onPress`, layout-only `style`, `testID`
|
|
8
|
+
|
|
9
|
+
With `onPress` it is a `Pressable` with `accessibilityRole="button"` and the label `"Dismiss"`;
|
|
10
|
+
without it, a non-interactive `View` with `pointerEvents: "none"`. It never animates — enter/exit
|
|
11
|
+
is the parent's mount/unmount.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# badge/ — non-interactive status/label chip
|
|
2
2
|
|
|
3
|
-
`Badge` renders a small status/label chip:
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
`Badge` renders a small status/label chip: a fill, a coloured border, and a label (with an optional
|
|
4
|
+
leading icon). It is a `View`, never a `Pressable` — no press, focus, loading, or disabled state.
|
|
5
|
+
Every tone but `accent` paints the tone's subtle tinted fill; `accent` paints `AccentGradientFill`
|
|
6
|
+
over `accent.solid` and inks both icon and label with `accent.onSolid`.
|
|
6
7
|
|
|
7
8
|
## Files
|
|
8
9
|
|
|
@@ -32,7 +33,8 @@ or disabled state.
|
|
|
32
33
|
`accessibilityLabel={label}`. The icon (a plain SVG, not independently accessible) and the label
|
|
33
34
|
`Text` never surface as two separate elements to assistive tech.
|
|
34
35
|
- **1.4.3** — the label is the tone's derived `text` colour on the tone's `fill`, measured ≥ 4.5:1
|
|
35
|
-
for every tone × brand × mode (`Badge.test.ts`).
|
|
36
|
+
for every tone × brand × mode (`Badge.test.ts`); `accent` instead inks `accent.onSolid` on its
|
|
37
|
+
gradient fill.
|
|
36
38
|
- **1.4.11** — the border clears ≥ 3:1 both against the canvas AND against the chip's own `fill`
|
|
37
39
|
(the two colours it's actually adjacent to), for every tone × brand × mode.
|
|
38
40
|
- No touch target / `hitSlop`, no focus ring, no reduced-motion handling — none apply. Badge is
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { memo, useCallback, useMemo } from "react";
|
|
14
|
-
import {
|
|
14
|
+
import { Platform, Pressable, Text as RNText, View } from "react-native";
|
|
15
15
|
import Reanimated, { FadeInDown, FadeOut, LinearTransition, ReduceMotion } from "react-native-reanimated";
|
|
16
16
|
import { Icon } from "../../core/icon/index.js";
|
|
17
17
|
import { useEnterExit } from "../../core/motion/index.js";
|
|
@@ -113,7 +113,7 @@ export const Banner = /*#__PURE__*/memo(function Banner({
|
|
|
113
113
|
entering: FadeInDown.springify().reduceMotion(ReduceMotion.System),
|
|
114
114
|
exiting: FadeOut.reduceMotion(ReduceMotion.System),
|
|
115
115
|
layout: LinearTransition.reduceMotion(ReduceMotion.System),
|
|
116
|
-
children: /*#__PURE__*/_jsxs(
|
|
116
|
+
children: /*#__PURE__*/_jsxs(Reanimated.View, {
|
|
117
117
|
style: rootStyle,
|
|
118
118
|
children: [glyph && /*#__PURE__*/_jsx(View, {
|
|
119
119
|
style: {
|
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
* `react-native`'s `StyleSheet`, as `core/style` does).
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
import { MIN_TOUCH_TARGET } from "../../core/a11y/touchTarget.js";
|
|
12
13
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
14
|
+
export { MIN_TOUCH_TARGET };
|
|
13
15
|
/**
|
|
14
16
|
* `subtle` reuses Badge's exact role mapping, which is already measured ≥ 4.5:1 for the label on its
|
|
15
17
|
* own fill and ≥ 3:1 for `status.text`-as-border against both the canvas and that fill, on every
|
|
@@ -102,7 +104,7 @@ export function resolveBannerAccessibility(input) {
|
|
|
102
104
|
export const BANNER_ICON_SIZE = 20;
|
|
103
105
|
/** Dismiss and action are real touch targets; the visual glyph is smaller than its 44dp hit area. */
|
|
104
106
|
export const BANNER_DISMISS_ICON_SIZE = 16;
|
|
105
|
-
export const BANNER_MIN_TOUCH_TARGET =
|
|
107
|
+
export const BANNER_MIN_TOUCH_TARGET = MIN_TOUCH_TARGET;
|
|
106
108
|
export const bannerStructure = createThemedVariants(theme => ({
|
|
107
109
|
base: {
|
|
108
110
|
flexDirection: "row",
|
|
@@ -28,6 +28,7 @@ of a family that is easy to confuse:
|
|
|
28
28
|
| `tone` | `accent \| neutral \| success \| warning \| danger \| info` | `info` | Closed union. |
|
|
29
29
|
| `variant` | `subtle \| solid` | `subtle` | `subtle` tints; `solid` inverts onto a filled surface. |
|
|
30
30
|
| `icon` | `IconName \| null` | per tone | `null` suppresses the glyph entirely. |
|
|
31
|
+
| `visible` | `boolean` | `true` | `false` fades+slides the banner out, then unmounts it. |
|
|
31
32
|
| `onDismiss` | `() => void` | — | Absent = the banner cannot be closed. |
|
|
32
33
|
| `dismissLabel` | `string` | `"Dismiss"` | Screen-reader name for the close control. |
|
|
33
34
|
| `action` | `{ label, onPress }` | — | One inline action; use with `actions` for multiple. |
|
|
@@ -37,15 +38,10 @@ of a family that is easy to confuse:
|
|
|
37
38
|
|
|
38
39
|
## Accessibility contract (WCAG)
|
|
39
40
|
|
|
40
|
-
- **4.1.2 / semantics** — title + message collapse into ONE accessible node
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
OUTSIDE that accessible node**: an accessible node collapses its whole subtree into a single
|
|
45
|
-
element, so the action — which used to render inside it — could be tapped but never focused or
|
|
46
|
-
activated by VoiceOver/TalkBack, and its existence was not announced at all (the accessible name
|
|
47
|
-
is only `"title. message"`). The content column is now a plain layout `View` holding two siblings:
|
|
48
|
-
the accessible title+message block, and the action. `Banner.render.test.tsx` pins that structure.
|
|
41
|
+
- **4.1.2 / semantics** — title + message collapse into ONE accessible node so the banner announces
|
|
42
|
+
as a unit. Dismiss and the actions are `button`-role siblings **outside** that node: an accessible
|
|
43
|
+
node collapses its whole subtree, so a control nested inside it is tappable but never focusable or
|
|
44
|
+
announced. `Banner.render.test.tsx` pins that sibling structure.
|
|
49
45
|
- **4.1.3 status messages** — `danger` and `warning` announce with `accessibilityRole="alert"` so the
|
|
50
46
|
reader interrupts; the passive tones (`accent`, `neutral`, `success`, `info`) use `text` and are
|
|
51
47
|
read when focus reaches them. Severity, not styling, decides this.
|
|
@@ -62,14 +58,12 @@ of a family that is easy to confuse:
|
|
|
62
58
|
(`rippleColor(theme.mode)`), gated on `Platform.OS === "android"`. The dismiss glyph is
|
|
63
59
|
round/icon-only, so its ripple is `borderless: true`; the action link is a text target, so its
|
|
64
60
|
ripple is `borderless: false`.
|
|
65
|
-
- **2.3.3** —
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
level rather than here because this exact gap — an un-wrapped `<Icon>` — was a repeated, per-consumer
|
|
72
|
-
mistake across the library, not a `Banner`-specific one.
|
|
61
|
+
- **2.3.3** — every animation carries `ReduceMotion.System`, so the enter/exit and layout shift
|
|
62
|
+
collapse to an instant swap when the OS asks for reduced motion.
|
|
63
|
+
- **1.3.1** — the tone glyph repeats what the accessible node already says, so it must not reach
|
|
64
|
+
assistive tech. `Banner` passes `Icon` no `label`, and `core/icon` defaults to `aria-hidden` —
|
|
65
|
+
fixed there rather than here because un-wrapped `<Icon>` was a library-wide, not `Banner`-specific,
|
|
66
|
+
mistake.
|
|
73
67
|
|
|
74
68
|
## Patterns copied from the reference modules
|
|
75
69
|
|
|
@@ -89,30 +83,25 @@ of a family that is easy to confuse:
|
|
|
89
83
|
- **`accent` and `neutral` get no default glyph.** An icon on a banner communicates *severity*; those
|
|
90
84
|
two tones carry none, so a glyph would be decoration pretending to be meaning. Callers can still
|
|
91
85
|
pass one explicitly.
|
|
92
|
-
-
|
|
93
|
-
|
|
86
|
+
- **`action` is the primary; `actions` appends secondary ones.** Both render as the same inline
|
|
87
|
+
text targets in one wrapping row. A banner that needs a *blocking* decision belongs in
|
|
88
|
+
`alert-dialog`, not here.
|
|
94
89
|
- **No `onPress` on the banner body.** A whole-surface tap target next to a dismiss button produces
|
|
95
90
|
mis-taps; if the banner should navigate, use the `action`.
|
|
96
|
-
- **The action is a sibling of the accessible text block, not a child of it.** The dismiss control
|
|
97
|
-
was always shaped that way; the action was not, and that is exactly why it was invisible to
|
|
98
|
-
assistive tech. The content column carries the layout (`flex: 1` + `rowGap`), the inner block
|
|
99
|
-
carries `accessible` + the role + the combined name and only the `rowGap` between title and
|
|
100
|
-
message — so the rendered spacing is unchanged.
|
|
101
91
|
|
|
102
92
|
## Known gaps
|
|
103
93
|
|
|
104
94
|
- No auto-dismiss timer — that is `toast`'s job by definition.
|
|
105
95
|
- No stacking/queueing of multiple banners; a caller rendering several owns their order and spacing.
|
|
106
|
-
|
|
96
|
+
|
|
97
|
+
## Motion
|
|
98
|
+
|
|
99
|
+
`visible` drives a `FadeInDown` enter / `FadeOut` exit plus `LinearTransition` on layout, through
|
|
100
|
+
`useEnterExit`. A banner that mounts already visible skips the enter, so a consumer that never
|
|
101
|
+
passes `visible` sees no animation on first paint.
|
|
107
102
|
|
|
108
103
|
## Performance
|
|
109
104
|
|
|
110
105
|
Wrapped in `React.memo`. `bannerStructure` is a themed resolver, so the structural `StyleSheet`
|
|
111
106
|
compiles once per theme identity rather than per render. The action handler is `useCallback`'d;
|
|
112
107
|
`onDismiss` is passed to the `Pressable` verbatim, since the caller already owns its identity.
|
|
113
|
-
|
|
114
|
-
## Modernization (v1.0.7)
|
|
115
|
-
|
|
116
|
-
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
117
|
-
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
118
|
-
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -22,11 +22,10 @@
|
|
|
22
22
|
* only `react-native`'s `StyleSheet`, as `core/style` does).
|
|
23
23
|
*/
|
|
24
24
|
|
|
25
|
+
import { MIN_TOUCH_TARGET } from "../../core/a11y/touchTarget.js";
|
|
25
26
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
26
27
|
|
|
27
28
|
/** Same touch-target floor as Button/Select/Menu (44dp — Apple HIG minimum, WCAG 2.5.5 AAA). */
|
|
28
|
-
export const MIN_TOUCH_TARGET = 44;
|
|
29
|
-
|
|
30
29
|
/** The bar's fixed visual height. A design constant, not a caller-facing `size` scale — v1 is a
|
|
31
30
|
* single fixed shape (see MODULE.md's API stability contract, "out of contract"). Comfortably
|
|
32
31
|
* clears `MIN_TOUCH_TARGET` on its own, with no `hitSlop` needed (unlike Button's shorter sizes). */
|
|
@@ -57,6 +56,7 @@ export const BOTTOM_NAV_ACTIVE_DOT_SIZE = 6;
|
|
|
57
56
|
export const BOTTOM_NAV_SETTLE_SCALE = 0.8;
|
|
58
57
|
/** `undefined`/`0` (or any non-positive count) resolves to `null` — the badge renders nothing and
|
|
59
58
|
* leaves the accessible name untouched. */
|
|
59
|
+
export { MIN_TOUCH_TARGET };
|
|
60
60
|
export function resolveBottomNavBadge(count) {
|
|
61
61
|
if (count === undefined || count <= 0) return null;
|
|
62
62
|
return {
|
|
@@ -14,8 +14,9 @@
|
|
|
14
14
|
* accessible name but never passes that fresh-per-render object down.
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
|
-
import { memo, useEffect,
|
|
18
|
-
import {
|
|
17
|
+
import { memo, useEffect, useRef } from "react";
|
|
18
|
+
import { StyleSheet, Text, View } from "react-native";
|
|
19
|
+
import Reanimated, { interpolate, useAnimatedStyle } from "react-native-reanimated";
|
|
19
20
|
import { Icon } from "../../core/icon/index.js";
|
|
20
21
|
import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
|
|
21
22
|
import { useTheme } from "../../theme/hooks.js";
|
|
@@ -38,16 +39,12 @@ export const BottomNavIconWithBadge = /*#__PURE__*/memo(function BottomNavIconWi
|
|
|
38
39
|
const settle = useAnimatedValue(badge === null ? 0 : 1);
|
|
39
40
|
const running = useRef(null);
|
|
40
41
|
const firstRun = useRef(true);
|
|
41
|
-
const settleMotionStyle =
|
|
42
|
-
opacity: settle,
|
|
42
|
+
const settleMotionStyle = useAnimatedStyle(() => ({
|
|
43
|
+
opacity: settle.value,
|
|
43
44
|
transform: [{
|
|
44
|
-
scale: settle.
|
|
45
|
-
inputRange: [0, 1],
|
|
46
|
-
outputRange: [BOTTOM_NAV_SETTLE_SCALE, 1]
|
|
47
|
-
})
|
|
45
|
+
scale: interpolate(settle.value, [0, 1], [BOTTOM_NAV_SETTLE_SCALE, 1])
|
|
48
46
|
}]
|
|
49
|
-
})
|
|
50
|
-
// No animation runs under reduce motion, so the settled style is rendered directly.
|
|
47
|
+
}));
|
|
51
48
|
const settleStyle = motion.enabled ? settleMotionStyle : styles.settled;
|
|
52
49
|
|
|
53
50
|
// Keyed on the DISPLAY label, so a count change inside the "99+" cap doesn't re-settle a pill
|
|
@@ -59,14 +56,14 @@ export const BottomNavIconWithBadge = /*#__PURE__*/memo(function BottomNavIconWi
|
|
|
59
56
|
firstRun.current = false;
|
|
60
57
|
running.current?.stop();
|
|
61
58
|
if (badgeLabel === undefined) {
|
|
62
|
-
settle.
|
|
59
|
+
settle.value = 0;
|
|
63
60
|
return;
|
|
64
61
|
}
|
|
65
62
|
if (onMount || !motion.enabled) {
|
|
66
|
-
settle.
|
|
63
|
+
settle.value = 1;
|
|
67
64
|
return;
|
|
68
65
|
}
|
|
69
|
-
settle.
|
|
66
|
+
settle.value = 0;
|
|
70
67
|
running.current = motion.timing(settle, 1, {
|
|
71
68
|
duration: "fast",
|
|
72
69
|
easing: "decelerate"
|
|
@@ -81,18 +78,20 @@ export const BottomNavIconWithBadge = /*#__PURE__*/memo(function BottomNavIconWi
|
|
|
81
78
|
size: iconSize,
|
|
82
79
|
color: iconColor,
|
|
83
80
|
strokeWidth: ICON_STROKE
|
|
84
|
-
}), badge !== null && (appearance === "dot" ? /*#__PURE__*/_jsx(
|
|
81
|
+
}), badge !== null && (appearance === "dot" ? /*#__PURE__*/_jsx(Reanimated.View, {
|
|
85
82
|
testID: badgeTestID,
|
|
86
|
-
pointerEvents: "none",
|
|
87
83
|
style: [styles.dot, {
|
|
88
84
|
backgroundColor: badgeColors.fill
|
|
89
|
-
}, settleStyle
|
|
90
|
-
|
|
85
|
+
}, settleStyle, {
|
|
86
|
+
pointerEvents: "none"
|
|
87
|
+
}]
|
|
88
|
+
}) : /*#__PURE__*/_jsx(Reanimated.View, {
|
|
91
89
|
testID: badgeTestID,
|
|
92
|
-
pointerEvents: "none",
|
|
93
90
|
style: [bottomNavBadgePillStructure(theme), {
|
|
94
91
|
backgroundColor: badgeColors.fill
|
|
95
|
-
}, settleStyle
|
|
92
|
+
}, settleStyle, {
|
|
93
|
+
pointerEvents: "none"
|
|
94
|
+
}],
|
|
96
95
|
children: /*#__PURE__*/_jsx(Text, {
|
|
97
96
|
numberOfLines: 1,
|
|
98
97
|
style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
|
|
@@ -21,9 +21,10 @@
|
|
|
21
21
|
*/
|
|
22
22
|
|
|
23
23
|
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
24
|
-
import {
|
|
24
|
+
import { Platform, Pressable, ScrollView, StyleSheet, Text, useWindowDimensions, View } from "react-native";
|
|
25
|
+
import Reanimated, { useAnimatedStyle } from "react-native-reanimated";
|
|
25
26
|
import { Icon } from "../../core/icon/index.js";
|
|
26
|
-
import {
|
|
27
|
+
import { useMotion, useAnimatedValue } from "../../core/motion/index.js";
|
|
27
28
|
import { useTheme } from "../../theme/hooks.js";
|
|
28
29
|
import { rippleColor } from "../../theme/platform/stateLayer.native.js";
|
|
29
30
|
import { Button } from "../button/index.js";
|
|
@@ -263,9 +264,9 @@ const EditSlotChip = /*#__PURE__*/memo(function EditSlotChip({
|
|
|
263
264
|
const motion = useMotion();
|
|
264
265
|
const opacity = useAnimatedValue(selected ? 1 : 0);
|
|
265
266
|
const running = useRef(null);
|
|
266
|
-
const opacityMotionStyle =
|
|
267
|
-
opacity
|
|
268
|
-
})
|
|
267
|
+
const opacityMotionStyle = useAnimatedStyle(() => ({
|
|
268
|
+
opacity: opacity.value
|
|
269
|
+
}));
|
|
269
270
|
const androidRipple = useMemo(() => Platform.OS === "android" ? {
|
|
270
271
|
color: rippleColor(theme.mode)
|
|
271
272
|
} : undefined, [theme.mode]);
|
|
@@ -278,7 +279,7 @@ const EditSlotChip = /*#__PURE__*/memo(function EditSlotChip({
|
|
|
278
279
|
const toValue = selected ? 1 : 0;
|
|
279
280
|
running.current?.stop();
|
|
280
281
|
if (!motion.enabled) {
|
|
281
|
-
opacity.
|
|
282
|
+
opacity.value = toValue;
|
|
282
283
|
return;
|
|
283
284
|
}
|
|
284
285
|
running.current = motion.timing(opacity, toValue, {
|
|
@@ -316,7 +317,7 @@ const EditSlotChip = /*#__PURE__*/memo(function EditSlotChip({
|
|
|
316
317
|
color: theme.colors.fg.default
|
|
317
318
|
}],
|
|
318
319
|
children: tab.label
|
|
319
|
-
}), /*#__PURE__*/_jsx(
|
|
320
|
+
}), /*#__PURE__*/_jsx(Reanimated.View, {
|
|
320
321
|
testID: testID ? `${testID}-indicator` : undefined,
|
|
321
322
|
style: [styles.slotIndicator, {
|
|
322
323
|
backgroundColor: theme.colors.accent.solid
|
|
@@ -16,9 +16,9 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
19
|
-
import {
|
|
20
|
-
import Reanimated from "react-native-reanimated";
|
|
21
|
-
import {
|
|
19
|
+
import { Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
20
|
+
import Reanimated, { interpolate, useAnimatedStyle } from "react-native-reanimated";
|
|
21
|
+
import { useMotion, useAnimatedValue } from "../../core/motion/index.js";
|
|
22
22
|
import { usePressState } from "../../core/motion/usePressState.js";
|
|
23
23
|
import { rippleColor, stateLayerScrim } from "../../theme/platform/stateLayer.native.js";
|
|
24
24
|
import { useTheme } from "../../theme/hooks.js";
|
|
@@ -49,20 +49,17 @@ export const BottomNavTab = /*#__PURE__*/memo(function BottomNavTab({
|
|
|
49
49
|
});
|
|
50
50
|
const indicator = useAnimatedValue(selected ? 1 : 0);
|
|
51
51
|
const running = useRef(null);
|
|
52
|
-
const indicatorMotionStyle =
|
|
53
|
-
opacity: indicator,
|
|
52
|
+
const indicatorMotionStyle = useAnimatedStyle(() => ({
|
|
53
|
+
opacity: indicator.value,
|
|
54
54
|
transform: [{
|
|
55
|
-
scale: indicator.
|
|
56
|
-
inputRange: [0, 1],
|
|
57
|
-
outputRange: [BOTTOM_NAV_SETTLE_SCALE, 1]
|
|
58
|
-
})
|
|
55
|
+
scale: interpolate(indicator.value, [0, 1], [BOTTOM_NAV_SETTLE_SCALE, 1])
|
|
59
56
|
}]
|
|
60
|
-
})
|
|
57
|
+
}));
|
|
61
58
|
useEffect(() => {
|
|
62
59
|
const toValue = selected ? 1 : 0;
|
|
63
60
|
running.current?.stop();
|
|
64
61
|
if (!motion.enabled) {
|
|
65
|
-
indicator.
|
|
62
|
+
indicator.value = toValue;
|
|
66
63
|
return;
|
|
67
64
|
}
|
|
68
65
|
running.current = motion.timing(indicator, toValue, {
|
|
@@ -107,14 +104,16 @@ export const BottomNavTab = /*#__PURE__*/memo(function BottomNavTab({
|
|
|
107
104
|
overflow: "hidden"
|
|
108
105
|
}, press.animatedStyle],
|
|
109
106
|
children: [/*#__PURE__*/_jsx(Reanimated.View, {
|
|
110
|
-
pointerEvents: "none",
|
|
111
107
|
testID: testID ? `${testID}-press-overlay` : undefined,
|
|
112
|
-
style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle
|
|
113
|
-
|
|
114
|
-
|
|
108
|
+
style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle, {
|
|
109
|
+
pointerEvents: 'none'
|
|
110
|
+
}]
|
|
111
|
+
}), focused && /*#__PURE__*/_jsx(View, {
|
|
115
112
|
testID: testID ? `${testID}-focus-ring` : undefined,
|
|
116
113
|
style: [bottomNavFocusRingStructure(theme), {
|
|
117
114
|
borderColor: theme.colors.border.focus
|
|
115
|
+
}, {
|
|
116
|
+
pointerEvents: 'none'
|
|
118
117
|
}]
|
|
119
118
|
}), /*#__PURE__*/_jsx(BottomNavIconWithBadge, {
|
|
120
119
|
icon: icon,
|
|
@@ -130,7 +129,7 @@ export const BottomNavTab = /*#__PURE__*/memo(function BottomNavTab({
|
|
|
130
129
|
color: colors.label
|
|
131
130
|
}],
|
|
132
131
|
children: label
|
|
133
|
-
}), /*#__PURE__*/_jsx(
|
|
132
|
+
}), /*#__PURE__*/_jsx(Reanimated.View, {
|
|
134
133
|
testID: testID ? `${testID}-indicator` : undefined,
|
|
135
134
|
style: [styles.indicator, {
|
|
136
135
|
backgroundColor: colors.indicator
|