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,181 @@
|
|
|
1
|
+
# fab/ — a floating action button, and its speed-dial sibling
|
|
2
|
+
|
|
3
|
+
`Fab` is an absolutely-positioned, safe-area-aware primary-action control — a circle, or an
|
|
4
|
+
EXTENDED pill (icon + label) when `label` is given. `FabGroup` is a speed-dial: a Fab-shaped
|
|
5
|
+
trigger that expands a vertical stack of labeled mini actions above itself, behind a dismiss scrim.
|
|
6
|
+
Neither uses React Native's own `<Modal>` — both must stay visually anchored exactly where placed,
|
|
7
|
+
which a Modal's own separate native surface can't do (see `FabGroup.tsx`'s top comment).
|
|
8
|
+
|
|
9
|
+
## Files
|
|
10
|
+
|
|
11
|
+
| File | Role |
|
|
12
|
+
|------|------|
|
|
13
|
+
| `Fab.tsx` | The button. Discriminated icon-only/extended props, tone/press/focus, safe-area anchor. |
|
|
14
|
+
| `FabGroup.tsx` | The speed-dial. Controlled/uncontrolled expand state, mount-through-exit-animation lifecycle (mirrors `Drawer.tsx`), scrim, mini-action rows. |
|
|
15
|
+
| `Fab.variants.ts` | Pure resolvers (`resolveFabTone`, `resolveFabAccessibility`, `resolveFabAnchorStyle`, `resolveFabFocusRingStyle`, `resolveFabGroupActionWindow`, the inset/direction/align/label resolvers) + the themed structural resolvers. No React, no lucide. |
|
|
16
|
+
| `index.ts` | Public surface: `Fab`, `FabGroup`, their prop/action types, the closed unions, `IconName`. |
|
|
17
|
+
| `__tests__/Fab.test.ts` | Pure: WCAG contrast (all 9 brands × both modes) + touch target + a11y + positioning/animation resolvers. |
|
|
18
|
+
| `__tests__/Fab.render.test.tsx` | Render: press wiring for both, extended/icon-only, focus rings (Fab + the speed-dial trigger), FabGroup's full expand/collapse lifecycle (uncontrolled + controlled), scrim, its modal semantics, reduced motion. |
|
|
19
|
+
| `__tests__/FabGroup.keyboard.web.test.tsx` | Escape, Tab confinement, focus return, and the trigger-before-actions source order. |
|
|
20
|
+
|
|
21
|
+
## Props
|
|
22
|
+
|
|
23
|
+
**Fab** — `icon: IconName` (required), `label?: string` (renders the EXTENDED pill), `onPress: () => void`
|
|
24
|
+
(required), `tone?: accent \| neutral \| danger` (`accent`), `size?: md \| lg` (`lg`; 48/56dp — both
|
|
25
|
+
already clear 44dp), `position?: bottom-right \| bottom-left \| bottom-center \| static` (`bottom-right`),
|
|
26
|
+
`disabled?`, `loading?` (spinner replaces the icon, press suppressed), `accessibilityLabel?` —
|
|
27
|
+
**required** when `label` is absent (type-enforced discriminated union, the same shape `ButtonProps`
|
|
28
|
+
uses), `offset?: { bottom?; horizontal? }`, `style?: LayoutStyle`, `testID?`, plus the tooltip-trigger
|
|
29
|
+
set `onLongPress?`/`onPressOut?`/`onHoverIn?`/`onHoverOut?`/`onFocus?`/`onBlur?`/`accessibilityHint?`/
|
|
30
|
+
`aria-describedby?` (the web half of the hint — react-native-web has no `accessibilityHint`) —
|
|
31
|
+
declared explicitly (no `{...rest}`) so a wrapping `Tooltip` actually reaches the control; each chains
|
|
32
|
+
after the Fab's own press/focus ring rather than replacing it. **`FabGroup` does not accept them**, so
|
|
33
|
+
its trigger is not a tooltip target.
|
|
34
|
+
|
|
35
|
+
**FabGroup** — `actions: { icon, label, onPress, tone? }[]`, `icon?` (`"plus"`), `open?` +
|
|
36
|
+
`onOpenChange?` (uncontrolled if both omitted), plus `tone?`/`size?`/`position?`/`disabled?`/
|
|
37
|
+
`accessibilityLabel?`/`offset?`/`style?`/`testID?` (the trigger's own Fab-shaped props).
|
|
38
|
+
`testID` seeds `${testID}-anchor`, `${testID}-trigger`, `${testID}-trigger-focus-ring`,
|
|
39
|
+
`${testID}-scrim`, `${testID}-action-${index}`.
|
|
40
|
+
|
|
41
|
+
## Accessibility contract (WCAG)
|
|
42
|
+
|
|
43
|
+
- **2.5.5 / 2.5.8 target size** — both Fab sizes (48/56dp) and every FabGroup mini action (44dp)
|
|
44
|
+
clear the 44dp floor directly, no `hitSlop` needed.
|
|
45
|
+
- **1.4.3 / 1.4.11** — `resolveFabTone`'s `onFill` is measured ≥ 4.5:1 against `fill` for every tone
|
|
46
|
+
× brand × mode (covers both the icon's 3:1 non-text floor and the extended variant's 4.5:1 text
|
|
47
|
+
label in one pairing); a FabGroup mini action's label chip text (`fg.default` on `bg.raised`) is
|
|
48
|
+
measured the same way.
|
|
49
|
+
- **Icon-only rule** — `FabProps` is a discriminated union: `label?: never` + required
|
|
50
|
+
`accessibilityLabel` makes an unlabelled icon-only Fab a type error, mirroring `ButtonProps`.
|
|
51
|
+
- **4.1.2** — the speed-dial trigger carries `aria-expanded`; every mini action carries its own
|
|
52
|
+
`accessibilityLabel` (always its visible `label` — a mini action is never icon-only).
|
|
53
|
+
- **Flat `aria-*`, never `accessibilityState={{…}}`** — react-native-web 0.21 forwards only a flat
|
|
54
|
+
vocabulary and discards the object, so the object form shipped a role with no state at all on web.
|
|
55
|
+
`resolveFabAccessibility` returns `"aria-disabled"`/`"aria-busy"`; FabGroup's trigger adds
|
|
56
|
+
`aria-expanded`. RN's own `Pressable` merges the flat props back into `accessibilityState`, so one
|
|
57
|
+
flat form is correct on both platforms (same migration `resolveCheckboxAccessibility` documents).
|
|
58
|
+
- **4.1.2 / modal semantics** — while the scrim is mounted, FabGroup's ANCHOR carries BOTH
|
|
59
|
+
`accessibilityViewIsModal` and `aria-modal` — RN's `View` understands only the first,
|
|
60
|
+
react-native-web only the second — plus `onAccessibilityEscape={closeGroup}`; the scrim itself stays
|
|
61
|
+
`accessible={false}`. Menu's `accessible={false}` backdrop is **not** a precedent for omitting
|
|
62
|
+
this: Menu's backdrop sits inside an RN `<Modal>`, whose separate native surface removes the
|
|
63
|
+
covered screen from the accessibility tree by construction. FabGroup is deliberately not a
|
|
64
|
+
`<Modal>`, so nothing did that here — the scrim blocked touch while a swipe still reached the
|
|
65
|
+
whole screen behind it. On the anchor (not the action stack) so the trigger — the "Close actions
|
|
66
|
+
menu" affordance — stays inside the modal view, and gated on `mounted` so the modality lasts
|
|
67
|
+
exactly as long as the scrim, exit animation included.
|
|
68
|
+
- **2.1.1 keyboard (web only)** — FabGroup is not a `<Modal>`, so `react-native-web` gave it
|
|
69
|
+
nothing: no Escape, no Tab confinement, no focus return. (`onAccessibilityEscape` above is a
|
|
70
|
+
VoiceOver gesture; RNW does not forward it.) While the scrim is mounted the anchor now wires
|
|
71
|
+
`useDismissOnEscape` + `useFocusTrap` (`core/a11y/keyboard`), so Escape collapses the dial, Tab
|
|
72
|
+
cycles within trigger+actions, and focus returns to the trigger on collapse — including after an
|
|
73
|
+
action runs, since `runAction` collapses first.
|
|
74
|
+
- **2.4.3 focus order** — the trigger and action 0 are declared FIRST in the tree, with
|
|
75
|
+
`flexDirection: "column-reverse"` on the anchor and on the action stack restoring the painted
|
|
76
|
+
layout (trigger at the bottom, action 0 just above it). Tab order follows source order, so before
|
|
77
|
+
this the actions were reachable only by Shift+Tab, bottom-to-top, after Tab had already left the
|
|
78
|
+
group. This also changes the order a screen reader walks the group on native: trigger first, then
|
|
79
|
+
the actions outward from it.
|
|
80
|
+
- **2.4.7 focus indicator** — the speed-dial trigger draws the same offset `border.focus` ring `Fab`
|
|
81
|
+
does (`resolveFabFocusRingStyle`, shared by both since they are the same circular silhouette).
|
|
82
|
+
- **1.4.1** — `loading` (Fab only) sets `aria-busy`; the spinner is hidden from AT with
|
|
83
|
+
`aria-hidden` — the one spelling that works natively AND on web, where
|
|
84
|
+
`accessibilityElementsHidden`/`importantForAccessibility` are discarded and left it exposed.
|
|
85
|
+
- **2.3.3** — every animation in this module runs through `useMotion()` (`core/motion`), which
|
|
86
|
+
folds the OS reduce-motion setting and the device tier into one resolved duration. With motion
|
|
87
|
+
off, Fab's press state and FabGroup's expand/collapse `setValue` their final state — no tween,
|
|
88
|
+
no frozen frame — and the speed-dial unmounts immediately instead of waiting out an exit.
|
|
89
|
+
|
|
90
|
+
## Patterns copied from Button / Card / Drawer / Toast (the reference modules)
|
|
91
|
+
|
|
92
|
+
1. **Structure vs colour split**, **closed unions**, **discriminated icon-only prop**, **the
|
|
93
|
+
animated state-layer press overlay + offset focus ring** — all duplicated from `Button.tsx`
|
|
94
|
+
rather than imported (module isolation; same status `Toast.variants.ts` documents for its own
|
|
95
|
+
duplicated `MIN_TOUCH_TARGET`). Inside this module the ring is NOT duplicated a second time:
|
|
96
|
+
`Fab` and `FabGroup`'s trigger both call `resolveFabFocusRingStyle`.
|
|
97
|
+
2. **Elevation applied directly** from `theme.elevation.lg`/`.md`/`.sm`, the same idiom `Card`/`Toast` use.
|
|
98
|
+
3. **Safe-area-less bottom-inset approximation** (`resolveFabBottomInset`) — the identical formula
|
|
99
|
+
and value `Drawer.variants.ts`/`BottomNav.variants.ts` each already carry independently.
|
|
100
|
+
`react-native-safe-area-context` is an optional peer but not a real dependency of this package, so
|
|
101
|
+
`useSafeAreaInsets` is never imported here either (see "Known gaps").
|
|
102
|
+
4. **Mount-through-exit-animation lifecycle** (`mounted` state + a `useEffect` on the resolved
|
|
103
|
+
`expanded` value + a plain `setTimeout` unmount) — copied from `Drawer.tsx` verbatim, including
|
|
104
|
+
*why* it's a `useEffect` reacting to the value rather than the trigger's own handler: a controlled
|
|
105
|
+
caller flipping `open` externally still animates correctly.
|
|
106
|
+
5. **Source-order stacking, no `zIndex` between siblings** — the scrim declared before the
|
|
107
|
+
trigger+actions anchor, the same idiom `Menu.tsx`'s backdrop-then-sheet pair relies on.
|
|
108
|
+
|
|
109
|
+
## Design decisions specific to this module
|
|
110
|
+
|
|
111
|
+
- **Not RN's `<Modal>`.** A speed dial must stay visually anchored to its own on-screen position;
|
|
112
|
+
`<Modal>` presents an unrelated native surface. The scrim and the anchor are declared as siblings
|
|
113
|
+
at `FabGroup`'s own root (no wrapping node), so both resolve `position: "absolute"` against the
|
|
114
|
+
same ancestor — ordinarily the screen's own root container. The cost of that choice is that
|
|
115
|
+
nothing hides the covered screen from assistive tech for free, so the anchor declares
|
|
116
|
+
`accessibilityViewIsModal` itself (see 4.1.2 above) — a `<Modal>`-based overlay never has to.
|
|
117
|
+
- **`bottom-center` centers via `alignItems`, not a measured `translateX`** — works regardless of an
|
|
118
|
+
extended Fab's caller-length-driven rendered width, the same idiom `Toast`'s centered card uses.
|
|
119
|
+
- **FabGroup action rows are NOT stretched to the widest row.** The anchor's and the action stack's
|
|
120
|
+
`alignItems` are both set to the same edge (`resolveFabGroupStackAlign`), so rows size to their own
|
|
121
|
+
natural width and align flush to that edge, instead of flexbox's default `stretch` forcing every
|
|
122
|
+
row to the widest row's width and bunching shorter content at one end.
|
|
123
|
+
- **A mini action's label chip is a constant neutral surface, never the action's own tone fill** —
|
|
124
|
+
the same "state isn't conveyed by a background swap" reasoning `Select`'s row fill documents.
|
|
125
|
+
|
|
126
|
+
## Known gaps
|
|
127
|
+
|
|
128
|
+
- **No safe-area inset awareness** beyond the static iOS home-indicator approximation (see pattern
|
|
129
|
+
#3) — same documented gap `Toast`/`Drawer`/`BottomNav` already carry.
|
|
130
|
+
- **No focus ring on the mini action ROWS.** The trigger reached parity with `Fab` (identical
|
|
131
|
+
circular control, identical ring geometry), but a row is a two-part composite — label chip + icon
|
|
132
|
+
circle, with a gap — and one pill ring around both would claim a silhouette the control doesn't
|
|
133
|
+
have. A design decision, not a copied style, so it is deliberately left out the way
|
|
134
|
+
`button-group`/`radio-group` record theirs; the same `onFocus`/`onBlur` pattern extends cleanly.
|
|
135
|
+
- **No sibling-hiding on Android for the expanded speed dial** — `accessibilityViewIsModal` is an
|
|
136
|
+
iOS prop (react-native-web ignores it entirely, which is why `aria-modal` is emitted alongside it);
|
|
137
|
+
Android's equivalent would mean setting
|
|
138
|
+
`importantForAccessibility="no-hide-descendants"` on a tree FabGroup does not own. Same gap
|
|
139
|
+
`Modal`'s own docs record for its "no full screen-reader trap".
|
|
140
|
+
- **The web focus trap only cycles Tab** — it does not pull focus back if a click outside or a
|
|
141
|
+
programmatic `focus()` takes it out of the group. Inherited from `core/a11y/keyboard`; the fix is
|
|
142
|
+
sentinel nodes at the anchor's edges.
|
|
143
|
+
- **No hardware-back dismissal for FabGroup** on Android — Menu/Select/Drawer get this for free from
|
|
144
|
+
RN's own `<Modal onRequestClose>`; FabGroup deliberately isn't a Modal (see "Design decisions"), so
|
|
145
|
+
there is no `BackHandler` wiring in v1. The scrim press and the trigger's own toggle remain the
|
|
146
|
+
dismissal paths.
|
|
147
|
+
- **`static` FabGroup's mini-action stack has no real anchor edge** — it defaults to the same
|
|
148
|
+
trailing (`flex-end`) alignment `bottom-right` uses, an arbitrary but documented default.
|
|
149
|
+
|
|
150
|
+
## Motion
|
|
151
|
+
|
|
152
|
+
Nothing in this module owns a duration, easing or `Animated.timing` config — all of it comes from
|
|
153
|
+
`useMotion()` / `usePressMotion()` in `core/motion`, so retuning `core/motion/config.ts` retunes the
|
|
154
|
+
Fab too. Everything animates `opacity`/`transform` only, always on the native driver.
|
|
155
|
+
|
|
156
|
+
- **Fab press** — one `Animated.Value` drives both the tone-aware state-layer scrim and the press
|
|
157
|
+
scale (`motion.transform.pressScale`), so the two can never desync.
|
|
158
|
+
- **FabGroup expand/collapse** — one `progress` value; the trigger glyph rotates 0→45°, the scrim
|
|
159
|
+
fades, and each action row reveals over its own slice of that same value.
|
|
160
|
+
- **The action stagger is decorative** (`motion.decorative`, high tier only). It is expressed as a
|
|
161
|
+
per-row interpolation *window* (`resolveFabGroupActionWindow`), not per-row animations: no extra
|
|
162
|
+
timers or `Animated.Value`s, and it reverses correctly on close. On low/mid tier every row shares
|
|
163
|
+
the full `[0, 1]` window and the rows reveal together.
|
|
164
|
+
- **Action rows and the trigger** use `usePressMotion`; a row's reveal opacity and its press opacity
|
|
165
|
+
are combined with `Animated.multiply` rather than fighting over the same style key.
|
|
166
|
+
- In-flight animations are stopped on effect cleanup and on unmount.
|
|
167
|
+
|
|
168
|
+
## Performance
|
|
169
|
+
|
|
170
|
+
Both wrapped in `React.memo`. `toggle`/`closeGroup`/`requestExpandedChange`/`runAction` are
|
|
171
|
+
`useCallback`'d, and each action row is its own `React.memo`'d `FabGroupActionRow` with a stable
|
|
172
|
+
`onSelect` — the per-row `onPress` closure, tone lookup and style arrays are no longer rebuilt on
|
|
173
|
+
every parent render. The reversed row list is `useMemo`'d. The action stack and scrim are built only
|
|
174
|
+
while `mounted` (never while the trigger alone is on screen), matching Menu/Select/Drawer's
|
|
175
|
+
identical "sheet content built only while open" convention.
|
|
176
|
+
|
|
177
|
+
## Modernization (v1.0.7)
|
|
178
|
+
|
|
179
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
180
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
181
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Public surface of `pixelize-native-library/fab`. Value exports and type exports are split for
|
|
5
|
+
* `verbatimModuleSyntax`. The resolvers stay internal — a consumer configures a Fab/FabGroup through
|
|
6
|
+
* their props, never by importing internals.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { Fab } from "./Fab.js";
|
|
10
|
+
export { FabGroup } from "./FabGroup.js";
|
|
11
|
+
|
|
12
|
+
// Re-exported so a caller can type an `icon`/action `icon` prop without a separate import from `core/icon`.
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* FileGrid — thumbnail grid for attachments or folders. Icon + label cells in 2–4 columns.
|
|
5
|
+
*
|
|
6
|
+
* Items are chunked into fixed-height rows and rendered through `core/list`'s `VirtualList`, so a
|
|
7
|
+
* folder with thousands of files mounts a window of rows rather than every cell.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { memo, useCallback, useMemo } from "react";
|
|
11
|
+
import { Pressable, Text, View } from "react-native";
|
|
12
|
+
import { Icon } from "../../core/icon/index.js";
|
|
13
|
+
import { VirtualList } from "../../core/list/index.js";
|
|
14
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
15
|
+
import { fileGridCellStructure, fileGridRowHeight, fileGridRowStructure, resolveFileGridItemLabel } from "./FileGrid.variants.js";
|
|
16
|
+
import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
const ICON_STROKE = 2;
|
|
18
|
+
const ICON_SIZE = 28;
|
|
19
|
+
const DEFAULT_ICON = "file-text";
|
|
20
|
+
function rowKeyExtractor(row) {
|
|
21
|
+
return row.key;
|
|
22
|
+
}
|
|
23
|
+
export const FileGrid = /*#__PURE__*/memo(function FileGrid({
|
|
24
|
+
items,
|
|
25
|
+
columns = 3,
|
|
26
|
+
onItemPress,
|
|
27
|
+
style,
|
|
28
|
+
testID
|
|
29
|
+
}) {
|
|
30
|
+
const theme = useTheme();
|
|
31
|
+
const rows = useMemo(() => {
|
|
32
|
+
const chunks = [];
|
|
33
|
+
for (let start = 0; start < items.length; start += columns) {
|
|
34
|
+
const chunk = items.slice(start, start + columns);
|
|
35
|
+
chunks.push({
|
|
36
|
+
key: chunk[0]?.id ?? `row-${start}`,
|
|
37
|
+
items: chunk
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return chunks;
|
|
41
|
+
}, [items, columns]);
|
|
42
|
+
const rowStyle = useMemo(() => fileGridRowStructure(theme), [theme]);
|
|
43
|
+
const cellStyle = useMemo(() => [fileGridCellStructure(theme, {
|
|
44
|
+
columns
|
|
45
|
+
}), {
|
|
46
|
+
borderColor: theme.colors.border.default,
|
|
47
|
+
backgroundColor: theme.colors.bg.surface
|
|
48
|
+
}], [theme, columns]);
|
|
49
|
+
const pressedStyle = useMemo(() => ({
|
|
50
|
+
backgroundColor: theme.colors.bg.sunken
|
|
51
|
+
}), [theme]);
|
|
52
|
+
const textStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
53
|
+
fontSize: theme.fontSizes.sm,
|
|
54
|
+
color: theme.colors.fg.default,
|
|
55
|
+
textAlign: "center",
|
|
56
|
+
marginTop: theme.space[1]
|
|
57
|
+
}], [theme]);
|
|
58
|
+
const itemHeight = useMemo(() => fileGridRowHeight(theme.space[2]), [theme]);
|
|
59
|
+
const renderRow = useCallback(({
|
|
60
|
+
item: row
|
|
61
|
+
}) => /*#__PURE__*/_jsx(FileGridRow, {
|
|
62
|
+
row: row,
|
|
63
|
+
rowStyle: rowStyle,
|
|
64
|
+
cellStyle: cellStyle,
|
|
65
|
+
pressedStyle: pressedStyle,
|
|
66
|
+
textStyle: textStyle,
|
|
67
|
+
iconColor: theme.colors.accent.text,
|
|
68
|
+
onItemPress: onItemPress,
|
|
69
|
+
testID: testID
|
|
70
|
+
}), [rowStyle, cellStyle, pressedStyle, textStyle, theme, onItemPress, testID]);
|
|
71
|
+
return /*#__PURE__*/_jsx(View, {
|
|
72
|
+
testID: testID,
|
|
73
|
+
style: style,
|
|
74
|
+
children: /*#__PURE__*/_jsx(VirtualList, {
|
|
75
|
+
data: rows,
|
|
76
|
+
renderItem: renderRow,
|
|
77
|
+
keyExtractor: rowKeyExtractor,
|
|
78
|
+
itemHeight: itemHeight
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
const FileGridCell = /*#__PURE__*/memo(function FileGridCell({
|
|
83
|
+
item,
|
|
84
|
+
cellStyle,
|
|
85
|
+
pressedStyle,
|
|
86
|
+
textStyle,
|
|
87
|
+
iconColor,
|
|
88
|
+
onItemPress,
|
|
89
|
+
testID
|
|
90
|
+
}) {
|
|
91
|
+
const handlePress = useCallback(() => onItemPress?.(item.id), [onItemPress, item.id]);
|
|
92
|
+
const pressableStyle = useCallback(({
|
|
93
|
+
pressed
|
|
94
|
+
}) => [cellStyle, pressed ? pressedStyle : null], [cellStyle, pressedStyle]);
|
|
95
|
+
const accessibleLabel = resolveFileGridItemLabel(item.label, item.typeLabel);
|
|
96
|
+
const content = /*#__PURE__*/_jsxs(_Fragment, {
|
|
97
|
+
children: [/*#__PURE__*/_jsx(Icon, {
|
|
98
|
+
name: item.icon ?? DEFAULT_ICON,
|
|
99
|
+
size: ICON_SIZE,
|
|
100
|
+
color: iconColor,
|
|
101
|
+
strokeWidth: ICON_STROKE
|
|
102
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
103
|
+
numberOfLines: 2,
|
|
104
|
+
style: textStyle,
|
|
105
|
+
children: item.label
|
|
106
|
+
})]
|
|
107
|
+
});
|
|
108
|
+
if (onItemPress === undefined) {
|
|
109
|
+
return /*#__PURE__*/_jsx(View, {
|
|
110
|
+
testID: testID,
|
|
111
|
+
accessible: true,
|
|
112
|
+
accessibilityLabel: accessibleLabel,
|
|
113
|
+
style: cellStyle,
|
|
114
|
+
children: content
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
118
|
+
testID: testID,
|
|
119
|
+
accessibilityRole: "button",
|
|
120
|
+
accessibilityLabel: accessibleLabel,
|
|
121
|
+
onPress: handlePress,
|
|
122
|
+
style: pressableStyle,
|
|
123
|
+
children: content
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
const FileGridRow = /*#__PURE__*/memo(function FileGridRow({
|
|
127
|
+
row,
|
|
128
|
+
rowStyle,
|
|
129
|
+
cellStyle,
|
|
130
|
+
pressedStyle,
|
|
131
|
+
textStyle,
|
|
132
|
+
iconColor,
|
|
133
|
+
onItemPress,
|
|
134
|
+
testID
|
|
135
|
+
}) {
|
|
136
|
+
return /*#__PURE__*/_jsx(View, {
|
|
137
|
+
style: rowStyle,
|
|
138
|
+
children: row.items.map(item => /*#__PURE__*/_jsx(FileGridCell, {
|
|
139
|
+
item: item,
|
|
140
|
+
cellStyle: cellStyle,
|
|
141
|
+
pressedStyle: pressedStyle,
|
|
142
|
+
textStyle: textStyle,
|
|
143
|
+
iconColor: iconColor,
|
|
144
|
+
onItemPress: onItemPress,
|
|
145
|
+
testID: testID === undefined ? undefined : `${testID}-cell-${item.id}`
|
|
146
|
+
}, item.id))
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
//# sourceMappingURL=FileGrid.js.map
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createThemedVariants } from "../../core/style/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* A cell's accessible name. The glyph is the ONLY thing that says whether a cell is a folder, an
|
|
6
|
+
* image or a document, and a glyph has no text equivalent (WCAG 1.3.1) — `typeLabel` is that
|
|
7
|
+
* equivalent. It has to come from the consumer: an `IconName` is a drawing, not a file type.
|
|
8
|
+
*/
|
|
9
|
+
export function resolveFileGridItemLabel(label, typeLabel) {
|
|
10
|
+
return typeLabel === undefined ? label : `${label}, ${typeLabel}`;
|
|
11
|
+
}
|
|
12
|
+
export const FILE_GRID_CELL_MIN_HEIGHT = 88;
|
|
13
|
+
|
|
14
|
+
/** Fixed row height is what lets `VirtualList` derive `getItemLayout` for the grid. */
|
|
15
|
+
export function fileGridRowHeight(gap) {
|
|
16
|
+
return FILE_GRID_CELL_MIN_HEIGHT + gap;
|
|
17
|
+
}
|
|
18
|
+
export const fileGridRowStructure = createThemedVariants(theme => ({
|
|
19
|
+
base: {
|
|
20
|
+
flexDirection: "row",
|
|
21
|
+
columnGap: theme.space[2],
|
|
22
|
+
marginBottom: theme.space[2]
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
export const fileGridCellStructure = createThemedVariants(theme => ({
|
|
26
|
+
base: {
|
|
27
|
+
borderRadius: theme.radii.base,
|
|
28
|
+
borderWidth: theme.borderWidths.thin,
|
|
29
|
+
padding: theme.space[2],
|
|
30
|
+
alignItems: "center",
|
|
31
|
+
justifyContent: "center",
|
|
32
|
+
minHeight: FILE_GRID_CELL_MIN_HEIGHT
|
|
33
|
+
},
|
|
34
|
+
variants: {
|
|
35
|
+
columns: {
|
|
36
|
+
2: {
|
|
37
|
+
width: "48%"
|
|
38
|
+
},
|
|
39
|
+
3: {
|
|
40
|
+
width: "31%"
|
|
41
|
+
},
|
|
42
|
+
4: {
|
|
43
|
+
width: "23%"
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
defaultVariants: {
|
|
48
|
+
columns: 3
|
|
49
|
+
}
|
|
50
|
+
}));
|
|
51
|
+
//# sourceMappingURL=FileGrid.variants.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# file-grid/
|
|
2
|
+
|
|
3
|
+
Grid of file/folder cells with icon + label. `columns`: 2 | 3 | 4.
|
|
4
|
+
|
|
5
|
+
## Accessibility contract (WCAG)
|
|
6
|
+
|
|
7
|
+
- **1.3.1** — file **type** (folder vs. image vs. document) is conveyed only by the icon glyph, and a
|
|
8
|
+
glyph has no text equivalent. `FileGridItem.typeLabel` (optional) supplies it; a cell's accessible
|
|
9
|
+
name is `resolveFileGridItemLabel(label, typeLabel)` → `"<label>, <typeLabel>"`, falling back to
|
|
10
|
+
`label` alone when the consumer names no type. Applies to both a pressable cell
|
|
11
|
+
(`accessibilityLabel`) and a read-only one (wrapped `accessible` + `accessibilityLabel`, which it
|
|
12
|
+
did not carry at all before).
|
|
@@ -19,12 +19,109 @@
|
|
|
19
19
|
* resolver" for why that's a deliberate departure from every sibling module's structure/colour split.
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
|
-
import { memo, useCallback, useState } from "react";
|
|
23
|
-
import { StyleSheet, Text, View } from "react-native";
|
|
22
|
+
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
23
|
+
import { Animated, StyleSheet, Text, View } from "react-native";
|
|
24
|
+
import { useAnnounce } from "../../core/a11y/index.js";
|
|
25
|
+
import { useAnimatedValue, useMotion } from "../../core/motion/index.js";
|
|
24
26
|
import { useTheme } from "../../theme/index.js";
|
|
25
27
|
import { Button } from "../button/index.js";
|
|
26
|
-
import { FILE_UPLOAD_PICK_ERROR_MESSAGE, fileUploadContainerStructure, fileUploadRowStructure, pickDocumentFile, pickImageFile, resolveFileUploadRemoveLabel, resolveFileUploadTriggerLabel } from "./FileUpload.variants.js";
|
|
28
|
+
import { FILE_UPLOAD_PICK_ERROR_MESSAGE, FILE_UPLOAD_PROGRESS_LABEL, fileUploadContainerStructure, fileUploadProgressFillStructure, fileUploadProgressTrackStructure, fileUploadRowStructure, pickDocumentFile, pickImageFile, resolveFileUploadProgressFraction, resolveFileUploadProgressPercent, resolveFileUploadRemoveLabel, resolveFileUploadTriggerLabel } from "./FileUpload.variants.js";
|
|
27
29
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
30
|
+
const FileUploadRow = /*#__PURE__*/memo(function FileUploadRow({
|
|
31
|
+
name,
|
|
32
|
+
disabled,
|
|
33
|
+
onRemove,
|
|
34
|
+
testID,
|
|
35
|
+
removeTestID
|
|
36
|
+
}) {
|
|
37
|
+
const theme = useTheme();
|
|
38
|
+
const rowStyle = useMemo(() => [fileUploadRowStructure(theme), {
|
|
39
|
+
borderColor: theme.colors.border.interactive,
|
|
40
|
+
backgroundColor: theme.colors.bg.surface
|
|
41
|
+
}], [theme]);
|
|
42
|
+
const nameStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
43
|
+
flex: 1,
|
|
44
|
+
fontSize: theme.fontSizes.md,
|
|
45
|
+
color: theme.colors.fg.default
|
|
46
|
+
}, disabled ? styles.dimmedText : null], [theme, disabled]);
|
|
47
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
48
|
+
testID: testID,
|
|
49
|
+
style: rowStyle,
|
|
50
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
51
|
+
numberOfLines: 1,
|
|
52
|
+
style: nameStyle,
|
|
53
|
+
children: name
|
|
54
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
55
|
+
icon: "trash",
|
|
56
|
+
accessibilityLabel: resolveFileUploadRemoveLabel(name),
|
|
57
|
+
onPress: onRemove,
|
|
58
|
+
disabled: disabled,
|
|
59
|
+
size: "sm",
|
|
60
|
+
variant: "ghost",
|
|
61
|
+
tone: "neutral",
|
|
62
|
+
testID: removeTestID
|
|
63
|
+
})]
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
/**
|
|
67
|
+
* The upload-progress track. State-driven (it moves when `progress` moves, never during a scroll),
|
|
68
|
+
* and driven entirely by `scaleX` on the native driver — `width` would force a layout pass per
|
|
69
|
+
* frame and cannot leave the JS thread at all.
|
|
70
|
+
*/
|
|
71
|
+
const FileUploadProgress = /*#__PURE__*/memo(function FileUploadProgress({
|
|
72
|
+
progress,
|
|
73
|
+
testID
|
|
74
|
+
}) {
|
|
75
|
+
const theme = useTheme();
|
|
76
|
+
const motion = useMotion();
|
|
77
|
+
const fraction = resolveFileUploadProgressFraction(progress);
|
|
78
|
+
const percent = resolveFileUploadProgressPercent(progress);
|
|
79
|
+
const scaleX = useAnimatedValue(fraction);
|
|
80
|
+
const running = useRef(null);
|
|
81
|
+
useEffect(() => {
|
|
82
|
+
running.current?.stop();
|
|
83
|
+
if (!motion.enabled) {
|
|
84
|
+
scaleX.setValue(fraction);
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
running.current = motion.timing(scaleX, fraction, {
|
|
88
|
+
easing: "decelerate"
|
|
89
|
+
});
|
|
90
|
+
running.current.start();
|
|
91
|
+
return () => running.current?.stop();
|
|
92
|
+
}, [fraction, motion, scaleX]);
|
|
93
|
+
useEffect(() => () => running.current?.stop(), []);
|
|
94
|
+
const trackStyle = useMemo(() => [fileUploadProgressTrackStructure(theme), {
|
|
95
|
+
backgroundColor: theme.colors.bg.sunken
|
|
96
|
+
}], [theme]);
|
|
97
|
+
const fillStyle = useMemo(() => [fileUploadProgressFillStructure(), {
|
|
98
|
+
backgroundColor: theme.colors.accent.solid,
|
|
99
|
+
transform: [{
|
|
100
|
+
scaleX
|
|
101
|
+
}]
|
|
102
|
+
}], [theme, scaleX]);
|
|
103
|
+
return (
|
|
104
|
+
/*#__PURE__*/
|
|
105
|
+
// Flat `aria-value*`, not `accessibilityValue={{…}}`: react-native-web 0.21 drops the object, so
|
|
106
|
+
// on web this announced `role="progressbar"` with no percentage. `View` merges the flat props
|
|
107
|
+
// into the object form natively, so this one form is correct on both platforms.
|
|
108
|
+
_jsx(View, {
|
|
109
|
+
testID: testID,
|
|
110
|
+
accessible: true,
|
|
111
|
+
accessibilityRole: "progressbar",
|
|
112
|
+
accessibilityLabel: FILE_UPLOAD_PROGRESS_LABEL,
|
|
113
|
+
"aria-valuemin": 0,
|
|
114
|
+
"aria-valuemax": 100,
|
|
115
|
+
"aria-valuenow": percent,
|
|
116
|
+
style: trackStyle,
|
|
117
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
118
|
+
pointerEvents: "none",
|
|
119
|
+
testID: testID ? `${testID}-fill` : undefined,
|
|
120
|
+
style: fillStyle
|
|
121
|
+
})
|
|
122
|
+
})
|
|
123
|
+
);
|
|
124
|
+
});
|
|
28
125
|
export const FileUpload = /*#__PURE__*/memo(function FileUpload(props) {
|
|
29
126
|
const {
|
|
30
127
|
source,
|
|
@@ -35,6 +132,7 @@ export const FileUpload = /*#__PURE__*/memo(function FileUpload(props) {
|
|
|
35
132
|
disabled = false,
|
|
36
133
|
allowedMimeTypes,
|
|
37
134
|
allowsEditing = false,
|
|
135
|
+
progress,
|
|
38
136
|
style,
|
|
39
137
|
testID
|
|
40
138
|
} = props;
|
|
@@ -42,6 +140,7 @@ export const FileUpload = /*#__PURE__*/memo(function FileUpload(props) {
|
|
|
42
140
|
// Distinct from `value`: a pick attempt can fail (denied permission, or any other native error)
|
|
43
141
|
// independently of whether a file was already selected — see `openPicker`'s catch block.
|
|
44
142
|
const [pickError, setPickError] = useState(false);
|
|
143
|
+
useAnnounce(pickError ? FILE_UPLOAD_PICK_ERROR_MESSAGE : undefined);
|
|
45
144
|
const openPicker = useCallback(async () => {
|
|
46
145
|
if (disabled) return;
|
|
47
146
|
setPickError(false);
|
|
@@ -75,47 +174,38 @@ export const FileUpload = /*#__PURE__*/memo(function FileUpload(props) {
|
|
|
75
174
|
setPickError(false);
|
|
76
175
|
onChange(null);
|
|
77
176
|
}, [onChange]);
|
|
177
|
+
const rootStyle = useMemo(() => [fileUploadContainerStructure(theme), style], [theme, style]);
|
|
178
|
+
const errorStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
179
|
+
fontSize: theme.fontSizes.xs,
|
|
180
|
+
color: theme.colors.status.danger.text
|
|
181
|
+
}], [theme]);
|
|
182
|
+
const triggerLabel = useMemo(() => resolveFileUploadTriggerLabel(label, value), [label, value]);
|
|
78
183
|
return /*#__PURE__*/_jsxs(View, {
|
|
79
184
|
testID: testID,
|
|
80
|
-
style:
|
|
185
|
+
style: rootStyle,
|
|
81
186
|
children: [/*#__PURE__*/_jsx(Button, {
|
|
82
187
|
label: label,
|
|
83
188
|
icon: "upload",
|
|
84
189
|
onPress: handlePick,
|
|
85
190
|
disabled: disabled,
|
|
86
191
|
size: size,
|
|
87
|
-
accessibilityLabel:
|
|
192
|
+
accessibilityLabel: triggerLabel,
|
|
88
193
|
testID: testID ? `${testID}-trigger` : undefined
|
|
89
|
-
}), value && /*#__PURE__*/
|
|
194
|
+
}), value && /*#__PURE__*/_jsx(FileUploadRow, {
|
|
195
|
+
name: value.name,
|
|
196
|
+
disabled: disabled,
|
|
197
|
+
onRemove: handleRemove,
|
|
90
198
|
testID: testID ? `${testID}-row` : undefined,
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}, disabled && styles.dimmedText],
|
|
102
|
-
children: value.name
|
|
103
|
-
}), /*#__PURE__*/_jsx(Button, {
|
|
104
|
-
icon: "trash",
|
|
105
|
-
accessibilityLabel: resolveFileUploadRemoveLabel(value.name),
|
|
106
|
-
onPress: handleRemove,
|
|
107
|
-
disabled: disabled,
|
|
108
|
-
size: "sm",
|
|
109
|
-
variant: "ghost",
|
|
110
|
-
tone: "neutral",
|
|
111
|
-
testID: testID ? `${testID}-remove` : undefined
|
|
112
|
-
})]
|
|
113
|
-
}), pickError && /*#__PURE__*/_jsx(Text, {
|
|
114
|
-
accessibilityLiveRegion: "polite",
|
|
115
|
-
style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
116
|
-
fontSize: theme.fontSizes.xs,
|
|
117
|
-
color: theme.colors.status.danger.text
|
|
118
|
-
}],
|
|
199
|
+
removeTestID: testID ? `${testID}-remove` : undefined
|
|
200
|
+
}), progress !== undefined && /*#__PURE__*/_jsx(FileUploadProgress, {
|
|
201
|
+
progress: progress,
|
|
202
|
+
testID: testID ? `${testID}-progress` : undefined
|
|
203
|
+
}), pickError &&
|
|
204
|
+
/*#__PURE__*/
|
|
205
|
+
// No `accessibilityLiveRegion` (deliberate): it's Android-only, and `useAnnounce` above
|
|
206
|
+
// already announces on both platforms — keeping both would double-announce on Android.
|
|
207
|
+
_jsx(Text, {
|
|
208
|
+
style: errorStyle,
|
|
119
209
|
children: FILE_UPLOAD_PICK_ERROR_MESSAGE
|
|
120
210
|
})]
|
|
121
211
|
});
|