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
|
@@ -2,9 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
`Drawer` is a hand-rolled bottom-sheet: a panel that slides up from the bottom edge over a
|
|
4
4
|
translucent fading backdrop, presented in REACT NATIVE'S OWN `Modal` — the same "transient overlay,
|
|
5
|
-
raw RN Modal" pattern `Select` already established
|
|
6
|
-
|
|
7
|
-
nothing from it.
|
|
5
|
+
raw RN Modal" pattern `Select` already established. It is NOT this library's own `../modal` (a
|
|
6
|
+
persistent title/children dialog, centered) and imports nothing from it.
|
|
8
7
|
|
|
9
8
|
## Files
|
|
10
9
|
|
|
@@ -15,6 +14,7 @@ nothing from it.
|
|
|
15
14
|
| `index.ts` | Public surface: `Drawer`, `DrawerProps`. |
|
|
16
15
|
| `__tests__/Drawer.test.ts` | Pure: reduced-motion contract, bottom-inset fallback, panel/grabber colour resolution (all brands × modes). |
|
|
17
16
|
| `__tests__/Drawer.render.test.tsx` | Render: visibility, mount-through-exit-animation, dismissal paths, modal semantics, grabber a11y, reduced motion, and the web-portal opt-in branch (mocking `renderWebPortal`). |
|
|
17
|
+
| `__tests__/Drawer.keyboard.test.tsx` | Keyboard avoidance: no listener while closed, subscribe/unsubscribe with `mounted`, the tween's duration source, and the reduce-motion snap. |
|
|
18
18
|
|
|
19
19
|
## Props
|
|
20
20
|
|
|
@@ -25,137 +25,109 @@ nothing from it.
|
|
|
25
25
|
| `children` | `ReactNode` | Required. Arbitrary consumer content below the grabber. |
|
|
26
26
|
| `testID` | `string` | Also seeds `${testID}-backdrop`, `${testID}-panel`, `${testID}-handle`. |
|
|
27
27
|
|
|
28
|
-
No `style`/`containerStyle` prop — same precedent as
|
|
29
|
-
|
|
30
|
-
app's layout places.
|
|
28
|
+
No `style`/`containerStyle` prop — same precedent as `Modal` (also style-less): a full-screen
|
|
29
|
+
transient overlay whose position is fixed by the component, not something an app's layout places.
|
|
31
30
|
|
|
32
31
|
## Animation
|
|
33
32
|
|
|
34
|
-
One `Animated.Value` (`progress`, 0 → 1) drives
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
`
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
33
|
+
One `Animated.Value` (`progress`, 0 → 1) drives both the panel's `translateY` (window height → `0`)
|
|
34
|
+
and the backdrop's `opacity` in lockstep — why RN `<Modal>` is always given `animationType="none"`:
|
|
35
|
+
RN's native transition is one discrete enum for the whole surface and can't also fade a
|
|
36
|
+
separately-Animated backdrop in step with a custom slide.
|
|
37
|
+
|
|
38
|
+
`resolveDrawerAnimationDuration` (WCAG 2.3.3) collapses duration to `0` under `useReducedMotion()` —
|
|
39
|
+
an instant snap, never a frozen half-slid frame.
|
|
40
|
+
|
|
41
|
+
**Exit-animation lifecycle.** RN's `<Modal>` only hides children once native dismissal completes or
|
|
42
|
+
the component unmounts, so Drawer keeps its own `mounted` state distinct from `visible`: on close the
|
|
43
|
+
exit animation starts immediately and a `setTimeout` (matching `duration`, not the `Animated.timing`
|
|
44
|
+
callback, which rides `requestAnimationFrame` and won't resolve deterministically under fake timers)
|
|
45
|
+
unmounts the `<Modal>` once finished — same idiom as `Toast.tsx`'s `hide()`.
|
|
46
|
+
|
|
47
|
+
## Keyboard avoidance
|
|
48
|
+
|
|
49
|
+
The panel is bottom-anchored (`translateY` rests at `0`), so `KeyboardAvoidingView` doesn't help —
|
|
50
|
+
shrinking the panel's height moves the top edge up but leaves the bottom under the keyboard. Drawer
|
|
51
|
+
instead grows its OWN `paddingBottom` by the keyboard's height, animated with
|
|
52
|
+
`keyboardWillShow`/`keyboardWillHide` on iOS (`keyboardDidShow`/`keyboardDidHide` on Android, no
|
|
53
|
+
"will" pair there).
|
|
54
|
+
|
|
55
|
+
**Gated on `mounted`.** The listener effect sits above the `if (!mounted) return null` guard, so
|
|
56
|
+
without a `mounted` check of its own it ran on a closed drawer — and the normal consumer keeps one
|
|
57
|
+
`<Drawer visible={false}>` permanently in the tree, which made every keyboard open anywhere on that
|
|
58
|
+
screen start this JS-driven tween on a hidden panel. Because nothing tracks the keyboard while
|
|
59
|
+
closed, the effect seeds the height from `Keyboard.metrics()` when it re-subscribes — skipped on
|
|
60
|
+
web, since react-native-web's `Keyboard` stub doesn't implement `metrics()` (unlike the other
|
|
61
|
+
`Keyboard` calls here, which it stubs as no-ops).
|
|
62
|
+
|
|
63
|
+
**Reduce motion (WCAG 2.3.3) applies here too.** This is the library's one raw `Animated.timing`
|
|
64
|
+
(`paddingBottom` can't run on the native driver, so it can't go through `useMotion().timing`), which
|
|
65
|
+
means the gate has to be applied by hand: `!motion.enabled` snaps with `setValue`, and the fallback
|
|
66
|
+
duration is `motion.duration("normal")` — never a hardcoded literal. The file's eslint override
|
|
67
|
+
drops the `Animated.timing` restriction wholesale, so nothing else catches a regression here;
|
|
68
|
+
`__tests__/Drawer.keyboard.test.tsx` does.
|
|
69
|
+
|
|
70
|
+
**Invariant:** that padding lives on its own inner `Animated.View`, never the panel's transform
|
|
71
|
+
node — RN's native driver claims a node the instant any animated prop on it starts with
|
|
72
|
+
`useNativeDriver: true` (the panel's `translateY`); a JS-driven prop (`paddingBottom`) on that same
|
|
73
|
+
node then throws "Attempting to run JS driven animation on animated node that has been moved to
|
|
74
|
+
'native'" on the next keyboard toggle.
|
|
52
75
|
|
|
53
76
|
## Web portal mechanism (opt-in)
|
|
54
77
|
|
|
55
|
-
Same containment bug, same fix, as `Modal`/`Select`/`Menu`: `react-native-web`'s
|
|
56
|
-
unconditionally portals to `document.body
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
`
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
**Unlike `Modal`'s portal branch, Drawer loses no animation fidelity.** Modal's portal path
|
|
70
|
-
skips RN `<Modal>`'s native open/close animation because that's what drives Modal's fade; Drawer
|
|
71
|
-
never relied on RN Modal's `animationType` in the first place (always `"none"` — see Animation
|
|
72
|
-
above) — the slide+fade is 100% driven by the `progress` `Animated.Value` regardless of which
|
|
73
|
-
container the tree renders into, so the portaled tree animates identically to the RNModal path.
|
|
74
|
-
The portal branch is gated on `mounted` (not `visible`), reproducing RN Modal's own
|
|
75
|
-
`visible={mounted}` so the same mount-through-exit-animation lifecycle applies on both paths —
|
|
76
|
-
the exit slide/fade still plays out before the portaled tree unmounts.
|
|
77
|
-
|
|
78
|
-
**Known minor gap:** `translateY`'s off-screen starting point interpolates from the actual
|
|
79
|
-
browser `useWindowDimensions().height`, not the portal container's height (there's no cheap way
|
|
80
|
-
to read the container's own height from a portal-container ref alone). Inside a frame shorter
|
|
81
|
-
than the full window, the panel starts further off-screen than strictly necessary, animating
|
|
82
|
-
over the same fixed duration — the resting position (`translateY: 0`) and clipping are still
|
|
83
|
-
correct, this only affects how far the panel travels before entering view. Not a visual escape;
|
|
84
|
-
left as-is rather than adding a container-height measurement this component doesn't otherwise
|
|
85
|
-
need.
|
|
78
|
+
Same containment bug, same fix, as `Modal`/`Select`/`Menu`: `react-native-web`'s `<Modal>`
|
|
79
|
+
unconditionally portals to `document.body`, breaking containment inside a fixed-size preview frame.
|
|
80
|
+
`Drawer.tsx` reads `ModalPortalContext`/`renderWebPortal` from `../modal` (the same cross-module
|
|
81
|
+
exception `Select.tsx`'s top comment documents), gated on
|
|
82
|
+
`Platform.OS === "web" && portalContainer != null` — otherwise renders through RN's own `<Modal>`
|
|
83
|
+
unchanged. See `../modal/MODULE.md`'s "Web portal mechanism" section for the full design.
|
|
84
|
+
|
|
85
|
+
Loses no animation fidelity on the portal path — Drawer never relied on RN Modal's `animationType`
|
|
86
|
+
(always `"none"`, see Animation above), so the tree renders identically either way, gated on
|
|
87
|
+
`mounted` (not `visible`) to keep the same exit-animation lifecycle.
|
|
88
|
+
|
|
89
|
+
**Known minor gap:** the off-screen start uses the window height, not the portal container's, so a
|
|
90
|
+
shorter frame makes the panel travel further before landing — resting position and clipping are
|
|
91
|
+
still correct.
|
|
86
92
|
|
|
87
93
|
## Accessibility contract (WCAG)
|
|
88
94
|
|
|
89
|
-
- **2.3.3** — see Animation above.
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
-
|
|
95
|
-
`
|
|
96
|
-
no WCAG 1.4.11 obligation (a decorative graphic is out of that SC's scope entirely, same status the
|
|
97
|
-
backdrop scrims across this library already have). Its dismiss affordance is real (backdrop press +
|
|
98
|
-
hardware back + VoiceOver escape); it does not itself act as a control.
|
|
99
|
-
- No owned text (`children` is arbitrary consumer content, same stance `Modal`'s own
|
|
100
|
-
`resolveModalPanelColors` doc comment takes for its body — Drawer additionally has no `title`
|
|
101
|
-
either), so there is nothing here for a WCAG 1.4.3 test to measure. `Drawer.test.ts`'s file header
|
|
102
|
-
records this reasoning explicitly rather than silently omitting the usual `contrastRatio` block.
|
|
95
|
+
- **2.3.3** — see Animation above. `accessibilityViewIsModal` on the panel, same as this library's `Modal`.
|
|
96
|
+
- **iOS VoiceOver escape** — `onAccessibilityEscape` calls `onRequestClose`, identical to `Modal.tsx`.
|
|
97
|
+
**Android hardware back** is free via RN `Modal`'s own `onRequestClose` prop.
|
|
98
|
+
- The grabber is `accessibilityElementsHidden` + `no-hide-descendants` — purely decorative (no WCAG
|
|
99
|
+
1.4.11 obligation); its dismiss affordance is real (backdrop press + hardware back + VoiceOver escape).
|
|
100
|
+
- No owned text (`children` is arbitrary, no `title`) — nothing for WCAG 1.4.3 to measure;
|
|
101
|
+
`Drawer.test.ts`'s file header records that reasoning instead of omitting the usual block.
|
|
103
102
|
|
|
104
103
|
## Known gaps
|
|
105
104
|
|
|
106
|
-
- **No `react-native-safe-area-context` wiring
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
`
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
this module's scope) — swap the static constant for a real `useSafeAreaInsets().bottom` read.
|
|
117
|
-
- **No swipe-down-to-dismiss in v1 — a deliberate choice, not an oversight.** The spec allowed this as
|
|
118
|
-
a documented v1 gap, and three considerations pointed the same way:
|
|
119
|
-
1. **Testability.** This is the first hand-rolled gesture module in this catalogue — there is no
|
|
120
|
-
`PanResponder` test precedent anywhere in the other 27 shipped components. `PanResponder`
|
|
121
|
-
computes `dx`/`dy`/`vx`/`vy` internally from a raw native touch-event history; accurately
|
|
122
|
-
reproducing that in `@testing-library/react-native` (which has no real touch pipeline) means
|
|
123
|
-
either hand-crafting synthetic touch streams that only approximate the real responder math, or
|
|
124
|
-
shipping the gesture path untested. Both fall short of the "measured, never eyeballed" bar the
|
|
125
|
-
rest of this library holds itself to.
|
|
126
|
-
2. **Full dismiss parity already exists without it** — backdrop press, Android hardware back, and
|
|
127
|
-
the iOS VoiceOver escape gesture together already satisfy WCAG 2.5.7's non-drag-alternative
|
|
128
|
-
requirement; a swipe would be a nice-to-have affordance, not a missing capability.
|
|
129
|
-
3. **Risk to `children`.** A `PanResponder` broad enough to feel natural on the whole panel risks
|
|
130
|
-
fighting a `ScrollView`/`FlatList` inside `children` (a scroll gesture starting near the top of
|
|
131
|
-
scrollable content vs. a sheet-dismiss swipe is a real, easy-to-get-wrong disambiguation); scoping
|
|
132
|
-
it to only the grabber's small handle strip avoids that fight but makes the gesture much narrower
|
|
133
|
-
and less discoverable than the "drag anywhere" affordance users expect from a bottom sheet.
|
|
134
|
-
A future version should revisit this with `PanResponder` scoped to `drawerHandleStructure`'s handle
|
|
135
|
-
strip only (never the full panel), driving `resolveDrawerAnimationDuration`'s same `progress` value,
|
|
136
|
-
gated by a real distance/velocity threshold — and, at that point, a way to verify the gesture math
|
|
137
|
-
deterministically (e.g. extracting the dy/vy → dismiss decision into its own pure, unit-tested
|
|
138
|
-
function, the same "keep the decision pure, wire the mechanism thin" split this file already uses
|
|
139
|
-
everywhere else) rather than only relying on `PanResponder`'s live wiring.
|
|
140
|
-
- No `size` prop — v1 is a single shape (content sizes the panel up to a 90% max-height cap), matching
|
|
141
|
-
the spec this module was built against.
|
|
105
|
+
- **No `react-native-safe-area-context` wiring** — listed as an optional peer but not a real
|
|
106
|
+
`peerDependencies` entry, so a consumer without it installed separately would fail to resolve it.
|
|
107
|
+
Bottom padding instead uses `resolveDrawerBottomInset` (theme `space[5]` + a static iOS
|
|
108
|
+
home-indicator constant). Revisit once the package becomes a real peer dependency.
|
|
109
|
+
- **No swipe-down-to-dismiss in v1** — deliberate: no `PanResponder` test precedent exists in this
|
|
110
|
+
catalogue (untested gesture math), and backdrop press + Android back + VoiceOver escape already
|
|
111
|
+
satisfy WCAG 2.5.7's non-drag-alternative requirement. A future version should scope
|
|
112
|
+
`PanResponder` to `drawerHandleStructure`'s handle only, with the dy/vy → dismiss decision as its
|
|
113
|
+
own pure, unit-tested function.
|
|
114
|
+
- No `size` prop — v1 is a single shape (content sizes the panel up to a 90% max-height cap).
|
|
142
115
|
|
|
143
116
|
## Patterns copied from Modal / Select / Toast
|
|
144
117
|
|
|
145
|
-
1. **Structure vs colour split
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
3. **RN's raw `Modal`, not this library's own `../modal` COMPONENT** — same isolation contract
|
|
152
|
-
`Select.tsx`'s own top comment states, so Drawer never depends on a sibling module's rendered
|
|
153
|
-
output. The one deliberate exception is the web portal mechanism (`ModalPortalContext`/
|
|
154
|
-
`renderWebPortal` — a plain context + stateless helper, not the `Modal` component) — see "Web
|
|
155
|
-
portal mechanism" above.
|
|
156
|
-
4. **Mount-through-exit-animation + deterministic timer-based unmount** — copied from `Toast.tsx`'s
|
|
157
|
-
`hide()`, adapted from a provider's imperative `show`/`hide` to a fully-controlled `visible` prop.
|
|
118
|
+
1. **Structure vs colour split** — structural values via `createThemedVariants`, colour resolved
|
|
119
|
+
from role tokens and applied inline.
|
|
120
|
+
2. **Pure, testable resolvers** in `Drawer.variants.ts` (no React/lucide).
|
|
121
|
+
3. **RN's raw `Modal`, not this library's own `../modal` component** — same isolation contract
|
|
122
|
+
`Select.tsx` states. The one exception is the web portal mechanism above.
|
|
123
|
+
4. **Mount-through-exit-animation + timer-based unmount** — copied from `Toast.tsx`'s `hide()`.
|
|
158
124
|
|
|
159
125
|
## Performance
|
|
160
126
|
|
|
161
127
|
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Only renders host primitives (`Pressable`/`View`/`Animated.View`/RN's own `Modal`) — no library child component receives a derived callback/array, so no `useCallback`/`useMemo` was needed.
|
|
128
|
+
|
|
129
|
+
## Modernization (v1.0.7)
|
|
130
|
+
|
|
131
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
132
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
133
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -7,18 +7,23 @@
|
|
|
7
7
|
* composition (the same reasoning `AlertDialog` documents for its own footer buttons) — never a
|
|
8
8
|
* hand-rolled `Pressable` that would duplicate Button's press/focus/disabled/hit-target wiring.
|
|
9
9
|
*
|
|
10
|
-
* No `accessibilityRole`
|
|
11
|
-
* interaction beyond the composed Button
|
|
12
|
-
*
|
|
13
|
-
*
|
|
10
|
+
* No `accessibilityRole` on the container: like `Card`, this is a plain grouping container with no
|
|
11
|
+
* interaction beyond the composed Button. The title is the state's heading (`accessibilityRole=
|
|
12
|
+
* "header"` at level 2, WCAG 1.3.1 / 2.4.6), the description reads as its own `Text` after it, and the icon
|
|
13
|
+
* (redundant with the title) is hidden from the accessibility tree entirely.
|
|
14
|
+
*
|
|
15
|
+
* Appearing is itself the status message (WCAG 4.1.3): a screen swapping its content for this block
|
|
16
|
+
* moves no focus, so `useAnnounce` speaks the title + description once, on arrival and on change.
|
|
14
17
|
*/
|
|
15
18
|
|
|
16
|
-
import { memo } from "react";
|
|
19
|
+
import { memo, useMemo } from "react";
|
|
17
20
|
import { StyleSheet, Text, View } from "react-native";
|
|
21
|
+
import { useAnnounce } from "../../core/a11y/index.js";
|
|
22
|
+
import { HEADING_LEVEL, HeadingText } from "../../core/heading/index.js";
|
|
18
23
|
import { Icon } from "../../core/icon/index.js";
|
|
19
|
-
import { useTheme } from "../../theme/
|
|
24
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
20
25
|
import { Button } from "../button/index.js";
|
|
21
|
-
import { EMPTY_STATE_ICON_SIZE, emptyStateStructure, resolveEmptyStateColors } from "./EmptyState.variants.js";
|
|
26
|
+
import { EMPTY_STATE_ICON_SIZE, emptyStateStructure, resolveEmptyStateAnnouncement, resolveEmptyStateColors } from "./EmptyState.variants.js";
|
|
22
27
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
23
28
|
// A lighter stroke than the default 2 — at 48dp a 2px stroke reads heavier than the muted,
|
|
24
29
|
// secondary role this glyph plays next to the title.
|
|
@@ -32,10 +37,23 @@ export const EmptyState = /*#__PURE__*/memo(function EmptyState({
|
|
|
32
37
|
testID
|
|
33
38
|
}) {
|
|
34
39
|
const theme = useTheme();
|
|
35
|
-
const colors = resolveEmptyStateColors(theme.colors);
|
|
40
|
+
const colors = useMemo(() => resolveEmptyStateColors(theme.colors), [theme.colors]);
|
|
41
|
+
|
|
42
|
+
// No `accessibilityLiveRegion` alongside this — it is Android-only and would announce twice there
|
|
43
|
+
// (the contract `core/a11y/MODULE.md` states, same as `Input`/`FormField`).
|
|
44
|
+
useAnnounce(resolveEmptyStateAnnouncement(title, description));
|
|
45
|
+
const rootStyle = useMemo(() => [emptyStateStructure(theme), style], [theme, style]);
|
|
46
|
+
const titleStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.bold), styles.text, {
|
|
47
|
+
fontSize: theme.fontSizes.lg,
|
|
48
|
+
color: colors.title
|
|
49
|
+
}], [theme, colors]);
|
|
50
|
+
const descriptionStyle = useMemo(() => [styles.text, {
|
|
51
|
+
fontSize: theme.fontSizes.sm,
|
|
52
|
+
color: colors.description
|
|
53
|
+
}], [theme, colors]);
|
|
36
54
|
return /*#__PURE__*/_jsxs(View, {
|
|
37
55
|
testID: testID,
|
|
38
|
-
style:
|
|
56
|
+
style: rootStyle,
|
|
39
57
|
children: [icon !== undefined &&
|
|
40
58
|
/*#__PURE__*/
|
|
41
59
|
// Decorative — redundant with the visible title below, so it is hidden from assistive
|
|
@@ -51,17 +69,13 @@ export const EmptyState = /*#__PURE__*/memo(function EmptyState({
|
|
|
51
69
|
color: colors.icon,
|
|
52
70
|
strokeWidth: ICON_STROKE
|
|
53
71
|
})
|
|
54
|
-
}), /*#__PURE__*/_jsx(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}],
|
|
72
|
+
}), /*#__PURE__*/_jsx(HeadingText, {
|
|
73
|
+
accessibilityRole: "header",
|
|
74
|
+
"aria-level": HEADING_LEVEL.section,
|
|
75
|
+
style: titleStyle,
|
|
59
76
|
children: title
|
|
60
77
|
}), description !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
61
|
-
style:
|
|
62
|
-
fontSize: theme.fontSizes.sm,
|
|
63
|
-
color: colors.description
|
|
64
|
-
}],
|
|
78
|
+
style: descriptionStyle,
|
|
65
79
|
children: description
|
|
66
80
|
}), action !== undefined && /*#__PURE__*/_jsx(Button, {
|
|
67
81
|
label: action.label,
|
|
@@ -36,6 +36,15 @@ export function resolveEmptyStateColors(colors) {
|
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
/**
|
|
40
|
+
* What a screen reader hears when this state appears (WCAG 4.1.3). The description carries the
|
|
41
|
+
* recovery step ("Try a different search"), so it is announced with the title rather than left to a
|
|
42
|
+
* swipe the user has no reason to make.
|
|
43
|
+
*/
|
|
44
|
+
export function resolveEmptyStateAnnouncement(title, description) {
|
|
45
|
+
return description === undefined ? title : `${title}. ${description}`;
|
|
46
|
+
}
|
|
47
|
+
|
|
39
48
|
/**
|
|
40
49
|
* Structural styles only — centring, padding, and the vertical rhythm between children. No
|
|
41
50
|
* colours (those are resolved separately and applied inline over this) and no closed union to
|
|
@@ -9,10 +9,11 @@ identity, same reasoning `Divider`/`Avatar` give for theirs.
|
|
|
9
9
|
| File | Role |
|
|
10
10
|
|------|------|
|
|
11
11
|
| `EmptyState.tsx` | The component. Resolves role colours + the themed structural style, composes the optional icon/description/action, `style` last. |
|
|
12
|
-
| `EmptyState.variants.ts` | Pure
|
|
12
|
+
| `EmptyState.variants.ts` | Pure resolvers (`resolveEmptyStateColors`, `resolveEmptyStateAnnouncement`) + the themed structural variant resolver `emptyStateStructure` + the `EMPTY_STATE_ICON_SIZE` constant. No React, no lucide. |
|
|
13
13
|
| `index.ts` | Public surface: `EmptyState`, `EmptyStateProps`, `EmptyStateAction`, `IconName` (re-exported from `core/icon`). |
|
|
14
|
-
| `__tests__/EmptyState.test.ts` | Pure: WCAG 1.4.3 (title + description, all brands × modes), the icon's 3:1 non-text floor, the colour-mapping contract, `EMPTY_STATE_ICON_SIZE
|
|
15
|
-
| `__tests__/EmptyState.render.test.tsx` | Render: title/description compose, `testID` forwards, icon absent vs. hidden-from-AT, the composed action `Button` fires `onPress` and carries its label as the accessible name, consumer `style` applies last. |
|
|
14
|
+
| `__tests__/EmptyState.test.ts` | Pure: WCAG 1.4.3 (title + description, all brands × modes), the icon's 3:1 non-text floor, the colour-mapping contract, `EMPTY_STATE_ICON_SIZE`, the announcement string. |
|
|
15
|
+
| `__tests__/EmptyState.render.test.tsx` | Render: title/description compose, the title's heading role + level, the 4.1.3 announcement (once per change, no live region), `testID` forwards, icon absent vs. hidden-from-AT, the composed action `Button` fires `onPress` and carries its label as the accessible name, consumer `style` applies last. |
|
|
16
|
+
| `__tests__/EmptyState.dom.test.tsx` | Real DOM (`jest.web.config.js`): the title renders a real `<h2>`. |
|
|
16
17
|
|
|
17
18
|
## Props
|
|
18
19
|
|
|
@@ -39,10 +40,21 @@ composition and `Select`'s reuse of stable siblings.
|
|
|
39
40
|
|
|
40
41
|
## Accessibility contract (WCAG)
|
|
41
42
|
|
|
42
|
-
- **
|
|
43
|
-
|
|
44
|
-
`
|
|
45
|
-
|
|
43
|
+
- **1.3.1 / 2.4.6 — the title is a level-2 heading** (`accessibilityRole="header"`,
|
|
44
|
+
`aria-level={2}` — `HEADING_LEVEL.section`, `core/heading` — the same role and level
|
|
45
|
+
`SectionList`'s header and `Section`'s label carry), so an empty state is a stop in rotor heading
|
|
46
|
+
navigation rather than an unlabelled block of text, nesting under the screen's own `<h1>` rather
|
|
47
|
+
than restarting the outline. The description stays plain text below it.
|
|
48
|
+
- **4.1.3 — appearing IS the status message.** A screen swapping its content for this block moves
|
|
49
|
+
no focus, so nothing would be spoken; `useAnnounce` (`core/a11y`) announces
|
|
50
|
+
`resolveEmptyStateAnnouncement(title, description)` — the description is included because it
|
|
51
|
+
carries the recovery step ("Try a different search"), which a user has no reason to swipe for.
|
|
52
|
+
Announced once on arrival and again only when the text actually changes. **No
|
|
53
|
+
`accessibilityLiveRegion`** alongside it: that prop is Android-only and would announce twice
|
|
54
|
+
there (the contract `core/a11y/MODULE.md` states, same as `Input`/`FormField`/`FileUpload`).
|
|
55
|
+
- **No `accessibilityRole` on the container.** Like `Card`, this is a plain grouping container —
|
|
56
|
+
the title and description read as their own `Text` elements, in document order, and the composed
|
|
57
|
+
`Button` carries its own role/state.
|
|
46
58
|
- **Icon is decorative.** Redundant with the visible title, so its wrapper carries
|
|
47
59
|
`accessibilityElementsHidden` + `importantForAccessibility="no-hide-descendants"` — the same
|
|
48
60
|
contract `Avatar`/`Skeleton` give their own decorative default — rather than being announced as
|
|
@@ -76,3 +88,9 @@ None — no new icon, no new theme token, no new core helper needed for this com
|
|
|
76
88
|
## Performance
|
|
77
89
|
|
|
78
90
|
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Its one library child, `Button`, receives `action.label`/`action.onPress` straight from the consumer's own `action` object, not a freshly-derived closure — nothing to memoize.
|
|
91
|
+
|
|
92
|
+
## Modernization (v1.0.7)
|
|
93
|
+
|
|
94
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
95
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
96
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Fab — a floating action button: an absolutely-positioned, safe-area-aware primary-action circle
|
|
5
|
+
* (or pill, when `label` is given — the EXTENDED variant, icon + text). It renders one small
|
|
6
|
+
* wrapper View around its own `Pressable` — `position: "absolute"` for every floating `position`,
|
|
7
|
+
* plain in-flow `position: "relative"` for `"static"` — so `bottom-center` can center a
|
|
8
|
+
* variable-width extended Fab via `alignItems` rather than a measured `translateX`
|
|
9
|
+
* (`resolveFabAnchorStyle`'s own comment has the full reasoning).
|
|
10
|
+
*
|
|
11
|
+
* `FabProps` is a discriminated union, the same shape `ButtonProps` already establishes: a labelled
|
|
12
|
+
* (extended) Fab, or an icon-only Fab whose `accessibilityLabel` is REQUIRED at the type level — the
|
|
13
|
+
* same unlabelled-icon-button trap `Button.tsx`'s own top comment documents; `label?: never` keeps
|
|
14
|
+
* the two shapes mutually exclusive.
|
|
15
|
+
*
|
|
16
|
+
* Press feedback (one motion-system value driving the state-layer overlay + the press scale, with a
|
|
17
|
+
* brightness-aware scrim direction) and the offset focus ring are Button's own techniques, copied
|
|
18
|
+
* here rather than imported — `fab/` stays
|
|
19
|
+
* free of a cross-module dependency on `button/` internals, the same isolation `Toast.variants.ts`
|
|
20
|
+
* documents for its own duplicated `MIN_TOUCH_TARGET`.
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
24
|
+
import { ActivityIndicator, Animated, Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
25
|
+
import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
|
|
26
|
+
import { Icon } from "../../core/icon/index.js";
|
|
27
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
28
|
+
import { fabCircleStructure, fabExtendedStructure, FAB_SIZES, resolveFabAccessibility, resolveFabAnchorStyle, resolveFabBottomInset, resolveFabFocusRingStyle, resolveFabHorizontalInset, resolveFabTone } from "./Fab.variants.js";
|
|
29
|
+
|
|
30
|
+
/** A Fab with a visible text label — the EXTENDED variant (a pill, icon + text). */
|
|
31
|
+
|
|
32
|
+
/** An icon-only Fab. No visible text, so `accessibilityLabel` is REQUIRED at the type level — the
|
|
33
|
+
* same trap `Button`'s icon-only shape closes. `label?: never` keeps the two shapes exclusive. */
|
|
34
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
35
|
+
const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
|
|
36
|
+
const ICON_STROKE = 2;
|
|
37
|
+
// State-layer scrims — direction chosen by the label's brightness so the fill moves AWAY from the
|
|
38
|
+
// label on press (its contrast can only rise), the identical technique `Button.tsx` uses.
|
|
39
|
+
const PRESS_SCRIM_DARK = "#00000026";
|
|
40
|
+
const PRESS_SCRIM_LIGHT = "#ffffff26";
|
|
41
|
+
|
|
42
|
+
/** Cheap perceived-brightness split; `onFill` is only ever a near-white or near-black role value. */
|
|
43
|
+
function isLight(hex) {
|
|
44
|
+
const n = parseInt(hex.slice(1, 7), 16);
|
|
45
|
+
const r = n >> 16 & 0xff;
|
|
46
|
+
const g = n >> 8 & 0xff;
|
|
47
|
+
const b = n & 0xff;
|
|
48
|
+
return r * 0.299 + g * 0.587 + b * 0.114 > 140;
|
|
49
|
+
}
|
|
50
|
+
function FabImpl(props) {
|
|
51
|
+
const {
|
|
52
|
+
icon,
|
|
53
|
+
label,
|
|
54
|
+
onPress,
|
|
55
|
+
onLongPress,
|
|
56
|
+
onPressOut,
|
|
57
|
+
onHoverIn,
|
|
58
|
+
onHoverOut,
|
|
59
|
+
onFocus,
|
|
60
|
+
onBlur,
|
|
61
|
+
tone = "accent",
|
|
62
|
+
size = "lg",
|
|
63
|
+
position = "bottom-right",
|
|
64
|
+
disabled = false,
|
|
65
|
+
loading = false,
|
|
66
|
+
offset,
|
|
67
|
+
style,
|
|
68
|
+
testID,
|
|
69
|
+
accessibilityLabel,
|
|
70
|
+
accessibilityHint,
|
|
71
|
+
"aria-describedby": ariaDescribedBy
|
|
72
|
+
} = props;
|
|
73
|
+
const theme = useTheme();
|
|
74
|
+
const motion = useMotion();
|
|
75
|
+
// One value drives both the state-layer scrim and the press scale, so they can never desync.
|
|
76
|
+
const press = useAnimatedValue(0);
|
|
77
|
+
const pressAnimation = useRef(null);
|
|
78
|
+
// Keyboard / external-keyboard / assistive-tech focus (no-op on pure touch, correct everywhere else).
|
|
79
|
+
const [focused, setFocused] = useState(false);
|
|
80
|
+
const spec = FAB_SIZES[size];
|
|
81
|
+
const toneColors = resolveFabTone(theme.colors, tone);
|
|
82
|
+
const a11y = resolveFabAccessibility({
|
|
83
|
+
label,
|
|
84
|
+
accessibilityLabel,
|
|
85
|
+
disabled,
|
|
86
|
+
loading,
|
|
87
|
+
onPress
|
|
88
|
+
});
|
|
89
|
+
const overlayColor = isLight(toneColors.onFill) ? PRESS_SCRIM_DARK : PRESS_SCRIM_LIGHT;
|
|
90
|
+
const extended = label !== undefined;
|
|
91
|
+
const bottomInset = resolveFabBottomInset(theme.space[4], Platform.OS, offset?.bottom ?? 0);
|
|
92
|
+
const horizontalInset = resolveFabHorizontalInset(theme.space[4], offset?.horizontal ?? 0);
|
|
93
|
+
const anchor = resolveFabAnchorStyle({
|
|
94
|
+
position,
|
|
95
|
+
bottomInset,
|
|
96
|
+
horizontalInset,
|
|
97
|
+
zIndex: theme.zIndices.docked
|
|
98
|
+
});
|
|
99
|
+
const setPressed = useCallback(pressed => {
|
|
100
|
+
pressAnimation.current?.stop();
|
|
101
|
+
const to = pressed ? 1 : 0;
|
|
102
|
+
if (!motion.enabled) {
|
|
103
|
+
press.setValue(to);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
pressAnimation.current = motion.timing(press, to, {
|
|
107
|
+
duration: "fast"
|
|
108
|
+
});
|
|
109
|
+
pressAnimation.current.start();
|
|
110
|
+
}, [motion, press]);
|
|
111
|
+
useEffect(() => () => pressAnimation.current?.stop(), []);
|
|
112
|
+
|
|
113
|
+
// Own state first, then the incoming handler — an outer handler that throws can never strand the
|
|
114
|
+
// press/focus ring in its active state.
|
|
115
|
+
const handlePressIn = useCallback(() => setPressed(true), [setPressed]);
|
|
116
|
+
const handlePressOut = useCallback(event => {
|
|
117
|
+
setPressed(false);
|
|
118
|
+
onPressOut?.(event);
|
|
119
|
+
}, [setPressed, onPressOut]);
|
|
120
|
+
const handleFocus = useCallback(event => {
|
|
121
|
+
setFocused(true);
|
|
122
|
+
onFocus?.(event);
|
|
123
|
+
}, [onFocus]);
|
|
124
|
+
const handleBlur = useCallback(event => {
|
|
125
|
+
setFocused(false);
|
|
126
|
+
onBlur?.(event);
|
|
127
|
+
}, [onBlur]);
|
|
128
|
+
const pressScale = useMemo(() => press.interpolate({
|
|
129
|
+
inputRange: [0, 1],
|
|
130
|
+
outputRange: [1, motion.transform.pressScale]
|
|
131
|
+
}), [press, motion.transform.pressScale]);
|
|
132
|
+
const focusRingStyle = useMemo(() => resolveFabFocusRingStyle(theme.colors.border.focus, theme.radii.full), [theme.colors.border.focus, theme.radii.full]);
|
|
133
|
+
|
|
134
|
+
// The spinner is never the sole loading signal — `aria-busy` announces it. Hidden from AT so it
|
|
135
|
+
// isn't read as a separate element, the same contract Button's own spinner has.
|
|
136
|
+
const content = loading ? /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
137
|
+
size: "small",
|
|
138
|
+
color: toneColors.onFill,
|
|
139
|
+
"aria-hidden": true
|
|
140
|
+
}) : /*#__PURE__*/_jsx(Icon, {
|
|
141
|
+
name: icon,
|
|
142
|
+
size: spec.iconSize,
|
|
143
|
+
color: toneColors.onFill,
|
|
144
|
+
strokeWidth: ICON_STROKE
|
|
145
|
+
});
|
|
146
|
+
return /*#__PURE__*/_jsx(View, {
|
|
147
|
+
style: [anchor, style],
|
|
148
|
+
pointerEvents: "box-none",
|
|
149
|
+
children: /*#__PURE__*/_jsxs(AnimatedPressable, {
|
|
150
|
+
testID: testID,
|
|
151
|
+
accessibilityRole: a11y.accessibilityRole,
|
|
152
|
+
accessibilityLabel: a11y.accessibilityLabel,
|
|
153
|
+
accessibilityHint: accessibilityHint,
|
|
154
|
+
"aria-describedby": ariaDescribedBy,
|
|
155
|
+
"aria-disabled": a11y["aria-disabled"],
|
|
156
|
+
"aria-busy": a11y["aria-busy"],
|
|
157
|
+
disabled: a11y.disabled,
|
|
158
|
+
onPress: a11y.onPress,
|
|
159
|
+
onLongPress: onLongPress,
|
|
160
|
+
onPressIn: handlePressIn,
|
|
161
|
+
onPressOut: handlePressOut,
|
|
162
|
+
onHoverIn: onHoverIn,
|
|
163
|
+
onHoverOut: onHoverOut,
|
|
164
|
+
onFocus: handleFocus,
|
|
165
|
+
onBlur: handleBlur,
|
|
166
|
+
style: [extended ? fabExtendedStructure(theme, {
|
|
167
|
+
size
|
|
168
|
+
}) : fabCircleStructure(theme, {
|
|
169
|
+
size
|
|
170
|
+
}), {
|
|
171
|
+
backgroundColor: toneColors.fill,
|
|
172
|
+
transform: [{
|
|
173
|
+
scale: pressScale
|
|
174
|
+
}]
|
|
175
|
+
}, (disabled || loading) && styles.dimmed, theme.elevation.lg],
|
|
176
|
+
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
177
|
+
pointerEvents: "none"
|
|
178
|
+
// Matches the control's own radius: the control isn't `overflow: hidden` (that would clip
|
|
179
|
+
// the focus ring below), so the state layer rounds itself instead of showing square corners.
|
|
180
|
+
,
|
|
181
|
+
style: [StyleSheet.absoluteFill, {
|
|
182
|
+
backgroundColor: overlayColor,
|
|
183
|
+
opacity: press,
|
|
184
|
+
borderRadius: theme.radii.full
|
|
185
|
+
}]
|
|
186
|
+
}), focused && /*#__PURE__*/_jsx(View, {
|
|
187
|
+
pointerEvents: "none",
|
|
188
|
+
testID: testID ? `${testID}-focus-ring` : undefined,
|
|
189
|
+
style: focusRingStyle
|
|
190
|
+
}), content, extended && /*#__PURE__*/_jsx(Text, {
|
|
191
|
+
numberOfLines: 1,
|
|
192
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
|
|
193
|
+
fontSize: spec.fontSize,
|
|
194
|
+
color: toneColors.onFill
|
|
195
|
+
}],
|
|
196
|
+
children: label
|
|
197
|
+
})]
|
|
198
|
+
})
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
const styles = StyleSheet.create({
|
|
202
|
+
// A disabled/loading control is exempt from the contrast minimum (WCAG 1.4.3), so a uniform dim is
|
|
203
|
+
// correct — same idiom Button's own `dimmed` style uses.
|
|
204
|
+
dimmed: {
|
|
205
|
+
opacity: 0.5
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
// A consumer's screen re-renders far more often than Fab's own props change — memo is near-free
|
|
210
|
+
// insurance for a design-system primitive (see CLAUDE.md "Performance" section).
|
|
211
|
+
export const Fab = /*#__PURE__*/memo(FabImpl);
|
|
212
|
+
//# sourceMappingURL=Fab.js.map
|