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
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Tracks whether a screen reader is running, so `ToastProvider` can stop auto-dismissing a message
|
|
5
|
+
* the reader has not finished speaking (WCAG 2.2.1 — see `resolveAutoDismissDelay`).
|
|
6
|
+
*
|
|
7
|
+
* Shaped exactly like `core/a11y`'s `useReducedMotion`: ONE module-level store read through
|
|
8
|
+
* `useSyncExternalStore`, so the async probe and the native `screenReaderChanged` listener are
|
|
9
|
+
* opened by the first subscriber and closed when the last one leaves, however many providers mount.
|
|
10
|
+
* It lives here rather than in `core/a11y` only because that folder is owned by another change in
|
|
11
|
+
* flight — it is a `core/a11y` concern and should move there (`MODULE.md` → Known gaps).
|
|
12
|
+
*
|
|
13
|
+
* **It seeds `false`, unlike `useReducedMotion`'s pessimistic `true`.** The two hooks are read at
|
|
14
|
+
* different moments: a reduce-motion gate runs in the same commit as the mount that opens the probe,
|
|
15
|
+
* so it must assume the worst, whereas this is read by `show()` — a user-initiated event, long after
|
|
16
|
+
* `ToastProvider` mounted at the app root and the probe answered. Seeding `true` would instead make
|
|
17
|
+
* every toast in the first frames of an app run persistent for a sighted user, which is the more
|
|
18
|
+
* visible failure and the less likely one to be true.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { useSyncExternalStore } from "react";
|
|
22
|
+
import { AccessibilityInfo } from "react-native";
|
|
23
|
+
let lastKnownScreenReader = false;
|
|
24
|
+
let nativeSubscription = null;
|
|
25
|
+
/** Bumped by the test reset so a probe still in flight from a previous suite cannot land late. */
|
|
26
|
+
let generation = 0;
|
|
27
|
+
const listeners = new Set();
|
|
28
|
+
function publish(value) {
|
|
29
|
+
if (lastKnownScreenReader === value) return;
|
|
30
|
+
lastKnownScreenReader = value;
|
|
31
|
+
for (const listener of listeners) listener();
|
|
32
|
+
}
|
|
33
|
+
function openNativeSubscription() {
|
|
34
|
+
const opened = generation;
|
|
35
|
+
const apply = value => {
|
|
36
|
+
if (opened === generation) publish(value);
|
|
37
|
+
};
|
|
38
|
+
void AccessibilityInfo.isScreenReaderEnabled().then(apply);
|
|
39
|
+
nativeSubscription = AccessibilityInfo.addEventListener("screenReaderChanged", apply);
|
|
40
|
+
}
|
|
41
|
+
function subscribe(onStoreChange) {
|
|
42
|
+
listeners.add(onStoreChange);
|
|
43
|
+
if (listeners.size === 1) openNativeSubscription();
|
|
44
|
+
return () => {
|
|
45
|
+
listeners.delete(onStoreChange);
|
|
46
|
+
if (listeners.size === 0) {
|
|
47
|
+
nativeSubscription?.remove();
|
|
48
|
+
nativeSubscription = null;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function getSnapshot() {
|
|
53
|
+
return lastKnownScreenReader;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** Test-only: drops the process cache and re-probes, so a suite can drive both answers. */
|
|
57
|
+
export function resetScreenReaderCache() {
|
|
58
|
+
generation += 1;
|
|
59
|
+
lastKnownScreenReader = false;
|
|
60
|
+
nativeSubscription?.remove();
|
|
61
|
+
nativeSubscription = null;
|
|
62
|
+
if (listeners.size > 0) openNativeSubscription();
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/** Live OS screen-reader state (VoiceOver / TalkBack), one probe and one listener per process. */
|
|
66
|
+
export function useScreenReaderEnabled() {
|
|
67
|
+
return useSyncExternalStore(subscribe, getSnapshot);
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=toastScreenReader.js.map
|
|
@@ -1,25 +1,28 @@
|
|
|
1
|
-
# tooltip/ — a long-press tip that also reaches screen readers without the gesture
|
|
1
|
+
# tooltip/ — a hover/focus/long-press tip that also reaches screen readers without the gesture
|
|
2
2
|
|
|
3
3
|
`Tooltip` wraps a single trigger element (via `React.cloneElement`, never `{...rest}`) and reveals
|
|
4
|
-
a short themed bubble on long-press. It has no visual
|
|
5
|
-
trigger keeps its own layout — so, unlike the other
|
|
4
|
+
a short themed bubble on hover (pointer), focus (keyboard) or long-press (touch). It has no visual
|
|
5
|
+
node of its own for an app to place — the trigger keeps its own layout — so, unlike the other
|
|
6
|
+
modules, it exposes no `style` prop.
|
|
6
7
|
|
|
7
8
|
## Files
|
|
8
9
|
|
|
9
10
|
| File | Role |
|
|
10
11
|
|------|------|
|
|
11
|
-
| `Tooltip.tsx` | The component. `cloneElement` composition, show/hide timing, fade-in, a11y hint wiring. |
|
|
12
|
+
| `Tooltip.tsx` | The component. `cloneElement` composition, hover/focus/press wiring, show/hide timing, fade-in, a11y hint wiring. |
|
|
12
13
|
| `Tooltip.variants.ts` | Pure resolvers (`mergeAccessibilityHint`, `TOOLTIP_TIMING`) + the themed structural resolver `tooltipBubbleStructure`. No React, no lucide. |
|
|
13
14
|
| `index.ts` | Public surface: `Tooltip`, `TooltipProps`, `TooltipTriggerProps`, `TooltipPlacement`. |
|
|
14
15
|
| `__tests__/Tooltip.test.ts` | Pure: WCAG contrast (all brands × modes) + the hint-merge contract + timing sanity. |
|
|
15
|
-
| `__tests__/Tooltip.render.test.tsx` | Render: reveal
|
|
16
|
+
| `__tests__/Tooltip.render.test.tsx` | Render: hover/focus/long-press reveal + hide, handler chaining, auto-hide fallback, hint merge, placement. |
|
|
17
|
+
| `__tests__/Tooltip.trigger.render.test.tsx` | Render, with `Button`/`Fab` as the trigger — a raw `Pressable` accepts every injected prop by construction, so only this file can catch a library trigger dropping them. |
|
|
18
|
+
| `__tests__/Tooltip.escape.dom.test.tsx` | The WEB surface, under `jest.web.config.js` (jsdom + real react-native-web): Escape dismissal without moving focus, and the `aria-describedby`→bubble-`id` link. Neither exists in the default Jest project, which resolves the native no-ops. |
|
|
16
19
|
|
|
17
20
|
## Props
|
|
18
21
|
|
|
19
22
|
| Prop | Type | Default | Notes |
|
|
20
23
|
|------|------|---------|-------|
|
|
21
24
|
| `label` | `string` | — | The tip's text. Also what gets merged into the trigger's `accessibilityHint`. |
|
|
22
|
-
| `children` | `ReactElement<TooltipTriggerProps>` | — | A single element accepting `onLongPress`/`onPressOut`/`accessibilityHint`
|
|
25
|
+
| `children` | `ReactElement<TooltipTriggerProps>` | — | A single element accepting `onLongPress`/`onPressOut`/`onHoverIn`/`onHoverOut`/`onFocus`/`onBlur`/`accessibilityHint`/`aria-describedby` — `Button`, `Fab`, or a raw `Pressable`. A `Text` is **not** enough: react-native-web's `Text` handles only `onPress`, so every injected handler is dropped and the tip never opens on web. |
|
|
23
26
|
| `placement` | `top \| bottom` | `bottom` | Which side of the trigger the bubble opens toward. |
|
|
24
27
|
| `testID` | `string` | — | On the host `View`; also seeds `${testID}-bubble` on the visible bubble. |
|
|
25
28
|
|
|
@@ -28,16 +31,28 @@ reads `bg.raised` / `fg.default`, so there is nothing appearance-wise for a call
|
|
|
28
31
|
|
|
29
32
|
## Accessibility contract (WCAG)
|
|
30
33
|
|
|
31
|
-
- **1.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
- **1.4.13 Content on Hover or Focus — 2 of 3.** *Persistent* ✅ (no auto-dismiss on the hover/focus
|
|
35
|
+
path — only long-press arms `autoHideMs`). *Dismissible* ✅ (Escape hides the tip via
|
|
36
|
+
`useDismissOnEscape` from `core/a11y/keyboard`, without moving focus; web-only by construction —
|
|
37
|
+
the native file is a no-op, and native has no hover/keyboard-focus tip to dismiss). *Hoverable* ❌
|
|
38
|
+
— see "Known gaps".
|
|
39
|
+
- **1.3.1 / no gesture-only content** — the whole point of this module. On **native** the trigger's
|
|
40
|
+
`accessibilityHint` is set to `mergeAccessibilityHint(existingHint, label)`, so a screen-reader
|
|
41
|
+
user gets the tip's content with the trigger itself and no long-press. The existing hint is
|
|
42
|
+
preserved, never overwritten. On **web** that prop reaches nothing (react-native-web has no
|
|
43
|
+
`accessibilityHint` at all), so the bubble carries an `id` (from `useId`) and the trigger points
|
|
44
|
+
`aria-describedby` at it for exactly as long as the bubble is mounted.
|
|
35
45
|
- **1.4.3** — the bubble text (`fg.default` on `bg.raised`) is measured ≥ 4.5:1 for every brand ×
|
|
36
46
|
mode. No non-text/interactive boundary to measure — the bubble has no border.
|
|
37
|
-
- **The bubble is hidden from the accessibility tree**
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
47
|
+
- **The bubble is hidden from the accessibility tree** with `aria-hidden` — the one spelling that
|
|
48
|
+
works natively (RN maps it to `accessibilityElementsHidden` +
|
|
49
|
+
`importantForAccessibility="no-hide-descendants"`) and on web, where those two are discarded and
|
|
50
|
+
left the bubble exposed while the hint reached nothing. Being `aria-hidden` does not silence the
|
|
51
|
+
description: an `aria-describedby` target is read through the reference even when hidden, so the
|
|
52
|
+
text is announced with the trigger instead of a second time as its own node.
|
|
53
|
+
- **2.2.1 Timing Adjustable — not engaged on the hover/focus path.** `show(false)` never arms a
|
|
54
|
+
timer, so a pointer/keyboard tip has no time limit at all. The 2.5s `autoHideMs` is armed only by
|
|
55
|
+
`onLongPress` — see "Known gaps".
|
|
41
56
|
- **2.3.3** — the fade-in is skipped (`duration: 0`) when `useReducedMotion()` is true; the bubble
|
|
42
57
|
still appears immediately, so reduced motion never means "no tip."
|
|
43
58
|
- **Touch target** — Tooltip renders no interactive control of its own; the trigger child owns its
|
|
@@ -55,11 +70,18 @@ reads `bg.raised` / `fg.default`, so there is nothing appearance-wise for a call
|
|
|
55
70
|
|
|
56
71
|
## Design decisions specific to this module
|
|
57
72
|
|
|
58
|
-
-
|
|
59
|
-
the child's own handler first (if any) before doing their job, so
|
|
60
|
-
a trigger that already used them. `accessibilityHint` is different:
|
|
61
|
-
callback, so "never clobber" means composing the two strings via
|
|
62
|
-
chaining.
|
|
73
|
+
- **Six chained callbacks, one merged string.** `onLongPress`/`onPressOut`/`onHoverIn`/`onHoverOut`/
|
|
74
|
+
`onFocus`/`onBlur` each call the child's own handler first (if any) before doing their job, so
|
|
75
|
+
Tooltip never silently breaks a trigger that already used them. `accessibilityHint` is different:
|
|
76
|
+
it is a single string, not a callback, so "never clobber" means composing the two strings via
|
|
77
|
+
`mergeAccessibilityHint`, not chaining.
|
|
78
|
+
- **Hover/focus are injected on every platform, not behind `Platform.OS === "web"`.** `Pressable`
|
|
79
|
+
accepts all four props everywhere and only react-native-web (and desktop RN) emits them, so a
|
|
80
|
+
platform branch would add a code path without adding behaviour.
|
|
81
|
+
- **Only the long-press path arms `autoHideMs`.** A pointer/keyboard tip is closed by the matching
|
|
82
|
+
hover-out/blur; auto-dismissing it under a resting pointer would fail WCAG 1.4.13's *persistent*.
|
|
83
|
+
- **Press-out does not hide a hovered tip.** A click on a hovered trigger fires `onPressOut` too;
|
|
84
|
+
hiding there would kill the tip with the pointer still on the trigger and nothing to bring it back.
|
|
63
85
|
- **No measurement library (v1).** The bubble anchors to the trigger's **left edge** with a fixed
|
|
64
86
|
`theme.space[1]` gap above/below (`left: 0`, `top`/`bottom: 100%`), rather than centering under
|
|
65
87
|
the trigger's actual measured width. This is the sanctioned v1 simplification; it can read
|
|
@@ -67,20 +89,48 @@ reads `bg.raised` / `fg.default`, so there is nothing appearance-wise for a call
|
|
|
67
89
|
place to fix that, not a prop added here.
|
|
68
90
|
- **`sizes["3xs"]`** (the smallest step of the shared `sizes` primitive, 224dp) caps the bubble's
|
|
69
91
|
width instead of a newly-invented magic number.
|
|
70
|
-
- **Auto-hide fallback** (`TOOLTIP_TIMING.autoHideMs`, 2.5s) — guards against
|
|
71
|
-
forever if `onPressOut` never fires (a cancelled gesture, or assistive tech invoking
|
|
92
|
+
- **Auto-hide fallback** (`TOOLTIP_TIMING.autoHideMs`, 2.5s) — guards against a long-press tip
|
|
93
|
+
staying open forever if `onPressOut` never fires (a cancelled gesture, or assistive tech invoking
|
|
72
94
|
`onLongPress` directly without a matching press-out).
|
|
73
95
|
|
|
74
96
|
## Known gaps
|
|
75
97
|
|
|
76
|
-
- **Requires a trigger that
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
98
|
+
- **Requires a trigger that declares the injected props.** `cloneElement` sets them on the element,
|
|
99
|
+
but the repo's `{...rest}` ban means a component only receives what its own prop list names — so
|
|
100
|
+
a trigger that doesn't declare them drops the gesture, the hover/focus reveal and the hint merge
|
|
101
|
+
with no error. `Button` and `Fab` declare all seven (each chaining Tooltip's handler after its own
|
|
102
|
+
press/focus ring); a raw RN `Pressable`/`TouchableOpacity` accepts them by construction. **Every
|
|
103
|
+
other module still drops them** — `Chip`, `CopyButton`, `ListItem`, `Switch`, `Checkbox`, `Select`
|
|
104
|
+
and the rest are not usable as triggers yet. **A plain `Text` is a trap on web** (react-native-web's
|
|
105
|
+
`Text` handles only `onPress`) — this is the bug the example app hit.
|
|
106
|
+
- **`Menu` and `Tooltip` cannot nest either way.** `Menu` clones only `onPress` onto its trigger, and
|
|
107
|
+
`TooltipProps` has no `onPress`, so a Tooltip-wrapped Menu trigger never opens the menu.
|
|
108
|
+
- **1.4.13 *hoverable* is still unmet, and needs BOTH halves to land at once.** The bubble is
|
|
109
|
+
`pointerEvents="none"`, so a pointer can never reach the tip; and `handleHoverOut` hides
|
|
110
|
+
immediately, with no grace period for crossing the `theme.space[1]` gap between trigger and
|
|
111
|
+
bubble. Fixing only one half delivers nothing — enabling pointer events without a grace delay just
|
|
112
|
+
makes the tip vanish mid-gap. This is a behavioural redesign (a hover-tracked bubble with its own
|
|
113
|
+
hover handlers plus a close delay), deliberately not attempted as part of the flat-`aria-*`
|
|
114
|
+
migration.
|
|
115
|
+
- **2.2.1 on the long-press path** — `TOOLTIP_TIMING.autoHideMs` (2.5s) is a content-set time limit
|
|
116
|
+
with no turn-off/adjust/extend, and no WCAG exception covers it. It exists as a stuck-tip guard for
|
|
117
|
+
when `onPressOut` never fires (cancelled gesture, or AT invoking `onLongPress` directly), and in
|
|
118
|
+
normal use press-out dismisses the tip first — but that does not discharge the SC. Making it
|
|
119
|
+
adjustable means a new public prop, so it is recorded here rather than changed unilaterally.
|
|
120
|
+
- **Escape is shared with any enclosing overlay.** `useDismissOnEscape` listens on `document` in the
|
|
121
|
+
capture phase, so one Escape pressed over a tip inside a Drawer/Menu dismisses both. Fixing that
|
|
122
|
+
needs an opt-out in `core/a11y/keyboard`, not in this module.
|
|
123
|
+
- **A keyboard Enter/Space on a focused trigger dismisses the tip** (press-out hides when not
|
|
124
|
+
hovered), and only blur-and-refocus brings it back. Judged user-initiated dismissal rather than a
|
|
125
|
+
*persistent* violation — the tip is not disappearing on its own.
|
|
82
126
|
- No collision/viewport-edge detection — a bubble near a screen edge is not repositioned inward.
|
|
83
127
|
|
|
84
128
|
## Performance
|
|
85
129
|
|
|
86
|
-
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). `clearHideTimer`/`hide`/`show` are `useCallback`'d, and
|
|
130
|
+
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). `clearHideTimer`/`hide`/`show` are `useCallback`'d, and all six handlers `cloneElement` injects into the consumer-supplied `children` trigger are extracted to `handleLongPress`/`handlePressOut`/`handleHoverIn`/`handleHoverOut`/`handleFocus`/`handleBlur` (`useCallback`) instead of inline lambdas — same idiom `Menu.tsx` uses for its own trigger, since a fresh closure there would defeat a memoized trigger (e.g. this library's own `Button`).
|
|
131
|
+
|
|
132
|
+
## Modernization (v1.0.7)
|
|
133
|
+
|
|
134
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
135
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
136
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -1,22 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* Tooltip — wraps a single trigger element and reveals a short themed tip on
|
|
5
|
-
* requiring the trigger to know anything about it.
|
|
6
|
-
* Tooltip renders no sized node of its own for an app to
|
|
7
|
-
* layout it already has, and the wrapping host below
|
|
4
|
+
* Tooltip — wraps a single trigger element and reveals a short themed tip on hover (pointer),
|
|
5
|
+
* focus (keyboard) or long-press (touch), without requiring the trigger to know anything about it.
|
|
6
|
+
* No `style` prop: unlike the other modules, Tooltip renders no sized node of its own for an app to
|
|
7
|
+
* place — the trigger child keeps whatever layout it already has, and the wrapping host below
|
|
8
|
+
* exists only to anchor the bubble.
|
|
8
9
|
*
|
|
9
|
-
* Composition is `React.cloneElement` on the single child, never `{...rest}`: `onLongPress
|
|
10
|
-
* `onPressOut` are injected (chaining any
|
|
11
|
-
* silently breaks a trigger that already used
|
|
12
|
-
* `mergeAccessibilityHint` — the one prop that must
|
|
13
|
-
* screen-reader user gets the tip's content without
|
|
10
|
+
* Composition is `React.cloneElement` on the single child, never `{...rest}`: `onLongPress`,
|
|
11
|
+
* `onPressOut`, `onHoverIn`, `onHoverOut`, `onFocus` and `onBlur` are injected (each chaining any
|
|
12
|
+
* handler the child already defined, so Tooltip never silently breaks a trigger that already used
|
|
13
|
+
* them), and `accessibilityHint` is MERGED via `mergeAccessibilityHint` — the one prop that must
|
|
14
|
+
* never be clobbered, since it is how a screen-reader user gets the tip's content without
|
|
15
|
+
* performing the gesture at all.
|
|
16
|
+
*
|
|
17
|
+
* That hint reaches NOTHING on web — react-native-web has no `accessibilityHint` at all — so the
|
|
18
|
+
* bubble additionally carries an `id` and the trigger points `aria-describedby` at it while the tip
|
|
19
|
+
* is mounted. The bubble stays `aria-hidden` in both worlds: an `aria-describedby` target is read
|
|
20
|
+
* through the reference even when hidden, so this describes the trigger once instead of twice.
|
|
21
|
+
*
|
|
22
|
+
* The hover/focus pair is injected on every platform rather than behind a `Platform.OS === "web"`
|
|
23
|
+
* branch: `Pressable` accepts all four props everywhere, and only react-native-web actually emits
|
|
24
|
+
* them, so a branch would buy nothing but a cast.
|
|
25
|
+
*
|
|
26
|
+
* The bubble's reveal is the shared `useEnterExit` preset (`core/motion`): fade + a short settle,
|
|
27
|
+
* kept mounted by a timer rather than an animation callback, so an interrupted fade-out can never
|
|
28
|
+
* strand the bubble in the tree.
|
|
14
29
|
*/
|
|
15
30
|
|
|
16
|
-
import { cloneElement, memo, useCallback, useEffect, useRef, useState } from "react";
|
|
31
|
+
import { cloneElement, memo, useCallback, useEffect, useId, useMemo, useRef, useState } from "react";
|
|
17
32
|
import { Animated, StyleSheet, Text, View } from "react-native";
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
33
|
+
import { useDismissOnEscape } from "../../core/a11y/keyboard";
|
|
34
|
+
import { useEnterExit, useMotion } from "../../core/motion/index.js";
|
|
35
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
20
36
|
import { mergeAccessibilityHint, TOOLTIP_TIMING, tooltipBubbleStructure } from "./Tooltip.variants.js";
|
|
21
37
|
|
|
22
38
|
/** The subset of props Tooltip reads from / injects into its trigger child. */
|
|
@@ -28,10 +44,16 @@ export const Tooltip = /*#__PURE__*/memo(function Tooltip({
|
|
|
28
44
|
testID
|
|
29
45
|
}) {
|
|
30
46
|
const theme = useTheme();
|
|
31
|
-
const
|
|
47
|
+
const motion = useMotion();
|
|
32
48
|
const [visible, setVisible] = useState(false);
|
|
33
|
-
const opacity = useRef(new Animated.Value(0)).current;
|
|
34
49
|
const hideTimer = useRef(null);
|
|
50
|
+
const hovered = useRef(false);
|
|
51
|
+
const bubbleId = useId();
|
|
52
|
+
|
|
53
|
+
// A bubble above the trigger should settle upward, one below it downward — `useEnterExit` enters
|
|
54
|
+
// from `-offset`, so the sign flips with placement.
|
|
55
|
+
const offsetY = placement === "top" ? -motion.transform.offsetY : motion.transform.offsetY;
|
|
56
|
+
const bubble = useEnterExit(visible, offsetY);
|
|
35
57
|
const clearHideTimer = useCallback(() => {
|
|
36
58
|
if (hideTimer.current !== null) {
|
|
37
59
|
clearTimeout(hideTimer.current);
|
|
@@ -42,63 +64,91 @@ export const Tooltip = /*#__PURE__*/memo(function Tooltip({
|
|
|
42
64
|
clearHideTimer();
|
|
43
65
|
setVisible(false);
|
|
44
66
|
}, [clearHideTimer]);
|
|
45
|
-
|
|
67
|
+
|
|
68
|
+
// `autoHide` is the gesture path only: a pointer or keyboard tip must stay up as long as the
|
|
69
|
+
// trigger is hovered/focused (WCAG 1.4.13), and hover-out/blur are reliable enough not to need
|
|
70
|
+
// the fallback.
|
|
71
|
+
const show = useCallback(autoHide => {
|
|
46
72
|
clearHideTimer();
|
|
47
73
|
setVisible(true);
|
|
48
|
-
opacity.setValue(reducedMotion ? 1 : 0);
|
|
49
|
-
Animated.timing(opacity, {
|
|
50
|
-
toValue: 1,
|
|
51
|
-
duration: reducedMotion ? 0 : TOOLTIP_TIMING.fadeInMs,
|
|
52
|
-
useNativeDriver: true
|
|
53
|
-
}).start();
|
|
54
74
|
// Fallback dismiss: guarantees the tip can't get stuck open if `onPressOut` never fires (e.g.
|
|
55
75
|
// the gesture is cancelled by a scroll, or assistive tech triggers `onLongPress` directly).
|
|
56
|
-
hideTimer.current = setTimeout(hide, TOOLTIP_TIMING.autoHideMs);
|
|
57
|
-
}, [clearHideTimer, hide
|
|
76
|
+
if (autoHide) hideTimer.current = setTimeout(hide, TOOLTIP_TIMING.autoHideMs);
|
|
77
|
+
}, [clearHideTimer, hide]);
|
|
58
78
|
useEffect(() => clearHideTimer, [clearHideTimer]);
|
|
59
79
|
|
|
80
|
+
// WCAG 1.4.13 dismissible: Escape hides the tip without moving focus, so a keyboard user can
|
|
81
|
+
// uncover what the bubble overlaps. Web-only by construction — the native file is a no-op.
|
|
82
|
+
useDismissOnEscape(visible, hide);
|
|
83
|
+
|
|
60
84
|
// Passed to `children` — a consumer-supplied CHILD component (typically this library's own
|
|
61
85
|
// Pressable/Button) — via cloneElement, so it is memoized like any other child-bound callback
|
|
62
86
|
// (same idiom `Menu.tsx` uses for its own trigger).
|
|
63
87
|
const handleLongPress = useCallback(event => {
|
|
64
88
|
children.props.onLongPress?.(event);
|
|
65
|
-
show();
|
|
89
|
+
show(true);
|
|
66
90
|
}, [children, show]);
|
|
67
91
|
const handlePressOut = useCallback(event => {
|
|
68
92
|
children.props.onPressOut?.(event);
|
|
93
|
+
// A click on a hovered trigger fires press-out too; hiding there would kill the tip while the
|
|
94
|
+
// pointer is still on the trigger, and nothing would bring it back without leaving first.
|
|
95
|
+
if (!hovered.current) hide();
|
|
96
|
+
}, [children, hide]);
|
|
97
|
+
const handleHoverIn = useCallback(event => {
|
|
98
|
+
children.props.onHoverIn?.(event);
|
|
99
|
+
hovered.current = true;
|
|
100
|
+
show(false);
|
|
101
|
+
}, [children, show]);
|
|
102
|
+
const handleHoverOut = useCallback(event => {
|
|
103
|
+
children.props.onHoverOut?.(event);
|
|
104
|
+
hovered.current = false;
|
|
105
|
+
hide();
|
|
106
|
+
}, [children, hide]);
|
|
107
|
+
const handleFocus = useCallback(event => {
|
|
108
|
+
children.props.onFocus?.(event);
|
|
109
|
+
show(false);
|
|
110
|
+
}, [children, show]);
|
|
111
|
+
const handleBlur = useCallback(event => {
|
|
112
|
+
children.props.onBlur?.(event);
|
|
69
113
|
hide();
|
|
70
114
|
}, [children, hide]);
|
|
71
115
|
const trigger = /*#__PURE__*/cloneElement(children, {
|
|
72
116
|
onLongPress: handleLongPress,
|
|
73
117
|
onPressOut: handlePressOut,
|
|
74
|
-
|
|
118
|
+
onHoverIn: handleHoverIn,
|
|
119
|
+
onHoverOut: handleHoverOut,
|
|
120
|
+
onFocus: handleFocus,
|
|
121
|
+
onBlur: handleBlur,
|
|
122
|
+
accessibilityHint: mergeAccessibilityHint(children.props.accessibilityHint, label),
|
|
123
|
+
"aria-describedby": bubble.mounted ? bubbleId : undefined
|
|
75
124
|
});
|
|
125
|
+
const bubbleStyle = useMemo(() => [tooltipBubbleStructure(theme, {
|
|
126
|
+
placement
|
|
127
|
+
}), {
|
|
128
|
+
backgroundColor: theme.colors.bg.raised,
|
|
129
|
+
zIndex: theme.zIndices.tooltip
|
|
130
|
+
}, bubble.style], [theme, placement, bubble.style]);
|
|
131
|
+
const labelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
132
|
+
fontSize: theme.fontSizes.sm,
|
|
133
|
+
color: theme.colors.fg.default
|
|
134
|
+
}], [theme]);
|
|
76
135
|
return /*#__PURE__*/_jsxs(View, {
|
|
77
136
|
style: styles.host,
|
|
78
137
|
testID: testID,
|
|
79
|
-
children: [trigger,
|
|
138
|
+
children: [trigger, bubble.mounted &&
|
|
80
139
|
/*#__PURE__*/
|
|
81
|
-
// Hidden from the accessibility tree on purpose: the tip's content already
|
|
82
|
-
// screen-reader users
|
|
83
|
-
//
|
|
84
|
-
//
|
|
140
|
+
// Hidden from the accessibility tree on purpose: the tip's content already reaches
|
|
141
|
+
// screen-reader users through the trigger — the merged `accessibilityHint` on native, the
|
|
142
|
+
// `aria-describedby` reference to this `id` on web — so exposing the bubble in reading
|
|
143
|
+
// order too would announce the same text twice.
|
|
85
144
|
_jsx(Animated.View, {
|
|
86
145
|
testID: testID ? `${testID}-bubble` : undefined,
|
|
146
|
+
id: bubbleId,
|
|
87
147
|
pointerEvents: "none",
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
style: [tooltipBubbleStructure(theme, {
|
|
91
|
-
placement
|
|
92
|
-
}), {
|
|
93
|
-
backgroundColor: theme.colors.bg.raised,
|
|
94
|
-
opacity,
|
|
95
|
-
zIndex: theme.zIndices.tooltip
|
|
96
|
-
}],
|
|
148
|
+
"aria-hidden": true,
|
|
149
|
+
style: bubbleStyle,
|
|
97
150
|
children: /*#__PURE__*/_jsx(Text, {
|
|
98
|
-
style:
|
|
99
|
-
fontSize: theme.fontSizes.sm,
|
|
100
|
-
color: theme.colors.fg.default
|
|
101
|
-
}],
|
|
151
|
+
style: labelStyle,
|
|
102
152
|
children: label
|
|
103
153
|
})
|
|
104
154
|
})]
|
|
@@ -17,12 +17,11 @@
|
|
|
17
17
|
import { sizes } from "../../theme/tokens/index.js";
|
|
18
18
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
19
19
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
20
|
+
* A dwell time, not a transition: how long a tip may stay up on its own. The fade itself has no
|
|
21
|
+
* constant here — duration, easing and the reduced-motion contract all come from the global motion
|
|
22
|
+
* system (`core/motion`).
|
|
22
23
|
*/
|
|
23
24
|
export const TOOLTIP_TIMING = {
|
|
24
|
-
/** Fade-in duration; skipped (duration 0) when the OS reduce-motion setting is on (WCAG 2.3.3). */
|
|
25
|
-
fadeInMs: 150,
|
|
26
25
|
/** Fallback auto-dismiss so a tip can't stay stuck open if `onPressOut` never fires. */
|
|
27
26
|
autoHideMs: 2500
|
|
28
27
|
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# typing-indicator/
|
|
2
|
+
|
|
3
|
+
Three-dot typing animation for chat threads. Static dots under reduced motion.
|
|
4
|
+
|
|
5
|
+
## Motion contract
|
|
6
|
+
|
|
7
|
+
- Each dot pulses `opacity` only, on the native driver, staggered by a third of the cycle. Duration
|
|
8
|
+
comes from the global motion config (`useMotion().duration("deliberate")` for a full up-down
|
|
9
|
+
cycle) — nothing here defines its own timing.
|
|
10
|
+
- **The loop wraps a BARE timing, never a sequence.** `Animated.loop` only hands the loop to the
|
|
11
|
+
native driver (`_startNativeLoop`) when what it wraps reports `_isUsingNativeDriver()`, and
|
|
12
|
+
`Animated.sequence` returns `false` for that unconditionally — so a looped sequence restarts every
|
|
13
|
+
leg from the JS thread, forever (~7-8 wakeups/second on the thread that also handles incoming
|
|
14
|
+
messages). Each dot therefore loops one timing driving a 0→1 value, interpolated to
|
|
15
|
+
min→max→min opacity, and the stagger is that timing's own `delay` (one JS timeout at start-up),
|
|
16
|
+
never `Animated.delay` — which is itself a `useNativeDriver: false` timing.
|
|
17
|
+
- **Gated on `motion.decorative`, not just `motion.enabled`.** Three pulsing dots are decoration;
|
|
18
|
+
the `accessibilityLabel="Typing"` is the real signal, the same argument `Spinner` makes for its
|
|
19
|
+
frozen glyph. Low/mid tiers and reduce motion get three static dots at full opacity.
|
|
20
|
+
- The loop is stopped on effect cleanup **and** on unmount; a re-run always stops the previous loops
|
|
21
|
+
first, so a tier or reduce-motion change can never leave an orphaned loop running.
|
|
22
|
+
|
|
23
|
+
`__tests__/TypingIndicator.motion.test.tsx` pins the native-loop handoff itself (`_startNativeLoop`
|
|
24
|
+
called with `-1`), not just the rendered opacity.
|
|
25
|
+
|
|
26
|
+
## Accessibility contract (WCAG)
|
|
27
|
+
|
|
28
|
+
- **1.3.1 / 4.1.3** — a user not focused on the thread has no other way to learn typing started, so
|
|
29
|
+
mount speaks "Typing" once via `useAnnounce`. This is deliberately NOT a repeating or `polling`
|
|
30
|
+
announcement: the consumer mounts/unmounts this component as typing starts/stops, the effect that
|
|
31
|
+
calls `useAnnounce` fires once per mounted instance (not per pulse frame — the dots animate
|
|
32
|
+
entirely inside `Animated.Value`, which never re-renders React), and `useAnnounce` itself dedupes
|
|
33
|
+
an unchanged message. A chat that announced "Typing" every few seconds would be intolerable; this
|
|
34
|
+
announces once per typing burst, which is not that.
|
|
35
|
+
- Stopping is silent by design, matching every other state swap in the library (`EmptyState`/
|
|
36
|
+
`ErrorState` don't announce their own removal either) — the ONLY prior state a departing
|
|
37
|
+
`TypingIndicator` could be compared against is "was typing", which is not itself information a
|
|
38
|
+
user needs spoken.
|
|
39
|
+
|
|
40
|
+
## Props
|
|
41
|
+
|
|
42
|
+
| Prop | Type | Default |
|
|
43
|
+
|------|------|---------|
|
|
44
|
+
| `size` | `sm \| md` | `md` |
|
|
45
|
+
| `style` | `LayoutStyle` | — |
|
|
46
|
+
| `testID` | `string` | — |
|
|
47
|
+
|
|
48
|
+
Each dot also carries `${testID}-dot-${index}` when `testID` is given.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* TypingIndicator — three animated dots for "someone is typing". Under reduced motion, and on any
|
|
5
|
+
* tier that can't afford decorative motion, the dots are static (WCAG 2.3.3) — the accessible
|
|
6
|
+
* "Typing" label is the real signal, exactly as `Spinner` treats its own frozen glyph.
|
|
7
|
+
*
|
|
8
|
+
* The consumer mounts and unmounts this component as typing starts and stops, so "Typing" is spoken
|
|
9
|
+
* ONCE per mount via `useAnnounce` (WCAG 4.1.3) — not on a timer, and not once per pulse: the effect
|
|
10
|
+
* fires once per mounted instance, and `useAnnounce`'s own dedup would silence a repeat regardless.
|
|
11
|
+
* A screen-reader user who is not focused on the thread would otherwise learn someone is typing only
|
|
12
|
+
* by chance, on their next swipe past this element.
|
|
13
|
+
*
|
|
14
|
+
* Each dot loops a BARE `motion.timing` over a 0→1 driver and interpolates that into the
|
|
15
|
+
* min→max→min opacity pulse. `Animated.loop` only runs natively (`_startNativeLoop`) when the
|
|
16
|
+
* animation it wraps reports `_isUsingNativeDriver()`, which `Animated.sequence` returns `false`
|
|
17
|
+
* for unconditionally — a looped sequence therefore restarts every leg from the JS thread, forever.
|
|
18
|
+
* The stagger is `TimingOptions.delay` (one JS timeout per dot at start-up) rather than
|
|
19
|
+
* `Animated.delay`, which is itself a `useNativeDriver: false` timing.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
import { memo, useEffect, useMemo, useRef } from "react";
|
|
23
|
+
import { Animated, View } from "react-native";
|
|
24
|
+
import { useAnnounce } from "../../core/a11y/index.js";
|
|
25
|
+
import { useMotion } from "../../core/motion/index.js";
|
|
26
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
27
|
+
import { resolveTypingIndicatorAccessibility, TYPING_DOT_MAX_OPACITY, TYPING_DOT_MIN_OPACITY, typingDotStructure, typingIndicatorStructure } from "./TypingIndicator.variants.js";
|
|
28
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
29
|
+
const DOT_COUNT = 3;
|
|
30
|
+
/** The driver's midpoint: the peak of the pulse, and the resting value while motion is off. */
|
|
31
|
+
const PULSE_PEAK = 0.5;
|
|
32
|
+
export const TypingIndicator = /*#__PURE__*/memo(function TypingIndicator({
|
|
33
|
+
size = "md",
|
|
34
|
+
style,
|
|
35
|
+
testID
|
|
36
|
+
}) {
|
|
37
|
+
const theme = useTheme();
|
|
38
|
+
const motion = useMotion();
|
|
39
|
+
const a11y = resolveTypingIndicatorAccessibility();
|
|
40
|
+
useAnnounce(a11y.accessibilityLabel);
|
|
41
|
+
const drivers = useRef(Array.from({
|
|
42
|
+
length: DOT_COUNT
|
|
43
|
+
}, () => new Animated.Value(PULSE_PEAK))).current;
|
|
44
|
+
const loops = useRef([]);
|
|
45
|
+
const cycleMs = motion.duration("deliberate");
|
|
46
|
+
const pulsing = motion.decorative && cycleMs > 0;
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
loops.current.forEach(loop => loop.stop());
|
|
49
|
+
loops.current = [];
|
|
50
|
+
if (!pulsing) {
|
|
51
|
+
drivers.forEach(driver => driver.setValue(PULSE_PEAK));
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
loops.current = drivers.map((driver, index) => {
|
|
55
|
+
// Each iteration replays from wherever the driver sits when the loop starts.
|
|
56
|
+
driver.setValue(0);
|
|
57
|
+
const loop = Animated.loop(motion.timing(driver, 1, {
|
|
58
|
+
duration: "deliberate",
|
|
59
|
+
delay: index * cycleMs / DOT_COUNT
|
|
60
|
+
}));
|
|
61
|
+
loop.start();
|
|
62
|
+
return loop;
|
|
63
|
+
});
|
|
64
|
+
return () => {
|
|
65
|
+
loops.current.forEach(loop => loop.stop());
|
|
66
|
+
loops.current = [];
|
|
67
|
+
};
|
|
68
|
+
}, [drivers, pulsing, cycleMs, motion]);
|
|
69
|
+
useEffect(() => () => loops.current.forEach(loop => loop.stop()), []);
|
|
70
|
+
const dotColor = theme.colors.fg.muted;
|
|
71
|
+
const dotStyles = useMemo(() => {
|
|
72
|
+
const base = [typingDotStructure(theme, {
|
|
73
|
+
size
|
|
74
|
+
}), {
|
|
75
|
+
backgroundColor: dotColor
|
|
76
|
+
}];
|
|
77
|
+
return drivers.map(driver => [base, {
|
|
78
|
+
opacity: driver.interpolate({
|
|
79
|
+
inputRange: [0, PULSE_PEAK, 1],
|
|
80
|
+
outputRange: [TYPING_DOT_MIN_OPACITY, TYPING_DOT_MAX_OPACITY, TYPING_DOT_MIN_OPACITY]
|
|
81
|
+
})
|
|
82
|
+
}]);
|
|
83
|
+
}, [theme, size, dotColor, drivers]);
|
|
84
|
+
return /*#__PURE__*/_jsx(View, {
|
|
85
|
+
testID: testID,
|
|
86
|
+
accessible: a11y.accessible,
|
|
87
|
+
accessibilityRole: a11y.accessibilityRole,
|
|
88
|
+
accessibilityLabel: a11y.accessibilityLabel,
|
|
89
|
+
style: [typingIndicatorStructure(theme, {
|
|
90
|
+
size
|
|
91
|
+
}), style],
|
|
92
|
+
children: dotStyles.map((dotStyle, index) => /*#__PURE__*/_jsx(Animated.View, {
|
|
93
|
+
testID: testID === undefined ? undefined : `${testID}-dot-${index}`,
|
|
94
|
+
style: dotStyle
|
|
95
|
+
}, index))
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
//# sourceMappingURL=TypingIndicator.js.map
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createThemedVariants } from "../../core/style/index.js";
|
|
4
|
+
export const TYPING_DOT_SIZES = {
|
|
5
|
+
sm: 6,
|
|
6
|
+
md: 8
|
|
7
|
+
};
|
|
8
|
+
export const TYPING_DOT_MIN_OPACITY = 0.3;
|
|
9
|
+
export const TYPING_DOT_MAX_OPACITY = 1;
|
|
10
|
+
export const typingIndicatorStructure = createThemedVariants(theme => ({
|
|
11
|
+
base: {
|
|
12
|
+
flexDirection: "row",
|
|
13
|
+
alignItems: "center",
|
|
14
|
+
columnGap: theme.space[1],
|
|
15
|
+
paddingVertical: theme.space[2],
|
|
16
|
+
paddingHorizontal: theme.space[3]
|
|
17
|
+
},
|
|
18
|
+
variants: {
|
|
19
|
+
size: {
|
|
20
|
+
sm: {},
|
|
21
|
+
md: {}
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
defaultVariants: {
|
|
25
|
+
size: "md"
|
|
26
|
+
}
|
|
27
|
+
}));
|
|
28
|
+
export const typingDotStructure = createThemedVariants(theme => ({
|
|
29
|
+
base: {
|
|
30
|
+
borderRadius: theme.radii.full
|
|
31
|
+
},
|
|
32
|
+
variants: {
|
|
33
|
+
size: {
|
|
34
|
+
sm: {
|
|
35
|
+
width: TYPING_DOT_SIZES.sm,
|
|
36
|
+
height: TYPING_DOT_SIZES.sm
|
|
37
|
+
},
|
|
38
|
+
md: {
|
|
39
|
+
width: TYPING_DOT_SIZES.md,
|
|
40
|
+
height: TYPING_DOT_SIZES.md
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
defaultVariants: {
|
|
45
|
+
size: "md"
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
export function resolveTypingIndicatorAccessibility() {
|
|
49
|
+
return {
|
|
50
|
+
accessible: true,
|
|
51
|
+
accessibilityRole: "text",
|
|
52
|
+
accessibilityLabel: "Typing"
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=TypingIndicator.variants.js.map
|