pixelize-native-library 1.0.7 → 1.2.1
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 +130 -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/gradient/AccentGradientFill.js +80 -0
- package/lib/module/core/gradient/darkenHex.js +13 -0
- package/lib/module/core/gradient/gradientStops.js +27 -0
- package/lib/module/core/gradient/index.js +7 -0
- package/lib/module/core/gradient/withAlpha.js +19 -0
- package/lib/module/core/haptics/MODULE.md +4 -0
- package/lib/module/core/haptics/context.js +7 -0
- package/lib/module/core/haptics/haptics.js +17 -0
- package/lib/module/core/haptics/index.js +6 -0
- package/lib/module/core/haptics/useHaptics.js +73 -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 +53 -12
- 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/trending-up.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 +160 -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 +26 -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 +115 -0
- package/lib/module/core/motion/index.js +8 -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/motion/usePressState.js +145 -0
- package/lib/module/core/style/index.js +3 -0
- package/lib/module/core/style/radius.js +4 -0
- package/lib/module/core/style/sx.js +76 -0
- package/lib/module/core/style/useThemedStyles.js +8 -0
- package/lib/module/index.js +71 -2
- package/lib/module/modules/accordion/Accordion.js +286 -97
- package/lib/module/modules/accordion/Accordion.variants.js +6 -7
- package/lib/module/modules/accordion/MODULE.md +36 -11
- package/lib/module/modules/alert-dialog/AlertDialog.js +7 -6
- package/lib/module/modules/alert-dialog/AlertDialog.variants.js +4 -0
- package/lib/module/modules/alert-dialog/MODULE.md +11 -2
- package/lib/module/modules/app-bar/AppBar.js +181 -0
- package/lib/module/modules/app-bar/AppBar.variants.js +71 -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 +45 -19
- 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 +81 -0
- package/lib/module/modules/avatar-group/AvatarGroup.variants.js +132 -0
- package/lib/module/modules/avatar-group/MODULE.md +44 -0
- package/lib/module/modules/avatar-group/index.js +10 -0
- package/lib/module/modules/badge/Badge.js +14 -7
- package/lib/module/modules/badge/Badge.variants.js +14 -3
- package/lib/module/modules/badge/MODULE.md +11 -5
- package/lib/module/modules/banner/Banner.js +181 -0
- package/lib/module/modules/banner/Banner.variants.js +118 -0
- package/lib/module/modules/banner/MODULE.md +118 -0
- package/lib/module/modules/banner/index.js +4 -0
- package/lib/module/modules/bottom-nav/BottomNav.js +43 -129
- package/lib/module/modules/bottom-nav/BottomNav.variants.js +36 -18
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +56 -8
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +160 -117
- package/lib/module/modules/bottom-nav/BottomNavTab.js +162 -0
- package/lib/module/modules/bottom-nav/MODULE.md +30 -6
- package/lib/module/modules/bottom-sheet/BottomSheet.js +202 -0
- package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +59 -0
- package/lib/module/modules/bottom-sheet/MODULE.md +64 -0
- package/lib/module/modules/bottom-sheet/index.js +4 -0
- package/lib/module/modules/button/Button.js +128 -91
- package/lib/module/modules/button/Button.variants.js +20 -14
- package/lib/module/modules/button/MODULE.md +31 -3
- package/lib/module/modules/button-group/ButtonGroup.js +176 -69
- package/lib/module/modules/button-group/ButtonGroup.variants.js +51 -50
- package/lib/module/modules/button-group/MODULE.md +58 -37
- package/lib/module/modules/card/Card.js +122 -21
- package/lib/module/modules/card/Card.variants.js +1 -0
- package/lib/module/modules/card/MODULE.md +19 -10
- package/lib/module/modules/charts/BarChart.js +257 -0
- package/lib/module/modules/charts/BarList.js +112 -49
- package/lib/module/modules/charts/ChartLegend.js +154 -0
- package/lib/module/modules/charts/Charts.variants.js +589 -2
- package/lib/module/modules/charts/DonutChart.js +105 -65
- package/lib/module/modules/charts/LineChart.js +181 -0
- package/lib/module/modules/charts/MODULE.md +161 -22
- package/lib/module/modules/charts/PieChart.js +149 -0
- package/lib/module/modules/charts/Sparkline.js +7 -4
- package/lib/module/modules/charts/index.js +3 -0
- package/lib/module/modules/checkbox/Checkbox.js +122 -44
- package/lib/module/modules/checkbox/Checkbox.variants.js +13 -8
- package/lib/module/modules/checkbox/MODULE.md +40 -8
- package/lib/module/modules/chip/Chip.js +200 -0
- package/lib/module/modules/chip/Chip.variants.js +290 -0
- package/lib/module/modules/chip/ChipGroup.js +48 -0
- package/lib/module/modules/chip/MODULE.md +158 -0
- package/lib/module/modules/chip/index.js +13 -0
- package/lib/module/modules/combobox/Combobox.js +623 -0
- package/lib/module/modules/combobox/Combobox.variants.js +295 -0
- package/lib/module/modules/combobox/MODULE.md +193 -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 +163 -0
- package/lib/module/modules/composer/Composer.variants.js +44 -0
- package/lib/module/modules/composer/MODULE.md +75 -0
- package/lib/module/modules/composer/index.js +4 -0
- package/lib/module/modules/copy-button/CopyButton.js +174 -0
- package/lib/module/modules/copy-button/CopyButton.variants.js +88 -0
- package/lib/module/modules/copy-button/MODULE.md +78 -0
- package/lib/module/modules/copy-button/index.js +4 -0
- package/lib/module/modules/data-table/DataTable.js +532 -0
- package/lib/module/modules/data-table/DataTable.variants.js +189 -0
- package/lib/module/modules/data-table/MODULE.md +146 -0
- package/lib/module/modules/data-table/index.js +10 -0
- package/lib/module/modules/date-picker/Calendar.js +414 -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 +701 -0
- package/lib/module/modules/date-picker/DateRangePicker.js +87 -0
- package/lib/module/modules/date-picker/MODULE.md +190 -0
- package/lib/module/modules/date-picker/PickerField.js +151 -0
- package/lib/module/modules/date-picker/PickerShell.js +134 -0
- package/lib/module/modules/date-picker/TimePicker.js +179 -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/Divider.variants.js +6 -5
- package/lib/module/modules/divider/MODULE.md +8 -0
- package/lib/module/modules/drawer/Drawer.js +156 -62
- package/lib/module/modules/drawer/Drawer.variants.js +7 -20
- package/lib/module/modules/drawer/MODULE.md +93 -118
- package/lib/module/modules/empty-state/EmptyState.js +34 -31
- package/lib/module/modules/empty-state/EmptyState.variants.js +16 -0
- package/lib/module/modules/empty-state/MODULE.md +26 -7
- package/lib/module/modules/fab/Fab.js +192 -0
- package/lib/module/modules/fab/Fab.variants.js +360 -0
- package/lib/module/modules/fab/FabGroup.js +361 -0
- package/lib/module/modules/fab/MODULE.md +194 -0
- package/lib/module/modules/fab/index.js +13 -0
- package/lib/module/modules/file-grid/FileGrid.js +163 -0
- package/lib/module/modules/file-grid/FileGrid.variants.js +51 -0
- package/lib/module/modules/file-grid/MODULE.md +14 -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 +53 -8
- package/lib/module/modules/file-upload/MODULE.md +24 -4
- package/lib/module/modules/filter-sheet/FilterChip.js +32 -18
- 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 +180 -82
- package/lib/module/modules/filter-sheet/MODULE.md +31 -1
- package/lib/module/modules/folder-row/FolderRow.js +144 -0
- package/lib/module/modules/folder-row/FolderRow.variants.js +51 -0
- package/lib/module/modules/folder-row/MODULE.md +72 -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 +239 -0
- package/lib/module/modules/gantt/Gantt.variants.js +177 -0
- package/lib/module/modules/gantt/MODULE.md +81 -0
- package/lib/module/modules/gantt/index.js +5 -0
- package/lib/module/modules/image-viewer/ImageViewer.js +265 -0
- package/lib/module/modules/image-viewer/ImageViewer.variants.js +6 -0
- package/lib/module/modules/image-viewer/MODULE.md +63 -0
- package/lib/module/modules/image-viewer/index.js +4 -0
- package/lib/module/modules/input/Input.js +119 -48
- package/lib/module/modules/input/Input.variants.js +26 -11
- package/lib/module/modules/input/MODULE.md +38 -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 +70 -31
- package/lib/module/modules/list-item/ListItem.variants.js +11 -2
- package/lib/module/modules/list-item/MODULE.md +8 -3
- package/lib/module/modules/markdown/MODULE.md +39 -5
- package/lib/module/modules/markdown/Markdown.js +107 -38
- package/lib/module/modules/markdown/Markdown.variants.js +8 -2
- package/lib/module/modules/markdown/parseMarkdown.js +3 -3
- package/lib/module/modules/menu/MODULE.md +56 -14
- package/lib/module/modules/menu/Menu.js +236 -68
- package/lib/module/modules/menu/Menu.variants.js +13 -3
- package/lib/module/modules/message-bubble/MODULE.md +41 -0
- package/lib/module/modules/message-bubble/MessageBubble.js +54 -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 +40 -3
- package/lib/module/modules/modal/Modal.js +135 -33
- package/lib/module/modules/modal/Modal.variants.js +2 -2
- package/lib/module/modules/more-items/MODULE.md +77 -0
- package/lib/module/modules/more-items/MoreItems.js +168 -0
- package/lib/module/modules/more-items/MoreItems.variants.js +83 -0
- package/lib/module/modules/more-items/index.js +4 -0
- package/lib/module/modules/multi-select/MODULE.md +89 -18
- package/lib/module/modules/multi-select/MultiSelect.js +239 -105
- package/lib/module/modules/multi-select/MultiSelect.variants.js +32 -7
- package/lib/module/modules/number-input/MODULE.md +41 -6
- package/lib/module/modules/number-input/NumberInput.js +124 -81
- package/lib/module/modules/number-input/NumberInput.variants.js +48 -11
- package/lib/module/modules/org-switcher/MODULE.md +133 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.js +295 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +188 -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 +236 -0
- package/lib/module/modules/pagination/Pagination.variants.js +309 -0
- package/lib/module/modules/pagination/PaginationControls.js +213 -0
- package/lib/module/modules/pagination/index.js +15 -0
- package/lib/module/modules/pin-input/MODULE.md +34 -15
- package/lib/module/modules/pin-input/PinInput.js +119 -81
- package/lib/module/modules/pin-input/PinInput.variants.js +15 -6
- 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 +42 -16
- package/lib/module/modules/radio-group/RadioGroup.js +172 -49
- package/lib/module/modules/radio-group/RadioGroup.variants.js +48 -11
- package/lib/module/modules/reorder/MODULE.md +106 -97
- package/lib/module/modules/reorder/Reorder.js +234 -197
- package/lib/module/modules/reorder/Reorder.variants.js +39 -15
- package/lib/module/modules/rich-text/MODULE.md +54 -0
- package/lib/module/modules/rich-text/RichText.js +382 -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 +228 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.js +420 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +319 -0
- package/lib/module/modules/rich-text-editor/index.js +10 -0
- package/lib/module/modules/screen/MODULE.md +64 -0
- package/lib/module/modules/screen/Screen.js +139 -0
- package/lib/module/modules/screen/Screen.variants.js +61 -0
- package/lib/module/modules/screen/index.js +10 -0
- package/lib/module/modules/search-bar/MODULE.md +115 -0
- package/lib/module/modules/search-bar/SearchBar.js +276 -0
- package/lib/module/modules/search-bar/SearchBar.variants.js +208 -0
- package/lib/module/modules/search-bar/index.js +12 -0
- package/lib/module/modules/section/MODULE.md +41 -0
- package/lib/module/modules/section/Section.js +35 -0
- package/lib/module/modules/section/Section.variants.js +24 -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 +126 -0
- package/lib/module/modules/segmented-control/SegmentedControl.js +222 -0
- package/lib/module/modules/segmented-control/SegmentedControl.variants.js +168 -0
- package/lib/module/modules/segmented-control/index.js +13 -0
- package/lib/module/modules/select/MODULE.md +103 -15
- package/lib/module/modules/select/Select.js +223 -94
- package/lib/module/modules/select/Select.variants.js +64 -17
- package/lib/module/modules/skeleton/MODULE.md +37 -21
- package/lib/module/modules/skeleton/Skeleton.js +55 -46
- package/lib/module/modules/skeleton/Skeleton.variants.js +19 -76
- package/lib/module/modules/slider/MODULE.md +33 -5
- package/lib/module/modules/slider/Slider.js +68 -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 +68 -0
- package/lib/module/modules/stage-progress/StageProgress.js +221 -0
- package/lib/module/modules/stage-progress/StageProgress.variants.js +169 -0
- package/lib/module/modules/stage-progress/index.js +4 -0
- package/lib/module/modules/stat-tile/MODULE.md +11 -2
- package/lib/module/modules/stat-tile/StatTile.js +76 -34
- package/lib/module/modules/stat-tile/StatTile.variants.js +8 -4
- package/lib/module/modules/state-block/MODULE.md +55 -0
- package/lib/module/modules/state-block/StateBlock.js +136 -0
- package/lib/module/modules/state-block/StateBlock.variants.js +62 -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/surface/MODULE.md +59 -0
- package/lib/module/modules/surface/Surface.js +42 -0
- package/lib/module/modules/surface/Surface.variants.js +33 -0
- package/lib/module/modules/surface/index.js +4 -0
- package/lib/module/modules/swipeable-row/MODULE.md +129 -0
- package/lib/module/modules/swipeable-row/SwipeableRow.js +265 -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 +16 -0
- package/lib/module/modules/switch/Switch.js +9 -3
- package/lib/module/modules/switch/Switch.variants.js +8 -0
- package/lib/module/modules/tabs/MODULE.md +48 -13
- package/lib/module/modules/tabs/Tabs.js +141 -73
- package/lib/module/modules/tabs/Tabs.variants.js +33 -9
- package/lib/module/modules/text/MODULE.md +54 -0
- package/lib/module/modules/text/Text.js +59 -0
- package/lib/module/modules/text/Text.variants.js +162 -0
- package/lib/module/modules/text/index.js +4 -0
- package/lib/module/modules/textarea/MODULE.md +31 -13
- package/lib/module/modules/textarea/Textarea.js +92 -46
- package/lib/module/modules/textarea/Textarea.variants.js +16 -10
- 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 +74 -11
- package/lib/module/modules/toast/Toast.js +118 -34
- package/lib/module/modules/toast/Toast.variants.js +42 -1
- package/lib/module/modules/toast/toastScreenReader.js +69 -0
- package/lib/module/modules/tooltip/MODULE.md +82 -28
- package/lib/module/modules/tooltip/Tooltip.js +126 -44
- package/lib/module/modules/tooltip/Tooltip.variants.js +11 -5
- 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 +9 -1
- package/lib/module/theme/hooks.js +11 -0
- package/lib/module/theme/index.js +3 -6
- package/lib/module/theme/platform/MODULE.md +20 -2
- package/lib/module/theme/platform/elevation.native.js +0 -44
- package/lib/module/theme/platform/floatingSurface.native.js +75 -0
- package/lib/module/theme/platform/highlight.native.js +59 -0
- package/lib/module/theme/platform/index.js +5 -0
- package/lib/module/theme/platform/motion.native.js +35 -0
- package/lib/module/theme/platform/stateLayer.native.js +14 -0
- package/lib/module/theme/platform/surfaces.native.js +11 -0
- package/lib/module/theme/provider/PixelizeProvider.js +18 -49
- 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/MODULE.md +32 -28
- package/lib/module/theme/tokens/THEME-CONTRACT.md +137 -0
- package/lib/module/theme/tokens/assertPalette.js +29 -0
- package/lib/module/theme/tokens/brands/emerald/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/lavender/palette.light.js +3 -2
- package/lib/module/theme/tokens/brands/meadow/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/radiant/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/skyline/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/slate/palette.light.js +8 -10
- package/lib/module/theme/tokens/brands/storefront/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/zinc/palette.dark.js +3 -2
- package/lib/module/theme/tokens/brands/zinc/palette.light.js +3 -2
- package/lib/module/theme/tokens/builders/buildDarkPalette.js +3 -2
- package/lib/module/theme/tokens/builders/finalizePalette.js +34 -0
- package/lib/module/theme/tokens/builders/liftToContrast.js +44 -0
- package/lib/module/theme/tokens/builders/placeholderInk.js +22 -0
- package/lib/module/theme/tokens/builders/semanticText.js +14 -0
- package/lib/module/theme/tokens/builders/surfaceRungs.js +44 -0
- package/lib/module/theme/tokens/index.js +5 -0
- package/lib/module/theme/tokens/roles/index.js +14 -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/gradient/AccentGradientFill.d.ts +7 -0
- package/lib/typescript/core/gradient/darkenHex.d.ts +2 -0
- package/lib/typescript/core/gradient/gradientStops.d.ts +10 -0
- package/lib/typescript/core/gradient/index.d.ts +5 -0
- package/lib/typescript/core/gradient/withAlpha.d.ts +2 -0
- package/lib/typescript/core/haptics/context.d.ts +3 -0
- package/lib/typescript/core/haptics/haptics.d.ts +33 -0
- package/lib/typescript/core/haptics/index.d.ts +6 -0
- package/lib/typescript/core/haptics/useHaptics.d.ts +12 -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/trending-up.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 +23 -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 +57 -0
- package/lib/typescript/core/motion/index.d.ts +10 -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/motion/usePressState.d.ts +21 -0
- package/lib/typescript/core/style/index.d.ts +4 -0
- package/lib/typescript/core/style/radius.d.ts +2 -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 +136 -2
- package/lib/typescript/modules/accordion/Accordion.d.ts +12 -23
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts +7 -7
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +2 -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 +30 -0
- package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +94 -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 +37 -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 +23 -12
- 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 +15 -0
- package/lib/typescript/modules/bottom-sheet/index.d.ts +3 -0
- package/lib/typescript/modules/button/Button.d.ts +9 -13
- package/lib/typescript/modules/button/Button.variants.d.ts +28 -15
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts +0 -17
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +40 -61
- package/lib/typescript/modules/card/Card.d.ts +7 -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 +229 -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 +40 -0
- package/lib/typescript/modules/chip/Chip.variants.d.ts +202 -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 +225 -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 +334 -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 +14 -0
- package/lib/typescript/modules/date-picker/index.d.ts +16 -0
- package/lib/typescript/modules/divider/Divider.variants.d.ts +6 -6
- 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 +9 -4
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +8 -1
- package/lib/typescript/modules/fab/Fab.d.ts +74 -0
- package/lib/typescript/modules/fab/Fab.variants.d.ts +231 -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 +16 -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 +103 -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 +32 -12
- 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 +3 -1
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts +138 -2
- package/lib/typescript/modules/markdown/Markdown.d.ts +13 -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 +30 -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 +64 -12
- 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 +47 -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 +30 -0
- package/lib/typescript/modules/screen/Screen.variants.d.ts +25 -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 +9 -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 +5 -15
- package/lib/typescript/modules/select/Select.variants.d.ts +45 -12
- package/lib/typescript/modules/select/index.d.ts +1 -1
- package/lib/typescript/modules/skeleton/Skeleton.d.ts +3 -13
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +14 -69
- 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 +107 -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 +55 -0
- package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +31 -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/surface/Surface.d.ts +19 -0
- package/lib/typescript/modules/surface/Surface.variants.d.ts +15 -0
- package/lib/typescript/modules/surface/index.d.ts +4 -0
- 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 +27 -0
- package/lib/typescript/modules/text/Text.variants.d.ts +21 -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 +33 -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 +11 -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 +4 -3
- package/lib/typescript/theme/platform/elevation.native.d.ts +0 -30
- package/lib/typescript/theme/platform/floatingSurface.native.d.ts +10 -0
- package/lib/typescript/theme/platform/highlight.native.d.ts +17 -0
- package/lib/typescript/theme/platform/index.d.ts +9 -0
- package/lib/typescript/theme/platform/motion.native.d.ts +35 -0
- package/lib/typescript/theme/platform/stateLayer.native.d.ts +11 -0
- package/lib/typescript/theme/platform/surfaces.native.d.ts +8 -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 +49 -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/assertPalette.d.ts +10 -0
- package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/builders/finalizePalette.d.ts +4 -0
- package/lib/typescript/theme/tokens/builders/liftToContrast.d.ts +9 -0
- package/lib/typescript/theme/tokens/builders/placeholderInk.d.ts +13 -0
- package/lib/typescript/theme/tokens/builders/semanticText.d.ts +4 -0
- package/lib/typescript/theme/tokens/builders/surfaceRungs.d.ts +12 -0
- package/lib/typescript/theme/tokens/index.d.ts +5 -0
- package/lib/typescript/theme/tokens/roles/index.d.ts +8 -0
- package/lib/typescript/theme/tokens/types.d.ts +8 -7
- package/package.json +201 -19
- package/registry.json +177 -2
- package/lib/module/core/a11y/index.js.map +0 -1
- package/lib/module/core/icon/index.js.map +0 -1
- package/lib/module/core/style/index.js.map +0 -1
- package/lib/module/core/style/layoutStyle.js.map +0 -1
- package/lib/module/core/style/variants.js.map +0 -1
- package/lib/module/index.js.map +0 -1
- package/lib/module/modules/accordion/Accordion.js.map +0 -1
- package/lib/module/modules/accordion/Accordion.variants.js.map +0 -1
- package/lib/module/modules/accordion/index.js.map +0 -1
- package/lib/module/modules/alert-dialog/AlertDialog.js.map +0 -1
- package/lib/module/modules/alert-dialog/AlertDialog.variants.js.map +0 -1
- package/lib/module/modules/alert-dialog/index.js.map +0 -1
- package/lib/module/modules/avatar/Avatar.js.map +0 -1
- package/lib/module/modules/avatar/Avatar.variants.js.map +0 -1
- package/lib/module/modules/avatar/index.js.map +0 -1
- package/lib/module/modules/badge/Badge.js.map +0 -1
- package/lib/module/modules/badge/Badge.variants.js.map +0 -1
- package/lib/module/modules/badge/index.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.search.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.variants.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js.map +0 -1
- package/lib/module/modules/bottom-nav/index.js.map +0 -1
- package/lib/module/modules/button/Button.js.map +0 -1
- package/lib/module/modules/button/Button.variants.js.map +0 -1
- package/lib/module/modules/button/index.js.map +0 -1
- package/lib/module/modules/button-group/ButtonGroup.js.map +0 -1
- package/lib/module/modules/button-group/ButtonGroup.variants.js.map +0 -1
- package/lib/module/modules/button-group/index.js.map +0 -1
- package/lib/module/modules/card/Card.js.map +0 -1
- package/lib/module/modules/card/Card.variants.js.map +0 -1
- package/lib/module/modules/card/index.js.map +0 -1
- package/lib/module/modules/charts/BarList.js.map +0 -1
- package/lib/module/modules/charts/Charts.variants.js.map +0 -1
- package/lib/module/modules/charts/DonutChart.js.map +0 -1
- package/lib/module/modules/charts/Sparkline.js.map +0 -1
- package/lib/module/modules/charts/index.js.map +0 -1
- package/lib/module/modules/checkbox/Checkbox.js.map +0 -1
- package/lib/module/modules/checkbox/Checkbox.variants.js.map +0 -1
- package/lib/module/modules/checkbox/index.js.map +0 -1
- package/lib/module/modules/divider/Divider.js.map +0 -1
- package/lib/module/modules/divider/Divider.variants.js.map +0 -1
- package/lib/module/modules/divider/index.js.map +0 -1
- package/lib/module/modules/drawer/Drawer.js.map +0 -1
- package/lib/module/modules/drawer/Drawer.variants.js.map +0 -1
- package/lib/module/modules/drawer/index.js.map +0 -1
- package/lib/module/modules/empty-state/EmptyState.js.map +0 -1
- package/lib/module/modules/empty-state/EmptyState.variants.js.map +0 -1
- package/lib/module/modules/empty-state/index.js.map +0 -1
- package/lib/module/modules/file-upload/FileUpload.js.map +0 -1
- package/lib/module/modules/file-upload/FileUpload.variants.js.map +0 -1
- package/lib/module/modules/file-upload/index.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterChip.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheet.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheetBody.js.map +0 -1
- package/lib/module/modules/filter-sheet/filterSheet.helpers.js.map +0 -1
- package/lib/module/modules/filter-sheet/index.js.map +0 -1
- package/lib/module/modules/input/Input.js.map +0 -1
- package/lib/module/modules/input/Input.variants.js.map +0 -1
- package/lib/module/modules/input/index.js.map +0 -1
- package/lib/module/modules/list-item/ListItem.js.map +0 -1
- package/lib/module/modules/list-item/ListItem.variants.js.map +0 -1
- package/lib/module/modules/list-item/index.js.map +0 -1
- package/lib/module/modules/markdown/Markdown.js.map +0 -1
- package/lib/module/modules/markdown/Markdown.variants.js.map +0 -1
- package/lib/module/modules/markdown/index.js.map +0 -1
- package/lib/module/modules/markdown/parseMarkdown.js.map +0 -1
- package/lib/module/modules/menu/Menu.js.map +0 -1
- package/lib/module/modules/menu/Menu.variants.js.map +0 -1
- package/lib/module/modules/menu/index.js.map +0 -1
- package/lib/module/modules/modal/Modal.js.map +0 -1
- package/lib/module/modules/modal/Modal.variants.js.map +0 -1
- package/lib/module/modules/modal/ModalPortalContext.js.map +0 -1
- package/lib/module/modules/modal/ModalPortalProvider.js.map +0 -1
- package/lib/module/modules/modal/index.js.map +0 -1
- package/lib/module/modules/modal/renderWebPortal.js.map +0 -1
- package/lib/module/modules/modal/renderWebPortal.web.js.map +0 -1
- package/lib/module/modules/multi-select/MultiSelect.js.map +0 -1
- package/lib/module/modules/multi-select/MultiSelect.variants.js.map +0 -1
- package/lib/module/modules/multi-select/index.js.map +0 -1
- package/lib/module/modules/number-input/NumberInput.js.map +0 -1
- package/lib/module/modules/number-input/NumberInput.variants.js.map +0 -1
- package/lib/module/modules/number-input/index.js.map +0 -1
- package/lib/module/modules/pin-input/PinInput.js.map +0 -1
- package/lib/module/modules/pin-input/PinInput.variants.js.map +0 -1
- package/lib/module/modules/pin-input/index.js.map +0 -1
- package/lib/module/modules/progress-bar/ProgressBar.js.map +0 -1
- package/lib/module/modules/progress-bar/ProgressBar.variants.js.map +0 -1
- package/lib/module/modules/progress-bar/index.js.map +0 -1
- package/lib/module/modules/radio-group/RadioGroup.js.map +0 -1
- package/lib/module/modules/radio-group/RadioGroup.variants.js.map +0 -1
- package/lib/module/modules/radio-group/index.js.map +0 -1
- package/lib/module/modules/reorder/Reorder.js.map +0 -1
- package/lib/module/modules/reorder/Reorder.variants.js.map +0 -1
- package/lib/module/modules/reorder/index.js.map +0 -1
- package/lib/module/modules/select/Select.js.map +0 -1
- package/lib/module/modules/select/Select.variants.js.map +0 -1
- package/lib/module/modules/select/index.js.map +0 -1
- package/lib/module/modules/skeleton/Skeleton.js.map +0 -1
- package/lib/module/modules/skeleton/Skeleton.variants.js.map +0 -1
- package/lib/module/modules/skeleton/index.js.map +0 -1
- package/lib/module/modules/slider/Slider.js.map +0 -1
- package/lib/module/modules/slider/Slider.variants.js.map +0 -1
- package/lib/module/modules/slider/index.js.map +0 -1
- package/lib/module/modules/spinner/Spinner.js.map +0 -1
- package/lib/module/modules/spinner/Spinner.variants.js.map +0 -1
- package/lib/module/modules/spinner/index.js.map +0 -1
- package/lib/module/modules/stat-tile/StatTile.js.map +0 -1
- package/lib/module/modules/stat-tile/StatTile.variants.js.map +0 -1
- package/lib/module/modules/stat-tile/index.js.map +0 -1
- package/lib/module/modules/stepper/Stepper.js.map +0 -1
- package/lib/module/modules/stepper/Stepper.variants.js.map +0 -1
- package/lib/module/modules/stepper/index.js.map +0 -1
- package/lib/module/modules/switch/Switch.js.map +0 -1
- package/lib/module/modules/switch/Switch.variants.js.map +0 -1
- package/lib/module/modules/switch/index.js.map +0 -1
- package/lib/module/modules/tabs/Tabs.js.map +0 -1
- package/lib/module/modules/tabs/Tabs.variants.js.map +0 -1
- package/lib/module/modules/tabs/index.js.map +0 -1
- package/lib/module/modules/textarea/Textarea.js.map +0 -1
- package/lib/module/modules/textarea/Textarea.variants.js.map +0 -1
- package/lib/module/modules/textarea/index.js.map +0 -1
- package/lib/module/modules/timeline/Timeline.js.map +0 -1
- package/lib/module/modules/timeline/Timeline.variants.js.map +0 -1
- package/lib/module/modules/timeline/index.js.map +0 -1
- package/lib/module/modules/toast/Toast.js.map +0 -1
- package/lib/module/modules/toast/Toast.variants.js.map +0 -1
- package/lib/module/modules/toast/index.js.map +0 -1
- package/lib/module/modules/tooltip/Tooltip.js.map +0 -1
- package/lib/module/modules/tooltip/Tooltip.variants.js.map +0 -1
- package/lib/module/modules/tooltip/index.js.map +0 -1
- package/lib/module/theme/index.js.map +0 -1
- package/lib/module/theme/platform/colorScheme.native.js.map +0 -1
- package/lib/module/theme/platform/elevation.native.js.map +0 -1
- package/lib/module/theme/platform/fonts.native.js.map +0 -1
- package/lib/module/theme/platform/index.js.map +0 -1
- package/lib/module/theme/platform/units.native.js.map +0 -1
- package/lib/module/theme/provider/PixelizeProvider.js.map +0 -1
- package/lib/module/theme/provider/colorModeStorage.js.map +0 -1
- package/lib/module/theme/provider/index.js.map +0 -1
- package/lib/module/theme/provider/useTheme.js.map +0 -1
- package/lib/module/theme/provider/useThemeColors.js.map +0 -1
- package/lib/module/theme/provider/useThemeMode.js.map +0 -1
- package/lib/module/theme/tokens/brands/emerald/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/emerald/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/index.js.map +0 -1
- package/lib/module/theme/tokens/brands/lavender/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/lavender/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/meadow/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/meadow/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/radiant/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/radiant/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/rosewood/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/skyline/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/skyline/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/slate/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/slate/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/storefront/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/storefront/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/zinc/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/zinc/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/builders/accentText.js.map +0 -1
- package/lib/module/theme/tokens/builders/buildBrandTokens.js.map +0 -1
- package/lib/module/theme/tokens/builders/buildDarkPalette.js.map +0 -1
- package/lib/module/theme/tokens/builders/color.js.map +0 -1
- package/lib/module/theme/tokens/index.js.map +0 -1
- package/lib/module/theme/tokens/primitives/borderWidths.js.map +0 -1
- package/lib/module/theme/tokens/primitives/breakpoints.js.map +0 -1
- package/lib/module/theme/tokens/primitives/elevation.js.map +0 -1
- package/lib/module/theme/tokens/primitives/fontSizes.js.map +0 -1
- package/lib/module/theme/tokens/primitives/fontWeights.js.map +0 -1
- package/lib/module/theme/tokens/primitives/index.js.map +0 -1
- package/lib/module/theme/tokens/primitives/letterSpacings.js.map +0 -1
- package/lib/module/theme/tokens/primitives/lineHeights.js.map +0 -1
- package/lib/module/theme/tokens/primitives/radii.js.map +0 -1
- package/lib/module/theme/tokens/primitives/sizes.js.map +0 -1
- package/lib/module/theme/tokens/primitives/space.js.map +0 -1
- package/lib/module/theme/tokens/primitives/zIndices.js.map +0 -1
- package/lib/module/theme/tokens/roles/index.js.map +0 -1
- package/lib/module/theme/tokens/types.js.map +0 -1
- package/lib/typescript/core/a11y/index.d.ts.map +0 -1
- package/lib/typescript/core/icon/index.d.ts.map +0 -1
- package/lib/typescript/core/style/index.d.ts.map +0 -1
- package/lib/typescript/core/style/layoutStyle.d.ts.map +0 -1
- package/lib/typescript/core/style/variants.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/Accordion.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/index.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/index.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/Avatar.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/index.d.ts.map +0 -1
- package/lib/typescript/modules/badge/Badge.d.ts.map +0 -1
- package/lib/typescript/modules/badge/Badge.variants.d.ts.map +0 -1
- package/lib/typescript/modules/badge/index.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNavIconWithBadge.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/index.d.ts.map +0 -1
- package/lib/typescript/modules/button/Button.d.ts.map +0 -1
- package/lib/typescript/modules/button/Button.variants.d.ts.map +0 -1
- package/lib/typescript/modules/button/index.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/index.d.ts.map +0 -1
- package/lib/typescript/modules/card/Card.d.ts.map +0 -1
- package/lib/typescript/modules/card/Card.variants.d.ts.map +0 -1
- package/lib/typescript/modules/card/index.d.ts.map +0 -1
- package/lib/typescript/modules/charts/BarList.d.ts.map +0 -1
- package/lib/typescript/modules/charts/Charts.variants.d.ts.map +0 -1
- package/lib/typescript/modules/charts/DonutChart.d.ts.map +0 -1
- package/lib/typescript/modules/charts/Sparkline.d.ts.map +0 -1
- package/lib/typescript/modules/charts/index.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/Checkbox.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/index.d.ts.map +0 -1
- package/lib/typescript/modules/divider/Divider.d.ts.map +0 -1
- package/lib/typescript/modules/divider/Divider.variants.d.ts.map +0 -1
- package/lib/typescript/modules/divider/index.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/Drawer.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/Drawer.variants.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/index.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/EmptyState.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/index.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/FileUpload.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/index.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterChip.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/index.d.ts.map +0 -1
- package/lib/typescript/modules/input/Input.d.ts.map +0 -1
- package/lib/typescript/modules/input/Input.variants.d.ts.map +0 -1
- package/lib/typescript/modules/input/index.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/ListItem.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/index.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/Markdown.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/Markdown.variants.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/index.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/parseMarkdown.d.ts.map +0 -1
- package/lib/typescript/modules/menu/Menu.d.ts.map +0 -1
- package/lib/typescript/modules/menu/Menu.variants.d.ts.map +0 -1
- package/lib/typescript/modules/menu/index.d.ts.map +0 -1
- package/lib/typescript/modules/modal/Modal.d.ts.map +0 -1
- package/lib/typescript/modules/modal/Modal.variants.d.ts.map +0 -1
- package/lib/typescript/modules/modal/ModalPortalContext.d.ts.map +0 -1
- package/lib/typescript/modules/modal/ModalPortalProvider.d.ts.map +0 -1
- package/lib/typescript/modules/modal/index.d.ts.map +0 -1
- package/lib/typescript/modules/modal/renderWebPortal.d.ts.map +0 -1
- package/lib/typescript/modules/modal/renderWebPortal.web.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/index.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/NumberInput.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/index.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/PinInput.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/index.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/index.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/index.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/Reorder.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/index.d.ts.map +0 -1
- package/lib/typescript/modules/select/Select.d.ts.map +0 -1
- package/lib/typescript/modules/select/Select.variants.d.ts.map +0 -1
- package/lib/typescript/modules/select/index.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/Skeleton.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/index.d.ts.map +0 -1
- package/lib/typescript/modules/slider/Slider.d.ts.map +0 -1
- package/lib/typescript/modules/slider/Slider.variants.d.ts.map +0 -1
- package/lib/typescript/modules/slider/index.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/Spinner.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/Spinner.variants.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/index.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/StatTile.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/index.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/Stepper.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/index.d.ts.map +0 -1
- package/lib/typescript/modules/switch/Switch.d.ts.map +0 -1
- package/lib/typescript/modules/switch/Switch.variants.d.ts.map +0 -1
- package/lib/typescript/modules/switch/index.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/Tabs.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/index.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/Textarea.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/index.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/Timeline.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/index.d.ts.map +0 -1
- package/lib/typescript/modules/toast/Toast.d.ts.map +0 -1
- package/lib/typescript/modules/toast/Toast.variants.d.ts.map +0 -1
- package/lib/typescript/modules/toast/index.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/Tooltip.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/index.d.ts.map +0 -1
- package/lib/typescript/theme/index.d.ts.map +0 -1
- package/lib/typescript/theme/platform/colorScheme.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/elevation.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/fonts.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/index.d.ts.map +0 -1
- package/lib/typescript/theme/platform/units.native.d.ts.map +0 -1
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts.map +0 -1
- package/lib/typescript/theme/provider/colorModeStorage.d.ts.map +0 -1
- package/lib/typescript/theme/provider/index.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useTheme.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useThemeColors.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useThemeMode.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/accentText.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/color.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/elevation.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/radii.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/sizes.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/space.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/zIndices.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/roles/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/types.d.ts.map +0 -1
|
@@ -0,0 +1,361 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* FabGroup — a speed-dial: a Fab-shaped trigger that expands into a vertical stack of labeled mini
|
|
5
|
+
* actions above itself, behind a dismiss scrim. Deliberately NOT React Native's own `<Modal>` (unlike
|
|
6
|
+
* Menu/Select/Drawer) — a speed dial must stay visually anchored exactly where its own trigger sits
|
|
7
|
+
* on screen, and RN's `<Modal>` can only present a new, unrelated native surface. The scrim and the
|
|
8
|
+
* trigger+actions anchor are declared as SIBLINGS at this component's own root (no wrapping node of
|
|
9
|
+
* its own), so both resolve their `position: "absolute"` against the SAME nearest positioned ancestor
|
|
10
|
+
* — ordinarily the screen's own root container — the scrim covering it edge-to-edge while the anchor
|
|
11
|
+
* still hugs its own corner/edge. Declaring the scrim first and the anchor second puts the anchor
|
|
12
|
+
* visibly on top with no `zIndex` needed between the two, the same source-order idiom `Menu.tsx`'s
|
|
13
|
+
* own backdrop-then-sheet pair already relies on.
|
|
14
|
+
*
|
|
15
|
+
* Not being a `<Modal>` costs the one thing a Modal gives for free, though: RN's `<Modal>` presents
|
|
16
|
+
* its own native surface, so what it covers leaves the accessibility tree by construction. Nothing
|
|
17
|
+
* does that here, so the anchor declares `accessibilityViewIsModal` (+ `onAccessibilityEscape`) for
|
|
18
|
+
* itself while the scrim is mounted — otherwise the screen the scrim covers stays swipeable.
|
|
19
|
+
*
|
|
20
|
+
* The expand/collapse lifecycle mirrors `Drawer.tsx`'s exactly: `mounted` stays true through the exit
|
|
21
|
+
* animation (driven by a `useEffect` reacting to the resolved `expanded` value, not to who changed
|
|
22
|
+
* it) so the fade/slide can actually play before the tree unmounts, using the same plain-`setTimeout`
|
|
23
|
+
* determinism fix `Drawer`'s own top comment explains (an `Animated.timing` completion callback rides
|
|
24
|
+
* `requestAnimationFrame`, which doesn't resolve on a predictable jest-fake-timer tick). Driving the
|
|
25
|
+
* animation from an effect on `expanded` — rather than only inside the trigger's own press handler —
|
|
26
|
+
* is what makes a CONTROLLED caller flipping `open` externally (not via this trigger) animate too.
|
|
27
|
+
*
|
|
28
|
+
* Uncontrolled by default (`open`/`onOpenChange` both omitted → internal state); controlled the
|
|
29
|
+
* instant a caller passes `open`, the conventional React controlled/uncontrolled split.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
33
|
+
import { Animated, Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
34
|
+
import Reanimated from "react-native-reanimated";
|
|
35
|
+
import { useDismissOnEscape, useFocusTrap } from "../../core/a11y/keyboard";
|
|
36
|
+
import { Icon } from "../../core/icon/index.js";
|
|
37
|
+
import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
|
|
38
|
+
import { usePressState } from "../../core/motion/usePressState.js";
|
|
39
|
+
import { rippleColor } from "../../theme/platform/stateLayer.native.js";
|
|
40
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
41
|
+
import { fabCircleStructure, fabOverlayColor, FAB_ACTION_ICON_SIZE, fabGroupActionCircleStructure, fabGroupActionLabelStructure, fabGroupActionRowStructure, fabGroupActionsStackStructure, FAB_GROUP_SCRIM, FAB_SIZES, resolveFabAccessibility, resolveFabAnchorStyle, resolveFabBottomInset, resolveFabFocusRingStyle, resolveFabGroupActionDirection, resolveFabGroupActionWindow, resolveFabGroupStackAlign, resolveFabGroupTriggerAccessibilityLabel, resolveFabHorizontalInset, resolveFabTone } from "./Fab.variants.js";
|
|
42
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
43
|
+
const AnimatedPressable = Reanimated.createAnimatedComponent(Pressable);
|
|
44
|
+
const ICON_STROKE = 2;
|
|
45
|
+
const ACTION_ICON_STROKE = 2;
|
|
46
|
+
const DEFAULT_ICON = "plus";
|
|
47
|
+
const styles = StyleSheet.create({
|
|
48
|
+
dimmed: {
|
|
49
|
+
opacity: 0.5
|
|
50
|
+
},
|
|
51
|
+
// The trigger is declared FIRST so Tab reaches it before the actions it opened, and action 0 is
|
|
52
|
+
// declared first so Tab walks outward from the trigger. `column-reverse` on both restores the
|
|
53
|
+
// painted layout: trigger at the bottom, action 0 the row just above it.
|
|
54
|
+
anchorFlow: {
|
|
55
|
+
flexDirection: "column-reverse"
|
|
56
|
+
},
|
|
57
|
+
actionsFlow: {
|
|
58
|
+
flexDirection: "column-reverse"
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
function FabGroupActionRowImpl({
|
|
62
|
+
action,
|
|
63
|
+
fallbackTone,
|
|
64
|
+
direction,
|
|
65
|
+
progress,
|
|
66
|
+
window,
|
|
67
|
+
onSelect,
|
|
68
|
+
testID
|
|
69
|
+
}) {
|
|
70
|
+
const theme = useTheme();
|
|
71
|
+
const motion = useMotion();
|
|
72
|
+
const press = usePressState();
|
|
73
|
+
const colors = resolveFabTone(theme.colors, action.tone ?? fallbackTone);
|
|
74
|
+
const handlePress = useCallback(() => onSelect(action), [onSelect, action]);
|
|
75
|
+
const [start, end] = window;
|
|
76
|
+
const revealOpacity = useMemo(() => progress.interpolate({
|
|
77
|
+
inputRange: [start, end],
|
|
78
|
+
outputRange: [0, 1],
|
|
79
|
+
extrapolate: "clamp"
|
|
80
|
+
}), [progress, start, end]);
|
|
81
|
+
const translateY = useMemo(() => progress.interpolate({
|
|
82
|
+
inputRange: [start, end],
|
|
83
|
+
outputRange: [motion.transform.offsetY, 0],
|
|
84
|
+
extrapolate: "clamp"
|
|
85
|
+
}), [progress, start, end, motion.transform.offsetY]);
|
|
86
|
+
const revealStyle = useMemo(() => ({
|
|
87
|
+
opacity: revealOpacity,
|
|
88
|
+
transform: [{
|
|
89
|
+
translateY
|
|
90
|
+
}]
|
|
91
|
+
}), [revealOpacity, translateY]);
|
|
92
|
+
const androidRipple = useMemo(() => {
|
|
93
|
+
if (Platform.OS !== "android") return undefined;
|
|
94
|
+
return {
|
|
95
|
+
color: rippleColor(theme.mode),
|
|
96
|
+
borderless: false
|
|
97
|
+
};
|
|
98
|
+
}, [theme.mode]);
|
|
99
|
+
|
|
100
|
+
// Reveal (classic Animated) nests press feedback (Reanimated `usePressState`) — fades compose.
|
|
101
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
102
|
+
style: revealStyle,
|
|
103
|
+
children: /*#__PURE__*/_jsxs(AnimatedPressable, {
|
|
104
|
+
testID: testID,
|
|
105
|
+
accessibilityRole: "button",
|
|
106
|
+
accessibilityLabel: action.label,
|
|
107
|
+
onPress: handlePress,
|
|
108
|
+
onPressIn: press.handlers.onPressIn,
|
|
109
|
+
onPressOut: press.handlers.onPressOut,
|
|
110
|
+
onLayout: press.onLayout,
|
|
111
|
+
android_ripple: androidRipple,
|
|
112
|
+
style: [fabGroupActionRowStructure(theme), {
|
|
113
|
+
flexDirection: direction
|
|
114
|
+
}, press.animatedStyle],
|
|
115
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
116
|
+
style: [fabGroupActionLabelStructure(theme), {
|
|
117
|
+
backgroundColor: theme.colors.bg.raised
|
|
118
|
+
}, theme.elevation.sm],
|
|
119
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
120
|
+
numberOfLines: 1,
|
|
121
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
122
|
+
fontSize: theme.fontSizes.sm,
|
|
123
|
+
color: theme.colors.fg.default
|
|
124
|
+
}],
|
|
125
|
+
children: action.label
|
|
126
|
+
})
|
|
127
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
128
|
+
style: [fabGroupActionCircleStructure(theme), {
|
|
129
|
+
backgroundColor: colors.fill
|
|
130
|
+
}, theme.elevation.md],
|
|
131
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
132
|
+
name: action.icon,
|
|
133
|
+
size: FAB_ACTION_ICON_SIZE,
|
|
134
|
+
color: colors.onFill,
|
|
135
|
+
strokeWidth: ACTION_ICON_STROKE
|
|
136
|
+
})
|
|
137
|
+
})]
|
|
138
|
+
})
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
const FabGroupActionRow = /*#__PURE__*/memo(FabGroupActionRowImpl);
|
|
142
|
+
function FabGroupImpl({
|
|
143
|
+
actions,
|
|
144
|
+
icon = DEFAULT_ICON,
|
|
145
|
+
open,
|
|
146
|
+
onOpenChange,
|
|
147
|
+
tone = "accent",
|
|
148
|
+
size = "lg",
|
|
149
|
+
position = "bottom-right",
|
|
150
|
+
disabled = false,
|
|
151
|
+
accessibilityLabel,
|
|
152
|
+
offset,
|
|
153
|
+
style,
|
|
154
|
+
testID
|
|
155
|
+
}) {
|
|
156
|
+
const theme = useTheme();
|
|
157
|
+
const motion = useMotion();
|
|
158
|
+
const [internalOpen, setInternalOpen] = useState(false);
|
|
159
|
+
const isControlled = open !== undefined;
|
|
160
|
+
const expanded = isControlled ? open : internalOpen;
|
|
161
|
+
const duration = motion.duration("normal");
|
|
162
|
+
|
|
163
|
+
// Kept mounted through the exit animation — see the file-level comment for why this can't just
|
|
164
|
+
// follow `expanded` directly.
|
|
165
|
+
const [mounted, setMounted] = useState(expanded);
|
|
166
|
+
const mountedRef = useRef(mounted);
|
|
167
|
+
mountedRef.current = mounted;
|
|
168
|
+
const progress = useAnimatedValue(expanded ? 1 : 0);
|
|
169
|
+
const running = useRef(null);
|
|
170
|
+
const unmountTimer = useRef(null);
|
|
171
|
+
useEffect(() => {
|
|
172
|
+
const clearUnmountTimer = () => {
|
|
173
|
+
if (unmountTimer.current !== null) {
|
|
174
|
+
clearTimeout(unmountTimer.current);
|
|
175
|
+
unmountTimer.current = null;
|
|
176
|
+
}
|
|
177
|
+
};
|
|
178
|
+
clearUnmountTimer();
|
|
179
|
+
running.current?.stop();
|
|
180
|
+
if (expanded) {
|
|
181
|
+
setMounted(true);
|
|
182
|
+
if (!motion.enabled || duration === 0) {
|
|
183
|
+
progress.setValue(1);
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
running.current = motion.timing(progress, 1, {
|
|
187
|
+
easing: "decelerate"
|
|
188
|
+
});
|
|
189
|
+
running.current.start();
|
|
190
|
+
return clearUnmountTimer;
|
|
191
|
+
}
|
|
192
|
+
if (!mountedRef.current) return;
|
|
193
|
+
if (!motion.enabled || duration === 0) {
|
|
194
|
+
progress.setValue(0);
|
|
195
|
+
setMounted(false);
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
running.current = motion.timing(progress, 0, {
|
|
199
|
+
easing: "accelerate"
|
|
200
|
+
});
|
|
201
|
+
running.current.start();
|
|
202
|
+
unmountTimer.current = setTimeout(() => {
|
|
203
|
+
unmountTimer.current = null;
|
|
204
|
+
setMounted(false);
|
|
205
|
+
}, duration);
|
|
206
|
+
return clearUnmountTimer;
|
|
207
|
+
}, [expanded, duration, motion, progress]);
|
|
208
|
+
useEffect(() => () => {
|
|
209
|
+
running.current?.stop();
|
|
210
|
+
if (unmountTimer.current !== null) clearTimeout(unmountTimer.current);
|
|
211
|
+
}, []);
|
|
212
|
+
const requestExpandedChange = useCallback(next => {
|
|
213
|
+
if (!isControlled) setInternalOpen(next);
|
|
214
|
+
onOpenChange?.(next);
|
|
215
|
+
}, [isControlled, onOpenChange]);
|
|
216
|
+
const toggle = useCallback(() => {
|
|
217
|
+
if (disabled) return;
|
|
218
|
+
requestExpandedChange(!expanded);
|
|
219
|
+
}, [disabled, expanded, requestExpandedChange]);
|
|
220
|
+
const closeGroup = useCallback(() => requestExpandedChange(false), [requestExpandedChange]);
|
|
221
|
+
|
|
222
|
+
// No <Modal> here (see the file header), so nothing else supplies these on web: Escape to collapse,
|
|
223
|
+
// Tab confined to trigger+actions while the scrim is up, and focus back on the trigger afterwards —
|
|
224
|
+
// including after an action runs, since `runAction` collapses the group.
|
|
225
|
+
const anchorRef = useRef(null);
|
|
226
|
+
useDismissOnEscape(mounted, closeGroup);
|
|
227
|
+
useFocusTrap(anchorRef, mounted);
|
|
228
|
+
const runAction = useCallback(action => {
|
|
229
|
+
closeGroup();
|
|
230
|
+
action.onPress();
|
|
231
|
+
}, [closeGroup]);
|
|
232
|
+
const spec = FAB_SIZES[size];
|
|
233
|
+
const triggerColors = resolveFabTone(theme.colors, tone);
|
|
234
|
+
const a11y = resolveFabAccessibility({
|
|
235
|
+
accessibilityLabel: resolveFabGroupTriggerAccessibilityLabel(expanded, accessibilityLabel),
|
|
236
|
+
disabled,
|
|
237
|
+
onPress: toggle
|
|
238
|
+
});
|
|
239
|
+
const bottomInset = resolveFabBottomInset(theme.space[4], Platform.OS, offset?.bottom ?? 0);
|
|
240
|
+
const horizontalInset = resolveFabHorizontalInset(theme.space[4], offset?.horizontal ?? 0);
|
|
241
|
+
const anchor = resolveFabAnchorStyle({
|
|
242
|
+
position,
|
|
243
|
+
bottomInset,
|
|
244
|
+
horizontalInset,
|
|
245
|
+
zIndex: theme.zIndices.overlay
|
|
246
|
+
});
|
|
247
|
+
const actionDirection = resolveFabGroupActionDirection(position);
|
|
248
|
+
const stackAlign = resolveFabGroupStackAlign(position);
|
|
249
|
+
const rotate = useMemo(() => progress.interpolate({
|
|
250
|
+
inputRange: [0, 1],
|
|
251
|
+
outputRange: ["0deg", "45deg"]
|
|
252
|
+
}), [progress]);
|
|
253
|
+
const triggerPress = usePressState(disabled);
|
|
254
|
+
const triggerOverlayColor = fabOverlayColor(triggerColors.onFill);
|
|
255
|
+
const triggerRipple = useMemo(() => {
|
|
256
|
+
if (Platform.OS !== "android" || disabled) return undefined;
|
|
257
|
+
return {
|
|
258
|
+
color: rippleColor(theme.mode),
|
|
259
|
+
borderless: true
|
|
260
|
+
};
|
|
261
|
+
}, [disabled, theme.mode]);
|
|
262
|
+
|
|
263
|
+
// Same circular control as `Fab`, so the ring geometry is shared, not re-derived.
|
|
264
|
+
const [focused, setFocused] = useState(false);
|
|
265
|
+
const handleFocus = useCallback(() => setFocused(true), []);
|
|
266
|
+
const handleBlur = useCallback(() => setFocused(false), []);
|
|
267
|
+
const focusRingStyle = useMemo(() => resolveFabFocusRingStyle(theme.colors.border.focus, theme.radii.full), [theme.colors.border.focus, theme.radii.full]);
|
|
268
|
+
const rows = useMemo(() => actions.map((action, index) => ({
|
|
269
|
+
action,
|
|
270
|
+
index,
|
|
271
|
+
window: resolveFabGroupActionWindow(index, actions.length, motion.decorative)
|
|
272
|
+
})), [actions, motion.decorative]);
|
|
273
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
274
|
+
children: [mounted && /*#__PURE__*/_jsx(Pressable, {
|
|
275
|
+
testID: testID ? `${testID}-scrim` : undefined,
|
|
276
|
+
accessible: false,
|
|
277
|
+
tabIndex: -1,
|
|
278
|
+
style: StyleSheet.absoluteFill,
|
|
279
|
+
onPress: closeGroup,
|
|
280
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
281
|
+
pointerEvents: "none",
|
|
282
|
+
style: [StyleSheet.absoluteFill, {
|
|
283
|
+
backgroundColor: FAB_GROUP_SCRIM,
|
|
284
|
+
opacity: progress
|
|
285
|
+
}]
|
|
286
|
+
})
|
|
287
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
288
|
+
ref: anchorRef,
|
|
289
|
+
testID: testID ? `${testID}-anchor` : undefined,
|
|
290
|
+
style: [anchor, styles.anchorFlow, style]
|
|
291
|
+
// Modal exactly while the scrim is mounted, and on the anchor rather than the action stack
|
|
292
|
+
// so the trigger — the close affordance — stays inside the modal view with the actions.
|
|
293
|
+
// Both spellings: RN's View has no `aria-modal`, react-native-web has no
|
|
294
|
+
// `accessibilityViewIsModal`, and this node has to be modal on both.
|
|
295
|
+
,
|
|
296
|
+
accessibilityViewIsModal: mounted,
|
|
297
|
+
"aria-modal": mounted,
|
|
298
|
+
onAccessibilityEscape: mounted ? closeGroup : undefined,
|
|
299
|
+
pointerEvents: "box-none",
|
|
300
|
+
children: [/*#__PURE__*/_jsxs(AnimatedPressable, {
|
|
301
|
+
testID: testID ? `${testID}-trigger` : undefined,
|
|
302
|
+
accessibilityRole: a11y.accessibilityRole,
|
|
303
|
+
accessibilityLabel: a11y.accessibilityLabel,
|
|
304
|
+
"aria-disabled": a11y["aria-disabled"],
|
|
305
|
+
"aria-expanded": expanded,
|
|
306
|
+
disabled: a11y.disabled,
|
|
307
|
+
onPress: a11y.onPress,
|
|
308
|
+
onPressIn: triggerPress.handlers.onPressIn,
|
|
309
|
+
onPressOut: triggerPress.handlers.onPressOut,
|
|
310
|
+
onFocus: handleFocus,
|
|
311
|
+
onBlur: handleBlur,
|
|
312
|
+
onLayout: triggerPress.onLayout,
|
|
313
|
+
android_ripple: triggerRipple,
|
|
314
|
+
style: [fabCircleStructure(theme, {
|
|
315
|
+
size
|
|
316
|
+
}), {
|
|
317
|
+
backgroundColor: triggerColors.fill
|
|
318
|
+
}, triggerPress.animatedStyle, disabled && styles.dimmed, theme.elevation.lg],
|
|
319
|
+
children: [/*#__PURE__*/_jsx(Reanimated.View, {
|
|
320
|
+
pointerEvents: "none",
|
|
321
|
+
style: [StyleSheet.absoluteFill, {
|
|
322
|
+
backgroundColor: triggerOverlayColor,
|
|
323
|
+
borderRadius: theme.radii.full,
|
|
324
|
+
borderCurve: "continuous"
|
|
325
|
+
}, triggerPress.overlayStyle]
|
|
326
|
+
}), focused && /*#__PURE__*/_jsx(View, {
|
|
327
|
+
pointerEvents: "none",
|
|
328
|
+
testID: testID ? `${testID}-trigger-focus-ring` : undefined,
|
|
329
|
+
style: focusRingStyle
|
|
330
|
+
}), /*#__PURE__*/_jsx(Animated.View, {
|
|
331
|
+
style: {
|
|
332
|
+
transform: [{
|
|
333
|
+
rotate
|
|
334
|
+
}]
|
|
335
|
+
},
|
|
336
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
337
|
+
name: icon,
|
|
338
|
+
size: spec.iconSize,
|
|
339
|
+
color: triggerColors.onFill,
|
|
340
|
+
strokeWidth: ICON_STROKE
|
|
341
|
+
})
|
|
342
|
+
})]
|
|
343
|
+
}), mounted && /*#__PURE__*/_jsx(View, {
|
|
344
|
+
style: [fabGroupActionsStackStructure(theme, {
|
|
345
|
+
align: stackAlign
|
|
346
|
+
}), styles.actionsFlow],
|
|
347
|
+
children: rows.map(row => /*#__PURE__*/_jsx(FabGroupActionRow, {
|
|
348
|
+
testID: testID ? `${testID}-action-${row.index}` : undefined,
|
|
349
|
+
action: row.action,
|
|
350
|
+
fallbackTone: tone,
|
|
351
|
+
direction: actionDirection,
|
|
352
|
+
progress: progress,
|
|
353
|
+
window: row.window,
|
|
354
|
+
onSelect: runAction
|
|
355
|
+
}, `${row.action.label}-${row.index}`))
|
|
356
|
+
})]
|
|
357
|
+
})]
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
export const FabGroup = /*#__PURE__*/memo(FabGroupImpl);
|
|
361
|
+
//# sourceMappingURL=FabGroup.js.map
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# fab/ — a floating action button, and its speed-dial sibling
|
|
2
|
+
|
|
3
|
+
`Fab` is an absolutely-positioned, safe-area-aware primary-action control — a circle, or an
|
|
4
|
+
EXTENDED pill (icon + label) when `label` is given. `FabGroup` is a speed-dial: a Fab-shaped
|
|
5
|
+
trigger that expands a vertical stack of labeled mini actions above itself, behind a dismiss scrim.
|
|
6
|
+
Neither uses React Native's own `<Modal>` — both must stay visually anchored exactly where placed,
|
|
7
|
+
which a Modal's own separate native surface can't do (see `FabGroup.tsx`'s top comment).
|
|
8
|
+
|
|
9
|
+
## Files
|
|
10
|
+
|
|
11
|
+
| File | Role |
|
|
12
|
+
|------|------|
|
|
13
|
+
| `Fab.tsx` | The button. Discriminated icon-only/extended props, tone/press/focus, safe-area anchor. |
|
|
14
|
+
| `FabGroup.tsx` | The speed-dial. Controlled/uncontrolled expand state, mount-through-exit-animation lifecycle (mirrors `Drawer.tsx`), scrim, mini-action rows. |
|
|
15
|
+
| `Fab.variants.ts` | Pure resolvers (`resolveFabTone`, `resolveFabAccessibility`, `resolveFabAnchorStyle`, `resolveFabFocusRingStyle`, `resolveFabGroupActionWindow`, the inset/direction/align/label resolvers) + the themed structural resolvers. No React, no lucide. |
|
|
16
|
+
| `index.ts` | Public surface: `Fab`, `FabGroup`, their prop/action types, the closed unions, `IconName`. |
|
|
17
|
+
| `__tests__/Fab.test.ts` | Pure: WCAG contrast (all 9 brands × both modes) + touch target + a11y + positioning/animation resolvers. |
|
|
18
|
+
| `__tests__/Fab.render.test.tsx` | Render: press wiring for both, extended/icon-only, focus rings (Fab + the speed-dial trigger), FabGroup's full expand/collapse lifecycle (uncontrolled + controlled), scrim, its modal semantics, reduced motion. |
|
|
19
|
+
| `__tests__/FabGroup.keyboard.web.test.tsx` | Escape, Tab confinement, focus return, and the trigger-before-actions source order. |
|
|
20
|
+
|
|
21
|
+
## Props
|
|
22
|
+
|
|
23
|
+
**Fab** — `icon: IconName` (required), `label?: string` (renders the EXTENDED pill), `onPress: () => void`
|
|
24
|
+
(required), `tone?: accent \| neutral \| danger` (`accent`), `size?: md \| lg` (`lg`; 48/56dp — both
|
|
25
|
+
already clear 44dp), `position?: bottom-right \| bottom-left \| bottom-center \| static` (`bottom-right`),
|
|
26
|
+
`disabled?`, `loading?` (spinner replaces the icon, press suppressed), `accessibilityLabel?` —
|
|
27
|
+
**required** when `label` is absent (type-enforced discriminated union, the same shape `ButtonProps`
|
|
28
|
+
uses), `offset?: { bottom?; horizontal? }`, `style?: LayoutStyle`, `testID?`, plus the tooltip-trigger
|
|
29
|
+
set `onLongPress?`/`onPressOut?`/`onHoverIn?`/`onHoverOut?`/`onFocus?`/`onBlur?`/`accessibilityHint?`/
|
|
30
|
+
`aria-describedby?` (the web half of the hint — react-native-web has no `accessibilityHint`) —
|
|
31
|
+
declared explicitly (no `{...rest}`) so a wrapping `Tooltip` actually reaches the control; each chains
|
|
32
|
+
after the Fab's own press/focus ring rather than replacing it. **`FabGroup` does not accept them**, so
|
|
33
|
+
its trigger is not a tooltip target.
|
|
34
|
+
|
|
35
|
+
**FabGroup** — `actions: { icon, label, onPress, tone? }[]`, `icon?` (`"plus"`), `open?` +
|
|
36
|
+
`onOpenChange?` (uncontrolled if both omitted), plus `tone?`/`size?`/`position?`/`disabled?`/
|
|
37
|
+
`accessibilityLabel?`/`offset?`/`style?`/`testID?` (the trigger's own Fab-shaped props).
|
|
38
|
+
`testID` seeds `${testID}-anchor`, `${testID}-trigger`, `${testID}-trigger-focus-ring`,
|
|
39
|
+
`${testID}-scrim`, `${testID}-action-${index}`.
|
|
40
|
+
|
|
41
|
+
## Accessibility contract (WCAG)
|
|
42
|
+
|
|
43
|
+
- **2.5.5 / 2.5.8 target size** — both Fab sizes (48/56dp) and every FabGroup mini action (44dp)
|
|
44
|
+
clear the 44dp floor directly, no `hitSlop` needed.
|
|
45
|
+
- **1.4.3 / 1.4.11** — `resolveFabTone`'s `onFill` is measured ≥ 4.5:1 against `fill` for every tone
|
|
46
|
+
× brand × mode (covers both the icon's 3:1 non-text floor and the extended variant's 4.5:1 text
|
|
47
|
+
label in one pairing); a FabGroup mini action's label chip text (`fg.default` on `bg.raised`) is
|
|
48
|
+
measured the same way.
|
|
49
|
+
- **Icon-only rule** — `FabProps` is a discriminated union: `label?: never` + required
|
|
50
|
+
`accessibilityLabel` makes an unlabelled icon-only Fab a type error, mirroring `ButtonProps`.
|
|
51
|
+
- **4.1.2** — the speed-dial trigger carries `aria-expanded`; every mini action carries its own
|
|
52
|
+
`accessibilityLabel` (always its visible `label` — a mini action is never icon-only).
|
|
53
|
+
- **Flat `aria-*`, never `accessibilityState={{…}}`** — react-native-web 0.21 forwards only a flat
|
|
54
|
+
vocabulary and discards the object, so the object form shipped a role with no state at all on web.
|
|
55
|
+
`resolveFabAccessibility` returns `"aria-disabled"`/`"aria-busy"`; FabGroup's trigger adds
|
|
56
|
+
`aria-expanded`. RN's own `Pressable` merges the flat props back into `accessibilityState`, so one
|
|
57
|
+
flat form is correct on both platforms (same migration `resolveCheckboxAccessibility` documents).
|
|
58
|
+
- **4.1.2 / modal semantics** — while the scrim is mounted, FabGroup's ANCHOR carries BOTH
|
|
59
|
+
`accessibilityViewIsModal` and `aria-modal` — RN's `View` understands only the first,
|
|
60
|
+
react-native-web only the second — plus `onAccessibilityEscape={closeGroup}`; the scrim itself stays
|
|
61
|
+
`accessible={false}`. Menu's `accessible={false}` backdrop is **not** a precedent for omitting
|
|
62
|
+
this: Menu's backdrop sits inside an RN `<Modal>`, whose separate native surface removes the
|
|
63
|
+
covered screen from the accessibility tree by construction. FabGroup is deliberately not a
|
|
64
|
+
`<Modal>`, so nothing did that here — the scrim blocked touch while a swipe still reached the
|
|
65
|
+
whole screen behind it. On the anchor (not the action stack) so the trigger — the "Close actions
|
|
66
|
+
menu" affordance — stays inside the modal view, and gated on `mounted` so the modality lasts
|
|
67
|
+
exactly as long as the scrim, exit animation included.
|
|
68
|
+
- **2.1.1 keyboard (web only)** — FabGroup is not a `<Modal>`, so `react-native-web` gave it
|
|
69
|
+
nothing: no Escape, no Tab confinement, no focus return. (`onAccessibilityEscape` above is a
|
|
70
|
+
VoiceOver gesture; RNW does not forward it.) While the scrim is mounted the anchor now wires
|
|
71
|
+
`useDismissOnEscape` + `useFocusTrap` (`core/a11y/keyboard`), so Escape collapses the dial, Tab
|
|
72
|
+
cycles within trigger+actions, and focus returns to the trigger on collapse — including after an
|
|
73
|
+
action runs, since `runAction` collapses first.
|
|
74
|
+
- **2.4.3 focus order** — the trigger and action 0 are declared FIRST in the tree, with
|
|
75
|
+
`flexDirection: "column-reverse"` on the anchor and on the action stack restoring the painted
|
|
76
|
+
layout (trigger at the bottom, action 0 just above it). Tab order follows source order, so before
|
|
77
|
+
this the actions were reachable only by Shift+Tab, bottom-to-top, after Tab had already left the
|
|
78
|
+
group. This also changes the order a screen reader walks the group on native: trigger first, then
|
|
79
|
+
the actions outward from it.
|
|
80
|
+
- **2.4.7 focus indicator** — the speed-dial trigger draws the same offset `border.focus` ring `Fab`
|
|
81
|
+
does (`resolveFabFocusRingStyle`, shared by both since they are the same circular silhouette).
|
|
82
|
+
- **1.4.1** — `loading` (Fab only) sets `aria-busy`; the spinner is hidden from AT with
|
|
83
|
+
`aria-hidden` — the one spelling that works natively AND on web, where
|
|
84
|
+
`accessibilityElementsHidden`/`importantForAccessibility` are discarded and left it exposed.
|
|
85
|
+
- **2.3.3** — every animation in this module runs through `useMotion()` (`core/motion`), which
|
|
86
|
+
folds the OS reduce-motion setting and the device tier into one resolved duration. With motion
|
|
87
|
+
off, Fab's press state and FabGroup's expand/collapse `setValue` their final state — no tween,
|
|
88
|
+
no frozen frame — and the speed-dial unmounts immediately instead of waiting out an exit.
|
|
89
|
+
|
|
90
|
+
## Patterns copied from Button / Card / Drawer / Toast (the reference modules)
|
|
91
|
+
|
|
92
|
+
1. **Structure vs colour split**, **closed unions**, **discriminated icon-only prop**, **the
|
|
93
|
+
animated state-layer press overlay + offset focus ring** — all duplicated from `Button.tsx`
|
|
94
|
+
rather than imported (module isolation; same status `Toast.variants.ts` documents for its own
|
|
95
|
+
duplicated `MIN_TOUCH_TARGET`). Inside this module the ring is NOT duplicated a second time:
|
|
96
|
+
`Fab` and `FabGroup`'s trigger both call `resolveFabFocusRingStyle`.
|
|
97
|
+
2. **Elevation applied directly** from `theme.elevation.lg`/`.md`/`.sm`, the same idiom `Card`/`Toast` use.
|
|
98
|
+
3. **Safe-area-less bottom-inset approximation** (`resolveFabBottomInset`) — the identical formula
|
|
99
|
+
and value `Drawer.variants.ts`/`BottomNav.variants.ts` each already carry independently.
|
|
100
|
+
`react-native-safe-area-context` is an optional peer but not a real dependency of this package, so
|
|
101
|
+
`useSafeAreaInsets` is never imported here either (see "Known gaps").
|
|
102
|
+
4. **Mount-through-exit-animation lifecycle** (`mounted` state + a `useEffect` on the resolved
|
|
103
|
+
`expanded` value + a plain `setTimeout` unmount) — copied from `Drawer.tsx` verbatim, including
|
|
104
|
+
*why* it's a `useEffect` reacting to the value rather than the trigger's own handler: a controlled
|
|
105
|
+
caller flipping `open` externally still animates correctly.
|
|
106
|
+
5. **Source-order stacking, no `zIndex` between siblings** — the scrim declared before the
|
|
107
|
+
trigger+actions anchor, the same idiom `Menu.tsx`'s backdrop-then-sheet pair relies on.
|
|
108
|
+
|
|
109
|
+
## Design decisions specific to this module
|
|
110
|
+
|
|
111
|
+
- **Not RN's `<Modal>`.** A speed dial must stay visually anchored to its own on-screen position;
|
|
112
|
+
`<Modal>` presents an unrelated native surface. The scrim and the anchor are declared as siblings
|
|
113
|
+
at `FabGroup`'s own root (no wrapping node), so both resolve `position: "absolute"` against the
|
|
114
|
+
same ancestor — ordinarily the screen's own root container. The cost of that choice is that
|
|
115
|
+
nothing hides the covered screen from assistive tech for free, so the anchor declares
|
|
116
|
+
`accessibilityViewIsModal` itself (see 4.1.2 above) — a `<Modal>`-based overlay never has to.
|
|
117
|
+
- **`bottom-center` centers via `alignItems`, not a measured `translateX`** — works regardless of an
|
|
118
|
+
extended Fab's caller-length-driven rendered width, the same idiom `Toast`'s centered card uses.
|
|
119
|
+
- **FabGroup action rows are NOT stretched to the widest row.** The anchor's and the action stack's
|
|
120
|
+
`alignItems` are both set to the same edge (`resolveFabGroupStackAlign`), so rows size to their own
|
|
121
|
+
natural width and align flush to that edge, instead of flexbox's default `stretch` forcing every
|
|
122
|
+
row to the widest row's width and bunching shorter content at one end.
|
|
123
|
+
- **A mini action's label chip is a constant neutral surface, never the action's own tone fill** —
|
|
124
|
+
the same "state isn't conveyed by a background swap" reasoning `Select`'s row fill documents.
|
|
125
|
+
|
|
126
|
+
## Known gaps
|
|
127
|
+
|
|
128
|
+
- **Fab's own focus ring can be clipped by its `overflow: "hidden"`** — the ring is drawn with
|
|
129
|
+
negative offsets outside the control's own bounds, and the Pressable clips to its own rect. Found
|
|
130
|
+
in the Round 5 Android-parity pass, not fixed here (unrelated to that pass's scope). FabGroup's
|
|
131
|
+
trigger avoids this: it carries no `overflow: "hidden"`, since its overlay self-clips via its own
|
|
132
|
+
`borderRadius`.
|
|
133
|
+
- **No safe-area inset awareness** beyond the static iOS home-indicator approximation (see pattern
|
|
134
|
+
#3) — same documented gap `Toast`/`Drawer`/`BottomNav` already carry.
|
|
135
|
+
- **No focus ring on the mini action ROWS.** The trigger reached parity with `Fab` (identical
|
|
136
|
+
circular control, identical ring geometry), but a row is a two-part composite — label chip + icon
|
|
137
|
+
circle, with a gap — and one pill ring around both would claim a silhouette the control doesn't
|
|
138
|
+
have. A design decision, not a copied style, so it is deliberately left out the way
|
|
139
|
+
`button-group`/`radio-group` record theirs; the same `onFocus`/`onBlur` pattern extends cleanly.
|
|
140
|
+
- **No sibling-hiding on Android for the expanded speed dial** — `accessibilityViewIsModal` is an
|
|
141
|
+
iOS prop (react-native-web ignores it entirely, which is why `aria-modal` is emitted alongside it);
|
|
142
|
+
Android's equivalent would mean setting
|
|
143
|
+
`importantForAccessibility="no-hide-descendants"` on a tree FabGroup does not own. Same gap
|
|
144
|
+
`Modal`'s own docs record for its "no full screen-reader trap".
|
|
145
|
+
- **The web focus trap only cycles Tab** — it does not pull focus back if a click outside or a
|
|
146
|
+
programmatic `focus()` takes it out of the group. Inherited from `core/a11y/keyboard`; the fix is
|
|
147
|
+
sentinel nodes at the anchor's edges.
|
|
148
|
+
- **No hardware-back dismissal for FabGroup** on Android — Menu/Select/Drawer get this for free from
|
|
149
|
+
RN's own `<Modal onRequestClose>`; FabGroup deliberately isn't a Modal (see "Design decisions"), so
|
|
150
|
+
there is no `BackHandler` wiring in v1. The scrim press and the trigger's own toggle remain the
|
|
151
|
+
dismissal paths.
|
|
152
|
+
- **`static` FabGroup's mini-action stack has no real anchor edge** — it defaults to the same
|
|
153
|
+
trailing (`flex-end`) alignment `bottom-right` uses, an arbitrary but documented default.
|
|
154
|
+
|
|
155
|
+
## Motion
|
|
156
|
+
|
|
157
|
+
Nothing in this module owns a duration, easing or `Animated.timing` config — all of it comes from
|
|
158
|
+
`useMotion()` / `usePressMotion()` in `core/motion`, so retuning `core/motion/config.ts` retunes the
|
|
159
|
+
Fab too. Everything animates `opacity`/`transform` only, always on the native driver.
|
|
160
|
+
|
|
161
|
+
- **Press feedback** — Fab, the FabGroup trigger, and each action row all use `usePressState`
|
|
162
|
+
(`core/motion/usePressState`), the same width-aware scale + state-layer overlay + spring settle
|
|
163
|
+
every other pressable in this library uses (Round 5 press-feedback unification).
|
|
164
|
+
- **FabGroup expand/collapse** — one classic `progress` value; the trigger glyph rotates 0→45°, the
|
|
165
|
+
scrim fades, and each action row reveals over its own slice of that same value.
|
|
166
|
+
- **The action stagger is decorative** (`motion.decorative`, high tier only). It is expressed as a
|
|
167
|
+
per-row interpolation *window* (`resolveFabGroupActionWindow`), not per-row animations: no extra
|
|
168
|
+
timers or `Animated.Value`s, and it reverses correctly on close. On low/mid tier every row shares
|
|
169
|
+
the full `[0, 1]` window and the rows reveal together.
|
|
170
|
+
- **Action rows nest two animation systems**: an outer classic-`Animated.View` reveal (opacity +
|
|
171
|
+
translateY, tied to `progress`) wraps the inner `usePressState`-driven `AnimatedPressable` — the
|
|
172
|
+
two fades compose by nesting instead of `Animated.multiply`.
|
|
173
|
+
- In-flight animations are stopped on effect cleanup and on unmount.
|
|
174
|
+
|
|
175
|
+
## Performance
|
|
176
|
+
|
|
177
|
+
Both wrapped in `React.memo`. `toggle`/`closeGroup`/`requestExpandedChange`/`runAction` are
|
|
178
|
+
`useCallback`'d, and each action row is its own `React.memo`'d `FabGroupActionRow` with a stable
|
|
179
|
+
`onSelect` — the per-row `onPress` closure, tone lookup and style arrays are no longer rebuilt on
|
|
180
|
+
every parent render. The reversed row list is `useMemo`'d. The action stack and scrim are built only
|
|
181
|
+
while `mounted` (never while the trigger alone is on screen), matching Menu/Select/Drawer's
|
|
182
|
+
identical "sheet content built only while open" convention.
|
|
183
|
+
|
|
184
|
+
## Modernization (v1.0.7)
|
|
185
|
+
|
|
186
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
187
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
188
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
189
|
+
|
|
190
|
+
- **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
|
|
191
|
+
- **Round 5 (Android parity + press unification)** — Fab, the trigger, and action rows switched from
|
|
192
|
+
hand-rolled classic-`Animated` press timing to the shared `usePressState`; `android_ripple` added
|
|
193
|
+
everywhere it was missing (`borderless: true` on the two circular icon-only targets, `false`
|
|
194
|
+
elsewhere); the trigger gained a press-state overlay matching Fab's own.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Public surface of `pixelize-native-library/fab`. Value exports and type exports are split for
|
|
5
|
+
* `verbatimModuleSyntax`. The resolvers stay internal — a consumer configures a Fab/FabGroup through
|
|
6
|
+
* their props, never by importing internals.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { Fab } from "./Fab.js";
|
|
10
|
+
export { FabGroup } from "./FabGroup.js";
|
|
11
|
+
|
|
12
|
+
// Re-exported so a caller can type an `icon`/action `icon` prop without a separate import from `core/icon`.
|
|
13
|
+
//# sourceMappingURL=index.js.map
|