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,145 @@
|
|
|
1
|
+
# data-table/ — a horizontally-scrollable, column-configured table
|
|
2
|
+
|
|
3
|
+
`DataTable` renders column headers + rows for tabular data on a phone screen. Header and body live
|
|
4
|
+
in ONE vertical `FlatList` (header as `ListHeaderComponent`, `stickyHeaderIndices={[0]}` for the
|
|
5
|
+
pin) nested inside a single horizontal `ScrollView` — header and rows are always the same width and
|
|
6
|
+
scroll sideways together with no hand-rolled scroll-offset syncing between two separate lists.
|
|
7
|
+
|
|
8
|
+
Sort and selection are fully **controlled**, the same contract `Select` uses for `value`: DataTable
|
|
9
|
+
never sorts `data` itself and never owns `selectedKeys` — it reports the next state via
|
|
10
|
+
`onSortChange`/`onSelectionChange` and renders whatever the caller passes back in.
|
|
11
|
+
|
|
12
|
+
## Files
|
|
13
|
+
|
|
14
|
+
| File | Role |
|
|
15
|
+
|------|------|
|
|
16
|
+
| `DataTable.tsx` | The component. Header/row/skeleton/empty JSX built inline per render (Select's precedent), one `FlatList` wired with `stickyHeaderIndices`. |
|
|
17
|
+
| `DataTable.variants.ts` | Pure resolvers (`resolveDataTableColors`, `nextSortDirection`, `resolveSortIcon`, `resolveSortAccessibilityLabel`, `toggleSelectionKey`, `resolveSelectAllState`, `resolveSelectAllSelection`, `resolveDefaultCellText`, `resolveRowBackground`, `resolveTotalWidth`) + themed structural resolvers. No React, no lucide. |
|
|
18
|
+
| `index.ts` | Public surface: `DataTable`, `DataTableProps`, `DataTableColumn`, `DataTableAlign`, `DataTableSortDirection`. |
|
|
19
|
+
| `__tests__/DataTable.test.ts` | Pure: WCAG contrast (all brands × modes) + sort/selection/formatting contracts. |
|
|
20
|
+
| `__tests__/DataTable.render.test.tsx` | Render: headers/cells, header **position** in the rendered order (both `stickyHeader` values, empty and loading), the sticky pin, header-offset row layout, per-cell column naming, row press, sort cycling, select-all/row selection, loading, empty state. |
|
|
21
|
+
| `__tests__/DataTable.perf.test.tsx` | Perf: mounted rows stay bounded for a 10k dataset; an unrelated outer `style` change mounts no extra rows. |
|
|
22
|
+
| `__tests__/DataTable.dom.test.tsx` | Real DOM (`jest.web.config.js`): a non-sortable header renders `<h3>`; a sortable header renders `<h3>` AND its sort control keeps `role="button"`, nested inside it. |
|
|
23
|
+
|
|
24
|
+
## Props
|
|
25
|
+
|
|
26
|
+
| Prop | Type | Default | Notes |
|
|
27
|
+
|------|------|---------|-------|
|
|
28
|
+
| `columns` | `DataTableColumn<T>[]` | — | `{ key, header, width?, align?, render?, sortable? }`. `render`'s `ReactNode`, if textual, must be caller-wrapped in `<Text>` — same convention as `ListItem`'s `leading`/`trailing`. |
|
|
29
|
+
| `data` | `T[]` | — | Required. |
|
|
30
|
+
| `keyExtractor` | `(row, index) => string` | — | Required; also seeds each row's `testID`. |
|
|
31
|
+
| `onRowPress` | `(row, index) => void` | — | Absent = rows are plain `View`s, not `Pressable`. |
|
|
32
|
+
| `sortBy` / `sortDirection` | `string` / `asc \| desc` | — | Controlled, like `Select`'s `value`. |
|
|
33
|
+
| `onSortChange` | `(key, direction) => void` | — | Fired on a sortable header press; DataTable never sorts `data` itself. |
|
|
34
|
+
| `selectable` | `boolean` | `false` | Adds a leading `Checkbox` column (select-all in the header). |
|
|
35
|
+
| `selectedKeys` / `onSelectionChange` | `string[]` / `(keys) => void` | — | Controlled, like `sortBy`. |
|
|
36
|
+
| `loading` | `boolean` | `false` | Swaps rows for `DATA_TABLE_SKELETON_ROW_COUNT` (5) `Skeleton` rows; header still renders. |
|
|
37
|
+
| `emptyMessage` | `string` | `"No data"` | Passed to `EmptyState`'s `title` when `data` is empty and not loading. |
|
|
38
|
+
| `stickyHeader` | `boolean` | `true` | `stickyHeaderIndices={[0]}` on the list. Controls the **pin only** — the header is `ListHeaderComponent` either way, so it is always rendered before row 0. |
|
|
39
|
+
| `rowHeight` | `number` | `48` | Short values get `hitSlop`, same technique as `Select`'s compact sizes. Also feeds `getItemLayout`. |
|
|
40
|
+
| `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
|
|
41
|
+
| `testID` | `string` | — | Seeds `-header`, `-header-<key>` (the sort button on a sortable column, the heading `View` itself on a non-sortable one), `-header-<key>-heading` (the heading wrapper, sortable columns only), `-row-<i>`, `-row-<i>-select`, `-select-all`, `-skeleton-<i>`, `-empty`, `-scroll`, plus `-focus-ring` under a focused header cell or row. |
|
|
42
|
+
|
|
43
|
+
## Accessibility contract (WCAG)
|
|
44
|
+
|
|
45
|
+
- **1.4.3** — header text/icon and body cell text are measured ≥ 4.5:1 on every fill they can sit on
|
|
46
|
+
(header band, even row, odd/zebra row, pressed row) across all brands × both modes.
|
|
47
|
+
- **1.4.11** — the header/body boundary is `border.interactive`, measured ≥ 3:1, not the decorative
|
|
48
|
+
`border.default` (a ~1.2:1 hairline on every brand — see `DataTable.test.ts`).
|
|
49
|
+
- **1.3.3 / 4.1.2** — the sort glyph is a visual-only cue; a sortable header's accessible name embeds
|
|
50
|
+
the state in words ("Name, sorted ascending") so it isn't lost to a screen reader.
|
|
51
|
+
- **1.3.1 — every column header keeps `accessibilityRole="header"`, sortable or not**, each with
|
|
52
|
+
`aria-level={3}` (`HEADING_LEVEL.subsection`, `core/heading`). A sortable column previously LOST
|
|
53
|
+
the header role entirely — the sort control (`role="button"`) replaced it on the same node instead
|
|
54
|
+
of sitting alongside it, so a fully-sortable table had no column headers in the accessibility tree
|
|
55
|
+
at all. Fixed by wrapping: an outer `HeadingView` (`accessibilityRole="header"`,
|
|
56
|
+
`testID={testID}-header-<key>-heading`) contains the inner sort `Pressable`
|
|
57
|
+
(`testID={testID}-header-<key>`, `accessibilityRole="button"`) — one node per role, not one node
|
|
58
|
+
fighting over two.
|
|
59
|
+
- **2.5.8 / 2.5.5 target size** — the header row is a direct 44dp target (no slop needed); a narrow
|
|
60
|
+
sortable column or a compact `rowHeight` reaches 44dp via `hitSlop`, same `Select`/`Button` technique.
|
|
61
|
+
- Selection reuses `Checkbox`'s own contract wholesale (tri-state `accessibilityState`, required
|
|
62
|
+
`accessibilityLabel` on every unlabelled box) — select-all announces `"Select all rows"`, a row
|
|
63
|
+
announces `"Select row <n>"`.
|
|
64
|
+
- Loading and empty states inherit `Skeleton`'s (decorative, `accessibilityElementsHidden`) and
|
|
65
|
+
`EmptyState`'s own contracts unmodified.
|
|
66
|
+
- **2.1.1 keyboard-reachable scroll region** — the outer horizontal `ScrollView` carries an explicit
|
|
67
|
+
`tabIndex={0}`. A plain display table (no `onRowPress`, no `sortable` column, `selectable={false}`)
|
|
68
|
+
has **no** focusable descendant at all, so its off-screen columns were unreachable by keyboard.
|
|
69
|
+
Explicit, rather than relying on Chrome/Firefox's auto-focusable-scroll-region behaviour, which
|
|
70
|
+
Safari and native RN do not have. Consequence: every table is one tab stop on web.
|
|
71
|
+
- **2.4.7** — a sortable header cell and a pressable row each draw a `border.focus` ring
|
|
72
|
+
(`${testID}-header-<key>-focus-ring`, `${testID}-row-<i>-focus-ring`). Both are drawn **inside**
|
|
73
|
+
their own bounds: they are full-bleed inside two nested scroll containers, where the gap-outside
|
|
74
|
+
ring `Button`/`CopyButton` use is clipped on the very edges that carry it.
|
|
75
|
+
- **2.4.11** — while `stickyHeader` is on, rows carry `scrollMarginTop: headerOffset` **on web
|
|
76
|
+
only**. A pinned header renders as `position: sticky`, and the browser scrolls a newly focused row
|
|
77
|
+
flush to the container's top edge — under the header, hiding the ring above. The margin reuses the
|
|
78
|
+
same `headerOffset` `getItemLayout` derives, so the two cannot drift.
|
|
79
|
+
- **1.3.1 / 1.3.2 cell↔column association** — rows are read one cell at a time and the header is off
|
|
80
|
+
to the side or scrolled away, so a bare value is unattributable. Every default-formatted cell's
|
|
81
|
+
`Text` announces `"<column header>: <value>"`. The list itself inherits
|
|
82
|
+
`accessibilityRole="list"` from `core/list`.
|
|
83
|
+
|
|
84
|
+
## Patterns copied from the reference modules
|
|
85
|
+
|
|
86
|
+
1. **Structure vs colour split** — layout/padding/border-width via `createThemedVariants`; colour
|
|
87
|
+
resolved from `RoleColors` only, applied inline (`Select`/`Menu`/`Banner`).
|
|
88
|
+
2. **Pure, testable resolvers** in `DataTable.variants.ts` — contrast, sort cycling, and selection
|
|
89
|
+
set maths are unit-tested directly, never eyeballed or exercised only through a render test.
|
|
90
|
+
3. **Closed unions** — `align`, `sortDirection` are closed unions, never a free-form prop.
|
|
91
|
+
4. **Fully controlled sort/selection** — mirrors `Select`'s `value`/`onValueChange` contract: the
|
|
92
|
+
component reports intent, the caller owns the state.
|
|
93
|
+
|
|
94
|
+
## Design decisions specific to this module
|
|
95
|
+
|
|
96
|
+
- **One `FlatList`, not two scroll views kept in sync.** The header is that FlatList's own
|
|
97
|
+
`ListHeaderComponent`, pinned via `stickyHeaderIndices={[0]}` — RN's built-in mechanism for
|
|
98
|
+
exactly this, so there is no manual `onScroll`/`scrollTo` offset-mirroring between a header list
|
|
99
|
+
and a body list.
|
|
100
|
+
- **`stickyHeader` must never become a position.** When `core/list`'s `VirtualList` had no
|
|
101
|
+
`ListHeaderComponent` prop, "sticky" was re-expressed here as *where* the header rendered:
|
|
102
|
+
`stickyHeader={false}` moved it below the list, so a screen reader read all N rows and *then* the
|
|
103
|
+
column labels naming them (WCAG 1.3.2, meaningful sequence). The header is now always
|
|
104
|
+
`ListHeaderComponent`; `stickyHeader` toggles `stickyHeaderIndices` and nothing else. The render
|
|
105
|
+
test asserts the header's **position in the rendered order**, not its presence — presence is what
|
|
106
|
+
stayed green through the regression.
|
|
107
|
+
- **The empty state is `ListEmptyComponent`**, not a sibling that replaces the list, so the column
|
|
108
|
+
header survives an empty result set.
|
|
109
|
+
- **`getItemLayout` is passed directly, not derived from `itemHeight`.** Offsets are measured from
|
|
110
|
+
the top of the scroll content and the header cell sits above row 0, so every row's offset carries
|
|
111
|
+
a leading `DATA_TABLE_HEADER_HEIGHT + borderWidths.thin`; without it `scrollToIndex` lands one
|
|
112
|
+
header short.
|
|
113
|
+
- **Needs a bounded ancestor for the sticky header / internal scroll to do anything** — the same
|
|
114
|
+
requirement RN's own docs state for `ScrollView` ("needs a bounded height… by setting height
|
|
115
|
+
directly, or by flex"). Place `DataTable` in a `style={{ flex: 1 }}` (or explicit height)
|
|
116
|
+
container; unbounded, it renders at full content height and the enclosing screen scrolls it —
|
|
117
|
+
never invisible, just not independently scrollable.
|
|
118
|
+
- **Row press vs. the selection checkbox** — the checkbox is its own nested `Pressable`; RN's
|
|
119
|
+
responder system lets the innermost element claim a touch, so pressing the checkbox never also
|
|
120
|
+
fires `onRowPress` (the standard, well-established RN pattern for a checkbox-in-row).
|
|
121
|
+
- **Default cell text** reads `row[column.key]` through a narrow, documented `unknown` escape —
|
|
122
|
+
`T` is intentionally unconstrained so any row shape works without a `render`.
|
|
123
|
+
|
|
124
|
+
## Known gaps
|
|
125
|
+
|
|
126
|
+
- No pagination, column resize, or column reorder — v1 is fixed column widths from `columns`.
|
|
127
|
+
- Skeleton is a fixed 5 rows regardless of `rowHeight` or viewport size.
|
|
128
|
+
- `EmptyState` renders inside the same `totalWidth`-bound scroll region as the columns, so a very
|
|
129
|
+
narrow table gives it a narrow box rather than full screen width.
|
|
130
|
+
- A column with a custom `render` gets no `"<header>: <value>"` label — the cell's content is the
|
|
131
|
+
caller's `ReactNode` and its text is not knowable here. Such a column should carry its own
|
|
132
|
+
accessible name inside `render`.
|
|
133
|
+
|
|
134
|
+
## Performance
|
|
135
|
+
|
|
136
|
+
Wrapped in `React.memo`; since the component itself is generic (`<T>`), `memo`'s erased type is
|
|
137
|
+
restored with a documented `as typeof DataTableInner` cast. Header/row/skeleton/empty JSX are built
|
|
138
|
+
inline per render, matching `Select`'s own precedent (its `renderItem` isn't extracted or memoized
|
|
139
|
+
either) — real windowing for large datasets still comes from `FlatList` itself.
|
|
140
|
+
|
|
141
|
+
## Modernization (v1.0.7)
|
|
142
|
+
|
|
143
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
144
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
145
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Public surface of `pixelize-native-library/data-table`. Value exports and type exports are split
|
|
5
|
+
* for `verbatimModuleSyntax`. The resolvers (`resolveDataTableColors`, `nextSortDirection`, …) stay
|
|
6
|
+
* internal — a consumer configures a DataTable through its props, never by importing its internals.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { DataTable } from "./DataTable.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Calendar — the inline month grid every other export in this module composes. All of its date
|
|
5
|
+
* arithmetic lives in `DatePicker.variants.ts` (pure, unit-tested); this file is layout, state and
|
|
6
|
+
* accessibility only.
|
|
7
|
+
*
|
|
8
|
+
* The header doubles as a quick-jump toggle: while it is open the grid shows the twelve months of
|
|
9
|
+
* the cursor's year and the ‹ › controls page YEARS instead of months — one panel covering both
|
|
10
|
+
* dimensions, instead of a separate year grid and month grid to navigate between. The ‹ › controls
|
|
11
|
+
* themselves are the library's own `Button` (icon-only, ghost/neutral) — composed, not
|
|
12
|
+
* reimplemented; only the toggle needs a custom `Pressable`, for the `aria-expanded` (WCAG 4.1.2)
|
|
13
|
+
* `Button`'s closed a11y contract can't express (see `resolveCalendarChromeColors`).
|
|
14
|
+
*
|
|
15
|
+
* Keyboard (web only, WCAG 2.1.1): the 42 day cells are ONE tab stop, not 42 — exactly one carries
|
|
16
|
+
* `tabIndex={0}` and the arrows/Home/End/PageUp/PageDown move which. The DOM half lives in
|
|
17
|
+
* `Calendar.keys.web.ts`, the date arithmetic in `resolveCalendarFocusMove`; Enter/Space are left
|
|
18
|
+
* to `react-native-web`'s own `role="button"` press handling.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { memo, useCallback, useMemo, useRef, useState } from "react";
|
|
22
|
+
import { Pressable, Text, View } from "react-native";
|
|
23
|
+
import { Icon } from "../../core/icon/index.js";
|
|
24
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
25
|
+
import { Button } from "../button/index.js";
|
|
26
|
+
import { useCalendarGridFocus, useCalendarGridKeys } from "./Calendar.keys";
|
|
27
|
+
import { addMonths, atNoon, buildMonthGrid, calendarDayCellStructure, calendarGridStructure, calendarHeaderButtonStructure, calendarHeaderStructure, calendarStructure, calendarWeekRowStructure, calendarWeekdayCellStructure, canShowMonth, canShowYear, chunkIntoWeeks, clampToRange, DEFAULT_FIRST_DAY_OF_WEEK, DEFAULT_LOCALE, EMPTY_RANGE, dayOrdinal, formatMonthYear, formatYear, isDateDisabled, isSameDay, isWithinRange, monthCursorOf, monthShortNames, nextRangeSelection, quickJumpCellStructure, quickJumpGridStructure, resolveCalendarChromeColors, resolveCalendarDayAccessibility, resolveCalendarDayColors, resolveCalendarFocusMove, toDayKey, weekdayLabels } from "./DatePicker.variants.js";
|
|
28
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
29
|
+
const ICON_STROKE = 2;
|
|
30
|
+
const HEADER_ICON_SIZE = 18;
|
|
31
|
+
const CalendarDayCell = /*#__PURE__*/memo(function CalendarDayCell({
|
|
32
|
+
date,
|
|
33
|
+
dayOfMonth,
|
|
34
|
+
adjacent,
|
|
35
|
+
selected,
|
|
36
|
+
inRange,
|
|
37
|
+
disabled,
|
|
38
|
+
today,
|
|
39
|
+
tabIndex,
|
|
40
|
+
locale,
|
|
41
|
+
theme,
|
|
42
|
+
onPress,
|
|
43
|
+
testID
|
|
44
|
+
}) {
|
|
45
|
+
const a11y = useMemo(() => resolveCalendarDayAccessibility({
|
|
46
|
+
date,
|
|
47
|
+
selected,
|
|
48
|
+
disabled,
|
|
49
|
+
inRange,
|
|
50
|
+
today,
|
|
51
|
+
locale
|
|
52
|
+
}), [date, selected, disabled, inRange, today, locale]);
|
|
53
|
+
const resting = useMemo(() => resolveCalendarDayColors(theme.colors, {
|
|
54
|
+
selected,
|
|
55
|
+
inRange,
|
|
56
|
+
adjacent,
|
|
57
|
+
disabled,
|
|
58
|
+
today,
|
|
59
|
+
pressed: false
|
|
60
|
+
}), [theme.colors, selected, inRange, adjacent, disabled, today]);
|
|
61
|
+
const pressedBackground = useMemo(() => resolveCalendarDayColors(theme.colors, {
|
|
62
|
+
selected,
|
|
63
|
+
inRange,
|
|
64
|
+
adjacent,
|
|
65
|
+
disabled,
|
|
66
|
+
today,
|
|
67
|
+
pressed: true
|
|
68
|
+
}).background, [theme.colors, selected, inRange, adjacent, disabled, today]);
|
|
69
|
+
const cellStructure = useMemo(() => calendarDayCellStructure(theme), [theme]);
|
|
70
|
+
const labelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
71
|
+
fontSize: theme.fontSizes.sm,
|
|
72
|
+
color: resting.label
|
|
73
|
+
}], [theme, resting.label]);
|
|
74
|
+
const handlePress = useCallback(() => {
|
|
75
|
+
if (!disabled) onPress(date);
|
|
76
|
+
}, [disabled, onPress, date]);
|
|
77
|
+
const cellStyle = useCallback(({
|
|
78
|
+
pressed
|
|
79
|
+
}) => [cellStructure, {
|
|
80
|
+
backgroundColor: pressed ? pressedBackground : resting.background,
|
|
81
|
+
borderColor: resting.ring
|
|
82
|
+
}], [cellStructure, pressedBackground, resting.background, resting.ring]);
|
|
83
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
84
|
+
testID: testID,
|
|
85
|
+
accessibilityRole: a11y.accessibilityRole,
|
|
86
|
+
accessibilityLabel: a11y.accessibilityLabel,
|
|
87
|
+
"aria-selected": a11y["aria-selected"],
|
|
88
|
+
"aria-disabled": a11y["aria-disabled"],
|
|
89
|
+
disabled: disabled,
|
|
90
|
+
tabIndex: tabIndex,
|
|
91
|
+
onPress: handlePress,
|
|
92
|
+
style: cellStyle,
|
|
93
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
94
|
+
style: labelStyle,
|
|
95
|
+
children: dayOfMonth
|
|
96
|
+
})
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
const QuickJumpCell = /*#__PURE__*/memo(function QuickJumpCell({
|
|
100
|
+
month,
|
|
101
|
+
name,
|
|
102
|
+
selected,
|
|
103
|
+
disabled,
|
|
104
|
+
theme,
|
|
105
|
+
onPress,
|
|
106
|
+
testID
|
|
107
|
+
}) {
|
|
108
|
+
const resting = useMemo(() => resolveCalendarDayColors(theme.colors, {
|
|
109
|
+
selected,
|
|
110
|
+
inRange: false,
|
|
111
|
+
adjacent: false,
|
|
112
|
+
disabled,
|
|
113
|
+
today: false,
|
|
114
|
+
pressed: false
|
|
115
|
+
}), [theme.colors, selected, disabled]);
|
|
116
|
+
const pressedBackground = useMemo(() => resolveCalendarDayColors(theme.colors, {
|
|
117
|
+
selected,
|
|
118
|
+
inRange: false,
|
|
119
|
+
adjacent: false,
|
|
120
|
+
disabled,
|
|
121
|
+
today: false,
|
|
122
|
+
pressed: true
|
|
123
|
+
}).background, [theme.colors, selected, disabled]);
|
|
124
|
+
const cellStructure = useMemo(() => quickJumpCellStructure(theme), [theme]);
|
|
125
|
+
const labelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
126
|
+
fontSize: theme.fontSizes.sm,
|
|
127
|
+
color: resting.label
|
|
128
|
+
}], [theme, resting.label]);
|
|
129
|
+
const handlePress = useCallback(() => {
|
|
130
|
+
if (!disabled) onPress(month);
|
|
131
|
+
}, [disabled, onPress, month]);
|
|
132
|
+
const cellStyle = useCallback(({
|
|
133
|
+
pressed
|
|
134
|
+
}) => [cellStructure, {
|
|
135
|
+
backgroundColor: pressed ? pressedBackground : resting.background
|
|
136
|
+
}], [cellStructure, pressedBackground, resting.background]);
|
|
137
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
138
|
+
testID: testID,
|
|
139
|
+
accessibilityRole: "button",
|
|
140
|
+
accessibilityLabel: name,
|
|
141
|
+
"aria-selected": selected,
|
|
142
|
+
"aria-disabled": disabled,
|
|
143
|
+
disabled: disabled,
|
|
144
|
+
onPress: handlePress,
|
|
145
|
+
style: cellStyle,
|
|
146
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
147
|
+
style: labelStyle,
|
|
148
|
+
children: name
|
|
149
|
+
})
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
export const Calendar = /*#__PURE__*/memo(function Calendar({
|
|
153
|
+
value,
|
|
154
|
+
onChange,
|
|
155
|
+
onSelect,
|
|
156
|
+
mode = "single",
|
|
157
|
+
rangeValue,
|
|
158
|
+
onRangeChange,
|
|
159
|
+
minDate,
|
|
160
|
+
maxDate,
|
|
161
|
+
disabledDates,
|
|
162
|
+
firstDayOfWeek = DEFAULT_FIRST_DAY_OF_WEEK,
|
|
163
|
+
locale = DEFAULT_LOCALE,
|
|
164
|
+
style,
|
|
165
|
+
testID
|
|
166
|
+
}) {
|
|
167
|
+
const theme = useTheme();
|
|
168
|
+
const chrome = useMemo(() => resolveCalendarChromeColors(theme.colors), [theme.colors]);
|
|
169
|
+
const range = rangeValue ?? EMPTY_RANGE;
|
|
170
|
+
const anchor = mode === "range" ? range.start : value ?? null;
|
|
171
|
+
const [cursor, setCursor] = useState(() => monthCursorOf(clampToRange(anchor ?? new Date(), minDate, maxDate)));
|
|
172
|
+
const [lastAnchorOrdinal, setLastAnchorOrdinal] = useState(anchor === null ? null : dayOrdinal(anchor));
|
|
173
|
+
const [quickJumpOpen, setQuickJumpOpen] = useState(false);
|
|
174
|
+
const [focusedDate, setFocusedDate] = useState(() => clampToRange(anchor ?? new Date(), minDate, maxDate));
|
|
175
|
+
const gridRef = useRef(null);
|
|
176
|
+
|
|
177
|
+
// React's "adjust state while rendering" pattern — a new selection from the caller pulls the grid
|
|
178
|
+
// to its month without an effect (and without the extra committed frame one would cost).
|
|
179
|
+
if (anchor !== null && dayOrdinal(anchor) !== lastAnchorOrdinal) {
|
|
180
|
+
setLastAnchorOrdinal(dayOrdinal(anchor));
|
|
181
|
+
setCursor(monthCursorOf(anchor));
|
|
182
|
+
}
|
|
183
|
+
const today = useMemo(() => atNoon(new Date()), []);
|
|
184
|
+
const weeks = useMemo(() => chunkIntoWeeks(buildMonthGrid(cursor.year, cursor.month, firstDayOfWeek)), [cursor.year, cursor.month, firstDayOfWeek]);
|
|
185
|
+
const weekdays = useMemo(() => weekdayLabels(firstDayOfWeek, locale), [firstDayOfWeek, locale]);
|
|
186
|
+
const months = useMemo(() => monthShortNames(locale), [locale]);
|
|
187
|
+
const selectDay = onSelect ?? onChange;
|
|
188
|
+
const handleDayPress = useCallback(date => {
|
|
189
|
+
setFocusedDate(atNoon(date));
|
|
190
|
+
if (mode === "range") {
|
|
191
|
+
onRangeChange?.(nextRangeSelection(range, date));
|
|
192
|
+
return;
|
|
193
|
+
}
|
|
194
|
+
selectDay?.(atNoon(date));
|
|
195
|
+
}, [mode, selectDay, onRangeChange, range]);
|
|
196
|
+
const step = quickJumpOpen ? 12 : 1;
|
|
197
|
+
const previousCursor = addMonths(cursor, -step);
|
|
198
|
+
const nextCursor = addMonths(cursor, step);
|
|
199
|
+
const canGoBack = quickJumpOpen ? canShowYear(previousCursor.year, minDate, maxDate) : canShowMonth(previousCursor, minDate, maxDate);
|
|
200
|
+
const canGoForward = quickJumpOpen ? canShowYear(nextCursor.year, minDate, maxDate) : canShowMonth(nextCursor, minDate, maxDate);
|
|
201
|
+
const goBack = useCallback(() => setCursor(current => addMonths(current, -step)), [step]);
|
|
202
|
+
const goForward = useCallback(() => setCursor(current => addMonths(current, step)), [step]);
|
|
203
|
+
const toggleQuickJump = useCallback(() => setQuickJumpOpen(open => !open), []);
|
|
204
|
+
const selectMonth = useCallback(month => {
|
|
205
|
+
setCursor(current => ({
|
|
206
|
+
year: current.year,
|
|
207
|
+
month
|
|
208
|
+
}));
|
|
209
|
+
setQuickJumpOpen(false);
|
|
210
|
+
}, []);
|
|
211
|
+
const rootStyle = useMemo(() => [calendarStructure(theme), {
|
|
212
|
+
backgroundColor: chrome.surface
|
|
213
|
+
}, style], [theme, chrome.surface, style]);
|
|
214
|
+
const headerStructure = useMemo(() => calendarHeaderStructure(theme), [theme]);
|
|
215
|
+
const quickJumpGrid = useMemo(() => quickJumpGridStructure(theme), [theme]);
|
|
216
|
+
const gridStructure = useMemo(() => calendarGridStructure(theme), [theme]);
|
|
217
|
+
const weekRowStructure = useMemo(() => calendarWeekRowStructure(theme), [theme]);
|
|
218
|
+
const weekdayCellStructure = useMemo(() => calendarWeekdayCellStructure(theme), [theme]);
|
|
219
|
+
const weekdayLabelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
220
|
+
fontSize: theme.fontSizes.xs,
|
|
221
|
+
color: chrome.weekdayLabel
|
|
222
|
+
}], [theme, chrome.weekdayLabel]);
|
|
223
|
+
const headerLabelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
224
|
+
fontSize: theme.fontSizes.md,
|
|
225
|
+
color: chrome.headerLabel
|
|
226
|
+
}], [theme, chrome.headerLabel]);
|
|
227
|
+
const headerButtonBase = useMemo(() => calendarHeaderButtonStructure(theme), [theme]);
|
|
228
|
+
const headerButtonStyle = useCallback(({
|
|
229
|
+
pressed
|
|
230
|
+
}) => [headerButtonBase, pressed && {
|
|
231
|
+
backgroundColor: chrome.headerPressed
|
|
232
|
+
}], [headerButtonBase, chrome.headerPressed]);
|
|
233
|
+
const weekDescriptors = useMemo(() => weeks.map(week => week.map(day => {
|
|
234
|
+
const disabled = isDateDisabled(day.date, {
|
|
235
|
+
minDate,
|
|
236
|
+
maxDate,
|
|
237
|
+
disabledDates
|
|
238
|
+
});
|
|
239
|
+
const selected = mode === "range" ? isSameDay(day.date, range.start) || isSameDay(day.date, range.end) : isSameDay(day.date, value);
|
|
240
|
+
return {
|
|
241
|
+
key: toDayKey(day.date),
|
|
242
|
+
date: day.date,
|
|
243
|
+
dayOfMonth: day.dayOfMonth,
|
|
244
|
+
adjacent: !day.inCurrentMonth,
|
|
245
|
+
selected,
|
|
246
|
+
inRange: mode === "range" && isWithinRange(day.date, range.start, range.end),
|
|
247
|
+
disabled,
|
|
248
|
+
today: isSameDay(day.date, today)
|
|
249
|
+
};
|
|
250
|
+
})), [weeks, minDate, maxDate, disabledDates, mode, range.start, range.end, value, today]);
|
|
251
|
+
|
|
252
|
+
// The roving tab stop. Falling back to the first day of the displayed month matters: paging with
|
|
253
|
+
// ‹ › can leave `focusedDate` outside the six weeks on screen, and a grid with no `tabIndex={0}`
|
|
254
|
+
// cell would have no tab stop at all — strictly worse than the 42 it replaces.
|
|
255
|
+
const focusedKey = toDayKey(focusedDate);
|
|
256
|
+
const activeDay = useMemo(() => {
|
|
257
|
+
const flat = weekDescriptors.flat();
|
|
258
|
+
return flat.find(day => day.key === focusedKey) ?? flat.find(day => !day.adjacent) ?? flat[0];
|
|
259
|
+
}, [weekDescriptors, focusedKey]);
|
|
260
|
+
const activeKey = activeDay?.key;
|
|
261
|
+
const handleGridMove = useCallback(move => {
|
|
262
|
+
const from = activeDay?.date;
|
|
263
|
+
if (from === undefined) return;
|
|
264
|
+
const next = clampToRange(resolveCalendarFocusMove(move, from, firstDayOfWeek), minDate, maxDate);
|
|
265
|
+
setFocusedDate(next);
|
|
266
|
+
setCursor(current => current.year === next.getFullYear() && current.month === next.getMonth() ? current : monthCursorOf(next));
|
|
267
|
+
}, [activeDay, firstDayOfWeek, minDate, maxDate]);
|
|
268
|
+
useCalendarGridKeys(gridRef, !quickJumpOpen, handleGridMove);
|
|
269
|
+
useCalendarGridFocus(gridRef, activeKey ?? "", !quickJumpOpen);
|
|
270
|
+
const quickJumpDescriptors = useMemo(() => months.map((name, month) => ({
|
|
271
|
+
name,
|
|
272
|
+
month,
|
|
273
|
+
selected: month === cursor.month,
|
|
274
|
+
disabled: !canShowMonth({
|
|
275
|
+
year: cursor.year,
|
|
276
|
+
month
|
|
277
|
+
}, minDate, maxDate)
|
|
278
|
+
})), [months, cursor.month, cursor.year, minDate, maxDate]);
|
|
279
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
280
|
+
testID: testID,
|
|
281
|
+
style: rootStyle,
|
|
282
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
283
|
+
style: headerStructure,
|
|
284
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
285
|
+
icon: "chevron-left",
|
|
286
|
+
accessibilityLabel: `Previous ${quickJumpOpen ? "year" : "month"}`,
|
|
287
|
+
variant: "ghost",
|
|
288
|
+
tone: "neutral",
|
|
289
|
+
size: "sm",
|
|
290
|
+
disabled: !canGoBack,
|
|
291
|
+
onPress: goBack,
|
|
292
|
+
testID: testID ? `${testID}-previous` : undefined
|
|
293
|
+
}), /*#__PURE__*/_jsxs(Pressable, {
|
|
294
|
+
testID: testID ? `${testID}-header` : undefined,
|
|
295
|
+
accessibilityRole: "button",
|
|
296
|
+
accessibilityLabel: quickJumpOpen ? formatYear(cursor.year, locale) : formatMonthYear(cursor, locale),
|
|
297
|
+
"aria-expanded": quickJumpOpen,
|
|
298
|
+
onPress: toggleQuickJump,
|
|
299
|
+
style: headerButtonStyle,
|
|
300
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
301
|
+
numberOfLines: 1,
|
|
302
|
+
style: headerLabelStyle,
|
|
303
|
+
children: quickJumpOpen ? formatYear(cursor.year, locale) : formatMonthYear(cursor, locale)
|
|
304
|
+
}), /*#__PURE__*/_jsx(Icon, {
|
|
305
|
+
name: quickJumpOpen ? "chevron-up" : "chevron-down",
|
|
306
|
+
size: HEADER_ICON_SIZE,
|
|
307
|
+
color: chrome.headerIcon,
|
|
308
|
+
strokeWidth: ICON_STROKE
|
|
309
|
+
})]
|
|
310
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
311
|
+
icon: "chevron-right",
|
|
312
|
+
accessibilityLabel: `Next ${quickJumpOpen ? "year" : "month"}`,
|
|
313
|
+
variant: "ghost",
|
|
314
|
+
tone: "neutral",
|
|
315
|
+
size: "sm",
|
|
316
|
+
disabled: !canGoForward,
|
|
317
|
+
onPress: goForward,
|
|
318
|
+
testID: testID ? `${testID}-next` : undefined
|
|
319
|
+
})]
|
|
320
|
+
}), quickJumpOpen ? /*#__PURE__*/_jsx(View, {
|
|
321
|
+
style: quickJumpGrid,
|
|
322
|
+
children: quickJumpDescriptors.map(month => /*#__PURE__*/_jsx(QuickJumpCell, {
|
|
323
|
+
month: month.month,
|
|
324
|
+
name: month.name,
|
|
325
|
+
selected: month.selected,
|
|
326
|
+
disabled: month.disabled,
|
|
327
|
+
theme: theme,
|
|
328
|
+
onPress: selectMonth,
|
|
329
|
+
testID: testID ? `${testID}-month-${month.month}` : undefined
|
|
330
|
+
}, month.name))
|
|
331
|
+
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
332
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
333
|
+
style: weekRowStructure,
|
|
334
|
+
children: weekdays.map((weekday, index) => /*#__PURE__*/_jsx(View
|
|
335
|
+
// Two weekdays can share an abbreviation in some locales, so the slot index is the key.
|
|
336
|
+
, {
|
|
337
|
+
"aria-hidden": true,
|
|
338
|
+
style: weekdayCellStructure,
|
|
339
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
340
|
+
style: weekdayLabelStyle,
|
|
341
|
+
children: weekday
|
|
342
|
+
})
|
|
343
|
+
}, `weekday-${index}`))
|
|
344
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
345
|
+
ref: gridRef,
|
|
346
|
+
style: gridStructure,
|
|
347
|
+
children: weekDescriptors.map(week => /*#__PURE__*/_jsx(View, {
|
|
348
|
+
style: weekRowStructure,
|
|
349
|
+
children: week.map(day => /*#__PURE__*/_jsx(CalendarDayCell, {
|
|
350
|
+
date: day.date,
|
|
351
|
+
dayOfMonth: day.dayOfMonth,
|
|
352
|
+
adjacent: day.adjacent,
|
|
353
|
+
selected: day.selected,
|
|
354
|
+
inRange: day.inRange,
|
|
355
|
+
disabled: day.disabled,
|
|
356
|
+
today: day.today,
|
|
357
|
+
tabIndex: day.key === activeKey ? 0 : -1,
|
|
358
|
+
locale: locale,
|
|
359
|
+
theme: theme,
|
|
360
|
+
onPress: handleDayPress,
|
|
361
|
+
testID: testID ? `${testID}-day-${day.key}` : undefined
|
|
362
|
+
}, day.key))
|
|
363
|
+
}, week[0]?.key ?? "week"))
|
|
364
|
+
})]
|
|
365
|
+
})]
|
|
366
|
+
});
|
|
367
|
+
});
|
|
368
|
+
//# sourceMappingURL=Calendar.js.map
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Native/default counterpart of `Calendar.keys.web.ts`. A physical keyboard driving a month grid is
|
|
5
|
+
* a web concern, so both hooks are no-ops here with identical signatures.
|
|
6
|
+
*
|
|
7
|
+
* Same `.ts` / `.web.ts` pair `core/a11y/keyboard.ts` and `../modal/renderWebPortal.ts` use: Metro
|
|
8
|
+
* resolves the `.web.ts` only for a web bundle, so no DOM code enters the native graph, and Jest
|
|
9
|
+
* (whose `react-native` preset has no `web` platform) always resolves THIS file — the web half is
|
|
10
|
+
* tested by importing it explicitly.
|
|
11
|
+
*
|
|
12
|
+
* These live in the module rather than in `core/a11y` on purpose: `useRovingKeys` models one flat
|
|
13
|
+
* list on one axis, and a month grid is 2-D over Dates (week wrapping, month paging). Forcing it
|
|
14
|
+
* into that helper would distort both.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
export function useCalendarGridKeys(_ref, _active, _onMove) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
export function useCalendarGridFocus(_ref, _focusedKey, _active) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=Calendar.keys.js.map
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Web implementation of the Calendar day-grid's keyboard navigation. Metro only resolves this file
|
|
5
|
+
* for a web bundle (see `Calendar.keys.ts`), so it is the one place here that may assume a DOM.
|
|
6
|
+
*
|
|
7
|
+
* The DOM types are hand-written for the same reason `core/a11y/keyboard.web.ts` writes its own:
|
|
8
|
+
* `tsconfig.json` sets `"lib": ["ESNext"]`, `any` is lint-banned, and augmenting `react-native`'s
|
|
9
|
+
* types would ship through `lib/typescript/**`. A module-local structural surface plus
|
|
10
|
+
* `declare const document` erases entirely at emit.
|
|
11
|
+
*
|
|
12
|
+
* This file owns ONLY the DOM half — which key means which move, and moving real focus. Every date
|
|
13
|
+
* calculation lives in `resolveCalendarFocusMove` (`DatePicker.variants.ts`), pure and unit-tested.
|
|
14
|
+
*
|
|
15
|
+
* Enter and Space are deliberately unhandled: the day cells are `role="button"`, which
|
|
16
|
+
* `react-native-web`'s `PressResponder.isValidKeyPress` already presses on both keys. Handling them
|
|
17
|
+
* here too would select the day twice.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
import { useEffect, useRef } from "react";
|
|
21
|
+
/** `typeof` rather than a null check: a bare `document` reference throws outside a browser. */
|
|
22
|
+
function getDocument() {
|
|
23
|
+
return typeof document === "undefined" ? undefined : document;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** `react-native-web` forwards a component's ref to the host element it renders — the same
|
|
27
|
+
* "assume a DOM in the `.web` file only" cast `renderWebPortal.web.ts` established. */
|
|
28
|
+
function domNode(ref) {
|
|
29
|
+
return ref.current ?? null;
|
|
30
|
+
}
|
|
31
|
+
const MOVE_BY_KEY = {
|
|
32
|
+
ArrowLeft: "prevDay",
|
|
33
|
+
ArrowRight: "nextDay",
|
|
34
|
+
ArrowUp: "prevWeek",
|
|
35
|
+
ArrowDown: "nextWeek",
|
|
36
|
+
Home: "weekStart",
|
|
37
|
+
End: "weekEnd",
|
|
38
|
+
PageUp: "prevMonth",
|
|
39
|
+
PageDown: "nextMonth"
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Arrow/Home/End/PageUp/PageDown on the grid container. Listens on the CONTAINER (capture phase),
|
|
44
|
+
* never on `document`, so two calendars on one page never fight over the same arrow key, and so an
|
|
45
|
+
* arrow pressed on the ‹ › header buttons is left alone.
|
|
46
|
+
*/
|
|
47
|
+
export function useCalendarGridKeys(ref, active, onMove) {
|
|
48
|
+
const onMoveRef = useRef(onMove);
|
|
49
|
+
onMoveRef.current = onMove;
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (!active) return;
|
|
52
|
+
const node = domNode(ref);
|
|
53
|
+
if (node === null) return;
|
|
54
|
+
const handleKeyDown = event => {
|
|
55
|
+
const move = MOVE_BY_KEY[event.key];
|
|
56
|
+
if (move === undefined) return;
|
|
57
|
+
event.preventDefault();
|
|
58
|
+
onMoveRef.current(move);
|
|
59
|
+
};
|
|
60
|
+
node.addEventListener("keydown", handleKeyDown, true);
|
|
61
|
+
return () => node.removeEventListener("keydown", handleKeyDown, true);
|
|
62
|
+
}, [ref, active]);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Moves real DOM focus onto whichever day cell currently owns `tabIndex={0}`, after `focusedKey`
|
|
67
|
+
* changed the roving index.
|
|
68
|
+
*
|
|
69
|
+
* The `contains` guard is the whole safety of this hook: it only ever moves focus that is ALREADY
|
|
70
|
+
* inside the grid. Without it, a caller's own selection (or the first mount) would rip focus out of
|
|
71
|
+
* the field that opened the picker.
|
|
72
|
+
*/
|
|
73
|
+
export function useCalendarGridFocus(ref, focusedKey, active) {
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
if (!active) return;
|
|
76
|
+
const doc = getDocument();
|
|
77
|
+
const node = domNode(ref);
|
|
78
|
+
if (doc === undefined || node === null) return;
|
|
79
|
+
if (!node.contains(doc.activeElement)) return;
|
|
80
|
+
node.querySelector('[tabindex="0"]')?.focus();
|
|
81
|
+
}, [ref, focusedKey, active]);
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=Calendar.keys.web.js.map
|