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,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* AvatarGroup — a horizontal stack of `Avatar`s with negative overlap and a `+N` overflow pill when
|
|
5
|
+
* `avatars.length` exceeds `max`. Each face is this library's own `Avatar` module — never a hand-rolled
|
|
6
|
+
* image/initials pair — so list recycling, identity hashing, and shape defaults stay consistent.
|
|
7
|
+
*
|
|
8
|
+
* No `accessibilityRole` of its own: each composed `Avatar` carries its own optional label; the
|
|
9
|
+
* overflow pill is hidden from assistive tech as decorative chrome (the visible faces carry identity).
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { memo, useMemo } from "react";
|
|
13
|
+
import { Text, View } from "react-native";
|
|
14
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
15
|
+
import { Avatar } from "../avatar/index.js";
|
|
16
|
+
import { AVATAR_GROUP_DEFAULT_MAX, avatarGroupItemStructure, avatarGroupOverflowLabelStructure, avatarGroupOverflowStructure, avatarGroupStructure, resolveAvatarGroupColors, resolveAvatarGroupOverflowCount, resolveAvatarGroupOverlap, resolveAvatarGroupVisibleCount } from "./AvatarGroup.variants.js";
|
|
17
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
18
|
+
export const AvatarGroup = /*#__PURE__*/memo(function AvatarGroup({
|
|
19
|
+
avatars,
|
|
20
|
+
max = AVATAR_GROUP_DEFAULT_MAX,
|
|
21
|
+
size = "md",
|
|
22
|
+
style,
|
|
23
|
+
testID
|
|
24
|
+
}) {
|
|
25
|
+
const theme = useTheme();
|
|
26
|
+
const colors = useMemo(() => resolveAvatarGroupColors(theme.colors), [theme.colors]);
|
|
27
|
+
const overlap = resolveAvatarGroupOverlap(size);
|
|
28
|
+
const visibleCount = resolveAvatarGroupVisibleCount(avatars.length, max);
|
|
29
|
+
const overflowCount = resolveAvatarGroupOverflowCount(avatars.length, visibleCount);
|
|
30
|
+
const visibleAvatars = useMemo(() => avatars.slice(0, visibleCount), [avatars, visibleCount]);
|
|
31
|
+
const rootStyle = useMemo(() => [avatarGroupStructure(theme), style], [theme, style]);
|
|
32
|
+
const faces = useMemo(() => visibleAvatars.map((item, index) => /*#__PURE__*/_jsx(View, {
|
|
33
|
+
style: [avatarGroupItemStructure(theme), {
|
|
34
|
+
borderColor: colors.ring,
|
|
35
|
+
marginLeft: index === 0 ? 0 : overlap,
|
|
36
|
+
zIndex: visibleAvatars.length - index
|
|
37
|
+
}],
|
|
38
|
+
children: /*#__PURE__*/_jsx(Avatar, {
|
|
39
|
+
size: size,
|
|
40
|
+
source: item.source,
|
|
41
|
+
initials: item.initials,
|
|
42
|
+
identity: item.identity,
|
|
43
|
+
accessibilityLabel: item.accessibilityLabel,
|
|
44
|
+
testID: testID === undefined ? undefined : `${testID}-avatar-${index}`
|
|
45
|
+
})
|
|
46
|
+
}, `${item.source?.uri ?? item.initials ?? item.identity ?? "avatar"}-${index}`)), [visibleAvatars, theme, colors, overlap, size, testID]);
|
|
47
|
+
const overflowStyle = useMemo(() => [avatarGroupItemStructure(theme), avatarGroupOverflowStructure(theme, {
|
|
48
|
+
size
|
|
49
|
+
}), {
|
|
50
|
+
borderColor: colors.ring,
|
|
51
|
+
marginLeft: overlap,
|
|
52
|
+
backgroundColor: colors.overflowBackground,
|
|
53
|
+
alignItems: "center",
|
|
54
|
+
justifyContent: "center",
|
|
55
|
+
zIndex: 0
|
|
56
|
+
}], [theme, size, colors, overlap]);
|
|
57
|
+
const overflowLabelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.semibold), avatarGroupOverflowLabelStructure(theme, {
|
|
58
|
+
size
|
|
59
|
+
}), {
|
|
60
|
+
color: colors.overflowText
|
|
61
|
+
}], [theme, size, colors]);
|
|
62
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
63
|
+
testID: testID,
|
|
64
|
+
style: rootStyle,
|
|
65
|
+
children: [faces, overflowCount > 0 ? /*#__PURE__*/_jsx(View, {
|
|
66
|
+
testID: testID === undefined ? undefined : `${testID}-overflow`,
|
|
67
|
+
accessibilityElementsHidden: true,
|
|
68
|
+
importantForAccessibility: "no-hide-descendants",
|
|
69
|
+
style: overflowStyle,
|
|
70
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
71
|
+
style: overflowLabelStyle,
|
|
72
|
+
children: `+${overflowCount}`
|
|
73
|
+
})
|
|
74
|
+
}) : null]
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=AvatarGroup.js.map
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* AvatarGroup's style resolution — same split as `Avatar.variants`:
|
|
5
|
+
* - STRUCTURE (row overlap, overflow pill sizing) lives in the themed resolvers and plain constants.
|
|
6
|
+
* - COLOUR is resolved from the theme's ROLE colours, never a raw ramp and never a hardcoded hex.
|
|
7
|
+
*
|
|
8
|
+
* Free of React and lucide, so the behaviour tests import this directly (mocking only
|
|
9
|
+
* `react-native`'s `StyleSheet`, as `core/style` and every sibling module's tests do).
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { createThemedTextVariants, createThemedVariants } from "../../core/style/index.js";
|
|
13
|
+
import { AVATAR_SIZES } from "../avatar/Avatar.variants.js";
|
|
14
|
+
|
|
15
|
+
/** Default visible faces before collapsing the remainder into a `+N` overflow pill. */
|
|
16
|
+
export const AVATAR_GROUP_DEFAULT_MAX = 4;
|
|
17
|
+
|
|
18
|
+
/** Ring width separating stacked faces — drawn in the canvas colour so each face reads distinctly. */
|
|
19
|
+
export const AVATAR_GROUP_RING_WIDTH = 2;
|
|
20
|
+
export function resolveAvatarGroupColors(colors) {
|
|
21
|
+
return {
|
|
22
|
+
ring: colors.bg.canvas,
|
|
23
|
+
overflowBackground: colors.bg.sunken,
|
|
24
|
+
overflowText: colors.fg.muted
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/** Negative overlap as a fraction of the avatar diameter — same visual density as common stacked rows. */
|
|
29
|
+
export function resolveAvatarGroupOverlap(size) {
|
|
30
|
+
return Math.round(AVATAR_SIZES[size].box * -0.25);
|
|
31
|
+
}
|
|
32
|
+
export function resolveAvatarGroupVisibleCount(total, max) {
|
|
33
|
+
if (total <= max) return total;
|
|
34
|
+
// Reserve one slot for the overflow pill when there are hidden faces.
|
|
35
|
+
return Math.max(1, max - 1);
|
|
36
|
+
}
|
|
37
|
+
export function resolveAvatarGroupOverflowCount(total, visible) {
|
|
38
|
+
return Math.max(0, total - visible);
|
|
39
|
+
}
|
|
40
|
+
export const avatarGroupStructure = createThemedVariants(_theme => ({
|
|
41
|
+
base: {
|
|
42
|
+
flexDirection: "row",
|
|
43
|
+
alignItems: "center"
|
|
44
|
+
}
|
|
45
|
+
}));
|
|
46
|
+
export const avatarGroupItemStructure = createThemedVariants(_theme => ({
|
|
47
|
+
base: {
|
|
48
|
+
borderWidth: AVATAR_GROUP_RING_WIDTH
|
|
49
|
+
}
|
|
50
|
+
}));
|
|
51
|
+
export const avatarGroupOverflowStructure = createThemedVariants(theme => ({
|
|
52
|
+
variants: {
|
|
53
|
+
size: {
|
|
54
|
+
xs: {
|
|
55
|
+
width: AVATAR_SIZES.xs.box,
|
|
56
|
+
height: AVATAR_SIZES.xs.box,
|
|
57
|
+
borderRadius: theme.radii.full
|
|
58
|
+
},
|
|
59
|
+
sm: {
|
|
60
|
+
width: AVATAR_SIZES.sm.box,
|
|
61
|
+
height: AVATAR_SIZES.sm.box,
|
|
62
|
+
borderRadius: theme.radii.full
|
|
63
|
+
},
|
|
64
|
+
md: {
|
|
65
|
+
width: AVATAR_SIZES.md.box,
|
|
66
|
+
height: AVATAR_SIZES.md.box,
|
|
67
|
+
borderRadius: theme.radii.full
|
|
68
|
+
},
|
|
69
|
+
lg: {
|
|
70
|
+
width: AVATAR_SIZES.lg.box,
|
|
71
|
+
height: AVATAR_SIZES.lg.box,
|
|
72
|
+
borderRadius: theme.radii.full
|
|
73
|
+
},
|
|
74
|
+
xl: {
|
|
75
|
+
width: AVATAR_SIZES.xl.box,
|
|
76
|
+
height: AVATAR_SIZES.xl.box,
|
|
77
|
+
borderRadius: theme.radii.full
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
defaultVariants: {
|
|
82
|
+
size: "md"
|
|
83
|
+
}
|
|
84
|
+
}));
|
|
85
|
+
export const avatarGroupOverflowLabelStructure = createThemedTextVariants(_theme => ({
|
|
86
|
+
variants: {
|
|
87
|
+
size: {
|
|
88
|
+
xs: {
|
|
89
|
+
fontSize: AVATAR_SIZES.xs.fontSize
|
|
90
|
+
},
|
|
91
|
+
sm: {
|
|
92
|
+
fontSize: AVATAR_SIZES.sm.fontSize
|
|
93
|
+
},
|
|
94
|
+
md: {
|
|
95
|
+
fontSize: AVATAR_SIZES.md.fontSize
|
|
96
|
+
},
|
|
97
|
+
lg: {
|
|
98
|
+
fontSize: AVATAR_SIZES.lg.fontSize
|
|
99
|
+
},
|
|
100
|
+
xl: {
|
|
101
|
+
fontSize: AVATAR_SIZES.xl.fontSize
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
defaultVariants: {
|
|
106
|
+
size: "md"
|
|
107
|
+
}
|
|
108
|
+
}));
|
|
109
|
+
//# sourceMappingURL=AvatarGroup.variants.js.map
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# avatar-group/ — stacked avatars with overflow count
|
|
2
|
+
|
|
3
|
+
`AvatarGroup` renders a horizontal stack of library `Avatar`s with negative overlap and a `+N`
|
|
4
|
+
overflow pill when `avatars.length` exceeds `max`.
|
|
5
|
+
|
|
6
|
+
## Files
|
|
7
|
+
|
|
8
|
+
| File | Role |
|
|
9
|
+
|------|------|
|
|
10
|
+
| `AvatarGroup.tsx` | The component. Composes `Avatar` + overflow pill; `style` last. |
|
|
11
|
+
| `AvatarGroup.variants.ts` | Pure resolvers (colours, overlap math, overflow counts) + themed structural resolvers. |
|
|
12
|
+
| `index.ts` | Public surface: `AvatarGroup`, `AvatarGroupProps`, `AvatarGroupItem`, `AvatarSize`. |
|
|
13
|
+
| `__tests__/AvatarGroup.test.ts` | Pure: overflow math, WCAG on overflow pill label. |
|
|
14
|
+
| `__tests__/AvatarGroup.render.test.tsx` | Render: visible faces + `+N` pill, consumer `style` last. |
|
|
15
|
+
|
|
16
|
+
## Props
|
|
17
|
+
|
|
18
|
+
| Prop | Type | Default | Notes |
|
|
19
|
+
|------|------|---------|-------|
|
|
20
|
+
| `avatars` | `AvatarGroupItem[]` | — | Required. Each item forwards to `Avatar`. |
|
|
21
|
+
| `max` | `number` | `4` | Visible faces before collapsing remainder into `+N`. |
|
|
22
|
+
| `size` | `AvatarSize` | `"md"` | Shared size for every face and the overflow pill. |
|
|
23
|
+
| `style` | `LayoutStyle` | — | Layout-only, outermost, last. |
|
|
24
|
+
| `testID` | `string` | — | Forwarded to the outermost `View`; faces get `${testID}-avatar-{i}`. |
|
|
25
|
+
|
|
26
|
+
## Performance
|
|
27
|
+
|
|
28
|
+
Wrapped in `React.memo`. Visible slice is `useMemo`'d on `avatars` and `max`.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Public surface of `pixelize-native-library/avatar-group`. Value exports and type exports are split
|
|
5
|
+
* for `verbatimModuleSyntax`. The resolvers stay internal — a consumer configures an AvatarGroup
|
|
6
|
+
* through its props, never by importing its internals.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { AvatarGroup } from "./AvatarGroup.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -9,12 +9,13 @@
|
|
|
9
9
|
import { memo } from "react";
|
|
10
10
|
import { Text, View } from "react-native";
|
|
11
11
|
import { Icon } from "../../core/icon/index.js";
|
|
12
|
-
import { useTheme } from "../../theme/
|
|
12
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
13
13
|
import { BADGE_SIZES, badgeStructure, resolveBadgeAccessibility, resolveBadgeTone } from "./Badge.variants.js";
|
|
14
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
15
|
const ICON_STROKE = 2;
|
|
16
16
|
export const Badge = /*#__PURE__*/memo(function Badge({
|
|
17
17
|
tone = "accent",
|
|
18
|
+
customColors,
|
|
18
19
|
size = "md",
|
|
19
20
|
label,
|
|
20
21
|
icon,
|
|
@@ -23,7 +24,7 @@ export const Badge = /*#__PURE__*/memo(function Badge({
|
|
|
23
24
|
}) {
|
|
24
25
|
const theme = useTheme();
|
|
25
26
|
const spec = BADGE_SIZES[size];
|
|
26
|
-
const toneColors = resolveBadgeTone(theme.colors, tone);
|
|
27
|
+
const toneColors = resolveBadgeTone(theme.colors, tone, customColors);
|
|
27
28
|
const a11y = resolveBadgeAccessibility({
|
|
28
29
|
label
|
|
29
30
|
});
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
|
|
14
14
|
import { createThemedVariants } from "../../core/style/index.js";
|
|
15
15
|
|
|
16
|
-
/** `
|
|
16
|
+
/** `custom` requires `customColors` — server-driven hex escape hatch. */
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Badge-specific dimensions — a chip is never a touch target (Badge is a `View`, not a
|
|
@@ -53,7 +53,17 @@ export const BADGE_SIZES = {
|
|
|
53
53
|
* and measures ≥ 5.05:1 against the canvas incidentally) — so the border reuses it, giving a
|
|
54
54
|
* coloured outline that always matches the label, never an unreadable hairline.
|
|
55
55
|
*/
|
|
56
|
-
export function resolveBadgeTone(colors, tone) {
|
|
56
|
+
export function resolveBadgeTone(colors, tone, customColors) {
|
|
57
|
+
if (tone === "custom") {
|
|
58
|
+
if (!customColors) {
|
|
59
|
+
throw new Error('Badge tone="custom" requires customColors={{ bg, fg }}.');
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
fill: customColors.bg,
|
|
63
|
+
text: customColors.fg,
|
|
64
|
+
border: customColors.fg
|
|
65
|
+
};
|
|
66
|
+
}
|
|
57
67
|
switch (tone) {
|
|
58
68
|
case "accent":
|
|
59
69
|
return {
|
|
@@ -80,3 +80,9 @@ brand × mode.
|
|
|
80
80
|
## Performance
|
|
81
81
|
|
|
82
82
|
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Its one child, `Icon`, only ever receives primitives — nothing to memoize.
|
|
83
|
+
|
|
84
|
+
## Modernization (v1.0.7)
|
|
85
|
+
|
|
86
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
87
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
88
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Banner — a persistent, INLINE message that sits in the layout and stays until dismissed.
|
|
5
|
+
* Distinct from the two neighbours it is easy to confuse it with: `toast` is a transient overlay
|
|
6
|
+
* that disappears on a timer, and `alert-dialog` is a modal that blocks the screen for a decision.
|
|
7
|
+
*
|
|
8
|
+
* `visible` drives a fade+slide enter/exit through `useEnterExit`. It defaults to `true`, and
|
|
9
|
+
* `useEnterExit` deliberately skips the enter for a banner that mounts already visible — so a
|
|
10
|
+
* consumer that never passes `visible` sees exactly the old, animation-free behaviour.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { memo, useCallback, useMemo } from "react";
|
|
14
|
+
import { Animated, Pressable, Text, View } from "react-native";
|
|
15
|
+
import { Icon } from "../../core/icon/index.js";
|
|
16
|
+
import { useEnterExit } from "../../core/motion/index.js";
|
|
17
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
18
|
+
import { BANNER_DISMISS_ICON_SIZE, BANNER_ICON_SIZE, BANNER_MIN_TOUCH_TARGET, bannerStructure, resolveBannerAccessibility, resolveBannerIcon, resolveBannerTone } from "./Banner.variants.js";
|
|
19
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
+
const ICON_STROKE = 2;
|
|
21
|
+
const hitSlopFor = size => {
|
|
22
|
+
const inset = Math.max(0, (BANNER_MIN_TOUCH_TARGET - size) / 2);
|
|
23
|
+
return {
|
|
24
|
+
top: inset,
|
|
25
|
+
bottom: inset,
|
|
26
|
+
left: inset,
|
|
27
|
+
right: inset
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
const DISMISS_HIT_SLOP = hitSlopFor(BANNER_DISMISS_ICON_SIZE);
|
|
31
|
+
export const Banner = /*#__PURE__*/memo(function Banner({
|
|
32
|
+
tone = "info",
|
|
33
|
+
variant = "subtle",
|
|
34
|
+
message,
|
|
35
|
+
title,
|
|
36
|
+
icon,
|
|
37
|
+
visible = true,
|
|
38
|
+
onDismiss,
|
|
39
|
+
dismissLabel = "Dismiss",
|
|
40
|
+
action,
|
|
41
|
+
style,
|
|
42
|
+
testID
|
|
43
|
+
}) {
|
|
44
|
+
const theme = useTheme();
|
|
45
|
+
const enterExit = useEnterExit(visible);
|
|
46
|
+
const colors = useMemo(() => resolveBannerTone(theme.colors, tone, variant), [theme.colors, tone, variant]);
|
|
47
|
+
const a11y = useMemo(() => resolveBannerAccessibility({
|
|
48
|
+
tone,
|
|
49
|
+
title,
|
|
50
|
+
message
|
|
51
|
+
}), [tone, title, message]);
|
|
52
|
+
const glyph = icon === null ? undefined : icon ?? resolveBannerIcon(tone);
|
|
53
|
+
const handleAction = useCallback(() => action?.onPress(), [action]);
|
|
54
|
+
|
|
55
|
+
// `style` stays last; the enter/exit style holds only opacity/transform, which `LayoutStyle` cannot name.
|
|
56
|
+
const rootStyle = useMemo(() => [bannerStructure(theme), {
|
|
57
|
+
backgroundColor: colors.fill,
|
|
58
|
+
borderColor: colors.border
|
|
59
|
+
}, enterExit.style, style], [theme, colors, enterExit.style, style]);
|
|
60
|
+
const contentStyle = useMemo(() => ({
|
|
61
|
+
flex: 1,
|
|
62
|
+
rowGap: theme.space[1]
|
|
63
|
+
}), [theme]);
|
|
64
|
+
const textBlockStyle = useMemo(() => ({
|
|
65
|
+
rowGap: theme.space[1]
|
|
66
|
+
}), [theme]);
|
|
67
|
+
const titleStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.semibold), {
|
|
68
|
+
fontSize: theme.fontSizes.md,
|
|
69
|
+
color: colors.text
|
|
70
|
+
}], [theme, colors]);
|
|
71
|
+
const messageStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
72
|
+
fontSize: theme.fontSizes.sm,
|
|
73
|
+
color: colors.text
|
|
74
|
+
}], [theme, colors]);
|
|
75
|
+
const actionStyle = useMemo(() => ({
|
|
76
|
+
alignSelf: "flex-start",
|
|
77
|
+
paddingVertical: theme.space[1]
|
|
78
|
+
}), [theme]);
|
|
79
|
+
const actionLabelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.semibold), {
|
|
80
|
+
fontSize: theme.fontSizes.sm,
|
|
81
|
+
color: colors.text,
|
|
82
|
+
textDecorationLine: "underline"
|
|
83
|
+
}], [theme, colors]);
|
|
84
|
+
const actionHitSlop = useMemo(() => hitSlopFor(theme.fontSizes.sm), [theme]);
|
|
85
|
+
if (!enterExit.mounted) return null;
|
|
86
|
+
return /*#__PURE__*/_jsxs(Animated.View, {
|
|
87
|
+
testID: testID,
|
|
88
|
+
style: rootStyle,
|
|
89
|
+
children: [glyph && /*#__PURE__*/_jsx(Icon, {
|
|
90
|
+
name: glyph,
|
|
91
|
+
size: BANNER_ICON_SIZE,
|
|
92
|
+
color: colors.text,
|
|
93
|
+
strokeWidth: ICON_STROKE
|
|
94
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
95
|
+
style: contentStyle,
|
|
96
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
97
|
+
accessible: a11y.accessible,
|
|
98
|
+
accessibilityRole: a11y.accessibilityRole,
|
|
99
|
+
accessibilityLabel: a11y.accessibilityLabel,
|
|
100
|
+
style: textBlockStyle,
|
|
101
|
+
children: [title && /*#__PURE__*/_jsx(Text, {
|
|
102
|
+
style: titleStyle,
|
|
103
|
+
children: title
|
|
104
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
105
|
+
style: messageStyle,
|
|
106
|
+
children: message
|
|
107
|
+
})]
|
|
108
|
+
}), action && /*#__PURE__*/_jsx(Pressable, {
|
|
109
|
+
testID: testID ? `${testID}-action` : undefined,
|
|
110
|
+
accessibilityRole: "button",
|
|
111
|
+
accessibilityLabel: action.label,
|
|
112
|
+
onPress: handleAction,
|
|
113
|
+
hitSlop: actionHitSlop,
|
|
114
|
+
style: actionStyle,
|
|
115
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
116
|
+
style: actionLabelStyle,
|
|
117
|
+
children: action.label
|
|
118
|
+
})
|
|
119
|
+
})]
|
|
120
|
+
}), onDismiss && /*#__PURE__*/_jsx(Pressable, {
|
|
121
|
+
testID: testID ? `${testID}-dismiss` : undefined,
|
|
122
|
+
accessibilityRole: "button",
|
|
123
|
+
accessibilityLabel: dismissLabel,
|
|
124
|
+
onPress: onDismiss,
|
|
125
|
+
hitSlop: DISMISS_HIT_SLOP,
|
|
126
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
127
|
+
name: "x",
|
|
128
|
+
size: BANNER_DISMISS_ICON_SIZE,
|
|
129
|
+
color: colors.text,
|
|
130
|
+
strokeWidth: ICON_STROKE
|
|
131
|
+
})
|
|
132
|
+
})]
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
//# sourceMappingURL=Banner.js.map
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Banner's style resolution — the same split Badge/Button use:
|
|
5
|
+
* - STRUCTURE (padding, radius, gaps, border WIDTH) in the themed `bannerStructure` resolver.
|
|
6
|
+
* - COLOUR is `tone` × `variant` driven, resolved from ROLE colours only.
|
|
7
|
+
*
|
|
8
|
+
* Free of React and of `lucide`, so the WCAG tests import it directly (mocking only
|
|
9
|
+
* `react-native`'s `StyleSheet`, as `core/style` does).
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { createThemedVariants } from "../../core/style/index.js";
|
|
13
|
+
/**
|
|
14
|
+
* `subtle` reuses Badge's exact role mapping, which is already measured ≥ 4.5:1 for the label on its
|
|
15
|
+
* own fill and ≥ 3:1 for `status.text`-as-border against both the canvas and that fill, on every
|
|
16
|
+
* brand × mode. `solid` inverts onto the designed `solid`/`onSolid` pairing; `neutral` has no solid
|
|
17
|
+
* rung, so it inverts onto `fg.default` + `bg.surface` — the body-text pairing, high-contrast by
|
|
18
|
+
* construction.
|
|
19
|
+
*/
|
|
20
|
+
export function resolveBannerTone(colors, tone, variant) {
|
|
21
|
+
if (variant === "solid") {
|
|
22
|
+
switch (tone) {
|
|
23
|
+
case "accent":
|
|
24
|
+
return {
|
|
25
|
+
fill: colors.accent.solid,
|
|
26
|
+
text: colors.accent.onSolid,
|
|
27
|
+
border: colors.accent.solid
|
|
28
|
+
};
|
|
29
|
+
case "neutral":
|
|
30
|
+
return {
|
|
31
|
+
fill: colors.fg.default,
|
|
32
|
+
text: colors.bg.surface,
|
|
33
|
+
border: colors.fg.default
|
|
34
|
+
};
|
|
35
|
+
default:
|
|
36
|
+
{
|
|
37
|
+
// `status.solid` is tuned for a compact badge/toast chip, not a page-width surface — it
|
|
38
|
+
// measures only 1.8-2.6:1 against a near-white canvas for success/warning/info on every
|
|
39
|
+
// brand. `status.text` (already proven >=3:1 against canvas, via the subtle variant's own
|
|
40
|
+
// border) doubles as the fill here, paired with its own `onText` label.
|
|
41
|
+
const status = colors.status[tone];
|
|
42
|
+
return {
|
|
43
|
+
fill: status.text,
|
|
44
|
+
text: status.onText,
|
|
45
|
+
border: status.text
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
switch (tone) {
|
|
51
|
+
case "accent":
|
|
52
|
+
return {
|
|
53
|
+
fill: colors.accent.subtle,
|
|
54
|
+
text: colors.accent.text,
|
|
55
|
+
border: colors.border.interactive
|
|
56
|
+
};
|
|
57
|
+
case "neutral":
|
|
58
|
+
return {
|
|
59
|
+
fill: colors.bg.sunken,
|
|
60
|
+
text: colors.fg.default,
|
|
61
|
+
border: colors.border.interactive
|
|
62
|
+
};
|
|
63
|
+
default:
|
|
64
|
+
{
|
|
65
|
+
const status = colors.status[tone];
|
|
66
|
+
return {
|
|
67
|
+
fill: status.subtle,
|
|
68
|
+
text: status.text,
|
|
69
|
+
border: status.text
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/** Leading glyph when the caller passes none. `accent`/`neutral` carry no severity, so they get none. */
|
|
76
|
+
export function resolveBannerIcon(tone) {
|
|
77
|
+
switch (tone) {
|
|
78
|
+
case "success":
|
|
79
|
+
return "circle-check";
|
|
80
|
+
case "warning":
|
|
81
|
+
return "triangle-alert";
|
|
82
|
+
case "danger":
|
|
83
|
+
return "circle-alert";
|
|
84
|
+
case "info":
|
|
85
|
+
return "info";
|
|
86
|
+
default:
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* `danger`/`warning` announce as `alert` so a screen reader interrupts; the rest are passive text.
|
|
92
|
+
* Title and message collapse into ONE accessible node (WCAG 4.1.2) rather than two stray strings.
|
|
93
|
+
*/
|
|
94
|
+
export function resolveBannerAccessibility(input) {
|
|
95
|
+
const interrupts = input.tone === "danger" || input.tone === "warning";
|
|
96
|
+
return {
|
|
97
|
+
accessible: true,
|
|
98
|
+
accessibilityRole: interrupts ? "alert" : "text",
|
|
99
|
+
accessibilityLabel: input.title ? `${input.title}. ${input.message}` : input.message
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
export const BANNER_ICON_SIZE = 20;
|
|
103
|
+
/** Dismiss and action are real touch targets; the visual glyph is smaller than its 44dp hit area. */
|
|
104
|
+
export const BANNER_DISMISS_ICON_SIZE = 16;
|
|
105
|
+
export const BANNER_MIN_TOUCH_TARGET = 44;
|
|
106
|
+
export const bannerStructure = createThemedVariants(theme => ({
|
|
107
|
+
base: {
|
|
108
|
+
flexDirection: "row",
|
|
109
|
+
alignItems: "flex-start",
|
|
110
|
+
columnGap: theme.space[3],
|
|
111
|
+
padding: theme.space[3],
|
|
112
|
+
borderRadius: theme.radii.base,
|
|
113
|
+
borderWidth: theme.borderWidths.thin
|
|
114
|
+
},
|
|
115
|
+
variants: {},
|
|
116
|
+
defaultVariants: {}
|
|
117
|
+
}));
|
|
118
|
+
//# sourceMappingURL=Banner.variants.js.map
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# banner/ — a persistent inline message
|
|
2
|
+
|
|
3
|
+
`Banner` sits IN the layout and stays until the user (or the app) removes it. It is the third member
|
|
4
|
+
of a family that is easy to confuse:
|
|
5
|
+
|
|
6
|
+
| Use | Module |
|
|
7
|
+
|-----|--------|
|
|
8
|
+
| Transient, floats over the screen, disappears on a timer | `toast` |
|
|
9
|
+
| Modal, blocks the screen, demands a decision | `alert-dialog` |
|
|
10
|
+
| **Persistent, inline, does not block** | **`banner`** |
|
|
11
|
+
|
|
12
|
+
## Files
|
|
13
|
+
|
|
14
|
+
| File | Role |
|
|
15
|
+
|------|------|
|
|
16
|
+
| `Banner.tsx` | The component. Composition + a11y wiring; the dismiss and action affordances are separate `Pressable`s, both siblings of the accessible title+message block rather than descendants of it. |
|
|
17
|
+
| `Banner.variants.ts` | Pure resolvers (`resolveBannerTone`, `resolveBannerIcon`, `resolveBannerAccessibility`) + the themed `bannerStructure`. No React, no lucide. |
|
|
18
|
+
| `index.ts` | Public surface: `Banner`, `BannerProps`, `BannerAction`, the closed unions, `IconName`. |
|
|
19
|
+
| `__tests__/Banner.test.ts` | Pure: WCAG contrast (all brands × modes, both variants) + glyph and a11y contracts. |
|
|
20
|
+
| `__tests__/Banner.render.test.tsx` | Render: tones/variants, dismiss vs action isolation, alert-role announcement, and the structural check that neither control is a descendant of the accessible text block. |
|
|
21
|
+
|
|
22
|
+
## Props
|
|
23
|
+
|
|
24
|
+
| Prop | Type | Default | Notes |
|
|
25
|
+
|------|------|---------|-------|
|
|
26
|
+
| `message` | `string` | — | Required. |
|
|
27
|
+
| `title` | `string` | — | Optional heading above the message. |
|
|
28
|
+
| `tone` | `accent \| neutral \| success \| warning \| danger \| info` | `info` | Closed union. |
|
|
29
|
+
| `variant` | `subtle \| solid` | `subtle` | `subtle` tints; `solid` inverts onto a filled surface. |
|
|
30
|
+
| `icon` | `IconName \| null` | per tone | `null` suppresses the glyph entirely. |
|
|
31
|
+
| `onDismiss` | `() => void` | — | Absent = the banner cannot be closed. |
|
|
32
|
+
| `dismissLabel` | `string` | `"Dismiss"` | Screen-reader name for the close control. |
|
|
33
|
+
| `action` | `{ label, onPress }` | — | One inline action; more than one belongs in a dialog. |
|
|
34
|
+
| `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
|
|
35
|
+
| `testID` | `string` | — | Seeds `${testID}-dismiss` and `${testID}-action`. |
|
|
36
|
+
|
|
37
|
+
## Accessibility contract (WCAG)
|
|
38
|
+
|
|
39
|
+
- **4.1.2 / semantics** — title + message collapse into ONE accessible node, so a screen reader
|
|
40
|
+
announces the banner as a unit instead of two loose strings. Dismiss and action are their own
|
|
41
|
+
`button`-role elements with their own labels, so activating either can never be confused with the
|
|
42
|
+
other (they are also separate code paths — `onDismiss` vs `action.onPress`). Crucially, **both sit
|
|
43
|
+
OUTSIDE that accessible node**: an accessible node collapses its whole subtree into a single
|
|
44
|
+
element, so the action — which used to render inside it — could be tapped but never focused or
|
|
45
|
+
activated by VoiceOver/TalkBack, and its existence was not announced at all (the accessible name
|
|
46
|
+
is only `"title. message"`). The content column is now a plain layout `View` holding two siblings:
|
|
47
|
+
the accessible title+message block, and the action. `Banner.render.test.tsx` pins that structure.
|
|
48
|
+
- **4.1.3 status messages** — `danger` and `warning` announce with `accessibilityRole="alert"` so the
|
|
49
|
+
reader interrupts; the passive tones (`accent`, `neutral`, `success`, `info`) use `text` and are
|
|
50
|
+
read when focus reaches them. Severity, not styling, decides this.
|
|
51
|
+
- **1.4.3** — text is measured ≥ 4.5:1 against its own fill for every tone × **both** variants,
|
|
52
|
+
across all brands × both modes. The icon reuses the text colour exactly (never a second lookup), so
|
|
53
|
+
it inherits that proven ratio and clears its looser 3:1 non-text minimum for free — the same
|
|
54
|
+
reasoning `menu` and `badge` rely on.
|
|
55
|
+
- **1.4.11** — the `subtle` variant's border is measured ≥ 3:1 against both the page canvas and its
|
|
56
|
+
own fill; the `solid` variant has no distinct border, so its *fill* is measured ≥ 3:1 against the
|
|
57
|
+
canvas instead — otherwise a solid banner could be invisible on a same-toned page.
|
|
58
|
+
- **2.5.8 / 2.5.5 target size** — the dismiss glyph (16dp) and the action label are padded to a 44dp
|
|
59
|
+
touch target via `hitSlop`, so the visual size never dictates the tap size.
|
|
60
|
+
- **2.3.3** — nothing animates; a banner appears and stays. Nothing to suppress.
|
|
61
|
+
- **1.3.1** — the tone icon is redundant with the accessible title/message node right beside it (the
|
|
62
|
+
glyph repeats what `resolveBannerAccessibility`'s `alert`/`text` role and label already say), so it
|
|
63
|
+
must not reach assistive tech as a second, unexplained element. `Banner` never wraps it in a hidden
|
|
64
|
+
container itself — it relies on `core/icon`'s `Icon` defaulting to `aria-hidden` when rendered with
|
|
65
|
+
no `label`, which is every call site in this file (`Banner` never passes one). Fixed at the `Icon`
|
|
66
|
+
level rather than here because this exact gap — an un-wrapped `<Icon>` — was a repeated, per-consumer
|
|
67
|
+
mistake across the library, not a `Banner`-specific one.
|
|
68
|
+
|
|
69
|
+
## Patterns copied from the reference modules
|
|
70
|
+
|
|
71
|
+
1. **Structure vs colour split** — padding/radius/border-width via `createThemedVariants`; colour
|
|
72
|
+
resolved from `RoleColors` per `tone` × `variant`, applied inline.
|
|
73
|
+
2. **Pure, testable resolvers** in `Banner.variants.ts` — contrast is unit-tested against real
|
|
74
|
+
palettes, never eyeballed.
|
|
75
|
+
3. **Closed `tone` union** — resolved from role colours, never a free-form `color` prop.
|
|
76
|
+
4. **`subtle` reuses `badge`'s exact role mapping**, which is already measured safe on every brand ×
|
|
77
|
+
mode, rather than deriving a second, unproven tint.
|
|
78
|
+
|
|
79
|
+
## Design decisions specific to this module
|
|
80
|
+
|
|
81
|
+
- **`neutral` + `solid` inverts onto `fg.default` / `bg.surface`.** There is no `neutral.solid` rung
|
|
82
|
+
in the token set; the body-text pairing is high-contrast by construction, so it is the honest
|
|
83
|
+
inversion rather than inventing a rung.
|
|
84
|
+
- **`accent` and `neutral` get no default glyph.** An icon on a banner communicates *severity*; those
|
|
85
|
+
two tones carry none, so a glyph would be decoration pretending to be meaning. Callers can still
|
|
86
|
+
pass one explicitly.
|
|
87
|
+
- **Exactly one `action`.** Two or more competing actions is a decision, and a decision belongs in
|
|
88
|
+
`alert-dialog` where it can block. Keeping this to one keeps banners non-blocking by design.
|
|
89
|
+
- **No `onPress` on the banner body.** A whole-surface tap target next to a dismiss button produces
|
|
90
|
+
mis-taps; if the banner should navigate, use the `action`.
|
|
91
|
+
- **The action is a sibling of the accessible text block, not a child of it.** The dismiss control
|
|
92
|
+
was always shaped that way; the action was not, and that is exactly why it was invisible to
|
|
93
|
+
assistive tech. The content column carries the layout (`flex: 1` + `rowGap`), the inner block
|
|
94
|
+
carries `accessible` + the role + the combined name and only the `rowGap` between title and
|
|
95
|
+
message — so the rendered spacing is unchanged.
|
|
96
|
+
|
|
97
|
+
## Known gaps
|
|
98
|
+
|
|
99
|
+
- No auto-dismiss timer — that is `toast`'s job by definition.
|
|
100
|
+
- No stacking/queueing of multiple banners; a caller rendering several owns their order and spacing.
|
|
101
|
+
- No enter/exit animation. Adding one would need `useReducedMotion()` gating (see `2.3.3` above).
|
|
102
|
+
|
|
103
|
+
## Performance
|
|
104
|
+
|
|
105
|
+
Wrapped in `React.memo`. `bannerStructure` is a themed resolver, so the structural `StyleSheet`
|
|
106
|
+
compiles once per theme identity rather than per render. The action handler is `useCallback`'d;
|
|
107
|
+
`onDismiss` is passed to the `Pressable` verbatim, since the caller already owns its identity.
|
|
108
|
+
|
|
109
|
+
## Modernization (v1.0.7)
|
|
110
|
+
|
|
111
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
112
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
113
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|