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
|
@@ -5,7 +5,9 @@
|
|
|
5
5
|
* (mocking only `react-native`'s `StyleSheet`, as every sibling module's tests do).
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
import { MIN_TOUCH_TARGET } from "../../core/a11y/touchTarget.js";
|
|
8
9
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
10
|
+
export { MIN_TOUCH_TARGET };
|
|
9
11
|
export const BAR_LIST_TRACK_HEIGHT = 6;
|
|
10
12
|
|
|
11
13
|
/** Header text (`fontSizes.sm` line height) + row gap (`space[1]`) + track — a floor, not a hard
|
|
@@ -68,7 +70,7 @@ export const barListTrackStructure = createThemedVariants(theme => ({
|
|
|
68
70
|
// ---------------------------------------------------------------------------------------------
|
|
69
71
|
|
|
70
72
|
/** Same touch-target floor as Select/Button (44dp — Apple HIG minimum, WCAG 2.5.5 AAA). */
|
|
71
|
-
export const CHART_MIN_TOUCH_TARGET =
|
|
73
|
+
export const CHART_MIN_TOUCH_TARGET = MIN_TOUCH_TARGET;
|
|
72
74
|
/** Symmetric hit-area expansion so a drawn mark smaller than 44dp still meets the touch-target
|
|
73
75
|
* floor, on whichever axis is short — a thin bar and a slim pie wedge fail on different axes. */
|
|
74
76
|
export function hitSlopFor(width, height, minTarget = CHART_MIN_TOUCH_TARGET) {
|
|
@@ -101,8 +101,9 @@ export const DonutChart = /*#__PURE__*/memo(function DonutChart({
|
|
|
101
101
|
})
|
|
102
102
|
})
|
|
103
103
|
}), (centerLabel !== undefined || centerSublabel !== undefined) && /*#__PURE__*/_jsxs(View, {
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
style: [StyleSheet.absoluteFill, styles.center, {
|
|
105
|
+
pointerEvents: 'none'
|
|
106
|
+
}],
|
|
106
107
|
children: [centerLabel !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
107
108
|
numberOfLines: 1,
|
|
108
109
|
style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
|
|
@@ -110,8 +110,9 @@ export const LineChart = /*#__PURE__*/memo(function LineChart({
|
|
|
110
110
|
accessible: true,
|
|
111
111
|
accessibilityRole: "image",
|
|
112
112
|
accessibilityLabel: summary,
|
|
113
|
-
style: StyleSheet.absoluteFill,
|
|
114
|
-
|
|
113
|
+
style: [StyleSheet.absoluteFill, {
|
|
114
|
+
pointerEvents: 'none'
|
|
115
|
+
}]
|
|
115
116
|
}), /*#__PURE__*/_jsx(View, {
|
|
116
117
|
accessibilityElementsHidden: true,
|
|
117
118
|
importantForAccessibility: "no-hide-descendants",
|
|
@@ -16,7 +16,7 @@ importing this subpath requires the peer installed).
|
|
|
16
16
|
| `LineChart.tsx` | Svg multi-series line with axes/gridlines, optional area fill and curve smoothing. |
|
|
17
17
|
| `PieChart.tsx` | Svg filled wedges + legend — the "with a legend" sibling to `DonutChart`'s ring. |
|
|
18
18
|
| `ChartLegend.tsx` | Internal — the one text legend shared by `PieChart`/`DonutChart`/`LineChart`/`BarChart`. Not exported. |
|
|
19
|
-
| `Charts.variants.ts` | Pure resolvers: colors, scales, geometry, arc/path maths, a11y summaries, non-colour series channels. No React, no svg. |
|
|
19
|
+
| `Charts.variants.ts` | Pure resolvers: colors, scales, geometry, arc/path maths, a11y summaries, non-colour series channels. `CHART_MIN_TOUCH_TARGET` aliases `MIN_TOUCH_TARGET` from `core/a11y/touchTarget`; `hitSlopFor` expands marks below 44dp. No React, no svg. |
|
|
20
20
|
| `__tests__/Charts.test.ts` | Pure: WCAG contrast (all brands × modes), geometry, scale, path and summary logic. |
|
|
21
21
|
| `__tests__/Charts.render.test.tsx` | Render: rows/segments/paths/bars/lines, a11y, svg mocked. |
|
|
22
22
|
|
|
@@ -28,12 +28,11 @@ Bar fill defaults to `accent.solid`; per-item `color` exists for data-driven ser
|
|
|
28
28
|
breakdowns have no closed-union role) — a deliberate, documented exception to the closed-union rule.
|
|
29
29
|
|
|
30
30
|
**DonutChart** — `segments: { value, color, label? }[]`, `size?` (160), `thickness?` (20),
|
|
31
|
-
`centerLabel?`, `centerSublabel?`, `showLegend?` (true
|
|
31
|
+
`centerLabel?`, `centerSublabel?`, `showLegend?` (true), `style?`, `testID?`. Non-finite /
|
|
32
32
|
≤ 0 segment values are dropped; with no valid segments only the `bg.sunken` track ring renders.
|
|
33
|
-
`segment.label`
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
`PieChart`.
|
|
33
|
+
`segment.label` renders as a legend row, falling back to `"Segment N"` when omitted; the legend is
|
|
34
|
+
skipped for 0–1 valid segments. Each legend row also carries a knocked-out shape keyed off the
|
|
35
|
+
segment's own index in `segments[]`, same as `PieChart`.
|
|
37
36
|
|
|
38
37
|
**Sparkline** — `data: number[]`, `width?` (120), `height?` (32),
|
|
39
38
|
`tone?: accent | neutral | success | warning | danger | info` (accent), `style?`, `testID?`.
|
|
@@ -42,7 +41,7 @@ Unchanged by the WCAG 1.4.1 pass below — see "Design decisions" for why.
|
|
|
42
41
|
|
|
43
42
|
**BarChart** — `data: { label, values: number[] }[]` (`values.length === 1` = simple bars, `> 1` =
|
|
44
43
|
grouped/stacked), `series?: { name, color? }[]`, `height?` (200), `showGrid?` (true), `showValues?`
|
|
45
|
-
(false), `stacked?` (false), `showLegend?` (true
|
|
44
|
+
(false), `stacked?` (false), `showLegend?` (true), `yAxisFormatter?`,
|
|
46
45
|
`onPressBar?(datum, seriesIndex)`, `style?`, `testID?`. Width is measured via `onLayout` (no `width`
|
|
47
46
|
prop — the chart fills its container). Non-finite bar values render as height 0; the y-domain always
|
|
48
47
|
includes 0. 2+ series get a legend (falling back to `"Series N"` with no `series[i].name`) and a
|
|
@@ -50,12 +49,12 @@ knocked-out shape mark on each bar when it's ≥ 14dp on both axes (`BAR_MARKER_
|
|
|
50
49
|
|
|
51
50
|
**LineChart** — `series: { name, data: { x, y }[], color?, shape? }[]`, `height?` (200), `showGrid?`
|
|
52
51
|
(true), `showDots?` (true), `showArea?` (false), `curved?` (false — Catmull-Rom→bézier when true),
|
|
53
|
-
`showLegend?` (true
|
|
52
|
+
`showLegend?` (true), `yAxisFormatter?`, `xAxisFormatter?`, `style?`, `testID?`. Non-finite
|
|
54
53
|
`y` samples are dropped per series (same contract as `Sparkline`), then spaced evenly by index — x is
|
|
55
54
|
plotted by position, not proportionally by numeric value, so unevenly-spaced categories still read as
|
|
56
55
|
an even axis. Long series are decimated first (see Performance) — no prop, a module constant. 2+
|
|
57
56
|
series get a legend naming each one; every series also gets a `strokeDasharray` and a marker shape
|
|
58
|
-
(circle/square/triangle/diamond/cross) by index — `series[i].shape`
|
|
57
|
+
(circle/square/triangle/diamond/cross) by index — optional `series[i].shape` overrides it.
|
|
59
58
|
|
|
60
59
|
**PieChart** — `segments: { label, value, color? }[]`, `size?` (180), `showLegend?` (true),
|
|
61
60
|
`showPercentages?` (true — controls the legend row text, not on-wedge labels: a label drawn on a
|
|
@@ -63,8 +62,8 @@ consumer-picked wedge color can't have its contrast guaranteed), `onPressSegment
|
|
|
63
62
|
`style?`, `testID?`. `index` is into the rendered (filtered, positive-value) list, matching
|
|
64
63
|
`DonutChart`'s own `arcs`-index convention — never the raw `segments` indices. This is the filled
|
|
65
64
|
sibling of `DonutChart`; reach for `DonutChart` for a ring with a center label, `PieChart` for
|
|
66
|
-
filled wedges with a legend. Wedges
|
|
67
|
-
knocked-out shape
|
|
65
|
+
filled wedges with a legend. Wedges carry a `bg.surface` separator stroke, and each legend row a
|
|
66
|
+
knocked-out shape alongside its swatch+text (see "Design decisions").
|
|
68
67
|
|
|
69
68
|
All four multi-series charts default series/segment colors from a shared 5-hue role-derived ramp
|
|
70
69
|
(`resolveCategoricalRamp`) when no per-series/per-segment `color` is given; a 6th+ series wraps
|
|
@@ -85,7 +84,8 @@ shape/dash channels (`seriesShapeAt`/`seriesDashAt`) wrap the same way, by the s
|
|
|
85
84
|
`accessibilityRole="button"` + `"label, value"` label. BarList rows are `text` role, or `button`
|
|
86
85
|
when `onPressItem` is set.
|
|
87
86
|
- **2.5.8 / 2.5.5 (Target Size)** — every pressable bar/segment gets a ≥ 44dp touch target via
|
|
88
|
-
`hitSlop` (`hitSlopFor`), computed from
|
|
87
|
+
`hitSlop` (`hitSlopFor`, floor `CHART_MIN_TOUCH_TARGET` = `core/a11y/touchTarget`), computed from
|
|
88
|
+
its own drawn size; pie wedges use an angular
|
|
89
89
|
bounding-box (`resolveWedgeBoundingBox`) since a wedge isn't rectangular.
|
|
90
90
|
- **1.4.3 (Contrast Minimum, text)** — BarList label/value and axis labels (`fg.muted`) measure
|
|
91
91
|
≥ 4.5:1 against their canvas, for all 9 brands × both modes (`Charts.test.ts`).
|
|
@@ -137,8 +137,8 @@ shape/dash channels (`seriesShapeAt`/`seriesDashAt`) wrap the same way, by the s
|
|
|
137
137
|
against the canvas is the consumer's to verify (documented exception to the closed-union rule).
|
|
138
138
|
`DonutChart.segments[].color` is required and consumer-supplied (unlike the other three charts'
|
|
139
139
|
ramp-defaulted `color`); its ring separator stays a track-coloured gap (the ring segments are
|
|
140
|
-
strokes on one shared circle, not independent filled paths — see "Design decisions")
|
|
141
|
-
legend
|
|
140
|
+
strokes on one shared circle, not independent filled paths — see "Design decisions"); the
|
|
141
|
+
legend carries a shape per segment's own index in `segments[]`, same as `PieChart`.
|
|
142
142
|
- LineChart's x-axis labels are taken from the longest (decimated) series and positioned by raw
|
|
143
143
|
index; a series with dropped non-finite points can drift slightly out of alignment with the
|
|
144
144
|
shared x-axis, and a decimated series labels only the samples it kept.
|
|
@@ -94,8 +94,9 @@ export const PieChart = /*#__PURE__*/memo(function PieChart({
|
|
|
94
94
|
accessible: true,
|
|
95
95
|
accessibilityRole: "image",
|
|
96
96
|
accessibilityLabel: summary,
|
|
97
|
-
style: StyleSheet.absoluteFill,
|
|
98
|
-
|
|
97
|
+
style: [StyleSheet.absoluteFill, {
|
|
98
|
+
pointerEvents: 'none'
|
|
99
|
+
}]
|
|
99
100
|
}), /*#__PURE__*/_jsx(View, {
|
|
100
101
|
accessibilityElementsHidden: true,
|
|
101
102
|
importantForAccessibility: "no-hide-descendants",
|
|
@@ -123,8 +124,9 @@ export const PieChart = /*#__PURE__*/memo(function PieChart({
|
|
|
123
124
|
}, index))]
|
|
124
125
|
})
|
|
125
126
|
}), pressTargets.length > 0 && /*#__PURE__*/_jsx(View, {
|
|
126
|
-
style: StyleSheet.absoluteFill,
|
|
127
|
-
|
|
127
|
+
style: [StyleSheet.absoluteFill, {
|
|
128
|
+
pointerEvents: 'box-none'
|
|
129
|
+
}],
|
|
128
130
|
children: pressTargets.map((target, index) => /*#__PURE__*/_jsx(WedgePressTarget, {
|
|
129
131
|
testID: testID ? `${testID}-segment-${index}-press` : undefined,
|
|
130
132
|
index: index,
|
|
@@ -11,29 +11,21 @@
|
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
import { memo, useCallback, useEffect, useMemo, useRef } from "react";
|
|
14
|
-
import {
|
|
14
|
+
import { Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
15
|
+
import Reanimated, { useAnimatedStyle } from "react-native-reanimated";
|
|
15
16
|
import { useSpaceActivation } from "../../core/a11y/keyboard";
|
|
16
17
|
import { useHaptics } from "../../core/haptics/index.js";
|
|
17
18
|
import { Icon } from "../../core/icon/index.js";
|
|
18
|
-
import {
|
|
19
|
+
import { useMotion, useAnimatedValue, usePressMotion } from "../../core/motion/index.js";
|
|
20
|
+
import { FOCUS_RING_GAP, FOCUS_RING_WIDTH } from "../../core/style/focusRing.js";
|
|
19
21
|
import { rippleColor } from "../../theme/platform/stateLayer.native.js";
|
|
20
22
|
import { useTheme } from "../../theme/hooks.js";
|
|
21
23
|
import { CHECKBOX_SIZES, checkboxBoxStructure, checkboxRowStructure, resolveCheckboxAccessibility, resolveCheckboxColors } from "./Checkbox.variants.js";
|
|
22
|
-
|
|
23
|
-
/** A checkbox with a visible label. `accessibilityLabel` defaults to `label`. Pressing the label
|
|
24
|
-
* toggles too — it lives inside the same `Pressable` row as the box. */
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* A checkbox with no visible label (e.g. a table row's select-all box). It has no visible text, so
|
|
28
|
-
* `accessibilityLabel` is REQUIRED at the type level — the same trap `Button`'s icon-only shape
|
|
29
|
-
* closes. `label?: never` makes the two shapes mutually exclusive.
|
|
30
|
-
*/
|
|
31
24
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
32
25
|
const ICON_STROKE = 2;
|
|
33
26
|
// The focus ring sits a small gap OUTSIDE the box, because `border.focus` is the role token proven
|
|
34
27
|
// ≥ 3:1 against the canvas (WCAG 2.4.11) — drawn over the filled box its contrast isn't guaranteed.
|
|
35
|
-
|
|
36
|
-
const FOCUS_RING_GAP = 2;
|
|
28
|
+
|
|
37
29
|
function CheckboxImpl(props) {
|
|
38
30
|
const {
|
|
39
31
|
checked,
|
|
@@ -64,11 +56,19 @@ function CheckboxImpl(props) {
|
|
|
64
56
|
const ringAnimation = useRef(null);
|
|
65
57
|
const glyphScale = useAnimatedValue(filled ? 1 : 0);
|
|
66
58
|
const glyphAnimation = useRef(null);
|
|
59
|
+
const ringAnimatedStyle = useAnimatedStyle(() => ({
|
|
60
|
+
opacity: ringOpacity.value
|
|
61
|
+
}));
|
|
62
|
+
const glyphAnimatedStyle = useAnimatedStyle(() => ({
|
|
63
|
+
transform: [{
|
|
64
|
+
scale: glyphScale.value
|
|
65
|
+
}]
|
|
66
|
+
}));
|
|
67
67
|
const setRingVisible = useCallback(visible => {
|
|
68
68
|
ringAnimation.current?.stop();
|
|
69
69
|
const to = visible ? 1 : 0;
|
|
70
70
|
if (!motion.enabled) {
|
|
71
|
-
ringOpacity.
|
|
71
|
+
ringOpacity.value = to;
|
|
72
72
|
return;
|
|
73
73
|
}
|
|
74
74
|
ringAnimation.current = motion.timing(ringOpacity, to, {
|
|
@@ -82,7 +82,7 @@ function CheckboxImpl(props) {
|
|
|
82
82
|
glyphAnimation.current?.stop();
|
|
83
83
|
const to = filled ? 1 : 0;
|
|
84
84
|
if (!motion.enabled) {
|
|
85
|
-
glyphScale.
|
|
85
|
+
glyphScale.value = to;
|
|
86
86
|
return;
|
|
87
87
|
}
|
|
88
88
|
glyphAnimation.current = motion.timing(glyphScale, to, {
|
|
@@ -128,11 +128,6 @@ function CheckboxImpl(props) {
|
|
|
128
128
|
fontSize: spec.fontSize,
|
|
129
129
|
color: colors.label
|
|
130
130
|
}], [theme, spec.fontSize, colors.label]);
|
|
131
|
-
const glyphStyle = useMemo(() => ({
|
|
132
|
-
transform: [{
|
|
133
|
-
scale: glyphScale
|
|
134
|
-
}]
|
|
135
|
-
}), [glyphScale]);
|
|
136
131
|
return /*#__PURE__*/_jsx(Pressable, {
|
|
137
132
|
ref: pressableRef,
|
|
138
133
|
testID: testID,
|
|
@@ -152,20 +147,19 @@ function CheckboxImpl(props) {
|
|
|
152
147
|
borderless: false
|
|
153
148
|
} : undefined,
|
|
154
149
|
style: rootStyle,
|
|
155
|
-
children: /*#__PURE__*/_jsxs(
|
|
150
|
+
children: /*#__PURE__*/_jsxs(Reanimated.View, {
|
|
156
151
|
testID: "checkbox-row",
|
|
157
152
|
style: [rowStyle, press.style],
|
|
158
153
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
159
154
|
style: boxStyle,
|
|
160
|
-
children: [/*#__PURE__*/_jsx(
|
|
161
|
-
pointerEvents: "none",
|
|
155
|
+
children: [/*#__PURE__*/_jsx(Reanimated.View, {
|
|
162
156
|
testID: "checkbox-focus-ring",
|
|
163
|
-
style: [focusRingStyle, {
|
|
164
|
-
|
|
157
|
+
style: [focusRingStyle, ringAnimatedStyle, {
|
|
158
|
+
pointerEvents: 'none'
|
|
165
159
|
}]
|
|
166
|
-
}), filled && /*#__PURE__*/_jsx(
|
|
160
|
+
}), filled && /*#__PURE__*/_jsx(Reanimated.View, {
|
|
167
161
|
testID: "checkbox-glyph",
|
|
168
|
-
style:
|
|
162
|
+
style: glyphAnimatedStyle,
|
|
169
163
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
170
164
|
name: indeterminate ? "minus" : "check",
|
|
171
165
|
size: spec.iconSize,
|
|
@@ -19,13 +19,15 @@
|
|
|
19
19
|
* only `react-native`'s `StyleSheet`, as `core/style` and `Button.variants.ts` do).
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
+
import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
|
|
22
23
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
24
|
+
export { MIN_TOUCH_TARGET };
|
|
25
|
+
|
|
23
26
|
/**
|
|
24
27
|
* Same touch-target floor as `Button` (44dp, WCAG 2.5.5 AAA). Duplicated rather than imported —
|
|
25
28
|
* modules never import across `src/modules/*` — so this is the component's own copy.
|
|
26
29
|
*/
|
|
27
|
-
|
|
28
|
-
const slopFor = dimension => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - dimension) / 2));
|
|
30
|
+
|
|
29
31
|
/**
|
|
30
32
|
* Checkbox-specific dimensions. Kept a plain constant — no theme dependency — so the hit-target
|
|
31
33
|
* test can assert `boxSize + 2·hitSlop ≥ 44` without a provider, same as `BUTTON_SIZES`.
|
|
@@ -14,6 +14,8 @@ the pattern rationale.
|
|
|
14
14
|
| `__tests__/Checkbox.test.ts` | Pure: WCAG contrast (all brands × modes) + touch target + a11y contract. |
|
|
15
15
|
| `__tests__/Checkbox.render.test.tsx` | Render: states, press-toggle (box and label), disabled, indeterminate, focus-ring tween + reached opacity. |
|
|
16
16
|
| `__tests__/Checkbox.motion.test.tsx` | Motion: the reduce-motion snap for all three animations, and the real glyph/press tweens with motion on. |
|
|
17
|
+
| `__tests__/Checkbox.keyboard.test.tsx` | Space activation via `useSpaceActivation`. |
|
|
18
|
+
| `__tests__/Checkbox.dom.test.tsx` | Real-DOM a11y props on web (`jest --config jest.web.config.js`). |
|
|
17
19
|
|
|
18
20
|
## Props
|
|
19
21
|
|
|
@@ -79,14 +81,14 @@ Three animations, all from `core/motion`, all `opacity`/`transform` only on the
|
|
|
79
81
|
|
|
80
82
|
| What | Where | Driver |
|
|
81
83
|
|------|-------|--------|
|
|
82
|
-
| Row press scale + opacity dip | the row `
|
|
83
|
-
| Focus-ring crossfade | the always-mounted ring `
|
|
84
|
-
| Glyph scale-in
|
|
84
|
+
| Row press scale + opacity dip | the row `Reanimated.View` | `usePressMotion(disabled)` — disabled rows never animate |
|
|
85
|
+
| Focus-ring crossfade | the always-mounted ring `Reanimated.View` | `setRingVisible`, `fast` |
|
|
86
|
+
| Glyph scale-in on check | the glyph `Reanimated.View`, mounted only while `filled` | the `filled` effect, `fast` + `emphasized` |
|
|
85
87
|
|
|
86
|
-
**WCAG 2.3.3** — each one is guarded by `if (!motion.enabled) { …
|
|
87
|
-
|
|
88
|
+
**WCAG 2.3.3** — each one is guarded by `if (!motion.enabled) { …value = to; return; }` (and
|
|
89
|
+
`usePressMotion`'s own guard), so under reduce motion (or the global kill switch) the
|
|
88
90
|
value is at its FINAL state on the very next render: no tween, no timers. `Checkbox.motion.test.tsx`
|
|
89
|
-
pins both halves — the snap with reduce motion on, a real `
|
|
91
|
+
pins both halves — the snap with reduce motion on, a real `motion.timing` with it off.
|
|
90
92
|
|
|
91
93
|
## Known gaps
|
|
92
94
|
|
|
@@ -106,3 +108,7 @@ Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLA
|
|
|
106
108
|
now gets `android_ripple` (`borderless: false`), gated on `Platform.OS === "android" && !disabled`.
|
|
107
109
|
|
|
108
110
|
Checkbox press uses `usePressState` and `useHaptics().selection()`.
|
|
111
|
+
|
|
112
|
+
## Wave 2 behaviour
|
|
113
|
+
|
|
114
|
+
The checked-state indicator tweens through `core/motion`; haptics fire on toggle when motion is enabled.
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
import { memo, useCallback, useMemo } from "react";
|
|
13
13
|
import { Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
14
|
-
import Animated from "react-native-reanimated";
|
|
14
|
+
import Animated, { FadeInDown, FadeOut, LinearTransition, ReduceMotion } from "react-native-reanimated";
|
|
15
15
|
import { removeAccessibilityLabel } from "../../core/a11y/labels.js";
|
|
16
16
|
import { AccentGradientFill } from "../../core/gradient/index.js";
|
|
17
17
|
import { useHaptics } from "../../core/haptics/index.js";
|
|
@@ -137,9 +137,10 @@ export const Chip = /*#__PURE__*/memo(function Chip(props) {
|
|
|
137
137
|
children: [selected && /*#__PURE__*/_jsx(AccentGradientFill, {
|
|
138
138
|
color: colors.background
|
|
139
139
|
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
140
|
-
pointerEvents: "none",
|
|
141
140
|
testID: testID ? `${testID}-press-overlay` : undefined,
|
|
142
|
-
style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle
|
|
141
|
+
style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle, {
|
|
142
|
+
pointerEvents: 'none'
|
|
143
|
+
}]
|
|
143
144
|
}), leading, /*#__PURE__*/_jsx(Text, {
|
|
144
145
|
numberOfLines: 1,
|
|
145
146
|
style: [theme.fontStyleForWeight(theme.fontWeights[selected ? "semibold" : "medium"]), {
|
|
@@ -150,7 +151,17 @@ export const Chip = /*#__PURE__*/memo(function Chip(props) {
|
|
|
150
151
|
children: label
|
|
151
152
|
})]
|
|
152
153
|
});
|
|
153
|
-
|
|
154
|
+
const chipEnter = FadeInDown.springify().reduceMotion(ReduceMotion.System);
|
|
155
|
+
const chipExit = FadeOut.reduceMotion(ReduceMotion.System);
|
|
156
|
+
const chipLayout = LinearTransition.reduceMotion(ReduceMotion.System);
|
|
157
|
+
if (!removable) {
|
|
158
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
159
|
+
entering: chipEnter,
|
|
160
|
+
exiting: chipExit,
|
|
161
|
+
layout: chipLayout,
|
|
162
|
+
children: chip
|
|
163
|
+
});
|
|
164
|
+
}
|
|
154
165
|
|
|
155
166
|
// The remove control is a SIBLING of the chip's press target, never a descendant: a `Pressable`
|
|
156
167
|
// defaults to `accessible`, which collapses its whole subtree into one element, so a nested "x"
|
|
@@ -160,35 +171,41 @@ export const Chip = /*#__PURE__*/memo(function Chip(props) {
|
|
|
160
171
|
/*#__PURE__*/
|
|
161
172
|
// The wrapper repeats the chip's `hitSlop`: a touch outside a view's own hit region is never
|
|
162
173
|
// dispatched into its children, so without it this node would clip the chip back to 32dp.
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
174
|
+
_jsx(Animated.View, {
|
|
175
|
+
entering: chipEnter,
|
|
176
|
+
exiting: chipExit,
|
|
177
|
+
layout: chipLayout,
|
|
178
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
179
|
+
hitSlop: spec.hitSlop,
|
|
180
|
+
style: [disabled && styles.dimmed, style],
|
|
181
|
+
children: [chip, /*#__PURE__*/_jsxs(AnimatedPressable, {
|
|
182
|
+
testID: testID ? `${testID}-remove` : undefined,
|
|
183
|
+
accessibilityRole: "button",
|
|
184
|
+
accessibilityLabel: removeAccessibilityLabel(label),
|
|
185
|
+
disabled: disabled,
|
|
186
|
+
onPress: disabled ? undefined : onRemove,
|
|
187
|
+
onPressIn: removePress.handlers.onPressIn,
|
|
188
|
+
onPressOut: removePress.handlers.onPressOut,
|
|
189
|
+
onLayout: removePress.onLayout,
|
|
190
|
+
hitSlop: CHIP_REMOVE_HIT_SLOP,
|
|
191
|
+
android_ripple: removeRipple,
|
|
192
|
+
style: [chipRemoveTouchStructure(theme, {
|
|
193
|
+
size
|
|
194
|
+
}), {
|
|
195
|
+
overflow: "hidden"
|
|
196
|
+
}, removePress.animatedStyle],
|
|
197
|
+
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
198
|
+
style: [StyleSheet.absoluteFill, overlayStaticStyle, removePress.overlayStyle, {
|
|
199
|
+
pointerEvents: 'none'
|
|
200
|
+
}]
|
|
201
|
+
}), /*#__PURE__*/_jsx(Icon, {
|
|
202
|
+
name: "x",
|
|
203
|
+
size: CHIP_REMOVE_ICON_SIZE,
|
|
204
|
+
color: colors.text,
|
|
205
|
+
strokeWidth: ICON_STROKE
|
|
206
|
+
})]
|
|
190
207
|
})]
|
|
191
|
-
})
|
|
208
|
+
})
|
|
192
209
|
})
|
|
193
210
|
);
|
|
194
211
|
});
|
|
@@ -13,15 +13,16 @@
|
|
|
13
13
|
* (mocking only `react-native`'s `StyleSheet`, as `core/style` does).
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
+
import { MIN_TOUCH_TARGET, slopFor } from "../../core/a11y/touchTarget.js";
|
|
16
17
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
18
|
+
export { MIN_TOUCH_TARGET };
|
|
17
19
|
|
|
18
20
|
/** `accent`/`neutral` are brand-driven emphasis; the rest mirror the theme's status roles — same
|
|
19
21
|
* shape `Badge`'s own `BadgeTone` uses. */
|
|
20
22
|
|
|
21
23
|
/** Same touch-target floor as every interactive control in this library (44dp — Apple HIG minimum,
|
|
22
24
|
* WCAG 2.5.5 AAA). */
|
|
23
|
-
|
|
24
|
-
const slopFor = dimension => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - dimension) / 2));
|
|
25
|
+
|
|
25
26
|
/**
|
|
26
27
|
* Chip-specific dimensions. Visibly smaller than Button (a chip is a token, not a call-to-action)
|
|
27
28
|
* but every size still reaches the 44dp floor via `hitSlop`, exactly like Button/Select do for
|
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
* every layout-only wrapper in this library takes.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { memo } from "react";
|
|
11
|
-
import { ScrollView
|
|
10
|
+
import { memo, useMemo } from "react";
|
|
11
|
+
import { ScrollView } from "react-native";
|
|
12
|
+
import Reanimated, { LinearTransition, ReduceMotion } from "react-native-reanimated";
|
|
13
|
+
import { renderNodeSlot } from "../../core/slot/index.js";
|
|
12
14
|
import { useTheme } from "../../theme/hooks.js";
|
|
13
15
|
import { resolveChipGroupGap } from "./Chip.variants.js";
|
|
14
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -22,6 +24,11 @@ export const ChipGroup = /*#__PURE__*/memo(function ChipGroup({
|
|
|
22
24
|
}) {
|
|
23
25
|
const theme = useTheme();
|
|
24
26
|
const gapValue = resolveChipGroupGap(theme, gap);
|
|
27
|
+
const childrenSlotStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
28
|
+
color: theme.colors.fg.default,
|
|
29
|
+
fontSize: theme.fontSizes.md
|
|
30
|
+
}], [theme]);
|
|
31
|
+
const slottedChildren = renderNodeSlot(children, childrenSlotStyle);
|
|
25
32
|
if (scrollable) {
|
|
26
33
|
return /*#__PURE__*/_jsx(ScrollView, {
|
|
27
34
|
testID: testID,
|
|
@@ -32,17 +39,21 @@ export const ChipGroup = /*#__PURE__*/memo(function ChipGroup({
|
|
|
32
39
|
flexDirection: "row",
|
|
33
40
|
gap: gapValue
|
|
34
41
|
}, style],
|
|
35
|
-
children:
|
|
42
|
+
children: /*#__PURE__*/_jsx(Reanimated.View, {
|
|
43
|
+
layout: LinearTransition.reduceMotion(ReduceMotion.System),
|
|
44
|
+
children: slottedChildren
|
|
45
|
+
})
|
|
36
46
|
});
|
|
37
47
|
}
|
|
38
|
-
return /*#__PURE__*/_jsx(View, {
|
|
48
|
+
return /*#__PURE__*/_jsx(Reanimated.View, {
|
|
39
49
|
testID: testID,
|
|
50
|
+
layout: LinearTransition.reduceMotion(ReduceMotion.System),
|
|
40
51
|
style: [{
|
|
41
52
|
flexDirection: "row",
|
|
42
53
|
flexWrap: wrap ? "wrap" : "nowrap",
|
|
43
54
|
gap: gapValue
|
|
44
55
|
}, style],
|
|
45
|
-
children:
|
|
56
|
+
children: slottedChildren
|
|
46
57
|
});
|
|
47
58
|
});
|
|
48
59
|
//# sourceMappingURL=ChipGroup.js.map
|
|
@@ -21,6 +21,7 @@ independent select; `QuickChip` is select-only, unexported). `Chip` generalises
|
|
|
21
21
|
| `Chip.variants.ts` | Pure resolvers (`resolveChipColors`, `isChipFilled`, `resolveChipPressedBackground`, `resolveChipAccessibility`, `resolveChipGroupGap`) + the themed structural resolvers (`chipStructure`, `chipRemoveSlotStructure`, `chipRemoveTouchStructure`). No React, no lucide. |
|
|
22
22
|
| `index.ts` | Public surface: `Chip`, `ChipProps`, `ChipGroup`, `ChipGroupProps`, the closed unions, `IconName`. |
|
|
23
23
|
| `__tests__/Chip.test.ts` | Pure: WCAG contrast (6 tones × 3 variants × selected, all brands × modes), touch target, the a11y contract, `selected` overriding `variant`. |
|
|
24
|
+
| `__tests__/ChipGroup.dom.test.tsx` | Web DOM: the group's layout container on react-native-web. |
|
|
24
25
|
| `__tests__/Chip.render.test.tsx` | Render: press wiring, the remove affordance never firing `onPress`, the remove button being a SIBLING of the chip's press target (WCAG 4.1.2), `selected` a11y, disabled gating, `avatarUri`-over-`icon`, `ChipGroup` wrap/scrollable. |
|
|
25
26
|
|
|
26
27
|
## Props
|
|
@@ -147,12 +148,9 @@ independent select; `QuickChip` is select-only, unexported). `Chip` generalises
|
|
|
147
148
|
|
|
148
149
|
Both `Chip` and `ChipGroup` are wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see
|
|
149
150
|
root `CLAUDE.md`). Chip and its remove affordance both use `usePressState` (scale + state-layer
|
|
150
|
-
overlay); filled chips also dim via `press.overlayStyle` instead of swapping to `bg.sunken`.
|
|
151
|
+
overlay); filled chips also dim via `press.overlayStyle` instead of swapping to `bg.sunken`. The
|
|
152
|
+
remove control takes its own `borderless: true` Android ripple, split from the pill's `false` one.
|
|
151
153
|
|
|
152
|
-
##
|
|
154
|
+
## Wave 2 behaviour
|
|
153
155
|
|
|
154
|
-
|
|
155
|
-
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
156
|
-
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
157
|
-
- **Round 5 (Android parity)** — the remove control (icon-only, circular) now gets its own
|
|
158
|
-
`borderless: true` ripple, split from the pill's own `borderless: false` ripple.
|
|
156
|
+
Chip and ChipGroup entering/leaving siblings use Reanimated layout with `ReduceMotion.System`.
|