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
|
@@ -12,7 +12,7 @@ TWO trailing controls, which doesn't fit Input's single leading/trailing icon sl
|
|
|
12
12
|
| `NumberInput.variants.ts` | Pure resolvers (`NUMBER_INPUT_SIZES`, `resolveNumberInputStatus`, `resolveNumberInputStepperPressColors`, `resolveNumberInputAccessibility`, `clampNumberInputValue`, `parseNumberInputDraft`, `canDecrementNumberInput`, `canIncrementNumberInput`) + the themed structural resolvers `numberInputStructure` / `numberInputStepperStructure`. No React, no lucide. |
|
|
13
13
|
| `index.ts` | Public surface: `NumberInput`, `NumberInputProps`, the closed unions. No `icon` prop, so `IconName` is not re-exported. |
|
|
14
14
|
| `__tests__/NumberInput.test.ts` | Pure: WCAG contrast (all brands × modes, incl. the stepper pressed-fill) + touch target + clamp/parse/limit + a11y contract. |
|
|
15
|
-
| `__tests__/NumberInput.render.test.tsx` | Render: stepper press, typed input, clamping, disabled/at-limit, the field's and each stepper's own focus ring. |
|
|
15
|
+
| `__tests__/NumberInput.render.test.tsx` | Render: stepper press, typed input, clamping, disabled/at-limit, the field's and each stepper's own focus ring, the rendered `hitSlop`, `accessibilityValue`, and the increment/decrement accessibility actions. |
|
|
16
16
|
|
|
17
17
|
## Props
|
|
18
18
|
|
|
@@ -26,6 +26,7 @@ TWO trailing controls, which doesn't fit Input's single leading/trailing icon sl
|
|
|
26
26
|
| `status` | `default \| error` | `default` | Closed union — a **state**, not a brand `tone` (same reasoning as Input). |
|
|
27
27
|
| `disabled` | `boolean` | `false` | Dims the field; blocks editing and both steppers. |
|
|
28
28
|
| `label` | `string` | — | Rendered above the field; falls back into `accessibilityLabel`. |
|
|
29
|
+
| `errorText` | `string` | — | Shown below the field and folded into the accessible name (`aria-invalid` set) when `status="error"` — same prop name and rule as `Input`/`FormField`. Previously `status="error"` was border-colour only, with no message and no programmatic invalid flag (WCAG 3.3.1 / 1.4.1). |
|
|
29
30
|
| `accessibilityLabel` | `string` | `label` | Overrides the label fallback. |
|
|
30
31
|
| `containerStyle` | `LayoutStyle` | — | The documented exception for a native-primitive wrapper. Outermost, last, once. Never `inputStyle`. |
|
|
31
32
|
| `testID` | `string` | — | Forwarded to the `TextInput`; the steppers get `${testID}-decrement` / `${testID}-increment`. |
|
|
@@ -49,8 +50,29 @@ typed values are clamped to range but never snapped to a `step` grid.
|
|
|
49
50
|
both stepper `Pressable`s. This only holds because every one of the three carries
|
|
50
51
|
`alignSelf: "stretch"` inside the row (`alignItems: "center"` would otherwise shrink each to its
|
|
51
52
|
intrinsic content height) — the same fix Input's `TextInput` needed, carried forward from the
|
|
52
|
-
start here
|
|
53
|
-
`
|
|
53
|
+
start here. `NumberInput.render.test.tsx` asserts BOTH halves on the rendered nodes: the
|
|
54
|
+
`alignSelf` of all three, and (per size) their real `hitSlop` prop against
|
|
55
|
+
`NUMBER_INPUT_SIZES[size].hitSlop` — the `height + 2·hitSlop` arithmetic in `NumberInput.test.ts`
|
|
56
|
+
proves nothing on its own if a refactor drops the prop off a node.
|
|
57
|
+
- **4.1.2 value semantics** — the `TextInput` carries BOTH `accessibilityValue={{…}}` and flat
|
|
58
|
+
`aria-valuemin`/`aria-valuemax`/`aria-valuenow`/`aria-valuetext` from
|
|
59
|
+
`resolveNumberInputAccessibility` — the one deliberate exception to "flat-only" in this family.
|
|
60
|
+
Verified: RN's `TextInput.js` never destructures ANY `aria-value*` prop (unlike `View`/`Pressable`,
|
|
61
|
+
which merge it), so flat-only would be silently dropped on native; `react-native-web` never reads
|
|
62
|
+
`accessibilityValue`, so object-only would be silently dropped on web. Both forms, one per
|
|
63
|
+
platform. A bound the caller omitted is **left out**, never defaulted to `0` — absent means "no
|
|
64
|
+
floor"/"no ceiling" here.
|
|
65
|
+
**Corrected claim:** this file previously said the announced text is `String(value)` "verbatim" —
|
|
66
|
+
false. `value` and the field's own visible `draft` state diverge while typing (e.g. a keystroke
|
|
67
|
+
that doesn't parse yet, or one that clamps), and the announcement used to speak `value` while the
|
|
68
|
+
screen showed `draft` — a 4.1.2 failure in itself. The announced text is now `draft`, matching what
|
|
69
|
+
is actually on screen; `now` stays the raw, unclamped `value` (unlike `Slider`'s clamped `now`).
|
|
70
|
+
- **2.5.7 non-pointer alternative** — the field also declares
|
|
71
|
+
`accessibilityActions: [{name:"increment"},{name:"decrement"}]` + `onAccessibilityAction`, reusing
|
|
72
|
+
the same `handleIncrement`/`handleDecrement` (so an at-limit or disabled action is a no-op).
|
|
73
|
+
Same reasoning as `Slider`: iOS offers adjust gestures from the trait, Android TalkBack only
|
|
74
|
+
surfaces actions declared here — without them the +/- controls are reachable *only* as two extra
|
|
75
|
+
swipe stops. The list is always declared; the handler, not the list, does the gating.
|
|
54
76
|
- **1.4.3** — value text and stepper icon colour (`fg.default`) are measured ≥ 4.5:1 against the
|
|
55
77
|
canvas at rest, for all 8 brands × both modes.
|
|
56
78
|
- **1.4.11** — the resting/focus border (`border.interactive` / `border.focus`) and the error border
|
|
@@ -73,13 +95,19 @@ typed values are clamped to range but never snapped to a `step` grid.
|
|
|
73
95
|
(whole-row ring), the decrement `Pressable`, and the increment `Pressable` (each stepper gets its
|
|
74
96
|
own ring, rounded only on its outer corner via `stepperFocusRingStyle`). Keyboard/AT focus on a
|
|
75
97
|
stepper no longer relies on a background tint — the ring is the sole focus indicator, exactly the
|
|
76
|
-
pattern Button/Input/Checkbox use.
|
|
98
|
+
pattern Button/Input/Checkbox use. Each stepper's ring stays gated on `focused && enabled`, and an
|
|
99
|
+
at-limit/disabled stepper is therefore made **unfocusable** (`focusable={enabled}`) rather than
|
|
100
|
+
given a ring: RN's `Pressable` keeps `focusable` true when `disabled`, so on a TV remote it could
|
|
101
|
+
take focus and show no indicator at all (RNW already excludes it — `tabIndex: -1`). Removing the
|
|
102
|
+
inert control from the focus order fixes that at the source; painting a ring on a control that does
|
|
103
|
+
nothing when activated would advertise operability it doesn't have. TalkBack still reaches it (that
|
|
104
|
+
traversal follows `accessible`, not `focusable`) and still announces its disabled state.
|
|
77
105
|
- **Web** — RNW renders the `TextInput` as a real `<input>`, so `styles.webOutlineReset` (`outlineWidth:
|
|
78
106
|
0`, applied only when `Platform.OS === "web"`, matching Input/Textarea) suppresses the browser's own
|
|
79
107
|
default focus outline on the field, which would otherwise double up visibly with the themed ring
|
|
80
108
|
above. Scoped to the `TextInput` only — the stepper `Pressable`s aren't part of this fix.
|
|
81
109
|
- Decrement/increment each carry `accessibilityRole="button"` and their own
|
|
82
|
-
`accessibilityLabel` ("Decrease" / "Increase") plus `
|
|
110
|
+
`accessibilityLabel` ("Decrease" / "Increase") plus flat `aria-disabled`, so a screen
|
|
83
111
|
reader announces the control and its at-limit state even though it shows no visible text.
|
|
84
112
|
- A disabled field is exempt from the contrast minimum (WCAG 1.4.3) and dims via `opacity: 0.5`, same
|
|
85
113
|
as Input/Button. An at-limit stepper (value already at `min`/`max`) dims the same way *without*
|
|
@@ -106,3 +134,9 @@ typed values are clamped to range but never snapped to a `step` grid.
|
|
|
106
134
|
## Performance
|
|
107
135
|
|
|
108
136
|
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Same shape as `MultiSelect`: `Icon` gets only primitive props, no `.map()` list, every handler goes to host `Pressable`/`TextInput` — nothing to memoize.
|
|
137
|
+
|
|
138
|
+
## Modernization (v1.0.7)
|
|
139
|
+
|
|
140
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
141
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
142
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
import { memo, useEffect, useState } from "react";
|
|
17
17
|
import { Platform, Pressable, StyleSheet, Text, TextInput, View } from "react-native";
|
|
18
18
|
import { Icon } from "../../core/icon/index.js";
|
|
19
|
-
import { useTheme } from "../../theme/
|
|
19
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
20
20
|
import { canDecrementNumberInput, canIncrementNumberInput, clampNumberInputValue, NUMBER_INPUT_SIZES, numberInputStepperStructure, numberInputStructure, parseNumberInputDraft, resolveNumberInputAccessibility, resolveNumberInputStatus, resolveNumberInputStepperPressColors } from "./NumberInput.variants.js";
|
|
21
21
|
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
22
22
|
const ICON_STROKE = 2;
|
|
@@ -58,6 +58,7 @@ export const NumberInput = /*#__PURE__*/memo(function NumberInput(props) {
|
|
|
58
58
|
status = "default",
|
|
59
59
|
disabled = false,
|
|
60
60
|
label,
|
|
61
|
+
errorText,
|
|
61
62
|
accessibilityLabel,
|
|
62
63
|
containerStyle,
|
|
63
64
|
testID
|
|
@@ -77,9 +78,15 @@ export const NumberInput = /*#__PURE__*/memo(function NumberInput(props) {
|
|
|
77
78
|
const statusColors = resolveNumberInputStatus(theme.colors, status);
|
|
78
79
|
const pressColors = resolveNumberInputStepperPressColors(theme.colors);
|
|
79
80
|
const a11y = resolveNumberInputAccessibility({
|
|
81
|
+
value,
|
|
82
|
+
min,
|
|
83
|
+
max,
|
|
80
84
|
label,
|
|
81
85
|
accessibilityLabel,
|
|
82
|
-
disabled
|
|
86
|
+
disabled,
|
|
87
|
+
displayText: draft,
|
|
88
|
+
status,
|
|
89
|
+
errorText
|
|
83
90
|
});
|
|
84
91
|
const decrementEnabled = canDecrementNumberInput({
|
|
85
92
|
value,
|
|
@@ -109,6 +116,10 @@ export const NumberInput = /*#__PURE__*/memo(function NumberInput(props) {
|
|
|
109
116
|
if (!incrementEnabled) return;
|
|
110
117
|
onValueChange(clampNumberInputValue(value + step, min, max));
|
|
111
118
|
};
|
|
119
|
+
const handleAccessibilityAction = event => {
|
|
120
|
+
if (event.nativeEvent.actionName === "increment") handleIncrement();
|
|
121
|
+
if (event.nativeEvent.actionName === "decrement") handleDecrement();
|
|
122
|
+
};
|
|
112
123
|
return /*#__PURE__*/_jsxs(View, {
|
|
113
124
|
style: containerStyle,
|
|
114
125
|
children: [label !== undefined &&
|
|
@@ -147,10 +158,12 @@ export const NumberInput = /*#__PURE__*/memo(function NumberInput(props) {
|
|
|
147
158
|
testID: testID ? `${testID}-decrement` : undefined,
|
|
148
159
|
accessibilityRole: "button",
|
|
149
160
|
accessibilityLabel: "Decrease",
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
161
|
+
"aria-disabled": !decrementEnabled,
|
|
162
|
+
disabled: !decrementEnabled
|
|
163
|
+
// RN's Pressable stays `focusable` when disabled, so a TV remote could otherwise land on an
|
|
164
|
+
// at-limit stepper, which renders no ring (WCAG 2.4.7). RNW already excludes it (tabIndex -1).
|
|
165
|
+
,
|
|
166
|
+
focusable: decrementEnabled,
|
|
154
167
|
onPress: handleDecrement,
|
|
155
168
|
onFocus: () => setDecrementFocused(true),
|
|
156
169
|
onBlur: () => setDecrementFocused(false),
|
|
@@ -186,7 +199,15 @@ export const NumberInput = /*#__PURE__*/memo(function NumberInput(props) {
|
|
|
186
199
|
keyboardType: "numeric",
|
|
187
200
|
editable: a11y.editable,
|
|
188
201
|
accessibilityLabel: a11y.accessibilityLabel,
|
|
189
|
-
|
|
202
|
+
accessibilityValue: a11y.accessibilityValue,
|
|
203
|
+
"aria-valuemin": a11y["aria-valuemin"],
|
|
204
|
+
"aria-valuemax": a11y["aria-valuemax"],
|
|
205
|
+
"aria-valuenow": a11y["aria-valuenow"],
|
|
206
|
+
"aria-valuetext": a11y["aria-valuetext"],
|
|
207
|
+
"aria-disabled": a11y["aria-disabled"],
|
|
208
|
+
"aria-invalid": a11y["aria-invalid"],
|
|
209
|
+
accessibilityActions: a11y.accessibilityActions,
|
|
210
|
+
onAccessibilityAction: handleAccessibilityAction,
|
|
190
211
|
hitSlop: spec.hitSlop,
|
|
191
212
|
onFocus: handleFocus,
|
|
192
213
|
onBlur: handleBlur,
|
|
@@ -202,10 +223,9 @@ export const NumberInput = /*#__PURE__*/memo(function NumberInput(props) {
|
|
|
202
223
|
testID: testID ? `${testID}-increment` : undefined,
|
|
203
224
|
accessibilityRole: "button",
|
|
204
225
|
accessibilityLabel: "Increase",
|
|
205
|
-
|
|
206
|
-
disabled: !incrementEnabled
|
|
207
|
-
},
|
|
226
|
+
"aria-disabled": !incrementEnabled,
|
|
208
227
|
disabled: !incrementEnabled,
|
|
228
|
+
focusable: incrementEnabled,
|
|
209
229
|
onPress: handleIncrement,
|
|
210
230
|
onFocus: () => setIncrementFocused(true),
|
|
211
231
|
onBlur: () => setIncrementFocused(false),
|
|
@@ -235,6 +255,14 @@ export const NumberInput = /*#__PURE__*/memo(function NumberInput(props) {
|
|
|
235
255
|
})]
|
|
236
256
|
})
|
|
237
257
|
})]
|
|
258
|
+
}), a11y.message !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
259
|
+
testID: testID ? `${testID}-error` : undefined,
|
|
260
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
261
|
+
fontSize: theme.fontSizes.xs,
|
|
262
|
+
color: theme.colors.status.danger.text,
|
|
263
|
+
marginTop: theme.space[1]
|
|
264
|
+
}],
|
|
265
|
+
children: a11y.message
|
|
238
266
|
})]
|
|
239
267
|
});
|
|
240
268
|
});
|
|
@@ -247,7 +275,9 @@ const styles = StyleSheet.create({
|
|
|
247
275
|
// outline on top of the themed ring above it — a visible double border. Web-only: `outlineWidth`
|
|
248
276
|
// also drives native TV remote-control focus, so zeroing it globally would break that.
|
|
249
277
|
webOutlineReset: {
|
|
250
|
-
|
|
278
|
+
outlineStyle: "solid",
|
|
279
|
+
outlineWidth: 0,
|
|
280
|
+
borderWidth: 0
|
|
251
281
|
}
|
|
252
282
|
});
|
|
253
283
|
//# sourceMappingURL=NumberInput.js.map
|
|
@@ -80,15 +80,49 @@ export function resolveNumberInputStatus(colors, status) {
|
|
|
80
80
|
border: colors.border.interactive
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
|
-
/**
|
|
84
|
-
*
|
|
83
|
+
/**
|
|
84
|
+
* Same fallback contract as `resolveInputAccessibility`: an explicit `accessibilityLabel` always wins
|
|
85
|
+
* over the visible label.
|
|
86
|
+
*
|
|
87
|
+
* `now` is the RAW `value`, deliberately NOT clamped the way `resolveSliderAccessibility` clamps its
|
|
88
|
+
* own — the caller's committed value is what the control's value IS. The announced TEXT is
|
|
89
|
+
* `displayText` (the draft the field is rendering), not `String(value)`: mid-typing the two diverge
|
|
90
|
+
* whenever a keystroke doesn't parse or clamps, and a reader speaking a different number from the
|
|
91
|
+
* one on screen is a 4.1.2 failure in itself. `min`/`max` are omitted rather than defaulted — an
|
|
92
|
+
* absent bound means "no floor"/"no ceiling" here (see `clampNumberInputValue`), and announcing
|
|
93
|
+
* `min: 0` would invent one. `accessibilityActions` mirrors `Slider`'s reasoning: iOS surfaces
|
|
94
|
+
* adjust gestures from the trait, Android TalkBack only surfaces actions declared here (WCAG 2.5.7).
|
|
95
|
+
*/
|
|
85
96
|
export function resolveNumberInputAccessibility(input) {
|
|
86
97
|
const disabled = input.disabled === true;
|
|
98
|
+
const isError = (input.status ?? "default") === "error";
|
|
99
|
+
const errorInName = isError && input.errorText ? input.errorText : undefined;
|
|
100
|
+
const name = [input.accessibilityLabel ?? input.label, errorInName].filter(part => part !== undefined && part !== "");
|
|
101
|
+
const text = input.displayText ?? String(input.value);
|
|
87
102
|
return {
|
|
88
|
-
accessibilityLabel:
|
|
89
|
-
|
|
90
|
-
|
|
103
|
+
accessibilityLabel: name.length > 0 ? name.join(", ") : undefined,
|
|
104
|
+
"aria-disabled": disabled,
|
|
105
|
+
"aria-invalid": isError,
|
|
106
|
+
message: errorInName,
|
|
107
|
+
accessibilityValue: {
|
|
108
|
+
...(input.min === undefined ? {} : {
|
|
109
|
+
min: input.min
|
|
110
|
+
}),
|
|
111
|
+
...(input.max === undefined ? {} : {
|
|
112
|
+
max: input.max
|
|
113
|
+
}),
|
|
114
|
+
now: input.value,
|
|
115
|
+
text
|
|
91
116
|
},
|
|
117
|
+
"aria-valuemin": input.min,
|
|
118
|
+
"aria-valuemax": input.max,
|
|
119
|
+
"aria-valuenow": input.value,
|
|
120
|
+
"aria-valuetext": text,
|
|
121
|
+
accessibilityActions: [{
|
|
122
|
+
name: "increment"
|
|
123
|
+
}, {
|
|
124
|
+
name: "decrement"
|
|
125
|
+
}],
|
|
92
126
|
editable: !disabled
|
|
93
127
|
};
|
|
94
128
|
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# org-switcher/ — a themed org/workspace picker
|
|
2
|
+
|
|
3
|
+
`OrgSwitcher` is a trigger (identity avatar + active org name + a `chevrons-up-down`) that opens a
|
|
4
|
+
sheet of every org the user belongs to: avatar, org name, the user's **role on its own second
|
|
5
|
+
line**, an accent tint + check on the active row, and a press fill on every row. It renders nothing
|
|
6
|
+
when there's ≤1 option — a switcher with a single choice has nothing to switch to.
|
|
7
|
+
|
|
8
|
+
## Why this exists
|
|
9
|
+
|
|
10
|
+
Every consuming app (tickets-mobile, crm-mobile, …) has the same "list of orgs the user belongs to,
|
|
11
|
+
avatar + name, tap to switch" UI. This module is fully controlled: it takes
|
|
12
|
+
`options`/`value`/`onValueChange` and never touches app state, so one change here reaches every
|
|
13
|
+
consumer.
|
|
14
|
+
|
|
15
|
+
## Why it owns its trigger and sheet (it used to preset `Select`)
|
|
16
|
+
|
|
17
|
+
Mirrors web, where `OrgSwitcher` owns its Popover rather than wrapping a generic select. As a
|
|
18
|
+
`Select` preset this component could not show the two things web shows: a **tinted active row** and
|
|
19
|
+
a **role subtitle**. `Select`'s row contract is deliberately closed at "one label, one optional
|
|
20
|
+
leading node, a check when active" (see `select/MODULE.md`), and both of those are org-switching
|
|
21
|
+
concerns, not something every select should grow — so the sheet lives here instead. The `Modal` +
|
|
22
|
+
web-portal handling is copied from `Select.tsx`, which remains the reference for that pattern.
|
|
23
|
+
|
|
24
|
+
## Colours (all measured in `__tests__/OrgSwitcher.test.ts`, every brand × mode)
|
|
25
|
+
|
|
26
|
+
| Row state | Fill | Name | Role subtitle | Check |
|
|
27
|
+
|-----------|------|------|---------------|-------|
|
|
28
|
+
| inactive | `bg.surface` | `fg.default` regular | `fg.muted` | — |
|
|
29
|
+
| inactive, pressed | `bg.sunken` | ″ | ″ | — |
|
|
30
|
+
| **active** | `accent.subtle` | `fg.default` **semibold** | `fg.muted` | `accent.text` |
|
|
31
|
+
| active, pressed | `bg.surface` | ″ | ″ | ″ |
|
|
32
|
+
|
|
33
|
+
Press moves each row to the *other* row's fill rather than both landing on one shared pressed
|
|
34
|
+
colour: on **zinc** (the default brand) `accent.subtle` and `bg.sunken` are the same value, so a
|
|
35
|
+
shared pressed fill would leave the active row with no feedback at all. `accent.subtle` +
|
|
36
|
+
`accent.text` is the one tint pair the role table already guarantees at 4.5:1 for every brand ×
|
|
37
|
+
mode — `bg.selected` is not, which is exactly why `Select` refuses to tint.
|
|
38
|
+
|
|
39
|
+
## Files
|
|
40
|
+
|
|
41
|
+
| File | Role |
|
|
42
|
+
|------|------|
|
|
43
|
+
| `OrgSwitcher.tsx` | The component: trigger, `Modal` sheet, and the memo'd `OrgSwitcherRow`. Hides for ≤1 option. |
|
|
44
|
+
| `OrgSwitcher.variants.ts` | Pure resolvers (`ORG_SWITCHER_SIZES`, the colour/a11y resolvers, `orgInitials`) + the themed structural resolvers. No React. |
|
|
45
|
+
| `index.ts` | Public surface: `OrgSwitcher`, `OrgSwitcherProps`, `OrgSwitcherOption`, `OrgSwitcherSize`. |
|
|
46
|
+
| `__tests__/OrgSwitcher.test.ts` | Pure: WCAG contrast for every row/trigger state (all brands × modes), the touch-target floor, the a11y contract, `orgInitials`. |
|
|
47
|
+
| `__tests__/OrgSwitcher.render.test.tsx` | Render: ≤1-option hides, role is its own line, the active row is tinted, row press switches, backdrop closes. |
|
|
48
|
+
| `__tests__/OrgSwitcher.keyboard.web.test.tsx` | Escape / Tab trap / focus restore on the web-portal branch, and their deliberate absence on the RNModal branch. |
|
|
49
|
+
|
|
50
|
+
## Props
|
|
51
|
+
|
|
52
|
+
| Prop | Type | Default | Notes |
|
|
53
|
+
|------|------|---------|-------|
|
|
54
|
+
| `options` | `OrgSwitcherOption[]` | — | `{ value, label, role?, avatarSource?, avatarInitials? }`. `avatarInitials` defaults to the first letters of `label`'s first two words. |
|
|
55
|
+
| `value` | `string` | — | Active org id. |
|
|
56
|
+
| `onValueChange` | `(value: string) => void` | — | |
|
|
57
|
+
| `placeholder` | `string` | `"Select organization"` | Shown with a `building-2` glyph when nothing is selected. |
|
|
58
|
+
| `size` | `sm \| md \| lg` | `md` | Trigger heights 32 / 40 / 48 dp; avatar `xs` / `sm` / `md`. |
|
|
59
|
+
| `containerStyle` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
|
|
60
|
+
| `testID` | `string` | — | Trigger gets it directly; `-backdrop` and `-option-<value>` are suffixed. |
|
|
61
|
+
|
|
62
|
+
## Accessibility
|
|
63
|
+
|
|
64
|
+
- **State props are FLAT `aria-*`, never `accessibilityState={{…}}`** — `react-native-web` forwards
|
|
65
|
+
only a flat `aria-*` vocabulary to the DOM and discards the object form outright, so the web build
|
|
66
|
+
would expose a role and no state. RN's `View`/`Pressable` merge the flat props back into
|
|
67
|
+
`accessibilityState` (`View.js`), so native loses nothing. `resolveOrgSwitcherAccessibility`
|
|
68
|
+
returns the literal quoted key `"aria-expanded"`, and the JSX spells it out.
|
|
69
|
+
- The trigger is a `button` named **"Switch organization, <org>"** — the org name alone would
|
|
70
|
+
not tell a screen-reader user what the control does — with `aria-expanded` tracking the sheet
|
|
71
|
+
(WCAG 4.1.2).
|
|
72
|
+
- Rows are `menuitem` with `aria-selected`; the tint is never the *only* selection cue.
|
|
73
|
+
- Rows and trigger both clear the 44dp touch target (trigger via `hitSlop`).
|
|
74
|
+
- **2.1.1 keyboard (web only)** — on the `ModalPortalProvider` branch there is no RN `<Modal>`, so
|
|
75
|
+
`react-native-web`'s own Escape / focus trap / focus restore never run. The sheet wires
|
|
76
|
+
`useDismissOnEscape` + `useFocusTrap` (`core/a11y/keyboard`) gated on `portalled && open`;
|
|
77
|
+
the RNModal branch stays unwired, or the page would carry two of each.
|
|
78
|
+
|
|
79
|
+
## Host-app contract
|
|
80
|
+
|
|
81
|
+
The host app owns fetching the org list and the active org id, passing `role` as its **own field**
|
|
82
|
+
(never concatenated into `label` — that is what the subtitle line exists for), switching scope on
|
|
83
|
+
`onValueChange`, and **placement** (e.g. tickets-mobile mounts it at the top of its landing tab).
|
|
84
|
+
|
|
85
|
+
## Known gaps
|
|
86
|
+
|
|
87
|
+
- No search/filter for a long org list — web auto-adds one at ≥6 orgs; fine at the org counts real
|
|
88
|
+
users have today, revisit if that changes.
|
|
89
|
+
- **No roving tabindex / arrow keys on the row list** — each row is still its own tab stop, which is
|
|
90
|
+
acceptable at real org counts (the same reason there is no search box) but would want
|
|
91
|
+
`useRovingKeys` if that list ever grows.
|
|
92
|
+
|
|
93
|
+
## Performance contract
|
|
94
|
+
|
|
95
|
+
- The sheet's rows go through `core/list`'s `VirtualList` with `itemHeight =
|
|
96
|
+
ORG_SWITCHER_ROW_MIN_HEIGHT` (rows have a fixed 44dp floor, so `getItemLayout` is exact), and the
|
|
97
|
+
whole sheet is built only while `open`.
|
|
98
|
+
- `OrgSwitcherRow` is extracted + `React.memo`'d and takes an **id-argument** callback
|
|
99
|
+
(`onSelect(option.value)`), never an inline arrow per row. `renderItem`/`keyExtractor` are
|
|
100
|
+
`useCallback`s (ESLint enforces it).
|
|
101
|
+
- Every theme-derived value that reaches a row or a hot style array is `useMemo`'d on `[theme…]`:
|
|
102
|
+
`resolveOrgSwitcherRowColors` (resting + pressed, resolved once each), the `*Structure(theme)`
|
|
103
|
+
results, the text style arrays, `options.find`, and `resolveOrgSwitcherAccessibility`. A fresh
|
|
104
|
+
object here silently defeats the row's `memo`.
|
|
105
|
+
|
|
106
|
+
## Motion (`core/motion` only — never a local duration)
|
|
107
|
+
|
|
108
|
+
- **Press** — trigger and rows use `usePressMotion`; the animated layer is an inner
|
|
109
|
+
`Animated.View` (`*ContentStructure`), so the row/trigger *fill* still comes from `Pressable`'s
|
|
110
|
+
`pressed` state exactly as the contrast table above measures it.
|
|
111
|
+
- **Active check** — fades via `useMotion().timing` with the skip-first-mount guard, so a row
|
|
112
|
+
scrolled into view already-active snaps instead of animating. The icon keeps its `selected &&`
|
|
113
|
+
conditional render.
|
|
114
|
+
- **Sheet** — `useEnterExit(open)` on the panel; the `Modal` keeps `visible={open}` with
|
|
115
|
+
`animationType="none"` so the library owns the reveal and the sheet always fully unmounts when
|
|
116
|
+
closed (never gated on an animation callback). This replaced the old `reducedMotion ? "none" :
|
|
117
|
+
"fade"` — reduce-motion is now handled inside `core/motion` (`motion.enabled === false` snaps).
|
|
118
|
+
|
|
119
|
+
## Modernization (v1.0.7)
|
|
120
|
+
|
|
121
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* OrgSwitcher — a trigger showing the active org (avatar + name) that opens a sheet of every org
|
|
5
|
+
* the user belongs to: identity-tinted avatar, org name, the user's role on a second line, and an
|
|
6
|
+
* accent tint + check on the active one. Renders nothing when there's ≤1 option — a switcher with
|
|
7
|
+
* a single choice has nothing to switch to.
|
|
8
|
+
*
|
|
9
|
+
* It owns its trigger and sheet outright rather than presetting `Select`, mirroring web's
|
|
10
|
+
* OrgSwitcher (which owns its Popover rather than wrapping a generic select). `Select`'s row
|
|
11
|
+
* contract is closed at "one label, one optional leading node, a check when active" — a role
|
|
12
|
+
* subtitle and a tinted active row are org-switching concerns, not things every select should grow.
|
|
13
|
+
*
|
|
14
|
+
* Fully controlled and store-agnostic: the host app supplies the org list and owns wherever the
|
|
15
|
+
* active org actually lives (Redux, context, …) — this module never reads or dispatches app state,
|
|
16
|
+
* the same contract every other module in this library holds to.
|
|
17
|
+
*
|
|
18
|
+
* `Modal` is imported directly from `"react-native"`, and the web-portal branch mirrors `Select`'s
|
|
19
|
+
* — see that file's header for why both are deliberate.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
import { memo, useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
|
|
23
|
+
import { Animated, Modal, Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
24
|
+
import { useDismissOnEscape, useFocusTrap } from "../../core/a11y/keyboard";
|
|
25
|
+
import { Icon } from "../../core/icon/index.js";
|
|
26
|
+
import { VirtualList } from "../../core/list/index.js";
|
|
27
|
+
import { useAnimatedValue, useEnterExit, useMotion, usePressMotion } from "../../core/motion/index.js";
|
|
28
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
29
|
+
import { Avatar } from "../avatar/index.js";
|
|
30
|
+
import { ModalPortalContext } from "../modal/ModalPortalContext.js";
|
|
31
|
+
import { renderWebPortal } from "../modal/renderWebPortal";
|
|
32
|
+
import { ORG_SWITCHER_ROW_ICON_SIZE, ORG_SWITCHER_ROW_MIN_HEIGHT, ORG_SWITCHER_SIZES, orgInitials, orgSwitcherOverlayStructure, orgSwitcherRowBodyStructure, orgSwitcherRowContentStructure, orgSwitcherRowStructure, orgSwitcherSheetStructure, orgSwitcherTriggerContentStructure, orgSwitcherTriggerStructure, orgSwitcherTriggerValueStructure, resolveOrgSwitcherAccessibility, resolveOrgSwitcherRowColors, resolveOrgSwitcherTriggerColors } from "./OrgSwitcher.variants.js";
|
|
33
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
34
|
+
const ICON_STROKE = 2;
|
|
35
|
+
// Decorative dismiss scrim behind the sheet — a design constant, not a role token: it is neither
|
|
36
|
+
// text nor an interactive boundary, so WCAG's contrast minimums don't apply to it.
|
|
37
|
+
const BACKDROP_SCRIM = "#00000099";
|
|
38
|
+
const OrgSwitcherRow = /*#__PURE__*/memo(function OrgSwitcherRow({
|
|
39
|
+
option,
|
|
40
|
+
selected,
|
|
41
|
+
theme,
|
|
42
|
+
spec,
|
|
43
|
+
onSelect,
|
|
44
|
+
testID
|
|
45
|
+
}) {
|
|
46
|
+
const motion = useMotion();
|
|
47
|
+
const press = usePressMotion();
|
|
48
|
+
const handlePress = useCallback(() => onSelect(option.value), [onSelect, option.value]);
|
|
49
|
+
const restingColors = useMemo(() => resolveOrgSwitcherRowColors(theme.colors, selected, false), [theme.colors, selected]);
|
|
50
|
+
const pressedColors = useMemo(() => resolveOrgSwitcherRowColors(theme.colors, selected, true), [theme.colors, selected]);
|
|
51
|
+
const rowStructure = useMemo(() => orgSwitcherRowStructure(theme), [theme]);
|
|
52
|
+
const contentStructure = useMemo(() => orgSwitcherRowContentStructure(theme), [theme]);
|
|
53
|
+
const bodyStructure = useMemo(() => orgSwitcherRowBodyStructure(theme), [theme]);
|
|
54
|
+
const rowStyle = useCallback(({
|
|
55
|
+
pressed
|
|
56
|
+
}) => [rowStructure, {
|
|
57
|
+
backgroundColor: pressed ? pressedColors.background : restingColors.background
|
|
58
|
+
}], [rowStructure, pressedColors, restingColors]);
|
|
59
|
+
const nameStyle = useMemo(() => [theme.fontStyleForWeight(selected ? theme.fontWeights.semibold : theme.fontWeights.regular), {
|
|
60
|
+
fontSize: theme.fontSizes.md,
|
|
61
|
+
color: restingColors.text
|
|
62
|
+
}], [theme, selected, restingColors]);
|
|
63
|
+
const roleStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
64
|
+
fontSize: theme.fontSizes.sm,
|
|
65
|
+
color: restingColors.subtitle
|
|
66
|
+
}], [theme, restingColors]);
|
|
67
|
+
const checkOpacity = useAnimatedValue(selected ? 1 : 0);
|
|
68
|
+
const checkStyle = useMemo(() => ({
|
|
69
|
+
opacity: checkOpacity
|
|
70
|
+
}), [checkOpacity]);
|
|
71
|
+
const skipFirst = useRef(true);
|
|
72
|
+
const running = useRef(null);
|
|
73
|
+
useEffect(() => {
|
|
74
|
+
running.current?.stop();
|
|
75
|
+
// A row scrolled into view already-selected must snap, never fade — no motion during scroll.
|
|
76
|
+
if (skipFirst.current) {
|
|
77
|
+
skipFirst.current = false;
|
|
78
|
+
checkOpacity.setValue(selected ? 1 : 0);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
if (!motion.enabled) {
|
|
82
|
+
checkOpacity.setValue(selected ? 1 : 0);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
running.current = motion.timing(checkOpacity, selected ? 1 : 0, {
|
|
86
|
+
duration: "fast"
|
|
87
|
+
});
|
|
88
|
+
running.current.start();
|
|
89
|
+
return () => running.current?.stop();
|
|
90
|
+
}, [selected, motion, checkOpacity]);
|
|
91
|
+
useEffect(() => () => running.current?.stop(), []);
|
|
92
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
93
|
+
testID: testID ? `${testID}-option-${option.value}` : undefined,
|
|
94
|
+
accessibilityRole: "menuitem",
|
|
95
|
+
"aria-selected": selected,
|
|
96
|
+
onPress: handlePress,
|
|
97
|
+
onPressIn: press.onPressIn,
|
|
98
|
+
onPressOut: press.onPressOut,
|
|
99
|
+
style: rowStyle,
|
|
100
|
+
children: /*#__PURE__*/_jsxs(Animated.View, {
|
|
101
|
+
style: [contentStructure, press.style],
|
|
102
|
+
children: [/*#__PURE__*/_jsx(Avatar, {
|
|
103
|
+
size: spec.avatarSize,
|
|
104
|
+
shape: "rounded",
|
|
105
|
+
source: option.avatarSource,
|
|
106
|
+
initials: option.avatarInitials || orgInitials(option.label),
|
|
107
|
+
identity: option.label
|
|
108
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
109
|
+
style: bodyStructure,
|
|
110
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
111
|
+
numberOfLines: 1,
|
|
112
|
+
style: nameStyle,
|
|
113
|
+
children: option.label
|
|
114
|
+
}), option.role !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
115
|
+
numberOfLines: 1,
|
|
116
|
+
style: roleStyle,
|
|
117
|
+
children: option.role
|
|
118
|
+
})]
|
|
119
|
+
}), selected && /*#__PURE__*/_jsx(Animated.View, {
|
|
120
|
+
style: checkStyle,
|
|
121
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
122
|
+
name: "check",
|
|
123
|
+
size: ORG_SWITCHER_ROW_ICON_SIZE,
|
|
124
|
+
color: restingColors.icon,
|
|
125
|
+
strokeWidth: ICON_STROKE
|
|
126
|
+
})
|
|
127
|
+
})]
|
|
128
|
+
})
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
export const OrgSwitcher = /*#__PURE__*/memo(function OrgSwitcher({
|
|
132
|
+
options,
|
|
133
|
+
value,
|
|
134
|
+
onValueChange,
|
|
135
|
+
placeholder = "Select organization",
|
|
136
|
+
size = "md",
|
|
137
|
+
containerStyle,
|
|
138
|
+
testID
|
|
139
|
+
}) {
|
|
140
|
+
const theme = useTheme();
|
|
141
|
+
const portalContainer = useContext(ModalPortalContext);
|
|
142
|
+
const sheetRef = useRef(null);
|
|
143
|
+
const [open, setOpen] = useState(false);
|
|
144
|
+
const sheetMotion = useEnterExit(open);
|
|
145
|
+
const triggerPress = usePressMotion();
|
|
146
|
+
const spec = ORG_SWITCHER_SIZES[size];
|
|
147
|
+
const selectedOption = useMemo(() => options.find(option => option.value === value), [options, value]);
|
|
148
|
+
const triggerColors = useMemo(() => resolveOrgSwitcherTriggerColors(theme.colors, false), [theme.colors]);
|
|
149
|
+
const pressedTriggerColors = useMemo(() => resolveOrgSwitcherTriggerColors(theme.colors, true), [theme.colors]);
|
|
150
|
+
const a11y = useMemo(() => resolveOrgSwitcherAccessibility({
|
|
151
|
+
open,
|
|
152
|
+
selectedLabel: selectedOption?.label,
|
|
153
|
+
placeholder
|
|
154
|
+
}), [open, selectedOption, placeholder]);
|
|
155
|
+
const triggerStructure = useMemo(() => orgSwitcherTriggerStructure(theme, {
|
|
156
|
+
size
|
|
157
|
+
}), [theme, size]);
|
|
158
|
+
const triggerStyle = useCallback(({
|
|
159
|
+
pressed
|
|
160
|
+
}) => [triggerStructure, {
|
|
161
|
+
backgroundColor: pressed ? pressedTriggerColors.background : triggerColors.background,
|
|
162
|
+
borderColor: triggerColors.border
|
|
163
|
+
}], [triggerStructure, pressedTriggerColors, triggerColors]);
|
|
164
|
+
const triggerContentStructure = useMemo(() => orgSwitcherTriggerContentStructure(theme), [theme]);
|
|
165
|
+
const triggerValueStructure = useMemo(() => orgSwitcherTriggerValueStructure(theme), [theme]);
|
|
166
|
+
const triggerTextStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.semibold), {
|
|
167
|
+
flexShrink: 1,
|
|
168
|
+
fontSize: spec.fontSize,
|
|
169
|
+
color: selectedOption === undefined ? triggerColors.placeholder : triggerColors.text
|
|
170
|
+
}], [theme, spec, selectedOption, triggerColors]);
|
|
171
|
+
const overlayStructure = useMemo(() => orgSwitcherOverlayStructure(theme), [theme]);
|
|
172
|
+
const sheetStyle = useMemo(() => [orgSwitcherSheetStructure(theme), {
|
|
173
|
+
backgroundColor: theme.colors.bg.surface
|
|
174
|
+
}], [theme]);
|
|
175
|
+
const rootStyle = useMemo(() => [styles.container, containerStyle], [containerStyle]);
|
|
176
|
+
const openSheet = useCallback(() => setOpen(true), []);
|
|
177
|
+
const closeMenu = useCallback(() => setOpen(false), []);
|
|
178
|
+
const selectOption = useCallback(nextValue => {
|
|
179
|
+
onValueChange(nextValue);
|
|
180
|
+
setOpen(false);
|
|
181
|
+
}, [onValueChange]);
|
|
182
|
+
const keyExtractor = useCallback(option => option.value, []);
|
|
183
|
+
const renderItem = useCallback(({
|
|
184
|
+
item: option
|
|
185
|
+
}) => /*#__PURE__*/_jsx(OrgSwitcherRow, {
|
|
186
|
+
option: option,
|
|
187
|
+
selected: option.value === value,
|
|
188
|
+
theme: theme,
|
|
189
|
+
spec: spec,
|
|
190
|
+
onSelect: selectOption,
|
|
191
|
+
testID: testID
|
|
192
|
+
}), [value, theme, spec, selectOption, testID]);
|
|
193
|
+
|
|
194
|
+
// Only on the portal branch: the RN <Modal> path below already gets Escape/trap/restore from
|
|
195
|
+
// react-native-web's own <Modal>, and two of each would fight. See ../modal/Modal.tsx.
|
|
196
|
+
const portalled = Platform.OS === "web" && portalContainer != null;
|
|
197
|
+
useDismissOnEscape(portalled && open, closeMenu);
|
|
198
|
+
useFocusTrap(sheetRef, portalled && open);
|
|
199
|
+
if (options.length <= 1) return null;
|
|
200
|
+
const sheet = open ? /*#__PURE__*/_jsxs(_Fragment, {
|
|
201
|
+
children: [/*#__PURE__*/_jsx(Pressable, {
|
|
202
|
+
testID: testID ? `${testID}-backdrop` : undefined,
|
|
203
|
+
accessible: false,
|
|
204
|
+
tabIndex: -1,
|
|
205
|
+
style: styles.backdrop,
|
|
206
|
+
onPress: closeMenu
|
|
207
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
208
|
+
style: overlayStructure,
|
|
209
|
+
pointerEvents: "box-none",
|
|
210
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
211
|
+
ref: sheetRef,
|
|
212
|
+
style: [sheetStyle, sheetMotion.style],
|
|
213
|
+
children: /*#__PURE__*/_jsx(VirtualList, {
|
|
214
|
+
data: options,
|
|
215
|
+
keyExtractor: keyExtractor,
|
|
216
|
+
renderItem: renderItem,
|
|
217
|
+
itemHeight: ORG_SWITCHER_ROW_MIN_HEIGHT
|
|
218
|
+
})
|
|
219
|
+
})
|
|
220
|
+
})]
|
|
221
|
+
}) : null;
|
|
222
|
+
const menu = portalled ? open ? renderWebPortal(/*#__PURE__*/_jsx(View, {
|
|
223
|
+
style: StyleSheet.absoluteFill,
|
|
224
|
+
pointerEvents: "box-none",
|
|
225
|
+
children: sheet
|
|
226
|
+
}), portalContainer) : null : /*#__PURE__*/_jsx(Modal, {
|
|
227
|
+
visible: open,
|
|
228
|
+
transparent: true,
|
|
229
|
+
animationType: "none",
|
|
230
|
+
onRequestClose: closeMenu,
|
|
231
|
+
children: sheet
|
|
232
|
+
});
|
|
233
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
234
|
+
style: rootStyle,
|
|
235
|
+
children: [/*#__PURE__*/_jsx(Pressable, {
|
|
236
|
+
testID: testID,
|
|
237
|
+
accessibilityRole: a11y.accessibilityRole,
|
|
238
|
+
accessibilityLabel: a11y.accessibilityLabel,
|
|
239
|
+
"aria-expanded": a11y["aria-expanded"],
|
|
240
|
+
onPress: openSheet,
|
|
241
|
+
onPressIn: triggerPress.onPressIn,
|
|
242
|
+
onPressOut: triggerPress.onPressOut,
|
|
243
|
+
hitSlop: spec.hitSlop,
|
|
244
|
+
style: triggerStyle,
|
|
245
|
+
children: /*#__PURE__*/_jsxs(Animated.View, {
|
|
246
|
+
style: [triggerContentStructure, triggerPress.style],
|
|
247
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
248
|
+
style: triggerValueStructure,
|
|
249
|
+
children: [selectedOption ? /*#__PURE__*/_jsx(Avatar, {
|
|
250
|
+
size: spec.avatarSize,
|
|
251
|
+
shape: "rounded",
|
|
252
|
+
source: selectedOption.avatarSource,
|
|
253
|
+
initials: selectedOption.avatarInitials || orgInitials(selectedOption.label),
|
|
254
|
+
identity: selectedOption.label
|
|
255
|
+
}) : /*#__PURE__*/_jsx(Icon, {
|
|
256
|
+
name: "building-2",
|
|
257
|
+
size: spec.iconSize,
|
|
258
|
+
color: triggerColors.icon,
|
|
259
|
+
strokeWidth: ICON_STROKE
|
|
260
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
261
|
+
numberOfLines: 1,
|
|
262
|
+
style: triggerTextStyle,
|
|
263
|
+
children: selectedOption?.label ?? placeholder
|
|
264
|
+
})]
|
|
265
|
+
}), /*#__PURE__*/_jsx(Icon, {
|
|
266
|
+
name: "chevrons-up-down",
|
|
267
|
+
size: spec.iconSize,
|
|
268
|
+
color: triggerColors.icon,
|
|
269
|
+
strokeWidth: ICON_STROKE
|
|
270
|
+
})]
|
|
271
|
+
})
|
|
272
|
+
}), menu]
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
const styles = StyleSheet.create({
|
|
276
|
+
container: {
|
|
277
|
+
alignSelf: "stretch"
|
|
278
|
+
},
|
|
279
|
+
backdrop: {
|
|
280
|
+
...StyleSheet.absoluteFill,
|
|
281
|
+
backgroundColor: BACKDROP_SCRIM
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
//# sourceMappingURL=OrgSwitcher.js.map
|