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
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Combobox's pure data/style/behaviour resolution — same split every reference module uses:
|
|
5
|
+
* - STRUCTURE (heights, padding, radius, border WIDTH) lives in the `createThemedVariants`
|
|
6
|
+
* resolvers, registered once per theme identity.
|
|
7
|
+
* - COLOUR is resolved from the theme's ROLE colours by `resolveComboboxTriggerColors` /
|
|
8
|
+
* `resolveComboboxRowColors` / `resolveComboboxErrorTextColor`, never a raw ramp, never a
|
|
9
|
+
* hardcoded hex.
|
|
10
|
+
* - ACCESSIBILITY prop derivation (`resolveComboboxAccessibility`, `resolveComboboxRowAccessibility`)
|
|
11
|
+
* is kept pure so the "disabled blocks opening / expanded tracks the sheet / selected+disabled per
|
|
12
|
+
* row" contract is unit-testable without rendering React Native.
|
|
13
|
+
* - SEARCH/SELECTION logic (`defaultComboboxFilter`, `resolveComboboxSummary`) is pure too, so the
|
|
14
|
+
* filtering and trigger-summary rules are unit-tested directly. `defaultComboboxFilter` is the
|
|
15
|
+
* SPEC of the default local filter, and is what a caller-supplied `filterFn` replaces — but the
|
|
16
|
+
* component no longer calls it per option: it memoizes one normalized-label array per `options`
|
|
17
|
+
* identity and reuses it for every pass (`Combobox.tsx`), which must stay byte-identical to this
|
|
18
|
+
* function's result (`Combobox.filter.test.ts` pins that).
|
|
19
|
+
*
|
|
20
|
+
* `ComboboxOption` lives here, not in `Combobox.tsx`: unlike `Select`'s/`MultiSelect`'s option types
|
|
21
|
+
* (which carry a `ReactNode leading` and so must live in the component file), every field here is a
|
|
22
|
+
* plain value — no React import needed — so it can be pure like the rest of this file.
|
|
23
|
+
*
|
|
24
|
+
* Free of React and of any `Modal`/`Pressable`/`TextInput` import, so the WCAG + logic tests import
|
|
25
|
+
* this directly (mocking only `react-native`'s `StyleSheet`, as `core/style` does).
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
import { createThemedVariants } from "../../core/style/index.js";
|
|
29
|
+
/** Same touch-target floor as Button/Select/Input (44dp — Apple HIG minimum, WCAG 2.5.5 AAA). */
|
|
30
|
+
export const MIN_TOUCH_TARGET = 44;
|
|
31
|
+
const slopFor = dimension => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - dimension) / 2));
|
|
32
|
+
|
|
33
|
+
/** No `size` prop (unlike Select/MultiSelect) — not part of this module's spec, and a search sheet's
|
|
34
|
+
* proportions don't benefit from the sm/lg range those triggers offer. One fixed box, sized exactly
|
|
35
|
+
* like Input's/Select's `md`, so a Combobox lines up with either in the same form. */
|
|
36
|
+
export const COMBOBOX_FIELD_HEIGHT = 40;
|
|
37
|
+
export const COMBOBOX_FIELD_FONT_SIZE = 16;
|
|
38
|
+
export const COMBOBOX_FIELD_ICON_SIZE = 18;
|
|
39
|
+
export const COMBOBOX_FIELD_HIT_SLOP = slopFor(COMBOBOX_FIELD_HEIGHT);
|
|
40
|
+
|
|
41
|
+
/** The trigger's clear ("x") affordance, nested inside the field `Pressable` exactly like
|
|
42
|
+
* `DatePicker`'s own clear button — RN's responder system resolves a touch to the innermost
|
|
43
|
+
* `Pressable` that claims it, so the field's own `onPress` never also fires. Narrower than the
|
|
44
|
+
* field is tall, so it reaches 44×44 through `hitSlop` rather than through its own width. */
|
|
45
|
+
export const COMBOBOX_CLEAR_BUTTON_WIDTH = 32;
|
|
46
|
+
export const COMBOBOX_CLEAR_BUTTON_HIT_SLOP = slopFor(COMBOBOX_CLEAR_BUTTON_WIDTH);
|
|
47
|
+
|
|
48
|
+
/** Minimum height for an option row — a list item is still an interactive target (WCAG 2.5.8). Not a
|
|
49
|
+
* fixed height: a row with a `description` line grows past this floor. */
|
|
50
|
+
export const COMBOBOX_ROW_MIN_HEIGHT = 44;
|
|
51
|
+
export const COMBOBOX_ROW_ICON_SIZE = 18;
|
|
52
|
+
export const DEFAULT_PLACEHOLDER = "Select…";
|
|
53
|
+
export const DEFAULT_SEARCH_PLACEHOLDER = "Search…";
|
|
54
|
+
export const DEFAULT_EMPTY_MESSAGE = "No results";
|
|
55
|
+
export const DEFAULT_MAX_HEIGHT = 320;
|
|
56
|
+
|
|
57
|
+
/** `onSearchChange` debounce window — a fixed design constant, not a caller-facing prop (the spec
|
|
58
|
+
* this module was built against fixes it at 250ms). */
|
|
59
|
+
export const SEARCH_DEBOUNCE_MS = 250;
|
|
60
|
+
|
|
61
|
+
/** Local-filter debounce — shorter than the networked `SEARCH_DEBOUNCE_MS`; only outruns a typing burst. */
|
|
62
|
+
export const FILTER_DEBOUNCE_MS = 140;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Strips combining diacritical marks after Unicode NFD decomposition, so "José" and "jose" match the
|
|
66
|
+
* same query. Lowercased last so the comparison is also case-insensitive.
|
|
67
|
+
*/
|
|
68
|
+
export function normalizeForSearch(value) {
|
|
69
|
+
return value.normalize("NFD").replace(/\p{Diacritic}/gu, "").toLowerCase();
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* The option list's container role — what makes `aria-activedescendant` on the search field mean
|
|
74
|
+
* anything. RN 0.86's role unions have no `listbox` (both `Role` and `AccessibilityRole` jump
|
|
75
|
+
* `list` → `listitem` → `log`), so the widening lives on this ONE audited line instead of a cast at
|
|
76
|
+
* the call site. It is a type gap, not a runtime one: `react-native-web` emits the string as the DOM
|
|
77
|
+
* `role` verbatim, and native maps roles it doesn't know to nothing.
|
|
78
|
+
*/
|
|
79
|
+
export const COMBOBOX_LISTBOX_ROLE = "listbox";
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* The DOM id of one option row. `aria-activedescendant` and `nativeID` must agree exactly, and
|
|
83
|
+
* every `aria-*` prop is UNCHECKED by TypeScript on an RN component (hyphenated JSX attributes are
|
|
84
|
+
* not type-checked at all) — so the id is derived here once rather than interpolated at each call
|
|
85
|
+
* site, where a typo would silently produce a dangling reference no compiler would catch.
|
|
86
|
+
*/
|
|
87
|
+
export function comboboxOptionNativeId(listId, value) {
|
|
88
|
+
return `${listId}-option-${value}`;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* The default local `filterFn`: case-insensitive, diacritic-insensitive substring match on `label`.
|
|
93
|
+
* An empty/whitespace-only query matches everything, so clearing the search box restores the full
|
|
94
|
+
* list instead of an empty one.
|
|
95
|
+
*/
|
|
96
|
+
export function defaultComboboxFilter(option, query) {
|
|
97
|
+
const trimmed = query.trim();
|
|
98
|
+
if (trimmed === "") return true;
|
|
99
|
+
return normalizeForSearch(option.label).includes(normalizeForSearch(trimmed));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* The trigger's display text — one rule for both single and multiple mode, since single mode is just
|
|
103
|
+
* "at most one selected value" flowing through the same collapsing rule: 0 → placeholder, 1 → that
|
|
104
|
+
* option's label, 2 → both labels joined, 3+ → "N selected". A selected value with no matching option
|
|
105
|
+
* (e.g. stale data) falls back to "1 selected" / the raw value rather than rendering nothing.
|
|
106
|
+
*/
|
|
107
|
+
export function resolveComboboxSummary(input) {
|
|
108
|
+
const {
|
|
109
|
+
options,
|
|
110
|
+
selectedValues,
|
|
111
|
+
placeholder
|
|
112
|
+
} = input;
|
|
113
|
+
const count = selectedValues.length;
|
|
114
|
+
if (count === 0) return placeholder;
|
|
115
|
+
const labelFor = value => options.find(option => option.value === value)?.label;
|
|
116
|
+
if (count === 1) {
|
|
117
|
+
const [only] = selectedValues;
|
|
118
|
+
return (only === undefined ? undefined : labelFor(only)) ?? "1 selected";
|
|
119
|
+
}
|
|
120
|
+
if (count === 2) {
|
|
121
|
+
return selectedValues.map(value => labelFor(value) ?? value).join(", ");
|
|
122
|
+
}
|
|
123
|
+
return `${count} selected`;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Maps trigger state onto role colours — the reason there is no free-form `color` prop. `error`
|
|
127
|
+
* mirrors `Input.resolveInputStatus`'s exact precedence: the error border reads `status.danger.solid`
|
|
128
|
+
* (NOT `status.danger.border`, which measures below 3:1 on every brand — see `Input.test.ts`'s
|
|
129
|
+
* identical finding).
|
|
130
|
+
*/
|
|
131
|
+
export function resolveComboboxTriggerColors(colors, state) {
|
|
132
|
+
return {
|
|
133
|
+
background: colors.bg.surface,
|
|
134
|
+
border: state.error ? colors.status.danger.solid : colors.border.interactive,
|
|
135
|
+
text: colors.fg.default,
|
|
136
|
+
placeholder: colors.fg.muted,
|
|
137
|
+
icon: colors.fg.muted
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/** The error message under the field, read on the canvas — same role `Input.resolveInputStatus` uses
|
|
142
|
+
* for its own `errorText`. */
|
|
143
|
+
export function resolveComboboxErrorTextColor(colors) {
|
|
144
|
+
return colors.status.danger.text;
|
|
145
|
+
}
|
|
146
|
+
export function resolveComboboxRowColors(colors) {
|
|
147
|
+
return {
|
|
148
|
+
background: colors.bg.surface,
|
|
149
|
+
text: colors.fg.default,
|
|
150
|
+
muted: colors.fg.muted,
|
|
151
|
+
icon: colors.fg.muted,
|
|
152
|
+
checkIcon: colors.fg.default,
|
|
153
|
+
pressedRow: colors.bg.sunken
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Derives the field's accessibility surface once, purely: `expanded` tracks whether the sheet is
|
|
158
|
+
* showing (WCAG 4.1.2), `disabled` blocks it from opening at all.
|
|
159
|
+
*/
|
|
160
|
+
export function resolveComboboxAccessibility(input) {
|
|
161
|
+
const disabled = input.disabled === true;
|
|
162
|
+
return {
|
|
163
|
+
accessibilityRole: "combobox",
|
|
164
|
+
"aria-disabled": disabled,
|
|
165
|
+
"aria-expanded": input.open,
|
|
166
|
+
disabled
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Every row is `menuitem` (matching this library's `Menu`), in BOTH single and multiple mode — the
|
|
171
|
+
* spec this module was built against fixes this role regardless of mode, unlike `MultiSelect`'s own
|
|
172
|
+
* `checkbox` rows. Selection state rides `aria-selected`, never `aria-checked`.
|
|
173
|
+
*/
|
|
174
|
+
export function resolveComboboxRowAccessibility(input) {
|
|
175
|
+
return {
|
|
176
|
+
accessibilityRole: "menuitem",
|
|
177
|
+
"aria-selected": input.selected,
|
|
178
|
+
"aria-disabled": input.disabled,
|
|
179
|
+
disabled: input.disabled
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Structural styles only — layout, height, padding, radius, border WIDTH. No colours (state-driven,
|
|
185
|
+
* applied inline over this), so this compiles once per theme identity via the themed resolver.
|
|
186
|
+
*/
|
|
187
|
+
export const comboboxFieldStructure = createThemedVariants(theme => ({
|
|
188
|
+
base: {
|
|
189
|
+
flexDirection: "row",
|
|
190
|
+
alignItems: "center",
|
|
191
|
+
columnGap: theme.space[2],
|
|
192
|
+
height: COMBOBOX_FIELD_HEIGHT,
|
|
193
|
+
paddingHorizontal: theme.space[4],
|
|
194
|
+
borderRadius: theme.radii.base,
|
|
195
|
+
borderWidth: theme.borderWidths.thin
|
|
196
|
+
}
|
|
197
|
+
}));
|
|
198
|
+
|
|
199
|
+
/** The open-target's own inner row — the selected option's icon (single mode) + the summary text,
|
|
200
|
+
* kept in one shrinkable cluster so the clear button and chevron stay pinned to the trailing edge. */
|
|
201
|
+
export const comboboxFieldValueStructure = createThemedVariants(theme => ({
|
|
202
|
+
base: {
|
|
203
|
+
flex: 1,
|
|
204
|
+
flexDirection: "row",
|
|
205
|
+
alignItems: "center",
|
|
206
|
+
columnGap: theme.space[2]
|
|
207
|
+
}
|
|
208
|
+
}));
|
|
209
|
+
export const comboboxClearButtonStructure = createThemedVariants(theme => ({
|
|
210
|
+
base: {
|
|
211
|
+
width: COMBOBOX_CLEAR_BUTTON_WIDTH,
|
|
212
|
+
alignSelf: "stretch",
|
|
213
|
+
alignItems: "center",
|
|
214
|
+
justifyContent: "center",
|
|
215
|
+
borderRadius: theme.radii.sm
|
|
216
|
+
}
|
|
217
|
+
}));
|
|
218
|
+
|
|
219
|
+
/** The full-screen overlay the sheet centers in — byte-identical to `Select`'s. `box-none` (applied
|
|
220
|
+
* by the component) lets a tap on its empty padding fall through to the backdrop press underneath. */
|
|
221
|
+
export const comboboxOverlayStructure = createThemedVariants(theme => ({
|
|
222
|
+
base: {
|
|
223
|
+
flex: 1,
|
|
224
|
+
justifyContent: "center",
|
|
225
|
+
paddingHorizontal: theme.space[6]
|
|
226
|
+
}
|
|
227
|
+
}));
|
|
228
|
+
|
|
229
|
+
/** No `maxHeight` baked in here — it is the one caller-configurable dimension (`maxHeight` prop,
|
|
230
|
+
* default `DEFAULT_MAX_HEIGHT`) and is applied inline over this at the component boundary. */
|
|
231
|
+
export const comboboxSheetStructure = createThemedVariants(theme => ({
|
|
232
|
+
base: {
|
|
233
|
+
borderRadius: theme.radii.base,
|
|
234
|
+
...theme.elevation.lg
|
|
235
|
+
}
|
|
236
|
+
}));
|
|
237
|
+
|
|
238
|
+
/** The search row's bottom border doubles as the divider between it and the option list — one fewer
|
|
239
|
+
* node than a dedicated `Divider`. Colour (`border.default`, the decorative rung) is applied inline. */
|
|
240
|
+
export const comboboxSearchRowStructure = createThemedVariants(theme => ({
|
|
241
|
+
base: {
|
|
242
|
+
flexDirection: "row",
|
|
243
|
+
alignItems: "center",
|
|
244
|
+
columnGap: theme.space[2],
|
|
245
|
+
height: COMBOBOX_FIELD_HEIGHT,
|
|
246
|
+
paddingHorizontal: theme.space[4],
|
|
247
|
+
borderBottomWidth: theme.borderWidths.thin
|
|
248
|
+
}
|
|
249
|
+
}));
|
|
250
|
+
|
|
251
|
+
/** The loading spinner / empty-message container — centered in the space the option list would
|
|
252
|
+
* otherwise occupy. */
|
|
253
|
+
export const comboboxListStateStructure = createThemedVariants(theme => ({
|
|
254
|
+
base: {
|
|
255
|
+
alignItems: "center",
|
|
256
|
+
justifyContent: "center",
|
|
257
|
+
paddingVertical: theme.space[6],
|
|
258
|
+
paddingHorizontal: theme.space[4]
|
|
259
|
+
}
|
|
260
|
+
}));
|
|
261
|
+
export const comboboxRowStructure = createThemedVariants(theme => ({
|
|
262
|
+
base: {
|
|
263
|
+
flexDirection: "row",
|
|
264
|
+
alignItems: "center",
|
|
265
|
+
minHeight: COMBOBOX_ROW_MIN_HEIGHT,
|
|
266
|
+
columnGap: theme.space[3],
|
|
267
|
+
paddingHorizontal: theme.space[4],
|
|
268
|
+
paddingVertical: theme.space[2]
|
|
269
|
+
}
|
|
270
|
+
}));
|
|
271
|
+
|
|
272
|
+
/** The label + optional description cluster — `rowGap` mirrors `ListItem`'s identical title/subtitle
|
|
273
|
+
* spacing. */
|
|
274
|
+
export const comboboxRowTextStructure = createThemedVariants(theme => ({
|
|
275
|
+
base: {
|
|
276
|
+
flex: 1,
|
|
277
|
+
rowGap: theme.space[1]
|
|
278
|
+
}
|
|
279
|
+
}));
|
|
280
|
+
//# sourceMappingURL=Combobox.variants.js.map
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# combobox/ — a searchable/filterable select in a native-Modal sheet
|
|
2
|
+
|
|
3
|
+
`Combobox` is a `Select`/`MultiSelect` sibling that adds search: a trigger field opens a sheet in
|
|
4
|
+
React Native's OWN `Modal` (never this library's own), containing an autofocused search box above a
|
|
5
|
+
filtered option list. It is a NEW module, not a `searchable` prop on `Select` — a text input owning
|
|
6
|
+
focus, live filtering, an async/loading path, and a "no results" state is a materially different
|
|
7
|
+
interaction model, and bolting that onto `Select` would double its complexity for every existing
|
|
8
|
+
caller who never needs search.
|
|
9
|
+
|
|
10
|
+
Two narrow, deliberate cross-module reads: `../modal/ModalPortalContext` + `../modal/renderWebPortal`
|
|
11
|
+
(a plain context + stateless helper, not the `Modal` component — the same web-portal opt-in
|
|
12
|
+
`Select`/`MultiSelect`/`Menu` use), and `Spinner` (a small, dependency-free leaf this library already
|
|
13
|
+
reuses directly, e.g. from `SearchBar`).
|
|
14
|
+
|
|
15
|
+
## Files
|
|
16
|
+
|
|
17
|
+
| File | Role |
|
|
18
|
+
|------|------|
|
|
19
|
+
| `Combobox.tsx` | The component. Trigger + `Modal` composition, open/close + search-query state, local/server filtering, single/multiple selection. |
|
|
20
|
+
| `Combobox.variants.ts` | `ComboboxOption`, pure resolvers (filtering, trigger-summary text, colours, hitSlop, accessibility) + themed structural resolvers. No React, no lucide. |
|
|
21
|
+
| `index.ts` | Public surface: `Combobox`, `ComboboxProps`, `ComboboxSingleProps`, `ComboboxMultipleProps`, `ComboboxOption`, `IconName`. |
|
|
22
|
+
| `__tests__/Combobox.test.ts` | Pure: WCAG contrast (all brands × modes), touch target, filtering, trigger-summary, and accessibility contracts. |
|
|
23
|
+
| `__tests__/Combobox.render.test.tsx` | Render: display, open/close, search filtering, single vs. multiple selection, clear, loading/empty states, web-portal opt-in, `keyboardShouldPersistTaps`, the row's resolved 44dp `minHeight`. |
|
|
24
|
+
| `comboboxKeys.ts` / `.web.ts` | This module's own arrow/Home/End/Enter listener — see Keyboard below for why `core/a11y`'s `useRovingKeys` cannot be used here. |
|
|
25
|
+
| `__tests__/Combobox.keyboard.test.tsx` | Web keyboard: `aria-activedescendant` tracks the arrows, Enter selects, Space stays with the search field, Escape closes, trigger opens on Space. |
|
|
26
|
+
| `__tests__/Combobox.filter.test.tsx` | The memoized filter matches `defaultComboboxFilter` exactly across diacritics/mixed case; a `filterFn` still runs per option. |
|
|
27
|
+
| `__tests__/Combobox.layout.test.tsx` | `getItemLayout` is derived for uniform rows and absent as soon as one option has a `description`. |
|
|
28
|
+
| `__tests__/Combobox.motion.test.tsx` | Reduce-motion (WCAG 2.3.3): check-glyph and press feedback snap to their final values, and `Animated.timing` is never called. |
|
|
29
|
+
|
|
30
|
+
## Props
|
|
31
|
+
|
|
32
|
+
| Prop | Type | Default | Notes |
|
|
33
|
+
|------|------|---------|-------|
|
|
34
|
+
| `options` | `ComboboxOption[]` (`{ value; label; icon?: IconName; description?: string; disabled?: boolean }`) | — | Required. |
|
|
35
|
+
| `value` / `onChange` | `string \| null` / `(value) => void` | — | Single mode (`multiple` absent/`false`). Required in that member of the union. |
|
|
36
|
+
| `multiple` | `true` | `false` | Switches to multi mode. |
|
|
37
|
+
| `values` / `onValuesChange` | `string[]` / `(values) => void` | — | Required when `multiple: true`. |
|
|
38
|
+
| `placeholder` | `string` | `"Select…"` | |
|
|
39
|
+
| `searchPlaceholder` | `string` | `"Search…"` | |
|
|
40
|
+
| `label` | `string` | — | Above the field; folded into its accessible name. |
|
|
41
|
+
| `disabled` | `boolean` | `false` | Blocks opening; dims the field. |
|
|
42
|
+
| `error` | `string` | — | Red border + message below the field, announced on both platforms via `useAnnounce` (`core/a11y`) — was `accessibilityLiveRegion` alone, silent on iOS. |
|
|
43
|
+
| `clearable` | `boolean` | `true` | Shows an "x" on the field once something is selected. |
|
|
44
|
+
| `loading` | `boolean` | `false` | Swaps the LIST area (not the search field) for a centered `Spinner`. |
|
|
45
|
+
| `emptyMessage` | `string` | `"No results"` | |
|
|
46
|
+
| `onSearchChange` | `(query: string) => void` | — | Presence = server-side filtering: `options` render verbatim, `filterFn` is ignored, `Combobox` never filters locally. Debounced 250ms. Absence = local filtering. **The prop most likely to be misused** — it replaces local filtering, never adds to it. |
|
|
47
|
+
| `filterFn` | `(option, query) => boolean` | `defaultComboboxFilter` | Local filtering only. Default is case- and diacritic-insensitive substring match on `label`. |
|
|
48
|
+
| `maxHeight` | `number` | `320` | Caps the whole sheet (search row + list), not the list alone. |
|
|
49
|
+
| `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
|
|
50
|
+
| `testID` | `string` | — | Seeds `-backdrop`, `-search`, `-spinner`, `-option-${value}` (+ `-content` / `-check` on that row's animated nodes), `-clear`, `-focus-ring`. |
|
|
51
|
+
|
|
52
|
+
No `size` prop — one fixed box sized like `Input`'s/`Select`'s `md`. `ComboboxProps` is a
|
|
53
|
+
**discriminated union**, not one flat interface: `multiple: true` requires `values`/`onValuesChange`,
|
|
54
|
+
the default requires `value`/`onChange` — a caller can never wire the wrong pair for the active mode
|
|
55
|
+
and have it silently do nothing. A deliberate refinement past the spec's flat prose description.
|
|
56
|
+
|
|
57
|
+
**Trigger summary text** — one rule for both modes (single mode is "at most one selected value"
|
|
58
|
+
through the same collapsing rule): 0 → placeholder, 1 → that option's label, 2 → both labels joined,
|
|
59
|
+
3+ → `"N selected"`.
|
|
60
|
+
|
|
61
|
+
## Accessibility contract (WCAG)
|
|
62
|
+
|
|
63
|
+
- **4.1.2** — the field is `accessibilityRole="combobox"` with flat `aria-expanded` tracking the
|
|
64
|
+
sheet. Rows are `accessibilityRole="menuitem"` (matching `Menu`, in BOTH single and multiple
|
|
65
|
+
mode — this module's own spec, unlike `MultiSelect`'s `checkbox` rows) with flat `aria-selected` /
|
|
66
|
+
`aria-disabled`. Flat, never `accessibilityState={{…}}`: react-native-web discards the object form
|
|
67
|
+
— see `docs/PLATFORM-A11Y-PROPS.md`.
|
|
68
|
+
- **2.5.x target size** — the field reaches ≥ 44dp via `hitSlop`; the clear button — nested inside
|
|
69
|
+
the field `Pressable`, same structure as `DatePicker`'s — reaches 44×44 the same way; option rows
|
|
70
|
+
have a 44dp `minHeight` directly.
|
|
71
|
+
- **1.4.3** — field/placeholder text, the label, option labels, descriptions, the search box's own
|
|
72
|
+
text, and the empty-state message are each measured ≥ 4.5:1 against their fill (including the row's
|
|
73
|
+
own pressed background), all 8 brands × both modes.
|
|
74
|
+
- The search box carries its own `accessibilityLabel` (the `searchPlaceholder` text) — it has no
|
|
75
|
+
visible label of its own, and the leading `search` glyph is decorative.
|
|
76
|
+
- **1.4.11** — the field boundary and the selected row's "check" glyph are measured ≥ 3:1.
|
|
77
|
+
- The empty state carries `accessibilityLiveRegion="polite"` on Android (iOS/VoiceOver announces a
|
|
78
|
+
text-content change in an already-visible node without it).
|
|
79
|
+
- **2.3.3** — RN's `Modal animationType` is always `"none"`; the reveal is `core/motion`'s
|
|
80
|
+
`useReveal`, which snaps to the final state (no tween) under reduce-motion. Row press feedback and
|
|
81
|
+
the check fade go through the same `motion.enabled` gate. Covered by
|
|
82
|
+
`__tests__/Combobox.motion.test.tsx`.
|
|
83
|
+
- Disabled is exempt from the contrast minimum (WCAG 1.4.3) — signalled by `opacity: 0.5`, matching
|
|
84
|
+
every sibling picker.
|
|
85
|
+
|
|
86
|
+
## Patterns copied from the reference modules
|
|
87
|
+
|
|
88
|
+
1. **Structure vs colour split**, **pure testable resolvers**, no `{...rest}`, `style` once, outermost, last.
|
|
89
|
+
2. **RN's own `Modal`**, never this library's — same reasoning as `Select`/`MultiSelect`/`Menu`.
|
|
90
|
+
3. **Built only while `open`** — the whole sheet mounts nothing while closed.
|
|
91
|
+
4. **`core/list`'s `VirtualList`, not `.map()`** — the option list windows a large roster, same as
|
|
92
|
+
`Select`/`MultiSelect`.
|
|
93
|
+
5. **The field is a single `Pressable`, clear button nested inside it** — copied from `DatePicker`:
|
|
94
|
+
the whole visual box (including the trailing chevron) opens the sheet, and RN's responder system
|
|
95
|
+
resolves a press on the nested clear button to that `Pressable` alone, so it never also fires the
|
|
96
|
+
field's own `onPress`.
|
|
97
|
+
|
|
98
|
+
## Design decisions specific to this module
|
|
99
|
+
|
|
100
|
+
- **The search field is its own local `TextInput`, not this library's `Input`** — `SearchBar` already
|
|
101
|
+
established why: `Input` is not `forwardRef` and exposes no `autoFocus` surface. Duplicates
|
|
102
|
+
`Input`'s size/role-colour contract locally rather than re-litigating that precedent.
|
|
103
|
+
- **Autofocus is belt-and-braces**: the `TextInput`'s own `autoFocus`, PLUS the native `<Modal>`'s
|
|
104
|
+
`onShow` imperatively calling `.focus()` via a ref — `autoFocus` alone is flaky timing-wise inside
|
|
105
|
+
a native `Modal` on iOS.
|
|
106
|
+
- **The trigger's focus/open ring is `Input`'s offset ring**, not `Select`/`MultiSelect`'s
|
|
107
|
+
border-colour swap (their own docs flag that as provisional). The border itself is `error`-driven
|
|
108
|
+
only — a border swap AND a ring would double-signal the same state.
|
|
109
|
+
- **`loading` swaps the LIST, not the search field's leading icon** (unlike `SearchBar`) — the spec
|
|
110
|
+
places the spinner "in the list area", so the search box keeps a static `search` glyph throughout.
|
|
111
|
+
- **Closing the sheet resets the search query** (and cancels any pending debounce) so a reopen always
|
|
112
|
+
starts clean.
|
|
113
|
+
- **`keyboardShouldPersistTaps="handled"`** on the `VirtualList` — otherwise a row tap while the
|
|
114
|
+
search field still has focus is swallowed as a keyboard-dismiss instead of a selection (WCAG
|
|
115
|
+
2.1.1). The search field autofocuses on every open, so this is the normal path, not an edge case.
|
|
116
|
+
`VirtualList` forwards the prop to both its FlashList and FlatList branches.
|
|
117
|
+
|
|
118
|
+
## Keyboard (web)
|
|
119
|
+
|
|
120
|
+
**`aria-activedescendant`, not roving focus.** DOM focus must stay in the search `TextInput` — moving
|
|
121
|
+
it into the list stops the user typing — so the arrows move only which option the field points at.
|
|
122
|
+
Each row gets a `nativeID` from `comboboxOptionNativeId()` (the one typed helper; every `aria-*` prop
|
|
123
|
+
is completely unchecked by TS, so the id is never interpolated at a call site) and every row is
|
|
124
|
+
`tabIndex={-1}`, leaving the field as the sheet's only tab stop. The active row is tinted with
|
|
125
|
+
`pressedRow`, since there is no focus ring to show it.
|
|
126
|
+
|
|
127
|
+
`useDismissOnEscape` + `useFocusTrap` come from `core/a11y/keyboard`; the trigger takes
|
|
128
|
+
`useSpaceActivation` (`role="combobox"` is not `button`, so RNW leaves Space dead there).
|
|
129
|
+
|
|
130
|
+
**The arrows come from this module's own `comboboxKeys.ts` / `.web.ts` pair, not `useRovingKeys`** —
|
|
131
|
+
that helper `preventDefault()`s Space unconditionally, which in a container holding a `TextInput`
|
|
132
|
+
makes the space bar untypable in the search box. A core option to opt out of Space activation would
|
|
133
|
+
let this collapse back into `useRovingKeys`.
|
|
134
|
+
|
|
135
|
+
The list container is `COMBOBOX_LISTBOX_ROLE`: RN 0.86's role unions have no `listbox`, so the
|
|
136
|
+
widening is one audited cast in `Combobox.variants.ts`.
|
|
137
|
+
|
|
138
|
+
## Known gaps
|
|
139
|
+
|
|
140
|
+
- No per-brand-verified imperative-focus behaviour under a real device/OS — not verifiable from a Jest
|
|
141
|
+
render test (the mocked `Modal` submodule never calls `onShow`).
|
|
142
|
+
- No measured anchor position — the sheet always centers, same known gap `Select`/`Menu` document.
|
|
143
|
+
- **Arrowing past the mounted window does not scroll.** `core/list` exposes no imperative handle,
|
|
144
|
+
so on a long list End can name an option the list has not mounted. Needs a `scrollToIndex` there.
|
|
145
|
+
|
|
146
|
+
## Performance
|
|
147
|
+
|
|
148
|
+
Wrapped in `React.memo`. The option list is `core/list`'s `VirtualList`, built only while `open`;
|
|
149
|
+
`filteredOptions` is `useMemo`'d over the *debounced* query, so a keystroke updates the visible text
|
|
150
|
+
without re-filtering the whole roster.
|
|
151
|
+
|
|
152
|
+
**The default filter does not call `defaultComboboxFilter` per option.** That function's whole cost is
|
|
153
|
+
`normalizeForSearch(label)` — an NFD normalization plus two allocations, per option, per pass.
|
|
154
|
+
`Combobox` memoizes one normalized-label array per `options` identity instead: measured on 5000
|
|
155
|
+
options, 1.99 ms/pass → 0.10 ms (20×; hoisting only the query buys 1.3×). `defaultComboboxFilter`
|
|
156
|
+
remains the exported SPEC and `Combobox.filter.test.tsx` pins the fast path to it byte-for-byte. A
|
|
157
|
+
caller-supplied `filterFn` keeps the per-option path — it reads the raw `label`.
|
|
158
|
+
|
|
159
|
+
**`itemHeight` is passed only when no option has a `description`.** It derives `getItemLayout`, whose
|
|
160
|
+
offsets are exact only for uniform rows, and a description row computes to ≈54dp against the 44 that
|
|
161
|
+
was being claimed — thousands of options deep that is blank gaps and a lying scrollbar
|
|
162
|
+
(`core/MODULE.md`). Mixed lists measure instead. The
|
|
163
|
+
debounce handler is `useCallback`'d since it owns a ref'd timer, mirroring `SearchBar`'s identical
|
|
164
|
+
handler.
|
|
165
|
+
|
|
166
|
+
## Motion
|
|
167
|
+
|
|
168
|
+
Via `core/motion` only — `opacity`/`transform`, native driver, all reduce-motion aware.
|
|
169
|
+
|
|
170
|
+
- **Row press** — `usePressMotion(rowDisabled)`; the row's content `Animated.View` (which carries
|
|
171
|
+
`comboboxRowStructure`, including the 44dp `minHeight`) scales/dips, while the `Pressable` keeps
|
|
172
|
+
the `pressedRow` background. `scale` is a transform, so the row's hit area is unaffected.
|
|
173
|
+
- **Check glyph** — fades in/out on selection change, but a row that mounts already-selected
|
|
174
|
+
(scrolled into view) snaps: a `skipFirst` ref suppresses the first effect run.
|
|
175
|
+
- **Sheet reveal** — `useReveal(open)`, the no-state variant: the sheet subtree is gated on `open`
|
|
176
|
+
(the same flag `<Modal visible>` uses), so there is no second source of truth and no extra render
|
|
177
|
+
per open/close. See `Select`/`MultiSelect` — all three pickers use this one gate.
|
|
178
|
+
|
|
179
|
+
## Modernization (v1.0.7)
|
|
180
|
+
|
|
181
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
182
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
183
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Native/default counterpart of `comboboxKeys.web.ts` — the `core/a11y/keyboard.ts` pattern, local
|
|
5
|
+
* to this module. Physical-keyboard interaction is a web concern, so this is a no-op with an
|
|
6
|
+
* identical signature, and Metro keeps the DOM half out of the native graph entirely.
|
|
7
|
+
*
|
|
8
|
+
* **Why this exists instead of `core/a11y`'s `useRovingKeys`.** That helper is the right one for
|
|
9
|
+
* `menu`/`select`/`multi-select`, but its Enter/Space branch calls `preventDefault()`
|
|
10
|
+
* unconditionally — and this container holds the search `TextInput`. Attaching it here would make
|
|
11
|
+
* the space bar untypable in the search field, so Combobox handles the four navigation keys plus
|
|
12
|
+
* Enter itself and leaves Space entirely to the input. Everything else it needs (Escape, the focus
|
|
13
|
+
* trap) still comes from `core/a11y/keyboard`.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
export function useComboboxKeys(_ref, _active, _options) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=comboboxKeys.js.map
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Web implementation of Combobox's own arrow-key navigation. Metro resolves this file only for a
|
|
5
|
+
* web bundle (see `comboboxKeys.ts`, which also documents why `core/a11y`'s `useRovingKeys` cannot
|
|
6
|
+
* be used for this particular container), so it is free to assume a DOM.
|
|
7
|
+
*
|
|
8
|
+
* DOM types are hand-written for the same reason `core/a11y/keyboard.web.ts` and
|
|
9
|
+
* `modules/modal/renderWebPortal.web.ts` hand-write theirs: `tsconfig.json` sets `"lib": ["ESNext"]`,
|
|
10
|
+
* so `document`/`HTMLElement`/`KeyboardEvent` do not exist as types, `any` is lint-banned, and
|
|
11
|
+
* augmenting `react-native`'s types would ship through `lib/typescript/**`.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { useEffect, useRef } from "react";
|
|
15
|
+
/** RNW forwards a component's ref to the host element, so a `RefObject<View>` holds a DOM node. */
|
|
16
|
+
function domNode(ref) {
|
|
17
|
+
return ref.current ?? null;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Arrow/Home/End/Enter navigation for the `aria-activedescendant` listbox pattern: focus never
|
|
22
|
+
* leaves the search field, only the active index moves.
|
|
23
|
+
*
|
|
24
|
+
* Listens on the CONTAINER in the CAPTURE phase — that is what gets past the focused `TextInput`,
|
|
25
|
+
* whose own key handling runs while the event bubbles.
|
|
26
|
+
*/
|
|
27
|
+
export function useComboboxKeys(ref, active, options) {
|
|
28
|
+
// Options are a fresh object each render; a ref keeps the listener subscribed once.
|
|
29
|
+
const optionsRef = useRef(options);
|
|
30
|
+
optionsRef.current = options;
|
|
31
|
+
useEffect(() => {
|
|
32
|
+
if (!active) return;
|
|
33
|
+
const node = domNode(ref);
|
|
34
|
+
if (node === null) return;
|
|
35
|
+
const moveTo = next => {
|
|
36
|
+
const {
|
|
37
|
+
count,
|
|
38
|
+
onActiveIndexChange
|
|
39
|
+
} = optionsRef.current;
|
|
40
|
+
if (count <= 0) return;
|
|
41
|
+
onActiveIndexChange((next % count + count) % count);
|
|
42
|
+
};
|
|
43
|
+
const handleKeyDown = event => {
|
|
44
|
+
const opts = optionsRef.current;
|
|
45
|
+
switch (event.key) {
|
|
46
|
+
case "ArrowDown":
|
|
47
|
+
event.preventDefault();
|
|
48
|
+
moveTo(opts.activeIndex + 1);
|
|
49
|
+
return;
|
|
50
|
+
case "ArrowUp":
|
|
51
|
+
event.preventDefault();
|
|
52
|
+
moveTo(opts.activeIndex - 1);
|
|
53
|
+
return;
|
|
54
|
+
case "Home":
|
|
55
|
+
event.preventDefault();
|
|
56
|
+
moveTo(0);
|
|
57
|
+
return;
|
|
58
|
+
case "End":
|
|
59
|
+
event.preventDefault();
|
|
60
|
+
moveTo(opts.count - 1);
|
|
61
|
+
return;
|
|
62
|
+
case "Enter":
|
|
63
|
+
if (opts.count <= 0) return;
|
|
64
|
+
event.preventDefault();
|
|
65
|
+
opts.onActivate(opts.activeIndex);
|
|
66
|
+
return;
|
|
67
|
+
// Space is NOT an activation key here: it is a character the search field must receive.
|
|
68
|
+
default:
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
node.addEventListener("keydown", handleKeyDown, true);
|
|
73
|
+
return () => node.removeEventListener("keydown", handleKeyDown, true);
|
|
74
|
+
}, [active, ref]);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=comboboxKeys.web.js.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Public surface of `pixelize-native-library/combobox`. Value exports and type exports are split for
|
|
5
|
+
* `verbatimModuleSyntax`. The resolvers (`resolveComboboxTriggerColors`, `defaultComboboxFilter`, …)
|
|
6
|
+
* stay internal — a consumer configures a Combobox through its props, never by importing its
|
|
7
|
+
* internals.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
export { Combobox } from "./Combobox.js";
|
|
11
|
+
|
|
12
|
+
// Re-exported so a caller can type `ComboboxOption.icon` without a separate import from `core/icon`.
|
|
13
|
+
//# sourceMappingURL=index.js.map
|