pixelize-native-library 1.0.7 → 1.2.1
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 +130 -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/gradient/AccentGradientFill.js +80 -0
- package/lib/module/core/gradient/darkenHex.js +13 -0
- package/lib/module/core/gradient/gradientStops.js +27 -0
- package/lib/module/core/gradient/index.js +7 -0
- package/lib/module/core/gradient/withAlpha.js +19 -0
- package/lib/module/core/haptics/MODULE.md +4 -0
- package/lib/module/core/haptics/context.js +7 -0
- package/lib/module/core/haptics/haptics.js +17 -0
- package/lib/module/core/haptics/index.js +6 -0
- package/lib/module/core/haptics/useHaptics.js +73 -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 +53 -12
- 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/trending-up.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 -153
- package/lib/module/core/icon/names.js +2 -0
- package/lib/module/core/icon/resolve.js +160 -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 +26 -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 +115 -0
- package/lib/module/core/motion/index.js +8 -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/motion/usePressState.js +145 -0
- package/lib/module/core/style/index.js +3 -0
- package/lib/module/core/style/radius.js +4 -0
- package/lib/module/core/style/sx.js +76 -0
- package/lib/module/core/style/useThemedStyles.js +8 -0
- package/lib/module/index.js +71 -2
- package/lib/module/modules/accordion/Accordion.js +286 -97
- package/lib/module/modules/accordion/Accordion.variants.js +6 -7
- package/lib/module/modules/accordion/MODULE.md +36 -11
- package/lib/module/modules/alert-dialog/AlertDialog.js +7 -6
- package/lib/module/modules/alert-dialog/AlertDialog.variants.js +4 -0
- package/lib/module/modules/alert-dialog/MODULE.md +11 -2
- package/lib/module/modules/app-bar/AppBar.js +181 -0
- package/lib/module/modules/app-bar/AppBar.variants.js +71 -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 +45 -19
- 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 +81 -0
- package/lib/module/modules/avatar-group/AvatarGroup.variants.js +132 -0
- package/lib/module/modules/avatar-group/MODULE.md +44 -0
- package/lib/module/modules/avatar-group/index.js +10 -0
- package/lib/module/modules/badge/Badge.js +14 -7
- package/lib/module/modules/badge/Badge.variants.js +14 -3
- package/lib/module/modules/badge/MODULE.md +11 -5
- package/lib/module/modules/banner/Banner.js +181 -0
- package/lib/module/modules/banner/Banner.variants.js +118 -0
- package/lib/module/modules/banner/MODULE.md +118 -0
- package/lib/module/modules/banner/index.js +4 -0
- package/lib/module/modules/bottom-nav/BottomNav.js +43 -129
- package/lib/module/modules/bottom-nav/BottomNav.variants.js +36 -18
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +56 -8
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +160 -117
- package/lib/module/modules/bottom-nav/BottomNavTab.js +162 -0
- package/lib/module/modules/bottom-nav/MODULE.md +30 -6
- package/lib/module/modules/bottom-sheet/BottomSheet.js +202 -0
- package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +59 -0
- package/lib/module/modules/bottom-sheet/MODULE.md +64 -0
- package/lib/module/modules/bottom-sheet/index.js +4 -0
- package/lib/module/modules/button/Button.js +128 -91
- package/lib/module/modules/button/Button.variants.js +20 -14
- package/lib/module/modules/button/MODULE.md +31 -3
- package/lib/module/modules/button-group/ButtonGroup.js +176 -69
- package/lib/module/modules/button-group/ButtonGroup.variants.js +51 -50
- package/lib/module/modules/button-group/MODULE.md +58 -37
- package/lib/module/modules/card/Card.js +122 -21
- package/lib/module/modules/card/Card.variants.js +1 -0
- package/lib/module/modules/card/MODULE.md +19 -10
- package/lib/module/modules/charts/BarChart.js +257 -0
- package/lib/module/modules/charts/BarList.js +112 -49
- package/lib/module/modules/charts/ChartLegend.js +154 -0
- package/lib/module/modules/charts/Charts.variants.js +589 -2
- package/lib/module/modules/charts/DonutChart.js +105 -65
- package/lib/module/modules/charts/LineChart.js +181 -0
- package/lib/module/modules/charts/MODULE.md +161 -22
- package/lib/module/modules/charts/PieChart.js +149 -0
- package/lib/module/modules/charts/Sparkline.js +7 -4
- package/lib/module/modules/charts/index.js +3 -0
- package/lib/module/modules/checkbox/Checkbox.js +122 -44
- package/lib/module/modules/checkbox/Checkbox.variants.js +13 -8
- package/lib/module/modules/checkbox/MODULE.md +40 -8
- package/lib/module/modules/chip/Chip.js +200 -0
- package/lib/module/modules/chip/Chip.variants.js +290 -0
- package/lib/module/modules/chip/ChipGroup.js +48 -0
- package/lib/module/modules/chip/MODULE.md +158 -0
- package/lib/module/modules/chip/index.js +13 -0
- package/lib/module/modules/combobox/Combobox.js +623 -0
- package/lib/module/modules/combobox/Combobox.variants.js +295 -0
- package/lib/module/modules/combobox/MODULE.md +193 -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 +163 -0
- package/lib/module/modules/composer/Composer.variants.js +44 -0
- package/lib/module/modules/composer/MODULE.md +75 -0
- package/lib/module/modules/composer/index.js +4 -0
- package/lib/module/modules/copy-button/CopyButton.js +174 -0
- package/lib/module/modules/copy-button/CopyButton.variants.js +88 -0
- package/lib/module/modules/copy-button/MODULE.md +78 -0
- package/lib/module/modules/copy-button/index.js +4 -0
- package/lib/module/modules/data-table/DataTable.js +532 -0
- package/lib/module/modules/data-table/DataTable.variants.js +189 -0
- package/lib/module/modules/data-table/MODULE.md +146 -0
- package/lib/module/modules/data-table/index.js +10 -0
- package/lib/module/modules/date-picker/Calendar.js +414 -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 +701 -0
- package/lib/module/modules/date-picker/DateRangePicker.js +87 -0
- package/lib/module/modules/date-picker/MODULE.md +190 -0
- package/lib/module/modules/date-picker/PickerField.js +151 -0
- package/lib/module/modules/date-picker/PickerShell.js +134 -0
- package/lib/module/modules/date-picker/TimePicker.js +179 -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/Divider.variants.js +6 -5
- package/lib/module/modules/divider/MODULE.md +8 -0
- package/lib/module/modules/drawer/Drawer.js +156 -62
- package/lib/module/modules/drawer/Drawer.variants.js +7 -20
- package/lib/module/modules/drawer/MODULE.md +93 -118
- package/lib/module/modules/empty-state/EmptyState.js +34 -31
- package/lib/module/modules/empty-state/EmptyState.variants.js +16 -0
- package/lib/module/modules/empty-state/MODULE.md +26 -7
- package/lib/module/modules/fab/Fab.js +192 -0
- package/lib/module/modules/fab/Fab.variants.js +360 -0
- package/lib/module/modules/fab/FabGroup.js +361 -0
- package/lib/module/modules/fab/MODULE.md +194 -0
- package/lib/module/modules/fab/index.js +13 -0
- package/lib/module/modules/file-grid/FileGrid.js +163 -0
- package/lib/module/modules/file-grid/FileGrid.variants.js +51 -0
- package/lib/module/modules/file-grid/MODULE.md +14 -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 +53 -8
- package/lib/module/modules/file-upload/MODULE.md +24 -4
- package/lib/module/modules/filter-sheet/FilterChip.js +32 -18
- 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 +180 -82
- package/lib/module/modules/filter-sheet/MODULE.md +31 -1
- package/lib/module/modules/folder-row/FolderRow.js +144 -0
- package/lib/module/modules/folder-row/FolderRow.variants.js +51 -0
- package/lib/module/modules/folder-row/MODULE.md +72 -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 +239 -0
- package/lib/module/modules/gantt/Gantt.variants.js +177 -0
- package/lib/module/modules/gantt/MODULE.md +81 -0
- package/lib/module/modules/gantt/index.js +5 -0
- package/lib/module/modules/image-viewer/ImageViewer.js +265 -0
- package/lib/module/modules/image-viewer/ImageViewer.variants.js +6 -0
- package/lib/module/modules/image-viewer/MODULE.md +63 -0
- package/lib/module/modules/image-viewer/index.js +4 -0
- package/lib/module/modules/input/Input.js +119 -48
- package/lib/module/modules/input/Input.variants.js +26 -11
- package/lib/module/modules/input/MODULE.md +38 -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 +70 -31
- package/lib/module/modules/list-item/ListItem.variants.js +11 -2
- package/lib/module/modules/list-item/MODULE.md +8 -3
- package/lib/module/modules/markdown/MODULE.md +39 -5
- package/lib/module/modules/markdown/Markdown.js +107 -38
- package/lib/module/modules/markdown/Markdown.variants.js +8 -2
- package/lib/module/modules/markdown/parseMarkdown.js +3 -3
- package/lib/module/modules/menu/MODULE.md +56 -14
- package/lib/module/modules/menu/Menu.js +236 -68
- package/lib/module/modules/menu/Menu.variants.js +13 -3
- package/lib/module/modules/message-bubble/MODULE.md +41 -0
- package/lib/module/modules/message-bubble/MessageBubble.js +54 -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 +40 -3
- package/lib/module/modules/modal/Modal.js +135 -33
- package/lib/module/modules/modal/Modal.variants.js +2 -2
- package/lib/module/modules/more-items/MODULE.md +77 -0
- package/lib/module/modules/more-items/MoreItems.js +168 -0
- package/lib/module/modules/more-items/MoreItems.variants.js +83 -0
- package/lib/module/modules/more-items/index.js +4 -0
- package/lib/module/modules/multi-select/MODULE.md +89 -18
- package/lib/module/modules/multi-select/MultiSelect.js +239 -105
- package/lib/module/modules/multi-select/MultiSelect.variants.js +32 -7
- package/lib/module/modules/number-input/MODULE.md +41 -6
- package/lib/module/modules/number-input/NumberInput.js +124 -81
- package/lib/module/modules/number-input/NumberInput.variants.js +48 -11
- package/lib/module/modules/org-switcher/MODULE.md +133 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.js +295 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +188 -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 +236 -0
- package/lib/module/modules/pagination/Pagination.variants.js +309 -0
- package/lib/module/modules/pagination/PaginationControls.js +213 -0
- package/lib/module/modules/pagination/index.js +15 -0
- package/lib/module/modules/pin-input/MODULE.md +34 -15
- package/lib/module/modules/pin-input/PinInput.js +119 -81
- package/lib/module/modules/pin-input/PinInput.variants.js +15 -6
- 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 +42 -16
- package/lib/module/modules/radio-group/RadioGroup.js +172 -49
- package/lib/module/modules/radio-group/RadioGroup.variants.js +48 -11
- package/lib/module/modules/reorder/MODULE.md +106 -97
- package/lib/module/modules/reorder/Reorder.js +234 -197
- package/lib/module/modules/reorder/Reorder.variants.js +39 -15
- package/lib/module/modules/rich-text/MODULE.md +54 -0
- package/lib/module/modules/rich-text/RichText.js +382 -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 +228 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.js +420 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +319 -0
- package/lib/module/modules/rich-text-editor/index.js +10 -0
- package/lib/module/modules/screen/MODULE.md +64 -0
- package/lib/module/modules/screen/Screen.js +139 -0
- package/lib/module/modules/screen/Screen.variants.js +61 -0
- package/lib/module/modules/screen/index.js +10 -0
- package/lib/module/modules/search-bar/MODULE.md +115 -0
- package/lib/module/modules/search-bar/SearchBar.js +276 -0
- package/lib/module/modules/search-bar/SearchBar.variants.js +208 -0
- package/lib/module/modules/search-bar/index.js +12 -0
- package/lib/module/modules/section/MODULE.md +41 -0
- package/lib/module/modules/section/Section.js +35 -0
- package/lib/module/modules/section/Section.variants.js +24 -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 +126 -0
- package/lib/module/modules/segmented-control/SegmentedControl.js +222 -0
- package/lib/module/modules/segmented-control/SegmentedControl.variants.js +168 -0
- package/lib/module/modules/segmented-control/index.js +13 -0
- package/lib/module/modules/select/MODULE.md +103 -15
- package/lib/module/modules/select/Select.js +223 -94
- package/lib/module/modules/select/Select.variants.js +64 -17
- package/lib/module/modules/skeleton/MODULE.md +37 -21
- package/lib/module/modules/skeleton/Skeleton.js +55 -46
- package/lib/module/modules/skeleton/Skeleton.variants.js +19 -76
- package/lib/module/modules/slider/MODULE.md +33 -5
- package/lib/module/modules/slider/Slider.js +68 -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 +68 -0
- package/lib/module/modules/stage-progress/StageProgress.js +221 -0
- package/lib/module/modules/stage-progress/StageProgress.variants.js +169 -0
- package/lib/module/modules/stage-progress/index.js +4 -0
- package/lib/module/modules/stat-tile/MODULE.md +11 -2
- package/lib/module/modules/stat-tile/StatTile.js +76 -34
- package/lib/module/modules/stat-tile/StatTile.variants.js +8 -4
- package/lib/module/modules/state-block/MODULE.md +55 -0
- package/lib/module/modules/state-block/StateBlock.js +136 -0
- package/lib/module/modules/state-block/StateBlock.variants.js +62 -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/surface/MODULE.md +59 -0
- package/lib/module/modules/surface/Surface.js +42 -0
- package/lib/module/modules/surface/Surface.variants.js +33 -0
- package/lib/module/modules/surface/index.js +4 -0
- package/lib/module/modules/swipeable-row/MODULE.md +129 -0
- package/lib/module/modules/swipeable-row/SwipeableRow.js +265 -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 +16 -0
- package/lib/module/modules/switch/Switch.js +9 -3
- package/lib/module/modules/switch/Switch.variants.js +8 -0
- package/lib/module/modules/tabs/MODULE.md +48 -13
- package/lib/module/modules/tabs/Tabs.js +141 -73
- package/lib/module/modules/tabs/Tabs.variants.js +33 -9
- package/lib/module/modules/text/MODULE.md +54 -0
- package/lib/module/modules/text/Text.js +59 -0
- package/lib/module/modules/text/Text.variants.js +162 -0
- package/lib/module/modules/text/index.js +4 -0
- package/lib/module/modules/textarea/MODULE.md +31 -13
- package/lib/module/modules/textarea/Textarea.js +92 -46
- package/lib/module/modules/textarea/Textarea.variants.js +16 -10
- package/lib/module/modules/timeline/MODULE.md +39 -7
- package/lib/module/modules/timeline/Timeline.js +151 -77
- package/lib/module/modules/timeline/Timeline.variants.js +13 -0
- package/lib/module/modules/toast/MODULE.md +74 -11
- package/lib/module/modules/toast/Toast.js +118 -34
- package/lib/module/modules/toast/Toast.variants.js +42 -1
- package/lib/module/modules/toast/toastScreenReader.js +69 -0
- package/lib/module/modules/tooltip/MODULE.md +82 -28
- package/lib/module/modules/tooltip/Tooltip.js +126 -44
- package/lib/module/modules/tooltip/Tooltip.variants.js +11 -5
- 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 +9 -1
- package/lib/module/theme/hooks.js +11 -0
- package/lib/module/theme/index.js +3 -6
- package/lib/module/theme/platform/MODULE.md +20 -2
- package/lib/module/theme/platform/elevation.native.js +0 -44
- package/lib/module/theme/platform/floatingSurface.native.js +75 -0
- package/lib/module/theme/platform/highlight.native.js +59 -0
- package/lib/module/theme/platform/index.js +5 -0
- package/lib/module/theme/platform/motion.native.js +35 -0
- package/lib/module/theme/platform/stateLayer.native.js +14 -0
- package/lib/module/theme/platform/surfaces.native.js +11 -0
- package/lib/module/theme/provider/PixelizeProvider.js +18 -49
- 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/MODULE.md +32 -28
- package/lib/module/theme/tokens/THEME-CONTRACT.md +137 -0
- package/lib/module/theme/tokens/assertPalette.js +29 -0
- package/lib/module/theme/tokens/brands/emerald/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/lavender/palette.light.js +3 -2
- package/lib/module/theme/tokens/brands/meadow/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/radiant/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/skyline/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/slate/palette.light.js +8 -10
- package/lib/module/theme/tokens/brands/storefront/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/zinc/palette.dark.js +3 -2
- package/lib/module/theme/tokens/brands/zinc/palette.light.js +3 -2
- package/lib/module/theme/tokens/builders/buildDarkPalette.js +3 -2
- package/lib/module/theme/tokens/builders/finalizePalette.js +34 -0
- package/lib/module/theme/tokens/builders/liftToContrast.js +44 -0
- package/lib/module/theme/tokens/builders/placeholderInk.js +22 -0
- package/lib/module/theme/tokens/builders/semanticText.js +14 -0
- package/lib/module/theme/tokens/builders/surfaceRungs.js +44 -0
- package/lib/module/theme/tokens/index.js +5 -0
- package/lib/module/theme/tokens/roles/index.js +14 -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/gradient/AccentGradientFill.d.ts +7 -0
- package/lib/typescript/core/gradient/darkenHex.d.ts +2 -0
- package/lib/typescript/core/gradient/gradientStops.d.ts +10 -0
- package/lib/typescript/core/gradient/index.d.ts +5 -0
- package/lib/typescript/core/gradient/withAlpha.d.ts +2 -0
- package/lib/typescript/core/haptics/context.d.ts +3 -0
- package/lib/typescript/core/haptics/haptics.d.ts +33 -0
- package/lib/typescript/core/haptics/index.d.ts +6 -0
- package/lib/typescript/core/haptics/useHaptics.d.ts +12 -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/trending-up.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 -94
- 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 +23 -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 +57 -0
- package/lib/typescript/core/motion/index.d.ts +10 -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/motion/usePressState.d.ts +21 -0
- package/lib/typescript/core/style/index.d.ts +4 -0
- package/lib/typescript/core/style/radius.d.ts +2 -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 +136 -2
- package/lib/typescript/modules/accordion/Accordion.d.ts +12 -23
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts +7 -7
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +2 -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 +30 -0
- package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +94 -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 +37 -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 +9 -8
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +23 -12
- 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 +15 -0
- package/lib/typescript/modules/bottom-sheet/index.d.ts +3 -0
- package/lib/typescript/modules/button/Button.d.ts +9 -13
- package/lib/typescript/modules/button/Button.variants.d.ts +28 -15
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts +0 -17
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +40 -61
- package/lib/typescript/modules/card/Card.d.ts +7 -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/ChartLegend.d.ts +16 -0
- package/lib/typescript/modules/charts/Charts.variants.d.ts +229 -2
- package/lib/typescript/modules/charts/DonutChart.d.ts +3 -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/index.d.ts +6 -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 +40 -0
- package/lib/typescript/modules/chip/Chip.variants.d.ts +202 -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 +225 -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 +334 -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 +14 -0
- package/lib/typescript/modules/date-picker/index.d.ts +16 -0
- package/lib/typescript/modules/divider/Divider.variants.d.ts +6 -6
- 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 +9 -4
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +8 -1
- package/lib/typescript/modules/fab/Fab.d.ts +74 -0
- package/lib/typescript/modules/fab/Fab.variants.d.ts +231 -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 +16 -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 +103 -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 +32 -12
- 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 +3 -1
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts +138 -2
- package/lib/typescript/modules/markdown/Markdown.d.ts +13 -0
- package/lib/typescript/modules/markdown/Markdown.variants.d.ts +8 -2
- package/lib/typescript/modules/markdown/parseMarkdown.d.ts +3 -2
- 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 +30 -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 +1 -16
- 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 +64 -12
- 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 +47 -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 +30 -0
- package/lib/typescript/modules/screen/Screen.variants.d.ts +25 -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 +9 -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 +5 -15
- package/lib/typescript/modules/select/Select.variants.d.ts +45 -12
- package/lib/typescript/modules/select/index.d.ts +1 -1
- package/lib/typescript/modules/skeleton/Skeleton.d.ts +3 -13
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +14 -69
- 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 +107 -0
- package/lib/typescript/modules/stage-progress/index.d.ts +4 -0
- package/lib/typescript/modules/stat-tile/StatTile.d.ts +4 -0
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +7 -5
- package/lib/typescript/modules/state-block/StateBlock.d.ts +55 -0
- package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +31 -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/surface/Surface.d.ts +19 -0
- package/lib/typescript/modules/surface/Surface.variants.d.ts +15 -0
- package/lib/typescript/modules/surface/index.d.ts +4 -0
- 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 +27 -0
- package/lib/typescript/modules/text/Text.variants.d.ts +21 -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 +9 -13
- 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 +33 -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 +11 -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 +4 -3
- package/lib/typescript/theme/platform/elevation.native.d.ts +0 -30
- package/lib/typescript/theme/platform/floatingSurface.native.d.ts +10 -0
- package/lib/typescript/theme/platform/highlight.native.d.ts +17 -0
- package/lib/typescript/theme/platform/index.d.ts +9 -0
- package/lib/typescript/theme/platform/motion.native.d.ts +35 -0
- package/lib/typescript/theme/platform/stateLayer.native.d.ts +11 -0
- package/lib/typescript/theme/platform/surfaces.native.d.ts +8 -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 +49 -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/assertPalette.d.ts +10 -0
- package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/builders/finalizePalette.d.ts +4 -0
- package/lib/typescript/theme/tokens/builders/liftToContrast.d.ts +9 -0
- package/lib/typescript/theme/tokens/builders/placeholderInk.d.ts +13 -0
- package/lib/typescript/theme/tokens/builders/semanticText.d.ts +4 -0
- package/lib/typescript/theme/tokens/builders/surfaceRungs.d.ts +12 -0
- package/lib/typescript/theme/tokens/index.d.ts +5 -0
- package/lib/typescript/theme/tokens/roles/index.d.ts +8 -0
- package/lib/typescript/theme/tokens/types.d.ts +8 -7
- package/package.json +201 -19
- package/registry.json +177 -2
- 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/BottomNavIconWithBadge.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/charts/BarList.js.map +0 -1
- package/lib/module/modules/charts/Charts.variants.js.map +0 -1
- package/lib/module/modules/charts/DonutChart.js.map +0 -1
- package/lib/module/modules/charts/Sparkline.js.map +0 -1
- package/lib/module/modules/charts/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/list-item/ListItem.js.map +0 -1
- package/lib/module/modules/list-item/ListItem.variants.js.map +0 -1
- package/lib/module/modules/list-item/index.js.map +0 -1
- package/lib/module/modules/markdown/Markdown.js.map +0 -1
- package/lib/module/modules/markdown/Markdown.variants.js.map +0 -1
- package/lib/module/modules/markdown/index.js.map +0 -1
- package/lib/module/modules/markdown/parseMarkdown.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/stat-tile/StatTile.js.map +0 -1
- package/lib/module/modules/stat-tile/StatTile.variants.js.map +0 -1
- package/lib/module/modules/stat-tile/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/BottomNavIconWithBadge.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/charts/BarList.d.ts.map +0 -1
- package/lib/typescript/modules/charts/Charts.variants.d.ts.map +0 -1
- package/lib/typescript/modules/charts/DonutChart.d.ts.map +0 -1
- package/lib/typescript/modules/charts/Sparkline.d.ts.map +0 -1
- package/lib/typescript/modules/charts/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/list-item/ListItem.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/index.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/Markdown.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/Markdown.variants.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/index.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/parseMarkdown.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/stat-tile/StatTile.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/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
|
@@ -1,28 +1,139 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
// Segmented single-choice control: segments share one tonal container fill, not a bordered frame.
|
|
4
|
+
// A hairline divider sits between adjacent unselected segments, omitted at the selected edge (WCAG
|
|
5
|
+
// 1.4.11) — see `resolveButtonGroupSegmentEdgeColors`. Never imports `../button`; a different shape.
|
|
6
|
+
|
|
7
|
+
import { memo, useCallback, useMemo, useRef, useState } from "react";
|
|
8
|
+
import { Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
9
|
+
import Animated from "react-native-reanimated";
|
|
10
|
+
import { usePressState } from "../../core/motion/usePressState.js";
|
|
11
|
+
import { rippleColor, stateLayerScrim } from "../../theme/platform/stateLayer.native.js";
|
|
12
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
13
|
+
import { BUTTON_GROUP_SIZES, buttonGroupSegmentStructure, buttonGroupStructure, resolveButtonGroupColors, resolveButtonGroupKeyIndex, resolveButtonGroupSegmentAccessibility, resolveButtonGroupSegmentEdgeColors, resolveButtonGroupSegmentHitSlop } from "./ButtonGroup.variants.js";
|
|
14
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
15
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* connected/segmented treatment is a different structural shape than Button's own pill/rect
|
|
7
|
-
* variants, so this is a standalone sibling (it never imports `../button`). The border/divider is
|
|
8
|
-
* drawn PER SEGMENT, not once on the container: every edge that touches the selected segment omits
|
|
9
|
-
* the stroke (see `resolveButtonGroupSegmentEdgeColors` — WCAG 1.4.11) and relies on the selected
|
|
10
|
-
* fill's own contrast against the canvas instead.
|
|
11
|
-
*
|
|
12
|
-
* One component owns the whole group, same as `RadioGroup`: each segment carries its own
|
|
13
|
-
* `accessibilityRole="radio"` + `accessibilityState.checked`, and the container carries
|
|
14
|
-
* `accessibilityRole="radiogroup"` so assistive tech announces the grouping without collapsing the
|
|
15
|
-
* individually-focusable segments into one.
|
|
16
|
-
*
|
|
17
|
-
* No animation anywhere (selection is a conditional fill, not a slide or a fade), so — like
|
|
18
|
-
* `RadioGroup` — there is nothing here for `useReducedMotion` (WCAG 2.3.3) to gate.
|
|
16
|
+
* RN's Flow `ViewProps` declares `onKeyDown` and react-native-web forwards it straight to the DOM
|
|
17
|
+
* node, but RN's TypeScript `ViewPropTypes.d.ts` omits it — this re-type is the only cast here.
|
|
19
18
|
*/
|
|
19
|
+
const KeyboardView = View;
|
|
20
20
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
21
|
+
/**
|
|
22
|
+
* The ring is drawn INSIDE the segment (positive offsets), unlike Button's outside ring: the
|
|
23
|
+
* container is `overflow: "hidden"` so it can clip the joined segment radii, which would erase an
|
|
24
|
+
* outside ring entirely (`ButtonGroup.render.test.tsx` asserts both halves of this).
|
|
25
|
+
*/
|
|
26
|
+
const FOCUS_RING_WIDTH = 2;
|
|
27
|
+
const FOCUS_RING_INSET = 2;
|
|
28
|
+
const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
|
|
29
|
+
function ButtonGroupSegmentImpl({
|
|
30
|
+
label,
|
|
31
|
+
value,
|
|
32
|
+
selected,
|
|
33
|
+
nextSelected,
|
|
34
|
+
isFirst,
|
|
35
|
+
isLast,
|
|
36
|
+
index,
|
|
37
|
+
active,
|
|
38
|
+
size,
|
|
39
|
+
disabled,
|
|
40
|
+
colors,
|
|
41
|
+
fontSize,
|
|
42
|
+
onValueChange,
|
|
43
|
+
registerRef,
|
|
44
|
+
testID
|
|
45
|
+
}) {
|
|
46
|
+
const theme = useTheme();
|
|
47
|
+
const press = usePressState(disabled || selected);
|
|
48
|
+
const [focused, setFocused] = useState(false);
|
|
49
|
+
const a11y = useMemo(() => resolveButtonGroupSegmentAccessibility({
|
|
50
|
+
selected,
|
|
51
|
+
disabled
|
|
52
|
+
}), [selected, disabled]);
|
|
53
|
+
const edges = useMemo(() => resolveButtonGroupSegmentEdgeColors(colors, {
|
|
54
|
+
selected,
|
|
55
|
+
nextSelected
|
|
56
|
+
}), [colors, selected, nextSelected]);
|
|
57
|
+
const hitSlop = useMemo(() => resolveButtonGroupSegmentHitSlop(size, {
|
|
58
|
+
isFirst,
|
|
59
|
+
isLast
|
|
60
|
+
}), [size, isFirst, isLast]);
|
|
61
|
+
const androidRipple = useMemo(() => {
|
|
62
|
+
if (Platform.OS !== "android" || disabled || selected) return undefined;
|
|
63
|
+
return {
|
|
64
|
+
color: rippleColor(theme.mode),
|
|
65
|
+
borderless: false
|
|
66
|
+
};
|
|
67
|
+
}, [theme.mode, disabled, selected]);
|
|
68
|
+
const handlePress = useCallback(() => onValueChange(value), [onValueChange, value]);
|
|
69
|
+
const handleFocus = useCallback(() => setFocused(true), []);
|
|
70
|
+
const handleBlur = useCallback(() => setFocused(false), []);
|
|
71
|
+
const setRef = useCallback(node => {
|
|
72
|
+
registerRef(index, node);
|
|
73
|
+
}, [registerRef, index]);
|
|
74
|
+
const focusRingStyle = useMemo(() => ({
|
|
75
|
+
position: "absolute",
|
|
76
|
+
pointerEvents: "none",
|
|
77
|
+
top: FOCUS_RING_INSET,
|
|
78
|
+
left: FOCUS_RING_INSET,
|
|
79
|
+
right: FOCUS_RING_INSET,
|
|
80
|
+
bottom: FOCUS_RING_INSET,
|
|
81
|
+
borderWidth: FOCUS_RING_WIDTH,
|
|
82
|
+
borderColor: theme.colors.border.focus,
|
|
83
|
+
borderRadius: Math.max(0, theme.radii.md - FOCUS_RING_INSET)
|
|
84
|
+
}), [theme.colors.border.focus, theme.radii.md]);
|
|
85
|
+
const segmentStyle = useMemo(() => [buttonGroupSegmentStructure(theme, {
|
|
86
|
+
size,
|
|
87
|
+
first: isFirst ? "on" : "off",
|
|
88
|
+
last: isLast ? "on" : "off"
|
|
89
|
+
}), {
|
|
90
|
+
borderRightColor: edges.right
|
|
91
|
+
}, selected ? {
|
|
92
|
+
backgroundColor: colors.selectedFill
|
|
93
|
+
} : null, {
|
|
94
|
+
overflow: "hidden"
|
|
95
|
+
}, press.animatedStyle, disabled && styles.dimmed], [theme, size, isFirst, isLast, edges, selected, disabled, colors, press.animatedStyle]);
|
|
96
|
+
const overlayStaticStyle = useMemo(() => ({
|
|
97
|
+
backgroundColor: stateLayerScrim(theme.mode),
|
|
98
|
+
borderRadius: Math.max(0, theme.radii.md - FOCUS_RING_INSET)
|
|
99
|
+
}), [theme.mode, theme.radii.md]);
|
|
100
|
+
const labelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
101
|
+
fontSize,
|
|
102
|
+
color: selected ? colors.onSelectedFill : colors.label
|
|
103
|
+
}], [theme, fontSize, selected, colors]);
|
|
104
|
+
return /*#__PURE__*/_jsxs(AnimatedPressable, {
|
|
105
|
+
ref: setRef,
|
|
106
|
+
testID: testID,
|
|
107
|
+
accessibilityRole: a11y.accessibilityRole,
|
|
108
|
+
"aria-checked": a11y["aria-checked"],
|
|
109
|
+
"aria-disabled": a11y["aria-disabled"],
|
|
110
|
+
accessibilityLabel: label,
|
|
111
|
+
disabled: a11y.disabled,
|
|
112
|
+
tabIndex: active && !disabled ? 0 : -1,
|
|
113
|
+
focusable: !disabled,
|
|
114
|
+
onFocus: handleFocus,
|
|
115
|
+
onBlur: handleBlur,
|
|
116
|
+
onPress: disabled ? undefined : handlePress,
|
|
117
|
+
onPressIn: press.handlers.onPressIn,
|
|
118
|
+
onPressOut: press.handlers.onPressOut,
|
|
119
|
+
onLayout: press.onLayout,
|
|
120
|
+
hitSlop: hitSlop,
|
|
121
|
+
android_ripple: androidRipple,
|
|
122
|
+
style: segmentStyle,
|
|
123
|
+
children: [!selected && /*#__PURE__*/_jsx(Animated.View, {
|
|
124
|
+
pointerEvents: "none",
|
|
125
|
+
style: [StyleSheet.absoluteFill, overlayStaticStyle, press.overlayStyle]
|
|
126
|
+
}), focused && !disabled && /*#__PURE__*/_jsx(View, {
|
|
127
|
+
testID: testID === undefined ? undefined : `${testID}-focus-ring`,
|
|
128
|
+
style: focusRingStyle
|
|
129
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
130
|
+
numberOfLines: 1,
|
|
131
|
+
style: labelStyle,
|
|
132
|
+
children: label
|
|
133
|
+
})]
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
const ButtonGroupSegment = /*#__PURE__*/memo(ButtonGroupSegmentImpl);
|
|
26
137
|
function ButtonGroupImpl({
|
|
27
138
|
options,
|
|
28
139
|
value,
|
|
@@ -33,62 +144,58 @@ function ButtonGroupImpl({
|
|
|
33
144
|
testID
|
|
34
145
|
}) {
|
|
35
146
|
const theme = useTheme();
|
|
36
|
-
const colors = resolveButtonGroupColors(theme.colors);
|
|
147
|
+
const colors = useMemo(() => resolveButtonGroupColors(theme.colors), [theme.colors]);
|
|
37
148
|
const fontSize = BUTTON_GROUP_SIZES[size].fontSize;
|
|
38
149
|
const lastIndex = options.length - 1;
|
|
39
|
-
|
|
150
|
+
|
|
151
|
+
// `accessibilityRole="radio"` per segment means ARIA requires the group to be ONE tab stop, and
|
|
152
|
+
// its arrows both move and select — so the roving tab stop is simply the selected segment (the
|
|
153
|
+
// first when `value` matches nothing), derived rather than held in state so a `value` the consumer
|
|
154
|
+
// changes from outside can never desync it.
|
|
155
|
+
const selectedIndex = options.findIndex(option => option.value === value);
|
|
156
|
+
const activeIndex = selectedIndex >= 0 ? selectedIndex : 0;
|
|
157
|
+
const segmentRefs = useRef([]);
|
|
158
|
+
const registerRef = useCallback((index, node) => {
|
|
159
|
+
segmentRefs.current[index] = node;
|
|
160
|
+
}, []);
|
|
161
|
+
const handleKeyDown = event => {
|
|
162
|
+
if (disabled) return;
|
|
163
|
+
const next = resolveButtonGroupKeyIndex({
|
|
164
|
+
key: event.nativeEvent.key,
|
|
165
|
+
index: activeIndex,
|
|
166
|
+
count: options.length
|
|
167
|
+
});
|
|
168
|
+
const option = next === undefined ? undefined : options[next];
|
|
169
|
+
if (next === undefined || option === undefined) return;
|
|
170
|
+
// Arrow/Home/End would otherwise scroll the page out from under the group.
|
|
171
|
+
event.preventDefault?.();
|
|
172
|
+
onValueChange(option.value);
|
|
173
|
+
// The tab stop moves with the selection, so DOM focus has to follow it or the ring is stranded.
|
|
174
|
+
segmentRefs.current[next]?.focus();
|
|
175
|
+
};
|
|
176
|
+
return /*#__PURE__*/_jsx(KeyboardView, {
|
|
40
177
|
testID: testID,
|
|
41
178
|
accessibilityRole: "radiogroup",
|
|
179
|
+
onKeyDown: handleKeyDown,
|
|
42
180
|
style: [buttonGroupStructure(theme), style],
|
|
43
181
|
children: options.map((option, index) => {
|
|
44
|
-
const selected = option.value === value;
|
|
45
|
-
const isFirst = index === 0;
|
|
46
182
|
const isLast = index === lastIndex;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
accessibilityState: a11y.accessibilityState,
|
|
64
|
-
accessibilityLabel: option.label,
|
|
65
|
-
disabled: a11y.disabled,
|
|
66
|
-
onPress: disabled ? undefined : () => onValueChange(option.value),
|
|
67
|
-
hitSlop: hitSlop,
|
|
68
|
-
style: ({
|
|
69
|
-
pressed
|
|
70
|
-
}) => [buttonGroupSegmentStructure(theme, {
|
|
71
|
-
size,
|
|
72
|
-
first: isFirst ? "on" : "off",
|
|
73
|
-
last: isLast ? "on" : "off"
|
|
74
|
-
}), {
|
|
75
|
-
borderTopColor: edges.top,
|
|
76
|
-
borderBottomColor: edges.bottom,
|
|
77
|
-
borderLeftColor: edges.left,
|
|
78
|
-
borderRightColor: edges.right
|
|
79
|
-
}, selected ? {
|
|
80
|
-
backgroundColor: colors.selectedFill
|
|
81
|
-
} : pressed && !disabled && {
|
|
82
|
-
backgroundColor: colors.pressedFill
|
|
83
|
-
}, disabled && styles.dimmed],
|
|
84
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
85
|
-
numberOfLines: 1,
|
|
86
|
-
style: [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
87
|
-
fontSize,
|
|
88
|
-
color: selected ? colors.onSelectedFill : colors.label
|
|
89
|
-
}],
|
|
90
|
-
children: option.label
|
|
91
|
-
})
|
|
183
|
+
return /*#__PURE__*/_jsx(ButtonGroupSegment, {
|
|
184
|
+
label: option.label,
|
|
185
|
+
value: option.value,
|
|
186
|
+
selected: option.value === value,
|
|
187
|
+
nextSelected: !isLast && options[index + 1]?.value === value,
|
|
188
|
+
isFirst: index === 0,
|
|
189
|
+
isLast: isLast,
|
|
190
|
+
index: index,
|
|
191
|
+
active: index === activeIndex,
|
|
192
|
+
size: size,
|
|
193
|
+
disabled: disabled,
|
|
194
|
+
colors: colors,
|
|
195
|
+
fontSize: fontSize,
|
|
196
|
+
onValueChange: onValueChange,
|
|
197
|
+
registerRef: registerRef,
|
|
198
|
+
testID: testID ? `${testID}-${option.value}` : undefined
|
|
92
199
|
}, option.value);
|
|
93
200
|
})
|
|
94
201
|
});
|
|
@@ -65,12 +65,7 @@ export function resolveButtonGroupColors(colors) {
|
|
|
65
65
|
selectedFill: colors.accent.solid,
|
|
66
66
|
onSelectedFill: colors.accent.onSolid,
|
|
67
67
|
label: colors.fg.default,
|
|
68
|
-
|
|
69
|
-
// drops the brand-tinted `fg.default` label below 4.5:1 on several brands — same class of bug
|
|
70
|
-
// Button's "neutral" tone and RadioGroup's pressed row document fixing the same way. Composited
|
|
71
|
-
// with a small `bg.canvas` overlay (see `PRESSED_FILL_OVERLAY_ALPHA_HEX` above) so it also clears
|
|
72
|
-
// 3:1 against `selectedFill` — the boundary a segment adjacent to the selected one actually draws
|
|
73
|
-
// while being pressed.
|
|
68
|
+
containerFill: colors.bg.raised,
|
|
74
69
|
pressedFill: compositeOver(`${colors.bg.canvas}${PRESSED_FILL_OVERLAY_ALPHA_HEX}`, colors.bg.sunken),
|
|
75
70
|
outline: colors.border.interactive
|
|
76
71
|
};
|
|
@@ -80,19 +75,9 @@ export function resolveButtonGroupColors(colors) {
|
|
|
80
75
|
* the WIDTH constant (see `buttonGroupSegmentStructure`) and only swapping the COLOUR avoids a
|
|
81
76
|
* layout shift when a segment's selection changes. */
|
|
82
77
|
const OMITTED_EDGE = "transparent";
|
|
83
|
-
/**
|
|
84
|
-
* Per-edge, per-segment outline colour — the WCAG 1.4.11 fix. An edge draws the shared `outline`
|
|
85
|
-
* colour only when BOTH sides of it are unselected; any edge touching the selected segment is
|
|
86
|
-
* `transparent` instead, so the selected fill's own contrast against the canvas (or, for the
|
|
87
|
-
* divider case, against the neighbour's transparent/canvas background) is what marks the boundary.
|
|
88
|
-
*/
|
|
89
78
|
export function resolveButtonGroupSegmentEdgeColors(colors, input) {
|
|
90
|
-
const own = input.selected ? OMITTED_EDGE : colors.outline;
|
|
91
79
|
const right = input.selected || input.nextSelected ? OMITTED_EDGE : colors.outline;
|
|
92
80
|
return {
|
|
93
|
-
top: own,
|
|
94
|
-
bottom: own,
|
|
95
|
-
left: own,
|
|
96
81
|
right
|
|
97
82
|
};
|
|
98
83
|
}
|
|
@@ -131,46 +116,64 @@ export function resolveButtonGroupSegmentHitSlop(size, position) {
|
|
|
131
116
|
export function resolveButtonGroupSegmentAccessibility(input) {
|
|
132
117
|
return {
|
|
133
118
|
accessibilityRole: "radio",
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
disabled: input.disabled
|
|
137
|
-
},
|
|
119
|
+
"aria-checked": input.selected,
|
|
120
|
+
"aria-disabled": input.disabled,
|
|
138
121
|
disabled: input.disabled
|
|
139
122
|
};
|
|
140
123
|
}
|
|
124
|
+
/**
|
|
125
|
+
* The WAI-ARIA radio-group keyboard contract, resolved purely: arrows move one segment and WRAP (the
|
|
126
|
+
* arrows both move and select, so there is no "past the end" to fall off), Home/End jump to the ends.
|
|
127
|
+
* Returns `undefined` for any other key — also how the caller knows not to swallow that keystroke.
|
|
128
|
+
* Duplicated from `RadioGroup.variants.ts` rather than imported: modules stay isolated.
|
|
129
|
+
*/
|
|
130
|
+
export function resolveButtonGroupKeyIndex(input) {
|
|
131
|
+
const {
|
|
132
|
+
key,
|
|
133
|
+
index,
|
|
134
|
+
count
|
|
135
|
+
} = input;
|
|
136
|
+
if (count <= 0) return undefined;
|
|
137
|
+
switch (key) {
|
|
138
|
+
case "ArrowRight":
|
|
139
|
+
case "ArrowDown":
|
|
140
|
+
return (index + 1) % count;
|
|
141
|
+
case "ArrowLeft":
|
|
142
|
+
case "ArrowUp":
|
|
143
|
+
return (index - 1 + count) % count;
|
|
144
|
+
case "Home":
|
|
145
|
+
return 0;
|
|
146
|
+
case "End":
|
|
147
|
+
return count - 1;
|
|
148
|
+
default:
|
|
149
|
+
return undefined;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
141
152
|
|
|
142
153
|
/**
|
|
143
|
-
* The container
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* own: the outer border is drawn by the first/last segments themselves (see
|
|
148
|
-
* `buttonGroupSegmentStructure`), because only a per-segment border can be selectively omitted where
|
|
149
|
-
* it touches the selected segment (WCAG 1.4.11) — a single container-wide border is one colour for
|
|
150
|
-
* its entire perimeter and cannot vary by which segment it runs along.
|
|
154
|
+
* The container. `overflow: hidden` + `borderRadius` clips every segment's fill (and the outer
|
|
155
|
+
* segments' square corners) to one rounded shape, so the selected segment never pokes a corner past
|
|
156
|
+
* it. `backgroundColor: bg.raised` is the group's tonal frame — it replaces the old outer hairline,
|
|
157
|
+
* so unselected segments (transparent) read as sitting on one continuous raised surface.
|
|
151
158
|
*/
|
|
152
159
|
export const buttonGroupStructure = createThemedVariants(theme => ({
|
|
153
160
|
base: {
|
|
154
161
|
flexDirection: "row",
|
|
155
|
-
borderRadius: theme.radii.
|
|
156
|
-
|
|
162
|
+
borderRadius: theme.radii.md,
|
|
163
|
+
borderCurve: "continuous",
|
|
164
|
+
overflow: "hidden",
|
|
165
|
+
backgroundColor: theme.colors.bg.raised
|
|
157
166
|
}
|
|
158
167
|
}));
|
|
159
168
|
|
|
160
169
|
/**
|
|
161
170
|
* One segment's layout. `minWidth: MIN_TOUCH_TARGET` is the real ≥44dp touch-target floor for the
|
|
162
|
-
* WIDTH axis
|
|
163
|
-
* `resolveButtonGroupSegmentHitSlop`), so the rendered node itself must never shrink narrower than
|
|
164
|
-
* 44dp, for a realistic 2–4 option row at either size. `height` is fixed (not a minimum) so the
|
|
171
|
+
* WIDTH axis (see `resolveButtonGroupSegmentHitSlop`). `height` is fixed (not a minimum) so the
|
|
165
172
|
* vertical hitSlop math holds against what actually renders.
|
|
166
173
|
*
|
|
167
|
-
*
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
* edge); only the LAST segment gets right-corner radii (matching the container's own `borderRadius`,
|
|
171
|
-
* so that segment's own border curves rather than being clipped into an L by the container). Border
|
|
172
|
-
* WIDTHS are structural and constant; COLOURS (drawn vs `transparent`) are resolved per render by
|
|
173
|
-
* `resolveButtonGroupSegmentEdgeColors` and applied inline over this.
|
|
174
|
+
* Only a right border remains, structural on every segment but the last — the internal divider
|
|
175
|
+
* between two adjacent unselected segments (see `resolveButtonGroupSegmentEdgeColors`). There is no
|
|
176
|
+
* more top/bottom/left border: the container's own tonal fill carries the group's outer shape now.
|
|
174
177
|
*/
|
|
175
178
|
export const buttonGroupSegmentStructure = createThemedVariants(theme => ({
|
|
176
179
|
base: {
|
|
@@ -178,8 +181,6 @@ export const buttonGroupSegmentStructure = createThemedVariants(theme => ({
|
|
|
178
181
|
minWidth: MIN_TOUCH_TARGET,
|
|
179
182
|
alignItems: "center",
|
|
180
183
|
justifyContent: "center",
|
|
181
|
-
borderTopWidth: theme.borderWidths.thin,
|
|
182
|
-
borderBottomWidth: theme.borderWidths.thin,
|
|
183
184
|
borderRightWidth: theme.borderWidths.thin
|
|
184
185
|
},
|
|
185
186
|
variants: {
|
|
@@ -195,18 +196,18 @@ export const buttonGroupSegmentStructure = createThemedVariants(theme => ({
|
|
|
195
196
|
},
|
|
196
197
|
first: {
|
|
197
198
|
on: {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
199
|
+
borderTopLeftRadius: theme.radii.md,
|
|
200
|
+
borderBottomLeftRadius: theme.radii.md,
|
|
201
|
+
borderCurve: "continuous"
|
|
201
202
|
},
|
|
202
|
-
off: {
|
|
203
|
-
borderLeftWidth: 0
|
|
204
|
-
}
|
|
203
|
+
off: {}
|
|
205
204
|
},
|
|
206
205
|
last: {
|
|
207
206
|
on: {
|
|
208
|
-
borderTopRightRadius: theme.radii.
|
|
209
|
-
borderBottomRightRadius: theme.radii.
|
|
207
|
+
borderTopRightRadius: theme.radii.md,
|
|
208
|
+
borderBottomRightRadius: theme.radii.md,
|
|
209
|
+
borderCurve: "continuous",
|
|
210
|
+
borderRightWidth: 0
|
|
210
211
|
},
|
|
211
212
|
off: {}
|
|
212
213
|
}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# button-group/ — a segmented single-choice control
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
segments — NOT a row of standalone `Button`s. One component owns the whole
|
|
5
|
-
`radio-group/`: each segment carries its own `accessibilityRole="radio"`; the
|
|
6
|
-
`accessibilityRole="radiogroup"` so assistive tech announces the grouping without
|
|
7
|
-
individually-focusable segments into one. The
|
|
8
|
-
the container) so it can be selectively omitted where it touches the selected segment — see
|
|
9
|
-
**1.4.11** below.
|
|
3
|
+
Segments sit on one shared tonal container fill (`bg.raised`) with a hairline divider between
|
|
4
|
+
adjacent unselected segments — NOT a row of standalone `Button`s. One component owns the whole
|
|
5
|
+
group, same shape as `radio-group/`: each segment carries its own `accessibilityRole="radio"`; the
|
|
6
|
+
container carries `accessibilityRole="radiogroup"` so assistive tech announces the grouping without
|
|
7
|
+
collapsing the individually-focusable segments into one. The divider is drawn PER SEGMENT (never
|
|
8
|
+
once on the container) so it can be selectively omitted where it touches the selected segment — see
|
|
9
|
+
**1.4.11** below. There is no outer frame border any more (Wave 5 tonal restyle) — the container's
|
|
10
|
+
own fill carries the group's shape.
|
|
10
11
|
|
|
11
12
|
## Files
|
|
12
13
|
|
|
@@ -28,7 +29,7 @@ the container) so it can be selectively omitted where it touches the selected se
|
|
|
28
29
|
| `disabled` | `boolean` | `false` | Dims every segment and blocks all presses (whole-group only — no per-option `disabled`). |
|
|
29
30
|
| `size` | `sm \| md` | `md` | 32 / 40 dp fixed segment height (matches Button's `sm`/`md`); both reach 44dp via `hitSlop`. |
|
|
30
31
|
| `style` | `LayoutStyle` | — | Layout-only, outermost (the container `View`), applied exactly once, last. |
|
|
31
|
-
| `testID` | `string` | — | Container's testID; each segment gets `` `${testID}-${option.value}` `` when set. |
|
|
32
|
+
| `testID` | `string` | — | Container's testID; each segment gets `` `${testID}-${option.value}` ``, and the focused segment a `` `${testID}-${option.value}-focus-ring` `` child, when set. |
|
|
32
33
|
|
|
33
34
|
No `tone`/`variant` union and no `icon` — this is a single-purpose control, not a closed union of
|
|
34
35
|
appearances. The selected fill is always `accent.solid`; the shared outline/divider is always
|
|
@@ -36,10 +37,12 @@ appearances. The selected fill is always `accent.solid`; the shared outline/divi
|
|
|
36
37
|
|
|
37
38
|
## Accessibility contract (WCAG)
|
|
38
39
|
|
|
39
|
-
- **4.1.2** — `accessibilityRole="radio"` per segment, `
|
|
40
|
+
- **4.1.2** — `accessibilityRole="radio"` per segment, flat `aria-checked` / `aria-disabled`
|
|
40
41
|
(NOT `role="tab"`/`.selected` — a tab switches content panels, which this control does not do; it
|
|
41
42
|
is the same single-choice value selector shape `RadioGroup` already uses, just drawn as connected
|
|
42
|
-
segments instead of rows); `accessibilityRole="radiogroup"` on the container.
|
|
43
|
+
segments instead of rows); `accessibilityRole="radiogroup"` on the container. Flat, never
|
|
44
|
+
`accessibilityState={{…}}`: react-native-web discards the object form — see
|
|
45
|
+
`docs/PLATFORM-A11Y-PROPS.md`.
|
|
43
46
|
- **2.5.x target size** — every segment reaches ≥ 44dp on BOTH axes, but not through one flat
|
|
44
47
|
`hitSlop`:
|
|
45
48
|
- **Vertical** — symmetric `hitSlop` on every segment (32dp/40dp visual height + 6/2dp slop = 44dp).
|
|
@@ -63,20 +66,29 @@ appearances. The selected fill is always `accent.solid`; the shared outline/divi
|
|
|
63
66
|
canvas (resting) and `bg.sunken` (pressed) — NOT `bg.hover`, whose saturated mid-tone was measured
|
|
64
67
|
to drop the brand-tinted label below 4.5:1 on several brands, the same class of bug Button's
|
|
65
68
|
"neutral" tone and RadioGroup's pressed row document fixing the same way.
|
|
66
|
-
- **1.4.11** — the shared `outline` token (`border.interactive`)
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
69
|
+
- **1.4.11** — the shared `outline` token (`border.interactive`) is now only ever drawn as the
|
|
70
|
+
divider between two adjacent unselected segments; any edge touching the selected segment gets
|
|
71
|
+
`transparent` instead, and the boundary there is served by `accent.solid` (`selectedFill`) against
|
|
72
|
+
the group's own `containerFill` (`bg.raised`) — measured ≥ 3:1 on all 16 brand × mode combinations
|
|
73
|
+
(worst case 3.31:1, rosewood light). `ButtonGroup.test.ts` measures every actually-rendered
|
|
74
|
+
boundary for first/middle/last selected × all 8 brands × both modes.
|
|
75
|
+
- **2.1.1 (keyboard) — roving tabindex.** `accessibilityRole="radio"` per segment means ARIA requires
|
|
76
|
+
the group to be ONE tab stop whose arrows both move and select. `tabIndex` is `0` on exactly one
|
|
77
|
+
segment and `-1` on the rest; arrows move and select (wrapping), Home/End jump to the ends
|
|
78
|
+
(`resolveButtonGroupKeyIndex`), and the handler calls `preventDefault` so the page does not scroll.
|
|
79
|
+
The active index is **derived** from `value` (falling back to segment 0), never held in state — a
|
|
80
|
+
`value` the consumer changes from outside can then never desync the tab stop. After an arrow the
|
|
81
|
+
handler also calls `.focus()` on the newly-selected segment's node, because the tab stop moved and
|
|
82
|
+
DOM focus has to follow it or the ring is stranded. RN's TypeScript `ViewPropTypes.d.ts` omits
|
|
83
|
+
`onKeyDown` (its Flow types declare it), so the container `View` is re-typed once, locally.
|
|
84
|
+
- **2.4.7 (focus visible) — the ring is INSET here, unlike Button's.** `buttonGroupStructure` is
|
|
85
|
+
`overflow: "hidden"` and has to be (that clip is what joins the segment radii into one shape), so
|
|
86
|
+
Button's ring at negative offsets would be clipped away entirely. This one is drawn at positive
|
|
87
|
+
offsets inside the segment instead; `ButtonGroup.render.test.tsx` asserts both halves — that the
|
|
88
|
+
container really clips, and that every ring edge is a positive inset that therefore survives it.
|
|
89
|
+
Segments also carry `focusable={!disabled}`, since RN's `Pressable` stays focusable when disabled.
|
|
90
|
+
- **2.3.3** — n/a for selection (conditional fill, not a slide). Segment presses use `usePressState`
|
|
91
|
+
(scale + state-layer overlay), which snaps under reduce motion — same gating as `Button`.
|
|
80
92
|
- Disabled segments are exempt from the contrast minimum (WCAG 1.4.3), so the uniform `opacity: 0.5`
|
|
81
93
|
dim is correct, same as Button/RadioGroup.
|
|
82
94
|
|
|
@@ -88,15 +100,12 @@ appearances. The selected fill is always `accent.solid`; the shared outline/divi
|
|
|
88
100
|
and — per edge, per segment — `outline` vs `transparent`) is resolved by `resolveButtonGroupColors`
|
|
89
101
|
/ `resolveButtonGroupSegmentEdgeColors` from role tokens and applied inline over the structural
|
|
90
102
|
style.
|
|
91
|
-
2. **One connected control, not N buttons —
|
|
92
|
-
The container
|
|
93
|
-
|
|
94
|
-
structurally carries its own
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
container-wide border could never be selectively omitted per segment (one colour for its whole
|
|
98
|
-
perimeter), which is exactly why 1.4.11 shipped broken the first time — moving the border onto the
|
|
99
|
-
segments is what makes the WCAG fix possible at all.
|
|
103
|
+
2. **One connected control, not N buttons — the divider lives on the segments, the shape on the
|
|
104
|
+
container.** The container clips (`overflow: 'hidden'` + `borderRadius`) AND carries the tonal
|
|
105
|
+
`containerFill`; it clips a filled end segment's square corner into the shared rounded shape.
|
|
106
|
+
Every segment but the last structurally carries its own right border, the divider between it and
|
|
107
|
+
its neighbour; a single container-wide border could never be selectively omitted per segment (one
|
|
108
|
+
colour for its whole perimeter), which is why the divider still lives on the segments.
|
|
100
109
|
3. **Pure, testable resolvers** in `ButtonGroup.variants.ts` (no React) so the WCAG + behaviour
|
|
101
110
|
contract is unit-tested against the real palettes — never eyeballed.
|
|
102
111
|
4. **No `{...rest}`, `style` once on the outermost node**, no icon (per spec), no import from
|
|
@@ -107,10 +116,13 @@ appearances. The selected fill is always `accent.solid`; the shared outline/divi
|
|
|
107
116
|
|
|
108
117
|
## Known gaps
|
|
109
118
|
|
|
110
|
-
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
119
|
+
- Arrow keys move the tab stop by moving the SELECTION, so a keyboard user cannot browse the segments
|
|
120
|
+
without changing the value. That is the WAI-ARIA radio-group pattern, not a defect — but it does
|
|
121
|
+
mean `onValueChange` fires once per arrow press.
|
|
122
|
+
- The focus ring's contrast is **not** measured per brand the way every other boundary in this module
|
|
123
|
+
is. It is `border.focus` (a neutral grey, chosen library-wide precisely so a ring survives an
|
|
124
|
+
accent-filled control) drawn inside the segment, so on a SELECTED segment it sits over
|
|
125
|
+
`accent.solid` rather than the canvas — the one pairing this module's WCAG suite does not cover.
|
|
114
126
|
|
|
115
127
|
### Resolved — the adjacent-pressed-segment boundary (WCAG 1.4.11)
|
|
116
128
|
|
|
@@ -127,3 +139,12 @@ an `if (dark)` branch. Worst case now 3.08:1 (rosewood light); the unselected la
|
|
|
127
139
|
## Performance
|
|
128
140
|
|
|
129
141
|
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`) — renamed to `ButtonGroupImpl` internally, exported as `ButtonGroup = memo(ButtonGroupImpl)`. The `options.map()` hands every per-row prop to host elements (`Pressable`/`Text`/`View`), never a library child component, so no `useCallback`/`useMemo` was needed.
|
|
142
|
+
|
|
143
|
+
Android segments carry `android_ripple` (mirrors Button/RadioGroup), gated off while
|
|
144
|
+
`disabled || selected` since a selected segment already reads via its fill.
|
|
145
|
+
|
|
146
|
+
## Modernization (v1.0.7)
|
|
147
|
+
|
|
148
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
149
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
150
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|