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
|
@@ -9,7 +9,7 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
|
|
|
9
9
|
| File | Role |
|
|
10
10
|
|------|------|
|
|
11
11
|
| `Slider.tsx` | The component. `PanResponder` wiring, layout measurement, accessibility actions. |
|
|
12
|
-
| `Slider.variants.ts` | Pure drag math (`resolveSliderPositionValue`, `snapSliderValue`, `stepSliderValue`, …), colour resolvers, accessibility resolver, and the `createThemedVariants` structural resolvers. No React, no PanResponder. |
|
|
12
|
+
| `Slider.variants.ts` | Pure drag math (`resolveSliderPositionValue`, `snapSliderValue`, `stepSliderValue`, …), the keyboard map (`resolveSliderKeyValue`, `sliderPageStep`), colour resolvers, accessibility resolver, and the `createThemedVariants` structural resolvers. No React, no PanResponder. |
|
|
13
13
|
| `index.ts` | Public surface: `Slider`, `SliderProps`, `SliderSize`. |
|
|
14
14
|
| `__tests__/Slider.test.ts` | Pure: WCAG contrast (all brands × modes) + drag-math/step/accessibility contracts. |
|
|
15
15
|
| `__tests__/Slider.render.test.tsx` | Render: layout-driven positioning, the REAL `PanResponder` gesture fired end-to-end, increment/decrement actions, disabled. |
|
|
@@ -27,7 +27,7 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
|
|
|
27
27
|
| `size` | `sm \| md` | `md` | Closed union — track height + thumb diameter. |
|
|
28
28
|
| `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once. No `width`/`fullWidth` prop — the row stretches to its container by RN's default `alignItems: stretch`, same as `ProgressBar`. |
|
|
29
29
|
| `accessibilityLabel` | `string` | — | **Required** — the control structurally never renders visible text, so this is the only accessible name a screen reader has (mirrors `Switch`'s and `Button`'s icon-only contract). |
|
|
30
|
-
| `testID` | `string` | — | Also stamps `${testID}-fill
|
|
30
|
+
| `testID` | `string` | — | Also stamps `${testID}-fill`, `${testID}-thumb`, and `${testID}-focus-ring` (present only while focused). |
|
|
31
31
|
|
|
32
32
|
## Two design choices (spec left these open — documented here)
|
|
33
33
|
|
|
@@ -45,6 +45,20 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
|
|
|
45
45
|
|
|
46
46
|
## Accessibility contract (WCAG)
|
|
47
47
|
|
|
48
|
+
- **2.1.1 (keyboard)** — the root sets `tabIndex={disabled ? -1 : 0}` (plus `focusable` for
|
|
49
|
+
native/TV) and handles `onKeyDown`. Both are load-bearing: RNW emits a `tabIndex` only for an
|
|
50
|
+
explicit `tabIndex`/`focusable`, a natively-focusable tag, or a role in
|
|
51
|
+
`button|checkbox|link|radio|textbox|switch`. `accessibilityRole="adjustable"` maps to
|
|
52
|
+
`role="slider"`, which is in none of them — and RNW does not forward RN's `accessible` prop at all
|
|
53
|
+
— so before this the control could not be reached by Tab, and `accessibilityActions` (a
|
|
54
|
+
screen-reader gesture) was the only non-pointer path. Keys, via `resolveSliderKeyValue`:
|
|
55
|
+
Left/Down decrement and Right/Up increment by `step`, Home/End jump to `min`/`max`, PageDown/PageUp
|
|
56
|
+
move by `sliderPageStep` (the whole number of steps nearest a tenth of the range, never fewer than
|
|
57
|
+
one). Every one of them fires `onSlidingComplete`, and calls `preventDefault` so the page does not
|
|
58
|
+
scroll instead. RN's TypeScript `ViewPropTypes.d.ts` omits `onKeyDown` (its Flow types declare it),
|
|
59
|
+
so the root `View` is re-typed once, locally, in `Slider.tsx`.
|
|
60
|
+
- **2.4.7 (focus visible)** — Button's `border.focus` ring, drawn a 2dp gap OUTSIDE the row (nothing
|
|
61
|
+
clips the slider), rendered only while focused and never while disabled.
|
|
48
62
|
- **2.5.7 (dragging movements)** — `accessibilityRole="adjustable"` with `accessibilityActions`
|
|
49
63
|
declaring `increment`/`decrement` and `onAccessibilityAction` adjusting `value` by `step`, clamped.
|
|
50
64
|
iOS's `adjustable` trait already offers these via the two-finger swipe gesture without the actions
|
|
@@ -65,8 +79,12 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
|
|
|
65
79
|
actually carries the boundary, not the 2dp ring.
|
|
66
80
|
- **2.3.3 (reduced motion)** — N/A. No animation: the thumb's position is a direct function of
|
|
67
81
|
`value`, never an eased/animated transition.
|
|
68
|
-
- `accessibilityValue={{
|
|
69
|
-
|
|
82
|
+
- Flat `aria-valuemin`/`aria-valuemax`/`aria-valuenow`, not `accessibilityValue={{…}}` —
|
|
83
|
+
react-native-web 0.21 drops the object form, so this used to announce `role="slider"` with no
|
|
84
|
+
position on web. The host here is a `View`, which merges the flat props into `accessibilityValue`
|
|
85
|
+
natively, so one form is correct on both platforms. `aria-valuenow` is clamped onto `[min, max]`
|
|
86
|
+
even if a caller passes an out-of-range `value`, so a screen reader never announces something the
|
|
87
|
+
track can't render. Proven on the real DOM by `__tests__/Slider.dom.test.tsx`.
|
|
70
88
|
|
|
71
89
|
## Patterns
|
|
72
90
|
|
|
@@ -88,8 +106,16 @@ primitive" philosophy `Modal`/`Select` already apply to RN's raw `<Modal>`.
|
|
|
88
106
|
|
|
89
107
|
## Known gaps
|
|
90
108
|
|
|
91
|
-
|
|
109
|
+
- The thumb does not move under an active drag on a keyboard-only device — that is by design (there
|
|
110
|
+
is no drag), but it also means `onSlidingComplete` fires per keystroke rather than once per
|
|
111
|
+
"gesture", so a consumer that persists on every completion will write once per arrow press.
|
|
92
112
|
|
|
93
113
|
## Performance
|
|
94
114
|
|
|
95
115
|
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). `applyTouch`/`handleLayout`/`handleAccessibilityAction` are only wired to the root `View`'s host props, never handed to a library child component — nothing to memoize.
|
|
116
|
+
|
|
117
|
+
## Modernization (v1.0.7)
|
|
118
|
+
|
|
119
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
120
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
121
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -21,9 +21,19 @@
|
|
|
21
21
|
|
|
22
22
|
import { memo, useRef, useState } from "react";
|
|
23
23
|
import { PanResponder, StyleSheet, View } from "react-native";
|
|
24
|
-
import { useTheme } from "../../theme/
|
|
25
|
-
import { resolveSliderAccessibility, resolveSliderPositionValue, resolveSliderThumbColors, resolveSliderTrackColors, sliderFillStructure, sliderRowStructure, SLIDER_HIT_SLOP, SLIDER_SIZES, sliderThumbStructure, sliderTrackStructure, sliderValueToFraction, stepSliderValue } from "./Slider.variants.js";
|
|
24
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
25
|
+
import { resolveSliderAccessibility, resolveSliderKeyValue, resolveSliderPositionValue, resolveSliderThumbColors, resolveSliderTrackColors, sliderFillStructure, sliderRowStructure, SLIDER_HIT_SLOP, SLIDER_SIZES, sliderThumbStructure, sliderTrackStructure, sliderValueToFraction, stepSliderValue } from "./Slider.variants.js";
|
|
26
26
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
27
|
+
/**
|
|
28
|
+
* RN's Flow `ViewProps` declares `onKeyDown` and react-native-web forwards it straight to the DOM
|
|
29
|
+
* node, but RN's TypeScript `ViewPropTypes.d.ts` omits it — this re-type is the only cast here.
|
|
30
|
+
*/
|
|
31
|
+
const KeyboardView = View;
|
|
32
|
+
|
|
33
|
+
// Same offset ring as Button: `border.focus` a small gap OUTSIDE the control, on the canvas, which
|
|
34
|
+
// is the surface that role token is proven ≥ 3:1 against (WCAG 2.4.11).
|
|
35
|
+
const FOCUS_RING_WIDTH = 2;
|
|
36
|
+
const FOCUS_RING_GAP = 2;
|
|
27
37
|
export const Slider = /*#__PURE__*/memo(function Slider(props) {
|
|
28
38
|
const {
|
|
29
39
|
value,
|
|
@@ -40,6 +50,8 @@ export const Slider = /*#__PURE__*/memo(function Slider(props) {
|
|
|
40
50
|
} = props;
|
|
41
51
|
const theme = useTheme();
|
|
42
52
|
const [trackWidth, setTrackWidth] = useState(0);
|
|
53
|
+
// Keyboard / external-keyboard / TV-remote focus (no-op on pure touch, correct everywhere else).
|
|
54
|
+
const [focused, setFocused] = useState(false);
|
|
43
55
|
|
|
44
56
|
// The PanResponder callbacks below are created ONCE (see `useState` lazy init further down) and
|
|
45
57
|
// must never close over a stale render's props. Reassigning a ref's `.current` in the render body
|
|
@@ -110,6 +122,13 @@ export const Slider = /*#__PURE__*/memo(function Slider(props) {
|
|
|
110
122
|
setTrackWidth(event.nativeEvent.layout.width);
|
|
111
123
|
};
|
|
112
124
|
|
|
125
|
+
/** One non-drag adjustment: report it, then mirror a drag's release. */
|
|
126
|
+
const commitValue = next => {
|
|
127
|
+
const state = live.current;
|
|
128
|
+
state.onValueChange(next);
|
|
129
|
+
state.onSlidingComplete?.(next);
|
|
130
|
+
};
|
|
131
|
+
|
|
113
132
|
// WCAG 2.5.7 — the non-drag alternative. iOS's `adjustable` trait already offers increment/decrement
|
|
114
133
|
// via the two-finger swipe gesture; Android TalkBack needs them declared as `accessibilityActions`
|
|
115
134
|
// (below) to surface them at all.
|
|
@@ -120,19 +139,42 @@ export const Slider = /*#__PURE__*/memo(function Slider(props) {
|
|
|
120
139
|
actionName
|
|
121
140
|
} = event.nativeEvent;
|
|
122
141
|
if (actionName !== "increment" && actionName !== "decrement") return;
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
142
|
+
commitValue(stepSliderValue(state.value, actionName === "increment" ? 1 : -1, state.min, state.max, state.step));
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
// WCAG 2.1.1 — the sighted keyboard user's only path in. `accessibilityActions` above is a
|
|
146
|
+
// screen-reader gesture, so without this the control is operable by pointer alone.
|
|
147
|
+
const handleKeyDown = event => {
|
|
148
|
+
const state = live.current;
|
|
149
|
+
if (state.disabled) return;
|
|
150
|
+
const next = resolveSliderKeyValue(event.nativeEvent.key, state);
|
|
151
|
+
if (next === undefined) return;
|
|
152
|
+
// Arrow/Page/Home/End would otherwise scroll the page out from under the control.
|
|
153
|
+
event.preventDefault?.();
|
|
154
|
+
commitValue(next);
|
|
126
155
|
};
|
|
127
|
-
|
|
156
|
+
const handleFocus = () => setFocused(true);
|
|
157
|
+
const handleBlur = () => setFocused(false);
|
|
158
|
+
return /*#__PURE__*/_jsxs(KeyboardView, {
|
|
128
159
|
testID: testID,
|
|
129
160
|
accessible: true,
|
|
130
161
|
accessibilityRole: a11y.accessibilityRole,
|
|
131
162
|
accessibilityLabel: accessibilityLabel,
|
|
132
|
-
|
|
133
|
-
|
|
163
|
+
"aria-valuemin": a11y["aria-valuemin"],
|
|
164
|
+
"aria-valuemax": a11y["aria-valuemax"],
|
|
165
|
+
"aria-valuenow": a11y["aria-valuenow"],
|
|
166
|
+
"aria-disabled": a11y["aria-disabled"],
|
|
134
167
|
accessibilityActions: a11y.accessibilityActions,
|
|
135
|
-
onAccessibilityAction: handleAccessibilityAction
|
|
168
|
+
onAccessibilityAction: handleAccessibilityAction
|
|
169
|
+
// RNW emits `tabIndex` only for an explicit one, an explicit `focusable`, a natively-focusable
|
|
170
|
+
// tag, or roles in button|checkbox|link|radio|textbox|switch — `adjustable` maps to
|
|
171
|
+
// `role="slider"`, which is in none of them, so without this Tab skips the control entirely.
|
|
172
|
+
,
|
|
173
|
+
tabIndex: disabled ? -1 : 0,
|
|
174
|
+
focusable: !disabled,
|
|
175
|
+
onKeyDown: handleKeyDown,
|
|
176
|
+
onFocus: handleFocus,
|
|
177
|
+
onBlur: handleBlur,
|
|
136
178
|
onLayout: handleLayout,
|
|
137
179
|
onStartShouldSetResponder: panResponder.panHandlers.onStartShouldSetResponder,
|
|
138
180
|
onMoveShouldSetResponder: panResponder.panHandlers.onMoveShouldSetResponder,
|
|
@@ -145,7 +187,14 @@ export const Slider = /*#__PURE__*/memo(function Slider(props) {
|
|
|
145
187
|
style: [sliderRowStructure(theme, {
|
|
146
188
|
size
|
|
147
189
|
}), disabled && styles.dimmed, style],
|
|
148
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
190
|
+
children: [focused && !disabled && /*#__PURE__*/_jsx(View, {
|
|
191
|
+
pointerEvents: "none",
|
|
192
|
+
testID: testID === undefined ? undefined : `${testID}-focus-ring`,
|
|
193
|
+
style: [styles.focusRing, {
|
|
194
|
+
borderColor: theme.colors.border.focus,
|
|
195
|
+
borderRadius: theme.radii.base + FOCUS_RING_GAP + FOCUS_RING_WIDTH
|
|
196
|
+
}]
|
|
197
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
149
198
|
pointerEvents: "none",
|
|
150
199
|
style: [sliderTrackStructure(theme, {
|
|
151
200
|
size
|
|
@@ -178,6 +227,14 @@ const styles = StyleSheet.create({
|
|
|
178
227
|
// — the same treatment `Button`/`Checkbox`/`NumberInput` use.
|
|
179
228
|
dimmed: {
|
|
180
229
|
opacity: 0.5
|
|
230
|
+
},
|
|
231
|
+
focusRing: {
|
|
232
|
+
position: "absolute",
|
|
233
|
+
top: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
234
|
+
left: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
235
|
+
right: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
236
|
+
bottom: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
237
|
+
borderWidth: FOCUS_RING_WIDTH
|
|
181
238
|
}
|
|
182
239
|
});
|
|
183
240
|
//# sourceMappingURL=Slider.js.map
|
|
@@ -109,6 +109,51 @@ export function resolveSliderPositionValue(input) {
|
|
|
109
109
|
export function stepSliderValue(value, direction, min, max, step) {
|
|
110
110
|
return clampSliderValue(value + direction * step, min, max);
|
|
111
111
|
}
|
|
112
|
+
|
|
113
|
+
/** How much of the range PageUp/PageDown cover, before rounding onto a whole number of `step`s. */
|
|
114
|
+
export const SLIDER_PAGE_FRACTION = 0.1;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* The coarse PageUp/PageDown amount — the whole number of `step`s nearest a tenth of the range,
|
|
118
|
+
* never fewer than one, so a 0–5 slider still pages by `step` instead of rounding down to zero.
|
|
119
|
+
*/
|
|
120
|
+
export function sliderPageStep(min, max, step) {
|
|
121
|
+
const safeStep = step > 0 ? step : 1;
|
|
122
|
+
const range = max - min;
|
|
123
|
+
if (range <= 0) return safeStep;
|
|
124
|
+
return Math.max(1, Math.round(range * SLIDER_PAGE_FRACTION / safeStep)) * safeStep;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* The WAI-ARIA slider keyboard contract, resolved purely: Left/Down decrement and Right/Up increment
|
|
128
|
+
* by `step`, Home/End jump to the bounds, PageDown/PageUp move by `sliderPageStep`. Returns
|
|
129
|
+
* `undefined` for any other key, which is also how the caller knows not to swallow that keystroke.
|
|
130
|
+
*/
|
|
131
|
+
export function resolveSliderKeyValue(key, input) {
|
|
132
|
+
const {
|
|
133
|
+
value,
|
|
134
|
+
min,
|
|
135
|
+
max,
|
|
136
|
+
step
|
|
137
|
+
} = input;
|
|
138
|
+
switch (key) {
|
|
139
|
+
case "ArrowLeft":
|
|
140
|
+
case "ArrowDown":
|
|
141
|
+
return stepSliderValue(value, -1, min, max, step);
|
|
142
|
+
case "ArrowRight":
|
|
143
|
+
case "ArrowUp":
|
|
144
|
+
return stepSliderValue(value, 1, min, max, step);
|
|
145
|
+
case "Home":
|
|
146
|
+
return clampSliderValue(min, min, max);
|
|
147
|
+
case "End":
|
|
148
|
+
return clampSliderValue(max, min, max);
|
|
149
|
+
case "PageDown":
|
|
150
|
+
return stepSliderValue(value, -1, min, max, sliderPageStep(min, max, step));
|
|
151
|
+
case "PageUp":
|
|
152
|
+
return stepSliderValue(value, 1, min, max, sliderPageStep(min, max, step));
|
|
153
|
+
default:
|
|
154
|
+
return undefined;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
112
157
|
/**
|
|
113
158
|
* Maps the track's two colours onto ROLE tokens — never a raw ramp or a hardcoded hex. `fill` is
|
|
114
159
|
* `accent.text`, NOT the seemingly-obvious `accent.solid`: measured, `accent.solid` against
|
|
@@ -146,23 +191,25 @@ export function resolveSliderThumbColors(colors) {
|
|
|
146
191
|
}
|
|
147
192
|
/**
|
|
148
193
|
* Derives the accessibility surface once, purely, so the contract is testable without a renderer.
|
|
149
|
-
* `
|
|
150
|
-
* couldn't render. `accessibilityActions` declares BOTH `increment`/`decrement`
|
|
151
|
-
* `adjustable` trait already offers these via the two-finger swipe-up/down gesture
|
|
152
|
-
* declared, but Android TalkBack has no native "adjustable" gesture and only surfaces
|
|
153
|
-
* that are declared here (WCAG 2.5.7 — a drag-only slider has no non-pointer
|
|
194
|
+
* `aria-valuenow` is clamped onto `[min, max]` — a screen reader must never announce a value the
|
|
195
|
+
* track itself couldn't render. `accessibilityActions` declares BOTH `increment`/`decrement`
|
|
196
|
+
* explicitly: iOS's `adjustable` trait already offers these via the two-finger swipe-up/down gesture
|
|
197
|
+
* without them declared, but Android TalkBack has no native "adjustable" gesture and only surfaces
|
|
198
|
+
* custom actions that are declared here (WCAG 2.5.7 — a drag-only slider has no non-pointer
|
|
199
|
+
* alternative otherwise).
|
|
200
|
+
*
|
|
201
|
+
* FLAT `aria-*`, not `accessibilityValue={{…}}`/`accessibilityState={{…}}`: react-native-web 0.21
|
|
202
|
+
* drops both objects, so on web the slider announced its role and NO position at all. The host here
|
|
203
|
+
* is a `View`, which merges every flat prop into the object form natively (`View.js`), so one flat
|
|
204
|
+
* form is right on both platforms.
|
|
154
205
|
*/
|
|
155
206
|
export function resolveSliderAccessibility(input) {
|
|
156
207
|
return {
|
|
157
208
|
accessibilityRole: "adjustable",
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
},
|
|
163
|
-
accessibilityState: {
|
|
164
|
-
disabled: input.disabled === true
|
|
165
|
-
},
|
|
209
|
+
"aria-valuemin": input.min,
|
|
210
|
+
"aria-valuemax": input.max,
|
|
211
|
+
"aria-valuenow": clampSliderValue(input.value, input.min, input.max),
|
|
212
|
+
"aria-disabled": input.disabled === true,
|
|
166
213
|
accessibilityActions: [{
|
|
167
214
|
name: "increment"
|
|
168
215
|
}, {
|
|
@@ -41,12 +41,16 @@ the scale lives on the child, never the box.
|
|
|
41
41
|
## Accessibility contract (WCAG)
|
|
42
42
|
|
|
43
43
|
- **The OUTER box, not the glyph, carries the whole contract** — `accessibilityRole="progressbar"`,
|
|
44
|
-
the accessible name (`accessibilityLabel ?? "Loading"`), and `
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
44
|
+
the accessible name (`accessibilityLabel ?? "Loading"`), and `aria-busy={true}` (1.4.1 — the
|
|
45
|
+
loading state is announced, not left to be inferred from a shape appearing on screen). The inner
|
|
46
|
+
`ActivityIndicator` is `aria-hidden` — decorative chrome, exactly how `Button` treats its own
|
|
47
|
+
embedded loading spinner, so a screen reader announces ONE "Loading" node, never a nested second
|
|
48
|
+
element.
|
|
49
|
+
- **Flat `aria-*`, not `accessibilityState`/`accessibilityElementsHidden`+`importantForAccessibility`**
|
|
50
|
+
— react-native-web 0.21.2 forwards only the flat vocabulary to the DOM; the object form and the two
|
|
51
|
+
native-only hiding props reach nothing on web (`accessibilityHint` has zero occurrences in RNW's
|
|
52
|
+
dist). `aria-hidden={true}` alone covers both platforms: RN's `View` maps it onto
|
|
53
|
+
`accessibilityElementsHidden` + `importantForAccessibility="no-hide-descendants"` for native.
|
|
50
54
|
- **1.4.11 (Graphical Objects)** — a spinner is a graphical object required to understand that work
|
|
51
55
|
is ongoing, so both tones are measured ≥ 3:1 against `bg.canvas`, `bg.surface`, AND `bg.raised` on
|
|
52
56
|
all 8 brands × both modes (`Spinner.test.ts`) — never eyeballed.
|
|
@@ -95,3 +99,9 @@ None — no icon, no new theme token, no new core helper needed for this compone
|
|
|
95
99
|
## Performance
|
|
96
100
|
|
|
97
101
|
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Only child is `ActivityIndicator` (RN host primitive) receiving primitives/plain style values — nothing to memoize.
|
|
102
|
+
|
|
103
|
+
## Modernization (v1.0.7)
|
|
104
|
+
|
|
105
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
106
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
107
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
* screen reader announces one "Loading" node — never the indicator as a second, redundant element.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import { memo } from "react";
|
|
10
|
+
import { memo, useMemo } from "react";
|
|
11
11
|
import { ActivityIndicator, View } from "react-native";
|
|
12
|
-
import {
|
|
13
|
-
import { useThemeColors } from "../../theme/
|
|
12
|
+
import { useMotion } from "../../core/motion/index.js";
|
|
13
|
+
import { useThemeColors } from "../../theme/hooks.js";
|
|
14
14
|
import { resolveSpinnerAccessibility, resolveSpinnerTone, spinnerBox, spinnerGlyphScale } from "./Spinner.variants.js";
|
|
15
15
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
16
16
|
export const Spinner = /*#__PURE__*/memo(function Spinner({
|
|
@@ -21,37 +21,41 @@ export const Spinner = /*#__PURE__*/memo(function Spinner({
|
|
|
21
21
|
accessibilityLabel
|
|
22
22
|
}) {
|
|
23
23
|
const colors = useThemeColors();
|
|
24
|
-
const
|
|
24
|
+
const motion = useMotion();
|
|
25
25
|
const color = resolveSpinnerTone(colors, tone);
|
|
26
26
|
const a11y = resolveSpinnerAccessibility({
|
|
27
27
|
accessibilityLabel
|
|
28
28
|
});
|
|
29
|
+
const rootStyle = useMemo(() => [spinnerBox({
|
|
30
|
+
size
|
|
31
|
+
}), style], [size, style]);
|
|
32
|
+
const glyphStyle = useMemo(() => spinnerGlyphScale({
|
|
33
|
+
size
|
|
34
|
+
}), [size]);
|
|
29
35
|
return /*#__PURE__*/_jsx(View, {
|
|
30
36
|
testID: testID,
|
|
31
37
|
accessible: true,
|
|
32
38
|
accessibilityRole: a11y.accessibilityRole,
|
|
33
39
|
accessibilityLabel: a11y.accessibilityLabel,
|
|
34
|
-
|
|
35
|
-
style:
|
|
36
|
-
size
|
|
37
|
-
}), style],
|
|
40
|
+
"aria-busy": a11y["aria-busy"],
|
|
41
|
+
style: rootStyle,
|
|
38
42
|
children: /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
39
43
|
testID: testID === undefined ? undefined : `${testID}-glyph`,
|
|
40
44
|
size: "small",
|
|
41
45
|
color: color
|
|
42
46
|
// A frozen (non-spinning) glyph for a reduced-motion user (WCAG 2.3.3) — the box's own
|
|
43
47
|
// `busy` state + label above is the real signal, exactly how `Button` treats ITS embedded
|
|
44
|
-
// spinner as decoration on top of `
|
|
48
|
+
// spinner as decoration on top of `aria-busy`. `hidesWhenStopped={false}`
|
|
45
49
|
// (iOS defaults this to `true`) keeps a still-visible ring rather than the glyph vanishing:
|
|
46
50
|
// freezing the motion shouldn't also remove the only visual cue a sighted, non-AT user has.
|
|
47
51
|
,
|
|
48
|
-
animating:
|
|
49
|
-
hidesWhenStopped: false
|
|
50
|
-
|
|
51
|
-
importantForAccessibility
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
animating: motion.enabled,
|
|
53
|
+
hidesWhenStopped: false
|
|
54
|
+
// Covers both platforms: RN maps this onto accessibilityElementsHidden +
|
|
55
|
+
// importantForAccessibility, which react-native-web discards entirely.
|
|
56
|
+
,
|
|
57
|
+
"aria-hidden": true,
|
|
58
|
+
style: glyphStyle
|
|
55
59
|
})
|
|
56
60
|
});
|
|
57
61
|
});
|
|
@@ -55,14 +55,16 @@ export const DEFAULT_SPINNER_LABEL = "Loading";
|
|
|
55
55
|
* renderer. There is no interaction to gate (a Spinner is never pressable) — unlike
|
|
56
56
|
* `resolveButtonAccessibility`, the only decision here is the label fallback; `busy` is always true
|
|
57
57
|
* because a mounted Spinner, by definition, means work is in progress.
|
|
58
|
+
*
|
|
59
|
+
* Flat `aria-busy` rather than `accessibilityState={{ busy }}`: RN's `View` folds the flat prop back
|
|
60
|
+
* into `accessibilityState`, while react-native-web forwards only the flat form — the object reaches
|
|
61
|
+
* nothing at all on web, leaving the spinner announcing a role with no state.
|
|
58
62
|
*/
|
|
59
63
|
export function resolveSpinnerAccessibility(input) {
|
|
60
64
|
return {
|
|
61
65
|
accessibilityRole: "progressbar",
|
|
62
66
|
accessibilityLabel: input.accessibilityLabel ?? DEFAULT_SPINNER_LABEL,
|
|
63
|
-
|
|
64
|
-
busy: true
|
|
65
|
-
}
|
|
67
|
+
"aria-busy": true
|
|
66
68
|
};
|
|
67
69
|
}
|
|
68
70
|
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# stage-progress/
|
|
2
|
+
|
|
3
|
+
Horizontal pipeline — `variant`: `pills` | `bar` | `stepper`. `value` is active stage id.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| File | Role |
|
|
8
|
+
|------|------|
|
|
9
|
+
| `StageProgress.variants.ts` | `resolveStageState` / `resolveActiveStageIndex`, the accessibility resolvers, `resolveStageProgressColors(RoleColors)`, and the structure resolvers. Plain, hook-free. |
|
|
10
|
+
| `StageProgress.tsx` | Renders the row; picks the fill/text pair per stage state and wraps a pressable stage in `Pressable` only when it is interactive. |
|
|
11
|
+
|
|
12
|
+
## Props
|
|
13
|
+
|
|
14
|
+
`stages` (`StageProgressStage[]`: id, label, disabled) · `value` · `variant` · `readOnly` (default
|
|
15
|
+
`true`) · `onStagePress(id)` · `style` (layout-only, outermost, once, last) · `testID`.
|
|
16
|
+
|
|
17
|
+
## Accessibility
|
|
18
|
+
|
|
19
|
+
- **`bar`** renders no text at all — only coloured rectangles — so the container carries one
|
|
20
|
+
`progressbar` summary from `resolveStageProgressAccessibility`: label `"Stage 2 of 3: Review"` and
|
|
21
|
+
the 0-indexed `{ min, max, now }` triple. Segments themselves are unlabelled; per-segment labels
|
|
22
|
+
would read the same track three times. No matching stage (`activeIndex` -1) clamps to ordinal 0,
|
|
23
|
+
`now` 0, and no `": label"` suffix.
|
|
24
|
+
- **`pills` / `stepper`** label each stage instead: `resolveStageAccessibilityLabel` appends the
|
|
25
|
+
state — `", completed"` / `", current stage"` / `", not started"`. That suffix is the WCAG 1.4.1
|
|
26
|
+
fix; fill colour is otherwise the only thing separating a completed stage from an upcoming one, and
|
|
27
|
+
there is no "completed" state to announce directly. `resolveStageAccessibilityState` supplies flat
|
|
28
|
+
`aria-selected` (active only) / `aria-disabled` — not `accessibilityState={{…}}`, which
|
|
29
|
+
react-native-web 0.21.2 drops entirely on web.
|
|
30
|
+
- **WCAG 2.4.7** — an interactive stage (`readOnly={false}`, not `disabled`) draws a `border.focus`
|
|
31
|
+
ring (`${testID}-focus-ring-${stage.id}`) while focused. It is drawn **inside** the stage's
|
|
32
|
+
bounds: `stageProgressRowStructure` clips to `overflow: "hidden"` and spaces stages one space step
|
|
33
|
+
apart, so a gap-outside ring would be cut off at the ends and overlap its neighbour elsewhere.
|
|
34
|
+
Over `activeFill` (`accent.solid`) the grey ring's contrast is unmeasured — see Known gaps.
|
|
35
|
+
|
|
36
|
+
## Touch targets
|
|
37
|
+
|
|
38
|
+
`MIN_TOUCH_TARGET` 44. `STAGE_PILL_MIN_HEIGHT` 32 and `STAGE_STEPPER_CIRCLE` 28 are padded to it by
|
|
39
|
+
vertical-only `hitSlop` (`STAGE_PILL_HIT_SLOP`, `STAGE_STEPPER_HIT_SLOP`) — both shapes already
|
|
40
|
+
exceed 44 horizontally (`minWidth` 72 / 64), so horizontal slop would only overlap neighbours. Slop
|
|
41
|
+
is applied only where a stage is pressable; `readOnly` (and `disabled`) stages render a plain `View`,
|
|
42
|
+
no `Pressable`, and need no target.
|
|
43
|
+
|
|
44
|
+
## Contrast (measured, 9 brands × both modes)
|
|
45
|
+
|
|
46
|
+
| Pair | Min |
|
|
47
|
+
|------|-----|
|
|
48
|
+
| `activeText` on `activeFill` (`accent.onSolid` / `accent.solid`) | 4.63 |
|
|
49
|
+
| `completedText` on `completedFill` (`status.success.text` / `.subtle`) | 5.66 |
|
|
50
|
+
| `upcomingText` on `upcomingFill` (`fg.muted` / `bg.sunken`) | 6.45 |
|
|
51
|
+
| `upcomingText` on `bg.canvas` (the `stepper` label under the circle) | 6.52 |
|
|
52
|
+
|
|
53
|
+
`track` is `border.default` — a decorative pill/circle outline at 1.08–1.43 on the canvas, never
|
|
54
|
+
escalated to `border.interactive` / `border.focus`. Bar-segment fills are deliberately quiet
|
|
55
|
+
(`bg.sunken` at ~1.01–1.12 on the canvas); the state they encode is carried by the progressbar
|
|
56
|
+
label, not by contrast.
|
|
57
|
+
|
|
58
|
+
## Known gaps
|
|
59
|
+
|
|
60
|
+
- The focus ring's `border.focus` is the grey proven ≥ 3:1 against the **canvas**; over a stage's
|
|
61
|
+
own fill (notably `activeFill` = `accent.solid`) that ratio is unmeasured (WCAG 2.4.11). The ring
|
|
62
|
+
cannot move outside the stage — the row clips — so a fix would be a token-level decision, not a
|
|
63
|
+
change here.
|
|
64
|
+
- There is no arrow-key path between stages: each interactive stage is its own tab stop.
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* StageProgress — horizontal pipeline stages (pills, bar, or stepper). Read-only by default;
|
|
5
|
+
* optional `onStagePress` when not `readOnly`.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { memo, useCallback, useMemo, useState } from "react";
|
|
9
|
+
import { Pressable, Text, View } from "react-native";
|
|
10
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
11
|
+
import { resolveActiveStageIndex, resolveStageAccessibilityLabel, resolveStageAccessibilityState, resolveStageProgressAccessibility, resolveStageProgressColors, resolveStageState, stageBarStructure, stageFocusRingStructure, stagePillStructure, stageProgressRowStructure, stageStepperCircleStructure, STAGE_PILL_HIT_SLOP, STAGE_STEPPER_HIT_SLOP } from "./StageProgress.variants.js";
|
|
12
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
|
+
export const StageProgress = /*#__PURE__*/memo(function StageProgress({
|
|
14
|
+
stages,
|
|
15
|
+
value,
|
|
16
|
+
variant = "pills",
|
|
17
|
+
readOnly = true,
|
|
18
|
+
onStagePress,
|
|
19
|
+
style,
|
|
20
|
+
testID
|
|
21
|
+
}) {
|
|
22
|
+
const theme = useTheme();
|
|
23
|
+
const palette = resolveStageProgressColors(theme.colors);
|
|
24
|
+
const activeIndex = resolveActiveStageIndex(stages, value);
|
|
25
|
+
// Which interactive stage holds keyboard/AT focus. One value rather than per-stage state: only one
|
|
26
|
+
// stage can be focused, and the stages are rendered inline (a hook per stage is not an option).
|
|
27
|
+
const [focusedStageId, setFocusedStageId] = useState(null);
|
|
28
|
+
const handlePress = useCallback((stageId, disabled) => {
|
|
29
|
+
if (readOnly || disabled || onStagePress === undefined) return;
|
|
30
|
+
onStagePress(stageId);
|
|
31
|
+
}, [readOnly, onStagePress]);
|
|
32
|
+
const content = useMemo(() => {
|
|
33
|
+
if (variant === "bar") {
|
|
34
|
+
return stages.map((stage, index) => {
|
|
35
|
+
const state = resolveStageState(index, activeIndex, true);
|
|
36
|
+
const fill = state === "active" ? palette.activeFill : state === "completed" ? palette.completedFill : palette.upcomingFill;
|
|
37
|
+
// No label per segment: the container announces the whole track as one progressbar
|
|
38
|
+
// (`resolveStageProgressAccessibility`), so a per-segment label would read four times over.
|
|
39
|
+
return /*#__PURE__*/_jsx(View, {
|
|
40
|
+
testID: testID ? `${testID}-bar-${stage.id}` : undefined,
|
|
41
|
+
style: [stageBarStructure(theme), {
|
|
42
|
+
backgroundColor: fill
|
|
43
|
+
}]
|
|
44
|
+
}, stage.id);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
if (variant === "stepper") {
|
|
48
|
+
return stages.map((stage, index) => {
|
|
49
|
+
const state = resolveStageState(index, activeIndex, true);
|
|
50
|
+
const fill = state === "active" ? palette.activeFill : state === "completed" ? palette.completedFill : palette.upcomingFill;
|
|
51
|
+
const text = state === "active" ? palette.activeText : state === "completed" ? palette.completedText : palette.upcomingText;
|
|
52
|
+
const node = /*#__PURE__*/_jsxs(View, {
|
|
53
|
+
style: {
|
|
54
|
+
alignItems: "center",
|
|
55
|
+
minWidth: 64
|
|
56
|
+
},
|
|
57
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
58
|
+
style: [stageStepperCircleStructure(theme), {
|
|
59
|
+
backgroundColor: fill,
|
|
60
|
+
borderColor: palette.track
|
|
61
|
+
}],
|
|
62
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
63
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
|
|
64
|
+
fontSize: theme.fontSizes.sm,
|
|
65
|
+
color: text
|
|
66
|
+
}],
|
|
67
|
+
children: index + 1
|
|
68
|
+
})
|
|
69
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
70
|
+
numberOfLines: 1,
|
|
71
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
72
|
+
fontSize: theme.fontSizes.xs,
|
|
73
|
+
color: palette.upcomingText,
|
|
74
|
+
marginTop: theme.space[1]
|
|
75
|
+
}],
|
|
76
|
+
children: stage.label
|
|
77
|
+
})]
|
|
78
|
+
});
|
|
79
|
+
const a11yLabel = resolveStageAccessibilityLabel(stage.label, state);
|
|
80
|
+
const a11yState = resolveStageAccessibilityState(state, stage.disabled);
|
|
81
|
+
if (readOnly || stage.disabled) return /*#__PURE__*/_jsx(View, {
|
|
82
|
+
accessible: true,
|
|
83
|
+
accessibilityLabel: a11yLabel,
|
|
84
|
+
"aria-selected": a11yState["aria-selected"],
|
|
85
|
+
"aria-disabled": a11yState["aria-disabled"],
|
|
86
|
+
children: node
|
|
87
|
+
}, stage.id);
|
|
88
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
89
|
+
accessibilityRole: "button",
|
|
90
|
+
accessibilityLabel: a11yLabel,
|
|
91
|
+
"aria-selected": a11yState["aria-selected"],
|
|
92
|
+
"aria-disabled": a11yState["aria-disabled"],
|
|
93
|
+
hitSlop: STAGE_STEPPER_HIT_SLOP,
|
|
94
|
+
onPress: () => handlePress(stage.id, stage.disabled),
|
|
95
|
+
onFocus: () => setFocusedStageId(stage.id),
|
|
96
|
+
onBlur: () => setFocusedStageId(current => current === stage.id ? null : current),
|
|
97
|
+
children: [focusedStageId === stage.id && /*#__PURE__*/_jsx(View, {
|
|
98
|
+
pointerEvents: "none",
|
|
99
|
+
testID: testID ? `${testID}-focus-ring-${stage.id}` : undefined,
|
|
100
|
+
style: [stageFocusRingStructure(theme, {
|
|
101
|
+
variant: "stepper"
|
|
102
|
+
}), {
|
|
103
|
+
borderColor: theme.colors.border.focus
|
|
104
|
+
}]
|
|
105
|
+
}), node]
|
|
106
|
+
}, stage.id);
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return stages.map((stage, index) => {
|
|
110
|
+
const state = resolveStageState(index, activeIndex, true);
|
|
111
|
+
const fill = state === "active" ? palette.activeFill : state === "completed" ? palette.completedFill : palette.upcomingFill;
|
|
112
|
+
const text = state === "active" ? palette.activeText : state === "completed" ? palette.completedText : palette.upcomingText;
|
|
113
|
+
const pill = /*#__PURE__*/_jsx(View, {
|
|
114
|
+
testID: testID ? `${testID}-pill-${stage.id}` : undefined,
|
|
115
|
+
style: [stagePillStructure(theme), {
|
|
116
|
+
backgroundColor: fill,
|
|
117
|
+
borderColor: palette.track
|
|
118
|
+
}],
|
|
119
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
120
|
+
numberOfLines: 1,
|
|
121
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
|
|
122
|
+
fontSize: theme.fontSizes.sm,
|
|
123
|
+
color: text
|
|
124
|
+
}],
|
|
125
|
+
children: stage.label
|
|
126
|
+
})
|
|
127
|
+
});
|
|
128
|
+
const a11yLabel = resolveStageAccessibilityLabel(stage.label, state);
|
|
129
|
+
const a11yState = resolveStageAccessibilityState(state, stage.disabled);
|
|
130
|
+
if (readOnly || stage.disabled) return /*#__PURE__*/_jsx(View, {
|
|
131
|
+
accessible: true,
|
|
132
|
+
accessibilityLabel: a11yLabel,
|
|
133
|
+
"aria-selected": a11yState["aria-selected"],
|
|
134
|
+
"aria-disabled": a11yState["aria-disabled"],
|
|
135
|
+
children: pill
|
|
136
|
+
}, stage.id);
|
|
137
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
138
|
+
accessibilityRole: "button",
|
|
139
|
+
accessibilityLabel: a11yLabel,
|
|
140
|
+
"aria-selected": a11yState["aria-selected"],
|
|
141
|
+
"aria-disabled": a11yState["aria-disabled"],
|
|
142
|
+
hitSlop: STAGE_PILL_HIT_SLOP,
|
|
143
|
+
onPress: () => handlePress(stage.id, stage.disabled),
|
|
144
|
+
onFocus: () => setFocusedStageId(stage.id),
|
|
145
|
+
onBlur: () => setFocusedStageId(current => current === stage.id ? null : current),
|
|
146
|
+
children: [focusedStageId === stage.id && /*#__PURE__*/_jsx(View, {
|
|
147
|
+
pointerEvents: "none",
|
|
148
|
+
testID: testID ? `${testID}-focus-ring-${stage.id}` : undefined,
|
|
149
|
+
style: [stageFocusRingStructure(theme, {
|
|
150
|
+
variant: "pill"
|
|
151
|
+
}), {
|
|
152
|
+
borderColor: theme.colors.border.focus
|
|
153
|
+
}]
|
|
154
|
+
}), pill]
|
|
155
|
+
}, stage.id);
|
|
156
|
+
});
|
|
157
|
+
}, [stages, variant, activeIndex, palette, theme, testID, readOnly, handlePress, focusedStageId]);
|
|
158
|
+
|
|
159
|
+
// Only the `bar` variant collapses into one announcement — `pills`/`stepper` render real text per
|
|
160
|
+
// stage, and swallowing it behind a container summary would lose the per-stage labels.
|
|
161
|
+
const barA11y = variant === "bar" ? resolveStageProgressAccessibility(stages, activeIndex) : null;
|
|
162
|
+
return /*#__PURE__*/_jsx(View, {
|
|
163
|
+
testID: testID,
|
|
164
|
+
accessible: barA11y !== null,
|
|
165
|
+
accessibilityRole: barA11y?.accessibilityRole,
|
|
166
|
+
"aria-valuemin": barA11y?.["aria-valuemin"],
|
|
167
|
+
"aria-valuemax": barA11y?.["aria-valuemax"],
|
|
168
|
+
"aria-valuenow": barA11y?.["aria-valuenow"],
|
|
169
|
+
accessibilityLabel: barA11y?.accessibilityLabel,
|
|
170
|
+
style: [stageProgressRowStructure(theme), style],
|
|
171
|
+
children: content
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
//# sourceMappingURL=StageProgress.js.map
|