pixelize-native-library 1.0.7 → 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 -153
- 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 +37 -126
- package/lib/module/modules/bottom-nav/BottomNav.variants.js +28 -9
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +56 -8
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +133 -114
- package/lib/module/modules/bottom-nav/BottomNavTab.js +138 -0
- package/lib/module/modules/bottom-nav/MODULE.md +21 -6
- 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 +98 -48
- package/lib/module/modules/charts/ChartLegend.js +154 -0
- package/lib/module/modules/charts/Charts.variants.js +524 -1
- package/lib/module/modules/charts/DonutChart.js +100 -65
- package/lib/module/modules/charts/LineChart.js +179 -0
- package/lib/module/modules/charts/MODULE.md +148 -22
- package/lib/module/modules/charts/PieChart.js +140 -0
- package/lib/module/modules/charts/Sparkline.js +5 -4
- package/lib/module/modules/charts/index.js +3 -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 +45 -28
- package/lib/module/modules/list-item/MODULE.md +6 -0
- package/lib/module/modules/markdown/MODULE.md +32 -5
- package/lib/module/modules/markdown/Markdown.js +54 -20
- package/lib/module/modules/markdown/Markdown.variants.js +6 -1
- package/lib/module/modules/markdown/parseMarkdown.js +3 -3
- 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 +84 -18
- 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 +81 -14
- package/lib/module/modules/select/Select.js +196 -94
- package/lib/module/modules/select/Select.variants.js +28 -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 +9 -2
- package/lib/module/modules/stat-tile/StatTile.js +70 -33
- package/lib/module/modules/stat-tile/StatTile.variants.js +6 -4
- 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 +39 -7
- package/lib/module/modules/timeline/Timeline.js +151 -77
- package/lib/module/modules/timeline/Timeline.variants.js +13 -0
- package/lib/module/modules/toast/MODULE.md +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/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 -94
- package/lib/typescript/core/icon/names.d.ts +2 -0
- package/lib/typescript/core/icon/resolve.d.ts +4 -0
- package/lib/typescript/core/icon/types.d.ts +13 -0
- package/lib/typescript/core/list/VirtualList.d.ts +55 -0
- package/lib/typescript/core/list/index.d.ts +3 -0
- package/lib/typescript/core/media/MediaImage.d.ts +28 -0
- package/lib/typescript/core/media/expoImage.d.ts +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 +9 -8
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +22 -9
- 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/ChartLegend.d.ts +16 -0
- package/lib/typescript/modules/charts/Charts.variants.d.ts +201 -2
- package/lib/typescript/modules/charts/DonutChart.d.ts +3 -0
- package/lib/typescript/modules/charts/LineChart.d.ts +30 -0
- package/lib/typescript/modules/charts/PieChart.d.ts +18 -0
- package/lib/typescript/modules/charts/index.d.ts +6 -0
- package/lib/typescript/modules/checkbox/Checkbox.d.ts +4 -1
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +14 -9
- package/lib/typescript/modules/chip/Chip.d.ts +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 +6 -0
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts +1 -1
- package/lib/typescript/modules/markdown/Markdown.d.ts +6 -0
- package/lib/typescript/modules/markdown/Markdown.variants.d.ts +8 -2
- package/lib/typescript/modules/markdown/parseMarkdown.d.ts +3 -2
- package/lib/typescript/modules/menu/Menu.d.ts +8 -18
- package/lib/typescript/modules/menu/Menu.variants.d.ts +8 -1
- package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +25 -0
- package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +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 +1 -16
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +24 -5
- package/lib/typescript/modules/number-input/NumberInput.d.ts +6 -0
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +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 +1 -14
- package/lib/typescript/modules/select/Select.variants.d.ts +24 -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 +4 -0
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +7 -5
- 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 +9 -13
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts +17 -1
- package/lib/typescript/modules/toast/Toast.d.ts +13 -3
- package/lib/typescript/modules/toast/Toast.variants.d.ts +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/roles/index.d.ts +7 -0
- package/package.json +193 -19
- package/registry.json +172 -2
- package/lib/module/core/a11y/index.js.map +0 -1
- package/lib/module/core/icon/index.js.map +0 -1
- package/lib/module/core/style/index.js.map +0 -1
- package/lib/module/core/style/layoutStyle.js.map +0 -1
- package/lib/module/core/style/variants.js.map +0 -1
- package/lib/module/index.js.map +0 -1
- package/lib/module/modules/accordion/Accordion.js.map +0 -1
- package/lib/module/modules/accordion/Accordion.variants.js.map +0 -1
- package/lib/module/modules/accordion/index.js.map +0 -1
- package/lib/module/modules/alert-dialog/AlertDialog.js.map +0 -1
- package/lib/module/modules/alert-dialog/AlertDialog.variants.js.map +0 -1
- package/lib/module/modules/alert-dialog/index.js.map +0 -1
- package/lib/module/modules/avatar/Avatar.js.map +0 -1
- package/lib/module/modules/avatar/Avatar.variants.js.map +0 -1
- package/lib/module/modules/avatar/index.js.map +0 -1
- package/lib/module/modules/badge/Badge.js.map +0 -1
- package/lib/module/modules/badge/Badge.variants.js.map +0 -1
- package/lib/module/modules/badge/index.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.search.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.variants.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js.map +0 -1
- package/lib/module/modules/bottom-nav/index.js.map +0 -1
- package/lib/module/modules/button/Button.js.map +0 -1
- package/lib/module/modules/button/Button.variants.js.map +0 -1
- package/lib/module/modules/button/index.js.map +0 -1
- package/lib/module/modules/button-group/ButtonGroup.js.map +0 -1
- package/lib/module/modules/button-group/ButtonGroup.variants.js.map +0 -1
- package/lib/module/modules/button-group/index.js.map +0 -1
- package/lib/module/modules/card/Card.js.map +0 -1
- package/lib/module/modules/card/Card.variants.js.map +0 -1
- package/lib/module/modules/card/index.js.map +0 -1
- package/lib/module/modules/charts/BarList.js.map +0 -1
- package/lib/module/modules/charts/Charts.variants.js.map +0 -1
- package/lib/module/modules/charts/DonutChart.js.map +0 -1
- package/lib/module/modules/charts/Sparkline.js.map +0 -1
- package/lib/module/modules/charts/index.js.map +0 -1
- package/lib/module/modules/checkbox/Checkbox.js.map +0 -1
- package/lib/module/modules/checkbox/Checkbox.variants.js.map +0 -1
- package/lib/module/modules/checkbox/index.js.map +0 -1
- package/lib/module/modules/divider/Divider.js.map +0 -1
- package/lib/module/modules/divider/Divider.variants.js.map +0 -1
- package/lib/module/modules/divider/index.js.map +0 -1
- package/lib/module/modules/drawer/Drawer.js.map +0 -1
- package/lib/module/modules/drawer/Drawer.variants.js.map +0 -1
- package/lib/module/modules/drawer/index.js.map +0 -1
- package/lib/module/modules/empty-state/EmptyState.js.map +0 -1
- package/lib/module/modules/empty-state/EmptyState.variants.js.map +0 -1
- package/lib/module/modules/empty-state/index.js.map +0 -1
- package/lib/module/modules/file-upload/FileUpload.js.map +0 -1
- package/lib/module/modules/file-upload/FileUpload.variants.js.map +0 -1
- package/lib/module/modules/file-upload/index.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterChip.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheet.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheetBody.js.map +0 -1
- package/lib/module/modules/filter-sheet/filterSheet.helpers.js.map +0 -1
- package/lib/module/modules/filter-sheet/index.js.map +0 -1
- package/lib/module/modules/input/Input.js.map +0 -1
- package/lib/module/modules/input/Input.variants.js.map +0 -1
- package/lib/module/modules/input/index.js.map +0 -1
- package/lib/module/modules/list-item/ListItem.js.map +0 -1
- package/lib/module/modules/list-item/ListItem.variants.js.map +0 -1
- package/lib/module/modules/list-item/index.js.map +0 -1
- package/lib/module/modules/markdown/Markdown.js.map +0 -1
- package/lib/module/modules/markdown/Markdown.variants.js.map +0 -1
- package/lib/module/modules/markdown/index.js.map +0 -1
- package/lib/module/modules/markdown/parseMarkdown.js.map +0 -1
- package/lib/module/modules/menu/Menu.js.map +0 -1
- package/lib/module/modules/menu/Menu.variants.js.map +0 -1
- package/lib/module/modules/menu/index.js.map +0 -1
- package/lib/module/modules/modal/Modal.js.map +0 -1
- package/lib/module/modules/modal/Modal.variants.js.map +0 -1
- package/lib/module/modules/modal/ModalPortalContext.js.map +0 -1
- package/lib/module/modules/modal/ModalPortalProvider.js.map +0 -1
- package/lib/module/modules/modal/index.js.map +0 -1
- package/lib/module/modules/modal/renderWebPortal.js.map +0 -1
- package/lib/module/modules/modal/renderWebPortal.web.js.map +0 -1
- package/lib/module/modules/multi-select/MultiSelect.js.map +0 -1
- package/lib/module/modules/multi-select/MultiSelect.variants.js.map +0 -1
- package/lib/module/modules/multi-select/index.js.map +0 -1
- package/lib/module/modules/number-input/NumberInput.js.map +0 -1
- package/lib/module/modules/number-input/NumberInput.variants.js.map +0 -1
- package/lib/module/modules/number-input/index.js.map +0 -1
- package/lib/module/modules/pin-input/PinInput.js.map +0 -1
- package/lib/module/modules/pin-input/PinInput.variants.js.map +0 -1
- package/lib/module/modules/pin-input/index.js.map +0 -1
- package/lib/module/modules/progress-bar/ProgressBar.js.map +0 -1
- package/lib/module/modules/progress-bar/ProgressBar.variants.js.map +0 -1
- package/lib/module/modules/progress-bar/index.js.map +0 -1
- package/lib/module/modules/radio-group/RadioGroup.js.map +0 -1
- package/lib/module/modules/radio-group/RadioGroup.variants.js.map +0 -1
- package/lib/module/modules/radio-group/index.js.map +0 -1
- package/lib/module/modules/reorder/Reorder.js.map +0 -1
- package/lib/module/modules/reorder/Reorder.variants.js.map +0 -1
- package/lib/module/modules/reorder/index.js.map +0 -1
- package/lib/module/modules/select/Select.js.map +0 -1
- package/lib/module/modules/select/Select.variants.js.map +0 -1
- package/lib/module/modules/select/index.js.map +0 -1
- package/lib/module/modules/skeleton/Skeleton.js.map +0 -1
- package/lib/module/modules/skeleton/Skeleton.variants.js.map +0 -1
- package/lib/module/modules/skeleton/index.js.map +0 -1
- package/lib/module/modules/slider/Slider.js.map +0 -1
- package/lib/module/modules/slider/Slider.variants.js.map +0 -1
- package/lib/module/modules/slider/index.js.map +0 -1
- package/lib/module/modules/spinner/Spinner.js.map +0 -1
- package/lib/module/modules/spinner/Spinner.variants.js.map +0 -1
- package/lib/module/modules/spinner/index.js.map +0 -1
- package/lib/module/modules/stat-tile/StatTile.js.map +0 -1
- package/lib/module/modules/stat-tile/StatTile.variants.js.map +0 -1
- package/lib/module/modules/stat-tile/index.js.map +0 -1
- package/lib/module/modules/stepper/Stepper.js.map +0 -1
- package/lib/module/modules/stepper/Stepper.variants.js.map +0 -1
- package/lib/module/modules/stepper/index.js.map +0 -1
- package/lib/module/modules/switch/Switch.js.map +0 -1
- package/lib/module/modules/switch/Switch.variants.js.map +0 -1
- package/lib/module/modules/switch/index.js.map +0 -1
- package/lib/module/modules/tabs/Tabs.js.map +0 -1
- package/lib/module/modules/tabs/Tabs.variants.js.map +0 -1
- package/lib/module/modules/tabs/index.js.map +0 -1
- package/lib/module/modules/textarea/Textarea.js.map +0 -1
- package/lib/module/modules/textarea/Textarea.variants.js.map +0 -1
- package/lib/module/modules/textarea/index.js.map +0 -1
- package/lib/module/modules/timeline/Timeline.js.map +0 -1
- package/lib/module/modules/timeline/Timeline.variants.js.map +0 -1
- package/lib/module/modules/timeline/index.js.map +0 -1
- package/lib/module/modules/toast/Toast.js.map +0 -1
- package/lib/module/modules/toast/Toast.variants.js.map +0 -1
- package/lib/module/modules/toast/index.js.map +0 -1
- package/lib/module/modules/tooltip/Tooltip.js.map +0 -1
- package/lib/module/modules/tooltip/Tooltip.variants.js.map +0 -1
- package/lib/module/modules/tooltip/index.js.map +0 -1
- package/lib/module/theme/index.js.map +0 -1
- package/lib/module/theme/platform/colorScheme.native.js.map +0 -1
- package/lib/module/theme/platform/elevation.native.js.map +0 -1
- package/lib/module/theme/platform/fonts.native.js.map +0 -1
- package/lib/module/theme/platform/index.js.map +0 -1
- package/lib/module/theme/platform/units.native.js.map +0 -1
- package/lib/module/theme/provider/PixelizeProvider.js.map +0 -1
- package/lib/module/theme/provider/colorModeStorage.js.map +0 -1
- package/lib/module/theme/provider/index.js.map +0 -1
- package/lib/module/theme/provider/useTheme.js.map +0 -1
- package/lib/module/theme/provider/useThemeColors.js.map +0 -1
- package/lib/module/theme/provider/useThemeMode.js.map +0 -1
- package/lib/module/theme/tokens/brands/emerald/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/emerald/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/index.js.map +0 -1
- package/lib/module/theme/tokens/brands/lavender/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/lavender/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/meadow/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/meadow/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/radiant/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/radiant/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/rosewood/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/skyline/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/skyline/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/slate/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/slate/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/storefront/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/storefront/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/zinc/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/zinc/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/builders/accentText.js.map +0 -1
- package/lib/module/theme/tokens/builders/buildBrandTokens.js.map +0 -1
- package/lib/module/theme/tokens/builders/buildDarkPalette.js.map +0 -1
- package/lib/module/theme/tokens/builders/color.js.map +0 -1
- package/lib/module/theme/tokens/index.js.map +0 -1
- package/lib/module/theme/tokens/primitives/borderWidths.js.map +0 -1
- package/lib/module/theme/tokens/primitives/breakpoints.js.map +0 -1
- package/lib/module/theme/tokens/primitives/elevation.js.map +0 -1
- package/lib/module/theme/tokens/primitives/fontSizes.js.map +0 -1
- package/lib/module/theme/tokens/primitives/fontWeights.js.map +0 -1
- package/lib/module/theme/tokens/primitives/index.js.map +0 -1
- package/lib/module/theme/tokens/primitives/letterSpacings.js.map +0 -1
- package/lib/module/theme/tokens/primitives/lineHeights.js.map +0 -1
- package/lib/module/theme/tokens/primitives/radii.js.map +0 -1
- package/lib/module/theme/tokens/primitives/sizes.js.map +0 -1
- package/lib/module/theme/tokens/primitives/space.js.map +0 -1
- package/lib/module/theme/tokens/primitives/zIndices.js.map +0 -1
- package/lib/module/theme/tokens/roles/index.js.map +0 -1
- package/lib/module/theme/tokens/types.js.map +0 -1
- package/lib/typescript/core/a11y/index.d.ts.map +0 -1
- package/lib/typescript/core/icon/index.d.ts.map +0 -1
- package/lib/typescript/core/style/index.d.ts.map +0 -1
- package/lib/typescript/core/style/layoutStyle.d.ts.map +0 -1
- package/lib/typescript/core/style/variants.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/Accordion.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/index.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/index.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/Avatar.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/index.d.ts.map +0 -1
- package/lib/typescript/modules/badge/Badge.d.ts.map +0 -1
- package/lib/typescript/modules/badge/Badge.variants.d.ts.map +0 -1
- package/lib/typescript/modules/badge/index.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNavIconWithBadge.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/index.d.ts.map +0 -1
- package/lib/typescript/modules/button/Button.d.ts.map +0 -1
- package/lib/typescript/modules/button/Button.variants.d.ts.map +0 -1
- package/lib/typescript/modules/button/index.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/index.d.ts.map +0 -1
- package/lib/typescript/modules/card/Card.d.ts.map +0 -1
- package/lib/typescript/modules/card/Card.variants.d.ts.map +0 -1
- package/lib/typescript/modules/card/index.d.ts.map +0 -1
- package/lib/typescript/modules/charts/BarList.d.ts.map +0 -1
- package/lib/typescript/modules/charts/Charts.variants.d.ts.map +0 -1
- package/lib/typescript/modules/charts/DonutChart.d.ts.map +0 -1
- package/lib/typescript/modules/charts/Sparkline.d.ts.map +0 -1
- package/lib/typescript/modules/charts/index.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/Checkbox.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/index.d.ts.map +0 -1
- package/lib/typescript/modules/divider/Divider.d.ts.map +0 -1
- package/lib/typescript/modules/divider/Divider.variants.d.ts.map +0 -1
- package/lib/typescript/modules/divider/index.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/Drawer.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/Drawer.variants.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/index.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/EmptyState.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/index.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/FileUpload.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/index.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterChip.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/index.d.ts.map +0 -1
- package/lib/typescript/modules/input/Input.d.ts.map +0 -1
- package/lib/typescript/modules/input/Input.variants.d.ts.map +0 -1
- package/lib/typescript/modules/input/index.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/ListItem.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/index.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/Markdown.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/Markdown.variants.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/index.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/parseMarkdown.d.ts.map +0 -1
- package/lib/typescript/modules/menu/Menu.d.ts.map +0 -1
- package/lib/typescript/modules/menu/Menu.variants.d.ts.map +0 -1
- package/lib/typescript/modules/menu/index.d.ts.map +0 -1
- package/lib/typescript/modules/modal/Modal.d.ts.map +0 -1
- package/lib/typescript/modules/modal/Modal.variants.d.ts.map +0 -1
- package/lib/typescript/modules/modal/ModalPortalContext.d.ts.map +0 -1
- package/lib/typescript/modules/modal/ModalPortalProvider.d.ts.map +0 -1
- package/lib/typescript/modules/modal/index.d.ts.map +0 -1
- package/lib/typescript/modules/modal/renderWebPortal.d.ts.map +0 -1
- package/lib/typescript/modules/modal/renderWebPortal.web.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/index.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/NumberInput.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/index.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/PinInput.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/index.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/index.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/index.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/Reorder.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/index.d.ts.map +0 -1
- package/lib/typescript/modules/select/Select.d.ts.map +0 -1
- package/lib/typescript/modules/select/Select.variants.d.ts.map +0 -1
- package/lib/typescript/modules/select/index.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/Skeleton.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/index.d.ts.map +0 -1
- package/lib/typescript/modules/slider/Slider.d.ts.map +0 -1
- package/lib/typescript/modules/slider/Slider.variants.d.ts.map +0 -1
- package/lib/typescript/modules/slider/index.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/Spinner.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/Spinner.variants.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/index.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/StatTile.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/index.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/Stepper.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/index.d.ts.map +0 -1
- package/lib/typescript/modules/switch/Switch.d.ts.map +0 -1
- package/lib/typescript/modules/switch/Switch.variants.d.ts.map +0 -1
- package/lib/typescript/modules/switch/index.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/Tabs.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/index.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/Textarea.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/index.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/Timeline.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/index.d.ts.map +0 -1
- package/lib/typescript/modules/toast/Toast.d.ts.map +0 -1
- package/lib/typescript/modules/toast/Toast.variants.d.ts.map +0 -1
- package/lib/typescript/modules/toast/index.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/Tooltip.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/index.d.ts.map +0 -1
- package/lib/typescript/theme/index.d.ts.map +0 -1
- package/lib/typescript/theme/platform/colorScheme.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/elevation.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/fonts.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/index.d.ts.map +0 -1
- package/lib/typescript/theme/platform/units.native.d.ts.map +0 -1
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts.map +0 -1
- package/lib/typescript/theme/provider/colorModeStorage.d.ts.map +0 -1
- package/lib/typescript/theme/provider/index.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useTheme.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useThemeColors.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useThemeMode.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/accentText.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/color.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/elevation.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/radii.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/sizes.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/space.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/zIndices.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/roles/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/types.d.ts.map +0 -1
|
@@ -17,7 +17,7 @@ elsewhere — search stays outside the grouped panel, the same stance tickets-we
|
|
|
17
17
|
| `FilterSheet.tsx` | The component. Owns `visible`/staged-edit state, wraps `Drawer`, wires Apply/Reset/quick-toggle/dimension-change. Data types (`FilterDimension`, `FilterOption`, `FilterValues`) live here, same precedent as `BottomNav`'s own data types. |
|
|
18
18
|
| `FilterSheetBody.tsx` | PRIVATE (not exported) — the sheet's content: title header, per-dimension quick-chip rows, a single-open `Accordion` of facet controls, the Apply/Reset footer. Also hosts the private `DimensionControl` and `QuickChip` sub-components. |
|
|
19
19
|
| `FilterChip.tsx` | Public. A small removable/locked chip for showing one currently-applied filter fact — see "FilterChip vs the quick chip" below. |
|
|
20
|
-
| `FilterSheet.variants.ts` | Pure resolvers (`resolveFilterChipColors`, `resolveFilterChipAccessibility`, `resolveQuickChipColors`, `resolveFilterSheetBodyHeight`) + themed structural resolvers. No React, no lucide. |
|
|
20
|
+
| `FilterSheet.variants.ts` | Pure resolvers (`resolveFilterChipColors`, `resolveFilterChipAccessibility`, `resolveQuickChipColors`, `resolveQuickChipAccessibility`, `resolveFilterSheetBodyHeight`) + themed structural resolvers. No React, no lucide. |
|
|
21
21
|
| `filterSheet.helpers.ts` | Pure, framework-free: `countActiveFilters`, `normalizeFilterValues`, `resolveResetValues`, `applyQuickToggle`, `isOptionSelected`. No React, no `react-native` import at all. |
|
|
22
22
|
| `index.ts` | Public surface: `FilterSheet`, `FilterSheetProps`, `FilterChip`, `FilterChipProps`, `FilterDimension`, `FilterDimensionKind`, `FilterOption`, `FilterValues`, `countActiveFilters`. |
|
|
23
23
|
| `__tests__/FilterSheet.test.ts` | Pure: WCAG contrast (chip + quick-chip, all brands × modes), touch target, `resolveFilterChipAccessibility`, `resolveFilterSheetBodyHeight`. |
|
|
@@ -84,6 +84,21 @@ APPLIED filters elsewhere in its own UI (e.g. "Status: Open ✕" above a list)
|
|
|
84
84
|
press-to-toggle AND a selected visual state, neither of which `FilterChip`'s contract supports — so
|
|
85
85
|
it is a small, PRIVATE, unexported component (`QuickChip`), not a repurposed `FilterChip`.
|
|
86
86
|
|
|
87
|
+
## Accessibility
|
|
88
|
+
|
|
89
|
+
- **`FilterChip`'s remove-affordance label** now comes from the shared `removeAccessibilityLabel()`
|
|
90
|
+
(`core/a11y/labels`) — `"Remove ${label}"` — not a module-local phrasing. `chip` and `file-upload`
|
|
91
|
+
each independently invented their own wording for the same "remove this" affordance (a WCAG 3.2.4
|
|
92
|
+
Consistent Identification failure); this module now consumes the one shared constant instead of
|
|
93
|
+
adding a fourth phrasing.
|
|
94
|
+
- **`QuickChip`'s selected state** (`resolveQuickChipAccessibility`) emits BOTH `aria-pressed` (web)
|
|
95
|
+
and `accessibilityState={{ selected }}` (native) — the one case in `docs/PLATFORM-A11Y-PROPS.md`
|
|
96
|
+
where the two vocabularies genuinely diverge for a toggle button, so both halves are always sent,
|
|
97
|
+
each inert on the platform it isn't aimed at. Never `aria-selected`: invalid ARIA on
|
|
98
|
+
`role="button"`. Before this fix the chip only ever emitted the `accessibilityState` object,
|
|
99
|
+
which `react-native-web` discards outright — a quick chip on web exposed `role="button"` with no
|
|
100
|
+
selected state at all.
|
|
101
|
+
|
|
87
102
|
## Controlled vs internal state
|
|
88
103
|
|
|
89
104
|
| State | Owner | Mechanism |
|
|
@@ -113,3 +128,9 @@ never a migration.
|
|
|
113
128
|
- `MultiSelect`'s own option sheet opens as a NESTED native `Modal` while `FilterSheet`'s `Drawer` is
|
|
114
129
|
already showing — this is the library's existing, tested `MultiSelect` composed as-is (per
|
|
115
130
|
CLAUDE.md's component decision order), not a new modal-stacking mechanism built for this module.
|
|
131
|
+
|
|
132
|
+
## Modernization (v1.0.7)
|
|
133
|
+
|
|
134
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
135
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
136
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* FolderRow — file-browser style row with optional leading icon and trailing meta text.
|
|
5
|
+
*
|
|
6
|
+
* It is rendered AS a list cell at scale, so it carries no mount animation and no loop: press
|
|
7
|
+
* feedback is a plain pressed background colour. Colours and style arrays are memoized so a
|
|
8
|
+
* parent re-render with unchanged props costs nothing.
|
|
9
|
+
*
|
|
10
|
+
* Keyboard/AT focus draws an INSET ring (WCAG 2.4.7) rather than the gap-outside ring `Button` uses
|
|
11
|
+
* — a full-bleed row's outset ring is clipped by the list it sits in.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { memo, useCallback, useMemo, useState } from "react";
|
|
15
|
+
import { Pressable, StyleSheet, Text, View } from "react-native";
|
|
16
|
+
import { Icon } from "../../core/icon/index.js";
|
|
17
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
18
|
+
import { folderRowFocusRingStructure, folderRowStructure, resolveFolderRowAccessibleName, resolveFolderRowColors } from "./FolderRow.variants.js";
|
|
19
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
20
|
+
const ICON_STROKE = 2;
|
|
21
|
+
const ICON_SIZE = 22;
|
|
22
|
+
export const FolderRow = /*#__PURE__*/memo(function FolderRow({
|
|
23
|
+
title,
|
|
24
|
+
subtitle,
|
|
25
|
+
icon = "folder",
|
|
26
|
+
trailing,
|
|
27
|
+
onPress,
|
|
28
|
+
style,
|
|
29
|
+
testID
|
|
30
|
+
}) {
|
|
31
|
+
const theme = useTheme();
|
|
32
|
+
const colors = useMemo(() => resolveFolderRowColors(theme.colors), [theme.colors]);
|
|
33
|
+
const structure = useMemo(() => folderRowStructure(theme), [theme]);
|
|
34
|
+
// Keyboard / external-keyboard / assistive-tech focus (no-op on pure touch, correct everywhere else).
|
|
35
|
+
const [focused, setFocused] = useState(false);
|
|
36
|
+
const titleStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
37
|
+
fontSize: theme.fontSizes.md,
|
|
38
|
+
color: colors.title
|
|
39
|
+
}], [theme, colors]);
|
|
40
|
+
const metaStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
41
|
+
fontSize: theme.fontSizes.sm,
|
|
42
|
+
color: colors.subtitle
|
|
43
|
+
}], [theme, colors]);
|
|
44
|
+
const accessibleName = useMemo(() => resolveFolderRowAccessibleName({
|
|
45
|
+
title,
|
|
46
|
+
subtitle,
|
|
47
|
+
trailing
|
|
48
|
+
}), [title, subtitle, trailing]);
|
|
49
|
+
const staticStyle = useMemo(() => [structure, {
|
|
50
|
+
backgroundColor: colors.background
|
|
51
|
+
}, style], [structure, colors, style]);
|
|
52
|
+
const rootStyle = useCallback(({
|
|
53
|
+
pressed
|
|
54
|
+
}) => [structure, {
|
|
55
|
+
backgroundColor: pressed ? colors.pressed : colors.background
|
|
56
|
+
}, style], [structure, colors, style]);
|
|
57
|
+
const handleFocus = useCallback(() => setFocused(true), []);
|
|
58
|
+
const handleBlur = useCallback(() => setFocused(false), []);
|
|
59
|
+
const focusRingStyle = useMemo(() => [folderRowFocusRingStructure(theme), {
|
|
60
|
+
borderColor: theme.colors.border.focus
|
|
61
|
+
}], [theme]);
|
|
62
|
+
const body = /*#__PURE__*/_jsx(FolderRowBody, {
|
|
63
|
+
icon: icon,
|
|
64
|
+
iconColor: theme.colors.accent.text,
|
|
65
|
+
title: title,
|
|
66
|
+
subtitle: subtitle,
|
|
67
|
+
trailing: trailing,
|
|
68
|
+
titleStyle: titleStyle,
|
|
69
|
+
metaStyle: metaStyle
|
|
70
|
+
});
|
|
71
|
+
if (onPress === undefined) {
|
|
72
|
+
return /*#__PURE__*/_jsx(View, {
|
|
73
|
+
testID: testID,
|
|
74
|
+
style: staticStyle,
|
|
75
|
+
children: body
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
79
|
+
testID: testID,
|
|
80
|
+
accessibilityRole: "button",
|
|
81
|
+
accessibilityLabel: accessibleName,
|
|
82
|
+
onPress: onPress,
|
|
83
|
+
onFocus: handleFocus,
|
|
84
|
+
onBlur: handleBlur,
|
|
85
|
+
style: rootStyle,
|
|
86
|
+
children: [focused && /*#__PURE__*/_jsx(View, {
|
|
87
|
+
pointerEvents: "none",
|
|
88
|
+
testID: testID === undefined ? undefined : `${testID}-focus-ring`,
|
|
89
|
+
style: focusRingStyle
|
|
90
|
+
}), body]
|
|
91
|
+
});
|
|
92
|
+
});
|
|
93
|
+
const FolderRowBody = /*#__PURE__*/memo(function FolderRowBody({
|
|
94
|
+
icon,
|
|
95
|
+
iconColor,
|
|
96
|
+
title,
|
|
97
|
+
subtitle,
|
|
98
|
+
trailing,
|
|
99
|
+
titleStyle,
|
|
100
|
+
metaStyle
|
|
101
|
+
}) {
|
|
102
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
103
|
+
children: [/*#__PURE__*/_jsx(Icon, {
|
|
104
|
+
name: icon,
|
|
105
|
+
size: ICON_SIZE,
|
|
106
|
+
color: iconColor,
|
|
107
|
+
strokeWidth: ICON_STROKE
|
|
108
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
109
|
+
style: styles.textColumn,
|
|
110
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
111
|
+
numberOfLines: 1,
|
|
112
|
+
style: titleStyle,
|
|
113
|
+
children: title
|
|
114
|
+
}), subtitle !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
115
|
+
numberOfLines: 1,
|
|
116
|
+
style: metaStyle,
|
|
117
|
+
children: subtitle
|
|
118
|
+
})]
|
|
119
|
+
}), trailing !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
120
|
+
numberOfLines: 1,
|
|
121
|
+
style: metaStyle,
|
|
122
|
+
children: trailing
|
|
123
|
+
})]
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
const styles = StyleSheet.create({
|
|
127
|
+
textColumn: {
|
|
128
|
+
flex: 1,
|
|
129
|
+
minWidth: 0
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
//# sourceMappingURL=FolderRow.js.map
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { createThemedVariants } from "../../core/style/index.js";
|
|
4
|
+
export const folderRowStructure = createThemedVariants(theme => ({
|
|
5
|
+
base: {
|
|
6
|
+
flexDirection: "row",
|
|
7
|
+
alignItems: "center",
|
|
8
|
+
columnGap: theme.space[3],
|
|
9
|
+
paddingHorizontal: theme.space[3],
|
|
10
|
+
paddingVertical: theme.space[3],
|
|
11
|
+
borderRadius: theme.radii.base
|
|
12
|
+
}
|
|
13
|
+
}));
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* The keyboard/AT focus ring, drawn INSIDE the row's own bounds — not the gap-outside ring
|
|
17
|
+
* `Button`/`CopyButton` use. A folder row is a full-bleed list cell: an outset ring would be clipped
|
|
18
|
+
* by the enclosing list (or by the row's own rounded corners) on the very edges that carry it. Its
|
|
19
|
+
* colour is applied inline over this, never hardcoded here.
|
|
20
|
+
*/
|
|
21
|
+
export const folderRowFocusRingStructure = createThemedVariants(theme => ({
|
|
22
|
+
base: {
|
|
23
|
+
position: "absolute",
|
|
24
|
+
top: 0,
|
|
25
|
+
left: 0,
|
|
26
|
+
right: 0,
|
|
27
|
+
bottom: 0,
|
|
28
|
+
borderWidth: theme.borderWidths.thick,
|
|
29
|
+
borderRadius: theme.radii.base
|
|
30
|
+
}
|
|
31
|
+
}));
|
|
32
|
+
/**
|
|
33
|
+
* The pressable row's whole accessible name. A `Pressable` is an accessibility element, so its
|
|
34
|
+
* subtree collapses into ONE node and its own `accessibilityLabel` is all a screen reader hears —
|
|
35
|
+
* anything left out of this string (the trailing "12 items", the subtitle) is simply never
|
|
36
|
+
* announced. Kept pure so that contract is unit-testable without rendering React Native.
|
|
37
|
+
*/
|
|
38
|
+
export function resolveFolderRowAccessibleName(input) {
|
|
39
|
+
return [input.title, input.subtitle, input.trailing].filter(Boolean).join(", ");
|
|
40
|
+
}
|
|
41
|
+
export function resolveFolderRowColors(colors) {
|
|
42
|
+
return {
|
|
43
|
+
background: colors.bg.surface,
|
|
44
|
+
pressed: colors.bg.sunken,
|
|
45
|
+
title: colors.fg.default,
|
|
46
|
+
subtitle: colors.fg.muted
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=FolderRow.variants.js.map
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# folder-row/
|
|
2
|
+
|
|
3
|
+
A file-browser row. `FolderRow` renders ONE leaf row: leading icon, title, optional subtitle, optional trailing meta
|
|
4
|
+
text. There is no internal list — consumers render hundreds of these inside their own
|
|
5
|
+
`FlatList`/`VirtualList`, so every cost in this file is multiplied by the row count.
|
|
6
|
+
|
|
7
|
+
With `onPress` the root is a `Pressable` (pressed state swaps the background to `bg.sunken`);
|
|
8
|
+
without it the root is a plain `View`. That is the only branch in the component.
|
|
9
|
+
|
|
10
|
+
## Files
|
|
11
|
+
|
|
12
|
+
| File | Role |
|
|
13
|
+
|------|------|
|
|
14
|
+
| `FolderRow.tsx` | The component + a `React.memo`'d internal `FolderRowBody` shared by both branches. |
|
|
15
|
+
| `FolderRow.variants.ts` | `folderRowStructure` (themed layout) and the pure `resolveFolderRowColors` / `resolveFolderRowAccessibleName` resolvers. No React. |
|
|
16
|
+
| `index.ts` | Public surface: `FolderRow`, `FolderRowProps`. |
|
|
17
|
+
| `__tests__/FolderRow.test.ts` | Pure: WCAG contrast over `resolveFolderRowColors` (all brands × modes) + the accessible-name composition. |
|
|
18
|
+
| `__tests__/FolderRow.render.test.tsx` | Render: press fires `onPress`; the pressable row's single accessible name carries subtitle and trailing. |
|
|
19
|
+
|
|
20
|
+
## Props
|
|
21
|
+
|
|
22
|
+
| Prop | Type | Default | Notes |
|
|
23
|
+
|------|------|---------|-------|
|
|
24
|
+
| `title` | `string` | — | Required. `numberOfLines={1}`. |
|
|
25
|
+
| `subtitle` | `string` | — | Second line; also folded into the accessible name. |
|
|
26
|
+
| `icon` | `IconName` | `"folder"` | Name, never a node — per the API contract. |
|
|
27
|
+
| `trailing` | `string` | — | Meta text (size/count/date), styled like the subtitle; also folded into the accessible name. |
|
|
28
|
+
| `onPress` | `() => void` | — | Absent = plain `View`, no `accessibilityRole`. |
|
|
29
|
+
| `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, LAST in the root style array. |
|
|
30
|
+
| `testID` | `string` | — | On the root node; a focused pressable row also seeds `` `${testID}-focus-ring` ``. |
|
|
31
|
+
|
|
32
|
+
`onPress` takes no arguments deliberately. FolderRow renders a single row, so the per-row closure
|
|
33
|
+
belongs to the caller's `renderItem`, not here — widening it to `(id) => void` would be a public API
|
|
34
|
+
change that buys this component nothing.
|
|
35
|
+
|
|
36
|
+
## Accessibility
|
|
37
|
+
|
|
38
|
+
- **The accessible name folds in BOTH the subtitle and `trailing`** (`resolveFolderRowAccessibleName`):
|
|
39
|
+
`"Reports, Updated today, 12 items"` rather than a bare `"Reports"`. A `Pressable` is an
|
|
40
|
+
accessibility element, so the platform collapses its whole subtree into one node and the row's own
|
|
41
|
+
`accessibilityLabel` is all a screen reader ever hears — until this was fixed the label carried
|
|
42
|
+
only title + subtitle, so the trailing item count was announced nowhere (WCAG 4.1.2), even though
|
|
43
|
+
this file claimed `"Reports, 12 items"` as the example. The static (no-`onPress`) branch is a plain
|
|
44
|
+
`View` and collapses nothing, so its `<Text>` children keep announcing individually.
|
|
45
|
+
- `accessibilityRole="button"` **only when `onPress` is set** — a non-pressable row is not a button
|
|
46
|
+
and must not announce as one.
|
|
47
|
+
- **WCAG 1.4.3** — `title` on `background` is measured ≥ 4.5:1 on every brand × mode
|
|
48
|
+
(`FolderRow.test.ts`).
|
|
49
|
+
- **WCAG 2.4.7** — a pressable row draws a `border.focus` ring (`${testID}-focus-ring`) while
|
|
50
|
+
focused. It is drawn **inside** the row's bounds, not at the `-(gap + width)` offsets
|
|
51
|
+
`Button`/`CopyButton` use: a full-bleed list cell's outset ring is clipped away by the enclosing
|
|
52
|
+
list on exactly the edges that carry it. A static (no-`onPress`) row is not focusable and draws
|
|
53
|
+
nothing.
|
|
54
|
+
|
|
55
|
+
## Performance
|
|
56
|
+
|
|
57
|
+
This row's per-render allocations are multiplied by the caller's row count, so:
|
|
58
|
+
|
|
59
|
+
- `React.memo` on the export, plus a `React.memo`'d internal `FolderRowBody` — a parent re-render
|
|
60
|
+
with unchanged props re-renders nothing.
|
|
61
|
+
- Colours (`resolveFolderRowColors`), the themed structure array, and every text style array are
|
|
62
|
+
`useMemo`'d on `theme` / `theme.colors`; the static text-column style lives in a module-level
|
|
63
|
+
`StyleSheet.create`. No style object is rebuilt per render.
|
|
64
|
+
- **No internal list** — nothing here to virtualize. Windowing is the caller's `FlatList`.
|
|
65
|
+
- **No mount animation, ever.** A per-row enter animation would run during the caller's scroll.
|
|
66
|
+
Press feedback stays a plain background-colour swap — no `usePressMotion`, no `Animated` value.
|
|
67
|
+
|
|
68
|
+
## Known gaps
|
|
69
|
+
|
|
70
|
+
- No trailing chevron, badge, or swipe actions — compose with `swipeable-row` if needed.
|
|
71
|
+
- `trailing` is text only; a node would break the "internals never receive consumer style" rule.
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* FormField — the label/required-marker/description/helper-error wrapper every crm-mobile form
|
|
5
|
+
* hand-rolled per-field (`formInputs.tsx`, `baseForm.tsx`). It draws no box of its own: it wraps
|
|
6
|
+
* ANY control (Input, Select, DatePicker, Combobox, a bare TextInput, …) and hands that control
|
|
7
|
+
* back the accessibility props it needs (`resolveFormFieldAccessibility`) via a render-prop, so the
|
|
8
|
+
* control never has to duplicate label/required/error logic itself.
|
|
9
|
+
*
|
|
10
|
+
* The only motion here is the helper/error message's enter-exit — the wrapper has no focus surface
|
|
11
|
+
* and nothing pressable of its own.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { memo, useId, useMemo, useRef } from "react";
|
|
15
|
+
import { Animated, Text, View } from "react-native";
|
|
16
|
+
import { useAnnounce } from "../../core/a11y/index.js";
|
|
17
|
+
import { useEnterExit } from "../../core/motion/index.js";
|
|
18
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
19
|
+
import { formFieldDescriptionId, formFieldMessageId, formFieldStructure, resolveFormFieldAccessibility, resolveFormFieldMessage, resolveFormFieldStatus } from "./FormField.variants.js";
|
|
20
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
21
|
+
export const FormField = /*#__PURE__*/memo(function FormField({
|
|
22
|
+
label,
|
|
23
|
+
required = false,
|
|
24
|
+
description,
|
|
25
|
+
status = "default",
|
|
26
|
+
helperText,
|
|
27
|
+
errorText,
|
|
28
|
+
disabled = false,
|
|
29
|
+
children,
|
|
30
|
+
style,
|
|
31
|
+
testID
|
|
32
|
+
}) {
|
|
33
|
+
const theme = useTheme();
|
|
34
|
+
const colors = resolveFormFieldStatus(theme.colors, status);
|
|
35
|
+
const idPrefix = useId();
|
|
36
|
+
|
|
37
|
+
// Handed straight to the render-prop, so a fresh object every render would defeat a memoized control.
|
|
38
|
+
const control = useMemo(() => resolveFormFieldAccessibility({
|
|
39
|
+
label,
|
|
40
|
+
required,
|
|
41
|
+
disabled,
|
|
42
|
+
status,
|
|
43
|
+
errorText,
|
|
44
|
+
description,
|
|
45
|
+
helperText,
|
|
46
|
+
describedByIdPrefix: idPrefix
|
|
47
|
+
}), [label, required, disabled, status, errorText, description, helperText, idPrefix]);
|
|
48
|
+
const message = resolveFormFieldMessage({
|
|
49
|
+
status,
|
|
50
|
+
helperText,
|
|
51
|
+
errorText
|
|
52
|
+
});
|
|
53
|
+
useAnnounce(status === "error" ? message : undefined);
|
|
54
|
+
const messageMotion = useEnterExit(message !== undefined);
|
|
55
|
+
// Holds the text on screen while the exit tween runs.
|
|
56
|
+
const lastMessage = useRef(message);
|
|
57
|
+
if (message !== undefined) lastMessage.current = message;
|
|
58
|
+
const rootStyle = useMemo(() => [formFieldStructure(theme), style], [theme, style]);
|
|
59
|
+
const labelStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
60
|
+
fontSize: theme.fontSizes.sm,
|
|
61
|
+
color: colors.label
|
|
62
|
+
}], [theme, colors.label]);
|
|
63
|
+
const requiredMarkStyle = useMemo(() => ({
|
|
64
|
+
color: colors.requiredMark
|
|
65
|
+
}), [colors.requiredMark]);
|
|
66
|
+
const descriptionStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
67
|
+
fontSize: theme.fontSizes.xs,
|
|
68
|
+
color: colors.description
|
|
69
|
+
}], [theme, colors.description]);
|
|
70
|
+
const messageStyle = useMemo(() => [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
71
|
+
fontSize: theme.fontSizes.xs,
|
|
72
|
+
color: colors.message
|
|
73
|
+
}], [theme, colors.message]);
|
|
74
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
75
|
+
testID: testID,
|
|
76
|
+
style: rootStyle,
|
|
77
|
+
children: [/*#__PURE__*/_jsxs(Text, {
|
|
78
|
+
accessibilityElementsHidden: true,
|
|
79
|
+
importantForAccessibility: "no-hide-descendants",
|
|
80
|
+
style: labelStyle,
|
|
81
|
+
children: [label, required && /*#__PURE__*/_jsx(Text, {
|
|
82
|
+
style: requiredMarkStyle,
|
|
83
|
+
children: " *"
|
|
84
|
+
})]
|
|
85
|
+
}), description !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
86
|
+
nativeID: formFieldDescriptionId(idPrefix),
|
|
87
|
+
style: descriptionStyle,
|
|
88
|
+
children: description
|
|
89
|
+
}), children(control), messageMotion.mounted && lastMessage.current !== undefined &&
|
|
90
|
+
/*#__PURE__*/
|
|
91
|
+
// No `accessibilityLiveRegion` (deliberate): it's Android-only, and `useAnnounce` above
|
|
92
|
+
// already announces on both platforms — keeping both would double-announce on Android.
|
|
93
|
+
// Hidden only once the message is gone: `lastMessage` outlives it for the exit tween, and a
|
|
94
|
+
// stale error must not sit in the a11y tree while it fades.
|
|
95
|
+
_jsx(Animated.Text, {
|
|
96
|
+
nativeID: formFieldMessageId(idPrefix),
|
|
97
|
+
accessibilityElementsHidden: message === undefined,
|
|
98
|
+
importantForAccessibility: message === undefined ? "no-hide-descendants" : undefined,
|
|
99
|
+
style: [messageStyle, messageMotion.style],
|
|
100
|
+
children: lastMessage.current
|
|
101
|
+
})]
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=FormField.js.map
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* FormField's colour + behaviour resolution. There is no `structure` split here of the kind
|
|
5
|
+
* Button/Input have: a field wrapper draws no box of its own — it is pure vertical rhythm around
|
|
6
|
+
* whatever control the caller puts inside — so the only themed structure is spacing.
|
|
7
|
+
*
|
|
8
|
+
* Free of `lucide` and of any React tree, so the WCAG + contract tests import it directly
|
|
9
|
+
* (mocking only `react-native`'s `StyleSheet`, as `core/style` does).
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { createThemedVariants } from "../../core/style/index.js";
|
|
13
|
+
|
|
14
|
+
/** A state, not a brand tone — a field's colour reports validity. Mirrors `InputStatus`. */
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Maps `status` onto role colours. The required marker reads `status.danger.text` (not `.solid`):
|
|
18
|
+
* it is TEXT, so it owes 4.5:1 against the canvas, and `.text` is the rung picked for exactly that
|
|
19
|
+
* — `.solid` is a fill rung and only guarantees the looser 3:1.
|
|
20
|
+
*/
|
|
21
|
+
export function resolveFormFieldStatus(colors, status) {
|
|
22
|
+
return {
|
|
23
|
+
label: colors.fg.default,
|
|
24
|
+
requiredMark: colors.status.danger.text,
|
|
25
|
+
description: colors.fg.muted,
|
|
26
|
+
message: status === "error" ? colors.status.danger.text : colors.fg.muted
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
/** Node ids the wrapper stamps and `aria-describedby` refers to. Derived once, never interpolated
|
|
30
|
+
* at a call site where a typo would be a dangling reference no compiler catches. */
|
|
31
|
+
export function formFieldDescriptionId(prefix) {
|
|
32
|
+
return `${prefix}-description`;
|
|
33
|
+
}
|
|
34
|
+
export function formFieldMessageId(prefix) {
|
|
35
|
+
return `${prefix}-message`;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Derives what the control inside needs, purely.
|
|
40
|
+
*
|
|
41
|
+
* WCAG 3.3.2 — the red `*` is a *visual* convention a screen reader does not convey, so "required"
|
|
42
|
+
* is appended to the accessible name. WCAG 3.3.1 — in the error state the message is appended too,
|
|
43
|
+
* so a reader landing on the control hears WHY it is invalid instead of only that something is
|
|
44
|
+
* wrong; the visible message is separately announced when it appears.
|
|
45
|
+
*
|
|
46
|
+
* WCAG 1.3.1 — `description`/`helperText` are visible lines with no programmatic link to the control,
|
|
47
|
+
* so they ride `accessibilityHint` on native and `aria-describedby` on web (`accessibilityHint` has
|
|
48
|
+
* no web equivalent at all — `react-native-web` never reads it). `description` wins the hint: it
|
|
49
|
+
* explains what to enter, where `helperText` only qualifies it. `errorText` stays in the NAME, not
|
|
50
|
+
* the hint — a hint is advisory and some readers suppress it, which a validity message must never be
|
|
51
|
+
* — and the same state sets `aria-invalid`, so the error is never carried by border colour alone.
|
|
52
|
+
*
|
|
53
|
+
* `aria-describedby` deliberately omits the message node in the error state: that string is already
|
|
54
|
+
* in the accessible name, and listing it twice announces it twice.
|
|
55
|
+
*/
|
|
56
|
+
export function resolveFormFieldAccessibility(input) {
|
|
57
|
+
const status = input.status ?? "default";
|
|
58
|
+
const isError = status === "error";
|
|
59
|
+
const parts = [input.label, input.required === true ? "required" : undefined, isError ? input.errorText : undefined].filter(part => part !== undefined && part !== "");
|
|
60
|
+
const prefix = input.describedByIdPrefix;
|
|
61
|
+
const describedBy = prefix === undefined ? [] : [input.description === undefined ? undefined : formFieldDescriptionId(prefix), !isError && input.helperText !== undefined ? formFieldMessageId(prefix) : undefined].filter(id => id !== undefined);
|
|
62
|
+
return {
|
|
63
|
+
accessibilityLabel: parts.length > 0 ? parts.join(", ") : undefined,
|
|
64
|
+
accessibilityHint: input.description ?? input.helperText,
|
|
65
|
+
"aria-describedby": describedBy.length > 0 ? describedBy.join(" ") : undefined,
|
|
66
|
+
"aria-invalid": isError,
|
|
67
|
+
"aria-disabled": input.disabled === true,
|
|
68
|
+
status
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** The message a field shows — one at a time, error winning over helper (same rule as Input). */
|
|
73
|
+
export function resolveFormFieldMessage(input) {
|
|
74
|
+
return (input.status ?? "default") === "error" ? input.errorText : input.helperText;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Vertical rhythm only — no colours, no box. Compiles once per theme identity via the
|
|
79
|
+
* `WeakMap`-cached themed resolver.
|
|
80
|
+
*/
|
|
81
|
+
export const formFieldStructure = createThemedVariants(theme => ({
|
|
82
|
+
base: {
|
|
83
|
+
rowGap: theme.space[1]
|
|
84
|
+
},
|
|
85
|
+
variants: {},
|
|
86
|
+
defaultVariants: {}
|
|
87
|
+
}));
|
|
88
|
+
//# sourceMappingURL=FormField.variants.js.map
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# form-field/ — the label/required/description/error wrapper around any control
|
|
2
|
+
|
|
3
|
+
Every crm-mobile form hand-rolls this same wrapper per field (`components/formInputs/formInputs.tsx`,
|
|
4
|
+
`components/baseForm.tsx`): a label, an optional red `*`, an optional description line, the control
|
|
5
|
+
itself, then a helper-or-error message. `FormField` is that wrapper, generalized to wrap **any**
|
|
6
|
+
control — `Input`, `Select`, `DatePicker`, `Combobox`, or a bare `TextInput` — via a render-prop,
|
|
7
|
+
instead of being married to one field type.
|
|
8
|
+
|
|
9
|
+
## Files
|
|
10
|
+
|
|
11
|
+
| File | Role |
|
|
12
|
+
|------|------|
|
|
13
|
+
| `FormField.tsx` | The component. Label/marker/description/message composition; hands the control its derived accessibility props via a render-prop child. |
|
|
14
|
+
| `FormField.variants.ts` | Pure resolvers (`resolveFormFieldStatus`, `resolveFormFieldAccessibility`, `resolveFormFieldMessage`) + the themed `formFieldStructure` (vertical rhythm only — no box). No React. |
|
|
15
|
+
| `index.ts` | Public surface: `FormField`, `FormFieldProps`, `FormFieldStatus`, `FormFieldControlProps`. |
|
|
16
|
+
| `__tests__/FormField.test.ts` | Pure: WCAG contrast (all brands × modes), message-priority, and accessibility-string contract. |
|
|
17
|
+
| `__tests__/FormField.render.test.tsx` | Render: label/marker/description, the render-prop payload, and the helper↔error message swap. |
|
|
18
|
+
|
|
19
|
+
## Props
|
|
20
|
+
|
|
21
|
+
| Prop | Type | Default | Notes |
|
|
22
|
+
|------|------|---------|-------|
|
|
23
|
+
| `label` | `string` | — | Required. |
|
|
24
|
+
| `required` | `boolean` | `false` | Shows a visible `*`; also appends "required" to the accessible name. |
|
|
25
|
+
| `description` | `string` | — | Optional line between the label and the control. |
|
|
26
|
+
| `status` | `default \| error` | `default` | Drives which message shows and what the control receives. |
|
|
27
|
+
| `helperText` | `string` | — | Shown when `status` is `"default"`. |
|
|
28
|
+
| `errorText` | `string` | — | Shown (and announced) when `status` is `"error"`; also appended to the control's accessible NAME. |
|
|
29
|
+
| `disabled` | `boolean` | `false` | Forwarded into the render-prop's `aria-disabled`. |
|
|
30
|
+
| `children` | `(control: FormFieldControlProps) => ReactNode` | — | Required. Render-prop — see below. |
|
|
31
|
+
| `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
|
|
32
|
+
| `testID` | `string` | — | On the root `View`. |
|
|
33
|
+
|
|
34
|
+
### The render-prop, not a fixed slot
|
|
35
|
+
|
|
36
|
+
`children` receives one `FormFieldControlProps` object: `{ accessibilityLabel, accessibilityHint,
|
|
37
|
+
"aria-describedby", "aria-invalid", "aria-disabled", status }`. This is deliberate — a **fixed** `control: ReactNode` prop would leave every consumer to
|
|
38
|
+
independently recompute the same "does this control need the error border, what's its accessible
|
|
39
|
+
name" logic that `Input.variants.ts` already solves for `Input` alone. Passing the derived props
|
|
40
|
+
back lets any control opt in with zero duplicated logic, e.g. `<Input status={control.status}
|
|
41
|
+
accessibilityLabel={control.accessibilityLabel} />`.
|
|
42
|
+
|
|
43
|
+
## Accessibility contract (WCAG)
|
|
44
|
+
|
|
45
|
+
- **3.3.2** — the red `*` is a visual convention a screen reader does not convey, so `"required"` is
|
|
46
|
+
appended to `accessibilityLabel` when `required` is true.
|
|
47
|
+
- **3.3.1** — in the error state, the error text is appended to the SAME accessible name, so a
|
|
48
|
+
reader landing on the control hears why it's invalid in one pass, not two.
|
|
49
|
+
- **1.3.1 / 3.3.2** — `description` (falling back to `helperText`) rides the control's
|
|
50
|
+
`accessibilityHint` for native. On web, `accessibilityHint` reaches nothing at all (zero
|
|
51
|
+
occurrences in `react-native-web`'s dist) — the wrapper stamps real `nativeID`s on the rendered
|
|
52
|
+
description/message nodes and hands the control `"aria-describedby"` pointing at them, so the same
|
|
53
|
+
link exists on both platforms. `description` wins the tie: it says what to enter, where
|
|
54
|
+
`helperText` only qualifies it. `errorText` deliberately stays in the accessible NAME, not the
|
|
55
|
+
hint or the description link: a hint is advisory and some readers suppress it, which a validity
|
|
56
|
+
message must never be, and `"aria-invalid"` is now also set alongside it.
|
|
57
|
+
- **1.4.3** — label, description, and message are all measured ≥ 4.5:1 against the canvas, for every
|
|
58
|
+
status, across all brands × both modes.
|
|
59
|
+
- **4.1.2** — the visible label `Text` (and its `*` marker) is hidden from the accessibility tree
|
|
60
|
+
with `accessibilityElementsHidden` / `importantForAccessibility="no-hide-descendants"`. Its exact
|
|
61
|
+
content is already copied into the control's `accessibilityLabel` ("Email, required"), so leaving
|
|
62
|
+
it in the tree announced the field's name twice — once as a standalone stop, once at the control.
|
|
63
|
+
Same idiom `Input` and `Textarea` use for their own label. Hiding the wrapper's label is safe
|
|
64
|
+
*because* the render-prop guarantees the name reaches the control; a consumer who ignores
|
|
65
|
+
`control.accessibilityLabel` leaves the field unnamed, which is the documented contract.
|
|
66
|
+
- **4.1.3** — an appearing error is announced with `useAnnounce` (`core/a11y`), i.e.
|
|
67
|
+
`AccessibilityInfo.announceForAccessibility`, so it reaches VoiceOver **and** TalkBack. The message
|
|
68
|
+
row carries **no** `accessibilityLiveRegion`: that prop is Android-only, so it left iOS silent, and
|
|
69
|
+
keeping it alongside the announcement would announce twice on Android. A helper message is never
|
|
70
|
+
announced — only an error interrupts. While the message is leaving (its exit tween keeps it
|
|
71
|
+
mounted) it is hidden from the tree, so a stale error can't be read.
|
|
72
|
+
|
|
73
|
+
## Patterns copied from the reference modules
|
|
74
|
+
|
|
75
|
+
1. **Structure vs colour split**, same as Button/Input/Badge — though here "structure" is just
|
|
76
|
+
`rowGap`, since a field wrapper draws no box.
|
|
77
|
+
2. **Pure, testable resolvers** — the accessibility-string contract is unit-tested directly, the
|
|
78
|
+
same way `Banner.variants.ts`'s label-collapsing is.
|
|
79
|
+
3. **One message shown at a time, error winning** — the exact rule `Input` already uses; kept
|
|
80
|
+
consistent so a form built from `FormField` + `Input` never shows two conflicting states.
|
|
81
|
+
|
|
82
|
+
## Design decisions specific to this module
|
|
83
|
+
|
|
84
|
+
- **Render-prop instead of a fixed `control` slot** — see above.
|
|
85
|
+
- **No built-in `TextInput`.** `form-field` is control-agnostic on purpose; pairing it with `Input`
|
|
86
|
+
by default would make every non-text field (a `Select`, a `DatePicker`) fight the wrapper's
|
|
87
|
+
assumptions instead of just consuming the props it hands back.
|
|
88
|
+
|
|
89
|
+
## Known gaps
|
|
90
|
+
|
|
91
|
+
- No multi-error list — one `errorText` at a time, matching `Input`. A field needing several
|
|
92
|
+
simultaneous rules should join them into one string upstream.
|
|
93
|
+
|
|
94
|
+
## Performance
|
|
95
|
+
|
|
96
|
+
Wrapped in `React.memo`. `formFieldStructure` is a themed resolver, so it compiles once per theme
|
|
97
|
+
identity, not per render.
|
|
98
|
+
|
|
99
|
+
## Modernization (v1.0.7)
|
|
100
|
+
|
|
101
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
102
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
103
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|