pixelize-native-library 1.0.6 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/core/MODULE.md +129 -36
- package/lib/module/core/a11y/MODULE.md +127 -4
- package/lib/module/core/a11y/announce.js +30 -0
- package/lib/module/core/a11y/announce.web.js +134 -0
- package/lib/module/core/a11y/index.js +81 -15
- package/lib/module/core/a11y/keyboard.js +42 -0
- package/lib/module/core/a11y/keyboard.web.js +229 -0
- package/lib/module/core/a11y/labels.js +24 -0
- package/lib/module/core/device/MODULE.md +47 -0
- package/lib/module/core/device/index.js +91 -0
- package/lib/module/core/heading/MODULE.md +38 -0
- package/lib/module/core/heading/index.js +45 -0
- package/lib/module/core/icon/Icon.js +37 -0
- package/lib/module/core/icon/MODULE.md +42 -8
- package/lib/module/core/icon/icons/arrow-down.js +10 -0
- package/lib/module/core/icon/icons/arrow-left.js +10 -0
- package/lib/module/core/icon/icons/arrow-right.js +10 -0
- package/lib/module/core/icon/icons/arrow-up.js +10 -0
- package/lib/module/core/icon/icons/at-sign.js +10 -0
- package/lib/module/core/icon/icons/bell.js +10 -0
- package/lib/module/core/icon/icons/bold.js +10 -0
- package/lib/module/core/icon/icons/building-2.js +10 -0
- package/lib/module/core/icon/icons/calendar.js +10 -0
- package/lib/module/core/icon/icons/chart-column.js +10 -0
- package/lib/module/core/icon/icons/check.js +10 -0
- package/lib/module/core/icon/icons/chevron-down.js +10 -0
- package/lib/module/core/icon/icons/chevron-left.js +10 -0
- package/lib/module/core/icon/icons/chevron-right.js +10 -0
- package/lib/module/core/icon/icons/chevron-up.js +10 -0
- package/lib/module/core/icon/icons/chevrons-left.js +10 -0
- package/lib/module/core/icon/icons/chevrons-right.js +10 -0
- package/lib/module/core/icon/icons/chevrons-up-down.js +10 -0
- package/lib/module/core/icon/icons/circle-alert.js +10 -0
- package/lib/module/core/icon/icons/circle-check.js +10 -0
- package/lib/module/core/icon/icons/clock.js +10 -0
- package/lib/module/core/icon/icons/code.js +10 -0
- package/lib/module/core/icon/icons/download.js +10 -0
- package/lib/module/core/icon/icons/external-link.js +10 -0
- package/lib/module/core/icon/icons/eye.js +10 -0
- package/lib/module/core/icon/icons/file-text.js +10 -0
- package/lib/module/core/icon/icons/filter.js +10 -0
- package/lib/module/core/icon/icons/flag.js +10 -0
- package/lib/module/core/icon/icons/folder.js +10 -0
- package/lib/module/core/icon/icons/heading-1.js +10 -0
- package/lib/module/core/icon/icons/heading-2.js +10 -0
- package/lib/module/core/icon/icons/heading-3.js +10 -0
- package/lib/module/core/icon/icons/image.js +10 -0
- package/lib/module/core/icon/icons/inbox.js +10 -0
- package/lib/module/core/icon/icons/info.js +10 -0
- package/lib/module/core/icon/icons/italic.js +10 -0
- package/lib/module/core/icon/icons/kanban.js +10 -0
- package/lib/module/core/icon/icons/layers.js +10 -0
- package/lib/module/core/icon/icons/layout-dashboard.js +10 -0
- package/lib/module/core/icon/icons/layout-template.js +10 -0
- package/lib/module/core/icon/icons/life-buoy.js +10 -0
- package/lib/module/core/icon/icons/link.js +10 -0
- package/lib/module/core/icon/icons/list-checks.js +10 -0
- package/lib/module/core/icon/icons/list-ordered.js +10 -0
- package/lib/module/core/icon/icons/list-todo.js +10 -0
- package/lib/module/core/icon/icons/list.js +10 -0
- package/lib/module/core/icon/icons/log-out.js +10 -0
- package/lib/module/core/icon/icons/map.js +10 -0
- package/lib/module/core/icon/icons/message-square.js +10 -0
- package/lib/module/core/icon/icons/milestone.js +10 -0
- package/lib/module/core/icon/icons/minus.js +10 -0
- package/lib/module/core/icon/icons/more-horizontal.js +10 -0
- package/lib/module/core/icon/icons/paperclip.js +10 -0
- package/lib/module/core/icon/icons/pencil.js +10 -0
- package/lib/module/core/icon/icons/plus.js +10 -0
- package/lib/module/core/icon/icons/quote.js +10 -0
- package/lib/module/core/icon/icons/refresh-cw.js +10 -0
- package/lib/module/core/icon/icons/save.js +10 -0
- package/lib/module/core/icon/icons/search.js +10 -0
- package/lib/module/core/icon/icons/send.js +10 -0
- package/lib/module/core/icon/icons/settings.js +10 -0
- package/lib/module/core/icon/icons/share.js +10 -0
- package/lib/module/core/icon/icons/square-code.js +10 -0
- package/lib/module/core/icon/icons/star.js +10 -0
- package/lib/module/core/icon/icons/strikethrough.js +10 -0
- package/lib/module/core/icon/icons/tag.js +10 -0
- package/lib/module/core/icon/icons/trash.js +10 -0
- package/lib/module/core/icon/icons/triangle-alert.js +10 -0
- package/lib/module/core/icon/icons/underline.js +10 -0
- package/lib/module/core/icon/icons/upload.js +10 -0
- package/lib/module/core/icon/icons/user.js +10 -0
- package/lib/module/core/icon/icons/users.js +10 -0
- package/lib/module/core/icon/icons/x.js +10 -0
- package/lib/module/core/icon/index.js +4 -86
- package/lib/module/core/icon/names.js +2 -0
- package/lib/module/core/icon/resolve.js +158 -0
- package/lib/module/core/icon/types.js +4 -0
- package/lib/module/core/list/VirtualList.js +226 -0
- package/lib/module/core/list/index.js +4 -0
- package/lib/module/core/media/MediaImage.js +51 -0
- package/lib/module/core/media/expoImage.js +20 -0
- package/lib/module/core/media/index.js +6 -0
- package/lib/module/core/media/pickers.js +23 -0
- package/lib/module/core/motion/MODULE.md +101 -0
- package/lib/module/core/motion/config.js +112 -0
- package/lib/module/core/motion/index.js +7 -0
- package/lib/module/core/motion/presets.js +192 -0
- package/lib/module/core/motion/useAnimatedValue.js +19 -0
- package/lib/module/core/motion/useMotion.js +46 -0
- package/lib/module/core/style/index.js +2 -0
- package/lib/module/core/style/sx.js +76 -0
- package/lib/module/core/style/useThemedStyles.js +8 -0
- package/lib/module/index.js +70 -2
- package/lib/module/modules/accordion/Accordion.js +256 -87
- package/lib/module/modules/accordion/Accordion.variants.js +2 -4
- package/lib/module/modules/accordion/MODULE.md +35 -11
- package/lib/module/modules/alert-dialog/AlertDialog.js +1 -1
- package/lib/module/modules/alert-dialog/MODULE.md +11 -2
- package/lib/module/modules/app-bar/AppBar.js +179 -0
- package/lib/module/modules/app-bar/AppBar.variants.js +72 -0
- package/lib/module/modules/app-bar/MODULE.md +68 -0
- package/lib/module/modules/app-bar/index.js +10 -0
- package/lib/module/modules/avatar/Avatar.js +38 -18
- package/lib/module/modules/avatar/Avatar.variants.js +44 -3
- package/lib/module/modules/avatar/MODULE.md +37 -15
- package/lib/module/modules/avatar-group/AvatarGroup.js +77 -0
- package/lib/module/modules/avatar-group/AvatarGroup.variants.js +109 -0
- package/lib/module/modules/avatar-group/MODULE.md +28 -0
- package/lib/module/modules/avatar-group/index.js +10 -0
- package/lib/module/modules/badge/Badge.js +3 -2
- package/lib/module/modules/badge/Badge.variants.js +12 -2
- package/lib/module/modules/badge/MODULE.md +6 -0
- package/lib/module/modules/banner/Banner.js +135 -0
- package/lib/module/modules/banner/Banner.variants.js +118 -0
- package/lib/module/modules/banner/MODULE.md +113 -0
- package/lib/module/modules/banner/index.js +4 -0
- package/lib/module/modules/bottom-nav/BottomNav.js +38 -117
- package/lib/module/modules/bottom-nav/BottomNav.variants.js +93 -9
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +123 -0
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +146 -120
- package/lib/module/modules/bottom-nav/BottomNavTab.js +138 -0
- package/lib/module/modules/bottom-nav/MODULE.md +45 -15
- package/lib/module/modules/bottom-sheet/BottomSheet.js +189 -0
- package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +49 -0
- package/lib/module/modules/bottom-sheet/MODULE.md +53 -0
- package/lib/module/modules/bottom-sheet/index.js +4 -0
- package/lib/module/modules/button/Button.js +98 -47
- package/lib/module/modules/button/Button.variants.js +12 -7
- package/lib/module/modules/button/MODULE.md +25 -3
- package/lib/module/modules/button-group/ButtonGroup.js +163 -55
- package/lib/module/modules/button-group/ButtonGroup.variants.js +30 -4
- package/lib/module/modules/button-group/MODULE.md +33 -7
- package/lib/module/modules/card/Card.js +10 -7
- package/lib/module/modules/card/MODULE.md +6 -0
- package/lib/module/modules/charts/BarChart.js +242 -0
- package/lib/module/modules/charts/BarList.js +129 -0
- package/lib/module/modules/charts/ChartLegend.js +154 -0
- package/lib/module/modules/charts/Charts.variants.js +582 -0
- package/lib/module/modules/charts/DonutChart.js +133 -0
- package/lib/module/modules/charts/LineChart.js +179 -0
- package/lib/module/modules/charts/MODULE.md +178 -0
- package/lib/module/modules/charts/PieChart.js +140 -0
- package/lib/module/modules/charts/Sparkline.js +80 -0
- package/lib/module/modules/charts/index.js +15 -0
- package/lib/module/modules/checkbox/Checkbox.js +114 -44
- package/lib/module/modules/checkbox/Checkbox.variants.js +13 -8
- package/lib/module/modules/checkbox/MODULE.md +35 -8
- package/lib/module/modules/chip/Chip.js +155 -0
- package/lib/module/modules/chip/Chip.variants.js +278 -0
- package/lib/module/modules/chip/ChipGroup.js +48 -0
- package/lib/module/modules/chip/MODULE.md +156 -0
- package/lib/module/modules/chip/index.js +13 -0
- package/lib/module/modules/combobox/Combobox.js +587 -0
- package/lib/module/modules/combobox/Combobox.variants.js +280 -0
- package/lib/module/modules/combobox/MODULE.md +183 -0
- package/lib/module/modules/combobox/comboboxKeys.js +19 -0
- package/lib/module/modules/combobox/comboboxKeys.web.js +76 -0
- package/lib/module/modules/combobox/index.js +13 -0
- package/lib/module/modules/composer/Composer.js +156 -0
- package/lib/module/modules/composer/Composer.variants.js +42 -0
- package/lib/module/modules/composer/MODULE.md +70 -0
- package/lib/module/modules/composer/index.js +4 -0
- package/lib/module/modules/copy-button/CopyButton.js +156 -0
- package/lib/module/modules/copy-button/CopyButton.variants.js +86 -0
- package/lib/module/modules/copy-button/MODULE.md +73 -0
- package/lib/module/modules/copy-button/index.js +4 -0
- package/lib/module/modules/data-table/DataTable.js +513 -0
- package/lib/module/modules/data-table/DataTable.variants.js +188 -0
- package/lib/module/modules/data-table/MODULE.md +145 -0
- package/lib/module/modules/data-table/index.js +10 -0
- package/lib/module/modules/date-picker/Calendar.js +368 -0
- package/lib/module/modules/date-picker/Calendar.keys.js +23 -0
- package/lib/module/modules/date-picker/Calendar.keys.web.js +83 -0
- package/lib/module/modules/date-picker/DatePicker.js +162 -0
- package/lib/module/modules/date-picker/DatePicker.variants.js +686 -0
- package/lib/module/modules/date-picker/DateRangePicker.js +87 -0
- package/lib/module/modules/date-picker/MODULE.md +169 -0
- package/lib/module/modules/date-picker/PickerField.js +142 -0
- package/lib/module/modules/date-picker/PickerShell.js +132 -0
- package/lib/module/modules/date-picker/TimePicker.js +184 -0
- package/lib/module/modules/date-picker/index.js +14 -0
- package/lib/module/modules/divider/Divider.js +8 -7
- package/lib/module/modules/divider/MODULE.md +6 -0
- package/lib/module/modules/drawer/Drawer.js +140 -58
- package/lib/module/modules/drawer/Drawer.variants.js +3 -16
- package/lib/module/modules/drawer/MODULE.md +90 -118
- package/lib/module/modules/empty-state/EmptyState.js +32 -18
- package/lib/module/modules/empty-state/EmptyState.variants.js +9 -0
- package/lib/module/modules/empty-state/MODULE.md +25 -7
- package/lib/module/modules/fab/Fab.js +212 -0
- package/lib/module/modules/fab/Fab.variants.js +346 -0
- package/lib/module/modules/fab/FabGroup.js +334 -0
- package/lib/module/modules/fab/MODULE.md +181 -0
- package/lib/module/modules/fab/index.js +13 -0
- package/lib/module/modules/file-grid/FileGrid.js +149 -0
- package/lib/module/modules/file-grid/FileGrid.variants.js +51 -0
- package/lib/module/modules/file-grid/MODULE.md +12 -0
- package/lib/module/modules/file-grid/index.js +4 -0
- package/lib/module/modules/file-upload/FileUpload.js +124 -34
- package/lib/module/modules/file-upload/FileUpload.variants.js +50 -7
- package/lib/module/modules/file-upload/MODULE.md +22 -4
- package/lib/module/modules/filter-sheet/FilterChip.js +25 -19
- package/lib/module/modules/filter-sheet/FilterSheet.js +17 -11
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js +24 -5
- package/lib/module/modules/filter-sheet/FilterSheetBody.js +168 -82
- package/lib/module/modules/filter-sheet/MODULE.md +22 -1
- package/lib/module/modules/folder-row/FolderRow.js +132 -0
- package/lib/module/modules/folder-row/FolderRow.variants.js +49 -0
- package/lib/module/modules/folder-row/MODULE.md +71 -0
- package/lib/module/modules/folder-row/index.js +4 -0
- package/lib/module/modules/form-field/FormField.js +104 -0
- package/lib/module/modules/form-field/FormField.variants.js +88 -0
- package/lib/module/modules/form-field/MODULE.md +103 -0
- package/lib/module/modules/form-field/index.js +4 -0
- package/lib/module/modules/gantt/Gantt.js +218 -0
- package/lib/module/modules/gantt/Gantt.variants.js +141 -0
- package/lib/module/modules/gantt/MODULE.md +71 -0
- package/lib/module/modules/gantt/index.js +5 -0
- package/lib/module/modules/image-viewer/ImageViewer.js +235 -0
- package/lib/module/modules/image-viewer/ImageViewer.variants.js +6 -0
- package/lib/module/modules/image-viewer/MODULE.md +57 -0
- package/lib/module/modules/image-viewer/index.js +4 -0
- package/lib/module/modules/input/Input.js +106 -48
- package/lib/module/modules/input/Input.variants.js +18 -4
- package/lib/module/modules/input/MODULE.md +36 -6
- package/lib/module/modules/limit-reached-modal/LimitReachedModal.js +90 -0
- package/lib/module/modules/limit-reached-modal/LimitReachedModal.variants.js +108 -0
- package/lib/module/modules/limit-reached-modal/MODULE.md +94 -0
- package/lib/module/modules/limit-reached-modal/index.js +11 -0
- package/lib/module/modules/list-item/ListItem.js +92 -0
- package/lib/module/modules/list-item/ListItem.variants.js +53 -0
- package/lib/module/modules/list-item/MODULE.md +53 -0
- package/lib/module/modules/list-item/index.js +10 -0
- package/lib/module/modules/markdown/MODULE.md +71 -0
- package/lib/module/modules/markdown/Markdown.js +183 -0
- package/lib/module/modules/markdown/Markdown.variants.js +73 -0
- package/lib/module/modules/markdown/index.js +11 -0
- package/lib/module/modules/markdown/parseMarkdown.js +153 -0
- package/lib/module/modules/menu/MODULE.md +45 -14
- package/lib/module/modules/menu/Menu.js +174 -65
- package/lib/module/modules/menu/Menu.variants.js +10 -0
- package/lib/module/modules/message-bubble/MODULE.md +38 -0
- package/lib/module/modules/message-bubble/MessageBubble.js +55 -0
- package/lib/module/modules/message-bubble/MessageBubble.variants.js +57 -0
- package/lib/module/modules/message-bubble/index.js +4 -0
- package/lib/module/modules/modal/MODULE.md +29 -3
- package/lib/module/modules/modal/Modal.js +72 -22
- package/lib/module/modules/more-items/MODULE.md +72 -0
- package/lib/module/modules/more-items/MoreItems.js +162 -0
- package/lib/module/modules/more-items/MoreItems.variants.js +80 -0
- package/lib/module/modules/more-items/index.js +4 -0
- package/lib/module/modules/multi-select/MODULE.md +85 -19
- package/lib/module/modules/multi-select/MultiSelect.js +217 -105
- package/lib/module/modules/multi-select/MultiSelect.variants.js +28 -5
- package/lib/module/modules/number-input/MODULE.md +39 -5
- package/lib/module/modules/number-input/NumberInput.js +41 -11
- package/lib/module/modules/number-input/NumberInput.variants.js +39 -5
- package/lib/module/modules/org-switcher/MODULE.md +121 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.js +284 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +186 -0
- package/lib/module/modules/org-switcher/index.js +9 -0
- package/lib/module/modules/pagination/MODULE.md +163 -0
- package/lib/module/modules/pagination/Pagination.js +197 -0
- package/lib/module/modules/pagination/Pagination.variants.js +307 -0
- package/lib/module/modules/pagination/PaginationControls.js +193 -0
- package/lib/module/modules/pagination/index.js +15 -0
- package/lib/module/modules/pin-input/MODULE.md +29 -14
- package/lib/module/modules/pin-input/PinInput.js +111 -80
- package/lib/module/modules/pin-input/PinInput.variants.js +13 -5
- package/lib/module/modules/progress-bar/MODULE.md +17 -7
- package/lib/module/modules/progress-bar/ProgressBar.js +97 -56
- package/lib/module/modules/progress-bar/ProgressBar.variants.js +16 -18
- package/lib/module/modules/radio-group/MODULE.md +40 -14
- package/lib/module/modules/radio-group/RadioGroup.js +71 -7
- package/lib/module/modules/radio-group/RadioGroup.variants.js +46 -10
- package/lib/module/modules/reorder/MODULE.md +104 -97
- package/lib/module/modules/reorder/Reorder.js +233 -197
- package/lib/module/modules/reorder/Reorder.variants.js +35 -13
- package/lib/module/modules/rich-text/MODULE.md +52 -0
- package/lib/module/modules/rich-text/RichText.js +362 -0
- package/lib/module/modules/rich-text/RichText.variants.js +17 -0
- package/lib/module/modules/rich-text/index.js +5 -0
- package/lib/module/modules/rich-text/parseRichText.js +133 -0
- package/lib/module/modules/rich-text-editor/MODULE.md +225 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.js +413 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +316 -0
- package/lib/module/modules/rich-text-editor/index.js +10 -0
- package/lib/module/modules/screen/MODULE.md +57 -0
- package/lib/module/modules/screen/Screen.js +106 -0
- package/lib/module/modules/screen/Screen.variants.js +43 -0
- package/lib/module/modules/screen/index.js +10 -0
- package/lib/module/modules/search-bar/MODULE.md +114 -0
- package/lib/module/modules/search-bar/SearchBar.js +256 -0
- package/lib/module/modules/search-bar/SearchBar.variants.js +205 -0
- package/lib/module/modules/search-bar/index.js +12 -0
- package/lib/module/modules/section/MODULE.md +39 -0
- package/lib/module/modules/section/Section.js +42 -0
- package/lib/module/modules/section/Section.variants.js +29 -0
- package/lib/module/modules/section/index.js +10 -0
- package/lib/module/modules/section-list/MODULE.md +18 -0
- package/lib/module/modules/section-list/SectionList.js +64 -0
- package/lib/module/modules/section-list/SectionList.variants.js +11 -0
- package/lib/module/modules/section-list/index.js +4 -0
- package/lib/module/modules/segmented-control/MODULE.md +124 -0
- package/lib/module/modules/segmented-control/SegmentedControl.js +158 -0
- package/lib/module/modules/segmented-control/SegmentedControl.variants.js +167 -0
- package/lib/module/modules/segmented-control/index.js +13 -0
- package/lib/module/modules/select/MODULE.md +82 -15
- package/lib/module/modules/select/Select.js +201 -96
- package/lib/module/modules/select/Select.variants.js +39 -5
- package/lib/module/modules/skeleton/MODULE.md +27 -7
- package/lib/module/modules/skeleton/Skeleton.js +52 -38
- package/lib/module/modules/skeleton/Skeleton.variants.js +9 -8
- package/lib/module/modules/slider/MODULE.md +31 -5
- package/lib/module/modules/slider/Slider.js +67 -10
- package/lib/module/modules/slider/Slider.variants.js +60 -13
- package/lib/module/modules/spinner/MODULE.md +16 -6
- package/lib/module/modules/spinner/Spinner.js +20 -16
- package/lib/module/modules/spinner/Spinner.variants.js +5 -3
- package/lib/module/modules/stage-progress/MODULE.md +64 -0
- package/lib/module/modules/stage-progress/StageProgress.js +174 -0
- package/lib/module/modules/stage-progress/StageProgress.variants.js +164 -0
- package/lib/module/modules/stage-progress/index.js +4 -0
- package/lib/module/modules/stat-tile/MODULE.md +51 -0
- package/lib/module/modules/stat-tile/StatTile.js +124 -0
- package/lib/module/modules/stat-tile/StatTile.variants.js +57 -0
- package/lib/module/modules/stat-tile/index.js +10 -0
- package/lib/module/modules/state-block/MODULE.md +52 -0
- package/lib/module/modules/state-block/StateBlock.js +131 -0
- package/lib/module/modules/state-block/StateBlock.variants.js +55 -0
- package/lib/module/modules/state-block/index.js +10 -0
- package/lib/module/modules/stepper/MODULE.md +33 -6
- package/lib/module/modules/stepper/Stepper.js +108 -39
- package/lib/module/modules/stepper/Stepper.variants.js +6 -6
- package/lib/module/modules/swipeable-row/MODULE.md +120 -0
- package/lib/module/modules/swipeable-row/SwipeableRow.js +244 -0
- package/lib/module/modules/swipeable-row/SwipeableRow.variants.js +80 -0
- package/lib/module/modules/swipeable-row/index.js +4 -0
- package/lib/module/modules/switch/MODULE.md +14 -0
- package/lib/module/modules/switch/Switch.js +1 -1
- package/lib/module/modules/switch/Switch.variants.js +8 -0
- package/lib/module/modules/tabs/MODULE.md +47 -13
- package/lib/module/modules/tabs/Tabs.js +121 -72
- package/lib/module/modules/tabs/Tabs.variants.js +30 -8
- package/lib/module/modules/text/MODULE.md +51 -0
- package/lib/module/modules/text/Text.js +47 -0
- package/lib/module/modules/text/Text.variants.js +98 -0
- package/lib/module/modules/text/index.js +4 -0
- package/lib/module/modules/textarea/MODULE.md +29 -13
- package/lib/module/modules/textarea/Textarea.js +90 -45
- package/lib/module/modules/textarea/Textarea.variants.js +14 -9
- package/lib/module/modules/timeline/MODULE.md +49 -8
- package/lib/module/modules/timeline/Timeline.js +151 -74
- package/lib/module/modules/timeline/Timeline.variants.js +13 -0
- package/lib/module/modules/toast/MODULE.md +66 -7
- package/lib/module/modules/toast/Toast.js +93 -27
- package/lib/module/modules/toast/Toast.variants.js +37 -1
- package/lib/module/modules/toast/toastScreenReader.js +69 -0
- package/lib/module/modules/tooltip/MODULE.md +78 -28
- package/lib/module/modules/tooltip/Tooltip.js +93 -43
- package/lib/module/modules/tooltip/Tooltip.variants.js +3 -4
- package/lib/module/modules/typing-indicator/MODULE.md +48 -0
- package/lib/module/modules/typing-indicator/TypingIndicator.js +98 -0
- package/lib/module/modules/typing-indicator/TypingIndicator.variants.js +55 -0
- package/lib/module/modules/typing-indicator/index.js +4 -0
- package/lib/module/modules/unread-badge/MODULE.md +20 -0
- package/lib/module/modules/unread-badge/UnreadBadge.js +45 -0
- package/lib/module/modules/unread-badge/UnreadBadge.variants.js +66 -0
- package/lib/module/modules/unread-badge/index.js +4 -0
- package/lib/module/test/mocks/flashList.js +5 -0
- package/lib/module/test/perfHelpers.js +18 -0
- package/lib/module/theme/MODULE.md +6 -0
- package/lib/module/theme/hooks.js +11 -0
- package/lib/module/theme/index.js +3 -6
- package/lib/module/theme/platform/MODULE.md +6 -0
- package/lib/module/theme/platform/motion.native.js +15 -0
- package/lib/module/theme/provider/PixelizeProvider.js +9 -47
- package/lib/module/theme/provider/ThemeContext.js +6 -0
- package/lib/module/theme/provider/colorModeStorage.js +2 -2
- package/lib/module/theme/provider/index.js +1 -0
- package/lib/module/theme/provider/loadPalette.js +75 -0
- package/lib/module/theme/provider/types.js +4 -0
- package/lib/module/theme/provider/useTheme.js +1 -2
- package/lib/module/theme/provider/useThemeMode.js +1 -1
- package/lib/module/theme/tokens/builders/accentText.js +9 -0
- package/lib/module/theme/tokens/roles/index.js +9 -3
- package/lib/typescript/core/a11y/announce.d.ts +20 -0
- package/lib/typescript/core/a11y/announce.web.d.ts +27 -0
- package/lib/typescript/core/a11y/index.d.ts +21 -2
- package/lib/typescript/core/a11y/keyboard.d.ts +45 -0
- package/lib/typescript/core/a11y/keyboard.web.d.ts +69 -0
- package/lib/typescript/core/a11y/labels.d.ts +19 -0
- package/lib/typescript/core/device/index.d.ts +16 -0
- package/lib/typescript/core/heading/index.d.ts +45 -0
- package/lib/typescript/core/icon/Icon.d.ts +18 -0
- package/lib/typescript/core/icon/icons/arrow-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-up.d.ts +3 -0
- package/lib/typescript/core/icon/icons/at-sign.d.ts +3 -0
- package/lib/typescript/core/icon/icons/bell.d.ts +3 -0
- package/lib/typescript/core/icon/icons/bold.d.ts +3 -0
- package/lib/typescript/core/icon/icons/building-2.d.ts +3 -0
- package/lib/typescript/core/icon/icons/calendar.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chart-column.d.ts +3 -0
- package/lib/typescript/core/icon/icons/check.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-up.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-up-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/circle-alert.d.ts +3 -0
- package/lib/typescript/core/icon/icons/circle-check.d.ts +3 -0
- package/lib/typescript/core/icon/icons/clock.d.ts +3 -0
- package/lib/typescript/core/icon/icons/code.d.ts +3 -0
- package/lib/typescript/core/icon/icons/download.d.ts +3 -0
- package/lib/typescript/core/icon/icons/external-link.d.ts +3 -0
- package/lib/typescript/core/icon/icons/eye.d.ts +3 -0
- package/lib/typescript/core/icon/icons/file-text.d.ts +3 -0
- package/lib/typescript/core/icon/icons/filter.d.ts +3 -0
- package/lib/typescript/core/icon/icons/flag.d.ts +3 -0
- package/lib/typescript/core/icon/icons/folder.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-1.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-2.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-3.d.ts +3 -0
- package/lib/typescript/core/icon/icons/image.d.ts +3 -0
- package/lib/typescript/core/icon/icons/inbox.d.ts +3 -0
- package/lib/typescript/core/icon/icons/info.d.ts +3 -0
- package/lib/typescript/core/icon/icons/italic.d.ts +3 -0
- package/lib/typescript/core/icon/icons/kanban.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layers.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layout-dashboard.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layout-template.d.ts +3 -0
- package/lib/typescript/core/icon/icons/life-buoy.d.ts +3 -0
- package/lib/typescript/core/icon/icons/link.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-checks.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-ordered.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-todo.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list.d.ts +3 -0
- package/lib/typescript/core/icon/icons/log-out.d.ts +3 -0
- package/lib/typescript/core/icon/icons/map.d.ts +3 -0
- package/lib/typescript/core/icon/icons/message-square.d.ts +3 -0
- package/lib/typescript/core/icon/icons/milestone.d.ts +3 -0
- package/lib/typescript/core/icon/icons/minus.d.ts +3 -0
- package/lib/typescript/core/icon/icons/more-horizontal.d.ts +3 -0
- package/lib/typescript/core/icon/icons/paperclip.d.ts +3 -0
- package/lib/typescript/core/icon/icons/pencil.d.ts +3 -0
- package/lib/typescript/core/icon/icons/plus.d.ts +3 -0
- package/lib/typescript/core/icon/icons/quote.d.ts +3 -0
- package/lib/typescript/core/icon/icons/refresh-cw.d.ts +3 -0
- package/lib/typescript/core/icon/icons/save.d.ts +3 -0
- package/lib/typescript/core/icon/icons/search.d.ts +3 -0
- package/lib/typescript/core/icon/icons/send.d.ts +3 -0
- package/lib/typescript/core/icon/icons/settings.d.ts +3 -0
- package/lib/typescript/core/icon/icons/share.d.ts +3 -0
- package/lib/typescript/core/icon/icons/square-code.d.ts +3 -0
- package/lib/typescript/core/icon/icons/star.d.ts +3 -0
- package/lib/typescript/core/icon/icons/strikethrough.d.ts +3 -0
- package/lib/typescript/core/icon/icons/tag.d.ts +3 -0
- package/lib/typescript/core/icon/icons/trash.d.ts +3 -0
- package/lib/typescript/core/icon/icons/triangle-alert.d.ts +3 -0
- package/lib/typescript/core/icon/icons/underline.d.ts +3 -0
- package/lib/typescript/core/icon/icons/upload.d.ts +3 -0
- package/lib/typescript/core/icon/icons/user.d.ts +3 -0
- package/lib/typescript/core/icon/icons/users.d.ts +3 -0
- package/lib/typescript/core/icon/icons/x.d.ts +3 -0
- package/lib/typescript/core/icon/index.d.ts +6 -57
- package/lib/typescript/core/icon/names.d.ts +2 -0
- package/lib/typescript/core/icon/resolve.d.ts +4 -0
- package/lib/typescript/core/icon/types.d.ts +13 -0
- package/lib/typescript/core/list/VirtualList.d.ts +55 -0
- package/lib/typescript/core/list/index.d.ts +3 -0
- package/lib/typescript/core/media/MediaImage.d.ts +28 -0
- package/lib/typescript/core/media/expoImage.d.ts +14 -0
- package/lib/typescript/core/media/index.d.ts +7 -0
- package/lib/typescript/core/media/pickers.d.ts +27 -0
- package/lib/typescript/core/motion/config.d.ts +56 -0
- package/lib/typescript/core/motion/index.d.ts +8 -0
- package/lib/typescript/core/motion/presets.d.ts +49 -0
- package/lib/typescript/core/motion/useAnimatedValue.d.ts +11 -0
- package/lib/typescript/core/motion/useMotion.d.ts +34 -0
- package/lib/typescript/core/style/index.d.ts +3 -0
- package/lib/typescript/core/style/sx.d.ts +86 -0
- package/lib/typescript/core/style/useThemedStyles.d.ts +5 -0
- package/lib/typescript/index.d.ts +134 -2
- package/lib/typescript/modules/accordion/Accordion.d.ts +12 -23
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts +5 -5
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +1 -1
- package/lib/typescript/modules/app-bar/AppBar.d.ts +37 -0
- package/lib/typescript/modules/app-bar/AppBar.variants.d.ts +35 -0
- package/lib/typescript/modules/app-bar/index.d.ts +9 -0
- package/lib/typescript/modules/avatar/Avatar.d.ts +23 -3
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts +32 -1
- package/lib/typescript/modules/avatar/index.d.ts +1 -1
- package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +28 -0
- package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +75 -0
- package/lib/typescript/modules/avatar-group/index.d.ts +9 -0
- package/lib/typescript/modules/badge/Badge.d.ts +3 -1
- package/lib/typescript/modules/badge/Badge.variants.d.ts +8 -4
- package/lib/typescript/modules/banner/Banner.d.ts +35 -0
- package/lib/typescript/modules/banner/Banner.variants.d.ts +49 -0
- package/lib/typescript/modules/banner/index.d.ts +5 -0
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +14 -9
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +72 -9
- package/lib/typescript/modules/bottom-nav/BottomNavIconWithBadge.d.ts +25 -0
- package/lib/typescript/modules/bottom-nav/BottomNavTab.d.ts +34 -0
- package/lib/typescript/modules/bottom-sheet/BottomSheet.d.ts +29 -0
- package/lib/typescript/modules/bottom-sheet/BottomSheet.variants.d.ts +13 -0
- package/lib/typescript/modules/bottom-sheet/index.d.ts +3 -0
- package/lib/typescript/modules/button/Button.d.ts +21 -0
- package/lib/typescript/modules/button/Button.variants.d.ts +22 -9
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts +4 -2
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +18 -5
- package/lib/typescript/modules/card/Card.variants.d.ts +2 -2
- package/lib/typescript/modules/charts/BarChart.d.ts +26 -0
- package/lib/typescript/modules/charts/BarList.d.ts +18 -0
- package/lib/typescript/modules/charts/ChartLegend.d.ts +16 -0
- package/lib/typescript/modules/charts/Charts.variants.d.ts +225 -0
- package/lib/typescript/modules/charts/DonutChart.d.ts +21 -0
- package/lib/typescript/modules/charts/LineChart.d.ts +30 -0
- package/lib/typescript/modules/charts/PieChart.d.ts +18 -0
- package/lib/typescript/modules/charts/Sparkline.d.ts +13 -0
- package/lib/typescript/modules/charts/index.d.ts +19 -0
- package/lib/typescript/modules/checkbox/Checkbox.d.ts +4 -1
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +14 -9
- package/lib/typescript/modules/chip/Chip.d.ts +38 -0
- package/lib/typescript/modules/chip/Chip.variants.d.ts +198 -0
- package/lib/typescript/modules/chip/ChipGroup.d.ts +22 -0
- package/lib/typescript/modules/chip/index.d.ts +12 -0
- package/lib/typescript/modules/combobox/Combobox.d.ts +81 -0
- package/lib/typescript/modules/combobox/Combobox.variants.d.ts +212 -0
- package/lib/typescript/modules/combobox/comboboxKeys.d.ts +25 -0
- package/lib/typescript/modules/combobox/comboboxKeys.web.d.ts +23 -0
- package/lib/typescript/modules/combobox/index.d.ts +11 -0
- package/lib/typescript/modules/composer/Composer.d.ts +28 -0
- package/lib/typescript/modules/composer/Composer.variants.d.ts +7 -0
- package/lib/typescript/modules/composer/index.d.ts +3 -0
- package/lib/typescript/modules/copy-button/CopyButton.d.ts +21 -0
- package/lib/typescript/modules/copy-button/CopyButton.variants.d.ts +42 -0
- package/lib/typescript/modules/copy-button/index.d.ts +4 -0
- package/lib/typescript/modules/data-table/DataTable.d.ts +44 -0
- package/lib/typescript/modules/data-table/DataTable.variants.d.ts +118 -0
- package/lib/typescript/modules/data-table/index.d.ts +9 -0
- package/lib/typescript/modules/date-picker/Calendar.d.ts +42 -0
- package/lib/typescript/modules/date-picker/Calendar.keys.d.ts +19 -0
- package/lib/typescript/modules/date-picker/Calendar.keys.web.d.ts +35 -0
- package/lib/typescript/modules/date-picker/DatePicker.d.ts +40 -0
- package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +322 -0
- package/lib/typescript/modules/date-picker/DateRangePicker.d.ts +32 -0
- package/lib/typescript/modules/date-picker/PickerField.d.ts +26 -0
- package/lib/typescript/modules/date-picker/PickerShell.d.ts +29 -0
- package/lib/typescript/modules/date-picker/TimePicker.d.ts +20 -0
- package/lib/typescript/modules/date-picker/index.d.ts +16 -0
- package/lib/typescript/modules/divider/Divider.variants.d.ts +2 -2
- package/lib/typescript/modules/drawer/Drawer.d.ts +2 -1
- package/lib/typescript/modules/drawer/Drawer.variants.d.ts +4 -13
- package/lib/typescript/modules/empty-state/EmptyState.d.ts +7 -4
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +7 -1
- package/lib/typescript/modules/fab/Fab.d.ts +74 -0
- package/lib/typescript/modules/fab/Fab.variants.d.ts +229 -0
- package/lib/typescript/modules/fab/FabGroup.d.ts +66 -0
- package/lib/typescript/modules/fab/index.d.ts +12 -0
- package/lib/typescript/modules/file-grid/FileGrid.d.ts +26 -0
- package/lib/typescript/modules/file-grid/FileGrid.variants.d.ts +26 -0
- package/lib/typescript/modules/file-grid/index.d.ts +4 -0
- package/lib/typescript/modules/file-upload/FileUpload.d.ts +3 -0
- package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts +22 -5
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +30 -5
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +13 -8
- package/lib/typescript/modules/folder-row/FolderRow.d.ts +24 -0
- package/lib/typescript/modules/folder-row/FolderRow.variants.d.ts +29 -0
- package/lib/typescript/modules/folder-row/index.d.ts +3 -0
- package/lib/typescript/modules/form-field/FormField.d.ts +29 -0
- package/lib/typescript/modules/form-field/FormField.variants.d.ts +93 -0
- package/lib/typescript/modules/form-field/index.d.ts +4 -0
- package/lib/typescript/modules/gantt/Gantt.d.ts +19 -0
- package/lib/typescript/modules/gantt/Gantt.variants.d.ts +82 -0
- package/lib/typescript/modules/gantt/index.d.ts +5 -0
- package/lib/typescript/modules/image-viewer/ImageViewer.d.ts +27 -0
- package/lib/typescript/modules/image-viewer/ImageViewer.variants.d.ts +3 -0
- package/lib/typescript/modules/image-viewer/index.d.ts +3 -0
- package/lib/typescript/modules/input/Input.d.ts +9 -1
- package/lib/typescript/modules/input/Input.variants.d.ts +26 -6
- package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.d.ts +34 -0
- package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.variants.d.ts +46 -0
- package/lib/typescript/modules/limit-reached-modal/index.d.ts +10 -0
- package/lib/typescript/modules/list-item/ListItem.d.ts +21 -0
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts +29 -0
- package/lib/typescript/modules/list-item/index.d.ts +8 -0
- package/lib/typescript/modules/markdown/Markdown.d.ts +16 -0
- package/lib/typescript/modules/markdown/Markdown.variants.d.ts +33 -0
- package/lib/typescript/modules/markdown/index.d.ts +10 -0
- package/lib/typescript/modules/markdown/parseMarkdown.d.ts +44 -0
- package/lib/typescript/modules/menu/Menu.d.ts +8 -18
- package/lib/typescript/modules/menu/Menu.variants.d.ts +8 -1
- package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +25 -0
- package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +31 -0
- package/lib/typescript/modules/message-bubble/index.d.ts +4 -0
- package/lib/typescript/modules/modal/Modal.d.ts +12 -0
- package/lib/typescript/modules/modal/Modal.variants.d.ts +1 -1
- package/lib/typescript/modules/more-items/MoreItems.d.ts +15 -0
- package/lib/typescript/modules/more-items/MoreItems.variants.d.ts +30 -0
- package/lib/typescript/modules/more-items/index.d.ts +4 -0
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts +3 -12
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +24 -5
- package/lib/typescript/modules/number-input/NumberInput.d.ts +6 -0
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +57 -7
- package/lib/typescript/modules/org-switcher/OrgSwitcher.d.ts +44 -0
- package/lib/typescript/modules/org-switcher/OrgSwitcher.variants.d.ts +139 -0
- package/lib/typescript/modules/org-switcher/index.d.ts +8 -0
- package/lib/typescript/modules/pagination/Pagination.d.ts +45 -0
- package/lib/typescript/modules/pagination/Pagination.variants.d.ts +240 -0
- package/lib/typescript/modules/pagination/PaginationControls.d.ts +50 -0
- package/lib/typescript/modules/pagination/index.d.ts +14 -0
- package/lib/typescript/modules/pin-input/PinInput.d.ts +6 -0
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +22 -5
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +8 -4
- package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts +13 -15
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts +6 -0
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +32 -11
- package/lib/typescript/modules/reorder/Reorder.d.ts +28 -23
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts +25 -9
- package/lib/typescript/modules/rich-text/RichText.d.ts +15 -0
- package/lib/typescript/modules/rich-text/RichText.variants.d.ts +15 -0
- package/lib/typescript/modules/rich-text/index.d.ts +5 -0
- package/lib/typescript/modules/rich-text/parseRichText.d.ts +30 -0
- package/lib/typescript/modules/rich-text-editor/RichTextEditor.d.ts +62 -0
- package/lib/typescript/modules/rich-text-editor/RichTextEditor.variants.d.ts +139 -0
- package/lib/typescript/modules/rich-text-editor/index.d.ts +9 -0
- package/lib/typescript/modules/screen/Screen.d.ts +36 -0
- package/lib/typescript/modules/screen/Screen.variants.d.ts +21 -0
- package/lib/typescript/modules/screen/index.d.ts +9 -0
- package/lib/typescript/modules/search-bar/SearchBar.d.ts +47 -0
- package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +179 -0
- package/lib/typescript/modules/search-bar/index.d.ts +11 -0
- package/lib/typescript/modules/section/Section.d.ts +17 -0
- package/lib/typescript/modules/section/Section.variants.d.ts +12 -0
- package/lib/typescript/modules/section/index.d.ts +8 -0
- package/lib/typescript/modules/section-list/SectionList.d.ts +26 -0
- package/lib/typescript/modules/section-list/SectionList.variants.d.ts +3 -0
- package/lib/typescript/modules/section-list/index.d.ts +3 -0
- package/lib/typescript/modules/segmented-control/SegmentedControl.d.ts +45 -0
- package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +143 -0
- package/lib/typescript/modules/segmented-control/index.d.ts +11 -0
- package/lib/typescript/modules/select/Select.d.ts +3 -10
- package/lib/typescript/modules/select/Select.variants.d.ts +27 -5
- package/lib/typescript/modules/skeleton/Skeleton.d.ts +5 -0
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +10 -9
- package/lib/typescript/modules/slider/Slider.variants.d.ts +35 -14
- package/lib/typescript/modules/spinner/Spinner.variants.d.ts +6 -4
- package/lib/typescript/modules/stage-progress/StageProgress.d.ts +18 -0
- package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +98 -0
- package/lib/typescript/modules/stage-progress/index.d.ts +4 -0
- package/lib/typescript/modules/stat-tile/StatTile.d.ts +20 -0
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +36 -0
- package/lib/typescript/modules/stat-tile/index.d.ts +9 -0
- package/lib/typescript/modules/state-block/StateBlock.d.ts +51 -0
- package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +30 -0
- package/lib/typescript/modules/state-block/index.d.ts +10 -0
- package/lib/typescript/modules/stepper/Stepper.d.ts +4 -0
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts +7 -7
- package/lib/typescript/modules/swipeable-row/SwipeableRow.d.ts +35 -0
- package/lib/typescript/modules/swipeable-row/SwipeableRow.variants.d.ts +27 -0
- package/lib/typescript/modules/swipeable-row/index.d.ts +4 -0
- package/lib/typescript/modules/switch/Switch.variants.d.ts +9 -1
- package/lib/typescript/modules/tabs/Tabs.d.ts +8 -6
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts +20 -7
- package/lib/typescript/modules/text/Text.d.ts +23 -0
- package/lib/typescript/modules/text/Text.variants.d.ts +18 -0
- package/lib/typescript/modules/text/index.d.ts +4 -0
- package/lib/typescript/modules/textarea/Textarea.d.ts +5 -0
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts +15 -8
- package/lib/typescript/modules/timeline/Timeline.d.ts +11 -11
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts +17 -1
- package/lib/typescript/modules/toast/Toast.d.ts +13 -3
- package/lib/typescript/modules/toast/Toast.variants.d.ts +31 -3
- package/lib/typescript/modules/toast/index.d.ts +1 -1
- package/lib/typescript/modules/toast/toastScreenReader.d.ts +22 -0
- package/lib/typescript/modules/tooltip/Tooltip.d.ts +34 -11
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +4 -5
- package/lib/typescript/modules/typing-indicator/TypingIndicator.d.ts +28 -0
- package/lib/typescript/modules/typing-indicator/TypingIndicator.variants.d.ts +32 -0
- package/lib/typescript/modules/typing-indicator/index.d.ts +4 -0
- package/lib/typescript/modules/unread-badge/UnreadBadge.d.ts +15 -0
- package/lib/typescript/modules/unread-badge/UnreadBadge.variants.d.ts +56 -0
- package/lib/typescript/modules/unread-badge/index.d.ts +4 -0
- package/lib/typescript/test/mocks/flashList.d.ts +3 -0
- package/lib/typescript/test/perfHelpers.d.ts +9 -0
- package/lib/typescript/theme/hooks.d.ts +11 -0
- package/lib/typescript/theme/index.d.ts +3 -2
- package/lib/typescript/theme/platform/motion.native.d.ts +15 -0
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts +3 -80
- package/lib/typescript/theme/provider/ThemeContext.d.ts +4 -0
- package/lib/typescript/theme/provider/index.d.ts +2 -1
- package/lib/typescript/theme/provider/loadPalette.d.ts +9 -0
- package/lib/typescript/theme/provider/types.d.ts +41 -0
- package/lib/typescript/theme/provider/useTheme.d.ts +1 -2
- package/lib/typescript/theme/provider/useThemeMode.d.ts +1 -1
- package/lib/typescript/theme/tokens/builders/accentText.d.ts +6 -0
- package/lib/typescript/theme/tokens/roles/index.d.ts +7 -0
- package/package.json +209 -14
- package/registry.json +191 -1
- package/lib/module/core/a11y/index.js.map +0 -1
- package/lib/module/core/icon/index.js.map +0 -1
- package/lib/module/core/style/index.js.map +0 -1
- package/lib/module/core/style/layoutStyle.js.map +0 -1
- package/lib/module/core/style/variants.js.map +0 -1
- package/lib/module/index.js.map +0 -1
- package/lib/module/modules/accordion/Accordion.js.map +0 -1
- package/lib/module/modules/accordion/Accordion.variants.js.map +0 -1
- package/lib/module/modules/accordion/index.js.map +0 -1
- package/lib/module/modules/alert-dialog/AlertDialog.js.map +0 -1
- package/lib/module/modules/alert-dialog/AlertDialog.variants.js.map +0 -1
- package/lib/module/modules/alert-dialog/index.js.map +0 -1
- package/lib/module/modules/avatar/Avatar.js.map +0 -1
- package/lib/module/modules/avatar/Avatar.variants.js.map +0 -1
- package/lib/module/modules/avatar/index.js.map +0 -1
- package/lib/module/modules/badge/Badge.js.map +0 -1
- package/lib/module/modules/badge/Badge.variants.js.map +0 -1
- package/lib/module/modules/badge/index.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.search.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.variants.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js.map +0 -1
- package/lib/module/modules/bottom-nav/index.js.map +0 -1
- package/lib/module/modules/button/Button.js.map +0 -1
- package/lib/module/modules/button/Button.variants.js.map +0 -1
- package/lib/module/modules/button/index.js.map +0 -1
- package/lib/module/modules/button-group/ButtonGroup.js.map +0 -1
- package/lib/module/modules/button-group/ButtonGroup.variants.js.map +0 -1
- package/lib/module/modules/button-group/index.js.map +0 -1
- package/lib/module/modules/card/Card.js.map +0 -1
- package/lib/module/modules/card/Card.variants.js.map +0 -1
- package/lib/module/modules/card/index.js.map +0 -1
- package/lib/module/modules/checkbox/Checkbox.js.map +0 -1
- package/lib/module/modules/checkbox/Checkbox.variants.js.map +0 -1
- package/lib/module/modules/checkbox/index.js.map +0 -1
- package/lib/module/modules/divider/Divider.js.map +0 -1
- package/lib/module/modules/divider/Divider.variants.js.map +0 -1
- package/lib/module/modules/divider/index.js.map +0 -1
- package/lib/module/modules/drawer/Drawer.js.map +0 -1
- package/lib/module/modules/drawer/Drawer.variants.js.map +0 -1
- package/lib/module/modules/drawer/index.js.map +0 -1
- package/lib/module/modules/empty-state/EmptyState.js.map +0 -1
- package/lib/module/modules/empty-state/EmptyState.variants.js.map +0 -1
- package/lib/module/modules/empty-state/index.js.map +0 -1
- package/lib/module/modules/file-upload/FileUpload.js.map +0 -1
- package/lib/module/modules/file-upload/FileUpload.variants.js.map +0 -1
- package/lib/module/modules/file-upload/index.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterChip.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheet.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheetBody.js.map +0 -1
- package/lib/module/modules/filter-sheet/filterSheet.helpers.js.map +0 -1
- package/lib/module/modules/filter-sheet/index.js.map +0 -1
- package/lib/module/modules/input/Input.js.map +0 -1
- package/lib/module/modules/input/Input.variants.js.map +0 -1
- package/lib/module/modules/input/index.js.map +0 -1
- package/lib/module/modules/menu/Menu.js.map +0 -1
- package/lib/module/modules/menu/Menu.variants.js.map +0 -1
- package/lib/module/modules/menu/index.js.map +0 -1
- package/lib/module/modules/modal/Modal.js.map +0 -1
- package/lib/module/modules/modal/Modal.variants.js.map +0 -1
- package/lib/module/modules/modal/ModalPortalContext.js.map +0 -1
- package/lib/module/modules/modal/ModalPortalProvider.js.map +0 -1
- package/lib/module/modules/modal/index.js.map +0 -1
- package/lib/module/modules/modal/renderWebPortal.js.map +0 -1
- package/lib/module/modules/modal/renderWebPortal.web.js.map +0 -1
- package/lib/module/modules/multi-select/MultiSelect.js.map +0 -1
- package/lib/module/modules/multi-select/MultiSelect.variants.js.map +0 -1
- package/lib/module/modules/multi-select/index.js.map +0 -1
- package/lib/module/modules/number-input/NumberInput.js.map +0 -1
- package/lib/module/modules/number-input/NumberInput.variants.js.map +0 -1
- package/lib/module/modules/number-input/index.js.map +0 -1
- package/lib/module/modules/pin-input/PinInput.js.map +0 -1
- package/lib/module/modules/pin-input/PinInput.variants.js.map +0 -1
- package/lib/module/modules/pin-input/index.js.map +0 -1
- package/lib/module/modules/progress-bar/ProgressBar.js.map +0 -1
- package/lib/module/modules/progress-bar/ProgressBar.variants.js.map +0 -1
- package/lib/module/modules/progress-bar/index.js.map +0 -1
- package/lib/module/modules/radio-group/RadioGroup.js.map +0 -1
- package/lib/module/modules/radio-group/RadioGroup.variants.js.map +0 -1
- package/lib/module/modules/radio-group/index.js.map +0 -1
- package/lib/module/modules/reorder/Reorder.js.map +0 -1
- package/lib/module/modules/reorder/Reorder.variants.js.map +0 -1
- package/lib/module/modules/reorder/index.js.map +0 -1
- package/lib/module/modules/select/Select.js.map +0 -1
- package/lib/module/modules/select/Select.variants.js.map +0 -1
- package/lib/module/modules/select/index.js.map +0 -1
- package/lib/module/modules/skeleton/Skeleton.js.map +0 -1
- package/lib/module/modules/skeleton/Skeleton.variants.js.map +0 -1
- package/lib/module/modules/skeleton/index.js.map +0 -1
- package/lib/module/modules/slider/Slider.js.map +0 -1
- package/lib/module/modules/slider/Slider.variants.js.map +0 -1
- package/lib/module/modules/slider/index.js.map +0 -1
- package/lib/module/modules/spinner/Spinner.js.map +0 -1
- package/lib/module/modules/spinner/Spinner.variants.js.map +0 -1
- package/lib/module/modules/spinner/index.js.map +0 -1
- package/lib/module/modules/stepper/Stepper.js.map +0 -1
- package/lib/module/modules/stepper/Stepper.variants.js.map +0 -1
- package/lib/module/modules/stepper/index.js.map +0 -1
- package/lib/module/modules/switch/Switch.js.map +0 -1
- package/lib/module/modules/switch/Switch.variants.js.map +0 -1
- package/lib/module/modules/switch/index.js.map +0 -1
- package/lib/module/modules/tabs/Tabs.js.map +0 -1
- package/lib/module/modules/tabs/Tabs.variants.js.map +0 -1
- package/lib/module/modules/tabs/index.js.map +0 -1
- package/lib/module/modules/textarea/Textarea.js.map +0 -1
- package/lib/module/modules/textarea/Textarea.variants.js.map +0 -1
- package/lib/module/modules/textarea/index.js.map +0 -1
- package/lib/module/modules/timeline/Timeline.js.map +0 -1
- package/lib/module/modules/timeline/Timeline.variants.js.map +0 -1
- package/lib/module/modules/timeline/index.js.map +0 -1
- package/lib/module/modules/toast/Toast.js.map +0 -1
- package/lib/module/modules/toast/Toast.variants.js.map +0 -1
- package/lib/module/modules/toast/index.js.map +0 -1
- package/lib/module/modules/tooltip/Tooltip.js.map +0 -1
- package/lib/module/modules/tooltip/Tooltip.variants.js.map +0 -1
- package/lib/module/modules/tooltip/index.js.map +0 -1
- package/lib/module/theme/index.js.map +0 -1
- package/lib/module/theme/platform/colorScheme.native.js.map +0 -1
- package/lib/module/theme/platform/elevation.native.js.map +0 -1
- package/lib/module/theme/platform/fonts.native.js.map +0 -1
- package/lib/module/theme/platform/index.js.map +0 -1
- package/lib/module/theme/platform/units.native.js.map +0 -1
- package/lib/module/theme/provider/PixelizeProvider.js.map +0 -1
- package/lib/module/theme/provider/colorModeStorage.js.map +0 -1
- package/lib/module/theme/provider/index.js.map +0 -1
- package/lib/module/theme/provider/useTheme.js.map +0 -1
- package/lib/module/theme/provider/useThemeColors.js.map +0 -1
- package/lib/module/theme/provider/useThemeMode.js.map +0 -1
- package/lib/module/theme/tokens/brands/emerald/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/emerald/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/index.js.map +0 -1
- package/lib/module/theme/tokens/brands/lavender/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/lavender/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/meadow/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/meadow/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/radiant/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/radiant/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/rosewood/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/skyline/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/skyline/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/slate/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/slate/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/storefront/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/storefront/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/zinc/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/zinc/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/builders/accentText.js.map +0 -1
- package/lib/module/theme/tokens/builders/buildBrandTokens.js.map +0 -1
- package/lib/module/theme/tokens/builders/buildDarkPalette.js.map +0 -1
- package/lib/module/theme/tokens/builders/color.js.map +0 -1
- package/lib/module/theme/tokens/index.js.map +0 -1
- package/lib/module/theme/tokens/primitives/borderWidths.js.map +0 -1
- package/lib/module/theme/tokens/primitives/breakpoints.js.map +0 -1
- package/lib/module/theme/tokens/primitives/elevation.js.map +0 -1
- package/lib/module/theme/tokens/primitives/fontSizes.js.map +0 -1
- package/lib/module/theme/tokens/primitives/fontWeights.js.map +0 -1
- package/lib/module/theme/tokens/primitives/index.js.map +0 -1
- package/lib/module/theme/tokens/primitives/letterSpacings.js.map +0 -1
- package/lib/module/theme/tokens/primitives/lineHeights.js.map +0 -1
- package/lib/module/theme/tokens/primitives/radii.js.map +0 -1
- package/lib/module/theme/tokens/primitives/sizes.js.map +0 -1
- package/lib/module/theme/tokens/primitives/space.js.map +0 -1
- package/lib/module/theme/tokens/primitives/zIndices.js.map +0 -1
- package/lib/module/theme/tokens/roles/index.js.map +0 -1
- package/lib/module/theme/tokens/types.js.map +0 -1
- package/lib/typescript/core/a11y/index.d.ts.map +0 -1
- package/lib/typescript/core/icon/index.d.ts.map +0 -1
- package/lib/typescript/core/style/index.d.ts.map +0 -1
- package/lib/typescript/core/style/layoutStyle.d.ts.map +0 -1
- package/lib/typescript/core/style/variants.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/Accordion.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/index.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/index.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/Avatar.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/index.d.ts.map +0 -1
- package/lib/typescript/modules/badge/Badge.d.ts.map +0 -1
- package/lib/typescript/modules/badge/Badge.variants.d.ts.map +0 -1
- package/lib/typescript/modules/badge/index.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/index.d.ts.map +0 -1
- package/lib/typescript/modules/button/Button.d.ts.map +0 -1
- package/lib/typescript/modules/button/Button.variants.d.ts.map +0 -1
- package/lib/typescript/modules/button/index.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/index.d.ts.map +0 -1
- package/lib/typescript/modules/card/Card.d.ts.map +0 -1
- package/lib/typescript/modules/card/Card.variants.d.ts.map +0 -1
- package/lib/typescript/modules/card/index.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/Checkbox.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/index.d.ts.map +0 -1
- package/lib/typescript/modules/divider/Divider.d.ts.map +0 -1
- package/lib/typescript/modules/divider/Divider.variants.d.ts.map +0 -1
- package/lib/typescript/modules/divider/index.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/Drawer.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/Drawer.variants.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/index.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/EmptyState.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/index.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/FileUpload.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/index.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterChip.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/index.d.ts.map +0 -1
- package/lib/typescript/modules/input/Input.d.ts.map +0 -1
- package/lib/typescript/modules/input/Input.variants.d.ts.map +0 -1
- package/lib/typescript/modules/input/index.d.ts.map +0 -1
- package/lib/typescript/modules/menu/Menu.d.ts.map +0 -1
- package/lib/typescript/modules/menu/Menu.variants.d.ts.map +0 -1
- package/lib/typescript/modules/menu/index.d.ts.map +0 -1
- package/lib/typescript/modules/modal/Modal.d.ts.map +0 -1
- package/lib/typescript/modules/modal/Modal.variants.d.ts.map +0 -1
- package/lib/typescript/modules/modal/ModalPortalContext.d.ts.map +0 -1
- package/lib/typescript/modules/modal/ModalPortalProvider.d.ts.map +0 -1
- package/lib/typescript/modules/modal/index.d.ts.map +0 -1
- package/lib/typescript/modules/modal/renderWebPortal.d.ts.map +0 -1
- package/lib/typescript/modules/modal/renderWebPortal.web.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/index.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/NumberInput.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/index.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/PinInput.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/index.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/index.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/index.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/Reorder.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/index.d.ts.map +0 -1
- package/lib/typescript/modules/select/Select.d.ts.map +0 -1
- package/lib/typescript/modules/select/Select.variants.d.ts.map +0 -1
- package/lib/typescript/modules/select/index.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/Skeleton.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/index.d.ts.map +0 -1
- package/lib/typescript/modules/slider/Slider.d.ts.map +0 -1
- package/lib/typescript/modules/slider/Slider.variants.d.ts.map +0 -1
- package/lib/typescript/modules/slider/index.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/Spinner.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/Spinner.variants.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/index.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/Stepper.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/index.d.ts.map +0 -1
- package/lib/typescript/modules/switch/Switch.d.ts.map +0 -1
- package/lib/typescript/modules/switch/Switch.variants.d.ts.map +0 -1
- package/lib/typescript/modules/switch/index.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/Tabs.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/index.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/Textarea.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/index.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/Timeline.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/index.d.ts.map +0 -1
- package/lib/typescript/modules/toast/Toast.d.ts.map +0 -1
- package/lib/typescript/modules/toast/Toast.variants.d.ts.map +0 -1
- package/lib/typescript/modules/toast/index.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/Tooltip.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/index.d.ts.map +0 -1
- package/lib/typescript/theme/index.d.ts.map +0 -1
- package/lib/typescript/theme/platform/colorScheme.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/elevation.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/fonts.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/index.d.ts.map +0 -1
- package/lib/typescript/theme/platform/units.native.d.ts.map +0 -1
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts.map +0 -1
- package/lib/typescript/theme/provider/colorModeStorage.d.ts.map +0 -1
- package/lib/typescript/theme/provider/index.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useTheme.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useThemeColors.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useThemeMode.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/accentText.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/color.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/elevation.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/radii.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/sizes.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/space.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/zIndices.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/roles/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/types.d.ts.map +0 -1
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Composer — chat message input row with multiline field and send affordance.
|
|
5
|
+
*
|
|
6
|
+
* The focus ring is its only motion: it crossfades on focus/blur, never while the message list
|
|
7
|
+
* below it scrolls, so `core/motion`'s per-row rule still holds. Same offset-ring pattern as Input —
|
|
8
|
+
* a `border.focus` ring a small gap outside the field, on the canvas, where that token is the one
|
|
9
|
+
* proven ≥ 3:1.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { memo, useCallback, useEffect, useMemo, useRef } from "react";
|
|
13
|
+
import { ActivityIndicator, Animated, Platform, Pressable, StyleSheet, TextInput, View } from "react-native";
|
|
14
|
+
import { Icon } from "../../core/icon/index.js";
|
|
15
|
+
import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
|
|
16
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
17
|
+
import { composerFieldStructure, composerInputStructure, composerSendStructure, composerStructure } from "./Composer.variants.js";
|
|
18
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
19
|
+
const ICON_STROKE = 2;
|
|
20
|
+
const ICON_SIZE = 18;
|
|
21
|
+
const FOCUS_RING_WIDTH = 2;
|
|
22
|
+
const FOCUS_RING_GAP = 2;
|
|
23
|
+
const FIELD_STYLE = composerFieldStructure();
|
|
24
|
+
/** Split out so the icon/spinner subtree survives the parent's per-keystroke `value` re-render. */
|
|
25
|
+
const ComposerSend = /*#__PURE__*/memo(function ComposerSend({
|
|
26
|
+
canSend,
|
|
27
|
+
sending,
|
|
28
|
+
onPress,
|
|
29
|
+
testID
|
|
30
|
+
}) {
|
|
31
|
+
const theme = useTheme();
|
|
32
|
+
const sendStyle = useMemo(() => [composerSendStructure(theme), {
|
|
33
|
+
backgroundColor: canSend ? theme.colors.accent.solid : theme.colors.bg.sunken
|
|
34
|
+
}], [theme, canSend]);
|
|
35
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
36
|
+
testID: testID,
|
|
37
|
+
accessibilityRole: "button",
|
|
38
|
+
accessibilityLabel: "Send message",
|
|
39
|
+
"aria-disabled": !canSend,
|
|
40
|
+
disabled: !canSend,
|
|
41
|
+
onPress: onPress,
|
|
42
|
+
style: sendStyle,
|
|
43
|
+
children: sending ? /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
44
|
+
color: theme.colors.accent.onSolid
|
|
45
|
+
}) : /*#__PURE__*/_jsx(Icon, {
|
|
46
|
+
name: "send",
|
|
47
|
+
size: ICON_SIZE,
|
|
48
|
+
color: canSend ? theme.colors.accent.onSolid : theme.colors.fg.muted,
|
|
49
|
+
strokeWidth: ICON_STROKE
|
|
50
|
+
})
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
export const Composer = /*#__PURE__*/memo(function Composer({
|
|
54
|
+
value,
|
|
55
|
+
onChangeText,
|
|
56
|
+
onSend,
|
|
57
|
+
placeholder = "Message",
|
|
58
|
+
accessibilityLabel,
|
|
59
|
+
disabled = false,
|
|
60
|
+
sending = false,
|
|
61
|
+
style,
|
|
62
|
+
testID
|
|
63
|
+
}) {
|
|
64
|
+
const theme = useTheme();
|
|
65
|
+
const motion = useMotion();
|
|
66
|
+
const editable = !disabled && !sending;
|
|
67
|
+
const canSend = editable && value.trim().length > 0;
|
|
68
|
+
const handleSend = useCallback(() => {
|
|
69
|
+
if (!canSend) return;
|
|
70
|
+
onSend();
|
|
71
|
+
}, [canSend, onSend]);
|
|
72
|
+
const ringOpacity = useAnimatedValue(0);
|
|
73
|
+
const ringAnimation = useRef(null);
|
|
74
|
+
const setRingVisible = useCallback(visible => {
|
|
75
|
+
ringAnimation.current?.stop();
|
|
76
|
+
const to = visible ? 1 : 0;
|
|
77
|
+
if (!motion.enabled) {
|
|
78
|
+
ringOpacity.setValue(to);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
ringAnimation.current = motion.timing(ringOpacity, to, {
|
|
82
|
+
duration: "fast"
|
|
83
|
+
});
|
|
84
|
+
ringAnimation.current.start();
|
|
85
|
+
}, [motion, ringOpacity]);
|
|
86
|
+
useEffect(() => () => ringAnimation.current?.stop(), []);
|
|
87
|
+
const handleFocus = useCallback(() => {
|
|
88
|
+
if (editable) setRingVisible(true);
|
|
89
|
+
}, [editable, setRingVisible]);
|
|
90
|
+
const handleBlur = useCallback(() => setRingVisible(false), [setRingVisible]);
|
|
91
|
+
const rootStyle = useMemo(() => [composerStructure(theme), {
|
|
92
|
+
borderTopColor: theme.colors.border.default,
|
|
93
|
+
backgroundColor: theme.colors.bg.surface
|
|
94
|
+
}, style], [theme, style]);
|
|
95
|
+
const inputStyle = useMemo(() => [composerInputStructure(theme), theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
96
|
+
color: theme.colors.fg.default,
|
|
97
|
+
// `border.interactive`, NOT `border.default` — the same substitution Card, Switch and
|
|
98
|
+
// FileUpload each document. This border is the field's ONLY boundary (its fill measures
|
|
99
|
+
// 1.00–1.09:1 against the row behind it, identical on 8 of 18 palettes), and
|
|
100
|
+
// `border.default` is a decorative token that reaches only 1.08–1.43:1 on every brand ×
|
|
101
|
+
// mode, so the field had no ≥3:1 edge anywhere (WCAG 1.4.11).
|
|
102
|
+
borderColor: theme.colors.border.interactive,
|
|
103
|
+
backgroundColor: theme.colors.bg.canvas
|
|
104
|
+
}, Platform.OS === "web" && styles.webOutlineReset], [theme]);
|
|
105
|
+
const focusRingStyle = useMemo(() => ({
|
|
106
|
+
position: "absolute",
|
|
107
|
+
top: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
108
|
+
left: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
109
|
+
right: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
110
|
+
bottom: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
111
|
+
borderWidth: FOCUS_RING_WIDTH,
|
|
112
|
+
borderColor: theme.colors.border.focus,
|
|
113
|
+
borderRadius: theme.radii.lg + FOCUS_RING_GAP + FOCUS_RING_WIDTH
|
|
114
|
+
}), [theme]);
|
|
115
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
116
|
+
testID: testID,
|
|
117
|
+
style: rootStyle,
|
|
118
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
119
|
+
style: FIELD_STYLE,
|
|
120
|
+
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
121
|
+
pointerEvents: "none",
|
|
122
|
+
testID: "composer-focus-ring",
|
|
123
|
+
style: [focusRingStyle, {
|
|
124
|
+
opacity: ringOpacity
|
|
125
|
+
}]
|
|
126
|
+
}), /*#__PURE__*/_jsx(TextInput, {
|
|
127
|
+
testID: testID ? `${testID}-input` : undefined,
|
|
128
|
+
value: value,
|
|
129
|
+
onChangeText: onChangeText,
|
|
130
|
+
placeholder: placeholder,
|
|
131
|
+
placeholderTextColor: theme.colors.fg.muted,
|
|
132
|
+
editable: editable,
|
|
133
|
+
accessibilityLabel: accessibilityLabel ?? placeholder,
|
|
134
|
+
"aria-disabled": !editable,
|
|
135
|
+
multiline: true,
|
|
136
|
+
onFocus: handleFocus,
|
|
137
|
+
onBlur: handleBlur,
|
|
138
|
+
style: inputStyle
|
|
139
|
+
})]
|
|
140
|
+
}), /*#__PURE__*/_jsx(ComposerSend, {
|
|
141
|
+
canSend: canSend,
|
|
142
|
+
sending: sending,
|
|
143
|
+
onPress: handleSend,
|
|
144
|
+
testID: testID ? `${testID}-send` : undefined
|
|
145
|
+
})]
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
const styles = StyleSheet.create({
|
|
149
|
+
// RNW renders the field as a real `<textarea>`, whose UA outline paints over the themed ring.
|
|
150
|
+
// No `borderWidth: 0` unlike Input — here the visible border is the field's own, not a wrapper's.
|
|
151
|
+
webOutlineReset: {
|
|
152
|
+
outlineStyle: "solid",
|
|
153
|
+
outlineWidth: 0
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
//# sourceMappingURL=Composer.js.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createThemedVariants, createVariants } from "../../core/style/index.js";
|
|
4
|
+
export const composerStructure = createThemedVariants(theme => ({
|
|
5
|
+
base: {
|
|
6
|
+
flexDirection: "row",
|
|
7
|
+
alignItems: "flex-end",
|
|
8
|
+
columnGap: theme.space[2],
|
|
9
|
+
paddingHorizontal: theme.space[3],
|
|
10
|
+
paddingVertical: theme.space[2],
|
|
11
|
+
borderTopWidth: theme.borderWidths.thin
|
|
12
|
+
}
|
|
13
|
+
}));
|
|
14
|
+
|
|
15
|
+
/** Carries the row's `flex: 1` so the focus ring can be an absolute sibling of the `TextInput`. */
|
|
16
|
+
export const composerFieldStructure = createVariants({
|
|
17
|
+
base: {
|
|
18
|
+
flex: 1,
|
|
19
|
+
position: "relative"
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
export const composerInputStructure = createThemedVariants(theme => ({
|
|
23
|
+
base: {
|
|
24
|
+
minHeight: 40,
|
|
25
|
+
maxHeight: 120,
|
|
26
|
+
paddingHorizontal: theme.space[3],
|
|
27
|
+
paddingVertical: theme.space[2],
|
|
28
|
+
borderRadius: theme.radii.lg,
|
|
29
|
+
borderWidth: theme.borderWidths.thin,
|
|
30
|
+
fontSize: theme.fontSizes.md
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
33
|
+
export const composerSendStructure = createThemedVariants(theme => ({
|
|
34
|
+
base: {
|
|
35
|
+
width: 40,
|
|
36
|
+
height: 40,
|
|
37
|
+
borderRadius: theme.radii.full,
|
|
38
|
+
alignItems: "center",
|
|
39
|
+
justifyContent: "center"
|
|
40
|
+
}
|
|
41
|
+
}));
|
|
42
|
+
//# sourceMappingURL=Composer.variants.js.map
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# composer/ — chat message input row
|
|
2
|
+
|
|
3
|
+
Multiline `TextInput` plus a send affordance. `sending` swaps the send icon for an
|
|
4
|
+
`ActivityIndicator`; send is disabled while `disabled`, while `sending`, or when `value` is
|
|
5
|
+
whitespace-only.
|
|
6
|
+
|
|
7
|
+
## Files
|
|
8
|
+
|
|
9
|
+
| File | Role |
|
|
10
|
+
|------|------|
|
|
11
|
+
| `Composer.tsx` | The component, plus the internal memo'd `ComposerSend` child. |
|
|
12
|
+
| `Composer.variants.ts` | Structural resolvers (root row, field wrapper, input, send circle). No colour resolver — every colour here is a single non-branching role lookup, read at the component. |
|
|
13
|
+
| `index.ts` | Public surface: `Composer`, `ComposerProps`. |
|
|
14
|
+
| `__tests__/Composer.render.test.tsx` | Send fires with text present, stays inert when empty; focus-ring opacity on focus/blur/disabled/sending; web outline reset. |
|
|
15
|
+
|
|
16
|
+
## Props
|
|
17
|
+
|
|
18
|
+
| Prop | Type | Default | Notes |
|
|
19
|
+
|------|------|---------|-------|
|
|
20
|
+
| `value` | `string` | — | Required, controlled. |
|
|
21
|
+
| `onChangeText` | `(text: string) => void` | — | Required. |
|
|
22
|
+
| `onSend` | `() => void` | — | Required. Never fires while send is disabled. |
|
|
23
|
+
| `placeholder` | `string` | `"Message"` | Falls back into the field's `accessibilityLabel`. |
|
|
24
|
+
| `accessibilityLabel` | `string` | `placeholder` | Names the field. Previously absent — `ComposerProps` exposed no label prop at all, so a consumer with more than one composer on screen (or a placeholder unsuited as a name) could not give it an accessible name. |
|
|
25
|
+
| `disabled` | `boolean` | `false` | Blocks typing and sending. |
|
|
26
|
+
| `sending` | `boolean` | `false` | Blocks typing and sending; shows the spinner. |
|
|
27
|
+
| `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
|
|
28
|
+
| `testID` | `string` | — | Roots `${testID}-input`, `${testID}-send`. |
|
|
29
|
+
|
|
30
|
+
## Accessibility
|
|
31
|
+
|
|
32
|
+
- **Focus ring (WCAG 2.4.7 / 2.4.11).** Same offset-ring pattern as Input: a `border.focus` ring
|
|
33
|
+
2px wide, 2px outside the field, crossfaded on the field's `onFocus`/`onBlur` through
|
|
34
|
+
`useMotion()`. It is always mounted at opacity 0 (`testID="composer-focus-ring"`,
|
|
35
|
+
`pointerEvents="none"`) and never raised while `disabled` or `sending`. The ring is an absolutely
|
|
36
|
+
positioned sibling of the `TextInput` inside a `composerFieldStructure` wrapper — that wrapper
|
|
37
|
+
carries the row's `flex: 1`.
|
|
38
|
+
- **`webOutlineReset`** (web only) sets `outlineStyle: "solid"` + `outlineWidth: 0` on the field, so
|
|
39
|
+
RNW's `<textarea>` UA outline doesn't paint over the themed ring. It deliberately does **not** zero
|
|
40
|
+
`borderWidth` (Input's does) — here the visible field border lives on the `TextInput` itself.
|
|
41
|
+
- **No Enter-to-send.** `multiline` with no `onSubmitEditing` is operable as-is; adding it is a
|
|
42
|
+
product decision, not an accessibility fix.
|
|
43
|
+
- **1.4.11 — CORRECTED, the field border was under 3:1 on every brand × mode.** The field's border
|
|
44
|
+
read `border.default` (a decorative token, measured 1.08–1.43:1 against the canvas here) and was
|
|
45
|
+
the field's ONLY boundary — its own fill measures 1.00–1.09:1 against the row behind it on several
|
|
46
|
+
brands, so there was no boundary anywhere near 3:1. Fixed by switching to `border.interactive`
|
|
47
|
+
(the same substitution `Card`/`Switch`/`FileUpload` already document), measured directly against
|
|
48
|
+
the library's own `contrastRatio()` across all 9 brands × 2 modes.
|
|
49
|
+
- Flat `aria-disabled` on the field and the send button, not `accessibilityState={{…}}` —
|
|
50
|
+
react-native-web drops the object form entirely.
|
|
51
|
+
|
|
52
|
+
## Motion — the focus ring only
|
|
53
|
+
|
|
54
|
+
Composer sits directly above a message list, so any animation it owned would run while that list
|
|
55
|
+
scrolls — exactly what `core/motion`'s per-row rule forbids. The focus-ring crossfade is the one
|
|
56
|
+
exception: it fires on focus/blur, never during a scroll. The send affordance changes state
|
|
57
|
+
instantly.
|
|
58
|
+
|
|
59
|
+
## Performance
|
|
60
|
+
|
|
61
|
+
Wrapped in `React.memo`. The parent re-renders this component on **every keystroke** (`value` is
|
|
62
|
+
controlled), so:
|
|
63
|
+
|
|
64
|
+
- The send affordance is split into a memo'd `ComposerSend`. Its props are primitives (`canSend`,
|
|
65
|
+
`sending`) plus a stable `onPress`, so the `Icon`/`ActivityIndicator` subtree is skipped on the
|
|
66
|
+
keystrokes that don't flip `canSend`.
|
|
67
|
+
- The root, input and send style arrays are `useMemo`'d, and `handleSend` is `useCallback`'d — a
|
|
68
|
+
fresh literal per keystroke would defeat the memo above. `aria-disabled={!canSend}` is a primitive,
|
|
69
|
+
not an object, so it needs no memo of its own.
|
|
70
|
+
- `ComposerSend` reads `useTheme()` itself rather than taking a `theme` prop.
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* CopyButton — copies a string to the clipboard with brief success feedback. Three closed
|
|
5
|
+
* variants: icon-only, outlined button, or menu-row shape.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
9
|
+
import { AccessibilityInfo, Animated, Pressable, Text, View } from "react-native";
|
|
10
|
+
import { Icon } from "../../core/icon/index.js";
|
|
11
|
+
import { usePressMotion } from "../../core/motion/index.js";
|
|
12
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
13
|
+
import { COPY_BUTTON_SIZES, copyButtonMenuRowStructure, copyButtonOutlineStructure, COPY_FEEDBACK_MS, resolveCopyButtonColors, writeClipboard } from "./CopyButton.variants.js";
|
|
14
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
+
const ICON_STROKE = 2;
|
|
16
|
+
// The focus ring sits a small gap OUTSIDE the control, on the canvas, because `border.focus` is the
|
|
17
|
+
// role token proven ≥ 3:1 against the canvas (WCAG 2.4.11) — drawn over a fill it could fail.
|
|
18
|
+
const FOCUS_RING_WIDTH = 2;
|
|
19
|
+
const FOCUS_RING_GAP = 2;
|
|
20
|
+
export const CopyButton = /*#__PURE__*/memo(function CopyButton({
|
|
21
|
+
value,
|
|
22
|
+
variant = "icon",
|
|
23
|
+
label = "Copy",
|
|
24
|
+
copiedLabel = "Copied!",
|
|
25
|
+
failedLabel = "Copy failed",
|
|
26
|
+
size = "sm",
|
|
27
|
+
onCopy,
|
|
28
|
+
style,
|
|
29
|
+
testID
|
|
30
|
+
}) {
|
|
31
|
+
const theme = useTheme();
|
|
32
|
+
const press = usePressMotion();
|
|
33
|
+
const colors = resolveCopyButtonColors(theme.colors);
|
|
34
|
+
const [status, setStatus] = useState("idle");
|
|
35
|
+
// Keyboard / external-keyboard / assistive-tech focus (no-op on pure touch, correct everywhere else).
|
|
36
|
+
const [focused, setFocused] = useState(false);
|
|
37
|
+
const timer = useRef(null);
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
return () => {
|
|
40
|
+
if (timer.current !== null) clearTimeout(timer.current);
|
|
41
|
+
};
|
|
42
|
+
}, []);
|
|
43
|
+
const handlePress = useCallback(async () => {
|
|
44
|
+
const ok = await writeClipboard(value);
|
|
45
|
+
setStatus(ok ? "copied" : "failed");
|
|
46
|
+
// The label swap lands on a control nothing is focused on, so no reader would ever read it —
|
|
47
|
+
// this imperative call reaches VoiceOver and TalkBack (same reason as `Toast`'s `show()`).
|
|
48
|
+
AccessibilityInfo.announceForAccessibility(ok ? copiedLabel : failedLabel);
|
|
49
|
+
if (ok) onCopy?.(value);
|
|
50
|
+
if (timer.current !== null) clearTimeout(timer.current);
|
|
51
|
+
timer.current = null;
|
|
52
|
+
// WCAG 2.2.1: only the SUCCESS state self-clears. A failure is an error the user has to act on,
|
|
53
|
+
// and reverting the label 1.5s later took the only notice of it off the screen — so the failed
|
|
54
|
+
// state now stays until the next press (which re-runs this and re-decides).
|
|
55
|
+
if (ok) timer.current = setTimeout(() => setStatus("idle"), COPY_FEEDBACK_MS);
|
|
56
|
+
}, [value, onCopy, copiedLabel, failedLabel]);
|
|
57
|
+
const onFocus = useCallback(() => setFocused(true), []);
|
|
58
|
+
const onBlur = useCallback(() => setFocused(false), []);
|
|
59
|
+
const focusRingStyle = useMemo(() => ({
|
|
60
|
+
position: "absolute",
|
|
61
|
+
pointerEvents: "none",
|
|
62
|
+
top: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
63
|
+
left: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
64
|
+
right: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
65
|
+
bottom: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
66
|
+
borderWidth: FOCUS_RING_WIDTH,
|
|
67
|
+
borderColor: theme.colors.border.focus,
|
|
68
|
+
borderRadius: theme.radii.base + FOCUS_RING_GAP + FOCUS_RING_WIDTH
|
|
69
|
+
}), [theme.colors.border.focus, theme.radii.base]);
|
|
70
|
+
const spec = COPY_BUTTON_SIZES[size];
|
|
71
|
+
const iconName = status === "copied" ? "check" : status === "failed" ? "triangle-alert" : "link";
|
|
72
|
+
const ink = status === "copied" ? colors.success : status === "failed" ? colors.danger : colors.default;
|
|
73
|
+
const currentLabel = status === "copied" ? copiedLabel : status === "failed" ? failedLabel : label;
|
|
74
|
+
const focusRing = focused ? /*#__PURE__*/_jsx(View, {
|
|
75
|
+
testID: "copy-button-focus-ring",
|
|
76
|
+
style: focusRingStyle
|
|
77
|
+
}) : null;
|
|
78
|
+
if (variant === "menu-item") {
|
|
79
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
80
|
+
testID: testID,
|
|
81
|
+
accessibilityRole: "button",
|
|
82
|
+
accessibilityLabel: currentLabel,
|
|
83
|
+
onPress: handlePress,
|
|
84
|
+
onFocus: onFocus,
|
|
85
|
+
onBlur: onBlur,
|
|
86
|
+
style: ({
|
|
87
|
+
pressed
|
|
88
|
+
}) => [copyButtonMenuRowStructure(theme), pressed ? {
|
|
89
|
+
backgroundColor: theme.colors.bg.sunken
|
|
90
|
+
} : null, style],
|
|
91
|
+
children: [focusRing, /*#__PURE__*/_jsx(Icon, {
|
|
92
|
+
name: iconName,
|
|
93
|
+
size: spec.iconSize,
|
|
94
|
+
color: ink,
|
|
95
|
+
strokeWidth: ICON_STROKE
|
|
96
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
97
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
98
|
+
fontSize: theme.fontSizes.sm,
|
|
99
|
+
color: ink
|
|
100
|
+
}],
|
|
101
|
+
children: currentLabel
|
|
102
|
+
})]
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (variant === "button") {
|
|
106
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
107
|
+
testID: testID,
|
|
108
|
+
accessibilityRole: "button",
|
|
109
|
+
accessibilityLabel: currentLabel,
|
|
110
|
+
onPress: handlePress,
|
|
111
|
+
onFocus: onFocus,
|
|
112
|
+
onBlur: onBlur,
|
|
113
|
+
style: ({
|
|
114
|
+
pressed
|
|
115
|
+
}) => [copyButtonOutlineStructure(theme), {
|
|
116
|
+
borderColor: status === "copied" ? colors.success : status === "failed" ? colors.danger : colors.border,
|
|
117
|
+
backgroundColor: pressed ? theme.colors.bg.sunken : theme.colors.bg.surface
|
|
118
|
+
}, style],
|
|
119
|
+
children: [focusRing, /*#__PURE__*/_jsx(Icon, {
|
|
120
|
+
name: iconName,
|
|
121
|
+
size: spec.iconSize,
|
|
122
|
+
color: ink,
|
|
123
|
+
strokeWidth: ICON_STROKE
|
|
124
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
125
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
126
|
+
fontSize: theme.fontSizes.sm,
|
|
127
|
+
color: ink
|
|
128
|
+
}],
|
|
129
|
+
children: currentLabel
|
|
130
|
+
})]
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
134
|
+
testID: testID,
|
|
135
|
+
accessibilityRole: "button",
|
|
136
|
+
accessibilityLabel: currentLabel,
|
|
137
|
+
onPress: handlePress,
|
|
138
|
+
onPressIn: press.onPressIn,
|
|
139
|
+
onPressOut: press.onPressOut,
|
|
140
|
+
onFocus: onFocus,
|
|
141
|
+
onBlur: onBlur,
|
|
142
|
+
hitSlop: spec.hitSlop,
|
|
143
|
+
style: style,
|
|
144
|
+
children: [focusRing, /*#__PURE__*/_jsx(Animated.View, {
|
|
145
|
+
testID: "copy-button-glyph",
|
|
146
|
+
style: press.style,
|
|
147
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
148
|
+
name: iconName,
|
|
149
|
+
size: spec.iconSize,
|
|
150
|
+
color: ink,
|
|
151
|
+
strokeWidth: ICON_STROKE
|
|
152
|
+
})
|
|
153
|
+
})]
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
//# sourceMappingURL=CopyButton.js.map
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createThemedVariants } from "../../core/style/index.js";
|
|
4
|
+
export const COPY_FEEDBACK_MS = 1500;
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Same touch-target floor as `Button`/`Checkbox` (44dp — Apple HIG minimum, WCAG 2.5.5 AAA).
|
|
8
|
+
* Duplicated rather than imported — modules never import across `src/modules/*`.
|
|
9
|
+
*/
|
|
10
|
+
export const MIN_TOUCH_TARGET = 44;
|
|
11
|
+
const slopFor = dimension => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - dimension) / 2));
|
|
12
|
+
/**
|
|
13
|
+
* CopyButton-specific dimensions. Kept a plain constant — no theme dependency — so the hit-target
|
|
14
|
+
* test can assert `iconSize + 2·hitSlop ≥ 44` without a provider, same as `BUTTON_SIZES`.
|
|
15
|
+
*/
|
|
16
|
+
export const COPY_BUTTON_SIZES = {
|
|
17
|
+
sm: {
|
|
18
|
+
iconSize: 14,
|
|
19
|
+
hitSlop: slopFor(14)
|
|
20
|
+
},
|
|
21
|
+
md: {
|
|
22
|
+
iconSize: 16,
|
|
23
|
+
hitSlop: slopFor(16)
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
export function resolveCopyButtonColors(colors) {
|
|
27
|
+
return {
|
|
28
|
+
default: colors.fg.muted,
|
|
29
|
+
success: colors.status.success.text,
|
|
30
|
+
danger: colors.status.danger.text,
|
|
31
|
+
border: colors.border.interactive
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/** The row shapes reach 44dp with `minHeight`, not `hitSlop` — the `MENU_ROW_MIN_HEIGHT` /
|
|
36
|
+
* `MULTI_SELECT_ROW_MIN_HEIGHT` precedent: a row is already its own full-width touch target. */
|
|
37
|
+
export const copyButtonMenuRowStructure = createThemedVariants(theme => ({
|
|
38
|
+
base: {
|
|
39
|
+
flexDirection: "row",
|
|
40
|
+
alignItems: "center",
|
|
41
|
+
minHeight: MIN_TOUCH_TARGET,
|
|
42
|
+
columnGap: theme.space[2],
|
|
43
|
+
paddingHorizontal: theme.space[3],
|
|
44
|
+
paddingVertical: theme.space[2],
|
|
45
|
+
borderRadius: theme.radii.base
|
|
46
|
+
}
|
|
47
|
+
}));
|
|
48
|
+
export const copyButtonOutlineStructure = createThemedVariants(theme => ({
|
|
49
|
+
base: {
|
|
50
|
+
flexDirection: "row",
|
|
51
|
+
alignItems: "center",
|
|
52
|
+
minHeight: MIN_TOUCH_TARGET,
|
|
53
|
+
columnGap: theme.space[1],
|
|
54
|
+
paddingHorizontal: theme.space[3],
|
|
55
|
+
paddingVertical: theme.space[2],
|
|
56
|
+
borderRadius: theme.radii.base,
|
|
57
|
+
borderWidth: theme.borderWidths.thin
|
|
58
|
+
}
|
|
59
|
+
}));
|
|
60
|
+
export async function writeClipboard(value) {
|
|
61
|
+
try {
|
|
62
|
+
if (typeof globalThis !== "undefined") {
|
|
63
|
+
const nav = globalThis.navigator;
|
|
64
|
+
if (nav?.clipboard?.writeText) {
|
|
65
|
+
await nav.clipboard.writeText(value);
|
|
66
|
+
return true;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
try {
|
|
70
|
+
// Optional peer — consumers on native typically install this package.
|
|
71
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
72
|
+
const mod = require("@react-native-clipboard/clipboard");
|
|
73
|
+
const api = mod.default ?? mod;
|
|
74
|
+
if (typeof api.setString === "function") {
|
|
75
|
+
api.setString(value);
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
} catch {
|
|
79
|
+
/* optional dependency absent */
|
|
80
|
+
}
|
|
81
|
+
return false;
|
|
82
|
+
} catch {
|
|
83
|
+
return false;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=CopyButton.variants.js.map
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# copy-button/
|
|
2
|
+
|
|
3
|
+
Copies `value` to the clipboard. Variants: `icon`, `button`, `menu-item`. Brief copied state with check icon.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| File | Role |
|
|
8
|
+
|------|------|
|
|
9
|
+
| `CopyButton.tsx` | The component. Variant composition, copy/failure state machine, a11y wiring, focus ring, press motion. |
|
|
10
|
+
| `CopyButton.variants.ts` | Pure resolvers (`COPY_BUTTON_SIZES`, `resolveCopyButtonColors`, `writeClipboard`) + the themed structural resolvers. No React, no lucide. |
|
|
11
|
+
| `index.ts` | Public surface: `CopyButton`, `CopyButtonProps`, `CopyButtonSize`, `CopyButtonVariant`. |
|
|
12
|
+
| `__tests__/CopyButton.test.ts` | Pure: WCAG contrast (all brands × modes) + the 44dp touch-target arithmetic. |
|
|
13
|
+
| `__tests__/CopyButton.render.test.tsx` | Render: copy feedback, the failure path (incl. the WCAG 2.2.1 regression — a failed copy stays up past `COPY_FEEDBACK_MS`, a successful one still self-clears), the announcement, rendered `minHeight`/`hitSlop`, focus ring. |
|
|
14
|
+
| `__tests__/CopyButton.motion.test.tsx` | Reduce-motion: the press dip comes from `MOTION_TRANSFORM`, never a local number. |
|
|
15
|
+
|
|
16
|
+
## Props
|
|
17
|
+
|
|
18
|
+
| Prop | Type | Default |
|
|
19
|
+
|------|------|---------|
|
|
20
|
+
| `value` | `string` | — |
|
|
21
|
+
| `variant` | `icon \| button \| menu-item` | `icon` |
|
|
22
|
+
| `label` | `string` | `Copy` |
|
|
23
|
+
| `copiedLabel` | `string` | `Copied!` |
|
|
24
|
+
| `failedLabel` | `string` | `Copy failed` |
|
|
25
|
+
| `size` | `sm \| md` | `sm` |
|
|
26
|
+
| `onCopy` | `(value) => void` | — |
|
|
27
|
+
|
|
28
|
+
Native clipboard uses optional `@react-native-clipboard/clipboard`; web uses `navigator.clipboard`.
|
|
29
|
+
A failed write is **not** silent: the control switches to `failedLabel` with the `triangle-alert`
|
|
30
|
+
glyph in `status.danger.text` and announces it. `onCopy` fires only on success.
|
|
31
|
+
|
|
32
|
+
**WCAG 2.2.1 — only a successful copy self-clears.** `COPY_FEEDBACK_MS` (1500ms) times out the
|
|
33
|
+
`copied` state back to idle; a `failed` state does not arm that timer at all and stays up until the
|
|
34
|
+
next press re-decides it. Previously both states shared the same timer, so "Copy failed" — the
|
|
35
|
+
message a user most needs to actually read — vanished the fastest of anything in this catalogue.
|
|
36
|
+
**Consumer-visible change:** a failed copy no longer reverts to the idle label on its own; the
|
|
37
|
+
control now visibly stays in the failed state (icon + label + `border.danger` on the `button`
|
|
38
|
+
variant) until the user retries.
|
|
39
|
+
|
|
40
|
+
## Accessibility contract (WCAG)
|
|
41
|
+
|
|
42
|
+
- `accessibilityRole="button"`; the accessible name is the current label (`label` → `copiedLabel` /
|
|
43
|
+
`failedLabel` while the feedback state is showing).
|
|
44
|
+
- **2.2.1 (timing adjustable)** — see "Props" above: a failed copy no longer times out.
|
|
45
|
+
- **4.1.3 (status messages)** — the copy result is announced with
|
|
46
|
+
`AccessibilityInfo.announceForAccessibility`, the cross-platform imperative API (VoiceOver +
|
|
47
|
+
TalkBack), same call site pattern as `Toast`'s `show()`. The label swap alone announces nothing:
|
|
48
|
+
it lands on a control that is not focused. No `accessibilityLiveRegion` is set — it is Android-only
|
|
49
|
+
and would double-announce alongside the imperative call.
|
|
50
|
+
- **2.5.5 / 2.5.8 target size** — the `icon` variant's glyph (14/16dp) reaches ≥ 44dp via the
|
|
51
|
+
`hitSlop` derived from `COPY_BUTTON_SIZES` (`slopFor`, the `Button`/`Checkbox` idiom). The `button`
|
|
52
|
+
and `menu-item` row shapes reach it with `minHeight: MIN_TOUCH_TARGET` instead — the row-shaped
|
|
53
|
+
control precedent (`MENU_ROW_MIN_HEIGHT`, `MULTI_SELECT_ROW_MIN_HEIGHT`): a row is already its own
|
|
54
|
+
full-width target, so it grows rather than being expanded around.
|
|
55
|
+
- **1.4.3** — the idle glyph/label is `fg.muted`, the copied state `status.success.text` and the
|
|
56
|
+
failed state `status.danger.text`, all measured ≥ 4.5:1 on the canvas for every brand × mode.
|
|
57
|
+
- **1.4.11** — the `button` variant's outline is `border.interactive` (≥ 3:1 on the canvas).
|
|
58
|
+
- **2.4.7 / 2.4.11** — a visible `border.focus` ring appears on focus and is removed on blur
|
|
59
|
+
(`onFocus`/`onBlur`) in all three variants, offset outside the control for the same reason
|
|
60
|
+
`Button`'s ring sits outside its fill: `border.focus`'s ≥ 3:1 proof is against the canvas.
|
|
61
|
+
- **2.3.3** — the `icon` variant's press dip is `usePressMotion` (`MOTION_TRANSFORM.pressOpacity` /
|
|
62
|
+
`pressScale`, native driver, `opacity`/`transform` only), so reduce-motion snaps it instead of
|
|
63
|
+
tweening. The `button`/`menu-item` press feedback is a background-colour change, not motion.
|
|
64
|
+
|
|
65
|
+
## Known gaps
|
|
66
|
+
|
|
67
|
+
- The `copied` state still reverts on a fixed `COPY_FEEDBACK_MS` timer with no way to extend or turn
|
|
68
|
+
it off — acceptable under WCAG 2.2.1 because it is a success acknowledgement the user can re-trigger
|
|
69
|
+
at will (press again), not information they need to finish reading before it disappears.
|
|
70
|
+
|
|
71
|
+
## Performance
|
|
72
|
+
|
|
73
|
+
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`).
|