pixelize-native-library 1.0.6 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/core/MODULE.md +129 -36
- package/lib/module/core/a11y/MODULE.md +127 -4
- package/lib/module/core/a11y/announce.js +30 -0
- package/lib/module/core/a11y/announce.web.js +134 -0
- package/lib/module/core/a11y/index.js +81 -15
- package/lib/module/core/a11y/keyboard.js +42 -0
- package/lib/module/core/a11y/keyboard.web.js +229 -0
- package/lib/module/core/a11y/labels.js +24 -0
- package/lib/module/core/device/MODULE.md +47 -0
- package/lib/module/core/device/index.js +91 -0
- package/lib/module/core/heading/MODULE.md +38 -0
- package/lib/module/core/heading/index.js +45 -0
- package/lib/module/core/icon/Icon.js +37 -0
- package/lib/module/core/icon/MODULE.md +42 -8
- package/lib/module/core/icon/icons/arrow-down.js +10 -0
- package/lib/module/core/icon/icons/arrow-left.js +10 -0
- package/lib/module/core/icon/icons/arrow-right.js +10 -0
- package/lib/module/core/icon/icons/arrow-up.js +10 -0
- package/lib/module/core/icon/icons/at-sign.js +10 -0
- package/lib/module/core/icon/icons/bell.js +10 -0
- package/lib/module/core/icon/icons/bold.js +10 -0
- package/lib/module/core/icon/icons/building-2.js +10 -0
- package/lib/module/core/icon/icons/calendar.js +10 -0
- package/lib/module/core/icon/icons/chart-column.js +10 -0
- package/lib/module/core/icon/icons/check.js +10 -0
- package/lib/module/core/icon/icons/chevron-down.js +10 -0
- package/lib/module/core/icon/icons/chevron-left.js +10 -0
- package/lib/module/core/icon/icons/chevron-right.js +10 -0
- package/lib/module/core/icon/icons/chevron-up.js +10 -0
- package/lib/module/core/icon/icons/chevrons-left.js +10 -0
- package/lib/module/core/icon/icons/chevrons-right.js +10 -0
- package/lib/module/core/icon/icons/chevrons-up-down.js +10 -0
- package/lib/module/core/icon/icons/circle-alert.js +10 -0
- package/lib/module/core/icon/icons/circle-check.js +10 -0
- package/lib/module/core/icon/icons/clock.js +10 -0
- package/lib/module/core/icon/icons/code.js +10 -0
- package/lib/module/core/icon/icons/download.js +10 -0
- package/lib/module/core/icon/icons/external-link.js +10 -0
- package/lib/module/core/icon/icons/eye.js +10 -0
- package/lib/module/core/icon/icons/file-text.js +10 -0
- package/lib/module/core/icon/icons/filter.js +10 -0
- package/lib/module/core/icon/icons/flag.js +10 -0
- package/lib/module/core/icon/icons/folder.js +10 -0
- package/lib/module/core/icon/icons/heading-1.js +10 -0
- package/lib/module/core/icon/icons/heading-2.js +10 -0
- package/lib/module/core/icon/icons/heading-3.js +10 -0
- package/lib/module/core/icon/icons/image.js +10 -0
- package/lib/module/core/icon/icons/inbox.js +10 -0
- package/lib/module/core/icon/icons/info.js +10 -0
- package/lib/module/core/icon/icons/italic.js +10 -0
- package/lib/module/core/icon/icons/kanban.js +10 -0
- package/lib/module/core/icon/icons/layers.js +10 -0
- package/lib/module/core/icon/icons/layout-dashboard.js +10 -0
- package/lib/module/core/icon/icons/layout-template.js +10 -0
- package/lib/module/core/icon/icons/life-buoy.js +10 -0
- package/lib/module/core/icon/icons/link.js +10 -0
- package/lib/module/core/icon/icons/list-checks.js +10 -0
- package/lib/module/core/icon/icons/list-ordered.js +10 -0
- package/lib/module/core/icon/icons/list-todo.js +10 -0
- package/lib/module/core/icon/icons/list.js +10 -0
- package/lib/module/core/icon/icons/log-out.js +10 -0
- package/lib/module/core/icon/icons/map.js +10 -0
- package/lib/module/core/icon/icons/message-square.js +10 -0
- package/lib/module/core/icon/icons/milestone.js +10 -0
- package/lib/module/core/icon/icons/minus.js +10 -0
- package/lib/module/core/icon/icons/more-horizontal.js +10 -0
- package/lib/module/core/icon/icons/paperclip.js +10 -0
- package/lib/module/core/icon/icons/pencil.js +10 -0
- package/lib/module/core/icon/icons/plus.js +10 -0
- package/lib/module/core/icon/icons/quote.js +10 -0
- package/lib/module/core/icon/icons/refresh-cw.js +10 -0
- package/lib/module/core/icon/icons/save.js +10 -0
- package/lib/module/core/icon/icons/search.js +10 -0
- package/lib/module/core/icon/icons/send.js +10 -0
- package/lib/module/core/icon/icons/settings.js +10 -0
- package/lib/module/core/icon/icons/share.js +10 -0
- package/lib/module/core/icon/icons/square-code.js +10 -0
- package/lib/module/core/icon/icons/star.js +10 -0
- package/lib/module/core/icon/icons/strikethrough.js +10 -0
- package/lib/module/core/icon/icons/tag.js +10 -0
- package/lib/module/core/icon/icons/trash.js +10 -0
- package/lib/module/core/icon/icons/triangle-alert.js +10 -0
- package/lib/module/core/icon/icons/underline.js +10 -0
- package/lib/module/core/icon/icons/upload.js +10 -0
- package/lib/module/core/icon/icons/user.js +10 -0
- package/lib/module/core/icon/icons/users.js +10 -0
- package/lib/module/core/icon/icons/x.js +10 -0
- package/lib/module/core/icon/index.js +4 -86
- package/lib/module/core/icon/names.js +2 -0
- package/lib/module/core/icon/resolve.js +158 -0
- package/lib/module/core/icon/types.js +4 -0
- package/lib/module/core/list/VirtualList.js +226 -0
- package/lib/module/core/list/index.js +4 -0
- package/lib/module/core/media/MediaImage.js +51 -0
- package/lib/module/core/media/expoImage.js +20 -0
- package/lib/module/core/media/index.js +6 -0
- package/lib/module/core/media/pickers.js +23 -0
- package/lib/module/core/motion/MODULE.md +101 -0
- package/lib/module/core/motion/config.js +112 -0
- package/lib/module/core/motion/index.js +7 -0
- package/lib/module/core/motion/presets.js +192 -0
- package/lib/module/core/motion/useAnimatedValue.js +19 -0
- package/lib/module/core/motion/useMotion.js +46 -0
- package/lib/module/core/style/index.js +2 -0
- package/lib/module/core/style/sx.js +76 -0
- package/lib/module/core/style/useThemedStyles.js +8 -0
- package/lib/module/index.js +70 -2
- package/lib/module/modules/accordion/Accordion.js +256 -87
- package/lib/module/modules/accordion/Accordion.variants.js +2 -4
- package/lib/module/modules/accordion/MODULE.md +35 -11
- package/lib/module/modules/alert-dialog/AlertDialog.js +1 -1
- package/lib/module/modules/alert-dialog/MODULE.md +11 -2
- package/lib/module/modules/app-bar/AppBar.js +179 -0
- package/lib/module/modules/app-bar/AppBar.variants.js +72 -0
- package/lib/module/modules/app-bar/MODULE.md +68 -0
- package/lib/module/modules/app-bar/index.js +10 -0
- package/lib/module/modules/avatar/Avatar.js +38 -18
- package/lib/module/modules/avatar/Avatar.variants.js +44 -3
- package/lib/module/modules/avatar/MODULE.md +37 -15
- package/lib/module/modules/avatar-group/AvatarGroup.js +77 -0
- package/lib/module/modules/avatar-group/AvatarGroup.variants.js +109 -0
- package/lib/module/modules/avatar-group/MODULE.md +28 -0
- package/lib/module/modules/avatar-group/index.js +10 -0
- package/lib/module/modules/badge/Badge.js +3 -2
- package/lib/module/modules/badge/Badge.variants.js +12 -2
- package/lib/module/modules/badge/MODULE.md +6 -0
- package/lib/module/modules/banner/Banner.js +135 -0
- package/lib/module/modules/banner/Banner.variants.js +118 -0
- package/lib/module/modules/banner/MODULE.md +113 -0
- package/lib/module/modules/banner/index.js +4 -0
- package/lib/module/modules/bottom-nav/BottomNav.js +38 -117
- package/lib/module/modules/bottom-nav/BottomNav.variants.js +93 -9
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +123 -0
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +146 -120
- package/lib/module/modules/bottom-nav/BottomNavTab.js +138 -0
- package/lib/module/modules/bottom-nav/MODULE.md +45 -15
- package/lib/module/modules/bottom-sheet/BottomSheet.js +189 -0
- package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +49 -0
- package/lib/module/modules/bottom-sheet/MODULE.md +53 -0
- package/lib/module/modules/bottom-sheet/index.js +4 -0
- package/lib/module/modules/button/Button.js +98 -47
- package/lib/module/modules/button/Button.variants.js +12 -7
- package/lib/module/modules/button/MODULE.md +25 -3
- package/lib/module/modules/button-group/ButtonGroup.js +163 -55
- package/lib/module/modules/button-group/ButtonGroup.variants.js +30 -4
- package/lib/module/modules/button-group/MODULE.md +33 -7
- package/lib/module/modules/card/Card.js +10 -7
- package/lib/module/modules/card/MODULE.md +6 -0
- package/lib/module/modules/charts/BarChart.js +242 -0
- package/lib/module/modules/charts/BarList.js +129 -0
- package/lib/module/modules/charts/ChartLegend.js +154 -0
- package/lib/module/modules/charts/Charts.variants.js +582 -0
- package/lib/module/modules/charts/DonutChart.js +133 -0
- package/lib/module/modules/charts/LineChart.js +179 -0
- package/lib/module/modules/charts/MODULE.md +178 -0
- package/lib/module/modules/charts/PieChart.js +140 -0
- package/lib/module/modules/charts/Sparkline.js +80 -0
- package/lib/module/modules/charts/index.js +15 -0
- package/lib/module/modules/checkbox/Checkbox.js +114 -44
- package/lib/module/modules/checkbox/Checkbox.variants.js +13 -8
- package/lib/module/modules/checkbox/MODULE.md +35 -8
- package/lib/module/modules/chip/Chip.js +155 -0
- package/lib/module/modules/chip/Chip.variants.js +278 -0
- package/lib/module/modules/chip/ChipGroup.js +48 -0
- package/lib/module/modules/chip/MODULE.md +156 -0
- package/lib/module/modules/chip/index.js +13 -0
- package/lib/module/modules/combobox/Combobox.js +587 -0
- package/lib/module/modules/combobox/Combobox.variants.js +280 -0
- package/lib/module/modules/combobox/MODULE.md +183 -0
- package/lib/module/modules/combobox/comboboxKeys.js +19 -0
- package/lib/module/modules/combobox/comboboxKeys.web.js +76 -0
- package/lib/module/modules/combobox/index.js +13 -0
- package/lib/module/modules/composer/Composer.js +156 -0
- package/lib/module/modules/composer/Composer.variants.js +42 -0
- package/lib/module/modules/composer/MODULE.md +70 -0
- package/lib/module/modules/composer/index.js +4 -0
- package/lib/module/modules/copy-button/CopyButton.js +156 -0
- package/lib/module/modules/copy-button/CopyButton.variants.js +86 -0
- package/lib/module/modules/copy-button/MODULE.md +73 -0
- package/lib/module/modules/copy-button/index.js +4 -0
- package/lib/module/modules/data-table/DataTable.js +513 -0
- package/lib/module/modules/data-table/DataTable.variants.js +188 -0
- package/lib/module/modules/data-table/MODULE.md +145 -0
- package/lib/module/modules/data-table/index.js +10 -0
- package/lib/module/modules/date-picker/Calendar.js +368 -0
- package/lib/module/modules/date-picker/Calendar.keys.js +23 -0
- package/lib/module/modules/date-picker/Calendar.keys.web.js +83 -0
- package/lib/module/modules/date-picker/DatePicker.js +162 -0
- package/lib/module/modules/date-picker/DatePicker.variants.js +686 -0
- package/lib/module/modules/date-picker/DateRangePicker.js +87 -0
- package/lib/module/modules/date-picker/MODULE.md +169 -0
- package/lib/module/modules/date-picker/PickerField.js +142 -0
- package/lib/module/modules/date-picker/PickerShell.js +132 -0
- package/lib/module/modules/date-picker/TimePicker.js +184 -0
- package/lib/module/modules/date-picker/index.js +14 -0
- package/lib/module/modules/divider/Divider.js +8 -7
- package/lib/module/modules/divider/MODULE.md +6 -0
- package/lib/module/modules/drawer/Drawer.js +140 -58
- package/lib/module/modules/drawer/Drawer.variants.js +3 -16
- package/lib/module/modules/drawer/MODULE.md +90 -118
- package/lib/module/modules/empty-state/EmptyState.js +32 -18
- package/lib/module/modules/empty-state/EmptyState.variants.js +9 -0
- package/lib/module/modules/empty-state/MODULE.md +25 -7
- package/lib/module/modules/fab/Fab.js +212 -0
- package/lib/module/modules/fab/Fab.variants.js +346 -0
- package/lib/module/modules/fab/FabGroup.js +334 -0
- package/lib/module/modules/fab/MODULE.md +181 -0
- package/lib/module/modules/fab/index.js +13 -0
- package/lib/module/modules/file-grid/FileGrid.js +149 -0
- package/lib/module/modules/file-grid/FileGrid.variants.js +51 -0
- package/lib/module/modules/file-grid/MODULE.md +12 -0
- package/lib/module/modules/file-grid/index.js +4 -0
- package/lib/module/modules/file-upload/FileUpload.js +124 -34
- package/lib/module/modules/file-upload/FileUpload.variants.js +50 -7
- package/lib/module/modules/file-upload/MODULE.md +22 -4
- package/lib/module/modules/filter-sheet/FilterChip.js +25 -19
- package/lib/module/modules/filter-sheet/FilterSheet.js +17 -11
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js +24 -5
- package/lib/module/modules/filter-sheet/FilterSheetBody.js +168 -82
- package/lib/module/modules/filter-sheet/MODULE.md +22 -1
- package/lib/module/modules/folder-row/FolderRow.js +132 -0
- package/lib/module/modules/folder-row/FolderRow.variants.js +49 -0
- package/lib/module/modules/folder-row/MODULE.md +71 -0
- package/lib/module/modules/folder-row/index.js +4 -0
- package/lib/module/modules/form-field/FormField.js +104 -0
- package/lib/module/modules/form-field/FormField.variants.js +88 -0
- package/lib/module/modules/form-field/MODULE.md +103 -0
- package/lib/module/modules/form-field/index.js +4 -0
- package/lib/module/modules/gantt/Gantt.js +218 -0
- package/lib/module/modules/gantt/Gantt.variants.js +141 -0
- package/lib/module/modules/gantt/MODULE.md +71 -0
- package/lib/module/modules/gantt/index.js +5 -0
- package/lib/module/modules/image-viewer/ImageViewer.js +235 -0
- package/lib/module/modules/image-viewer/ImageViewer.variants.js +6 -0
- package/lib/module/modules/image-viewer/MODULE.md +57 -0
- package/lib/module/modules/image-viewer/index.js +4 -0
- package/lib/module/modules/input/Input.js +106 -48
- package/lib/module/modules/input/Input.variants.js +18 -4
- package/lib/module/modules/input/MODULE.md +36 -6
- package/lib/module/modules/limit-reached-modal/LimitReachedModal.js +90 -0
- package/lib/module/modules/limit-reached-modal/LimitReachedModal.variants.js +108 -0
- package/lib/module/modules/limit-reached-modal/MODULE.md +94 -0
- package/lib/module/modules/limit-reached-modal/index.js +11 -0
- package/lib/module/modules/list-item/ListItem.js +92 -0
- package/lib/module/modules/list-item/ListItem.variants.js +53 -0
- package/lib/module/modules/list-item/MODULE.md +53 -0
- package/lib/module/modules/list-item/index.js +10 -0
- package/lib/module/modules/markdown/MODULE.md +71 -0
- package/lib/module/modules/markdown/Markdown.js +183 -0
- package/lib/module/modules/markdown/Markdown.variants.js +73 -0
- package/lib/module/modules/markdown/index.js +11 -0
- package/lib/module/modules/markdown/parseMarkdown.js +153 -0
- package/lib/module/modules/menu/MODULE.md +45 -14
- package/lib/module/modules/menu/Menu.js +174 -65
- package/lib/module/modules/menu/Menu.variants.js +10 -0
- package/lib/module/modules/message-bubble/MODULE.md +38 -0
- package/lib/module/modules/message-bubble/MessageBubble.js +55 -0
- package/lib/module/modules/message-bubble/MessageBubble.variants.js +57 -0
- package/lib/module/modules/message-bubble/index.js +4 -0
- package/lib/module/modules/modal/MODULE.md +29 -3
- package/lib/module/modules/modal/Modal.js +72 -22
- package/lib/module/modules/more-items/MODULE.md +72 -0
- package/lib/module/modules/more-items/MoreItems.js +162 -0
- package/lib/module/modules/more-items/MoreItems.variants.js +80 -0
- package/lib/module/modules/more-items/index.js +4 -0
- package/lib/module/modules/multi-select/MODULE.md +85 -19
- package/lib/module/modules/multi-select/MultiSelect.js +217 -105
- package/lib/module/modules/multi-select/MultiSelect.variants.js +28 -5
- package/lib/module/modules/number-input/MODULE.md +39 -5
- package/lib/module/modules/number-input/NumberInput.js +41 -11
- package/lib/module/modules/number-input/NumberInput.variants.js +39 -5
- package/lib/module/modules/org-switcher/MODULE.md +121 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.js +284 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +186 -0
- package/lib/module/modules/org-switcher/index.js +9 -0
- package/lib/module/modules/pagination/MODULE.md +163 -0
- package/lib/module/modules/pagination/Pagination.js +197 -0
- package/lib/module/modules/pagination/Pagination.variants.js +307 -0
- package/lib/module/modules/pagination/PaginationControls.js +193 -0
- package/lib/module/modules/pagination/index.js +15 -0
- package/lib/module/modules/pin-input/MODULE.md +29 -14
- package/lib/module/modules/pin-input/PinInput.js +111 -80
- package/lib/module/modules/pin-input/PinInput.variants.js +13 -5
- package/lib/module/modules/progress-bar/MODULE.md +17 -7
- package/lib/module/modules/progress-bar/ProgressBar.js +97 -56
- package/lib/module/modules/progress-bar/ProgressBar.variants.js +16 -18
- package/lib/module/modules/radio-group/MODULE.md +40 -14
- package/lib/module/modules/radio-group/RadioGroup.js +71 -7
- package/lib/module/modules/radio-group/RadioGroup.variants.js +46 -10
- package/lib/module/modules/reorder/MODULE.md +104 -97
- package/lib/module/modules/reorder/Reorder.js +233 -197
- package/lib/module/modules/reorder/Reorder.variants.js +35 -13
- package/lib/module/modules/rich-text/MODULE.md +52 -0
- package/lib/module/modules/rich-text/RichText.js +362 -0
- package/lib/module/modules/rich-text/RichText.variants.js +17 -0
- package/lib/module/modules/rich-text/index.js +5 -0
- package/lib/module/modules/rich-text/parseRichText.js +133 -0
- package/lib/module/modules/rich-text-editor/MODULE.md +225 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.js +413 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +316 -0
- package/lib/module/modules/rich-text-editor/index.js +10 -0
- package/lib/module/modules/screen/MODULE.md +57 -0
- package/lib/module/modules/screen/Screen.js +106 -0
- package/lib/module/modules/screen/Screen.variants.js +43 -0
- package/lib/module/modules/screen/index.js +10 -0
- package/lib/module/modules/search-bar/MODULE.md +114 -0
- package/lib/module/modules/search-bar/SearchBar.js +256 -0
- package/lib/module/modules/search-bar/SearchBar.variants.js +205 -0
- package/lib/module/modules/search-bar/index.js +12 -0
- package/lib/module/modules/section/MODULE.md +39 -0
- package/lib/module/modules/section/Section.js +42 -0
- package/lib/module/modules/section/Section.variants.js +29 -0
- package/lib/module/modules/section/index.js +10 -0
- package/lib/module/modules/section-list/MODULE.md +18 -0
- package/lib/module/modules/section-list/SectionList.js +64 -0
- package/lib/module/modules/section-list/SectionList.variants.js +11 -0
- package/lib/module/modules/section-list/index.js +4 -0
- package/lib/module/modules/segmented-control/MODULE.md +124 -0
- package/lib/module/modules/segmented-control/SegmentedControl.js +158 -0
- package/lib/module/modules/segmented-control/SegmentedControl.variants.js +167 -0
- package/lib/module/modules/segmented-control/index.js +13 -0
- package/lib/module/modules/select/MODULE.md +82 -15
- package/lib/module/modules/select/Select.js +201 -96
- package/lib/module/modules/select/Select.variants.js +39 -5
- package/lib/module/modules/skeleton/MODULE.md +27 -7
- package/lib/module/modules/skeleton/Skeleton.js +52 -38
- package/lib/module/modules/skeleton/Skeleton.variants.js +9 -8
- package/lib/module/modules/slider/MODULE.md +31 -5
- package/lib/module/modules/slider/Slider.js +67 -10
- package/lib/module/modules/slider/Slider.variants.js +60 -13
- package/lib/module/modules/spinner/MODULE.md +16 -6
- package/lib/module/modules/spinner/Spinner.js +20 -16
- package/lib/module/modules/spinner/Spinner.variants.js +5 -3
- package/lib/module/modules/stage-progress/MODULE.md +64 -0
- package/lib/module/modules/stage-progress/StageProgress.js +174 -0
- package/lib/module/modules/stage-progress/StageProgress.variants.js +164 -0
- package/lib/module/modules/stage-progress/index.js +4 -0
- package/lib/module/modules/stat-tile/MODULE.md +51 -0
- package/lib/module/modules/stat-tile/StatTile.js +124 -0
- package/lib/module/modules/stat-tile/StatTile.variants.js +57 -0
- package/lib/module/modules/stat-tile/index.js +10 -0
- package/lib/module/modules/state-block/MODULE.md +52 -0
- package/lib/module/modules/state-block/StateBlock.js +131 -0
- package/lib/module/modules/state-block/StateBlock.variants.js +55 -0
- package/lib/module/modules/state-block/index.js +10 -0
- package/lib/module/modules/stepper/MODULE.md +33 -6
- package/lib/module/modules/stepper/Stepper.js +108 -39
- package/lib/module/modules/stepper/Stepper.variants.js +6 -6
- package/lib/module/modules/swipeable-row/MODULE.md +120 -0
- package/lib/module/modules/swipeable-row/SwipeableRow.js +244 -0
- package/lib/module/modules/swipeable-row/SwipeableRow.variants.js +80 -0
- package/lib/module/modules/swipeable-row/index.js +4 -0
- package/lib/module/modules/switch/MODULE.md +14 -0
- package/lib/module/modules/switch/Switch.js +1 -1
- package/lib/module/modules/switch/Switch.variants.js +8 -0
- package/lib/module/modules/tabs/MODULE.md +47 -13
- package/lib/module/modules/tabs/Tabs.js +121 -72
- package/lib/module/modules/tabs/Tabs.variants.js +30 -8
- package/lib/module/modules/text/MODULE.md +51 -0
- package/lib/module/modules/text/Text.js +47 -0
- package/lib/module/modules/text/Text.variants.js +98 -0
- package/lib/module/modules/text/index.js +4 -0
- package/lib/module/modules/textarea/MODULE.md +29 -13
- package/lib/module/modules/textarea/Textarea.js +90 -45
- package/lib/module/modules/textarea/Textarea.variants.js +14 -9
- package/lib/module/modules/timeline/MODULE.md +49 -8
- package/lib/module/modules/timeline/Timeline.js +151 -74
- package/lib/module/modules/timeline/Timeline.variants.js +13 -0
- package/lib/module/modules/toast/MODULE.md +66 -7
- package/lib/module/modules/toast/Toast.js +93 -27
- package/lib/module/modules/toast/Toast.variants.js +37 -1
- package/lib/module/modules/toast/toastScreenReader.js +69 -0
- package/lib/module/modules/tooltip/MODULE.md +78 -28
- package/lib/module/modules/tooltip/Tooltip.js +93 -43
- package/lib/module/modules/tooltip/Tooltip.variants.js +3 -4
- package/lib/module/modules/typing-indicator/MODULE.md +48 -0
- package/lib/module/modules/typing-indicator/TypingIndicator.js +98 -0
- package/lib/module/modules/typing-indicator/TypingIndicator.variants.js +55 -0
- package/lib/module/modules/typing-indicator/index.js +4 -0
- package/lib/module/modules/unread-badge/MODULE.md +20 -0
- package/lib/module/modules/unread-badge/UnreadBadge.js +45 -0
- package/lib/module/modules/unread-badge/UnreadBadge.variants.js +66 -0
- package/lib/module/modules/unread-badge/index.js +4 -0
- package/lib/module/test/mocks/flashList.js +5 -0
- package/lib/module/test/perfHelpers.js +18 -0
- package/lib/module/theme/MODULE.md +6 -0
- package/lib/module/theme/hooks.js +11 -0
- package/lib/module/theme/index.js +3 -6
- package/lib/module/theme/platform/MODULE.md +6 -0
- package/lib/module/theme/platform/motion.native.js +15 -0
- package/lib/module/theme/provider/PixelizeProvider.js +9 -47
- package/lib/module/theme/provider/ThemeContext.js +6 -0
- package/lib/module/theme/provider/colorModeStorage.js +2 -2
- package/lib/module/theme/provider/index.js +1 -0
- package/lib/module/theme/provider/loadPalette.js +75 -0
- package/lib/module/theme/provider/types.js +4 -0
- package/lib/module/theme/provider/useTheme.js +1 -2
- package/lib/module/theme/provider/useThemeMode.js +1 -1
- package/lib/module/theme/tokens/builders/accentText.js +9 -0
- package/lib/module/theme/tokens/roles/index.js +9 -3
- package/lib/typescript/core/a11y/announce.d.ts +20 -0
- package/lib/typescript/core/a11y/announce.web.d.ts +27 -0
- package/lib/typescript/core/a11y/index.d.ts +21 -2
- package/lib/typescript/core/a11y/keyboard.d.ts +45 -0
- package/lib/typescript/core/a11y/keyboard.web.d.ts +69 -0
- package/lib/typescript/core/a11y/labels.d.ts +19 -0
- package/lib/typescript/core/device/index.d.ts +16 -0
- package/lib/typescript/core/heading/index.d.ts +45 -0
- package/lib/typescript/core/icon/Icon.d.ts +18 -0
- package/lib/typescript/core/icon/icons/arrow-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-up.d.ts +3 -0
- package/lib/typescript/core/icon/icons/at-sign.d.ts +3 -0
- package/lib/typescript/core/icon/icons/bell.d.ts +3 -0
- package/lib/typescript/core/icon/icons/bold.d.ts +3 -0
- package/lib/typescript/core/icon/icons/building-2.d.ts +3 -0
- package/lib/typescript/core/icon/icons/calendar.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chart-column.d.ts +3 -0
- package/lib/typescript/core/icon/icons/check.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-up.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-up-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/circle-alert.d.ts +3 -0
- package/lib/typescript/core/icon/icons/circle-check.d.ts +3 -0
- package/lib/typescript/core/icon/icons/clock.d.ts +3 -0
- package/lib/typescript/core/icon/icons/code.d.ts +3 -0
- package/lib/typescript/core/icon/icons/download.d.ts +3 -0
- package/lib/typescript/core/icon/icons/external-link.d.ts +3 -0
- package/lib/typescript/core/icon/icons/eye.d.ts +3 -0
- package/lib/typescript/core/icon/icons/file-text.d.ts +3 -0
- package/lib/typescript/core/icon/icons/filter.d.ts +3 -0
- package/lib/typescript/core/icon/icons/flag.d.ts +3 -0
- package/lib/typescript/core/icon/icons/folder.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-1.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-2.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-3.d.ts +3 -0
- package/lib/typescript/core/icon/icons/image.d.ts +3 -0
- package/lib/typescript/core/icon/icons/inbox.d.ts +3 -0
- package/lib/typescript/core/icon/icons/info.d.ts +3 -0
- package/lib/typescript/core/icon/icons/italic.d.ts +3 -0
- package/lib/typescript/core/icon/icons/kanban.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layers.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layout-dashboard.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layout-template.d.ts +3 -0
- package/lib/typescript/core/icon/icons/life-buoy.d.ts +3 -0
- package/lib/typescript/core/icon/icons/link.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-checks.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-ordered.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-todo.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list.d.ts +3 -0
- package/lib/typescript/core/icon/icons/log-out.d.ts +3 -0
- package/lib/typescript/core/icon/icons/map.d.ts +3 -0
- package/lib/typescript/core/icon/icons/message-square.d.ts +3 -0
- package/lib/typescript/core/icon/icons/milestone.d.ts +3 -0
- package/lib/typescript/core/icon/icons/minus.d.ts +3 -0
- package/lib/typescript/core/icon/icons/more-horizontal.d.ts +3 -0
- package/lib/typescript/core/icon/icons/paperclip.d.ts +3 -0
- package/lib/typescript/core/icon/icons/pencil.d.ts +3 -0
- package/lib/typescript/core/icon/icons/plus.d.ts +3 -0
- package/lib/typescript/core/icon/icons/quote.d.ts +3 -0
- package/lib/typescript/core/icon/icons/refresh-cw.d.ts +3 -0
- package/lib/typescript/core/icon/icons/save.d.ts +3 -0
- package/lib/typescript/core/icon/icons/search.d.ts +3 -0
- package/lib/typescript/core/icon/icons/send.d.ts +3 -0
- package/lib/typescript/core/icon/icons/settings.d.ts +3 -0
- package/lib/typescript/core/icon/icons/share.d.ts +3 -0
- package/lib/typescript/core/icon/icons/square-code.d.ts +3 -0
- package/lib/typescript/core/icon/icons/star.d.ts +3 -0
- package/lib/typescript/core/icon/icons/strikethrough.d.ts +3 -0
- package/lib/typescript/core/icon/icons/tag.d.ts +3 -0
- package/lib/typescript/core/icon/icons/trash.d.ts +3 -0
- package/lib/typescript/core/icon/icons/triangle-alert.d.ts +3 -0
- package/lib/typescript/core/icon/icons/underline.d.ts +3 -0
- package/lib/typescript/core/icon/icons/upload.d.ts +3 -0
- package/lib/typescript/core/icon/icons/user.d.ts +3 -0
- package/lib/typescript/core/icon/icons/users.d.ts +3 -0
- package/lib/typescript/core/icon/icons/x.d.ts +3 -0
- package/lib/typescript/core/icon/index.d.ts +6 -57
- package/lib/typescript/core/icon/names.d.ts +2 -0
- package/lib/typescript/core/icon/resolve.d.ts +4 -0
- package/lib/typescript/core/icon/types.d.ts +13 -0
- package/lib/typescript/core/list/VirtualList.d.ts +55 -0
- package/lib/typescript/core/list/index.d.ts +3 -0
- package/lib/typescript/core/media/MediaImage.d.ts +28 -0
- package/lib/typescript/core/media/expoImage.d.ts +14 -0
- package/lib/typescript/core/media/index.d.ts +7 -0
- package/lib/typescript/core/media/pickers.d.ts +27 -0
- package/lib/typescript/core/motion/config.d.ts +56 -0
- package/lib/typescript/core/motion/index.d.ts +8 -0
- package/lib/typescript/core/motion/presets.d.ts +49 -0
- package/lib/typescript/core/motion/useAnimatedValue.d.ts +11 -0
- package/lib/typescript/core/motion/useMotion.d.ts +34 -0
- package/lib/typescript/core/style/index.d.ts +3 -0
- package/lib/typescript/core/style/sx.d.ts +86 -0
- package/lib/typescript/core/style/useThemedStyles.d.ts +5 -0
- package/lib/typescript/index.d.ts +134 -2
- package/lib/typescript/modules/accordion/Accordion.d.ts +12 -23
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts +5 -5
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +1 -1
- package/lib/typescript/modules/app-bar/AppBar.d.ts +37 -0
- package/lib/typescript/modules/app-bar/AppBar.variants.d.ts +35 -0
- package/lib/typescript/modules/app-bar/index.d.ts +9 -0
- package/lib/typescript/modules/avatar/Avatar.d.ts +23 -3
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts +32 -1
- package/lib/typescript/modules/avatar/index.d.ts +1 -1
- package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +28 -0
- package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +75 -0
- package/lib/typescript/modules/avatar-group/index.d.ts +9 -0
- package/lib/typescript/modules/badge/Badge.d.ts +3 -1
- package/lib/typescript/modules/badge/Badge.variants.d.ts +8 -4
- package/lib/typescript/modules/banner/Banner.d.ts +35 -0
- package/lib/typescript/modules/banner/Banner.variants.d.ts +49 -0
- package/lib/typescript/modules/banner/index.d.ts +5 -0
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +14 -9
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +72 -9
- package/lib/typescript/modules/bottom-nav/BottomNavIconWithBadge.d.ts +25 -0
- package/lib/typescript/modules/bottom-nav/BottomNavTab.d.ts +34 -0
- package/lib/typescript/modules/bottom-sheet/BottomSheet.d.ts +29 -0
- package/lib/typescript/modules/bottom-sheet/BottomSheet.variants.d.ts +13 -0
- package/lib/typescript/modules/bottom-sheet/index.d.ts +3 -0
- package/lib/typescript/modules/button/Button.d.ts +21 -0
- package/lib/typescript/modules/button/Button.variants.d.ts +22 -9
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts +4 -2
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +18 -5
- package/lib/typescript/modules/card/Card.variants.d.ts +2 -2
- package/lib/typescript/modules/charts/BarChart.d.ts +26 -0
- package/lib/typescript/modules/charts/BarList.d.ts +18 -0
- package/lib/typescript/modules/charts/ChartLegend.d.ts +16 -0
- package/lib/typescript/modules/charts/Charts.variants.d.ts +225 -0
- package/lib/typescript/modules/charts/DonutChart.d.ts +21 -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/Sparkline.d.ts +13 -0
- package/lib/typescript/modules/charts/index.d.ts +19 -0
- package/lib/typescript/modules/checkbox/Checkbox.d.ts +4 -1
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +14 -9
- package/lib/typescript/modules/chip/Chip.d.ts +38 -0
- package/lib/typescript/modules/chip/Chip.variants.d.ts +198 -0
- package/lib/typescript/modules/chip/ChipGroup.d.ts +22 -0
- package/lib/typescript/modules/chip/index.d.ts +12 -0
- package/lib/typescript/modules/combobox/Combobox.d.ts +81 -0
- package/lib/typescript/modules/combobox/Combobox.variants.d.ts +212 -0
- package/lib/typescript/modules/combobox/comboboxKeys.d.ts +25 -0
- package/lib/typescript/modules/combobox/comboboxKeys.web.d.ts +23 -0
- package/lib/typescript/modules/combobox/index.d.ts +11 -0
- package/lib/typescript/modules/composer/Composer.d.ts +28 -0
- package/lib/typescript/modules/composer/Composer.variants.d.ts +7 -0
- package/lib/typescript/modules/composer/index.d.ts +3 -0
- package/lib/typescript/modules/copy-button/CopyButton.d.ts +21 -0
- package/lib/typescript/modules/copy-button/CopyButton.variants.d.ts +42 -0
- package/lib/typescript/modules/copy-button/index.d.ts +4 -0
- package/lib/typescript/modules/data-table/DataTable.d.ts +44 -0
- package/lib/typescript/modules/data-table/DataTable.variants.d.ts +118 -0
- package/lib/typescript/modules/data-table/index.d.ts +9 -0
- package/lib/typescript/modules/date-picker/Calendar.d.ts +42 -0
- package/lib/typescript/modules/date-picker/Calendar.keys.d.ts +19 -0
- package/lib/typescript/modules/date-picker/Calendar.keys.web.d.ts +35 -0
- package/lib/typescript/modules/date-picker/DatePicker.d.ts +40 -0
- package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +322 -0
- package/lib/typescript/modules/date-picker/DateRangePicker.d.ts +32 -0
- package/lib/typescript/modules/date-picker/PickerField.d.ts +26 -0
- package/lib/typescript/modules/date-picker/PickerShell.d.ts +29 -0
- package/lib/typescript/modules/date-picker/TimePicker.d.ts +20 -0
- package/lib/typescript/modules/date-picker/index.d.ts +16 -0
- package/lib/typescript/modules/divider/Divider.variants.d.ts +2 -2
- package/lib/typescript/modules/drawer/Drawer.d.ts +2 -1
- package/lib/typescript/modules/drawer/Drawer.variants.d.ts +4 -13
- package/lib/typescript/modules/empty-state/EmptyState.d.ts +7 -4
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +7 -1
- package/lib/typescript/modules/fab/Fab.d.ts +74 -0
- package/lib/typescript/modules/fab/Fab.variants.d.ts +229 -0
- package/lib/typescript/modules/fab/FabGroup.d.ts +66 -0
- package/lib/typescript/modules/fab/index.d.ts +12 -0
- package/lib/typescript/modules/file-grid/FileGrid.d.ts +26 -0
- package/lib/typescript/modules/file-grid/FileGrid.variants.d.ts +26 -0
- package/lib/typescript/modules/file-grid/index.d.ts +4 -0
- package/lib/typescript/modules/file-upload/FileUpload.d.ts +3 -0
- package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts +22 -5
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +30 -5
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +13 -8
- package/lib/typescript/modules/folder-row/FolderRow.d.ts +24 -0
- package/lib/typescript/modules/folder-row/FolderRow.variants.d.ts +29 -0
- package/lib/typescript/modules/folder-row/index.d.ts +3 -0
- package/lib/typescript/modules/form-field/FormField.d.ts +29 -0
- package/lib/typescript/modules/form-field/FormField.variants.d.ts +93 -0
- package/lib/typescript/modules/form-field/index.d.ts +4 -0
- package/lib/typescript/modules/gantt/Gantt.d.ts +19 -0
- package/lib/typescript/modules/gantt/Gantt.variants.d.ts +82 -0
- package/lib/typescript/modules/gantt/index.d.ts +5 -0
- package/lib/typescript/modules/image-viewer/ImageViewer.d.ts +27 -0
- package/lib/typescript/modules/image-viewer/ImageViewer.variants.d.ts +3 -0
- package/lib/typescript/modules/image-viewer/index.d.ts +3 -0
- package/lib/typescript/modules/input/Input.d.ts +9 -1
- package/lib/typescript/modules/input/Input.variants.d.ts +26 -6
- package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.d.ts +34 -0
- package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.variants.d.ts +46 -0
- package/lib/typescript/modules/limit-reached-modal/index.d.ts +10 -0
- package/lib/typescript/modules/list-item/ListItem.d.ts +21 -0
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts +29 -0
- package/lib/typescript/modules/list-item/index.d.ts +8 -0
- package/lib/typescript/modules/markdown/Markdown.d.ts +16 -0
- package/lib/typescript/modules/markdown/Markdown.variants.d.ts +33 -0
- package/lib/typescript/modules/markdown/index.d.ts +10 -0
- package/lib/typescript/modules/markdown/parseMarkdown.d.ts +44 -0
- package/lib/typescript/modules/menu/Menu.d.ts +8 -18
- package/lib/typescript/modules/menu/Menu.variants.d.ts +8 -1
- package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +25 -0
- package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +31 -0
- package/lib/typescript/modules/message-bubble/index.d.ts +4 -0
- package/lib/typescript/modules/modal/Modal.d.ts +12 -0
- package/lib/typescript/modules/modal/Modal.variants.d.ts +1 -1
- package/lib/typescript/modules/more-items/MoreItems.d.ts +15 -0
- package/lib/typescript/modules/more-items/MoreItems.variants.d.ts +30 -0
- package/lib/typescript/modules/more-items/index.d.ts +4 -0
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts +3 -12
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +24 -5
- package/lib/typescript/modules/number-input/NumberInput.d.ts +6 -0
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +57 -7
- package/lib/typescript/modules/org-switcher/OrgSwitcher.d.ts +44 -0
- package/lib/typescript/modules/org-switcher/OrgSwitcher.variants.d.ts +139 -0
- package/lib/typescript/modules/org-switcher/index.d.ts +8 -0
- package/lib/typescript/modules/pagination/Pagination.d.ts +45 -0
- package/lib/typescript/modules/pagination/Pagination.variants.d.ts +240 -0
- package/lib/typescript/modules/pagination/PaginationControls.d.ts +50 -0
- package/lib/typescript/modules/pagination/index.d.ts +14 -0
- package/lib/typescript/modules/pin-input/PinInput.d.ts +6 -0
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +22 -5
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +8 -4
- package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts +13 -15
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts +6 -0
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +32 -11
- package/lib/typescript/modules/reorder/Reorder.d.ts +28 -23
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts +25 -9
- package/lib/typescript/modules/rich-text/RichText.d.ts +15 -0
- package/lib/typescript/modules/rich-text/RichText.variants.d.ts +15 -0
- package/lib/typescript/modules/rich-text/index.d.ts +5 -0
- package/lib/typescript/modules/rich-text/parseRichText.d.ts +30 -0
- package/lib/typescript/modules/rich-text-editor/RichTextEditor.d.ts +62 -0
- package/lib/typescript/modules/rich-text-editor/RichTextEditor.variants.d.ts +139 -0
- package/lib/typescript/modules/rich-text-editor/index.d.ts +9 -0
- package/lib/typescript/modules/screen/Screen.d.ts +36 -0
- package/lib/typescript/modules/screen/Screen.variants.d.ts +21 -0
- package/lib/typescript/modules/screen/index.d.ts +9 -0
- package/lib/typescript/modules/search-bar/SearchBar.d.ts +47 -0
- package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +179 -0
- package/lib/typescript/modules/search-bar/index.d.ts +11 -0
- package/lib/typescript/modules/section/Section.d.ts +17 -0
- package/lib/typescript/modules/section/Section.variants.d.ts +12 -0
- package/lib/typescript/modules/section/index.d.ts +8 -0
- package/lib/typescript/modules/section-list/SectionList.d.ts +26 -0
- package/lib/typescript/modules/section-list/SectionList.variants.d.ts +3 -0
- package/lib/typescript/modules/section-list/index.d.ts +3 -0
- package/lib/typescript/modules/segmented-control/SegmentedControl.d.ts +45 -0
- package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +143 -0
- package/lib/typescript/modules/segmented-control/index.d.ts +11 -0
- package/lib/typescript/modules/select/Select.d.ts +3 -10
- package/lib/typescript/modules/select/Select.variants.d.ts +27 -5
- package/lib/typescript/modules/skeleton/Skeleton.d.ts +5 -0
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +10 -9
- package/lib/typescript/modules/slider/Slider.variants.d.ts +35 -14
- package/lib/typescript/modules/spinner/Spinner.variants.d.ts +6 -4
- package/lib/typescript/modules/stage-progress/StageProgress.d.ts +18 -0
- package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +98 -0
- package/lib/typescript/modules/stage-progress/index.d.ts +4 -0
- package/lib/typescript/modules/stat-tile/StatTile.d.ts +20 -0
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +36 -0
- package/lib/typescript/modules/stat-tile/index.d.ts +9 -0
- package/lib/typescript/modules/state-block/StateBlock.d.ts +51 -0
- package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +30 -0
- package/lib/typescript/modules/state-block/index.d.ts +10 -0
- package/lib/typescript/modules/stepper/Stepper.d.ts +4 -0
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts +7 -7
- package/lib/typescript/modules/swipeable-row/SwipeableRow.d.ts +35 -0
- package/lib/typescript/modules/swipeable-row/SwipeableRow.variants.d.ts +27 -0
- package/lib/typescript/modules/swipeable-row/index.d.ts +4 -0
- package/lib/typescript/modules/switch/Switch.variants.d.ts +9 -1
- package/lib/typescript/modules/tabs/Tabs.d.ts +8 -6
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts +20 -7
- package/lib/typescript/modules/text/Text.d.ts +23 -0
- package/lib/typescript/modules/text/Text.variants.d.ts +18 -0
- package/lib/typescript/modules/text/index.d.ts +4 -0
- package/lib/typescript/modules/textarea/Textarea.d.ts +5 -0
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts +15 -8
- package/lib/typescript/modules/timeline/Timeline.d.ts +11 -11
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts +17 -1
- package/lib/typescript/modules/toast/Toast.d.ts +13 -3
- package/lib/typescript/modules/toast/Toast.variants.d.ts +31 -3
- package/lib/typescript/modules/toast/index.d.ts +1 -1
- package/lib/typescript/modules/toast/toastScreenReader.d.ts +22 -0
- package/lib/typescript/modules/tooltip/Tooltip.d.ts +34 -11
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +4 -5
- package/lib/typescript/modules/typing-indicator/TypingIndicator.d.ts +28 -0
- package/lib/typescript/modules/typing-indicator/TypingIndicator.variants.d.ts +32 -0
- package/lib/typescript/modules/typing-indicator/index.d.ts +4 -0
- package/lib/typescript/modules/unread-badge/UnreadBadge.d.ts +15 -0
- package/lib/typescript/modules/unread-badge/UnreadBadge.variants.d.ts +56 -0
- package/lib/typescript/modules/unread-badge/index.d.ts +4 -0
- package/lib/typescript/test/mocks/flashList.d.ts +3 -0
- package/lib/typescript/test/perfHelpers.d.ts +9 -0
- package/lib/typescript/theme/hooks.d.ts +11 -0
- package/lib/typescript/theme/index.d.ts +3 -2
- package/lib/typescript/theme/platform/motion.native.d.ts +15 -0
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts +3 -80
- package/lib/typescript/theme/provider/ThemeContext.d.ts +4 -0
- package/lib/typescript/theme/provider/index.d.ts +2 -1
- package/lib/typescript/theme/provider/loadPalette.d.ts +9 -0
- package/lib/typescript/theme/provider/types.d.ts +41 -0
- package/lib/typescript/theme/provider/useTheme.d.ts +1 -2
- package/lib/typescript/theme/provider/useThemeMode.d.ts +1 -1
- package/lib/typescript/theme/tokens/builders/accentText.d.ts +6 -0
- package/lib/typescript/theme/tokens/roles/index.d.ts +7 -0
- package/package.json +209 -14
- package/registry.json +191 -1
- 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/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/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/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/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/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/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/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/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
|
@@ -18,17 +18,19 @@ context + a stateless helper with no React-tree footprint of its own, not a depe
|
|
|
18
18
|
|
|
19
19
|
| File | Role |
|
|
20
20
|
|------|------|
|
|
21
|
-
| `MultiSelect.tsx` | The component. Trigger + `Modal` composition, open/close state, immediate per-row toggling, focus handling. |
|
|
21
|
+
| `MultiSelect.tsx` | The component. Trigger + `Modal` composition, open/close state, immediate per-row toggling, focus handling. Option list is `core/list`'s `VirtualList` (device-tier windowing over FlashList-or-FlatList), built only while `open`. |
|
|
22
22
|
| `MultiSelect.variants.ts` | Pure resolvers (`MULTI_SELECT_SIZES`, `resolveMultiSelectTriggerColors`, `resolveMultiSelectRowColors`, `resolveMultiSelectAccessibility`) + the themed structural resolvers (`multiSelectTriggerStructure`, `multiSelectOverlayStructure`, `multiSelectSheetStructure`, `multiSelectHeaderStructure`, `multiSelectCloseButtonStructure`, `multiSelectRowStructure`, `multiSelectRowIndicatorStructure`). No React, no lucide. |
|
|
23
23
|
| `index.ts` | Public surface: `MultiSelect`, `MultiSelectProps`, `MultiSelectOption`, `MultiSelectSize`. |
|
|
24
24
|
| `__tests__/MultiSelect.test.ts` | Pure: WCAG contrast (all brands × modes) + touch target + a11y contract. |
|
|
25
|
-
| `__tests__/MultiSelect.render.test.tsx` | Render: trigger summary text, open/close, disabled gating, immediate toggling, per-row `checked` state, backdrop + close-button dismissal, and the web-portal opt-in branch (mocking `renderWebPortal`). |
|
|
25
|
+
| `__tests__/MultiSelect.render.test.tsx` | Render: trigger summary text, open/close, disabled gating, immediate toggling, per-row `checked` state, backdrop + close-button dismissal, the row's resolved 44dp `minHeight`, and the web-portal opt-in branch (mocking `renderWebPortal`). |
|
|
26
|
+
| `__tests__/MultiSelect.keyboard.test.tsx` | Web keyboard: roving tabindex, arrows/Home/End, Space toggling, Escape — plus that the identity-stable `toggleValue` still reads the latest `values`. |
|
|
27
|
+
| `__tests__/MultiSelect.motion.test.tsx` | Reduce-motion (WCAG 2.3.3): indicator check and press feedback snap to their final values, and `Animated.timing` is never called. |
|
|
26
28
|
|
|
27
29
|
## Props
|
|
28
30
|
|
|
29
31
|
| Prop | Type | Default | Notes |
|
|
30
32
|
|------|------|---------|-------|
|
|
31
|
-
| `options` | `{ label: string; value: string }[]` | — | Required. |
|
|
33
|
+
| `options` | `{ label: string; value: string; leading?: ReactNode }[]` | — | Required. `leading` is an optional fixed-size adornment (e.g. an avatar) rendered between the checkbox indicator and the row label — the ReactNode content-slot precedent set by `ListItem`'s `leading`. Rows only; the trigger keeps its text-only summary. |
|
|
32
34
|
| `values` | `string[]` | — | Required. The currently selected `value`s. |
|
|
33
35
|
| `onValuesChange` | `(values: string[]) => void` | — | Required. Fired immediately on row press with the next array — no separate Apply/Cancel. |
|
|
34
36
|
| `placeholder` | `string` | — | Shown when `values` is empty. |
|
|
@@ -36,7 +38,7 @@ context + a stateless helper with no React-tree footprint of its own, not a depe
|
|
|
36
38
|
| `disabled` | `boolean` | `false` | Blocks opening the sheet; dimmed like Select's disabled state. |
|
|
37
39
|
| `size` | `sm \| md \| lg` | `md` | 32 / 40 / 48 dp; short sizes reach 44 via `hitSlop`. |
|
|
38
40
|
| `containerStyle` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
|
|
39
|
-
| `testID` | `string` | — | Also seeds `${testID}-backdrop`, `${testID}-close`, and `${testID}-option-${value}
|
|
41
|
+
| `testID` | `string` | — | Also seeds `${testID}-backdrop`, `${testID}-close`, and `${testID}-option-${value}` (+ `-content` / `-check` on that row's animated nodes). |
|
|
40
42
|
|
|
41
43
|
No `icon` prop — the chevron/check/close glyphs are fixed to the component's own semantics, not
|
|
42
44
|
caller-configurable.
|
|
@@ -53,22 +55,25 @@ caller-configurable.
|
|
|
53
55
|
- **2.5.x target size** — the trigger reaches ≥ 44dp via `hitSlop` at every size; option rows have a
|
|
54
56
|
44dp `minHeight` directly (list items, not slop-expandable); the header close button reaches 44dp
|
|
55
57
|
via `hitSlop`.
|
|
56
|
-
- **4.1.2** — the trigger is `accessibilityRole="button"` with `
|
|
57
|
-
|
|
58
|
+
- **4.1.2** — the trigger is `accessibilityRole="button"` with flat `aria-expanded` tracking whether
|
|
59
|
+
the sheet is showing (never `accessibilityState={{…}}` — react-native-web discards the object
|
|
60
|
+
form, see `docs/PLATFORM-A11Y-PROPS.md`).
|
|
58
61
|
- **1.4.3** — trigger value/placeholder text, the field label, and option-row labels are measured
|
|
59
62
|
≥ 4.5:1 against their own fill (`bg.canvas` for the label, `bg.surface` for the trigger and every
|
|
60
63
|
row — row fill is constant across selection, see below).
|
|
61
64
|
- **1.4.11** — the trigger boundary (`border.interactive`, `border.focus` while focused/open), the
|
|
62
65
|
row indicator's unchecked outline, and its checked fill are each measured ≥ 3:1 against the sheet
|
|
63
66
|
fill.
|
|
64
|
-
- Each option row is `accessibilityRole="checkbox"` with `
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
- Each option row is `accessibilityRole="checkbox"` with flat `aria-checked`, toggled immediately on
|
|
68
|
+
press — the indicator box (outline when unchecked, `accent.solid` fill + "check" glyph when
|
|
69
|
+
checked) is the sighted echo of the same state, never the only signal.
|
|
67
70
|
- The header close button is `accessibilityRole="button"` with a fixed `accessibilityLabel="Close"`
|
|
68
71
|
(icon-only, hardcoded — not a caller-configurable slot); its icon shares the row label's colour
|
|
69
72
|
pairing, already measured ≥ 3:1 (in practice ≥ 4.5:1) on the sheet fill.
|
|
70
|
-
- **2.3.3** —
|
|
71
|
-
|
|
73
|
+
- **2.3.3** — RN's `Modal animationType` is always `"none"`; the reveal is `core/motion`'s
|
|
74
|
+
`useReveal`, which snaps to the final state (no tween) under reduce-motion. Row press feedback
|
|
75
|
+
and the indicator's check fade go through the same `motion.enabled` gate. Covered by
|
|
76
|
+
`__tests__/MultiSelect.motion.test.tsx`.
|
|
72
77
|
- Disabled is exempt from the contrast minimum (WCAG 1.4.3) — like Select, it's signalled by a
|
|
73
78
|
uniform `opacity: 0.5` dim rather than a separate, still-must-pass colour pair.
|
|
74
79
|
|
|
@@ -82,19 +87,80 @@ caller-configurable.
|
|
|
82
87
|
`accent.solid` / `accent.onSolid`) — duplicated locally, not imported: modules never import
|
|
83
88
|
across `src/modules/*`.
|
|
84
89
|
4. **Closed-ish surface** — `size` is a closed union; `options`/`values`/`onValuesChange` are the
|
|
85
|
-
data contract a multi-select inherently needs, not a colour escape hatch.
|
|
86
|
-
|
|
87
|
-
|
|
90
|
+
data contract a multi-select inherently needs, not a colour escape hatch. `containerStyle` is the
|
|
91
|
+
one `style` exception (a component wrapping a native primitive's outer box), not a second `style` prop.
|
|
92
|
+
|
|
93
|
+
## Keyboard (web)
|
|
94
|
+
|
|
95
|
+
Wired to `core/a11y/keyboard` (all no-ops on native). The option list is **one tab stop**: exactly one
|
|
96
|
+
row carries `tabIndex={0}` (`focusItemProps`) and the arrows / Home / End / typeahead move it
|
|
97
|
+
(`useRovingKeys` on the sheet, capture phase). Opening lands it on the **first **selected** option, not the
|
|
98
|
+
first (WCAG 2.4.3). Each row focuses itself when it becomes active — the tabindex alone only names
|
|
99
|
+
the tab stop, and `useFocusTrap` needs the focused node to still be tabbable or Tab escapes the
|
|
100
|
+
sheet. `useFocusTrap` also restores focus to the trigger on close; `useDismissOnEscape` closes on
|
|
101
|
+
Escape.
|
|
102
|
+
|
|
103
|
+
**`useRovingKeys` gets no `onActivate`.** RNW already presses a row on Enter, and Space is
|
|
104
|
+
supplied per row by `useSpaceActivation` (RNW's `isValidKeyPress` needs a `button` tag/role, which
|
|
105
|
+
`checkbox` deliberately is not) — passing `onActivate` too would toggle twice, i.e. not at all.
|
|
106
|
+
|
|
107
|
+
The list container is `MULTI_SELECT_LISTBOX_ROLE`: RN 0.86's role unions have no `listbox`, so the
|
|
108
|
+
widening is one audited cast in `MultiSelect.variants.ts` rather than a cast at the call site.
|
|
88
109
|
|
|
89
110
|
## Known gaps
|
|
90
111
|
|
|
91
|
-
- No search/filter — matches the spec this module was built against
|
|
92
|
-
separate module, not
|
|
93
|
-
- No per-option `disabled` — every row is togglable whenever the sheet is open; not requested by
|
|
94
|
-
this module's spec.
|
|
112
|
+
- No search/filter, no per-option `disabled` — matches the spec this module was built against; a
|
|
113
|
+
future `Combobox` would be a separate module, not props added here (closed-prop-contract).
|
|
95
114
|
- The trigger's focus ring is a border-colour swap (`border.focus`), same convention `Select`
|
|
96
115
|
documents as provisional pending a dedicated `Input` focus-ring reconciliation.
|
|
116
|
+
- The trigger summarises selection as text ("N selected"), not chips/tokens — so there is no
|
|
117
|
+
add/remove chip motion. A chip surface would be a new API, not a prop added here.
|
|
97
118
|
|
|
98
119
|
## Performance
|
|
99
120
|
|
|
100
|
-
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`).
|
|
121
|
+
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). The option
|
|
122
|
+
list is a `VirtualList`, not a full `.map()` in a `ScrollView` — a large roster only mounts rows near the
|
|
123
|
+
viewport — and the sheet is built only while `open`. Rows get `bg.sunken` press feedback
|
|
124
|
+
(`pressedRow`, same non-`bg.hover` reasoning as `RadioGroup`/`Accordion`), measured in `MultiSelect.test.ts`.
|
|
125
|
+
|
|
126
|
+
### Re-render contract (what keeps `MultiSelectOptionRow`'s `memo` alive)
|
|
127
|
+
|
|
128
|
+
- **Membership is O(1)** — `values` becomes a `useMemo`'d `Set`, so `renderItem` no longer runs
|
|
129
|
+
`values.includes(...)` per row (O(n·m) across the list).
|
|
130
|
+
- `resolveMultiSelect*Colors` / `resolveMultiSelectAccessibility` and the `multiSelect*Structure(theme)`
|
|
131
|
+
resolvers are `useMemo`'d on their real inputs. `rowColors` is a row prop — unmemoized it
|
|
132
|
+
re-rendered every visible row on any parent render, making the row memo dead.
|
|
133
|
+
- The single-selection `options.find(...)` is `useMemo`'d; `renderItem`/`keyExtractor`/`toggleValue`
|
|
134
|
+
and the focus/blur handlers are `useCallback`'d.
|
|
135
|
+
- **`toggleValue` reads `values` through a ref, so its identity never changes.** As a dependency it
|
|
136
|
+
was re-created on every toggle (`values` necessarily changes), which defeated `React.memo` on
|
|
137
|
+
*every* mounted row rather than just the one whose `checked` flipped. Virtualization caps that at
|
|
138
|
+
~10-20 wasted row renders per tap, each re-running four `useMemo`s — small, but free to remove.
|
|
139
|
+
`renderItem`'s own dependency on `selectedValues` is correct and stays.
|
|
140
|
+
- **`MultiSelectOption.leading` is rendered into a fixed slot** (`multiSelectRowLeadingStructure`).
|
|
141
|
+
An unconstrained consumer node could make a row taller than 44dp and falsify the list's
|
|
142
|
+
`getItemLayout` offsets; the slot keeps the uniform fast path true by construction.
|
|
143
|
+
- Style arrays feeding hot nodes (root container, trigger, sheet, header, label/value text) are
|
|
144
|
+
`useMemo`'d; the backdrop is a static `StyleSheet` entry. Inside the row, the row and indicator
|
|
145
|
+
structures are memoized so the `Pressable` style callback doesn't rebuild them per press-state flip.
|
|
146
|
+
|
|
147
|
+
## Motion
|
|
148
|
+
|
|
149
|
+
Via `core/motion` only — `opacity`/`transform`, native driver, all reduce-motion aware.
|
|
150
|
+
|
|
151
|
+
- **Row press** — `usePressMotion()`; the row's content `Animated.View` (which carries
|
|
152
|
+
`multiSelectRowStructure`, including the 44dp `minHeight`) scales/dips, while the `Pressable` keeps
|
|
153
|
+
the `pressedRow` background. `scale` is a transform, so the row's hit area is unaffected.
|
|
154
|
+
- **Indicator check glyph** — fades on toggle, but a row that mounts already-checked (scrolled into
|
|
155
|
+
view) snaps: a `skipFirst` ref suppresses the first effect run, so nothing animates during
|
|
156
|
+
scrolling. The indicator's own border/fill colours still flip instantly (colour is never animated).
|
|
157
|
+
- **Sheet reveal** — `useReveal(open)` on the inner sheet panel, the no-state variant: the subtree is
|
|
158
|
+
gated on `open` — the same flag `<Modal visible>` uses — so there is no second source of truth to
|
|
159
|
+
disagree with it, and no extra render per open/close. See `select/MODULE.md`'s Motion section for
|
|
160
|
+
why `useEnterExit`'s `mounted` gate was dropped; `Select`/`Combobox` use the identical gate.
|
|
161
|
+
- No chip/token UI on the trigger, so there is nothing to animate there (see Known gaps).
|
|
162
|
+
|
|
163
|
+
## Modernization (v1.0.7)
|
|
164
|
+
|
|
165
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
166
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
@@ -1,32 +1,123 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
|
-
* MultiSelect — a trigger styled like Select/Input that opens a checkbox-style option list
|
|
5
|
-
* Native's OWN `Modal`. Imported directly from `"react-native"` here on purpose, and built as a
|
|
6
|
-
* standalone sibling of `Select` rather than on top of it: selection semantics differ enough
|
|
7
|
-
* (multiple values, a running "N selected" summary, checkbox-row indicators instead of a single
|
|
8
|
-
* check mark) that importing Select would force awkward prop overloading — and this module must not
|
|
9
|
-
* depend on any sibling module, including the library's own Modal (built in parallel elsewhere).
|
|
10
|
-
*
|
|
11
|
-
* The one deliberate exception is the web portal mechanism: `ModalPortalContext`/`renderWebPortal`
|
|
12
|
-
* are a plain context + a stateless helper with no React-tree footprint of their own (not the
|
|
13
|
-
* `Modal` component), so MultiSelect reads the same ones `Modal.tsx`/`Select.tsx` read to stay
|
|
14
|
-
* consistent once a consumer opts in via `ModalPortalProvider` — see `../modal/ModalPortalContext.ts`.
|
|
4
|
+
* MultiSelect — a trigger styled like Select/Input that opens a checkbox-style option list.
|
|
15
5
|
*/
|
|
16
6
|
|
|
17
|
-
import { memo, useContext, useState } from "react";
|
|
18
|
-
import { Modal, Platform, Pressable,
|
|
19
|
-
import {
|
|
7
|
+
import { memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
8
|
+
import { Animated, Modal, Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
9
|
+
import { focusItemProps, useDismissOnEscape, useFocusTrap, useRovingKeys, useSpaceActivation } from "../../core/a11y/keyboard";
|
|
20
10
|
import { Icon } from "../../core/icon/index.js";
|
|
21
|
-
import {
|
|
11
|
+
import { VirtualList } from "../../core/list/index.js";
|
|
12
|
+
import { useMotion, usePressMotion, useReveal } from "../../core/motion/index.js";
|
|
13
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
22
14
|
import { ModalPortalContext } from "../modal/ModalPortalContext.js";
|
|
23
15
|
import { renderWebPortal } from "../modal/renderWebPortal";
|
|
24
|
-
import { MULTI_SELECT_CLOSE_BUTTON_HIT_SLOP, MULTI_SELECT_CLOSE_ICON_SIZE, MULTI_SELECT_ROW_ICON_SIZE, MULTI_SELECT_SIZES, multiSelectCloseButtonStructure, multiSelectHeaderStructure, multiSelectOverlayStructure, multiSelectRowIndicatorStructure, multiSelectRowStructure, multiSelectSheetStructure, multiSelectTriggerStructure, resolveMultiSelectAccessibility, resolveMultiSelectRowColors, resolveMultiSelectTriggerColors } from "./MultiSelect.variants.js";
|
|
16
|
+
import { MULTI_SELECT_CLOSE_BUTTON_HIT_SLOP, MULTI_SELECT_CLOSE_ICON_SIZE, MULTI_SELECT_LISTBOX_ROLE, MULTI_SELECT_ROW_ICON_SIZE, MULTI_SELECT_ROW_MIN_HEIGHT, MULTI_SELECT_SIZES, multiSelectCloseButtonStructure, multiSelectHeaderStructure, multiSelectOverlayStructure, multiSelectRowIndicatorStructure, multiSelectRowLeadingStructure, multiSelectRowStructure, multiSelectSheetStructure, multiSelectTriggerStructure, resolveMultiSelectAccessibility, resolveMultiSelectRowColors, resolveMultiSelectTriggerColors } from "./MultiSelect.variants.js";
|
|
25
17
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
26
18
|
const ICON_STROKE = 2;
|
|
27
|
-
// Decorative dismiss scrim behind the sheet — a design constant, not a role token: it is neither
|
|
28
|
-
// text nor an interactive boundary, so WCAG's contrast minimums don't apply to it.
|
|
29
19
|
const BACKDROP_SCRIM = "#00000099";
|
|
20
|
+
const MultiSelectOptionRow = /*#__PURE__*/memo(function MultiSelectOptionRow({
|
|
21
|
+
option,
|
|
22
|
+
checked,
|
|
23
|
+
tabIndex,
|
|
24
|
+
theme,
|
|
25
|
+
rowColors,
|
|
26
|
+
onToggle,
|
|
27
|
+
testID
|
|
28
|
+
}) {
|
|
29
|
+
const motion = useMotion();
|
|
30
|
+
const press = usePressMotion();
|
|
31
|
+
const handlePress = useCallback(() => onToggle(option.value), [onToggle, option.value]);
|
|
32
|
+
const rowRef = useRef(null);
|
|
33
|
+
const active = tabIndex === 0;
|
|
34
|
+
|
|
35
|
+
// The tabindex alone only names the tab stop — focus has to follow the arrows too, or the focus
|
|
36
|
+
// trap's Tab handler sees a focused row that is no longer tabbable and lets Tab leave the sheet.
|
|
37
|
+
useEffect(() => {
|
|
38
|
+
if (!active || Platform.OS !== "web") return;
|
|
39
|
+
rowRef.current?.focus();
|
|
40
|
+
}, [active]);
|
|
41
|
+
|
|
42
|
+
// `checkbox` is not `button`, so RNW never presses on Space — see `core/a11y/keyboard.web.ts`.
|
|
43
|
+
useSpaceActivation(rowRef, handlePress);
|
|
44
|
+
const checkOpacity = useRef(new Animated.Value(checked ? 1 : 0)).current;
|
|
45
|
+
const skipFirst = useRef(true);
|
|
46
|
+
const running = useRef(null);
|
|
47
|
+
useEffect(() => {
|
|
48
|
+
running.current?.stop();
|
|
49
|
+
// A row scrolled into view already-checked must snap, never fade.
|
|
50
|
+
if (skipFirst.current) {
|
|
51
|
+
skipFirst.current = false;
|
|
52
|
+
checkOpacity.setValue(checked ? 1 : 0);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (!motion.enabled) {
|
|
56
|
+
checkOpacity.setValue(checked ? 1 : 0);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
running.current = motion.timing(checkOpacity, checked ? 1 : 0, {
|
|
60
|
+
duration: "fast"
|
|
61
|
+
});
|
|
62
|
+
running.current.start();
|
|
63
|
+
return () => running.current?.stop();
|
|
64
|
+
}, [checked, motion, checkOpacity]);
|
|
65
|
+
useEffect(() => () => running.current?.stop(), []);
|
|
66
|
+
const rowStructure = useMemo(() => multiSelectRowStructure(theme), [theme]);
|
|
67
|
+
const indicatorStructure = useMemo(() => multiSelectRowIndicatorStructure(theme), [theme]);
|
|
68
|
+
const leadingStructure = useMemo(() => multiSelectRowLeadingStructure(theme), [theme]);
|
|
69
|
+
const rowStyle = useCallback(({
|
|
70
|
+
pressed
|
|
71
|
+
}) => ({
|
|
72
|
+
backgroundColor: pressed ? rowColors.pressedRow : rowColors.background
|
|
73
|
+
}), [rowColors]);
|
|
74
|
+
const indicatorStyle = useMemo(() => [indicatorStructure, {
|
|
75
|
+
borderColor: checked ? rowColors.indicatorFill : rowColors.indicatorBorder,
|
|
76
|
+
backgroundColor: checked ? rowColors.indicatorFill : "transparent"
|
|
77
|
+
}], [indicatorStructure, checked, rowColors]);
|
|
78
|
+
const labelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
79
|
+
flex: 1,
|
|
80
|
+
fontSize: theme.fontSizes.md,
|
|
81
|
+
color: rowColors.text
|
|
82
|
+
}], [theme, rowColors]);
|
|
83
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
84
|
+
ref: rowRef,
|
|
85
|
+
testID: testID ? `${testID}-option-${option.value}` : undefined,
|
|
86
|
+
accessibilityRole: "checkbox",
|
|
87
|
+
"aria-checked": checked,
|
|
88
|
+
tabIndex: tabIndex,
|
|
89
|
+
onPress: handlePress,
|
|
90
|
+
onPressIn: press.onPressIn,
|
|
91
|
+
onPressOut: press.onPressOut,
|
|
92
|
+
style: rowStyle,
|
|
93
|
+
children: /*#__PURE__*/_jsxs(Animated.View, {
|
|
94
|
+
testID: testID ? `${testID}-option-${option.value}-content` : undefined,
|
|
95
|
+
style: [rowStructure, press.style],
|
|
96
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
97
|
+
style: indicatorStyle,
|
|
98
|
+
children: checked && /*#__PURE__*/_jsx(Animated.View, {
|
|
99
|
+
testID: testID ? `${testID}-option-${option.value}-check` : undefined,
|
|
100
|
+
style: {
|
|
101
|
+
opacity: checkOpacity
|
|
102
|
+
},
|
|
103
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
104
|
+
name: "check",
|
|
105
|
+
size: MULTI_SELECT_ROW_ICON_SIZE,
|
|
106
|
+
color: rowColors.indicatorIcon,
|
|
107
|
+
strokeWidth: ICON_STROKE
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
}), option.leading !== undefined && /*#__PURE__*/_jsx(View, {
|
|
111
|
+
style: leadingStructure,
|
|
112
|
+
children: option.leading
|
|
113
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
114
|
+
numberOfLines: 1,
|
|
115
|
+
style: labelStyle,
|
|
116
|
+
children: option.label
|
|
117
|
+
})]
|
|
118
|
+
})
|
|
119
|
+
});
|
|
120
|
+
});
|
|
30
121
|
export const MultiSelect = /*#__PURE__*/memo(function MultiSelect({
|
|
31
122
|
options,
|
|
32
123
|
values,
|
|
@@ -39,55 +130,119 @@ export const MultiSelect = /*#__PURE__*/memo(function MultiSelect({
|
|
|
39
130
|
testID
|
|
40
131
|
}) {
|
|
41
132
|
const theme = useTheme();
|
|
42
|
-
const reducedMotion = useReducedMotion();
|
|
43
133
|
const portalContainer = useContext(ModalPortalContext);
|
|
44
134
|
const [open, setOpen] = useState(false);
|
|
45
135
|
const [focused, setFocused] = useState(false);
|
|
136
|
+
const [activeIndex, setActiveIndex] = useState(0);
|
|
137
|
+
const sheetRef = useRef(null);
|
|
138
|
+
const reveal = useReveal(open);
|
|
46
139
|
const spec = MULTI_SELECT_SIZES[size];
|
|
47
140
|
const selectedCount = values.length;
|
|
48
141
|
const isPlaceholder = selectedCount === 0;
|
|
49
|
-
const
|
|
142
|
+
const selectedValues = useMemo(() => new Set(values), [values]);
|
|
143
|
+
const singleLabel = useMemo(() => selectedCount === 1 ? options.find(option => option.value === values[0])?.label : undefined, [selectedCount, options, values]);
|
|
50
144
|
const displayText = isPlaceholder ? placeholder ?? "" : singleLabel ?? `${selectedCount} selected`;
|
|
51
|
-
const triggerColors = resolveMultiSelectTriggerColors(theme.colors, focused || open);
|
|
52
|
-
const rowColors = resolveMultiSelectRowColors(theme.colors);
|
|
53
|
-
const a11y = resolveMultiSelectAccessibility({
|
|
145
|
+
const triggerColors = useMemo(() => resolveMultiSelectTriggerColors(theme.colors, focused || open), [theme.colors, focused, open]);
|
|
146
|
+
const rowColors = useMemo(() => resolveMultiSelectRowColors(theme.colors), [theme.colors]);
|
|
147
|
+
const a11y = useMemo(() => resolveMultiSelectAccessibility({
|
|
54
148
|
disabled,
|
|
55
149
|
open
|
|
56
|
-
});
|
|
150
|
+
}), [disabled, open]);
|
|
57
151
|
const accessibleName = label !== undefined ? displayText ? `${label}, ${displayText}` : label : undefined;
|
|
58
|
-
const
|
|
152
|
+
const firstSelectedIndex = useMemo(() => options.findIndex(option => selectedValues.has(option.value)), [options, selectedValues]);
|
|
153
|
+
const openMenu = useCallback(() => {
|
|
59
154
|
if (disabled) return;
|
|
155
|
+
// Opening lands the keyboard on the first SELECTED option, not the first one (WCAG 2.4.3).
|
|
156
|
+
setActiveIndex(firstSelectedIndex === -1 ? 0 : firstSelectedIndex);
|
|
60
157
|
setOpen(true);
|
|
61
|
-
};
|
|
62
|
-
const closeMenu = () => setOpen(false);
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
158
|
+
}, [disabled, firstSelectedIndex]);
|
|
159
|
+
const closeMenu = useCallback(() => setOpen(false), []);
|
|
160
|
+
const handleFocus = useCallback(() => setFocused(true), []);
|
|
161
|
+
const handleBlur = useCallback(() => setFocused(false), []);
|
|
162
|
+
|
|
163
|
+
// `values` necessarily changes on every toggle, so reading it through a ref is what keeps
|
|
164
|
+
// `toggleValue` identity-stable — as a dependency it re-created the callback per toggle and
|
|
165
|
+
// defeated `React.memo` on every mounted row, not just the one whose `checked` flipped.
|
|
166
|
+
const valuesRef = useRef(values);
|
|
167
|
+
valuesRef.current = values;
|
|
168
|
+
const onValuesChangeRef = useRef(onValuesChange);
|
|
169
|
+
onValuesChangeRef.current = onValuesChange;
|
|
170
|
+
const toggleValue = useCallback(value => {
|
|
171
|
+
const current = valuesRef.current;
|
|
172
|
+
const next = current.includes(value) ? current.filter(v => v !== value) : [...current, value];
|
|
173
|
+
onValuesChangeRef.current(next);
|
|
174
|
+
}, []);
|
|
175
|
+
const typeaheadLabels = useMemo(() => options.map(option => option.label), [options]);
|
|
176
|
+
|
|
177
|
+
// Keyboard (web only — every hook below is a no-op on native, see `core/a11y/keyboard.ts`).
|
|
178
|
+
// No `onActivate`: RNW already presses a row on Enter, and each row's own `useSpaceActivation`
|
|
179
|
+
// owns Space — passing it here would toggle twice, i.e. not at all.
|
|
180
|
+
useDismissOnEscape(open, closeMenu);
|
|
181
|
+
useFocusTrap(sheetRef, open);
|
|
182
|
+
useRovingKeys(sheetRef, open, {
|
|
183
|
+
count: options.length,
|
|
184
|
+
activeIndex,
|
|
185
|
+
onActiveIndexChange: setActiveIndex,
|
|
186
|
+
typeaheadLabels
|
|
187
|
+
});
|
|
188
|
+
const keyExtractor = useCallback(option => option.value, []);
|
|
189
|
+
const renderItem = useCallback(({
|
|
190
|
+
item: option,
|
|
191
|
+
index
|
|
192
|
+
}) => /*#__PURE__*/_jsx(MultiSelectOptionRow, {
|
|
193
|
+
option: option,
|
|
194
|
+
checked: selectedValues.has(option.value),
|
|
195
|
+
tabIndex: focusItemProps(index, activeIndex).tabIndex,
|
|
196
|
+
theme: theme,
|
|
197
|
+
rowColors: rowColors,
|
|
198
|
+
onToggle: toggleValue,
|
|
199
|
+
testID: testID
|
|
200
|
+
}), [selectedValues, activeIndex, theme, rowColors, toggleValue, testID]);
|
|
201
|
+
const rootStyle = useMemo(() => [styles.container, containerStyle], [containerStyle]);
|
|
202
|
+
const triggerStyle = useMemo(() => [multiSelectTriggerStructure(theme, {
|
|
203
|
+
size
|
|
204
|
+
}), {
|
|
205
|
+
backgroundColor: triggerColors.background,
|
|
206
|
+
borderColor: triggerColors.border
|
|
207
|
+
}, disabled && styles.dimmed], [theme, size, triggerColors, disabled]);
|
|
208
|
+
const overlayStructure = useMemo(() => multiSelectOverlayStructure(theme), [theme]);
|
|
209
|
+
const headerStructure = useMemo(() => multiSelectHeaderStructure(theme), [theme]);
|
|
210
|
+
const closeButtonStructure = useMemo(() => multiSelectCloseButtonStructure(theme), [theme]);
|
|
211
|
+
const sheetStyle = useMemo(() => [multiSelectSheetStructure(theme), {
|
|
212
|
+
backgroundColor: theme.colors.bg.surface
|
|
213
|
+
}], [theme]);
|
|
214
|
+
const fieldLabelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
215
|
+
fontSize: theme.fontSizes.sm,
|
|
216
|
+
color: theme.colors.fg.muted,
|
|
217
|
+
marginBottom: theme.space[1]
|
|
218
|
+
}], [theme]);
|
|
219
|
+
const valueTextStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
220
|
+
flexShrink: 1,
|
|
221
|
+
fontSize: spec.fontSize,
|
|
222
|
+
color: isPlaceholder ? triggerColors.placeholder : triggerColors.text
|
|
223
|
+
}], [theme, spec, isPlaceholder, triggerColors]);
|
|
224
|
+
const sheet = open ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
68
225
|
children: [/*#__PURE__*/_jsx(Pressable, {
|
|
69
226
|
testID: testID ? `${testID}-backdrop` : undefined,
|
|
70
227
|
accessible: false,
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
}],
|
|
228
|
+
tabIndex: -1,
|
|
229
|
+
style: styles.backdrop,
|
|
74
230
|
onPress: closeMenu
|
|
75
231
|
}), /*#__PURE__*/_jsx(View, {
|
|
76
|
-
style:
|
|
232
|
+
style: overlayStructure,
|
|
77
233
|
pointerEvents: "box-none",
|
|
78
|
-
children: /*#__PURE__*/_jsxs(View, {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}],
|
|
234
|
+
children: /*#__PURE__*/_jsxs(Animated.View, {
|
|
235
|
+
ref: sheetRef,
|
|
236
|
+
style: [sheetStyle, reveal.style],
|
|
82
237
|
children: [/*#__PURE__*/_jsx(View, {
|
|
83
|
-
style:
|
|
238
|
+
style: headerStructure,
|
|
84
239
|
children: /*#__PURE__*/_jsx(Pressable, {
|
|
85
240
|
testID: testID ? `${testID}-close` : undefined,
|
|
86
241
|
accessibilityRole: "button",
|
|
87
242
|
accessibilityLabel: "Close",
|
|
88
243
|
onPress: closeMenu,
|
|
89
244
|
hitSlop: MULTI_SELECT_CLOSE_BUTTON_HIT_SLOP,
|
|
90
|
-
style:
|
|
245
|
+
style: closeButtonStructure,
|
|
91
246
|
children: /*#__PURE__*/_jsx(Icon, {
|
|
92
247
|
name: "x",
|
|
93
248
|
size: MULTI_SELECT_CLOSE_ICON_SIZE,
|
|
@@ -95,50 +250,16 @@ export const MultiSelect = /*#__PURE__*/memo(function MultiSelect({
|
|
|
95
250
|
strokeWidth: ICON_STROKE
|
|
96
251
|
})
|
|
97
252
|
})
|
|
98
|
-
}), /*#__PURE__*/_jsx(
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
accessibilityRole: "checkbox",
|
|
105
|
-
accessibilityState: {
|
|
106
|
-
checked
|
|
107
|
-
},
|
|
108
|
-
onPress: () => toggleValue(option.value),
|
|
109
|
-
style: [multiSelectRowStructure(theme), {
|
|
110
|
-
backgroundColor: rowColors.background
|
|
111
|
-
}],
|
|
112
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
113
|
-
style: [multiSelectRowIndicatorStructure(theme), {
|
|
114
|
-
borderColor: checked ? rowColors.indicatorFill : rowColors.indicatorBorder,
|
|
115
|
-
backgroundColor: checked ? rowColors.indicatorFill : "transparent"
|
|
116
|
-
}],
|
|
117
|
-
children: checked && /*#__PURE__*/_jsx(Icon, {
|
|
118
|
-
name: "check",
|
|
119
|
-
size: MULTI_SELECT_ROW_ICON_SIZE,
|
|
120
|
-
color: rowColors.indicatorIcon,
|
|
121
|
-
strokeWidth: ICON_STROKE
|
|
122
|
-
})
|
|
123
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
124
|
-
numberOfLines: 1,
|
|
125
|
-
style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
126
|
-
flex: 1,
|
|
127
|
-
fontSize: theme.fontSizes.md,
|
|
128
|
-
color: rowColors.text
|
|
129
|
-
}],
|
|
130
|
-
children: option.label
|
|
131
|
-
})]
|
|
132
|
-
}, option.value);
|
|
133
|
-
})
|
|
253
|
+
}), /*#__PURE__*/_jsx(VirtualList, {
|
|
254
|
+
data: options,
|
|
255
|
+
keyExtractor: keyExtractor,
|
|
256
|
+
renderItem: renderItem,
|
|
257
|
+
itemHeight: MULTI_SELECT_ROW_MIN_HEIGHT,
|
|
258
|
+
accessibilityRole: MULTI_SELECT_LISTBOX_ROLE
|
|
134
259
|
})]
|
|
135
260
|
})
|
|
136
261
|
})]
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
// Web portal opt-in — see Modal.tsx's/Select.tsx's identical branch + ModalPortalContext.ts.
|
|
140
|
-
// Every other case (native, or web with no ModalPortalProvider) renders through RN's own
|
|
141
|
-
// <Modal> below, unchanged.
|
|
262
|
+
}) : null;
|
|
142
263
|
const menu = Platform.OS === "web" && portalContainer != null ? open ? renderWebPortal(/*#__PURE__*/_jsx(View, {
|
|
143
264
|
style: StyleSheet.absoluteFill,
|
|
144
265
|
pointerEvents: "box-none",
|
|
@@ -146,42 +267,30 @@ export const MultiSelect = /*#__PURE__*/memo(function MultiSelect({
|
|
|
146
267
|
}), portalContainer) : null : /*#__PURE__*/_jsx(Modal, {
|
|
147
268
|
visible: open,
|
|
148
269
|
transparent: true,
|
|
149
|
-
animationType:
|
|
270
|
+
animationType: "none",
|
|
150
271
|
onRequestClose: closeMenu,
|
|
151
272
|
children: sheet
|
|
152
273
|
});
|
|
153
274
|
return /*#__PURE__*/_jsxs(View, {
|
|
154
|
-
style:
|
|
275
|
+
style: rootStyle,
|
|
155
276
|
children: [label !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
156
|
-
style:
|
|
157
|
-
fontSize: theme.fontSizes.sm,
|
|
158
|
-
color: theme.colors.fg.muted,
|
|
159
|
-
marginBottom: theme.space[1]
|
|
160
|
-
}],
|
|
277
|
+
style: fieldLabelStyle,
|
|
161
278
|
children: label
|
|
162
279
|
}), /*#__PURE__*/_jsxs(Pressable, {
|
|
163
280
|
testID: testID,
|
|
164
281
|
accessibilityRole: a11y.accessibilityRole,
|
|
165
282
|
accessibilityLabel: accessibleName,
|
|
166
|
-
|
|
283
|
+
"aria-disabled": a11y["aria-disabled"],
|
|
284
|
+
"aria-expanded": a11y["aria-expanded"],
|
|
167
285
|
disabled: a11y.disabled,
|
|
168
286
|
onPress: openMenu,
|
|
169
|
-
onFocus:
|
|
170
|
-
onBlur:
|
|
287
|
+
onFocus: handleFocus,
|
|
288
|
+
onBlur: handleBlur,
|
|
171
289
|
hitSlop: spec.hitSlop,
|
|
172
|
-
style:
|
|
173
|
-
size
|
|
174
|
-
}), {
|
|
175
|
-
backgroundColor: triggerColors.background,
|
|
176
|
-
borderColor: triggerColors.border
|
|
177
|
-
}, disabled && styles.dimmed],
|
|
290
|
+
style: triggerStyle,
|
|
178
291
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
179
292
|
numberOfLines: 1,
|
|
180
|
-
style:
|
|
181
|
-
flexShrink: 1,
|
|
182
|
-
fontSize: spec.fontSize,
|
|
183
|
-
color: isPlaceholder ? triggerColors.placeholder : triggerColors.text
|
|
184
|
-
}],
|
|
293
|
+
style: valueTextStyle,
|
|
185
294
|
children: displayText
|
|
186
295
|
}), /*#__PURE__*/_jsx(Icon, {
|
|
187
296
|
name: "chevron-down",
|
|
@@ -196,9 +305,12 @@ const styles = StyleSheet.create({
|
|
|
196
305
|
container: {
|
|
197
306
|
alignSelf: "stretch"
|
|
198
307
|
},
|
|
199
|
-
// A disabled control is exempt from the contrast minimum (WCAG 1.4.3), so a uniform dim is correct.
|
|
200
308
|
dimmed: {
|
|
201
309
|
opacity: 0.5
|
|
310
|
+
},
|
|
311
|
+
backdrop: {
|
|
312
|
+
...StyleSheet.absoluteFill,
|
|
313
|
+
backgroundColor: BACKDROP_SCRIM
|
|
202
314
|
}
|
|
203
315
|
});
|
|
204
316
|
//# sourceMappingURL=MultiSelect.js.map
|
|
@@ -46,6 +46,14 @@ export const MULTI_SELECT_SIZES = {
|
|
|
46
46
|
/** Minimum height for an option row — a list item is still an interactive target (WCAG 2.5.8). */
|
|
47
47
|
export const MULTI_SELECT_ROW_MIN_HEIGHT = 44;
|
|
48
48
|
|
|
49
|
+
/**
|
|
50
|
+
* The option list's container role. RN 0.86's role unions have no `listbox` — both `Role` and
|
|
51
|
+
* `AccessibilityRole` jump `list` → `listitem` → `log` — so the widening lives on this ONE audited
|
|
52
|
+
* line instead of a cast at the call site. It is a type gap, not a runtime one: `react-native-web`
|
|
53
|
+
* emits the string as the DOM `role` verbatim, and native maps roles it doesn't know to nothing.
|
|
54
|
+
*/
|
|
55
|
+
export const MULTI_SELECT_LISTBOX_ROLE = "listbox";
|
|
56
|
+
|
|
49
57
|
/** Row checkbox-style indicator box side, in dp. Fixed — independent of the trigger's own `size`,
|
|
50
58
|
* same reasoning as `Select`'s row "check" glyph. */
|
|
51
59
|
export const MULTI_SELECT_ROW_INDICATOR_SIZE = 20;
|
|
@@ -78,7 +86,8 @@ export function resolveMultiSelectRowColors(colors) {
|
|
|
78
86
|
text: colors.fg.default,
|
|
79
87
|
indicatorBorder: colors.border.interactive,
|
|
80
88
|
indicatorFill: colors.accent.solid,
|
|
81
|
-
indicatorIcon: colors.accent.onSolid
|
|
89
|
+
indicatorIcon: colors.accent.onSolid,
|
|
90
|
+
pressedRow: colors.bg.sunken
|
|
82
91
|
};
|
|
83
92
|
}
|
|
84
93
|
/**
|
|
@@ -90,10 +99,8 @@ export function resolveMultiSelectAccessibility(input) {
|
|
|
90
99
|
const disabled = input.disabled === true;
|
|
91
100
|
return {
|
|
92
101
|
accessibilityRole: "button",
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
expanded: input.open
|
|
96
|
-
},
|
|
102
|
+
"aria-disabled": disabled,
|
|
103
|
+
"aria-expanded": input.open,
|
|
97
104
|
disabled
|
|
98
105
|
};
|
|
99
106
|
}
|
|
@@ -180,6 +187,22 @@ export const multiSelectRowStructure = createThemedVariants(theme => ({
|
|
|
180
187
|
}
|
|
181
188
|
}));
|
|
182
189
|
|
|
190
|
+
/**
|
|
191
|
+
* `MultiSelectOption.leading` is an arbitrary consumer node, so an unconstrained one could make a
|
|
192
|
+
* row taller than `MULTI_SELECT_ROW_MIN_HEIGHT` and silently falsify the list's `getItemLayout`
|
|
193
|
+
* offsets. This slot bounds it to the row's own indicator box instead, which is what keeps the
|
|
194
|
+
* uniform-height fast path true by construction (`core/MODULE.md`: `itemHeight` is uniform-only).
|
|
195
|
+
*/
|
|
196
|
+
export const multiSelectRowLeadingStructure = createThemedVariants(() => ({
|
|
197
|
+
base: {
|
|
198
|
+
width: MULTI_SELECT_ROW_INDICATOR_SIZE,
|
|
199
|
+
height: MULTI_SELECT_ROW_INDICATOR_SIZE,
|
|
200
|
+
alignItems: "center",
|
|
201
|
+
justifyContent: "center",
|
|
202
|
+
overflow: "hidden"
|
|
203
|
+
}
|
|
204
|
+
}));
|
|
205
|
+
|
|
183
206
|
/** Structural indicator-box styles only — size, radius, border WIDTH. No colours: border/fill
|
|
184
207
|
* colour is checked-state-driven and applied inline over this, same split as `checkboxBoxStructure`. */
|
|
185
208
|
export const multiSelectRowIndicatorStructure = createThemedVariants(theme => ({
|