pixelize-native-library 1.0.7 → 1.2.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/lib/module/core/MODULE.md +129 -36
- package/lib/module/core/a11y/MODULE.md +127 -4
- package/lib/module/core/a11y/announce.js +30 -0
- package/lib/module/core/a11y/announce.web.js +134 -0
- package/lib/module/core/a11y/index.js +81 -15
- package/lib/module/core/a11y/keyboard.js +42 -0
- package/lib/module/core/a11y/keyboard.web.js +229 -0
- package/lib/module/core/a11y/labels.js +24 -0
- package/lib/module/core/device/MODULE.md +47 -0
- package/lib/module/core/device/index.js +91 -0
- package/lib/module/core/heading/MODULE.md +38 -0
- package/lib/module/core/heading/index.js +45 -0
- package/lib/module/core/icon/Icon.js +37 -0
- package/lib/module/core/icon/MODULE.md +42 -8
- package/lib/module/core/icon/icons/arrow-down.js +10 -0
- package/lib/module/core/icon/icons/arrow-left.js +10 -0
- package/lib/module/core/icon/icons/arrow-right.js +10 -0
- package/lib/module/core/icon/icons/arrow-up.js +10 -0
- package/lib/module/core/icon/icons/at-sign.js +10 -0
- package/lib/module/core/icon/icons/bell.js +10 -0
- package/lib/module/core/icon/icons/bold.js +10 -0
- package/lib/module/core/icon/icons/building-2.js +10 -0
- package/lib/module/core/icon/icons/calendar.js +10 -0
- package/lib/module/core/icon/icons/chart-column.js +10 -0
- package/lib/module/core/icon/icons/check.js +10 -0
- package/lib/module/core/icon/icons/chevron-down.js +10 -0
- package/lib/module/core/icon/icons/chevron-left.js +10 -0
- package/lib/module/core/icon/icons/chevron-right.js +10 -0
- package/lib/module/core/icon/icons/chevron-up.js +10 -0
- package/lib/module/core/icon/icons/chevrons-left.js +10 -0
- package/lib/module/core/icon/icons/chevrons-right.js +10 -0
- package/lib/module/core/icon/icons/chevrons-up-down.js +10 -0
- package/lib/module/core/icon/icons/circle-alert.js +10 -0
- package/lib/module/core/icon/icons/circle-check.js +10 -0
- package/lib/module/core/icon/icons/clock.js +10 -0
- package/lib/module/core/icon/icons/code.js +10 -0
- package/lib/module/core/icon/icons/download.js +10 -0
- package/lib/module/core/icon/icons/external-link.js +10 -0
- package/lib/module/core/icon/icons/eye.js +10 -0
- package/lib/module/core/icon/icons/file-text.js +10 -0
- package/lib/module/core/icon/icons/filter.js +10 -0
- package/lib/module/core/icon/icons/flag.js +10 -0
- package/lib/module/core/icon/icons/folder.js +10 -0
- package/lib/module/core/icon/icons/heading-1.js +10 -0
- package/lib/module/core/icon/icons/heading-2.js +10 -0
- package/lib/module/core/icon/icons/heading-3.js +10 -0
- package/lib/module/core/icon/icons/image.js +10 -0
- package/lib/module/core/icon/icons/inbox.js +10 -0
- package/lib/module/core/icon/icons/info.js +10 -0
- package/lib/module/core/icon/icons/italic.js +10 -0
- package/lib/module/core/icon/icons/kanban.js +10 -0
- package/lib/module/core/icon/icons/layers.js +10 -0
- package/lib/module/core/icon/icons/layout-dashboard.js +10 -0
- package/lib/module/core/icon/icons/layout-template.js +10 -0
- package/lib/module/core/icon/icons/life-buoy.js +10 -0
- package/lib/module/core/icon/icons/link.js +10 -0
- package/lib/module/core/icon/icons/list-checks.js +10 -0
- package/lib/module/core/icon/icons/list-ordered.js +10 -0
- package/lib/module/core/icon/icons/list-todo.js +10 -0
- package/lib/module/core/icon/icons/list.js +10 -0
- package/lib/module/core/icon/icons/log-out.js +10 -0
- package/lib/module/core/icon/icons/map.js +10 -0
- package/lib/module/core/icon/icons/message-square.js +10 -0
- package/lib/module/core/icon/icons/milestone.js +10 -0
- package/lib/module/core/icon/icons/minus.js +10 -0
- package/lib/module/core/icon/icons/more-horizontal.js +10 -0
- package/lib/module/core/icon/icons/paperclip.js +10 -0
- package/lib/module/core/icon/icons/pencil.js +10 -0
- package/lib/module/core/icon/icons/plus.js +10 -0
- package/lib/module/core/icon/icons/quote.js +10 -0
- package/lib/module/core/icon/icons/refresh-cw.js +10 -0
- package/lib/module/core/icon/icons/save.js +10 -0
- package/lib/module/core/icon/icons/search.js +10 -0
- package/lib/module/core/icon/icons/send.js +10 -0
- package/lib/module/core/icon/icons/settings.js +10 -0
- package/lib/module/core/icon/icons/share.js +10 -0
- package/lib/module/core/icon/icons/square-code.js +10 -0
- package/lib/module/core/icon/icons/star.js +10 -0
- package/lib/module/core/icon/icons/strikethrough.js +10 -0
- package/lib/module/core/icon/icons/tag.js +10 -0
- package/lib/module/core/icon/icons/trash.js +10 -0
- package/lib/module/core/icon/icons/triangle-alert.js +10 -0
- package/lib/module/core/icon/icons/underline.js +10 -0
- package/lib/module/core/icon/icons/upload.js +10 -0
- package/lib/module/core/icon/icons/user.js +10 -0
- package/lib/module/core/icon/icons/users.js +10 -0
- package/lib/module/core/icon/icons/x.js +10 -0
- package/lib/module/core/icon/index.js +4 -153
- package/lib/module/core/icon/names.js +2 -0
- package/lib/module/core/icon/resolve.js +158 -0
- package/lib/module/core/icon/types.js +4 -0
- package/lib/module/core/list/VirtualList.js +226 -0
- package/lib/module/core/list/index.js +4 -0
- package/lib/module/core/media/MediaImage.js +51 -0
- package/lib/module/core/media/expoImage.js +20 -0
- package/lib/module/core/media/index.js +6 -0
- package/lib/module/core/media/pickers.js +23 -0
- package/lib/module/core/motion/MODULE.md +101 -0
- package/lib/module/core/motion/config.js +112 -0
- package/lib/module/core/motion/index.js +7 -0
- package/lib/module/core/motion/presets.js +192 -0
- package/lib/module/core/motion/useAnimatedValue.js +19 -0
- package/lib/module/core/motion/useMotion.js +46 -0
- package/lib/module/core/style/index.js +2 -0
- package/lib/module/core/style/sx.js +76 -0
- package/lib/module/core/style/useThemedStyles.js +8 -0
- package/lib/module/index.js +70 -2
- package/lib/module/modules/accordion/Accordion.js +256 -87
- package/lib/module/modules/accordion/Accordion.variants.js +2 -4
- package/lib/module/modules/accordion/MODULE.md +35 -11
- package/lib/module/modules/alert-dialog/AlertDialog.js +1 -1
- package/lib/module/modules/alert-dialog/MODULE.md +11 -2
- package/lib/module/modules/app-bar/AppBar.js +179 -0
- package/lib/module/modules/app-bar/AppBar.variants.js +72 -0
- package/lib/module/modules/app-bar/MODULE.md +68 -0
- package/lib/module/modules/app-bar/index.js +10 -0
- package/lib/module/modules/avatar/Avatar.js +38 -18
- package/lib/module/modules/avatar/Avatar.variants.js +44 -3
- package/lib/module/modules/avatar/MODULE.md +37 -15
- package/lib/module/modules/avatar-group/AvatarGroup.js +77 -0
- package/lib/module/modules/avatar-group/AvatarGroup.variants.js +109 -0
- package/lib/module/modules/avatar-group/MODULE.md +28 -0
- package/lib/module/modules/avatar-group/index.js +10 -0
- package/lib/module/modules/badge/Badge.js +3 -2
- package/lib/module/modules/badge/Badge.variants.js +12 -2
- package/lib/module/modules/badge/MODULE.md +6 -0
- package/lib/module/modules/banner/Banner.js +135 -0
- package/lib/module/modules/banner/Banner.variants.js +118 -0
- package/lib/module/modules/banner/MODULE.md +113 -0
- package/lib/module/modules/banner/index.js +4 -0
- package/lib/module/modules/bottom-nav/BottomNav.js +37 -126
- package/lib/module/modules/bottom-nav/BottomNav.variants.js +28 -9
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +56 -8
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +133 -114
- package/lib/module/modules/bottom-nav/BottomNavTab.js +138 -0
- package/lib/module/modules/bottom-nav/MODULE.md +21 -6
- package/lib/module/modules/bottom-sheet/BottomSheet.js +189 -0
- package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +49 -0
- package/lib/module/modules/bottom-sheet/MODULE.md +53 -0
- package/lib/module/modules/bottom-sheet/index.js +4 -0
- package/lib/module/modules/button/Button.js +98 -47
- package/lib/module/modules/button/Button.variants.js +12 -7
- package/lib/module/modules/button/MODULE.md +25 -3
- package/lib/module/modules/button-group/ButtonGroup.js +163 -55
- package/lib/module/modules/button-group/ButtonGroup.variants.js +30 -4
- package/lib/module/modules/button-group/MODULE.md +33 -7
- package/lib/module/modules/card/Card.js +10 -7
- package/lib/module/modules/card/MODULE.md +6 -0
- package/lib/module/modules/charts/BarChart.js +242 -0
- package/lib/module/modules/charts/BarList.js +98 -48
- package/lib/module/modules/charts/ChartLegend.js +154 -0
- package/lib/module/modules/charts/Charts.variants.js +524 -1
- package/lib/module/modules/charts/DonutChart.js +100 -65
- package/lib/module/modules/charts/LineChart.js +179 -0
- package/lib/module/modules/charts/MODULE.md +148 -22
- package/lib/module/modules/charts/PieChart.js +140 -0
- package/lib/module/modules/charts/Sparkline.js +5 -4
- package/lib/module/modules/charts/index.js +3 -0
- package/lib/module/modules/checkbox/Checkbox.js +114 -44
- package/lib/module/modules/checkbox/Checkbox.variants.js +13 -8
- package/lib/module/modules/checkbox/MODULE.md +35 -8
- package/lib/module/modules/chip/Chip.js +155 -0
- package/lib/module/modules/chip/Chip.variants.js +278 -0
- package/lib/module/modules/chip/ChipGroup.js +48 -0
- package/lib/module/modules/chip/MODULE.md +156 -0
- package/lib/module/modules/chip/index.js +13 -0
- package/lib/module/modules/combobox/Combobox.js +587 -0
- package/lib/module/modules/combobox/Combobox.variants.js +280 -0
- package/lib/module/modules/combobox/MODULE.md +183 -0
- package/lib/module/modules/combobox/comboboxKeys.js +19 -0
- package/lib/module/modules/combobox/comboboxKeys.web.js +76 -0
- package/lib/module/modules/combobox/index.js +13 -0
- package/lib/module/modules/composer/Composer.js +156 -0
- package/lib/module/modules/composer/Composer.variants.js +42 -0
- package/lib/module/modules/composer/MODULE.md +70 -0
- package/lib/module/modules/composer/index.js +4 -0
- package/lib/module/modules/copy-button/CopyButton.js +156 -0
- package/lib/module/modules/copy-button/CopyButton.variants.js +86 -0
- package/lib/module/modules/copy-button/MODULE.md +73 -0
- package/lib/module/modules/copy-button/index.js +4 -0
- package/lib/module/modules/data-table/DataTable.js +513 -0
- package/lib/module/modules/data-table/DataTable.variants.js +188 -0
- package/lib/module/modules/data-table/MODULE.md +145 -0
- package/lib/module/modules/data-table/index.js +10 -0
- package/lib/module/modules/date-picker/Calendar.js +368 -0
- package/lib/module/modules/date-picker/Calendar.keys.js +23 -0
- package/lib/module/modules/date-picker/Calendar.keys.web.js +83 -0
- package/lib/module/modules/date-picker/DatePicker.js +162 -0
- package/lib/module/modules/date-picker/DatePicker.variants.js +686 -0
- package/lib/module/modules/date-picker/DateRangePicker.js +87 -0
- package/lib/module/modules/date-picker/MODULE.md +169 -0
- package/lib/module/modules/date-picker/PickerField.js +142 -0
- package/lib/module/modules/date-picker/PickerShell.js +132 -0
- package/lib/module/modules/date-picker/TimePicker.js +184 -0
- package/lib/module/modules/date-picker/index.js +14 -0
- package/lib/module/modules/divider/Divider.js +8 -7
- package/lib/module/modules/divider/MODULE.md +6 -0
- package/lib/module/modules/drawer/Drawer.js +140 -58
- package/lib/module/modules/drawer/Drawer.variants.js +3 -16
- package/lib/module/modules/drawer/MODULE.md +90 -118
- package/lib/module/modules/empty-state/EmptyState.js +32 -18
- package/lib/module/modules/empty-state/EmptyState.variants.js +9 -0
- package/lib/module/modules/empty-state/MODULE.md +25 -7
- package/lib/module/modules/fab/Fab.js +212 -0
- package/lib/module/modules/fab/Fab.variants.js +346 -0
- package/lib/module/modules/fab/FabGroup.js +334 -0
- package/lib/module/modules/fab/MODULE.md +181 -0
- package/lib/module/modules/fab/index.js +13 -0
- package/lib/module/modules/file-grid/FileGrid.js +149 -0
- package/lib/module/modules/file-grid/FileGrid.variants.js +51 -0
- package/lib/module/modules/file-grid/MODULE.md +12 -0
- package/lib/module/modules/file-grid/index.js +4 -0
- package/lib/module/modules/file-upload/FileUpload.js +124 -34
- package/lib/module/modules/file-upload/FileUpload.variants.js +50 -7
- package/lib/module/modules/file-upload/MODULE.md +22 -4
- package/lib/module/modules/filter-sheet/FilterChip.js +25 -19
- package/lib/module/modules/filter-sheet/FilterSheet.js +17 -11
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js +24 -5
- package/lib/module/modules/filter-sheet/FilterSheetBody.js +168 -82
- package/lib/module/modules/filter-sheet/MODULE.md +22 -1
- package/lib/module/modules/folder-row/FolderRow.js +132 -0
- package/lib/module/modules/folder-row/FolderRow.variants.js +49 -0
- package/lib/module/modules/folder-row/MODULE.md +71 -0
- package/lib/module/modules/folder-row/index.js +4 -0
- package/lib/module/modules/form-field/FormField.js +104 -0
- package/lib/module/modules/form-field/FormField.variants.js +88 -0
- package/lib/module/modules/form-field/MODULE.md +103 -0
- package/lib/module/modules/form-field/index.js +4 -0
- package/lib/module/modules/gantt/Gantt.js +218 -0
- package/lib/module/modules/gantt/Gantt.variants.js +141 -0
- package/lib/module/modules/gantt/MODULE.md +71 -0
- package/lib/module/modules/gantt/index.js +5 -0
- package/lib/module/modules/image-viewer/ImageViewer.js +235 -0
- package/lib/module/modules/image-viewer/ImageViewer.variants.js +6 -0
- package/lib/module/modules/image-viewer/MODULE.md +57 -0
- package/lib/module/modules/image-viewer/index.js +4 -0
- package/lib/module/modules/input/Input.js +106 -48
- package/lib/module/modules/input/Input.variants.js +18 -4
- package/lib/module/modules/input/MODULE.md +36 -6
- package/lib/module/modules/limit-reached-modal/LimitReachedModal.js +90 -0
- package/lib/module/modules/limit-reached-modal/LimitReachedModal.variants.js +108 -0
- package/lib/module/modules/limit-reached-modal/MODULE.md +94 -0
- package/lib/module/modules/limit-reached-modal/index.js +11 -0
- package/lib/module/modules/list-item/ListItem.js +45 -28
- package/lib/module/modules/list-item/MODULE.md +6 -0
- package/lib/module/modules/markdown/MODULE.md +32 -5
- package/lib/module/modules/markdown/Markdown.js +54 -20
- package/lib/module/modules/markdown/Markdown.variants.js +6 -1
- package/lib/module/modules/markdown/parseMarkdown.js +3 -3
- package/lib/module/modules/menu/MODULE.md +45 -14
- package/lib/module/modules/menu/Menu.js +174 -65
- package/lib/module/modules/menu/Menu.variants.js +10 -0
- package/lib/module/modules/message-bubble/MODULE.md +38 -0
- package/lib/module/modules/message-bubble/MessageBubble.js +55 -0
- package/lib/module/modules/message-bubble/MessageBubble.variants.js +57 -0
- package/lib/module/modules/message-bubble/index.js +4 -0
- package/lib/module/modules/modal/MODULE.md +29 -3
- package/lib/module/modules/modal/Modal.js +72 -22
- package/lib/module/modules/more-items/MODULE.md +72 -0
- package/lib/module/modules/more-items/MoreItems.js +162 -0
- package/lib/module/modules/more-items/MoreItems.variants.js +80 -0
- package/lib/module/modules/more-items/index.js +4 -0
- package/lib/module/modules/multi-select/MODULE.md +84 -18
- package/lib/module/modules/multi-select/MultiSelect.js +217 -105
- package/lib/module/modules/multi-select/MultiSelect.variants.js +28 -5
- package/lib/module/modules/number-input/MODULE.md +39 -5
- package/lib/module/modules/number-input/NumberInput.js +41 -11
- package/lib/module/modules/number-input/NumberInput.variants.js +39 -5
- package/lib/module/modules/org-switcher/MODULE.md +121 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.js +284 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +186 -0
- package/lib/module/modules/org-switcher/index.js +9 -0
- package/lib/module/modules/pagination/MODULE.md +163 -0
- package/lib/module/modules/pagination/Pagination.js +197 -0
- package/lib/module/modules/pagination/Pagination.variants.js +307 -0
- package/lib/module/modules/pagination/PaginationControls.js +193 -0
- package/lib/module/modules/pagination/index.js +15 -0
- package/lib/module/modules/pin-input/MODULE.md +29 -14
- package/lib/module/modules/pin-input/PinInput.js +111 -80
- package/lib/module/modules/pin-input/PinInput.variants.js +13 -5
- package/lib/module/modules/progress-bar/MODULE.md +17 -7
- package/lib/module/modules/progress-bar/ProgressBar.js +97 -56
- package/lib/module/modules/progress-bar/ProgressBar.variants.js +16 -18
- package/lib/module/modules/radio-group/MODULE.md +40 -14
- package/lib/module/modules/radio-group/RadioGroup.js +71 -7
- package/lib/module/modules/radio-group/RadioGroup.variants.js +46 -10
- package/lib/module/modules/reorder/MODULE.md +104 -97
- package/lib/module/modules/reorder/Reorder.js +233 -197
- package/lib/module/modules/reorder/Reorder.variants.js +35 -13
- package/lib/module/modules/rich-text/MODULE.md +52 -0
- package/lib/module/modules/rich-text/RichText.js +362 -0
- package/lib/module/modules/rich-text/RichText.variants.js +17 -0
- package/lib/module/modules/rich-text/index.js +5 -0
- package/lib/module/modules/rich-text/parseRichText.js +133 -0
- package/lib/module/modules/rich-text-editor/MODULE.md +225 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.js +413 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +316 -0
- package/lib/module/modules/rich-text-editor/index.js +10 -0
- package/lib/module/modules/screen/MODULE.md +57 -0
- package/lib/module/modules/screen/Screen.js +106 -0
- package/lib/module/modules/screen/Screen.variants.js +43 -0
- package/lib/module/modules/screen/index.js +10 -0
- package/lib/module/modules/search-bar/MODULE.md +114 -0
- package/lib/module/modules/search-bar/SearchBar.js +256 -0
- package/lib/module/modules/search-bar/SearchBar.variants.js +205 -0
- package/lib/module/modules/search-bar/index.js +12 -0
- package/lib/module/modules/section/MODULE.md +39 -0
- package/lib/module/modules/section/Section.js +42 -0
- package/lib/module/modules/section/Section.variants.js +29 -0
- package/lib/module/modules/section/index.js +10 -0
- package/lib/module/modules/section-list/MODULE.md +18 -0
- package/lib/module/modules/section-list/SectionList.js +64 -0
- package/lib/module/modules/section-list/SectionList.variants.js +11 -0
- package/lib/module/modules/section-list/index.js +4 -0
- package/lib/module/modules/segmented-control/MODULE.md +124 -0
- package/lib/module/modules/segmented-control/SegmentedControl.js +158 -0
- package/lib/module/modules/segmented-control/SegmentedControl.variants.js +167 -0
- package/lib/module/modules/segmented-control/index.js +13 -0
- package/lib/module/modules/select/MODULE.md +81 -14
- package/lib/module/modules/select/Select.js +196 -94
- package/lib/module/modules/select/Select.variants.js +28 -5
- package/lib/module/modules/skeleton/MODULE.md +27 -7
- package/lib/module/modules/skeleton/Skeleton.js +52 -38
- package/lib/module/modules/skeleton/Skeleton.variants.js +9 -8
- package/lib/module/modules/slider/MODULE.md +31 -5
- package/lib/module/modules/slider/Slider.js +67 -10
- package/lib/module/modules/slider/Slider.variants.js +60 -13
- package/lib/module/modules/spinner/MODULE.md +16 -6
- package/lib/module/modules/spinner/Spinner.js +20 -16
- package/lib/module/modules/spinner/Spinner.variants.js +5 -3
- package/lib/module/modules/stage-progress/MODULE.md +64 -0
- package/lib/module/modules/stage-progress/StageProgress.js +174 -0
- package/lib/module/modules/stage-progress/StageProgress.variants.js +164 -0
- package/lib/module/modules/stage-progress/index.js +4 -0
- package/lib/module/modules/stat-tile/MODULE.md +9 -2
- package/lib/module/modules/stat-tile/StatTile.js +70 -33
- package/lib/module/modules/stat-tile/StatTile.variants.js +6 -4
- package/lib/module/modules/state-block/MODULE.md +52 -0
- package/lib/module/modules/state-block/StateBlock.js +131 -0
- package/lib/module/modules/state-block/StateBlock.variants.js +55 -0
- package/lib/module/modules/state-block/index.js +10 -0
- package/lib/module/modules/stepper/MODULE.md +33 -6
- package/lib/module/modules/stepper/Stepper.js +108 -39
- package/lib/module/modules/stepper/Stepper.variants.js +6 -6
- package/lib/module/modules/swipeable-row/MODULE.md +120 -0
- package/lib/module/modules/swipeable-row/SwipeableRow.js +244 -0
- package/lib/module/modules/swipeable-row/SwipeableRow.variants.js +80 -0
- package/lib/module/modules/swipeable-row/index.js +4 -0
- package/lib/module/modules/switch/MODULE.md +14 -0
- package/lib/module/modules/switch/Switch.js +1 -1
- package/lib/module/modules/switch/Switch.variants.js +8 -0
- package/lib/module/modules/tabs/MODULE.md +47 -13
- package/lib/module/modules/tabs/Tabs.js +121 -72
- package/lib/module/modules/tabs/Tabs.variants.js +30 -8
- package/lib/module/modules/text/MODULE.md +51 -0
- package/lib/module/modules/text/Text.js +47 -0
- package/lib/module/modules/text/Text.variants.js +98 -0
- package/lib/module/modules/text/index.js +4 -0
- package/lib/module/modules/textarea/MODULE.md +29 -13
- package/lib/module/modules/textarea/Textarea.js +90 -45
- package/lib/module/modules/textarea/Textarea.variants.js +14 -9
- package/lib/module/modules/timeline/MODULE.md +39 -7
- package/lib/module/modules/timeline/Timeline.js +151 -77
- package/lib/module/modules/timeline/Timeline.variants.js +13 -0
- package/lib/module/modules/toast/MODULE.md +66 -7
- package/lib/module/modules/toast/Toast.js +93 -27
- package/lib/module/modules/toast/Toast.variants.js +37 -1
- package/lib/module/modules/toast/toastScreenReader.js +69 -0
- package/lib/module/modules/tooltip/MODULE.md +78 -28
- package/lib/module/modules/tooltip/Tooltip.js +93 -43
- package/lib/module/modules/tooltip/Tooltip.variants.js +3 -4
- package/lib/module/modules/typing-indicator/MODULE.md +48 -0
- package/lib/module/modules/typing-indicator/TypingIndicator.js +98 -0
- package/lib/module/modules/typing-indicator/TypingIndicator.variants.js +55 -0
- package/lib/module/modules/typing-indicator/index.js +4 -0
- package/lib/module/modules/unread-badge/MODULE.md +20 -0
- package/lib/module/modules/unread-badge/UnreadBadge.js +45 -0
- package/lib/module/modules/unread-badge/UnreadBadge.variants.js +66 -0
- package/lib/module/modules/unread-badge/index.js +4 -0
- package/lib/module/test/mocks/flashList.js +5 -0
- package/lib/module/test/perfHelpers.js +18 -0
- package/lib/module/theme/MODULE.md +6 -0
- package/lib/module/theme/hooks.js +11 -0
- package/lib/module/theme/index.js +3 -6
- package/lib/module/theme/platform/MODULE.md +6 -0
- package/lib/module/theme/platform/motion.native.js +15 -0
- package/lib/module/theme/provider/PixelizeProvider.js +9 -47
- package/lib/module/theme/provider/ThemeContext.js +6 -0
- package/lib/module/theme/provider/colorModeStorage.js +2 -2
- package/lib/module/theme/provider/index.js +1 -0
- package/lib/module/theme/provider/loadPalette.js +75 -0
- package/lib/module/theme/provider/types.js +4 -0
- package/lib/module/theme/provider/useTheme.js +1 -2
- package/lib/module/theme/provider/useThemeMode.js +1 -1
- package/lib/module/theme/tokens/roles/index.js +9 -3
- package/lib/typescript/core/a11y/announce.d.ts +20 -0
- package/lib/typescript/core/a11y/announce.web.d.ts +27 -0
- package/lib/typescript/core/a11y/index.d.ts +21 -2
- package/lib/typescript/core/a11y/keyboard.d.ts +45 -0
- package/lib/typescript/core/a11y/keyboard.web.d.ts +69 -0
- package/lib/typescript/core/a11y/labels.d.ts +19 -0
- package/lib/typescript/core/device/index.d.ts +16 -0
- package/lib/typescript/core/heading/index.d.ts +45 -0
- package/lib/typescript/core/icon/Icon.d.ts +18 -0
- package/lib/typescript/core/icon/icons/arrow-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-up.d.ts +3 -0
- package/lib/typescript/core/icon/icons/at-sign.d.ts +3 -0
- package/lib/typescript/core/icon/icons/bell.d.ts +3 -0
- package/lib/typescript/core/icon/icons/bold.d.ts +3 -0
- package/lib/typescript/core/icon/icons/building-2.d.ts +3 -0
- package/lib/typescript/core/icon/icons/calendar.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chart-column.d.ts +3 -0
- package/lib/typescript/core/icon/icons/check.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-up.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-up-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/circle-alert.d.ts +3 -0
- package/lib/typescript/core/icon/icons/circle-check.d.ts +3 -0
- package/lib/typescript/core/icon/icons/clock.d.ts +3 -0
- package/lib/typescript/core/icon/icons/code.d.ts +3 -0
- package/lib/typescript/core/icon/icons/download.d.ts +3 -0
- package/lib/typescript/core/icon/icons/external-link.d.ts +3 -0
- package/lib/typescript/core/icon/icons/eye.d.ts +3 -0
- package/lib/typescript/core/icon/icons/file-text.d.ts +3 -0
- package/lib/typescript/core/icon/icons/filter.d.ts +3 -0
- package/lib/typescript/core/icon/icons/flag.d.ts +3 -0
- package/lib/typescript/core/icon/icons/folder.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-1.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-2.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-3.d.ts +3 -0
- package/lib/typescript/core/icon/icons/image.d.ts +3 -0
- package/lib/typescript/core/icon/icons/inbox.d.ts +3 -0
- package/lib/typescript/core/icon/icons/info.d.ts +3 -0
- package/lib/typescript/core/icon/icons/italic.d.ts +3 -0
- package/lib/typescript/core/icon/icons/kanban.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layers.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layout-dashboard.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layout-template.d.ts +3 -0
- package/lib/typescript/core/icon/icons/life-buoy.d.ts +3 -0
- package/lib/typescript/core/icon/icons/link.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-checks.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-ordered.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-todo.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list.d.ts +3 -0
- package/lib/typescript/core/icon/icons/log-out.d.ts +3 -0
- package/lib/typescript/core/icon/icons/map.d.ts +3 -0
- package/lib/typescript/core/icon/icons/message-square.d.ts +3 -0
- package/lib/typescript/core/icon/icons/milestone.d.ts +3 -0
- package/lib/typescript/core/icon/icons/minus.d.ts +3 -0
- package/lib/typescript/core/icon/icons/more-horizontal.d.ts +3 -0
- package/lib/typescript/core/icon/icons/paperclip.d.ts +3 -0
- package/lib/typescript/core/icon/icons/pencil.d.ts +3 -0
- package/lib/typescript/core/icon/icons/plus.d.ts +3 -0
- package/lib/typescript/core/icon/icons/quote.d.ts +3 -0
- package/lib/typescript/core/icon/icons/refresh-cw.d.ts +3 -0
- package/lib/typescript/core/icon/icons/save.d.ts +3 -0
- package/lib/typescript/core/icon/icons/search.d.ts +3 -0
- package/lib/typescript/core/icon/icons/send.d.ts +3 -0
- package/lib/typescript/core/icon/icons/settings.d.ts +3 -0
- package/lib/typescript/core/icon/icons/share.d.ts +3 -0
- package/lib/typescript/core/icon/icons/square-code.d.ts +3 -0
- package/lib/typescript/core/icon/icons/star.d.ts +3 -0
- package/lib/typescript/core/icon/icons/strikethrough.d.ts +3 -0
- package/lib/typescript/core/icon/icons/tag.d.ts +3 -0
- package/lib/typescript/core/icon/icons/trash.d.ts +3 -0
- package/lib/typescript/core/icon/icons/triangle-alert.d.ts +3 -0
- package/lib/typescript/core/icon/icons/underline.d.ts +3 -0
- package/lib/typescript/core/icon/icons/upload.d.ts +3 -0
- package/lib/typescript/core/icon/icons/user.d.ts +3 -0
- package/lib/typescript/core/icon/icons/users.d.ts +3 -0
- package/lib/typescript/core/icon/icons/x.d.ts +3 -0
- package/lib/typescript/core/icon/index.d.ts +6 -94
- package/lib/typescript/core/icon/names.d.ts +2 -0
- package/lib/typescript/core/icon/resolve.d.ts +4 -0
- package/lib/typescript/core/icon/types.d.ts +13 -0
- package/lib/typescript/core/list/VirtualList.d.ts +55 -0
- package/lib/typescript/core/list/index.d.ts +3 -0
- package/lib/typescript/core/media/MediaImage.d.ts +28 -0
- package/lib/typescript/core/media/expoImage.d.ts +14 -0
- package/lib/typescript/core/media/index.d.ts +7 -0
- package/lib/typescript/core/media/pickers.d.ts +27 -0
- package/lib/typescript/core/motion/config.d.ts +56 -0
- package/lib/typescript/core/motion/index.d.ts +8 -0
- package/lib/typescript/core/motion/presets.d.ts +49 -0
- package/lib/typescript/core/motion/useAnimatedValue.d.ts +11 -0
- package/lib/typescript/core/motion/useMotion.d.ts +34 -0
- package/lib/typescript/core/style/index.d.ts +3 -0
- package/lib/typescript/core/style/sx.d.ts +86 -0
- package/lib/typescript/core/style/useThemedStyles.d.ts +5 -0
- package/lib/typescript/index.d.ts +134 -2
- package/lib/typescript/modules/accordion/Accordion.d.ts +12 -23
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts +5 -5
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +1 -1
- package/lib/typescript/modules/app-bar/AppBar.d.ts +37 -0
- package/lib/typescript/modules/app-bar/AppBar.variants.d.ts +35 -0
- package/lib/typescript/modules/app-bar/index.d.ts +9 -0
- package/lib/typescript/modules/avatar/Avatar.d.ts +23 -3
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts +32 -1
- package/lib/typescript/modules/avatar/index.d.ts +1 -1
- package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +28 -0
- package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +75 -0
- package/lib/typescript/modules/avatar-group/index.d.ts +9 -0
- package/lib/typescript/modules/badge/Badge.d.ts +3 -1
- package/lib/typescript/modules/badge/Badge.variants.d.ts +8 -4
- package/lib/typescript/modules/banner/Banner.d.ts +35 -0
- package/lib/typescript/modules/banner/Banner.variants.d.ts +49 -0
- package/lib/typescript/modules/banner/index.d.ts +5 -0
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +9 -8
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +22 -9
- package/lib/typescript/modules/bottom-nav/BottomNavTab.d.ts +34 -0
- package/lib/typescript/modules/bottom-sheet/BottomSheet.d.ts +29 -0
- package/lib/typescript/modules/bottom-sheet/BottomSheet.variants.d.ts +13 -0
- package/lib/typescript/modules/bottom-sheet/index.d.ts +3 -0
- package/lib/typescript/modules/button/Button.d.ts +21 -0
- package/lib/typescript/modules/button/Button.variants.d.ts +22 -9
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts +4 -2
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +18 -5
- package/lib/typescript/modules/card/Card.variants.d.ts +2 -2
- package/lib/typescript/modules/charts/BarChart.d.ts +26 -0
- package/lib/typescript/modules/charts/ChartLegend.d.ts +16 -0
- package/lib/typescript/modules/charts/Charts.variants.d.ts +201 -2
- package/lib/typescript/modules/charts/DonutChart.d.ts +3 -0
- package/lib/typescript/modules/charts/LineChart.d.ts +30 -0
- package/lib/typescript/modules/charts/PieChart.d.ts +18 -0
- package/lib/typescript/modules/charts/index.d.ts +6 -0
- package/lib/typescript/modules/checkbox/Checkbox.d.ts +4 -1
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +14 -9
- package/lib/typescript/modules/chip/Chip.d.ts +38 -0
- package/lib/typescript/modules/chip/Chip.variants.d.ts +198 -0
- package/lib/typescript/modules/chip/ChipGroup.d.ts +22 -0
- package/lib/typescript/modules/chip/index.d.ts +12 -0
- package/lib/typescript/modules/combobox/Combobox.d.ts +81 -0
- package/lib/typescript/modules/combobox/Combobox.variants.d.ts +212 -0
- package/lib/typescript/modules/combobox/comboboxKeys.d.ts +25 -0
- package/lib/typescript/modules/combobox/comboboxKeys.web.d.ts +23 -0
- package/lib/typescript/modules/combobox/index.d.ts +11 -0
- package/lib/typescript/modules/composer/Composer.d.ts +28 -0
- package/lib/typescript/modules/composer/Composer.variants.d.ts +7 -0
- package/lib/typescript/modules/composer/index.d.ts +3 -0
- package/lib/typescript/modules/copy-button/CopyButton.d.ts +21 -0
- package/lib/typescript/modules/copy-button/CopyButton.variants.d.ts +42 -0
- package/lib/typescript/modules/copy-button/index.d.ts +4 -0
- package/lib/typescript/modules/data-table/DataTable.d.ts +44 -0
- package/lib/typescript/modules/data-table/DataTable.variants.d.ts +118 -0
- package/lib/typescript/modules/data-table/index.d.ts +9 -0
- package/lib/typescript/modules/date-picker/Calendar.d.ts +42 -0
- package/lib/typescript/modules/date-picker/Calendar.keys.d.ts +19 -0
- package/lib/typescript/modules/date-picker/Calendar.keys.web.d.ts +35 -0
- package/lib/typescript/modules/date-picker/DatePicker.d.ts +40 -0
- package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +322 -0
- package/lib/typescript/modules/date-picker/DateRangePicker.d.ts +32 -0
- package/lib/typescript/modules/date-picker/PickerField.d.ts +26 -0
- package/lib/typescript/modules/date-picker/PickerShell.d.ts +29 -0
- package/lib/typescript/modules/date-picker/TimePicker.d.ts +20 -0
- package/lib/typescript/modules/date-picker/index.d.ts +16 -0
- package/lib/typescript/modules/divider/Divider.variants.d.ts +2 -2
- package/lib/typescript/modules/drawer/Drawer.d.ts +2 -1
- package/lib/typescript/modules/drawer/Drawer.variants.d.ts +4 -13
- package/lib/typescript/modules/empty-state/EmptyState.d.ts +7 -4
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +7 -1
- package/lib/typescript/modules/fab/Fab.d.ts +74 -0
- package/lib/typescript/modules/fab/Fab.variants.d.ts +229 -0
- package/lib/typescript/modules/fab/FabGroup.d.ts +66 -0
- package/lib/typescript/modules/fab/index.d.ts +12 -0
- package/lib/typescript/modules/file-grid/FileGrid.d.ts +26 -0
- package/lib/typescript/modules/file-grid/FileGrid.variants.d.ts +26 -0
- package/lib/typescript/modules/file-grid/index.d.ts +4 -0
- package/lib/typescript/modules/file-upload/FileUpload.d.ts +3 -0
- package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts +22 -5
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +30 -5
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +13 -8
- package/lib/typescript/modules/folder-row/FolderRow.d.ts +24 -0
- package/lib/typescript/modules/folder-row/FolderRow.variants.d.ts +29 -0
- package/lib/typescript/modules/folder-row/index.d.ts +3 -0
- package/lib/typescript/modules/form-field/FormField.d.ts +29 -0
- package/lib/typescript/modules/form-field/FormField.variants.d.ts +93 -0
- package/lib/typescript/modules/form-field/index.d.ts +4 -0
- package/lib/typescript/modules/gantt/Gantt.d.ts +19 -0
- package/lib/typescript/modules/gantt/Gantt.variants.d.ts +82 -0
- package/lib/typescript/modules/gantt/index.d.ts +5 -0
- package/lib/typescript/modules/image-viewer/ImageViewer.d.ts +27 -0
- package/lib/typescript/modules/image-viewer/ImageViewer.variants.d.ts +3 -0
- package/lib/typescript/modules/image-viewer/index.d.ts +3 -0
- package/lib/typescript/modules/input/Input.d.ts +9 -1
- package/lib/typescript/modules/input/Input.variants.d.ts +26 -6
- package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.d.ts +34 -0
- package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.variants.d.ts +46 -0
- package/lib/typescript/modules/limit-reached-modal/index.d.ts +10 -0
- package/lib/typescript/modules/list-item/ListItem.d.ts +6 -0
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts +1 -1
- package/lib/typescript/modules/markdown/Markdown.d.ts +6 -0
- package/lib/typescript/modules/markdown/Markdown.variants.d.ts +8 -2
- package/lib/typescript/modules/markdown/parseMarkdown.d.ts +3 -2
- package/lib/typescript/modules/menu/Menu.d.ts +8 -18
- package/lib/typescript/modules/menu/Menu.variants.d.ts +8 -1
- package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +25 -0
- package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +31 -0
- package/lib/typescript/modules/message-bubble/index.d.ts +4 -0
- package/lib/typescript/modules/modal/Modal.d.ts +12 -0
- package/lib/typescript/modules/modal/Modal.variants.d.ts +1 -1
- package/lib/typescript/modules/more-items/MoreItems.d.ts +15 -0
- package/lib/typescript/modules/more-items/MoreItems.variants.d.ts +30 -0
- package/lib/typescript/modules/more-items/index.d.ts +4 -0
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts +1 -16
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +24 -5
- package/lib/typescript/modules/number-input/NumberInput.d.ts +6 -0
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +57 -7
- package/lib/typescript/modules/org-switcher/OrgSwitcher.d.ts +44 -0
- package/lib/typescript/modules/org-switcher/OrgSwitcher.variants.d.ts +139 -0
- package/lib/typescript/modules/org-switcher/index.d.ts +8 -0
- package/lib/typescript/modules/pagination/Pagination.d.ts +45 -0
- package/lib/typescript/modules/pagination/Pagination.variants.d.ts +240 -0
- package/lib/typescript/modules/pagination/PaginationControls.d.ts +50 -0
- package/lib/typescript/modules/pagination/index.d.ts +14 -0
- package/lib/typescript/modules/pin-input/PinInput.d.ts +6 -0
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +22 -5
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +8 -4
- package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts +13 -15
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts +6 -0
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +32 -11
- package/lib/typescript/modules/reorder/Reorder.d.ts +28 -23
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts +25 -9
- package/lib/typescript/modules/rich-text/RichText.d.ts +15 -0
- package/lib/typescript/modules/rich-text/RichText.variants.d.ts +15 -0
- package/lib/typescript/modules/rich-text/index.d.ts +5 -0
- package/lib/typescript/modules/rich-text/parseRichText.d.ts +30 -0
- package/lib/typescript/modules/rich-text-editor/RichTextEditor.d.ts +62 -0
- package/lib/typescript/modules/rich-text-editor/RichTextEditor.variants.d.ts +139 -0
- package/lib/typescript/modules/rich-text-editor/index.d.ts +9 -0
- package/lib/typescript/modules/screen/Screen.d.ts +36 -0
- package/lib/typescript/modules/screen/Screen.variants.d.ts +21 -0
- package/lib/typescript/modules/screen/index.d.ts +9 -0
- package/lib/typescript/modules/search-bar/SearchBar.d.ts +47 -0
- package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +179 -0
- package/lib/typescript/modules/search-bar/index.d.ts +11 -0
- package/lib/typescript/modules/section/Section.d.ts +17 -0
- package/lib/typescript/modules/section/Section.variants.d.ts +12 -0
- package/lib/typescript/modules/section/index.d.ts +8 -0
- package/lib/typescript/modules/section-list/SectionList.d.ts +26 -0
- package/lib/typescript/modules/section-list/SectionList.variants.d.ts +3 -0
- package/lib/typescript/modules/section-list/index.d.ts +3 -0
- package/lib/typescript/modules/segmented-control/SegmentedControl.d.ts +45 -0
- package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +143 -0
- package/lib/typescript/modules/segmented-control/index.d.ts +11 -0
- package/lib/typescript/modules/select/Select.d.ts +1 -14
- package/lib/typescript/modules/select/Select.variants.d.ts +24 -5
- package/lib/typescript/modules/skeleton/Skeleton.d.ts +5 -0
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +10 -9
- package/lib/typescript/modules/slider/Slider.variants.d.ts +35 -14
- package/lib/typescript/modules/spinner/Spinner.variants.d.ts +6 -4
- package/lib/typescript/modules/stage-progress/StageProgress.d.ts +18 -0
- package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +98 -0
- package/lib/typescript/modules/stage-progress/index.d.ts +4 -0
- package/lib/typescript/modules/stat-tile/StatTile.d.ts +4 -0
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +7 -5
- package/lib/typescript/modules/state-block/StateBlock.d.ts +51 -0
- package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +30 -0
- package/lib/typescript/modules/state-block/index.d.ts +10 -0
- package/lib/typescript/modules/stepper/Stepper.d.ts +4 -0
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts +7 -7
- package/lib/typescript/modules/swipeable-row/SwipeableRow.d.ts +35 -0
- package/lib/typescript/modules/swipeable-row/SwipeableRow.variants.d.ts +27 -0
- package/lib/typescript/modules/swipeable-row/index.d.ts +4 -0
- package/lib/typescript/modules/switch/Switch.variants.d.ts +9 -1
- package/lib/typescript/modules/tabs/Tabs.d.ts +8 -6
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts +20 -7
- package/lib/typescript/modules/text/Text.d.ts +23 -0
- package/lib/typescript/modules/text/Text.variants.d.ts +18 -0
- package/lib/typescript/modules/text/index.d.ts +4 -0
- package/lib/typescript/modules/textarea/Textarea.d.ts +5 -0
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts +15 -8
- package/lib/typescript/modules/timeline/Timeline.d.ts +9 -13
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts +17 -1
- package/lib/typescript/modules/toast/Toast.d.ts +13 -3
- package/lib/typescript/modules/toast/Toast.variants.d.ts +31 -3
- package/lib/typescript/modules/toast/index.d.ts +1 -1
- package/lib/typescript/modules/toast/toastScreenReader.d.ts +22 -0
- package/lib/typescript/modules/tooltip/Tooltip.d.ts +34 -11
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +4 -5
- package/lib/typescript/modules/typing-indicator/TypingIndicator.d.ts +28 -0
- package/lib/typescript/modules/typing-indicator/TypingIndicator.variants.d.ts +32 -0
- package/lib/typescript/modules/typing-indicator/index.d.ts +4 -0
- package/lib/typescript/modules/unread-badge/UnreadBadge.d.ts +15 -0
- package/lib/typescript/modules/unread-badge/UnreadBadge.variants.d.ts +56 -0
- package/lib/typescript/modules/unread-badge/index.d.ts +4 -0
- package/lib/typescript/test/mocks/flashList.d.ts +3 -0
- package/lib/typescript/test/perfHelpers.d.ts +9 -0
- package/lib/typescript/theme/hooks.d.ts +11 -0
- package/lib/typescript/theme/index.d.ts +3 -2
- package/lib/typescript/theme/platform/motion.native.d.ts +15 -0
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts +3 -80
- package/lib/typescript/theme/provider/ThemeContext.d.ts +4 -0
- package/lib/typescript/theme/provider/index.d.ts +2 -1
- package/lib/typescript/theme/provider/loadPalette.d.ts +9 -0
- package/lib/typescript/theme/provider/types.d.ts +41 -0
- package/lib/typescript/theme/provider/useTheme.d.ts +1 -2
- package/lib/typescript/theme/provider/useThemeMode.d.ts +1 -1
- package/lib/typescript/theme/tokens/roles/index.d.ts +7 -0
- package/package.json +193 -19
- package/registry.json +172 -2
- package/lib/module/core/a11y/index.js.map +0 -1
- package/lib/module/core/icon/index.js.map +0 -1
- package/lib/module/core/style/index.js.map +0 -1
- package/lib/module/core/style/layoutStyle.js.map +0 -1
- package/lib/module/core/style/variants.js.map +0 -1
- package/lib/module/index.js.map +0 -1
- package/lib/module/modules/accordion/Accordion.js.map +0 -1
- package/lib/module/modules/accordion/Accordion.variants.js.map +0 -1
- package/lib/module/modules/accordion/index.js.map +0 -1
- package/lib/module/modules/alert-dialog/AlertDialog.js.map +0 -1
- package/lib/module/modules/alert-dialog/AlertDialog.variants.js.map +0 -1
- package/lib/module/modules/alert-dialog/index.js.map +0 -1
- package/lib/module/modules/avatar/Avatar.js.map +0 -1
- package/lib/module/modules/avatar/Avatar.variants.js.map +0 -1
- package/lib/module/modules/avatar/index.js.map +0 -1
- package/lib/module/modules/badge/Badge.js.map +0 -1
- package/lib/module/modules/badge/Badge.variants.js.map +0 -1
- package/lib/module/modules/badge/index.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.search.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.variants.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js.map +0 -1
- package/lib/module/modules/bottom-nav/index.js.map +0 -1
- package/lib/module/modules/button/Button.js.map +0 -1
- package/lib/module/modules/button/Button.variants.js.map +0 -1
- package/lib/module/modules/button/index.js.map +0 -1
- package/lib/module/modules/button-group/ButtonGroup.js.map +0 -1
- package/lib/module/modules/button-group/ButtonGroup.variants.js.map +0 -1
- package/lib/module/modules/button-group/index.js.map +0 -1
- package/lib/module/modules/card/Card.js.map +0 -1
- package/lib/module/modules/card/Card.variants.js.map +0 -1
- package/lib/module/modules/card/index.js.map +0 -1
- package/lib/module/modules/charts/BarList.js.map +0 -1
- package/lib/module/modules/charts/Charts.variants.js.map +0 -1
- package/lib/module/modules/charts/DonutChart.js.map +0 -1
- package/lib/module/modules/charts/Sparkline.js.map +0 -1
- package/lib/module/modules/charts/index.js.map +0 -1
- package/lib/module/modules/checkbox/Checkbox.js.map +0 -1
- package/lib/module/modules/checkbox/Checkbox.variants.js.map +0 -1
- package/lib/module/modules/checkbox/index.js.map +0 -1
- package/lib/module/modules/divider/Divider.js.map +0 -1
- package/lib/module/modules/divider/Divider.variants.js.map +0 -1
- package/lib/module/modules/divider/index.js.map +0 -1
- package/lib/module/modules/drawer/Drawer.js.map +0 -1
- package/lib/module/modules/drawer/Drawer.variants.js.map +0 -1
- package/lib/module/modules/drawer/index.js.map +0 -1
- package/lib/module/modules/empty-state/EmptyState.js.map +0 -1
- package/lib/module/modules/empty-state/EmptyState.variants.js.map +0 -1
- package/lib/module/modules/empty-state/index.js.map +0 -1
- package/lib/module/modules/file-upload/FileUpload.js.map +0 -1
- package/lib/module/modules/file-upload/FileUpload.variants.js.map +0 -1
- package/lib/module/modules/file-upload/index.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterChip.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheet.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheetBody.js.map +0 -1
- package/lib/module/modules/filter-sheet/filterSheet.helpers.js.map +0 -1
- package/lib/module/modules/filter-sheet/index.js.map +0 -1
- package/lib/module/modules/input/Input.js.map +0 -1
- package/lib/module/modules/input/Input.variants.js.map +0 -1
- package/lib/module/modules/input/index.js.map +0 -1
- package/lib/module/modules/list-item/ListItem.js.map +0 -1
- package/lib/module/modules/list-item/ListItem.variants.js.map +0 -1
- package/lib/module/modules/list-item/index.js.map +0 -1
- package/lib/module/modules/markdown/Markdown.js.map +0 -1
- package/lib/module/modules/markdown/Markdown.variants.js.map +0 -1
- package/lib/module/modules/markdown/index.js.map +0 -1
- package/lib/module/modules/markdown/parseMarkdown.js.map +0 -1
- package/lib/module/modules/menu/Menu.js.map +0 -1
- package/lib/module/modules/menu/Menu.variants.js.map +0 -1
- package/lib/module/modules/menu/index.js.map +0 -1
- package/lib/module/modules/modal/Modal.js.map +0 -1
- package/lib/module/modules/modal/Modal.variants.js.map +0 -1
- package/lib/module/modules/modal/ModalPortalContext.js.map +0 -1
- package/lib/module/modules/modal/ModalPortalProvider.js.map +0 -1
- package/lib/module/modules/modal/index.js.map +0 -1
- package/lib/module/modules/modal/renderWebPortal.js.map +0 -1
- package/lib/module/modules/modal/renderWebPortal.web.js.map +0 -1
- package/lib/module/modules/multi-select/MultiSelect.js.map +0 -1
- package/lib/module/modules/multi-select/MultiSelect.variants.js.map +0 -1
- package/lib/module/modules/multi-select/index.js.map +0 -1
- package/lib/module/modules/number-input/NumberInput.js.map +0 -1
- package/lib/module/modules/number-input/NumberInput.variants.js.map +0 -1
- package/lib/module/modules/number-input/index.js.map +0 -1
- package/lib/module/modules/pin-input/PinInput.js.map +0 -1
- package/lib/module/modules/pin-input/PinInput.variants.js.map +0 -1
- package/lib/module/modules/pin-input/index.js.map +0 -1
- package/lib/module/modules/progress-bar/ProgressBar.js.map +0 -1
- package/lib/module/modules/progress-bar/ProgressBar.variants.js.map +0 -1
- package/lib/module/modules/progress-bar/index.js.map +0 -1
- package/lib/module/modules/radio-group/RadioGroup.js.map +0 -1
- package/lib/module/modules/radio-group/RadioGroup.variants.js.map +0 -1
- package/lib/module/modules/radio-group/index.js.map +0 -1
- package/lib/module/modules/reorder/Reorder.js.map +0 -1
- package/lib/module/modules/reorder/Reorder.variants.js.map +0 -1
- package/lib/module/modules/reorder/index.js.map +0 -1
- package/lib/module/modules/select/Select.js.map +0 -1
- package/lib/module/modules/select/Select.variants.js.map +0 -1
- package/lib/module/modules/select/index.js.map +0 -1
- package/lib/module/modules/skeleton/Skeleton.js.map +0 -1
- package/lib/module/modules/skeleton/Skeleton.variants.js.map +0 -1
- package/lib/module/modules/skeleton/index.js.map +0 -1
- package/lib/module/modules/slider/Slider.js.map +0 -1
- package/lib/module/modules/slider/Slider.variants.js.map +0 -1
- package/lib/module/modules/slider/index.js.map +0 -1
- package/lib/module/modules/spinner/Spinner.js.map +0 -1
- package/lib/module/modules/spinner/Spinner.variants.js.map +0 -1
- package/lib/module/modules/spinner/index.js.map +0 -1
- package/lib/module/modules/stat-tile/StatTile.js.map +0 -1
- package/lib/module/modules/stat-tile/StatTile.variants.js.map +0 -1
- package/lib/module/modules/stat-tile/index.js.map +0 -1
- package/lib/module/modules/stepper/Stepper.js.map +0 -1
- package/lib/module/modules/stepper/Stepper.variants.js.map +0 -1
- package/lib/module/modules/stepper/index.js.map +0 -1
- package/lib/module/modules/switch/Switch.js.map +0 -1
- package/lib/module/modules/switch/Switch.variants.js.map +0 -1
- package/lib/module/modules/switch/index.js.map +0 -1
- package/lib/module/modules/tabs/Tabs.js.map +0 -1
- package/lib/module/modules/tabs/Tabs.variants.js.map +0 -1
- package/lib/module/modules/tabs/index.js.map +0 -1
- package/lib/module/modules/textarea/Textarea.js.map +0 -1
- package/lib/module/modules/textarea/Textarea.variants.js.map +0 -1
- package/lib/module/modules/textarea/index.js.map +0 -1
- package/lib/module/modules/timeline/Timeline.js.map +0 -1
- package/lib/module/modules/timeline/Timeline.variants.js.map +0 -1
- package/lib/module/modules/timeline/index.js.map +0 -1
- package/lib/module/modules/toast/Toast.js.map +0 -1
- package/lib/module/modules/toast/Toast.variants.js.map +0 -1
- package/lib/module/modules/toast/index.js.map +0 -1
- package/lib/module/modules/tooltip/Tooltip.js.map +0 -1
- package/lib/module/modules/tooltip/Tooltip.variants.js.map +0 -1
- package/lib/module/modules/tooltip/index.js.map +0 -1
- package/lib/module/theme/index.js.map +0 -1
- package/lib/module/theme/platform/colorScheme.native.js.map +0 -1
- package/lib/module/theme/platform/elevation.native.js.map +0 -1
- package/lib/module/theme/platform/fonts.native.js.map +0 -1
- package/lib/module/theme/platform/index.js.map +0 -1
- package/lib/module/theme/platform/units.native.js.map +0 -1
- package/lib/module/theme/provider/PixelizeProvider.js.map +0 -1
- package/lib/module/theme/provider/colorModeStorage.js.map +0 -1
- package/lib/module/theme/provider/index.js.map +0 -1
- package/lib/module/theme/provider/useTheme.js.map +0 -1
- package/lib/module/theme/provider/useThemeColors.js.map +0 -1
- package/lib/module/theme/provider/useThemeMode.js.map +0 -1
- package/lib/module/theme/tokens/brands/emerald/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/emerald/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/index.js.map +0 -1
- package/lib/module/theme/tokens/brands/lavender/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/lavender/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/meadow/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/meadow/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/radiant/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/radiant/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/rosewood/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/skyline/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/skyline/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/slate/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/slate/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/storefront/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/storefront/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/zinc/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/zinc/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/builders/accentText.js.map +0 -1
- package/lib/module/theme/tokens/builders/buildBrandTokens.js.map +0 -1
- package/lib/module/theme/tokens/builders/buildDarkPalette.js.map +0 -1
- package/lib/module/theme/tokens/builders/color.js.map +0 -1
- package/lib/module/theme/tokens/index.js.map +0 -1
- package/lib/module/theme/tokens/primitives/borderWidths.js.map +0 -1
- package/lib/module/theme/tokens/primitives/breakpoints.js.map +0 -1
- package/lib/module/theme/tokens/primitives/elevation.js.map +0 -1
- package/lib/module/theme/tokens/primitives/fontSizes.js.map +0 -1
- package/lib/module/theme/tokens/primitives/fontWeights.js.map +0 -1
- package/lib/module/theme/tokens/primitives/index.js.map +0 -1
- package/lib/module/theme/tokens/primitives/letterSpacings.js.map +0 -1
- package/lib/module/theme/tokens/primitives/lineHeights.js.map +0 -1
- package/lib/module/theme/tokens/primitives/radii.js.map +0 -1
- package/lib/module/theme/tokens/primitives/sizes.js.map +0 -1
- package/lib/module/theme/tokens/primitives/space.js.map +0 -1
- package/lib/module/theme/tokens/primitives/zIndices.js.map +0 -1
- package/lib/module/theme/tokens/roles/index.js.map +0 -1
- package/lib/module/theme/tokens/types.js.map +0 -1
- package/lib/typescript/core/a11y/index.d.ts.map +0 -1
- package/lib/typescript/core/icon/index.d.ts.map +0 -1
- package/lib/typescript/core/style/index.d.ts.map +0 -1
- package/lib/typescript/core/style/layoutStyle.d.ts.map +0 -1
- package/lib/typescript/core/style/variants.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/Accordion.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/index.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/index.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/Avatar.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/index.d.ts.map +0 -1
- package/lib/typescript/modules/badge/Badge.d.ts.map +0 -1
- package/lib/typescript/modules/badge/Badge.variants.d.ts.map +0 -1
- package/lib/typescript/modules/badge/index.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNavIconWithBadge.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/index.d.ts.map +0 -1
- package/lib/typescript/modules/button/Button.d.ts.map +0 -1
- package/lib/typescript/modules/button/Button.variants.d.ts.map +0 -1
- package/lib/typescript/modules/button/index.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/index.d.ts.map +0 -1
- package/lib/typescript/modules/card/Card.d.ts.map +0 -1
- package/lib/typescript/modules/card/Card.variants.d.ts.map +0 -1
- package/lib/typescript/modules/card/index.d.ts.map +0 -1
- package/lib/typescript/modules/charts/BarList.d.ts.map +0 -1
- package/lib/typescript/modules/charts/Charts.variants.d.ts.map +0 -1
- package/lib/typescript/modules/charts/DonutChart.d.ts.map +0 -1
- package/lib/typescript/modules/charts/Sparkline.d.ts.map +0 -1
- package/lib/typescript/modules/charts/index.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/Checkbox.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/index.d.ts.map +0 -1
- package/lib/typescript/modules/divider/Divider.d.ts.map +0 -1
- package/lib/typescript/modules/divider/Divider.variants.d.ts.map +0 -1
- package/lib/typescript/modules/divider/index.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/Drawer.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/Drawer.variants.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/index.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/EmptyState.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/index.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/FileUpload.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/index.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterChip.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/index.d.ts.map +0 -1
- package/lib/typescript/modules/input/Input.d.ts.map +0 -1
- package/lib/typescript/modules/input/Input.variants.d.ts.map +0 -1
- package/lib/typescript/modules/input/index.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/ListItem.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/index.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/Markdown.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/Markdown.variants.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/index.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/parseMarkdown.d.ts.map +0 -1
- package/lib/typescript/modules/menu/Menu.d.ts.map +0 -1
- package/lib/typescript/modules/menu/Menu.variants.d.ts.map +0 -1
- package/lib/typescript/modules/menu/index.d.ts.map +0 -1
- package/lib/typescript/modules/modal/Modal.d.ts.map +0 -1
- package/lib/typescript/modules/modal/Modal.variants.d.ts.map +0 -1
- package/lib/typescript/modules/modal/ModalPortalContext.d.ts.map +0 -1
- package/lib/typescript/modules/modal/ModalPortalProvider.d.ts.map +0 -1
- package/lib/typescript/modules/modal/index.d.ts.map +0 -1
- package/lib/typescript/modules/modal/renderWebPortal.d.ts.map +0 -1
- package/lib/typescript/modules/modal/renderWebPortal.web.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/index.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/NumberInput.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/index.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/PinInput.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/index.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/index.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/index.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/Reorder.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/index.d.ts.map +0 -1
- package/lib/typescript/modules/select/Select.d.ts.map +0 -1
- package/lib/typescript/modules/select/Select.variants.d.ts.map +0 -1
- package/lib/typescript/modules/select/index.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/Skeleton.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/index.d.ts.map +0 -1
- package/lib/typescript/modules/slider/Slider.d.ts.map +0 -1
- package/lib/typescript/modules/slider/Slider.variants.d.ts.map +0 -1
- package/lib/typescript/modules/slider/index.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/Spinner.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/Spinner.variants.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/index.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/StatTile.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/index.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/Stepper.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/index.d.ts.map +0 -1
- package/lib/typescript/modules/switch/Switch.d.ts.map +0 -1
- package/lib/typescript/modules/switch/Switch.variants.d.ts.map +0 -1
- package/lib/typescript/modules/switch/index.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/Tabs.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/index.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/Textarea.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/index.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/Timeline.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/index.d.ts.map +0 -1
- package/lib/typescript/modules/toast/Toast.d.ts.map +0 -1
- package/lib/typescript/modules/toast/Toast.variants.d.ts.map +0 -1
- package/lib/typescript/modules/toast/index.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/Tooltip.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/index.d.ts.map +0 -1
- package/lib/typescript/theme/index.d.ts.map +0 -1
- package/lib/typescript/theme/platform/colorScheme.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/elevation.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/fonts.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/index.d.ts.map +0 -1
- package/lib/typescript/theme/platform/units.native.d.ts.map +0 -1
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts.map +0 -1
- package/lib/typescript/theme/provider/colorModeStorage.d.ts.map +0 -1
- package/lib/typescript/theme/provider/index.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useTheme.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useThemeColors.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useThemeMode.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/accentText.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/color.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/elevation.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/radii.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/sizes.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/space.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/zIndices.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/roles/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/types.d.ts.map +0 -1
|
@@ -1,95 +1,169 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Timeline — a vertical list of dated/ordered events.
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
4
|
+
* Timeline — a vertical list of dated/ordered events.
|
|
5
|
+
*
|
|
6
|
+
* The reveal is ONE animated value on the outer container, never one per row: rows are recycled
|
|
7
|
+
* cells in a `VirtualList`, so a per-cell animation would fire on every scroll-in. It is gated on
|
|
8
|
+
* `motion.decorative` (high-tier only) since a reveal is pure decoration.
|
|
9
|
+
*
|
|
10
|
+
* A row's title, description and timestamp form ONE accessible node — see
|
|
11
|
+
* `resolveTimelineItemAccessibility` for why three loose `Text` siblings were a 1.3.1 failure.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
import { memo } from "react";
|
|
15
|
-
import { Text, View } from "react-native";
|
|
14
|
+
import { memo, useCallback, useEffect, useMemo, useRef } from "react";
|
|
15
|
+
import { Animated, Text, View } from "react-native";
|
|
16
16
|
import { Icon } from "../../core/icon/index.js";
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
17
|
+
import { VirtualList } from "../../core/list/index.js";
|
|
18
|
+
import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
|
|
19
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
20
|
+
import { resolveTimelineColors, resolveTimelineItemAccessibility, timelineConnectorLineStructure, timelineConnectorStructure, timelineContentStructure, timelineMarkerStructure, timelineRowStructure, TIMELINE_MARKER } from "./Timeline.variants.js";
|
|
19
21
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
22
|
+
const VIRTUALIZE_THRESHOLD = 20;
|
|
20
23
|
const ICON_STROKE = 2;
|
|
24
|
+
const TimelineRow = /*#__PURE__*/memo(function TimelineRow({
|
|
25
|
+
model,
|
|
26
|
+
theme,
|
|
27
|
+
colors,
|
|
28
|
+
testID
|
|
29
|
+
}) {
|
|
30
|
+
const {
|
|
31
|
+
item,
|
|
32
|
+
index,
|
|
33
|
+
isLast
|
|
34
|
+
} = model;
|
|
35
|
+
const position = isLast ? "last" : "middle";
|
|
36
|
+
const rowTestID = testID === undefined ? undefined : `${testID}-item-${index}`;
|
|
37
|
+
const a11y = resolveTimelineItemAccessibility(item);
|
|
38
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
39
|
+
testID: rowTestID,
|
|
40
|
+
style: timelineRowStructure(),
|
|
41
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
42
|
+
testID: rowTestID === undefined ? undefined : `${rowTestID}-connector`,
|
|
43
|
+
style: timelineConnectorStructure(),
|
|
44
|
+
accessibilityElementsHidden: true,
|
|
45
|
+
importantForAccessibility: "no-hide-descendants",
|
|
46
|
+
children: [item.leading !== undefined ? /*#__PURE__*/_jsx(View, {
|
|
47
|
+
testID: rowTestID === undefined ? undefined : `${rowTestID}-marker`,
|
|
48
|
+
children: item.leading
|
|
49
|
+
}) : /*#__PURE__*/_jsx(View, {
|
|
50
|
+
testID: rowTestID === undefined ? undefined : `${rowTestID}-marker`,
|
|
51
|
+
style: [timelineMarkerStructure(theme, {
|
|
52
|
+
kind: item.icon === undefined ? "dot" : "icon"
|
|
53
|
+
}), {
|
|
54
|
+
backgroundColor: colors.markerFill
|
|
55
|
+
}],
|
|
56
|
+
children: item.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
|
|
57
|
+
name: item.icon,
|
|
58
|
+
size: TIMELINE_MARKER.glyph,
|
|
59
|
+
color: colors.markerIcon,
|
|
60
|
+
strokeWidth: ICON_STROKE
|
|
61
|
+
})
|
|
62
|
+
}), !isLast && /*#__PURE__*/_jsx(View, {
|
|
63
|
+
testID: rowTestID === undefined ? undefined : `${rowTestID}-line`,
|
|
64
|
+
style: [timelineConnectorLineStructure(theme), {
|
|
65
|
+
backgroundColor: colors.connector
|
|
66
|
+
}]
|
|
67
|
+
})]
|
|
68
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
69
|
+
testID: rowTestID === undefined ? undefined : `${rowTestID}-content`,
|
|
70
|
+
accessible: a11y.accessible,
|
|
71
|
+
accessibilityRole: a11y.accessibilityRole,
|
|
72
|
+
accessibilityLabel: a11y.accessibilityLabel,
|
|
73
|
+
style: timelineContentStructure(theme, {
|
|
74
|
+
position
|
|
75
|
+
}),
|
|
76
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
77
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
|
|
78
|
+
fontSize: theme.fontSizes.md,
|
|
79
|
+
color: colors.title
|
|
80
|
+
}],
|
|
81
|
+
children: item.title
|
|
82
|
+
}), item.description !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
83
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
84
|
+
fontSize: theme.fontSizes.sm,
|
|
85
|
+
color: colors.description,
|
|
86
|
+
marginTop: theme.space[1]
|
|
87
|
+
}],
|
|
88
|
+
children: item.description
|
|
89
|
+
}), item.timestamp !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
90
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
91
|
+
fontSize: theme.fontSizes.xs,
|
|
92
|
+
color: colors.timestamp,
|
|
93
|
+
marginTop: theme.space[1]
|
|
94
|
+
}],
|
|
95
|
+
children: item.timestamp
|
|
96
|
+
})]
|
|
97
|
+
})]
|
|
98
|
+
});
|
|
99
|
+
});
|
|
21
100
|
export const Timeline = /*#__PURE__*/memo(function Timeline({
|
|
22
101
|
items,
|
|
23
102
|
style,
|
|
24
103
|
testID
|
|
25
104
|
}) {
|
|
26
105
|
const theme = useTheme();
|
|
27
|
-
const
|
|
28
|
-
|
|
106
|
+
const motion = useMotion();
|
|
107
|
+
const colors = useMemo(() => resolveTimelineColors(theme.colors), [theme.colors]);
|
|
108
|
+
const reveal = useAnimatedValue(motion.decorative ? 0 : 1);
|
|
109
|
+
const running = useRef(null);
|
|
110
|
+
useEffect(() => {
|
|
111
|
+
running.current?.stop();
|
|
112
|
+
if (!motion.decorative) {
|
|
113
|
+
reveal.setValue(1);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
running.current = motion.timing(reveal, 1, {
|
|
117
|
+
easing: "decelerate"
|
|
118
|
+
});
|
|
119
|
+
running.current.start();
|
|
120
|
+
return () => running.current?.stop();
|
|
121
|
+
}, [motion, reveal]);
|
|
122
|
+
useEffect(() => () => running.current?.stop(), []);
|
|
123
|
+
const revealStyle = useMemo(() => ({
|
|
124
|
+
opacity: reveal,
|
|
125
|
+
transform: [{
|
|
126
|
+
translateY: reveal.interpolate({
|
|
127
|
+
inputRange: [0, 1],
|
|
128
|
+
outputRange: [motion.transform.offsetY, 0]
|
|
129
|
+
})
|
|
130
|
+
}]
|
|
131
|
+
}), [reveal, motion.transform.offsetY]);
|
|
132
|
+
const rootStyle = useMemo(() => [revealStyle, style], [revealStyle, style]);
|
|
133
|
+
const rows = useMemo(() => items.map((item, index) => ({
|
|
134
|
+
item,
|
|
135
|
+
index,
|
|
136
|
+
isLast: index === items.length - 1
|
|
137
|
+
})), [items]);
|
|
138
|
+
const keyExtractor = useCallback(row => row.item.id ?? `timeline-index-${row.index}`, []);
|
|
139
|
+
const renderItem = useCallback(({
|
|
140
|
+
item: row
|
|
141
|
+
}) => /*#__PURE__*/_jsx(TimelineRow, {
|
|
142
|
+
model: row,
|
|
143
|
+
theme: theme,
|
|
144
|
+
colors: colors,
|
|
145
|
+
testID: testID
|
|
146
|
+
}), [theme, colors, testID]);
|
|
147
|
+
if (items.length >= VIRTUALIZE_THRESHOLD) {
|
|
148
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
149
|
+
testID: testID,
|
|
150
|
+
style: rootStyle,
|
|
151
|
+
children: /*#__PURE__*/_jsx(VirtualList, {
|
|
152
|
+
data: rows,
|
|
153
|
+
keyExtractor: keyExtractor,
|
|
154
|
+
renderItem: renderItem
|
|
155
|
+
})
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
29
159
|
testID: testID,
|
|
30
|
-
style:
|
|
31
|
-
children:
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
style: timelineRowStructure(),
|
|
38
|
-
children: [/*#__PURE__*/_jsxs(View, {
|
|
39
|
-
testID: rowTestID === undefined ? undefined : `${rowTestID}-connector`,
|
|
40
|
-
style: timelineConnectorStructure(),
|
|
41
|
-
accessibilityElementsHidden: true,
|
|
42
|
-
importantForAccessibility: "no-hide-descendants",
|
|
43
|
-
children: [item.leading !== undefined ? /*#__PURE__*/_jsx(View, {
|
|
44
|
-
testID: rowTestID === undefined ? undefined : `${rowTestID}-marker`,
|
|
45
|
-
children: item.leading
|
|
46
|
-
}) : /*#__PURE__*/_jsx(View, {
|
|
47
|
-
testID: rowTestID === undefined ? undefined : `${rowTestID}-marker`,
|
|
48
|
-
style: [timelineMarkerStructure(theme, {
|
|
49
|
-
kind: item.icon === undefined ? "dot" : "icon"
|
|
50
|
-
}), {
|
|
51
|
-
backgroundColor: colors.markerFill
|
|
52
|
-
}],
|
|
53
|
-
children: item.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
|
|
54
|
-
name: item.icon,
|
|
55
|
-
size: TIMELINE_MARKER.glyph,
|
|
56
|
-
color: colors.markerIcon,
|
|
57
|
-
strokeWidth: ICON_STROKE
|
|
58
|
-
})
|
|
59
|
-
}), !isLast && /*#__PURE__*/_jsx(View, {
|
|
60
|
-
testID: rowTestID === undefined ? undefined : `${rowTestID}-line`,
|
|
61
|
-
style: [timelineConnectorLineStructure(theme), {
|
|
62
|
-
backgroundColor: colors.connector
|
|
63
|
-
}]
|
|
64
|
-
})]
|
|
65
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
66
|
-
style: timelineContentStructure(theme, {
|
|
67
|
-
position
|
|
68
|
-
}),
|
|
69
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
70
|
-
style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
|
|
71
|
-
fontSize: theme.fontSizes.md,
|
|
72
|
-
color: colors.title
|
|
73
|
-
}],
|
|
74
|
-
children: item.title
|
|
75
|
-
}), item.description !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
76
|
-
style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
77
|
-
fontSize: theme.fontSizes.sm,
|
|
78
|
-
color: colors.description,
|
|
79
|
-
marginTop: theme.space[1]
|
|
80
|
-
}],
|
|
81
|
-
children: item.description
|
|
82
|
-
}), item.timestamp !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
83
|
-
style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
84
|
-
fontSize: theme.fontSizes.xs,
|
|
85
|
-
color: colors.timestamp,
|
|
86
|
-
marginTop: theme.space[1]
|
|
87
|
-
}],
|
|
88
|
-
children: item.timestamp
|
|
89
|
-
})]
|
|
90
|
-
})]
|
|
91
|
-
}, `${index}-${item.title}`);
|
|
92
|
-
})
|
|
160
|
+
style: rootStyle,
|
|
161
|
+
children: rows.map(row => /*#__PURE__*/_jsx(TimelineRow, {
|
|
162
|
+
model: row,
|
|
163
|
+
theme: theme,
|
|
164
|
+
colors: colors,
|
|
165
|
+
testID: testID
|
|
166
|
+
}, keyExtractor(row)))
|
|
93
167
|
});
|
|
94
168
|
});
|
|
95
169
|
//# sourceMappingURL=Timeline.js.map
|
|
@@ -115,6 +115,19 @@ export const timelineConnectorLineStructure = createThemedVariants(theme => ({
|
|
|
115
115
|
width: theme.borderWidths.thick
|
|
116
116
|
}
|
|
117
117
|
}));
|
|
118
|
+
/**
|
|
119
|
+
* One event's title, description and timestamp collapse into ONE accessible node (WCAG 1.3.1) — as
|
|
120
|
+
* three loose `Text` siblings, only their visual grouping said which timestamp belonged to which
|
|
121
|
+
* title. The same composition `resolveBannerAccessibility` does for its title + message.
|
|
122
|
+
*/
|
|
123
|
+
export function resolveTimelineItemAccessibility(item) {
|
|
124
|
+
const parts = [item.title, item.description, item.timestamp].filter(part => part !== undefined);
|
|
125
|
+
return {
|
|
126
|
+
accessible: true,
|
|
127
|
+
accessibilityRole: "text",
|
|
128
|
+
accessibilityLabel: parts.join(". ")
|
|
129
|
+
};
|
|
130
|
+
}
|
|
118
131
|
|
|
119
132
|
/**
|
|
120
133
|
* The text column beside the connector. A `middle` row (one with a following item) reserves the
|
|
@@ -8,11 +8,15 @@ anywhere beneath it.
|
|
|
8
8
|
|
|
9
9
|
| File | Role |
|
|
10
10
|
|------|------|
|
|
11
|
-
| `Toast.tsx` | `ToastProvider`, the internal `ToastCard`, and `useToast()`. State machine, timers, animation, a11y wiring. |
|
|
12
|
-
| `Toast.variants.ts` | Pure resolver (`resolveToastTone`) + the themed structural resolvers (`toastCardStructure`, `toastAccentBarStructure`, `toastOverlayStructure`, including the overlay's `zIndex`). No React, no lucide. |
|
|
13
|
-
| `
|
|
14
|
-
| `
|
|
11
|
+
| `Toast.tsx` | `ToastProvider`, the internal `ToastCard`, and `useToast()`. State machine, timers, animation, a11y wiring, hover/focus pause. |
|
|
12
|
+
| `Toast.variants.ts` | Pure resolver (`resolveToastTone`) + `resolveAutoDismissDelay` (WCAG 2.2.1 — see below) + the themed structural resolvers (`toastCardStructure`, `toastAccentBarStructure`, `toastOverlayStructure`, including the overlay's `zIndex`). No React, no lucide. |
|
|
13
|
+
| `toastScreenReader.ts` | `useScreenReaderEnabled()` — module-local store, `useReducedMotion`'s shape, tracking `AccessibilityInfo.isScreenReaderEnabled()`. Belongs in `core/a11y` (see Known gaps). |
|
|
14
|
+
| `index.ts` | Public surface: `ToastProvider`, `useToast`, `ToastOptions`, `ToastContextValue`, `ToastProviderProps`, the closed unions incl. `ToastDuration`. No `IconName` re-export — the dismiss glyph is a fixed internal choice. |
|
|
15
|
+
| `__tests__/Toast.motion.test.tsx` | Motion: reduce-motion zero duration, the real entrance/exit tween, the shared surface offset, and the device tier's `durationScale` reaching both the tween and the unmount timer. |
|
|
16
|
+
| `__tests__/Toast.test.ts` | Pure: WCAG contrast (all brands × modes, including the close icon vs the card background) + touch target + the tone→role contract + every resolved colour is a solid 6-digit hex (never an alpha token) + `resolveAutoDismissDelay` (WCAG 2.2.1, incl. the `duration: 0` / `duration: Infinity` regressions). |
|
|
15
17
|
| `__tests__/Toast.render.test.tsx` | Render: show/auto-dismiss/dismiss, replace-while-visible, the cross-platform announce call, missing-provider error, the REAL rendered card background (flattened style, not just the token). |
|
|
18
|
+
| `__tests__/Toast.timing.test.tsx` | Render-level WCAG 2.2.1: persistent mode, the two shipped traps as explicit regressions, hover/focus pause + re-arm, the `danger` persistent default (and an explicit `duration` overriding it), screen-reader suppression. |
|
|
19
|
+
| `__tests__/toastScreenReader.test.ts` | The screen-reader store: pre-probe seed, probe result, `screenReaderChanged` subscription, process cache, one-listener-per-process, cleanup. |
|
|
16
20
|
|
|
17
21
|
## Why not `<Modal>`
|
|
18
22
|
|
|
@@ -28,7 +32,7 @@ system, so it floats over anything without competing for the same presentation s
|
|
|
28
32
|
|--------|-------|-------|
|
|
29
33
|
| `ToastProvider` | `{ children, position?: "top" \| "bottom" }` | Mount once near the app root. `position` defaults to `top`; it is provider-level (one overlay), not per-toast. No `style` prop — same as `PixelizeProvider`, the only other provider in this catalogue: it wraps the whole app rather than being laid out by one. |
|
|
30
34
|
| `useToast()` | `{ show(options), dismiss() }` | Throws outside a `ToastProvider`, same contract as `useTheme()`. |
|
|
31
|
-
| `ToastOptions` | `{ message: string, tone?: ToastTone, duration?:
|
|
35
|
+
| `ToastOptions` | `{ message: string, tone?: ToastTone, duration?: ToastDuration }` | `tone` defaults to `neutral`. `duration` (`number \| "persistent"`) defaults to `DEFAULT_TOAST_DURATION` (~3000ms) — **except `tone: "danger"`, which defaults to `"persistent"`** (see "Auto-dismiss timing" below). |
|
|
32
36
|
| `ToastTone` | `success \| warning \| danger \| info \| neutral` | Closed union — colour from `colors.status.<role>`, never a `color` prop. |
|
|
33
37
|
|
|
34
38
|
Single-slot by design: calling `show()` while a toast is visible replaces its message/tone, restarts
|
|
@@ -36,8 +40,52 @@ the auto-dismiss timer, and restarts the entrance animation (a fresh message rea
|
|
|
36
40
|
There is no stacking queue in v1 — see Known gaps. `dismiss()` always targets that one slot and is a
|
|
37
41
|
safe no-op when nothing is showing.
|
|
38
42
|
|
|
43
|
+
## Motion
|
|
44
|
+
|
|
45
|
+
Entrance and exit go through **`useMotion()`** at the shared `fast` duration; the card's travel is
|
|
46
|
+
`MOTION_TRANSFORM.surfaceOffsetY`. The old module-local `ANIMATION_MS = 200` / `TRANSLATE_DISTANCE =
|
|
47
|
+
24` are gone — this module was skipped by the earlier motion refactor, so until now neither the
|
|
48
|
+
device tier's `durationScale` nor `MOTION_SCALE`/`MOTION_ENABLED` reached it. The unmount timer reads
|
|
49
|
+
the SAME resolved `motion.duration("fast")` as the tween, keeping the removal deterministic (see
|
|
50
|
+
`Toast.tsx`'s note on why the timer, not the animation callback, drives it).
|
|
51
|
+
|
|
52
|
+
## Auto-dismiss timing (WCAG 2.2.1 — Timing Adjustable)
|
|
53
|
+
|
|
54
|
+
`resolveAutoDismissDelay(duration, tone, screenReaderEnabled)` (`Toast.variants.ts`) is the ONLY
|
|
55
|
+
place that decides whether a toast's timer gets armed. `Toast.tsx` branches on its `null` result
|
|
56
|
+
*before* calling `setTimeout` — nothing else in the module computes a delay.
|
|
57
|
+
|
|
58
|
+
- **`duration: "persistent"`** — never auto-dismisses. The spelled-out sentinel, not `0` or
|
|
59
|
+
`Infinity`: at a call site, `duration: 0` reads as "no delay" and `Infinity` overflows
|
|
60
|
+
`setTimeout`'s 32-bit signed delay and fires in ~1ms — both were shipped traps that looked like a
|
|
61
|
+
persistent mode and were actually instant-dismiss. `resolveAutoDismissDelay` now treats `0`,
|
|
62
|
+
negative numbers, `NaN` and anything past the 32-bit ceiling the same as `"persistent"` (fail
|
|
63
|
+
towards "stays up" — the card always has a close button) — `Toast.test.ts` locks both former traps
|
|
64
|
+
down as explicit regressions.
|
|
65
|
+
- **Hover and focus pause the timer; leaving re-arms the FULL delay.** `ToastCard` wires
|
|
66
|
+
`onPointerEnter`/`onPointerLeave`/`onFocus`/`onBlur` (on both the card `Animated.View` and the
|
|
67
|
+
close button, so focus reaching the close button also pauses); `ToastProvider` tracks
|
|
68
|
+
`hovered`/`focused` in refs (not state — pausing must not re-render the card) and re-arms through
|
|
69
|
+
one `armDismissTimer()` choke point. This is deliberately a restart, not a countdown resume: a
|
|
70
|
+
toast the user stopped reading mid-sentence should get the whole message again, not whatever was
|
|
71
|
+
left on the clock.
|
|
72
|
+
- **A running screen reader (`useScreenReaderEnabled`, `toastScreenReader.ts`) suppresses
|
|
73
|
+
auto-dismiss for every tone**, explicit `duration` included. ~3s is not enough for VoiceOver/
|
|
74
|
+
TalkBack to finish speaking a message, and there is no way to replay a toast that's gone — this is
|
|
75
|
+
the DEFAULT behaviour, not an opt-in prop, because a consumer has no way to know per-toast whether
|
|
76
|
+
a reader is running.
|
|
77
|
+
- **`tone: "danger"` with no explicit `duration` defaults to persistent**, unlike every other tone.
|
|
78
|
+
**Consumer-visible behaviour change:** an existing `show({ message, tone: "danger" })` call that
|
|
79
|
+
relied on the ~3000ms default now stays up until dismissed. An explicit `duration` on a `danger`
|
|
80
|
+
toast is still honoured — only the *default* changed. Judgement call: a 3-second error message is
|
|
81
|
+
the exact failure WCAG 2.2.1 exists to prevent, and this catalogue has no toast history a user
|
|
82
|
+
could scroll back to recover a missed one from. Every other tone keeps the ~3000ms default
|
|
83
|
+
unchanged — success/info/neutral/warning messages are lower-stakes and the existing default reads
|
|
84
|
+
fine for them.
|
|
85
|
+
|
|
39
86
|
## Accessibility contract (WCAG)
|
|
40
87
|
|
|
88
|
+
- **2.2.1 (timing adjustable)** — see "Auto-dismiss timing" above.
|
|
41
89
|
- **4.1.3 (status messages)** — `show()` calls `AccessibilityInfo.announceForAccessibility(message)`,
|
|
42
90
|
the real cross-platform imperative API (VoiceOver + TalkBack). The message `Text` deliberately does
|
|
43
91
|
NOT also carry `accessibilityLiveRegion`: that RN prop is Android-only, and since `show()` always
|
|
@@ -57,8 +105,9 @@ safe no-op when nothing is showing.
|
|
|
57
105
|
below), measured ≥ 3:1 against the card's own background for every tone × brand × mode. The close
|
|
58
106
|
icon (`fg.muted`, constant across tones — not resolved via `resolveToastTone`) is measured the same
|
|
59
107
|
way against every tone's card background in the same file.
|
|
60
|
-
- **2.3.3** — the slide/fade entrance and exit
|
|
61
|
-
|
|
108
|
+
- **2.3.3** — the slide/fade entrance and exit resolve to `duration: 0` under reduce motion; the
|
|
109
|
+
toast still appears/disappears, just without the animated motion. The check is `useMotion()`'s,
|
|
110
|
+
never a second `useReducedMotion()` call (`core/motion/MODULE.md` rule 6).
|
|
62
111
|
- The close button is icon-only: `accessibilityRole="button"` with a fixed, always-present
|
|
63
112
|
`accessibilityLabel="Dismiss notification"` (not a consumer-configurable prop, so there is no
|
|
64
113
|
unlabelled-icon-button state to make unrepresentable here — unlike `Button`'s icon-only shape).
|
|
@@ -90,6 +139,10 @@ change can't silently reintroduce the gap.
|
|
|
90
139
|
|
|
91
140
|
## Known gaps
|
|
92
141
|
|
|
142
|
+
- **`toastScreenReader.ts` duplicates `core/a11y`'s store shape instead of living there.** It is a
|
|
143
|
+
general a11y concern (any timed UI could use it), but `core/a11y/` was mid-edit by another change
|
|
144
|
+
in flight when this was built. Move `useScreenReaderEnabled`/`resetScreenReaderCache` into
|
|
145
|
+
`core/a11y` and re-export, once that edit lands, rather than leaving two near-identical stores.
|
|
93
146
|
- **No stacking queue.** `show()` while visible replaces the current toast; there is no multi-toast
|
|
94
147
|
queue in v1. Flagging for a future version if a consumer needs concurrent toasts.
|
|
95
148
|
- **No safe-area inset awareness.** The overlay's edge inset is a fixed `theme.space[4]`; it does not
|
|
@@ -102,3 +155,9 @@ change can't silently reintroduce the gap.
|
|
|
102
155
|
## Performance
|
|
103
156
|
|
|
104
157
|
`ToastProvider` (exported) and `ToastCard` (internal, non-exported) are both wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`) — mirrors the repo convention (e.g. `AccordionRow`) of memoizing library-internal child components too. No new `useCallback`/`useMemo` needed: the props handed to `ToastCard` (`toast`, `theme`, `position`, `progress`, `onDismiss={hide}`) were already stable — the file already used `useCallback`/`useMemo` throughout.
|
|
158
|
+
|
|
159
|
+
## Modernization (v1.0.7)
|
|
160
|
+
|
|
161
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
162
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
163
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -15,31 +15,38 @@
|
|
|
15
15
|
* restarts the auto-dismiss timer (and, since a fresh message reads as a new event, restarts the
|
|
16
16
|
* entrance animation) rather than queueing a second one. `dismiss()` always dismisses that one slot,
|
|
17
17
|
* and is a safe no-op when nothing is showing.
|
|
18
|
+
*
|
|
19
|
+
* Auto-dismiss is WCAG 2.2.1 (Timing Adjustable) territory: how long a toast lives is decided ONLY
|
|
20
|
+
* by `resolveAutoDismissDelay` (persistent mode, the screen-reader suppression, the `danger`
|
|
21
|
+
* default), and the timer is only armed while the user is neither hovering nor focused inside the
|
|
22
|
+
* card. Hover/focus pause and re-arm, they never dismiss.
|
|
18
23
|
*/
|
|
19
24
|
|
|
20
25
|
import { createContext, memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
21
26
|
import { AccessibilityInfo, Animated, Pressable, StyleSheet, Text, View } from "react-native";
|
|
22
|
-
import {
|
|
27
|
+
import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
|
|
23
28
|
import { Icon } from "../../core/icon/index.js";
|
|
24
|
-
import { useTheme } from "../../theme/
|
|
25
|
-
import { CLOSE_BUTTON_SIZE, CLOSE_HIT_SLOP, CLOSE_ICON_SIZE,
|
|
29
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
30
|
+
import { CLOSE_BUTTON_SIZE, CLOSE_HIT_SLOP, CLOSE_ICON_SIZE, resolveAutoDismissDelay, resolveToastTone, toastAccentBarStructure, toastCardStructure, toastOverlayStructure } from "./Toast.variants.js";
|
|
31
|
+
import { useScreenReaderEnabled } from "./toastScreenReader.js";
|
|
26
32
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
27
|
-
// The entrance/exit fade+slide duration, and how far the card travels while animating in. Component
|
|
28
|
-
// design constants — not on the theme's numeric scale, same status `PRESS_FADE_MS` etc. have in
|
|
29
|
-
// `Button.tsx`.
|
|
30
|
-
const ANIMATION_MS = 200;
|
|
31
|
-
const TRANSLATE_DISTANCE = 24;
|
|
32
33
|
const ToastContext = /*#__PURE__*/createContext(undefined);
|
|
33
34
|
export const ToastProvider = /*#__PURE__*/memo(function ToastProvider({
|
|
34
35
|
children,
|
|
35
36
|
position = "top"
|
|
36
37
|
}) {
|
|
37
38
|
const theme = useTheme();
|
|
38
|
-
const
|
|
39
|
+
const motion = useMotion();
|
|
40
|
+
const screenReaderEnabled = useScreenReaderEnabled();
|
|
39
41
|
const [toast, setToast] = useState(null);
|
|
40
|
-
const progress =
|
|
42
|
+
const progress = useAnimatedValue(0);
|
|
41
43
|
const dismissTimer = useRef(null);
|
|
42
44
|
const unmountTimer = useRef(null);
|
|
45
|
+
/** The visible toast's resolved delay; `null` = persistent, so no timer is ever armed for it. */
|
|
46
|
+
const delay = useRef(null);
|
|
47
|
+
// Refs, not state: pausing must not re-render the card mid-hover, and nothing renders from them.
|
|
48
|
+
const hovered = useRef(false);
|
|
49
|
+
const focused = useRef(false);
|
|
43
50
|
const clearTimers = useCallback(() => {
|
|
44
51
|
if (dismissTimer.current !== null) clearTimeout(dismissTimer.current);
|
|
45
52
|
if (unmountTimer.current !== null) clearTimeout(unmountTimer.current);
|
|
@@ -53,31 +60,67 @@ export const ToastProvider = /*#__PURE__*/memo(function ToastProvider({
|
|
|
53
60
|
// a second timer of the same duration keeps the removal deterministic everywhere.
|
|
54
61
|
const hide = useCallback(() => {
|
|
55
62
|
clearTimers();
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
// Stops a hover/focus that lands after the exit began from re-arming a timer for a gone toast.
|
|
64
|
+
delay.current = null;
|
|
65
|
+
motion.timing(progress, 0, {
|
|
66
|
+
duration: "fast",
|
|
67
|
+
easing: "accelerate"
|
|
60
68
|
}).start();
|
|
61
|
-
unmountTimer.current = setTimeout(() => setToast(null),
|
|
62
|
-
}, [clearTimers, progress,
|
|
69
|
+
unmountTimer.current = setTimeout(() => setToast(null), motion.duration("fast"));
|
|
70
|
+
}, [clearTimers, progress, motion]);
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The single place a dismiss timer is armed. Idempotent and safe to call from either pause
|
|
74
|
+
* source: it always clears first, then re-arms only if the toast auto-dismisses at all and the
|
|
75
|
+
* user is neither hovering nor focused inside it.
|
|
76
|
+
*/
|
|
77
|
+
const armDismissTimer = useCallback(() => {
|
|
78
|
+
if (dismissTimer.current !== null) clearTimeout(dismissTimer.current);
|
|
79
|
+
dismissTimer.current = null;
|
|
80
|
+
if (delay.current === null || hovered.current || focused.current) return;
|
|
81
|
+
dismissTimer.current = setTimeout(hide, delay.current);
|
|
82
|
+
}, [hide]);
|
|
63
83
|
const show = useCallback(options => {
|
|
64
84
|
clearTimers();
|
|
85
|
+
// A replacement toast is a new event: whatever the pointer/focus did to the last one is spent.
|
|
86
|
+
hovered.current = false;
|
|
87
|
+
focused.current = false;
|
|
65
88
|
progress.setValue(0);
|
|
89
|
+
const tone = options.tone ?? "neutral";
|
|
66
90
|
setToast({
|
|
67
91
|
message: options.message,
|
|
68
|
-
tone
|
|
92
|
+
tone
|
|
69
93
|
});
|
|
70
94
|
// The real cross-platform screen-reader announcement: `accessibilityLiveRegion` (see
|
|
71
95
|
// `ToastCard`'s Text) is Android-only, so it alone leaves iOS VoiceOver silent. This
|
|
72
96
|
// imperative call reaches both VoiceOver and TalkBack.
|
|
73
97
|
AccessibilityInfo.announceForAccessibility(options.message);
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
useNativeDriver: true
|
|
98
|
+
motion.timing(progress, 1, {
|
|
99
|
+
duration: "fast",
|
|
100
|
+
easing: "decelerate"
|
|
78
101
|
}).start();
|
|
79
|
-
|
|
80
|
-
|
|
102
|
+
delay.current = resolveAutoDismissDelay(options.duration, tone, screenReaderEnabled);
|
|
103
|
+
armDismissTimer();
|
|
104
|
+
}, [armDismissTimer, clearTimers, progress, motion, screenReaderEnabled]);
|
|
105
|
+
|
|
106
|
+
// Pause while the user is reading (WCAG 2.2.1): leaving re-arms the FULL delay rather than the
|
|
107
|
+
// remainder — the message effectively restarts, which is the generous direction.
|
|
108
|
+
const handleHoverIn = useCallback(() => {
|
|
109
|
+
hovered.current = true;
|
|
110
|
+
armDismissTimer();
|
|
111
|
+
}, [armDismissTimer]);
|
|
112
|
+
const handleHoverOut = useCallback(() => {
|
|
113
|
+
hovered.current = false;
|
|
114
|
+
armDismissTimer();
|
|
115
|
+
}, [armDismissTimer]);
|
|
116
|
+
const handleFocus = useCallback(() => {
|
|
117
|
+
focused.current = true;
|
|
118
|
+
armDismissTimer();
|
|
119
|
+
}, [armDismissTimer]);
|
|
120
|
+
const handleBlur = useCallback(() => {
|
|
121
|
+
focused.current = false;
|
|
122
|
+
armDismissTimer();
|
|
123
|
+
}, [armDismissTimer]);
|
|
81
124
|
|
|
82
125
|
// Unmount-only cleanup: `clearTimers` is referentially stable (empty deps), so this never re-fires.
|
|
83
126
|
useEffect(() => clearTimers, [clearTimers]);
|
|
@@ -97,7 +140,12 @@ export const ToastProvider = /*#__PURE__*/memo(function ToastProvider({
|
|
|
97
140
|
theme: theme,
|
|
98
141
|
position: position,
|
|
99
142
|
progress: progress,
|
|
100
|
-
|
|
143
|
+
offsetY: motion.transform.surfaceOffsetY,
|
|
144
|
+
onDismiss: hide,
|
|
145
|
+
onHoverIn: handleHoverIn,
|
|
146
|
+
onHoverOut: handleHoverOut,
|
|
147
|
+
onFocusIn: handleFocus,
|
|
148
|
+
onFocusOut: handleBlur
|
|
101
149
|
})
|
|
102
150
|
})]
|
|
103
151
|
});
|
|
@@ -110,16 +158,30 @@ const ToastCard = /*#__PURE__*/memo(function ToastCard({
|
|
|
110
158
|
theme,
|
|
111
159
|
position,
|
|
112
160
|
progress,
|
|
113
|
-
|
|
161
|
+
offsetY,
|
|
162
|
+
onDismiss,
|
|
163
|
+
onHoverIn,
|
|
164
|
+
onHoverOut,
|
|
165
|
+
onFocusIn,
|
|
166
|
+
onFocusOut
|
|
114
167
|
}) {
|
|
115
168
|
const toneColors = resolveToastTone(theme.colors, toast.tone);
|
|
116
169
|
const translateY = progress.interpolate({
|
|
117
170
|
inputRange: [0, 1],
|
|
118
|
-
outputRange: position === "top" ? [-
|
|
171
|
+
outputRange: position === "top" ? [-offsetY, 0] : [offsetY, 0]
|
|
119
172
|
});
|
|
120
173
|
return /*#__PURE__*/_jsxs(Animated.View, {
|
|
121
174
|
testID: "pixelize-toast",
|
|
122
|
-
accessibilityRole: "alert"
|
|
175
|
+
accessibilityRole: "alert"
|
|
176
|
+
// W3C pointer events, not a `Pressable` wrapper: hovering to read must not turn the card into
|
|
177
|
+
// a touch responder that competes with the close button for the tap. `onFocus`/`onBlur` on a
|
|
178
|
+
// View catch focus BUBBLING out of the close button (react-native-web), which is the only
|
|
179
|
+
// focusable thing in here; the button repeats them for native, where focus does not bubble.
|
|
180
|
+
,
|
|
181
|
+
onPointerEnter: onHoverIn,
|
|
182
|
+
onPointerLeave: onHoverOut,
|
|
183
|
+
onFocus: onFocusIn,
|
|
184
|
+
onBlur: onFocusOut,
|
|
123
185
|
style: [toastCardStructure(theme), {
|
|
124
186
|
backgroundColor: toneColors.background
|
|
125
187
|
}, theme.elevation.lg, {
|
|
@@ -145,6 +207,10 @@ const ToastCard = /*#__PURE__*/memo(function ToastCard({
|
|
|
145
207
|
accessibilityLabel: "Dismiss notification",
|
|
146
208
|
hitSlop: CLOSE_HIT_SLOP,
|
|
147
209
|
onPress: onDismiss,
|
|
210
|
+
onHoverIn: onHoverIn,
|
|
211
|
+
onHoverOut: onHoverOut,
|
|
212
|
+
onFocus: onFocusIn,
|
|
213
|
+
onBlur: onFocusOut,
|
|
148
214
|
style: styles.closeButton,
|
|
149
215
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
150
216
|
name: "x",
|
|
@@ -27,8 +27,44 @@ export const CLOSE_BUTTON_SIZE = 24;
|
|
|
27
27
|
export const CLOSE_ICON_SIZE = 16;
|
|
28
28
|
export const CLOSE_HIT_SLOP = slopFor(CLOSE_BUTTON_SIZE);
|
|
29
29
|
|
|
30
|
-
/** `duration
|
|
30
|
+
/** `duration` on `ToastOptions` defaults to this when omitted — except for `danger` (see below). */
|
|
31
31
|
export const DEFAULT_TOAST_DURATION = 3000;
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* How long a toast stays up. `"persistent"` = until the user dismisses it (or a later `show()`
|
|
35
|
+
* replaces it) — spelled out rather than encoded as a number, because a bare `0` at a call site
|
|
36
|
+
* reads as "no delay", not "forever".
|
|
37
|
+
*/
|
|
38
|
+
|
|
39
|
+
/** `setTimeout`'s delay is a 32-bit signed int; a larger value wraps and fires almost immediately. */
|
|
40
|
+
export const MAX_TIMEOUT_MS = 2_147_483_647;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* WCAG 2.2.1 (Timing Adjustable) — resolves a requested duration into a real `setTimeout` delay, or
|
|
44
|
+
* `null` for "never auto-dismiss". `Toast.tsx` branches on `null` BEFORE arming the timer; nothing
|
|
45
|
+
* else in the module decides how long a toast lives.
|
|
46
|
+
*
|
|
47
|
+
* Three rules, in order:
|
|
48
|
+
*
|
|
49
|
+
* 1. **`"persistent"`, and every unusable number, mean forever.** `0`, negatives and `NaN` used to
|
|
50
|
+
* slip past a `?? DEFAULT_TOAST_DURATION` fallback (only `null`/`undefined` are nullish) and
|
|
51
|
+
* became `setTimeout(hide, 0)`; `Infinity` overflowed the 32-bit delay above and fired in ~1ms.
|
|
52
|
+
* Both looked like a persistent mode and were an instant-dismiss mode. Failing towards "stays
|
|
53
|
+
* up" is the safe direction: the card always has a close button.
|
|
54
|
+
* 2. **A running screen reader suppresses auto-dismiss entirely.** 3s is not enough to finish
|
|
55
|
+
* speaking a message, and there is no way to replay a toast that has gone.
|
|
56
|
+
* 3. **`danger` with no explicit duration is persistent.** An error the user never finished reading
|
|
57
|
+
* is the exact failure 2.2.1 exists to prevent, and this catalogue has no toast history to
|
|
58
|
+
* recover it from. An explicit `duration` is still honoured — that is a deliberate caller
|
|
59
|
+
* decision, not the default falling on an error message.
|
|
60
|
+
*/
|
|
61
|
+
export function resolveAutoDismissDelay(duration, tone, screenReaderEnabled) {
|
|
62
|
+
if (duration === "persistent") return null;
|
|
63
|
+
if (screenReaderEnabled) return null;
|
|
64
|
+
if (duration === undefined) return tone === "danger" ? null : DEFAULT_TOAST_DURATION;
|
|
65
|
+
if (!Number.isFinite(duration) || duration <= 0 || duration > MAX_TIMEOUT_MS) return null;
|
|
66
|
+
return duration;
|
|
67
|
+
}
|
|
32
68
|
/**
|
|
33
69
|
* Maps `tone` onto the theme's role colours. The whole reason the prop is a closed union and not
|
|
34
70
|
* `color?: string`: every colour a Toast can show is one of these role lookups, so it can never be
|