pixelize-native-library 1.0.7 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/module/core/MODULE.md +130 -36
- package/lib/module/core/a11y/MODULE.md +127 -4
- package/lib/module/core/a11y/announce.js +30 -0
- package/lib/module/core/a11y/announce.web.js +134 -0
- package/lib/module/core/a11y/index.js +81 -15
- package/lib/module/core/a11y/keyboard.js +42 -0
- package/lib/module/core/a11y/keyboard.web.js +229 -0
- package/lib/module/core/a11y/labels.js +24 -0
- package/lib/module/core/device/MODULE.md +47 -0
- package/lib/module/core/device/index.js +91 -0
- package/lib/module/core/gradient/AccentGradientFill.js +80 -0
- package/lib/module/core/gradient/darkenHex.js +13 -0
- package/lib/module/core/gradient/gradientStops.js +27 -0
- package/lib/module/core/gradient/index.js +7 -0
- package/lib/module/core/gradient/withAlpha.js +19 -0
- package/lib/module/core/haptics/MODULE.md +4 -0
- package/lib/module/core/haptics/context.js +7 -0
- package/lib/module/core/haptics/haptics.js +17 -0
- package/lib/module/core/haptics/index.js +6 -0
- package/lib/module/core/haptics/useHaptics.js +73 -0
- package/lib/module/core/heading/MODULE.md +38 -0
- package/lib/module/core/heading/index.js +45 -0
- package/lib/module/core/icon/Icon.js +37 -0
- package/lib/module/core/icon/MODULE.md +53 -12
- package/lib/module/core/icon/icons/arrow-down.js +10 -0
- package/lib/module/core/icon/icons/arrow-left.js +10 -0
- package/lib/module/core/icon/icons/arrow-right.js +10 -0
- package/lib/module/core/icon/icons/arrow-up.js +10 -0
- package/lib/module/core/icon/icons/at-sign.js +10 -0
- package/lib/module/core/icon/icons/bell.js +10 -0
- package/lib/module/core/icon/icons/bold.js +10 -0
- package/lib/module/core/icon/icons/building-2.js +10 -0
- package/lib/module/core/icon/icons/calendar.js +10 -0
- package/lib/module/core/icon/icons/chart-column.js +10 -0
- package/lib/module/core/icon/icons/check.js +10 -0
- package/lib/module/core/icon/icons/chevron-down.js +10 -0
- package/lib/module/core/icon/icons/chevron-left.js +10 -0
- package/lib/module/core/icon/icons/chevron-right.js +10 -0
- package/lib/module/core/icon/icons/chevron-up.js +10 -0
- package/lib/module/core/icon/icons/chevrons-left.js +10 -0
- package/lib/module/core/icon/icons/chevrons-right.js +10 -0
- package/lib/module/core/icon/icons/chevrons-up-down.js +10 -0
- package/lib/module/core/icon/icons/circle-alert.js +10 -0
- package/lib/module/core/icon/icons/circle-check.js +10 -0
- package/lib/module/core/icon/icons/clock.js +10 -0
- package/lib/module/core/icon/icons/code.js +10 -0
- package/lib/module/core/icon/icons/download.js +10 -0
- package/lib/module/core/icon/icons/external-link.js +10 -0
- package/lib/module/core/icon/icons/eye.js +10 -0
- package/lib/module/core/icon/icons/file-text.js +10 -0
- package/lib/module/core/icon/icons/filter.js +10 -0
- package/lib/module/core/icon/icons/flag.js +10 -0
- package/lib/module/core/icon/icons/folder.js +10 -0
- package/lib/module/core/icon/icons/heading-1.js +10 -0
- package/lib/module/core/icon/icons/heading-2.js +10 -0
- package/lib/module/core/icon/icons/heading-3.js +10 -0
- package/lib/module/core/icon/icons/image.js +10 -0
- package/lib/module/core/icon/icons/inbox.js +10 -0
- package/lib/module/core/icon/icons/info.js +10 -0
- package/lib/module/core/icon/icons/italic.js +10 -0
- package/lib/module/core/icon/icons/kanban.js +10 -0
- package/lib/module/core/icon/icons/layers.js +10 -0
- package/lib/module/core/icon/icons/layout-dashboard.js +10 -0
- package/lib/module/core/icon/icons/layout-template.js +10 -0
- package/lib/module/core/icon/icons/life-buoy.js +10 -0
- package/lib/module/core/icon/icons/link.js +10 -0
- package/lib/module/core/icon/icons/list-checks.js +10 -0
- package/lib/module/core/icon/icons/list-ordered.js +10 -0
- package/lib/module/core/icon/icons/list-todo.js +10 -0
- package/lib/module/core/icon/icons/list.js +10 -0
- package/lib/module/core/icon/icons/log-out.js +10 -0
- package/lib/module/core/icon/icons/map.js +10 -0
- package/lib/module/core/icon/icons/message-square.js +10 -0
- package/lib/module/core/icon/icons/milestone.js +10 -0
- package/lib/module/core/icon/icons/minus.js +10 -0
- package/lib/module/core/icon/icons/more-horizontal.js +10 -0
- package/lib/module/core/icon/icons/paperclip.js +10 -0
- package/lib/module/core/icon/icons/pencil.js +10 -0
- package/lib/module/core/icon/icons/plus.js +10 -0
- package/lib/module/core/icon/icons/quote.js +10 -0
- package/lib/module/core/icon/icons/refresh-cw.js +10 -0
- package/lib/module/core/icon/icons/save.js +10 -0
- package/lib/module/core/icon/icons/search.js +10 -0
- package/lib/module/core/icon/icons/send.js +10 -0
- package/lib/module/core/icon/icons/settings.js +10 -0
- package/lib/module/core/icon/icons/share.js +10 -0
- package/lib/module/core/icon/icons/square-code.js +10 -0
- package/lib/module/core/icon/icons/star.js +10 -0
- package/lib/module/core/icon/icons/strikethrough.js +10 -0
- package/lib/module/core/icon/icons/tag.js +10 -0
- package/lib/module/core/icon/icons/trash.js +10 -0
- package/lib/module/core/icon/icons/trending-up.js +10 -0
- package/lib/module/core/icon/icons/triangle-alert.js +10 -0
- package/lib/module/core/icon/icons/underline.js +10 -0
- package/lib/module/core/icon/icons/upload.js +10 -0
- package/lib/module/core/icon/icons/user.js +10 -0
- package/lib/module/core/icon/icons/users.js +10 -0
- package/lib/module/core/icon/icons/x.js +10 -0
- package/lib/module/core/icon/index.js +4 -153
- package/lib/module/core/icon/names.js +2 -0
- package/lib/module/core/icon/resolve.js +160 -0
- package/lib/module/core/icon/types.js +4 -0
- package/lib/module/core/list/VirtualList.js +226 -0
- package/lib/module/core/list/index.js +4 -0
- package/lib/module/core/media/MediaImage.js +51 -0
- package/lib/module/core/media/expoImage.js +26 -0
- package/lib/module/core/media/index.js +6 -0
- package/lib/module/core/media/pickers.js +23 -0
- package/lib/module/core/motion/MODULE.md +101 -0
- package/lib/module/core/motion/config.js +115 -0
- package/lib/module/core/motion/index.js +8 -0
- package/lib/module/core/motion/presets.js +192 -0
- package/lib/module/core/motion/useAnimatedValue.js +19 -0
- package/lib/module/core/motion/useMotion.js +46 -0
- package/lib/module/core/motion/usePressState.js +145 -0
- package/lib/module/core/style/index.js +3 -0
- package/lib/module/core/style/radius.js +4 -0
- package/lib/module/core/style/sx.js +76 -0
- package/lib/module/core/style/useThemedStyles.js +8 -0
- package/lib/module/index.js +71 -2
- package/lib/module/modules/accordion/Accordion.js +286 -97
- package/lib/module/modules/accordion/Accordion.variants.js +6 -7
- package/lib/module/modules/accordion/MODULE.md +36 -11
- package/lib/module/modules/alert-dialog/AlertDialog.js +7 -6
- package/lib/module/modules/alert-dialog/AlertDialog.variants.js +4 -0
- package/lib/module/modules/alert-dialog/MODULE.md +11 -2
- package/lib/module/modules/app-bar/AppBar.js +181 -0
- package/lib/module/modules/app-bar/AppBar.variants.js +71 -0
- package/lib/module/modules/app-bar/MODULE.md +68 -0
- package/lib/module/modules/app-bar/index.js +10 -0
- package/lib/module/modules/avatar/Avatar.js +45 -19
- package/lib/module/modules/avatar/Avatar.variants.js +44 -3
- package/lib/module/modules/avatar/MODULE.md +37 -15
- package/lib/module/modules/avatar-group/AvatarGroup.js +81 -0
- package/lib/module/modules/avatar-group/AvatarGroup.variants.js +132 -0
- package/lib/module/modules/avatar-group/MODULE.md +44 -0
- package/lib/module/modules/avatar-group/index.js +10 -0
- package/lib/module/modules/badge/Badge.js +14 -7
- package/lib/module/modules/badge/Badge.variants.js +14 -3
- package/lib/module/modules/badge/MODULE.md +11 -5
- package/lib/module/modules/banner/Banner.js +181 -0
- package/lib/module/modules/banner/Banner.variants.js +118 -0
- package/lib/module/modules/banner/MODULE.md +118 -0
- package/lib/module/modules/banner/index.js +4 -0
- package/lib/module/modules/bottom-nav/BottomNav.js +43 -129
- package/lib/module/modules/bottom-nav/BottomNav.variants.js +36 -18
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js +56 -8
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +160 -117
- package/lib/module/modules/bottom-nav/BottomNavTab.js +162 -0
- package/lib/module/modules/bottom-nav/MODULE.md +30 -6
- package/lib/module/modules/bottom-sheet/BottomSheet.js +202 -0
- package/lib/module/modules/bottom-sheet/BottomSheet.variants.js +59 -0
- package/lib/module/modules/bottom-sheet/MODULE.md +64 -0
- package/lib/module/modules/bottom-sheet/index.js +4 -0
- package/lib/module/modules/button/Button.js +128 -91
- package/lib/module/modules/button/Button.variants.js +20 -14
- package/lib/module/modules/button/MODULE.md +31 -3
- package/lib/module/modules/button-group/ButtonGroup.js +176 -69
- package/lib/module/modules/button-group/ButtonGroup.variants.js +51 -50
- package/lib/module/modules/button-group/MODULE.md +58 -37
- package/lib/module/modules/card/Card.js +122 -21
- package/lib/module/modules/card/Card.variants.js +1 -0
- package/lib/module/modules/card/MODULE.md +19 -10
- package/lib/module/modules/charts/BarChart.js +257 -0
- package/lib/module/modules/charts/BarList.js +112 -49
- package/lib/module/modules/charts/ChartLegend.js +154 -0
- package/lib/module/modules/charts/Charts.variants.js +589 -2
- package/lib/module/modules/charts/DonutChart.js +105 -65
- package/lib/module/modules/charts/LineChart.js +181 -0
- package/lib/module/modules/charts/MODULE.md +161 -22
- package/lib/module/modules/charts/PieChart.js +149 -0
- package/lib/module/modules/charts/Sparkline.js +7 -4
- package/lib/module/modules/charts/index.js +3 -0
- package/lib/module/modules/checkbox/Checkbox.js +122 -44
- package/lib/module/modules/checkbox/Checkbox.variants.js +13 -8
- package/lib/module/modules/checkbox/MODULE.md +40 -8
- package/lib/module/modules/chip/Chip.js +200 -0
- package/lib/module/modules/chip/Chip.variants.js +290 -0
- package/lib/module/modules/chip/ChipGroup.js +48 -0
- package/lib/module/modules/chip/MODULE.md +158 -0
- package/lib/module/modules/chip/index.js +13 -0
- package/lib/module/modules/combobox/Combobox.js +623 -0
- package/lib/module/modules/combobox/Combobox.variants.js +295 -0
- package/lib/module/modules/combobox/MODULE.md +193 -0
- package/lib/module/modules/combobox/comboboxKeys.js +19 -0
- package/lib/module/modules/combobox/comboboxKeys.web.js +76 -0
- package/lib/module/modules/combobox/index.js +13 -0
- package/lib/module/modules/composer/Composer.js +163 -0
- package/lib/module/modules/composer/Composer.variants.js +44 -0
- package/lib/module/modules/composer/MODULE.md +75 -0
- package/lib/module/modules/composer/index.js +4 -0
- package/lib/module/modules/copy-button/CopyButton.js +174 -0
- package/lib/module/modules/copy-button/CopyButton.variants.js +88 -0
- package/lib/module/modules/copy-button/MODULE.md +78 -0
- package/lib/module/modules/copy-button/index.js +4 -0
- package/lib/module/modules/data-table/DataTable.js +532 -0
- package/lib/module/modules/data-table/DataTable.variants.js +189 -0
- package/lib/module/modules/data-table/MODULE.md +146 -0
- package/lib/module/modules/data-table/index.js +10 -0
- package/lib/module/modules/date-picker/Calendar.js +414 -0
- package/lib/module/modules/date-picker/Calendar.keys.js +23 -0
- package/lib/module/modules/date-picker/Calendar.keys.web.js +83 -0
- package/lib/module/modules/date-picker/DatePicker.js +162 -0
- package/lib/module/modules/date-picker/DatePicker.variants.js +701 -0
- package/lib/module/modules/date-picker/DateRangePicker.js +87 -0
- package/lib/module/modules/date-picker/MODULE.md +190 -0
- package/lib/module/modules/date-picker/PickerField.js +151 -0
- package/lib/module/modules/date-picker/PickerShell.js +134 -0
- package/lib/module/modules/date-picker/TimePicker.js +179 -0
- package/lib/module/modules/date-picker/index.js +14 -0
- package/lib/module/modules/divider/Divider.js +8 -7
- package/lib/module/modules/divider/Divider.variants.js +6 -5
- package/lib/module/modules/divider/MODULE.md +8 -0
- package/lib/module/modules/drawer/Drawer.js +156 -62
- package/lib/module/modules/drawer/Drawer.variants.js +7 -20
- package/lib/module/modules/drawer/MODULE.md +93 -118
- package/lib/module/modules/empty-state/EmptyState.js +34 -31
- package/lib/module/modules/empty-state/EmptyState.variants.js +16 -0
- package/lib/module/modules/empty-state/MODULE.md +26 -7
- package/lib/module/modules/fab/Fab.js +192 -0
- package/lib/module/modules/fab/Fab.variants.js +360 -0
- package/lib/module/modules/fab/FabGroup.js +361 -0
- package/lib/module/modules/fab/MODULE.md +194 -0
- package/lib/module/modules/fab/index.js +13 -0
- package/lib/module/modules/file-grid/FileGrid.js +163 -0
- package/lib/module/modules/file-grid/FileGrid.variants.js +51 -0
- package/lib/module/modules/file-grid/MODULE.md +14 -0
- package/lib/module/modules/file-grid/index.js +4 -0
- package/lib/module/modules/file-upload/FileUpload.js +124 -34
- package/lib/module/modules/file-upload/FileUpload.variants.js +53 -8
- package/lib/module/modules/file-upload/MODULE.md +24 -4
- package/lib/module/modules/filter-sheet/FilterChip.js +32 -18
- package/lib/module/modules/filter-sheet/FilterSheet.js +17 -11
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js +24 -5
- package/lib/module/modules/filter-sheet/FilterSheetBody.js +180 -82
- package/lib/module/modules/filter-sheet/MODULE.md +31 -1
- package/lib/module/modules/folder-row/FolderRow.js +144 -0
- package/lib/module/modules/folder-row/FolderRow.variants.js +51 -0
- package/lib/module/modules/folder-row/MODULE.md +72 -0
- package/lib/module/modules/folder-row/index.js +4 -0
- package/lib/module/modules/form-field/FormField.js +104 -0
- package/lib/module/modules/form-field/FormField.variants.js +88 -0
- package/lib/module/modules/form-field/MODULE.md +103 -0
- package/lib/module/modules/form-field/index.js +4 -0
- package/lib/module/modules/gantt/Gantt.js +239 -0
- package/lib/module/modules/gantt/Gantt.variants.js +177 -0
- package/lib/module/modules/gantt/MODULE.md +81 -0
- package/lib/module/modules/gantt/index.js +5 -0
- package/lib/module/modules/image-viewer/ImageViewer.js +265 -0
- package/lib/module/modules/image-viewer/ImageViewer.variants.js +6 -0
- package/lib/module/modules/image-viewer/MODULE.md +63 -0
- package/lib/module/modules/image-viewer/index.js +4 -0
- package/lib/module/modules/input/Input.js +119 -48
- package/lib/module/modules/input/Input.variants.js +26 -11
- package/lib/module/modules/input/MODULE.md +38 -6
- package/lib/module/modules/limit-reached-modal/LimitReachedModal.js +90 -0
- package/lib/module/modules/limit-reached-modal/LimitReachedModal.variants.js +108 -0
- package/lib/module/modules/limit-reached-modal/MODULE.md +94 -0
- package/lib/module/modules/limit-reached-modal/index.js +11 -0
- package/lib/module/modules/list-item/ListItem.js +70 -31
- package/lib/module/modules/list-item/ListItem.variants.js +11 -2
- package/lib/module/modules/list-item/MODULE.md +8 -3
- package/lib/module/modules/markdown/MODULE.md +39 -5
- package/lib/module/modules/markdown/Markdown.js +107 -38
- package/lib/module/modules/markdown/Markdown.variants.js +8 -2
- package/lib/module/modules/markdown/parseMarkdown.js +3 -3
- package/lib/module/modules/menu/MODULE.md +56 -14
- package/lib/module/modules/menu/Menu.js +236 -68
- package/lib/module/modules/menu/Menu.variants.js +13 -3
- package/lib/module/modules/message-bubble/MODULE.md +41 -0
- package/lib/module/modules/message-bubble/MessageBubble.js +54 -0
- package/lib/module/modules/message-bubble/MessageBubble.variants.js +57 -0
- package/lib/module/modules/message-bubble/index.js +4 -0
- package/lib/module/modules/modal/MODULE.md +40 -3
- package/lib/module/modules/modal/Modal.js +135 -33
- package/lib/module/modules/modal/Modal.variants.js +2 -2
- package/lib/module/modules/more-items/MODULE.md +77 -0
- package/lib/module/modules/more-items/MoreItems.js +168 -0
- package/lib/module/modules/more-items/MoreItems.variants.js +83 -0
- package/lib/module/modules/more-items/index.js +4 -0
- package/lib/module/modules/multi-select/MODULE.md +89 -18
- package/lib/module/modules/multi-select/MultiSelect.js +239 -105
- package/lib/module/modules/multi-select/MultiSelect.variants.js +32 -7
- package/lib/module/modules/number-input/MODULE.md +41 -6
- package/lib/module/modules/number-input/NumberInput.js +124 -81
- package/lib/module/modules/number-input/NumberInput.variants.js +48 -11
- package/lib/module/modules/org-switcher/MODULE.md +133 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.js +295 -0
- package/lib/module/modules/org-switcher/OrgSwitcher.variants.js +188 -0
- package/lib/module/modules/org-switcher/index.js +9 -0
- package/lib/module/modules/pagination/MODULE.md +163 -0
- package/lib/module/modules/pagination/Pagination.js +236 -0
- package/lib/module/modules/pagination/Pagination.variants.js +309 -0
- package/lib/module/modules/pagination/PaginationControls.js +213 -0
- package/lib/module/modules/pagination/index.js +15 -0
- package/lib/module/modules/pin-input/MODULE.md +34 -15
- package/lib/module/modules/pin-input/PinInput.js +119 -81
- package/lib/module/modules/pin-input/PinInput.variants.js +15 -6
- package/lib/module/modules/progress-bar/MODULE.md +17 -7
- package/lib/module/modules/progress-bar/ProgressBar.js +97 -56
- package/lib/module/modules/progress-bar/ProgressBar.variants.js +16 -18
- package/lib/module/modules/radio-group/MODULE.md +42 -16
- package/lib/module/modules/radio-group/RadioGroup.js +172 -49
- package/lib/module/modules/radio-group/RadioGroup.variants.js +48 -11
- package/lib/module/modules/reorder/MODULE.md +106 -97
- package/lib/module/modules/reorder/Reorder.js +234 -197
- package/lib/module/modules/reorder/Reorder.variants.js +39 -15
- package/lib/module/modules/rich-text/MODULE.md +54 -0
- package/lib/module/modules/rich-text/RichText.js +382 -0
- package/lib/module/modules/rich-text/RichText.variants.js +17 -0
- package/lib/module/modules/rich-text/index.js +5 -0
- package/lib/module/modules/rich-text/parseRichText.js +133 -0
- package/lib/module/modules/rich-text-editor/MODULE.md +228 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.js +420 -0
- package/lib/module/modules/rich-text-editor/RichTextEditor.variants.js +319 -0
- package/lib/module/modules/rich-text-editor/index.js +10 -0
- package/lib/module/modules/screen/MODULE.md +64 -0
- package/lib/module/modules/screen/Screen.js +139 -0
- package/lib/module/modules/screen/Screen.variants.js +61 -0
- package/lib/module/modules/screen/index.js +10 -0
- package/lib/module/modules/search-bar/MODULE.md +115 -0
- package/lib/module/modules/search-bar/SearchBar.js +276 -0
- package/lib/module/modules/search-bar/SearchBar.variants.js +208 -0
- package/lib/module/modules/search-bar/index.js +12 -0
- package/lib/module/modules/section/MODULE.md +41 -0
- package/lib/module/modules/section/Section.js +35 -0
- package/lib/module/modules/section/Section.variants.js +24 -0
- package/lib/module/modules/section/index.js +10 -0
- package/lib/module/modules/section-list/MODULE.md +18 -0
- package/lib/module/modules/section-list/SectionList.js +64 -0
- package/lib/module/modules/section-list/SectionList.variants.js +11 -0
- package/lib/module/modules/section-list/index.js +4 -0
- package/lib/module/modules/segmented-control/MODULE.md +126 -0
- package/lib/module/modules/segmented-control/SegmentedControl.js +222 -0
- package/lib/module/modules/segmented-control/SegmentedControl.variants.js +168 -0
- package/lib/module/modules/segmented-control/index.js +13 -0
- package/lib/module/modules/select/MODULE.md +103 -15
- package/lib/module/modules/select/Select.js +223 -94
- package/lib/module/modules/select/Select.variants.js +64 -17
- package/lib/module/modules/skeleton/MODULE.md +37 -21
- package/lib/module/modules/skeleton/Skeleton.js +55 -46
- package/lib/module/modules/skeleton/Skeleton.variants.js +19 -76
- package/lib/module/modules/slider/MODULE.md +33 -5
- package/lib/module/modules/slider/Slider.js +68 -10
- package/lib/module/modules/slider/Slider.variants.js +60 -13
- package/lib/module/modules/spinner/MODULE.md +16 -6
- package/lib/module/modules/spinner/Spinner.js +20 -16
- package/lib/module/modules/spinner/Spinner.variants.js +5 -3
- package/lib/module/modules/stage-progress/MODULE.md +68 -0
- package/lib/module/modules/stage-progress/StageProgress.js +221 -0
- package/lib/module/modules/stage-progress/StageProgress.variants.js +169 -0
- package/lib/module/modules/stage-progress/index.js +4 -0
- package/lib/module/modules/stat-tile/MODULE.md +11 -2
- package/lib/module/modules/stat-tile/StatTile.js +76 -34
- package/lib/module/modules/stat-tile/StatTile.variants.js +8 -4
- package/lib/module/modules/state-block/MODULE.md +55 -0
- package/lib/module/modules/state-block/StateBlock.js +136 -0
- package/lib/module/modules/state-block/StateBlock.variants.js +62 -0
- package/lib/module/modules/state-block/index.js +10 -0
- package/lib/module/modules/stepper/MODULE.md +33 -6
- package/lib/module/modules/stepper/Stepper.js +108 -39
- package/lib/module/modules/stepper/Stepper.variants.js +6 -6
- package/lib/module/modules/surface/MODULE.md +59 -0
- package/lib/module/modules/surface/Surface.js +42 -0
- package/lib/module/modules/surface/Surface.variants.js +33 -0
- package/lib/module/modules/surface/index.js +4 -0
- package/lib/module/modules/swipeable-row/MODULE.md +129 -0
- package/lib/module/modules/swipeable-row/SwipeableRow.js +265 -0
- package/lib/module/modules/swipeable-row/SwipeableRow.variants.js +80 -0
- package/lib/module/modules/swipeable-row/index.js +4 -0
- package/lib/module/modules/switch/MODULE.md +16 -0
- package/lib/module/modules/switch/Switch.js +9 -3
- package/lib/module/modules/switch/Switch.variants.js +8 -0
- package/lib/module/modules/tabs/MODULE.md +48 -13
- package/lib/module/modules/tabs/Tabs.js +141 -73
- package/lib/module/modules/tabs/Tabs.variants.js +33 -9
- package/lib/module/modules/text/MODULE.md +54 -0
- package/lib/module/modules/text/Text.js +59 -0
- package/lib/module/modules/text/Text.variants.js +162 -0
- package/lib/module/modules/text/index.js +4 -0
- package/lib/module/modules/textarea/MODULE.md +31 -13
- package/lib/module/modules/textarea/Textarea.js +92 -46
- package/lib/module/modules/textarea/Textarea.variants.js +16 -10
- package/lib/module/modules/timeline/MODULE.md +39 -7
- package/lib/module/modules/timeline/Timeline.js +151 -77
- package/lib/module/modules/timeline/Timeline.variants.js +13 -0
- package/lib/module/modules/toast/MODULE.md +74 -11
- package/lib/module/modules/toast/Toast.js +118 -34
- package/lib/module/modules/toast/Toast.variants.js +42 -1
- package/lib/module/modules/toast/toastScreenReader.js +69 -0
- package/lib/module/modules/tooltip/MODULE.md +82 -28
- package/lib/module/modules/tooltip/Tooltip.js +126 -44
- package/lib/module/modules/tooltip/Tooltip.variants.js +11 -5
- package/lib/module/modules/typing-indicator/MODULE.md +48 -0
- package/lib/module/modules/typing-indicator/TypingIndicator.js +98 -0
- package/lib/module/modules/typing-indicator/TypingIndicator.variants.js +55 -0
- package/lib/module/modules/typing-indicator/index.js +4 -0
- package/lib/module/modules/unread-badge/MODULE.md +20 -0
- package/lib/module/modules/unread-badge/UnreadBadge.js +45 -0
- package/lib/module/modules/unread-badge/UnreadBadge.variants.js +66 -0
- package/lib/module/modules/unread-badge/index.js +4 -0
- package/lib/module/test/mocks/flashList.js +5 -0
- package/lib/module/test/perfHelpers.js +18 -0
- package/lib/module/theme/MODULE.md +9 -1
- package/lib/module/theme/hooks.js +11 -0
- package/lib/module/theme/index.js +3 -6
- package/lib/module/theme/platform/MODULE.md +20 -2
- package/lib/module/theme/platform/elevation.native.js +0 -44
- package/lib/module/theme/platform/floatingSurface.native.js +75 -0
- package/lib/module/theme/platform/highlight.native.js +59 -0
- package/lib/module/theme/platform/index.js +5 -0
- package/lib/module/theme/platform/motion.native.js +35 -0
- package/lib/module/theme/platform/stateLayer.native.js +14 -0
- package/lib/module/theme/platform/surfaces.native.js +11 -0
- package/lib/module/theme/provider/PixelizeProvider.js +18 -49
- package/lib/module/theme/provider/ThemeContext.js +6 -0
- package/lib/module/theme/provider/colorModeStorage.js +2 -2
- package/lib/module/theme/provider/index.js +1 -0
- package/lib/module/theme/provider/loadPalette.js +75 -0
- package/lib/module/theme/provider/types.js +4 -0
- package/lib/module/theme/provider/useTheme.js +1 -2
- package/lib/module/theme/provider/useThemeMode.js +1 -1
- package/lib/module/theme/tokens/MODULE.md +32 -28
- package/lib/module/theme/tokens/THEME-CONTRACT.md +137 -0
- package/lib/module/theme/tokens/assertPalette.js +29 -0
- package/lib/module/theme/tokens/brands/emerald/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/lavender/palette.light.js +3 -2
- package/lib/module/theme/tokens/brands/meadow/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/radiant/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/skyline/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/slate/palette.light.js +8 -10
- package/lib/module/theme/tokens/brands/storefront/palette.light.js +7 -6
- package/lib/module/theme/tokens/brands/zinc/palette.dark.js +3 -2
- package/lib/module/theme/tokens/brands/zinc/palette.light.js +3 -2
- package/lib/module/theme/tokens/builders/buildDarkPalette.js +3 -2
- package/lib/module/theme/tokens/builders/finalizePalette.js +34 -0
- package/lib/module/theme/tokens/builders/liftToContrast.js +44 -0
- package/lib/module/theme/tokens/builders/placeholderInk.js +22 -0
- package/lib/module/theme/tokens/builders/semanticText.js +14 -0
- package/lib/module/theme/tokens/builders/surfaceRungs.js +44 -0
- package/lib/module/theme/tokens/index.js +5 -0
- package/lib/module/theme/tokens/roles/index.js +14 -3
- package/lib/typescript/core/a11y/announce.d.ts +20 -0
- package/lib/typescript/core/a11y/announce.web.d.ts +27 -0
- package/lib/typescript/core/a11y/index.d.ts +21 -2
- package/lib/typescript/core/a11y/keyboard.d.ts +45 -0
- package/lib/typescript/core/a11y/keyboard.web.d.ts +69 -0
- package/lib/typescript/core/a11y/labels.d.ts +19 -0
- package/lib/typescript/core/device/index.d.ts +16 -0
- package/lib/typescript/core/gradient/AccentGradientFill.d.ts +7 -0
- package/lib/typescript/core/gradient/darkenHex.d.ts +2 -0
- package/lib/typescript/core/gradient/gradientStops.d.ts +10 -0
- package/lib/typescript/core/gradient/index.d.ts +5 -0
- package/lib/typescript/core/gradient/withAlpha.d.ts +2 -0
- package/lib/typescript/core/haptics/context.d.ts +3 -0
- package/lib/typescript/core/haptics/haptics.d.ts +33 -0
- package/lib/typescript/core/haptics/index.d.ts +6 -0
- package/lib/typescript/core/haptics/useHaptics.d.ts +12 -0
- package/lib/typescript/core/heading/index.d.ts +45 -0
- package/lib/typescript/core/icon/Icon.d.ts +18 -0
- package/lib/typescript/core/icon/icons/arrow-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/arrow-up.d.ts +3 -0
- package/lib/typescript/core/icon/icons/at-sign.d.ts +3 -0
- package/lib/typescript/core/icon/icons/bell.d.ts +3 -0
- package/lib/typescript/core/icon/icons/bold.d.ts +3 -0
- package/lib/typescript/core/icon/icons/building-2.d.ts +3 -0
- package/lib/typescript/core/icon/icons/calendar.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chart-column.d.ts +3 -0
- package/lib/typescript/core/icon/icons/check.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevron-up.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-left.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-right.d.ts +3 -0
- package/lib/typescript/core/icon/icons/chevrons-up-down.d.ts +3 -0
- package/lib/typescript/core/icon/icons/circle-alert.d.ts +3 -0
- package/lib/typescript/core/icon/icons/circle-check.d.ts +3 -0
- package/lib/typescript/core/icon/icons/clock.d.ts +3 -0
- package/lib/typescript/core/icon/icons/code.d.ts +3 -0
- package/lib/typescript/core/icon/icons/download.d.ts +3 -0
- package/lib/typescript/core/icon/icons/external-link.d.ts +3 -0
- package/lib/typescript/core/icon/icons/eye.d.ts +3 -0
- package/lib/typescript/core/icon/icons/file-text.d.ts +3 -0
- package/lib/typescript/core/icon/icons/filter.d.ts +3 -0
- package/lib/typescript/core/icon/icons/flag.d.ts +3 -0
- package/lib/typescript/core/icon/icons/folder.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-1.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-2.d.ts +3 -0
- package/lib/typescript/core/icon/icons/heading-3.d.ts +3 -0
- package/lib/typescript/core/icon/icons/image.d.ts +3 -0
- package/lib/typescript/core/icon/icons/inbox.d.ts +3 -0
- package/lib/typescript/core/icon/icons/info.d.ts +3 -0
- package/lib/typescript/core/icon/icons/italic.d.ts +3 -0
- package/lib/typescript/core/icon/icons/kanban.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layers.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layout-dashboard.d.ts +3 -0
- package/lib/typescript/core/icon/icons/layout-template.d.ts +3 -0
- package/lib/typescript/core/icon/icons/life-buoy.d.ts +3 -0
- package/lib/typescript/core/icon/icons/link.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-checks.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-ordered.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list-todo.d.ts +3 -0
- package/lib/typescript/core/icon/icons/list.d.ts +3 -0
- package/lib/typescript/core/icon/icons/log-out.d.ts +3 -0
- package/lib/typescript/core/icon/icons/map.d.ts +3 -0
- package/lib/typescript/core/icon/icons/message-square.d.ts +3 -0
- package/lib/typescript/core/icon/icons/milestone.d.ts +3 -0
- package/lib/typescript/core/icon/icons/minus.d.ts +3 -0
- package/lib/typescript/core/icon/icons/more-horizontal.d.ts +3 -0
- package/lib/typescript/core/icon/icons/paperclip.d.ts +3 -0
- package/lib/typescript/core/icon/icons/pencil.d.ts +3 -0
- package/lib/typescript/core/icon/icons/plus.d.ts +3 -0
- package/lib/typescript/core/icon/icons/quote.d.ts +3 -0
- package/lib/typescript/core/icon/icons/refresh-cw.d.ts +3 -0
- package/lib/typescript/core/icon/icons/save.d.ts +3 -0
- package/lib/typescript/core/icon/icons/search.d.ts +3 -0
- package/lib/typescript/core/icon/icons/send.d.ts +3 -0
- package/lib/typescript/core/icon/icons/settings.d.ts +3 -0
- package/lib/typescript/core/icon/icons/share.d.ts +3 -0
- package/lib/typescript/core/icon/icons/square-code.d.ts +3 -0
- package/lib/typescript/core/icon/icons/star.d.ts +3 -0
- package/lib/typescript/core/icon/icons/strikethrough.d.ts +3 -0
- package/lib/typescript/core/icon/icons/tag.d.ts +3 -0
- package/lib/typescript/core/icon/icons/trash.d.ts +3 -0
- package/lib/typescript/core/icon/icons/trending-up.d.ts +3 -0
- package/lib/typescript/core/icon/icons/triangle-alert.d.ts +3 -0
- package/lib/typescript/core/icon/icons/underline.d.ts +3 -0
- package/lib/typescript/core/icon/icons/upload.d.ts +3 -0
- package/lib/typescript/core/icon/icons/user.d.ts +3 -0
- package/lib/typescript/core/icon/icons/users.d.ts +3 -0
- package/lib/typescript/core/icon/icons/x.d.ts +3 -0
- package/lib/typescript/core/icon/index.d.ts +6 -94
- package/lib/typescript/core/icon/names.d.ts +2 -0
- package/lib/typescript/core/icon/resolve.d.ts +4 -0
- package/lib/typescript/core/icon/types.d.ts +13 -0
- package/lib/typescript/core/list/VirtualList.d.ts +55 -0
- package/lib/typescript/core/list/index.d.ts +3 -0
- package/lib/typescript/core/media/MediaImage.d.ts +28 -0
- package/lib/typescript/core/media/expoImage.d.ts +23 -0
- package/lib/typescript/core/media/index.d.ts +7 -0
- package/lib/typescript/core/media/pickers.d.ts +27 -0
- package/lib/typescript/core/motion/config.d.ts +57 -0
- package/lib/typescript/core/motion/index.d.ts +10 -0
- package/lib/typescript/core/motion/presets.d.ts +49 -0
- package/lib/typescript/core/motion/useAnimatedValue.d.ts +11 -0
- package/lib/typescript/core/motion/useMotion.d.ts +34 -0
- package/lib/typescript/core/motion/usePressState.d.ts +21 -0
- package/lib/typescript/core/style/index.d.ts +4 -0
- package/lib/typescript/core/style/radius.d.ts +2 -0
- package/lib/typescript/core/style/sx.d.ts +86 -0
- package/lib/typescript/core/style/useThemedStyles.d.ts +5 -0
- package/lib/typescript/index.d.ts +136 -2
- package/lib/typescript/modules/accordion/Accordion.d.ts +12 -23
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts +7 -7
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +2 -1
- package/lib/typescript/modules/app-bar/AppBar.d.ts +37 -0
- package/lib/typescript/modules/app-bar/AppBar.variants.d.ts +35 -0
- package/lib/typescript/modules/app-bar/index.d.ts +9 -0
- package/lib/typescript/modules/avatar/Avatar.d.ts +23 -3
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts +32 -1
- package/lib/typescript/modules/avatar/index.d.ts +1 -1
- package/lib/typescript/modules/avatar-group/AvatarGroup.d.ts +30 -0
- package/lib/typescript/modules/avatar-group/AvatarGroup.variants.d.ts +94 -0
- package/lib/typescript/modules/avatar-group/index.d.ts +9 -0
- package/lib/typescript/modules/badge/Badge.d.ts +3 -1
- package/lib/typescript/modules/badge/Badge.variants.d.ts +8 -4
- package/lib/typescript/modules/banner/Banner.d.ts +37 -0
- package/lib/typescript/modules/banner/Banner.variants.d.ts +49 -0
- package/lib/typescript/modules/banner/index.d.ts +5 -0
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +9 -8
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +23 -12
- package/lib/typescript/modules/bottom-nav/BottomNavTab.d.ts +34 -0
- package/lib/typescript/modules/bottom-sheet/BottomSheet.d.ts +29 -0
- package/lib/typescript/modules/bottom-sheet/BottomSheet.variants.d.ts +15 -0
- package/lib/typescript/modules/bottom-sheet/index.d.ts +3 -0
- package/lib/typescript/modules/button/Button.d.ts +9 -13
- package/lib/typescript/modules/button/Button.variants.d.ts +28 -15
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts +0 -17
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +40 -61
- package/lib/typescript/modules/card/Card.d.ts +7 -5
- package/lib/typescript/modules/card/Card.variants.d.ts +2 -2
- package/lib/typescript/modules/charts/BarChart.d.ts +26 -0
- package/lib/typescript/modules/charts/ChartLegend.d.ts +16 -0
- package/lib/typescript/modules/charts/Charts.variants.d.ts +229 -2
- package/lib/typescript/modules/charts/DonutChart.d.ts +3 -0
- package/lib/typescript/modules/charts/LineChart.d.ts +30 -0
- package/lib/typescript/modules/charts/PieChart.d.ts +18 -0
- package/lib/typescript/modules/charts/index.d.ts +6 -0
- package/lib/typescript/modules/checkbox/Checkbox.d.ts +4 -1
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +14 -9
- package/lib/typescript/modules/chip/Chip.d.ts +40 -0
- package/lib/typescript/modules/chip/Chip.variants.d.ts +202 -0
- package/lib/typescript/modules/chip/ChipGroup.d.ts +22 -0
- package/lib/typescript/modules/chip/index.d.ts +12 -0
- package/lib/typescript/modules/combobox/Combobox.d.ts +81 -0
- package/lib/typescript/modules/combobox/Combobox.variants.d.ts +225 -0
- package/lib/typescript/modules/combobox/comboboxKeys.d.ts +25 -0
- package/lib/typescript/modules/combobox/comboboxKeys.web.d.ts +23 -0
- package/lib/typescript/modules/combobox/index.d.ts +11 -0
- package/lib/typescript/modules/composer/Composer.d.ts +28 -0
- package/lib/typescript/modules/composer/Composer.variants.d.ts +7 -0
- package/lib/typescript/modules/composer/index.d.ts +3 -0
- package/lib/typescript/modules/copy-button/CopyButton.d.ts +21 -0
- package/lib/typescript/modules/copy-button/CopyButton.variants.d.ts +42 -0
- package/lib/typescript/modules/copy-button/index.d.ts +4 -0
- package/lib/typescript/modules/data-table/DataTable.d.ts +44 -0
- package/lib/typescript/modules/data-table/DataTable.variants.d.ts +118 -0
- package/lib/typescript/modules/data-table/index.d.ts +9 -0
- package/lib/typescript/modules/date-picker/Calendar.d.ts +42 -0
- package/lib/typescript/modules/date-picker/Calendar.keys.d.ts +19 -0
- package/lib/typescript/modules/date-picker/Calendar.keys.web.d.ts +35 -0
- package/lib/typescript/modules/date-picker/DatePicker.d.ts +40 -0
- package/lib/typescript/modules/date-picker/DatePicker.variants.d.ts +334 -0
- package/lib/typescript/modules/date-picker/DateRangePicker.d.ts +32 -0
- package/lib/typescript/modules/date-picker/PickerField.d.ts +26 -0
- package/lib/typescript/modules/date-picker/PickerShell.d.ts +29 -0
- package/lib/typescript/modules/date-picker/TimePicker.d.ts +14 -0
- package/lib/typescript/modules/date-picker/index.d.ts +16 -0
- package/lib/typescript/modules/divider/Divider.variants.d.ts +6 -6
- package/lib/typescript/modules/drawer/Drawer.d.ts +2 -1
- package/lib/typescript/modules/drawer/Drawer.variants.d.ts +4 -13
- package/lib/typescript/modules/empty-state/EmptyState.d.ts +9 -4
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +8 -1
- package/lib/typescript/modules/fab/Fab.d.ts +74 -0
- package/lib/typescript/modules/fab/Fab.variants.d.ts +231 -0
- package/lib/typescript/modules/fab/FabGroup.d.ts +66 -0
- package/lib/typescript/modules/fab/index.d.ts +12 -0
- package/lib/typescript/modules/file-grid/FileGrid.d.ts +26 -0
- package/lib/typescript/modules/file-grid/FileGrid.variants.d.ts +26 -0
- package/lib/typescript/modules/file-grid/index.d.ts +4 -0
- package/lib/typescript/modules/file-upload/FileUpload.d.ts +3 -0
- package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts +22 -5
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +30 -5
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +13 -8
- package/lib/typescript/modules/folder-row/FolderRow.d.ts +16 -0
- package/lib/typescript/modules/folder-row/FolderRow.variants.d.ts +29 -0
- package/lib/typescript/modules/folder-row/index.d.ts +3 -0
- package/lib/typescript/modules/form-field/FormField.d.ts +29 -0
- package/lib/typescript/modules/form-field/FormField.variants.d.ts +93 -0
- package/lib/typescript/modules/form-field/index.d.ts +4 -0
- package/lib/typescript/modules/gantt/Gantt.d.ts +19 -0
- package/lib/typescript/modules/gantt/Gantt.variants.d.ts +103 -0
- package/lib/typescript/modules/gantt/index.d.ts +5 -0
- package/lib/typescript/modules/image-viewer/ImageViewer.d.ts +27 -0
- package/lib/typescript/modules/image-viewer/ImageViewer.variants.d.ts +3 -0
- package/lib/typescript/modules/image-viewer/index.d.ts +3 -0
- package/lib/typescript/modules/input/Input.d.ts +9 -1
- package/lib/typescript/modules/input/Input.variants.d.ts +32 -12
- package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.d.ts +34 -0
- package/lib/typescript/modules/limit-reached-modal/LimitReachedModal.variants.d.ts +46 -0
- package/lib/typescript/modules/limit-reached-modal/index.d.ts +10 -0
- package/lib/typescript/modules/list-item/ListItem.d.ts +3 -1
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts +138 -2
- package/lib/typescript/modules/markdown/Markdown.d.ts +13 -0
- package/lib/typescript/modules/markdown/Markdown.variants.d.ts +8 -2
- package/lib/typescript/modules/markdown/parseMarkdown.d.ts +3 -2
- package/lib/typescript/modules/menu/Menu.d.ts +8 -18
- package/lib/typescript/modules/menu/Menu.variants.d.ts +8 -1
- package/lib/typescript/modules/message-bubble/MessageBubble.d.ts +25 -0
- package/lib/typescript/modules/message-bubble/MessageBubble.variants.d.ts +30 -0
- package/lib/typescript/modules/message-bubble/index.d.ts +4 -0
- package/lib/typescript/modules/modal/Modal.d.ts +12 -0
- package/lib/typescript/modules/modal/Modal.variants.d.ts +1 -1
- package/lib/typescript/modules/more-items/MoreItems.d.ts +15 -0
- package/lib/typescript/modules/more-items/MoreItems.variants.d.ts +30 -0
- package/lib/typescript/modules/more-items/index.d.ts +4 -0
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts +1 -16
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +24 -5
- package/lib/typescript/modules/number-input/NumberInput.d.ts +6 -0
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +64 -12
- package/lib/typescript/modules/org-switcher/OrgSwitcher.d.ts +44 -0
- package/lib/typescript/modules/org-switcher/OrgSwitcher.variants.d.ts +139 -0
- package/lib/typescript/modules/org-switcher/index.d.ts +8 -0
- package/lib/typescript/modules/pagination/Pagination.d.ts +45 -0
- package/lib/typescript/modules/pagination/Pagination.variants.d.ts +240 -0
- package/lib/typescript/modules/pagination/PaginationControls.d.ts +47 -0
- package/lib/typescript/modules/pagination/index.d.ts +14 -0
- package/lib/typescript/modules/pin-input/PinInput.d.ts +6 -0
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +22 -5
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +8 -4
- package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts +13 -15
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts +6 -0
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +32 -11
- package/lib/typescript/modules/reorder/Reorder.d.ts +28 -23
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts +25 -9
- package/lib/typescript/modules/rich-text/RichText.d.ts +15 -0
- package/lib/typescript/modules/rich-text/RichText.variants.d.ts +15 -0
- package/lib/typescript/modules/rich-text/index.d.ts +5 -0
- package/lib/typescript/modules/rich-text/parseRichText.d.ts +30 -0
- package/lib/typescript/modules/rich-text-editor/RichTextEditor.d.ts +62 -0
- package/lib/typescript/modules/rich-text-editor/RichTextEditor.variants.d.ts +139 -0
- package/lib/typescript/modules/rich-text-editor/index.d.ts +9 -0
- package/lib/typescript/modules/screen/Screen.d.ts +30 -0
- package/lib/typescript/modules/screen/Screen.variants.d.ts +25 -0
- package/lib/typescript/modules/screen/index.d.ts +9 -0
- package/lib/typescript/modules/search-bar/SearchBar.d.ts +47 -0
- package/lib/typescript/modules/search-bar/SearchBar.variants.d.ts +179 -0
- package/lib/typescript/modules/search-bar/index.d.ts +11 -0
- package/lib/typescript/modules/section/Section.d.ts +17 -0
- package/lib/typescript/modules/section/Section.variants.d.ts +9 -0
- package/lib/typescript/modules/section/index.d.ts +8 -0
- package/lib/typescript/modules/section-list/SectionList.d.ts +26 -0
- package/lib/typescript/modules/section-list/SectionList.variants.d.ts +3 -0
- package/lib/typescript/modules/section-list/index.d.ts +3 -0
- package/lib/typescript/modules/segmented-control/SegmentedControl.d.ts +45 -0
- package/lib/typescript/modules/segmented-control/SegmentedControl.variants.d.ts +143 -0
- package/lib/typescript/modules/segmented-control/index.d.ts +11 -0
- package/lib/typescript/modules/select/Select.d.ts +5 -15
- package/lib/typescript/modules/select/Select.variants.d.ts +45 -12
- package/lib/typescript/modules/select/index.d.ts +1 -1
- package/lib/typescript/modules/skeleton/Skeleton.d.ts +3 -13
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +14 -69
- package/lib/typescript/modules/slider/Slider.variants.d.ts +35 -14
- package/lib/typescript/modules/spinner/Spinner.variants.d.ts +6 -4
- package/lib/typescript/modules/stage-progress/StageProgress.d.ts +18 -0
- package/lib/typescript/modules/stage-progress/StageProgress.variants.d.ts +107 -0
- package/lib/typescript/modules/stage-progress/index.d.ts +4 -0
- package/lib/typescript/modules/stat-tile/StatTile.d.ts +4 -0
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts +7 -5
- package/lib/typescript/modules/state-block/StateBlock.d.ts +55 -0
- package/lib/typescript/modules/state-block/StateBlock.variants.d.ts +31 -0
- package/lib/typescript/modules/state-block/index.d.ts +10 -0
- package/lib/typescript/modules/stepper/Stepper.d.ts +4 -0
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts +7 -7
- package/lib/typescript/modules/surface/Surface.d.ts +19 -0
- package/lib/typescript/modules/surface/Surface.variants.d.ts +15 -0
- package/lib/typescript/modules/surface/index.d.ts +4 -0
- package/lib/typescript/modules/swipeable-row/SwipeableRow.d.ts +35 -0
- package/lib/typescript/modules/swipeable-row/SwipeableRow.variants.d.ts +27 -0
- package/lib/typescript/modules/swipeable-row/index.d.ts +4 -0
- package/lib/typescript/modules/switch/Switch.variants.d.ts +9 -1
- package/lib/typescript/modules/tabs/Tabs.d.ts +8 -6
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts +20 -7
- package/lib/typescript/modules/text/Text.d.ts +27 -0
- package/lib/typescript/modules/text/Text.variants.d.ts +21 -0
- package/lib/typescript/modules/text/index.d.ts +4 -0
- package/lib/typescript/modules/textarea/Textarea.d.ts +5 -0
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts +15 -8
- package/lib/typescript/modules/timeline/Timeline.d.ts +9 -13
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts +17 -1
- package/lib/typescript/modules/toast/Toast.d.ts +13 -3
- package/lib/typescript/modules/toast/Toast.variants.d.ts +33 -3
- package/lib/typescript/modules/toast/index.d.ts +1 -1
- package/lib/typescript/modules/toast/toastScreenReader.d.ts +22 -0
- package/lib/typescript/modules/tooltip/Tooltip.d.ts +34 -11
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +11 -5
- package/lib/typescript/modules/typing-indicator/TypingIndicator.d.ts +28 -0
- package/lib/typescript/modules/typing-indicator/TypingIndicator.variants.d.ts +32 -0
- package/lib/typescript/modules/typing-indicator/index.d.ts +4 -0
- package/lib/typescript/modules/unread-badge/UnreadBadge.d.ts +15 -0
- package/lib/typescript/modules/unread-badge/UnreadBadge.variants.d.ts +56 -0
- package/lib/typescript/modules/unread-badge/index.d.ts +4 -0
- package/lib/typescript/test/mocks/flashList.d.ts +3 -0
- package/lib/typescript/test/perfHelpers.d.ts +9 -0
- package/lib/typescript/theme/hooks.d.ts +11 -0
- package/lib/typescript/theme/index.d.ts +4 -3
- package/lib/typescript/theme/platform/elevation.native.d.ts +0 -30
- package/lib/typescript/theme/platform/floatingSurface.native.d.ts +10 -0
- package/lib/typescript/theme/platform/highlight.native.d.ts +17 -0
- package/lib/typescript/theme/platform/index.d.ts +9 -0
- package/lib/typescript/theme/platform/motion.native.d.ts +35 -0
- package/lib/typescript/theme/platform/stateLayer.native.d.ts +11 -0
- package/lib/typescript/theme/platform/surfaces.native.d.ts +8 -0
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts +3 -80
- package/lib/typescript/theme/provider/ThemeContext.d.ts +4 -0
- package/lib/typescript/theme/provider/index.d.ts +2 -1
- package/lib/typescript/theme/provider/loadPalette.d.ts +9 -0
- package/lib/typescript/theme/provider/types.d.ts +49 -0
- package/lib/typescript/theme/provider/useTheme.d.ts +1 -2
- package/lib/typescript/theme/provider/useThemeMode.d.ts +1 -1
- package/lib/typescript/theme/tokens/assertPalette.d.ts +10 -0
- package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts +4 -3
- package/lib/typescript/theme/tokens/builders/finalizePalette.d.ts +4 -0
- package/lib/typescript/theme/tokens/builders/liftToContrast.d.ts +9 -0
- package/lib/typescript/theme/tokens/builders/placeholderInk.d.ts +13 -0
- package/lib/typescript/theme/tokens/builders/semanticText.d.ts +4 -0
- package/lib/typescript/theme/tokens/builders/surfaceRungs.d.ts +12 -0
- package/lib/typescript/theme/tokens/index.d.ts +5 -0
- package/lib/typescript/theme/tokens/roles/index.d.ts +8 -0
- package/lib/typescript/theme/tokens/types.d.ts +8 -7
- package/package.json +201 -19
- package/registry.json +177 -2
- package/lib/module/core/a11y/index.js.map +0 -1
- package/lib/module/core/icon/index.js.map +0 -1
- package/lib/module/core/style/index.js.map +0 -1
- package/lib/module/core/style/layoutStyle.js.map +0 -1
- package/lib/module/core/style/variants.js.map +0 -1
- package/lib/module/index.js.map +0 -1
- package/lib/module/modules/accordion/Accordion.js.map +0 -1
- package/lib/module/modules/accordion/Accordion.variants.js.map +0 -1
- package/lib/module/modules/accordion/index.js.map +0 -1
- package/lib/module/modules/alert-dialog/AlertDialog.js.map +0 -1
- package/lib/module/modules/alert-dialog/AlertDialog.variants.js.map +0 -1
- package/lib/module/modules/alert-dialog/index.js.map +0 -1
- package/lib/module/modules/avatar/Avatar.js.map +0 -1
- package/lib/module/modules/avatar/Avatar.variants.js.map +0 -1
- package/lib/module/modules/avatar/index.js.map +0 -1
- package/lib/module/modules/badge/Badge.js.map +0 -1
- package/lib/module/modules/badge/Badge.variants.js.map +0 -1
- package/lib/module/modules/badge/index.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.search.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNav.variants.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNavIconWithBadge.js.map +0 -1
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js.map +0 -1
- package/lib/module/modules/bottom-nav/index.js.map +0 -1
- package/lib/module/modules/button/Button.js.map +0 -1
- package/lib/module/modules/button/Button.variants.js.map +0 -1
- package/lib/module/modules/button/index.js.map +0 -1
- package/lib/module/modules/button-group/ButtonGroup.js.map +0 -1
- package/lib/module/modules/button-group/ButtonGroup.variants.js.map +0 -1
- package/lib/module/modules/button-group/index.js.map +0 -1
- package/lib/module/modules/card/Card.js.map +0 -1
- package/lib/module/modules/card/Card.variants.js.map +0 -1
- package/lib/module/modules/card/index.js.map +0 -1
- package/lib/module/modules/charts/BarList.js.map +0 -1
- package/lib/module/modules/charts/Charts.variants.js.map +0 -1
- package/lib/module/modules/charts/DonutChart.js.map +0 -1
- package/lib/module/modules/charts/Sparkline.js.map +0 -1
- package/lib/module/modules/charts/index.js.map +0 -1
- package/lib/module/modules/checkbox/Checkbox.js.map +0 -1
- package/lib/module/modules/checkbox/Checkbox.variants.js.map +0 -1
- package/lib/module/modules/checkbox/index.js.map +0 -1
- package/lib/module/modules/divider/Divider.js.map +0 -1
- package/lib/module/modules/divider/Divider.variants.js.map +0 -1
- package/lib/module/modules/divider/index.js.map +0 -1
- package/lib/module/modules/drawer/Drawer.js.map +0 -1
- package/lib/module/modules/drawer/Drawer.variants.js.map +0 -1
- package/lib/module/modules/drawer/index.js.map +0 -1
- package/lib/module/modules/empty-state/EmptyState.js.map +0 -1
- package/lib/module/modules/empty-state/EmptyState.variants.js.map +0 -1
- package/lib/module/modules/empty-state/index.js.map +0 -1
- package/lib/module/modules/file-upload/FileUpload.js.map +0 -1
- package/lib/module/modules/file-upload/FileUpload.variants.js.map +0 -1
- package/lib/module/modules/file-upload/index.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterChip.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheet.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js.map +0 -1
- package/lib/module/modules/filter-sheet/FilterSheetBody.js.map +0 -1
- package/lib/module/modules/filter-sheet/filterSheet.helpers.js.map +0 -1
- package/lib/module/modules/filter-sheet/index.js.map +0 -1
- package/lib/module/modules/input/Input.js.map +0 -1
- package/lib/module/modules/input/Input.variants.js.map +0 -1
- package/lib/module/modules/input/index.js.map +0 -1
- package/lib/module/modules/list-item/ListItem.js.map +0 -1
- package/lib/module/modules/list-item/ListItem.variants.js.map +0 -1
- package/lib/module/modules/list-item/index.js.map +0 -1
- package/lib/module/modules/markdown/Markdown.js.map +0 -1
- package/lib/module/modules/markdown/Markdown.variants.js.map +0 -1
- package/lib/module/modules/markdown/index.js.map +0 -1
- package/lib/module/modules/markdown/parseMarkdown.js.map +0 -1
- package/lib/module/modules/menu/Menu.js.map +0 -1
- package/lib/module/modules/menu/Menu.variants.js.map +0 -1
- package/lib/module/modules/menu/index.js.map +0 -1
- package/lib/module/modules/modal/Modal.js.map +0 -1
- package/lib/module/modules/modal/Modal.variants.js.map +0 -1
- package/lib/module/modules/modal/ModalPortalContext.js.map +0 -1
- package/lib/module/modules/modal/ModalPortalProvider.js.map +0 -1
- package/lib/module/modules/modal/index.js.map +0 -1
- package/lib/module/modules/modal/renderWebPortal.js.map +0 -1
- package/lib/module/modules/modal/renderWebPortal.web.js.map +0 -1
- package/lib/module/modules/multi-select/MultiSelect.js.map +0 -1
- package/lib/module/modules/multi-select/MultiSelect.variants.js.map +0 -1
- package/lib/module/modules/multi-select/index.js.map +0 -1
- package/lib/module/modules/number-input/NumberInput.js.map +0 -1
- package/lib/module/modules/number-input/NumberInput.variants.js.map +0 -1
- package/lib/module/modules/number-input/index.js.map +0 -1
- package/lib/module/modules/pin-input/PinInput.js.map +0 -1
- package/lib/module/modules/pin-input/PinInput.variants.js.map +0 -1
- package/lib/module/modules/pin-input/index.js.map +0 -1
- package/lib/module/modules/progress-bar/ProgressBar.js.map +0 -1
- package/lib/module/modules/progress-bar/ProgressBar.variants.js.map +0 -1
- package/lib/module/modules/progress-bar/index.js.map +0 -1
- package/lib/module/modules/radio-group/RadioGroup.js.map +0 -1
- package/lib/module/modules/radio-group/RadioGroup.variants.js.map +0 -1
- package/lib/module/modules/radio-group/index.js.map +0 -1
- package/lib/module/modules/reorder/Reorder.js.map +0 -1
- package/lib/module/modules/reorder/Reorder.variants.js.map +0 -1
- package/lib/module/modules/reorder/index.js.map +0 -1
- package/lib/module/modules/select/Select.js.map +0 -1
- package/lib/module/modules/select/Select.variants.js.map +0 -1
- package/lib/module/modules/select/index.js.map +0 -1
- package/lib/module/modules/skeleton/Skeleton.js.map +0 -1
- package/lib/module/modules/skeleton/Skeleton.variants.js.map +0 -1
- package/lib/module/modules/skeleton/index.js.map +0 -1
- package/lib/module/modules/slider/Slider.js.map +0 -1
- package/lib/module/modules/slider/Slider.variants.js.map +0 -1
- package/lib/module/modules/slider/index.js.map +0 -1
- package/lib/module/modules/spinner/Spinner.js.map +0 -1
- package/lib/module/modules/spinner/Spinner.variants.js.map +0 -1
- package/lib/module/modules/spinner/index.js.map +0 -1
- package/lib/module/modules/stat-tile/StatTile.js.map +0 -1
- package/lib/module/modules/stat-tile/StatTile.variants.js.map +0 -1
- package/lib/module/modules/stat-tile/index.js.map +0 -1
- package/lib/module/modules/stepper/Stepper.js.map +0 -1
- package/lib/module/modules/stepper/Stepper.variants.js.map +0 -1
- package/lib/module/modules/stepper/index.js.map +0 -1
- package/lib/module/modules/switch/Switch.js.map +0 -1
- package/lib/module/modules/switch/Switch.variants.js.map +0 -1
- package/lib/module/modules/switch/index.js.map +0 -1
- package/lib/module/modules/tabs/Tabs.js.map +0 -1
- package/lib/module/modules/tabs/Tabs.variants.js.map +0 -1
- package/lib/module/modules/tabs/index.js.map +0 -1
- package/lib/module/modules/textarea/Textarea.js.map +0 -1
- package/lib/module/modules/textarea/Textarea.variants.js.map +0 -1
- package/lib/module/modules/textarea/index.js.map +0 -1
- package/lib/module/modules/timeline/Timeline.js.map +0 -1
- package/lib/module/modules/timeline/Timeline.variants.js.map +0 -1
- package/lib/module/modules/timeline/index.js.map +0 -1
- package/lib/module/modules/toast/Toast.js.map +0 -1
- package/lib/module/modules/toast/Toast.variants.js.map +0 -1
- package/lib/module/modules/toast/index.js.map +0 -1
- package/lib/module/modules/tooltip/Tooltip.js.map +0 -1
- package/lib/module/modules/tooltip/Tooltip.variants.js.map +0 -1
- package/lib/module/modules/tooltip/index.js.map +0 -1
- package/lib/module/theme/index.js.map +0 -1
- package/lib/module/theme/platform/colorScheme.native.js.map +0 -1
- package/lib/module/theme/platform/elevation.native.js.map +0 -1
- package/lib/module/theme/platform/fonts.native.js.map +0 -1
- package/lib/module/theme/platform/index.js.map +0 -1
- package/lib/module/theme/platform/units.native.js.map +0 -1
- package/lib/module/theme/provider/PixelizeProvider.js.map +0 -1
- package/lib/module/theme/provider/colorModeStorage.js.map +0 -1
- package/lib/module/theme/provider/index.js.map +0 -1
- package/lib/module/theme/provider/useTheme.js.map +0 -1
- package/lib/module/theme/provider/useThemeColors.js.map +0 -1
- package/lib/module/theme/provider/useThemeMode.js.map +0 -1
- package/lib/module/theme/tokens/brands/emerald/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/emerald/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/index.js.map +0 -1
- package/lib/module/theme/tokens/brands/lavender/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/lavender/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/meadow/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/meadow/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/radiant/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/radiant/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/rosewood/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/skyline/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/skyline/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/slate/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/slate/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/storefront/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/storefront/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/brands/zinc/palette.dark.js.map +0 -1
- package/lib/module/theme/tokens/brands/zinc/palette.light.js.map +0 -1
- package/lib/module/theme/tokens/builders/accentText.js.map +0 -1
- package/lib/module/theme/tokens/builders/buildBrandTokens.js.map +0 -1
- package/lib/module/theme/tokens/builders/buildDarkPalette.js.map +0 -1
- package/lib/module/theme/tokens/builders/color.js.map +0 -1
- package/lib/module/theme/tokens/index.js.map +0 -1
- package/lib/module/theme/tokens/primitives/borderWidths.js.map +0 -1
- package/lib/module/theme/tokens/primitives/breakpoints.js.map +0 -1
- package/lib/module/theme/tokens/primitives/elevation.js.map +0 -1
- package/lib/module/theme/tokens/primitives/fontSizes.js.map +0 -1
- package/lib/module/theme/tokens/primitives/fontWeights.js.map +0 -1
- package/lib/module/theme/tokens/primitives/index.js.map +0 -1
- package/lib/module/theme/tokens/primitives/letterSpacings.js.map +0 -1
- package/lib/module/theme/tokens/primitives/lineHeights.js.map +0 -1
- package/lib/module/theme/tokens/primitives/radii.js.map +0 -1
- package/lib/module/theme/tokens/primitives/sizes.js.map +0 -1
- package/lib/module/theme/tokens/primitives/space.js.map +0 -1
- package/lib/module/theme/tokens/primitives/zIndices.js.map +0 -1
- package/lib/module/theme/tokens/roles/index.js.map +0 -1
- package/lib/module/theme/tokens/types.js.map +0 -1
- package/lib/typescript/core/a11y/index.d.ts.map +0 -1
- package/lib/typescript/core/icon/index.d.ts.map +0 -1
- package/lib/typescript/core/style/index.d.ts.map +0 -1
- package/lib/typescript/core/style/layoutStyle.d.ts.map +0 -1
- package/lib/typescript/core/style/variants.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/Accordion.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts.map +0 -1
- package/lib/typescript/modules/accordion/index.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts.map +0 -1
- package/lib/typescript/modules/alert-dialog/index.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/Avatar.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts.map +0 -1
- package/lib/typescript/modules/avatar/index.d.ts.map +0 -1
- package/lib/typescript/modules/badge/Badge.d.ts.map +0 -1
- package/lib/typescript/modules/badge/Badge.variants.d.ts.map +0 -1
- package/lib/typescript/modules/badge/index.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNavIconWithBadge.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts.map +0 -1
- package/lib/typescript/modules/bottom-nav/index.d.ts.map +0 -1
- package/lib/typescript/modules/button/Button.d.ts.map +0 -1
- package/lib/typescript/modules/button/Button.variants.d.ts.map +0 -1
- package/lib/typescript/modules/button/index.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts.map +0 -1
- package/lib/typescript/modules/button-group/index.d.ts.map +0 -1
- package/lib/typescript/modules/card/Card.d.ts.map +0 -1
- package/lib/typescript/modules/card/Card.variants.d.ts.map +0 -1
- package/lib/typescript/modules/card/index.d.ts.map +0 -1
- package/lib/typescript/modules/charts/BarList.d.ts.map +0 -1
- package/lib/typescript/modules/charts/Charts.variants.d.ts.map +0 -1
- package/lib/typescript/modules/charts/DonutChart.d.ts.map +0 -1
- package/lib/typescript/modules/charts/Sparkline.d.ts.map +0 -1
- package/lib/typescript/modules/charts/index.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/Checkbox.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts.map +0 -1
- package/lib/typescript/modules/checkbox/index.d.ts.map +0 -1
- package/lib/typescript/modules/divider/Divider.d.ts.map +0 -1
- package/lib/typescript/modules/divider/Divider.variants.d.ts.map +0 -1
- package/lib/typescript/modules/divider/index.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/Drawer.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/Drawer.variants.d.ts.map +0 -1
- package/lib/typescript/modules/drawer/index.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/EmptyState.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts.map +0 -1
- package/lib/typescript/modules/empty-state/index.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/FileUpload.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts.map +0 -1
- package/lib/typescript/modules/file-upload/index.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterChip.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts.map +0 -1
- package/lib/typescript/modules/filter-sheet/index.d.ts.map +0 -1
- package/lib/typescript/modules/input/Input.d.ts.map +0 -1
- package/lib/typescript/modules/input/Input.variants.d.ts.map +0 -1
- package/lib/typescript/modules/input/index.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/ListItem.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/ListItem.variants.d.ts.map +0 -1
- package/lib/typescript/modules/list-item/index.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/Markdown.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/Markdown.variants.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/index.d.ts.map +0 -1
- package/lib/typescript/modules/markdown/parseMarkdown.d.ts.map +0 -1
- package/lib/typescript/modules/menu/Menu.d.ts.map +0 -1
- package/lib/typescript/modules/menu/Menu.variants.d.ts.map +0 -1
- package/lib/typescript/modules/menu/index.d.ts.map +0 -1
- package/lib/typescript/modules/modal/Modal.d.ts.map +0 -1
- package/lib/typescript/modules/modal/Modal.variants.d.ts.map +0 -1
- package/lib/typescript/modules/modal/ModalPortalContext.d.ts.map +0 -1
- package/lib/typescript/modules/modal/ModalPortalProvider.d.ts.map +0 -1
- package/lib/typescript/modules/modal/index.d.ts.map +0 -1
- package/lib/typescript/modules/modal/renderWebPortal.d.ts.map +0 -1
- package/lib/typescript/modules/modal/renderWebPortal.web.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts.map +0 -1
- package/lib/typescript/modules/multi-select/index.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/NumberInput.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts.map +0 -1
- package/lib/typescript/modules/number-input/index.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/PinInput.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts.map +0 -1
- package/lib/typescript/modules/pin-input/index.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts.map +0 -1
- package/lib/typescript/modules/progress-bar/index.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts.map +0 -1
- package/lib/typescript/modules/radio-group/index.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/Reorder.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts.map +0 -1
- package/lib/typescript/modules/reorder/index.d.ts.map +0 -1
- package/lib/typescript/modules/select/Select.d.ts.map +0 -1
- package/lib/typescript/modules/select/Select.variants.d.ts.map +0 -1
- package/lib/typescript/modules/select/index.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/Skeleton.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts.map +0 -1
- package/lib/typescript/modules/skeleton/index.d.ts.map +0 -1
- package/lib/typescript/modules/slider/Slider.d.ts.map +0 -1
- package/lib/typescript/modules/slider/Slider.variants.d.ts.map +0 -1
- package/lib/typescript/modules/slider/index.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/Spinner.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/Spinner.variants.d.ts.map +0 -1
- package/lib/typescript/modules/spinner/index.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/StatTile.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/StatTile.variants.d.ts.map +0 -1
- package/lib/typescript/modules/stat-tile/index.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/Stepper.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts.map +0 -1
- package/lib/typescript/modules/stepper/index.d.ts.map +0 -1
- package/lib/typescript/modules/switch/Switch.d.ts.map +0 -1
- package/lib/typescript/modules/switch/Switch.variants.d.ts.map +0 -1
- package/lib/typescript/modules/switch/index.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/Tabs.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts.map +0 -1
- package/lib/typescript/modules/tabs/index.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/Textarea.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts.map +0 -1
- package/lib/typescript/modules/textarea/index.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/Timeline.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts.map +0 -1
- package/lib/typescript/modules/timeline/index.d.ts.map +0 -1
- package/lib/typescript/modules/toast/Toast.d.ts.map +0 -1
- package/lib/typescript/modules/toast/Toast.variants.d.ts.map +0 -1
- package/lib/typescript/modules/toast/index.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/Tooltip.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts.map +0 -1
- package/lib/typescript/modules/tooltip/index.d.ts.map +0 -1
- package/lib/typescript/theme/index.d.ts.map +0 -1
- package/lib/typescript/theme/platform/colorScheme.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/elevation.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/fonts.native.d.ts.map +0 -1
- package/lib/typescript/theme/platform/index.d.ts.map +0 -1
- package/lib/typescript/theme/platform/units.native.d.ts.map +0 -1
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts.map +0 -1
- package/lib/typescript/theme/provider/colorModeStorage.d.ts.map +0 -1
- package/lib/typescript/theme/provider/index.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useTheme.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useThemeColors.d.ts.map +0 -1
- package/lib/typescript/theme/provider/useThemeMode.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/accentText.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/builders/color.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/elevation.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/radii.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/sizes.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/space.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/primitives/zIndices.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/roles/index.d.ts.map +0 -1
- package/lib/typescript/theme/tokens/types.d.ts.map +0 -1
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# search-bar/ — a query field with the affordances every list screen re-implements
|
|
2
|
+
|
|
3
|
+
`SearchBar` bundles what a search box needs beyond a plain text field: a leading `search` glyph
|
|
4
|
+
(swapped for a spinner while `loading`), a trailing clear button with its own accessible name and
|
|
5
|
+
touch target, optional debounced reporting, and an optional "Cancel" text button. It owns its own
|
|
6
|
+
`TextInput` rather than wrapping `input/` — see "Design decisions" below.
|
|
7
|
+
|
|
8
|
+
## Files
|
|
9
|
+
|
|
10
|
+
| File | Role |
|
|
11
|
+
|------|------|
|
|
12
|
+
| `SearchBar.tsx` | The component. Field composition, debounce timer, clear/cancel wiring, a11y wiring, focus ring. |
|
|
13
|
+
| `SearchBar.variants.ts` | Pure resolvers (`resolveSearchBarColors`, `resolveSearchBarBorderColor`, `resolveSearchBarAccessibility`, `shouldShowClear`, `resolveSearchBarFieldHitSlop`, `resolveSearchBarTrailingHitSlop`) + the themed structural resolvers (`searchBarRowStructure`, `searchBarFieldStructure`, `searchBarClearStructure`, `searchBarCancelStructure`). No React, no lucide. |
|
|
14
|
+
| `index.ts` | Public surface: `SearchBar`, `SearchBarProps`, `SearchBarSize`. |
|
|
15
|
+
| `__tests__/SearchBar.test.ts` | Pure: WCAG contrast (all brands × modes) + per-edge touch target + visibility/a11y contracts. |
|
|
16
|
+
| `__tests__/SearchBar.render.test.tsx` | Render: value/placeholder, the field's `search` role, immediate vs debounced typing, clear isolation, `showCancel` lifecycle, submit flushing a pending debounce, focus ring, the rendered per-edge `hitSlop`. |
|
|
17
|
+
|
|
18
|
+
## Props
|
|
19
|
+
|
|
20
|
+
| Prop | Type | Default | Notes |
|
|
21
|
+
|------|------|---------|-------|
|
|
22
|
+
| `value` | `string` | — | Required — controlled. |
|
|
23
|
+
| `onChangeText` | `(text: string) => void` | — | Required. Debounced per `debounceMs`; the rendered text never lags. |
|
|
24
|
+
| `placeholder` | `string` | `"Search"` | Falls back into the field's `accessibilityLabel` — SearchBar renders no visible label. |
|
|
25
|
+
| `accessibilityLabel` | `string` | `placeholder` | Overrides the placeholder fallback — a placeholder that reads as a prompt ("Search…") rather than a name tells a screen-reader user nothing about WHAT is being searched. Previously absent: the placeholder was the only name, with no override. |
|
|
26
|
+
| `onSubmit` | `() => void` | — | Fires on the keyboard's search key. Flushes a pending debounce first. |
|
|
27
|
+
| `onClear` | `() => void` | — | Fires after the clear button or "Cancel" empties the query. |
|
|
28
|
+
| `debounceMs` | `number` | `0` | `0` = report every keystroke. Above `0`, `onChangeText` is debounced while local state keeps the visible text instant. |
|
|
29
|
+
| `showCancel` | `boolean` | `false` | Reveals a trailing "Cancel" text button on focus. |
|
|
30
|
+
| `cancelLabel` | `string` | `"Cancel"` | |
|
|
31
|
+
| `loading` | `boolean` | `false` | Swaps the leading `search` icon for `Spinner`. |
|
|
32
|
+
| `autoFocus` | `boolean` | `false` | |
|
|
33
|
+
| `disabled` | `boolean` | `false` | Dims the field, blocks editing, hides the clear button even with a query. |
|
|
34
|
+
| `size` | `sm \| md` | `md` | 32 / 40 dp — identical numbers to `Input`'s `sm`/`md`. |
|
|
35
|
+
| `style` | `LayoutStyle` | — | Layout-only, outermost (the row `View`), applied exactly once, last. |
|
|
36
|
+
| `testID` | `string` | — | Seeds `${testID}-input`, `${testID}-clear`, `${testID}-cancel`, `${testID}-spinner`. |
|
|
37
|
+
|
|
38
|
+
No `status`/`tone` union and no `label` — a search field reports no validity state and needs no
|
|
39
|
+
above-field caption; the placeholder carries the only name it has.
|
|
40
|
+
|
|
41
|
+
## Accessibility contract (WCAG)
|
|
42
|
+
|
|
43
|
+
- **4.1.2 / semantics** — the **`TextInput`** carries `accessibilityRole="search"`, not the row. The
|
|
44
|
+
row is a plain layout `View` that is not `accessible`, so a role there reached neither platform
|
|
45
|
+
(iOS never got the search trait; Android put it on a non-focusable ViewGroup) — the role has to sit
|
|
46
|
+
on the node that actually takes focus. The clear button and the "Cancel" button are separate
|
|
47
|
+
`button`-role `Pressable`s with their own labels (`"Clear search"`, `cancelLabel`) — activating
|
|
48
|
+
either can never be confused with submitting, the same isolation `Banner`'s dismiss-vs-action split
|
|
49
|
+
documents.
|
|
50
|
+
- **2.5.8 / 2.5.5 target size** — the field reaches ≥ 44dp via `hitSlop`, same mechanism as `Input`.
|
|
51
|
+
The clear button's height comes from `alignSelf: "stretch"` + the field's own vertical hitSlop; its
|
|
52
|
+
WIDTH is a structural 44dp `CLEAR_BUTTON_WIDTH`, not hitSlop — horizontal hitSlop on either the
|
|
53
|
+
field or the clear button would overlap the other (RN resolves an overlap to whichever renders
|
|
54
|
+
LATER, silently stealing taps), so `resolveSearchBarFieldHitSlop` zeroes the field's right edge
|
|
55
|
+
once any trailing affordance renders, and `resolveSearchBarTrailingHitSlop` zeroes the clear
|
|
56
|
+
button's own left/right — the identical per-edge elimination `ButtonGroup` documents for its
|
|
57
|
+
segments. The "Cancel" button gets `minWidth: 44` for the same reason. `SearchBar.render.test.tsx`
|
|
58
|
+
asserts the **rendered** `hitSlop` prop on the field, the clear button and the cancel button per
|
|
59
|
+
size — the resolver arithmetic in `SearchBar.test.ts` only reaches the user if the object lands on
|
|
60
|
+
the node.
|
|
61
|
+
- **1.4.3** — query text, placeholder, and the "Cancel" label are each measured ≥ 4.5:1 against
|
|
62
|
+
`bg.canvas` (the field renders no fill, like `Input`'s box) for all 8 brands × both modes. The
|
|
63
|
+
pressed clear/cancel foreground is measured ≥ 4.5:1 against its own `pressedFill` too — not just
|
|
64
|
+
assumed from the resting canvas pairing.
|
|
65
|
+
- **1.4.11** — the field's resting and focused border, and the leading/clear glyphs, are measured
|
|
66
|
+
≥ 3:1 against the canvas.
|
|
67
|
+
- **2.4.7** — a `border.focus` ring appears offset outside the field on focus, identical
|
|
68
|
+
geometry/token to `Input`'s.
|
|
69
|
+
- **2.3.3** — n/a: nothing here animates (the cancel button is a conditional render, not a
|
|
70
|
+
transition). The one moving part, `loading`'s `Spinner`, already honours reduced motion itself.
|
|
71
|
+
|
|
72
|
+
## Patterns copied from Input / ButtonGroup / Menu
|
|
73
|
+
|
|
74
|
+
1. **Structure vs colour split**, **pure testable resolvers**, **closed `size` union**, no
|
|
75
|
+
`{...rest}`, `style` once on the outermost node.
|
|
76
|
+
2. **Per-edge hitSlop elimination** — copied from `ButtonGroup`'s segment-edge fix, applied to the
|
|
77
|
+
field/clear/cancel trio instead of a segmented row.
|
|
78
|
+
3. **`bg.sunken` (not `bg.hover`) for a pressed fill** — same reasoning as `Menu`'s pressed row.
|
|
79
|
+
4. **Clear/cancel presses** — `usePressState` (scale + state-layer overlay) on both affordances.
|
|
80
|
+
|
|
81
|
+
## Design decisions specific to this module
|
|
82
|
+
|
|
83
|
+
- **Owns its own `TextInput` rather than wrapping `Input`.** `Input`'s `trailingIcon` is documented
|
|
84
|
+
decorative-only — it cannot host a separate pressable, which "clearing never fires submit" requires
|
|
85
|
+
— and `Input` exposes no submit/focus/autoFocus surface. Widening `Input` for one consumer would
|
|
86
|
+
push search-only concerns into every form field; this is a standalone sibling, like `ButtonGroup`
|
|
87
|
+
not importing `Button`, that mirrors `Input`'s size specs and role tokens instead of inventing new
|
|
88
|
+
ones.
|
|
89
|
+
- **Debounce keeps a local `draft` for the rendered text and a `ref` of the last-emitted value.** An
|
|
90
|
+
external reset (e.g. a "clear filters" button elsewhere on screen) that changes the `value` prop
|
|
91
|
+
must still reach the field even mid-debounce, but the effect only re-syncs when `value` differs
|
|
92
|
+
from what this component itself last emitted — otherwise its own debounced echo would fight newer
|
|
93
|
+
keystrokes.
|
|
94
|
+
- **`showCancel` visibility is separate state from `focused`.** The cancel button, once revealed,
|
|
95
|
+
stays visible through its own press (which blurs the field) instead of vanishing on blur first —
|
|
96
|
+
otherwise pressing it would hide the button out from under the tap.
|
|
97
|
+
|
|
98
|
+
## Known gaps
|
|
99
|
+
|
|
100
|
+
- No leading/trailing custom icon slot — the glyphs are fixed (`search` / spinner / `x`), matching
|
|
101
|
+
the spec this module was built against.
|
|
102
|
+
- `debounceMs` has no visual "typing…" indicator beyond `loading` (which is caller-driven, not tied
|
|
103
|
+
to the debounce window itself).
|
|
104
|
+
|
|
105
|
+
## Performance
|
|
106
|
+
|
|
107
|
+
Wrapped in `React.memo`. `handleChangeText`, `handleClear`, `handleSubmit`, `handleFocus`, and
|
|
108
|
+
`handleCancel` are all `useCallback`'d; the debounce `setTimeout` is cleared on unmount and on every
|
|
109
|
+
new keystroke so no stale timer can fire after the value has moved on.
|
|
110
|
+
|
|
111
|
+
## Modernization (v1.0.7)
|
|
112
|
+
|
|
113
|
+
- Theme imports decoupled to `theme/hooks`; optional peers (reanimated, gesture-handler, flash-list) load at runtime.
|
|
114
|
+
- List-heavy surfaces use `VirtualList` with device-tier window sizing where applicable.
|
|
115
|
+
- `React.memo` + stable callbacks retained; render-item/key-extractor hoisted per ESLint perf rules.
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* SearchBar — the affordances every list screen re-implements around a query field: a leading
|
|
5
|
+
* `search` glyph (swapped for a `Spinner` while `loading`), a trailing clear button with its own
|
|
6
|
+
* accessible name and its own 44dp target, optional debounced reporting, and an optional "Cancel"
|
|
7
|
+
* text button.
|
|
8
|
+
*
|
|
9
|
+
* It owns its own `TextInput` rather than wrapping this library's `Input`. Reuse was evaluated:
|
|
10
|
+
* `Input`'s `trailingIcon` is documented decorative-only (it cannot host a separate pressable, which
|
|
11
|
+
* is exactly what "clearing never fires submit" requires), and `Input` exposes no submit/focus/
|
|
12
|
+
* autoFocus surface. Widening `Input` for one consumer would push search concerns into every form
|
|
13
|
+
* field, so — like `ButtonGroup` not importing `Button` — this is a standalone sibling that mirrors
|
|
14
|
+
* `Input`'s size specs, role tokens, and offset focus ring exactly instead of inventing new ones.
|
|
15
|
+
*
|
|
16
|
+
* Nothing here animates (the cancel button is a conditional render, not a transition), so there is
|
|
17
|
+
* no motion for `useReducedMotion` (WCAG 2.3.3) to gate. The one moving part on screen — the
|
|
18
|
+
* `loading` spinner — is `Spinner`'s own, which already honours reduced motion internally.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
22
|
+
import { Platform, Pressable, StyleSheet, Text, TextInput, View } from "react-native";
|
|
23
|
+
import Animated from "react-native-reanimated";
|
|
24
|
+
import { Icon } from "../../core/icon/index.js";
|
|
25
|
+
import { usePressState } from "../../core/motion/usePressState.js";
|
|
26
|
+
import { floatingBackground, floatingSurfaceStyle } from "../../theme/platform/index.js";
|
|
27
|
+
import { useTheme } from "../../theme/hooks.js";
|
|
28
|
+
import { Spinner } from "../spinner/index.js";
|
|
29
|
+
import { resolveSearchBarAccessibility, resolveSearchBarBorderColor, resolveSearchBarColors, resolveSearchBarFieldHitSlop, resolveSearchBarTrailingHitSlop, SEARCH_BAR_SIZES, searchBarCancelStructure, searchBarClearStructure, searchBarFieldStructure, searchBarRowStructure, shouldShowClear } from "./SearchBar.variants.js";
|
|
30
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
31
|
+
const FOCUS_RING_WIDTH = 2;
|
|
32
|
+
const FOCUS_RING_GAP = 2;
|
|
33
|
+
const ICON_STROKE = 2;
|
|
34
|
+
const CLEAR_ACCESSIBILITY_LABEL = "Clear search";
|
|
35
|
+
const AnimatedPressable = Animated.createAnimatedComponent(Pressable);
|
|
36
|
+
export const SearchBar = /*#__PURE__*/memo(function SearchBar({
|
|
37
|
+
value,
|
|
38
|
+
onChangeText,
|
|
39
|
+
placeholder = "Search",
|
|
40
|
+
onSubmit,
|
|
41
|
+
onClear,
|
|
42
|
+
debounceMs = 0,
|
|
43
|
+
showCancel = false,
|
|
44
|
+
cancelLabel = "Cancel",
|
|
45
|
+
loading = false,
|
|
46
|
+
autoFocus = false,
|
|
47
|
+
disabled = false,
|
|
48
|
+
size = "md",
|
|
49
|
+
accessibilityLabel,
|
|
50
|
+
style,
|
|
51
|
+
testID
|
|
52
|
+
}) {
|
|
53
|
+
const theme = useTheme();
|
|
54
|
+
const inputRef = useRef(null);
|
|
55
|
+
const timerRef = useRef(undefined);
|
|
56
|
+
const emittedRef = useRef(value);
|
|
57
|
+
const [draft, setDraft] = useState(value);
|
|
58
|
+
const [focused, setFocused] = useState(false);
|
|
59
|
+
const [cancelVisible, setCancelVisible] = useState(false);
|
|
60
|
+
const debounced = debounceMs > 0;
|
|
61
|
+
const displayed = debounced ? draft : value;
|
|
62
|
+
|
|
63
|
+
// An external reset (a "clear filters" button elsewhere on the screen) must reach the field even
|
|
64
|
+
// while a debounce is pending — but echoing back the value this component just emitted would
|
|
65
|
+
// clobber newer keystrokes with a stale one.
|
|
66
|
+
useEffect(() => {
|
|
67
|
+
if (value !== emittedRef.current) {
|
|
68
|
+
emittedRef.current = value;
|
|
69
|
+
setDraft(value);
|
|
70
|
+
}
|
|
71
|
+
}, [value]);
|
|
72
|
+
useEffect(() => () => {
|
|
73
|
+
if (timerRef.current !== undefined) clearTimeout(timerRef.current);
|
|
74
|
+
}, []);
|
|
75
|
+
const emit = useCallback(next => {
|
|
76
|
+
emittedRef.current = next;
|
|
77
|
+
onChangeText(next);
|
|
78
|
+
}, [onChangeText]);
|
|
79
|
+
const handleChangeText = useCallback(next => {
|
|
80
|
+
setDraft(next);
|
|
81
|
+
if (!debounced) {
|
|
82
|
+
emit(next);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (timerRef.current !== undefined) clearTimeout(timerRef.current);
|
|
86
|
+
timerRef.current = setTimeout(() => {
|
|
87
|
+
timerRef.current = undefined;
|
|
88
|
+
emit(next);
|
|
89
|
+
}, debounceMs);
|
|
90
|
+
}, [debounced, debounceMs, emit]);
|
|
91
|
+
const handleClear = useCallback(() => {
|
|
92
|
+
if (timerRef.current !== undefined) {
|
|
93
|
+
clearTimeout(timerRef.current);
|
|
94
|
+
timerRef.current = undefined;
|
|
95
|
+
}
|
|
96
|
+
setDraft("");
|
|
97
|
+
emit("");
|
|
98
|
+
onClear?.();
|
|
99
|
+
}, [emit, onClear]);
|
|
100
|
+
const handleSubmit = useCallback(() => {
|
|
101
|
+
// Submitting a debounced field must search what the user can SEE, not the last value the timer
|
|
102
|
+
// happened to flush.
|
|
103
|
+
if (timerRef.current !== undefined) {
|
|
104
|
+
clearTimeout(timerRef.current);
|
|
105
|
+
timerRef.current = undefined;
|
|
106
|
+
emit(displayed);
|
|
107
|
+
}
|
|
108
|
+
onSubmit?.();
|
|
109
|
+
}, [displayed, emit, onSubmit]);
|
|
110
|
+
const handleFocus = useCallback(() => {
|
|
111
|
+
setFocused(true);
|
|
112
|
+
if (showCancel) setCancelVisible(true);
|
|
113
|
+
}, [showCancel]);
|
|
114
|
+
const handleCancel = useCallback(() => {
|
|
115
|
+
inputRef.current?.blur();
|
|
116
|
+
setCancelVisible(false);
|
|
117
|
+
handleClear();
|
|
118
|
+
}, [handleClear]);
|
|
119
|
+
const colors = resolveSearchBarColors(theme.colors);
|
|
120
|
+
const a11y = resolveSearchBarAccessibility({
|
|
121
|
+
placeholder,
|
|
122
|
+
accessibilityLabel,
|
|
123
|
+
disabled
|
|
124
|
+
});
|
|
125
|
+
const spec = SEARCH_BAR_SIZES[size];
|
|
126
|
+
const clearVisible = shouldShowClear(displayed, disabled);
|
|
127
|
+
const showCancelButton = showCancel && cancelVisible;
|
|
128
|
+
const fieldHitSlop = resolveSearchBarFieldHitSlop(size, {
|
|
129
|
+
trailingAdjacent: clearVisible || showCancelButton
|
|
130
|
+
});
|
|
131
|
+
const clearPress = usePressState(false);
|
|
132
|
+
const cancelPress = usePressState(false);
|
|
133
|
+
const overlayStaticStyle = {
|
|
134
|
+
backgroundColor: colors.pressedFill,
|
|
135
|
+
borderRadius: theme.radii.full,
|
|
136
|
+
borderCurve: "continuous"
|
|
137
|
+
};
|
|
138
|
+
const floatingFieldStyle = useMemo(() => ({
|
|
139
|
+
backgroundColor: floatingBackground(theme, "sm"),
|
|
140
|
+
...floatingSurfaceStyle(theme, "sm")
|
|
141
|
+
}), [theme]);
|
|
142
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
143
|
+
testID: testID,
|
|
144
|
+
style: [searchBarRowStructure(theme), style],
|
|
145
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
146
|
+
style: [searchBarFieldStructure(theme, {
|
|
147
|
+
size
|
|
148
|
+
}), floatingFieldStyle, {
|
|
149
|
+
borderColor: resolveSearchBarBorderColor(colors, focused)
|
|
150
|
+
}, disabled && styles.dimmed],
|
|
151
|
+
children: [focused && !disabled && /*#__PURE__*/_jsx(View, {
|
|
152
|
+
pointerEvents: "none",
|
|
153
|
+
testID: "search-bar-focus-ring",
|
|
154
|
+
style: {
|
|
155
|
+
position: "absolute",
|
|
156
|
+
top: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
157
|
+
left: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
158
|
+
right: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
159
|
+
bottom: -(FOCUS_RING_GAP + FOCUS_RING_WIDTH),
|
|
160
|
+
borderWidth: FOCUS_RING_WIDTH,
|
|
161
|
+
borderColor: colors.focusBorder,
|
|
162
|
+
borderRadius: theme.radii.md + FOCUS_RING_GAP + FOCUS_RING_WIDTH,
|
|
163
|
+
borderCurve: "continuous"
|
|
164
|
+
}
|
|
165
|
+
}), loading ? /*#__PURE__*/_jsx(Spinner, {
|
|
166
|
+
size: "sm",
|
|
167
|
+
tone: "neutral",
|
|
168
|
+
testID: testID ? `${testID}-spinner` : undefined
|
|
169
|
+
}) : /*#__PURE__*/_jsx(Icon, {
|
|
170
|
+
name: "search",
|
|
171
|
+
size: spec.iconSize,
|
|
172
|
+
color: colors.icon,
|
|
173
|
+
strokeWidth: ICON_STROKE
|
|
174
|
+
}), /*#__PURE__*/_jsx(TextInput, {
|
|
175
|
+
ref: inputRef,
|
|
176
|
+
testID: testID ? `${testID}-input` : undefined,
|
|
177
|
+
value: displayed,
|
|
178
|
+
onChangeText: handleChangeText,
|
|
179
|
+
placeholder: placeholder,
|
|
180
|
+
placeholderTextColor: colors.placeholder,
|
|
181
|
+
editable: a11y.editable
|
|
182
|
+
// The role belongs on the node AT tech actually focuses: the row is a plain layout View
|
|
183
|
+
// (not `accessible`), so a role there reaches neither the iOS trait nor Android's focus.
|
|
184
|
+
,
|
|
185
|
+
accessibilityRole: "search",
|
|
186
|
+
accessibilityLabel: a11y.accessibilityLabel,
|
|
187
|
+
"aria-disabled": a11y["aria-disabled"],
|
|
188
|
+
autoFocus: autoFocus,
|
|
189
|
+
autoCapitalize: "none",
|
|
190
|
+
autoCorrect: false,
|
|
191
|
+
returnKeyType: "search",
|
|
192
|
+
onSubmitEditing: handleSubmit,
|
|
193
|
+
onFocus: handleFocus,
|
|
194
|
+
onBlur: () => setFocused(false),
|
|
195
|
+
hitSlop: fieldHitSlop
|
|
196
|
+
// A search box is not a form field: the OS autofill/keyboard-suggestion strip it would
|
|
197
|
+
// otherwise raise eats the vertical space the results list sits in (see Input's own note).
|
|
198
|
+
,
|
|
199
|
+
autoComplete: "off",
|
|
200
|
+
importantForAutofill: "no",
|
|
201
|
+
style: [{
|
|
202
|
+
flex: 1,
|
|
203
|
+
alignSelf: "stretch",
|
|
204
|
+
fontSize: spec.fontSize,
|
|
205
|
+
color: colors.text,
|
|
206
|
+
padding: 0
|
|
207
|
+
}, theme.fontStyleForWeight(theme.fontWeights.regular), Platform.OS === "web" && styles.webOutlineReset]
|
|
208
|
+
}), clearVisible && /*#__PURE__*/_jsxs(AnimatedPressable, {
|
|
209
|
+
testID: testID ? `${testID}-clear` : undefined,
|
|
210
|
+
accessibilityRole: "button",
|
|
211
|
+
accessibilityLabel: CLEAR_ACCESSIBILITY_LABEL,
|
|
212
|
+
onPress: handleClear,
|
|
213
|
+
onPressIn: clearPress.handlers.onPressIn,
|
|
214
|
+
onPressOut: clearPress.handlers.onPressOut,
|
|
215
|
+
onLayout: clearPress.onLayout,
|
|
216
|
+
hitSlop: resolveSearchBarTrailingHitSlop(size, {
|
|
217
|
+
outerRight: false
|
|
218
|
+
}),
|
|
219
|
+
style: [searchBarClearStructure(theme), {
|
|
220
|
+
overflow: "hidden"
|
|
221
|
+
}, clearPress.animatedStyle],
|
|
222
|
+
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
223
|
+
pointerEvents: "none",
|
|
224
|
+
style: [StyleSheet.absoluteFill, overlayStaticStyle, clearPress.overlayStyle]
|
|
225
|
+
}), /*#__PURE__*/_jsx(Icon, {
|
|
226
|
+
name: "x",
|
|
227
|
+
size: spec.iconSize,
|
|
228
|
+
color: clearPress.pressed ? colors.onPressedFill : colors.icon,
|
|
229
|
+
strokeWidth: ICON_STROKE
|
|
230
|
+
})]
|
|
231
|
+
})]
|
|
232
|
+
}), showCancelButton && /*#__PURE__*/_jsxs(AnimatedPressable, {
|
|
233
|
+
testID: testID ? `${testID}-cancel` : undefined,
|
|
234
|
+
accessibilityRole: "button",
|
|
235
|
+
accessibilityLabel: cancelLabel,
|
|
236
|
+
onPress: handleCancel,
|
|
237
|
+
onPressIn: cancelPress.handlers.onPressIn,
|
|
238
|
+
onPressOut: cancelPress.handlers.onPressOut,
|
|
239
|
+
onLayout: cancelPress.onLayout,
|
|
240
|
+
hitSlop: resolveSearchBarTrailingHitSlop(size, {
|
|
241
|
+
outerRight: true
|
|
242
|
+
}),
|
|
243
|
+
style: [searchBarCancelStructure(theme, {
|
|
244
|
+
size
|
|
245
|
+
}), {
|
|
246
|
+
overflow: "hidden"
|
|
247
|
+
}, cancelPress.animatedStyle],
|
|
248
|
+
children: [/*#__PURE__*/_jsx(Animated.View, {
|
|
249
|
+
pointerEvents: "none",
|
|
250
|
+
style: [StyleSheet.absoluteFill, overlayStaticStyle, cancelPress.overlayStyle]
|
|
251
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
252
|
+
numberOfLines: 1,
|
|
253
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.medium), {
|
|
254
|
+
fontSize: spec.fontSize,
|
|
255
|
+
color: cancelPress.pressed ? colors.onPressedFill : colors.cancelLabel
|
|
256
|
+
}],
|
|
257
|
+
children: cancelLabel
|
|
258
|
+
})]
|
|
259
|
+
})]
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
const styles = StyleSheet.create({
|
|
263
|
+
// A disabled control is exempt from the contrast minimum (WCAG 1.4.3), so a uniform dim is correct.
|
|
264
|
+
dimmed: {
|
|
265
|
+
opacity: 0.5
|
|
266
|
+
},
|
|
267
|
+
// RNW renders `TextInput` as a real `<input>`, which paints the browser's own default focus
|
|
268
|
+
// outline on top of the themed ring above it — a visible double border. Web-only: `outlineWidth`
|
|
269
|
+
// also drives native TV remote-control focus, so zeroing it globally would break that.
|
|
270
|
+
webOutlineReset: {
|
|
271
|
+
outlineStyle: "solid",
|
|
272
|
+
outlineWidth: 0,
|
|
273
|
+
borderWidth: 0
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
//# sourceMappingURL=SearchBar.js.map
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* SearchBar's style + behaviour resolution — same split as `Input.variants`:
|
|
5
|
+
* - STRUCTURE (row/field/affordance sizing, radius, border WIDTH) lives in the `createThemedVariants`
|
|
6
|
+
* resolvers below, registered once per (theme, size) — never rebuilt per render.
|
|
7
|
+
* - COLOUR is resolved from the theme's ROLE colours by `resolveSearchBarColors` /
|
|
8
|
+
* `resolveSearchBarBorderColor`, never a raw ramp and never a hardcoded hex.
|
|
9
|
+
* - BEHAVIOUR derivation (`resolveSearchBarAccessibility`, `shouldShowClear`,
|
|
10
|
+
* `resolveSearchBarFieldHitSlop`, `resolveSearchBarTrailingHitSlop`) is kept pure so the a11y +
|
|
11
|
+
* touch-target contract is unit-testable without rendering React Native.
|
|
12
|
+
*
|
|
13
|
+
* Free of React and of `lucide`, so the WCAG + behaviour tests import it directly (mocking only
|
|
14
|
+
* `react-native`'s `StyleSheet`, as `core/style` does).
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { createThemedVariants } from "../../core/style/index.js";
|
|
18
|
+
/** Same floor as Button/Input/ButtonGroup — 44dp (WCAG 2.5.5 / HIG). Duplicated, not imported:
|
|
19
|
+
* modules stay isolated. */
|
|
20
|
+
export const MIN_TOUCH_TARGET = 44;
|
|
21
|
+
const slopFor = height => Math.max(0, Math.ceil((MIN_TOUCH_TARGET - height) / 2));
|
|
22
|
+
/**
|
|
23
|
+
* Deliberately the same height/fontSize/iconSize numbers as `INPUT_SIZES` `sm`/`md`, so a SearchBar
|
|
24
|
+
* and an Input placed in the same form line up exactly.
|
|
25
|
+
*/
|
|
26
|
+
export const SEARCH_BAR_SIZES = {
|
|
27
|
+
sm: {
|
|
28
|
+
height: 44,
|
|
29
|
+
fontSize: 14,
|
|
30
|
+
iconSize: 16,
|
|
31
|
+
hitSlop: slopFor(44)
|
|
32
|
+
},
|
|
33
|
+
md: {
|
|
34
|
+
height: 52,
|
|
35
|
+
fontSize: 16,
|
|
36
|
+
iconSize: 18,
|
|
37
|
+
hitSlop: slopFor(52)
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* The clear button's own rendered width. Its height comes from `alignSelf: "stretch"` (the field's
|
|
43
|
+
* full `spec.height`) plus the same vertical `hitSlop` the field uses, but its WIDTH cannot come
|
|
44
|
+
* from horizontal hitSlop: the clear button sits flush against the `TextInput`, and React Native
|
|
45
|
+
* never clips hitSlop to a sibling's bounds — it resolves an overlap to whichever renders LATER,
|
|
46
|
+
* which is the clear button. Horizontal slop there would silently steal taps from the right end of
|
|
47
|
+
* the query text. So the rendered node clears 44dp on its own and both horizontal slops are 0 —
|
|
48
|
+
* the same overlap-elimination `ButtonGroup` documents for its internal segment edges.
|
|
49
|
+
*/
|
|
50
|
+
export const CLEAR_BUTTON_WIDTH = MIN_TOUCH_TARGET;
|
|
51
|
+
/**
|
|
52
|
+
* Maps SearchBar's fixed visual roles onto ROLE colours — never a hardcoded hex. There is no `tone`
|
|
53
|
+
* or `status` union: a search field reports no validity state and carries no brand identity of its
|
|
54
|
+
* own, so — like `RadioGroup`/`ButtonGroup` — this is pure indirection, not a union to resolve.
|
|
55
|
+
*
|
|
56
|
+
* The field renders NO background fill (transparent, exactly like `Input`'s box), so every colour
|
|
57
|
+
* here is read against `bg.canvas`.
|
|
58
|
+
*/
|
|
59
|
+
export function resolveSearchBarColors(colors) {
|
|
60
|
+
return {
|
|
61
|
+
text: colors.fg.default,
|
|
62
|
+
placeholder: colors.fg.placeholder,
|
|
63
|
+
icon: colors.fg.muted,
|
|
64
|
+
border: colors.border.interactive,
|
|
65
|
+
focusBorder: colors.border.focus,
|
|
66
|
+
pressedFill: colors.bg.sunken,
|
|
67
|
+
onPressedFill: colors.fg.default,
|
|
68
|
+
cancelLabel: colors.accent.text
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** The field outline tracks focus, same cue `Select`'s trigger uses for focused-or-open. */
|
|
73
|
+
export function resolveSearchBarBorderColor(colors, focused) {
|
|
74
|
+
return focused ? colors.focusBorder : colors.border;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/** The clear affordance exists only for a non-empty query, and never on a disabled field. */
|
|
78
|
+
export function shouldShowClear(value, disabled) {
|
|
79
|
+
return value.length > 0 && !disabled;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The query field's per-edge touch expansion. Vertical and left expansion are always safe (nothing
|
|
83
|
+
* interactive sits above, below, or to the left of the field). The RIGHT edge is zeroed whenever a
|
|
84
|
+
* trailing affordance — the clear button, or the "Cancel" button outside the field — is rendered:
|
|
85
|
+
* the field's own slop would otherwise overlap it, and React Native resolves overlapping siblings'
|
|
86
|
+
* hitSlop to whichever renders LATER, so the field would never win that region anyway while
|
|
87
|
+
* silently enlarging the ambiguous zone. Same per-edge reasoning as `ButtonGroup`'s segments.
|
|
88
|
+
*/
|
|
89
|
+
export function resolveSearchBarFieldHitSlop(size, input) {
|
|
90
|
+
const slop = SEARCH_BAR_SIZES[size].hitSlop;
|
|
91
|
+
return {
|
|
92
|
+
top: slop,
|
|
93
|
+
bottom: slop,
|
|
94
|
+
left: slop,
|
|
95
|
+
right: input.trailingAdjacent ? 0 : slop
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* A trailing affordance's per-edge touch expansion. Vertical only for the clear button (it sits
|
|
101
|
+
* between the query text and the field's own right edge); the cancel button additionally expands
|
|
102
|
+
* right, since that edge is the whole control's true outer edge and shares with nothing.
|
|
103
|
+
*/
|
|
104
|
+
export function resolveSearchBarTrailingHitSlop(size, input) {
|
|
105
|
+
const slop = SEARCH_BAR_SIZES[size].hitSlop;
|
|
106
|
+
return {
|
|
107
|
+
top: slop,
|
|
108
|
+
bottom: slop,
|
|
109
|
+
left: 0,
|
|
110
|
+
right: input.outerRight ? slop : 0
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
export function resolveSearchBarAccessibility(input) {
|
|
114
|
+
const disabled = input.disabled === true;
|
|
115
|
+
return {
|
|
116
|
+
accessibilityLabel: input.accessibilityLabel ?? input.placeholder,
|
|
117
|
+
"aria-disabled": disabled,
|
|
118
|
+
editable: !disabled
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/** The outer row — the field plus, when shown, the "Cancel" button beside it. */
|
|
123
|
+
export const searchBarRowStructure = createThemedVariants(theme => ({
|
|
124
|
+
base: {
|
|
125
|
+
flexDirection: "row",
|
|
126
|
+
alignItems: "center",
|
|
127
|
+
columnGap: theme.space[2]
|
|
128
|
+
}
|
|
129
|
+
}));
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* The field box. Structural only — layout, height, padding, radius, border WIDTH; the border COLOUR
|
|
133
|
+
* is focus-driven and applied inline over this. No background: like `Input`, the field is
|
|
134
|
+
* transparent so every colour it shows is read against the canvas (which is what `SearchBar.test.ts`
|
|
135
|
+
* measures).
|
|
136
|
+
*/
|
|
137
|
+
export const searchBarFieldStructure = createThemedVariants(theme => ({
|
|
138
|
+
base: {
|
|
139
|
+
flex: 1,
|
|
140
|
+
flexDirection: "row",
|
|
141
|
+
alignItems: "center",
|
|
142
|
+
columnGap: theme.space[2],
|
|
143
|
+
borderWidth: theme.borderWidths.thin,
|
|
144
|
+
borderRadius: theme.radii.md,
|
|
145
|
+
borderCurve: "continuous"
|
|
146
|
+
},
|
|
147
|
+
variants: {
|
|
148
|
+
size: {
|
|
149
|
+
sm: {
|
|
150
|
+
height: SEARCH_BAR_SIZES.sm.height,
|
|
151
|
+
paddingHorizontal: theme.space[3]
|
|
152
|
+
},
|
|
153
|
+
md: {
|
|
154
|
+
height: SEARCH_BAR_SIZES.md.height,
|
|
155
|
+
paddingHorizontal: theme.space[4]
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
defaultVariants: {
|
|
160
|
+
size: "md"
|
|
161
|
+
}
|
|
162
|
+
}));
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* The clear button. `alignSelf: "stretch"` fills the field's full height (so the vertical hitSlop
|
|
166
|
+
* math holds against what actually renders — the same assumption `Input`'s `TextInput` relies on),
|
|
167
|
+
* and `width` carries the horizontal 44dp floor on its own (see `CLEAR_BUTTON_WIDTH`).
|
|
168
|
+
*/
|
|
169
|
+
export const searchBarClearStructure = createThemedVariants(theme => ({
|
|
170
|
+
base: {
|
|
171
|
+
width: CLEAR_BUTTON_WIDTH,
|
|
172
|
+
alignSelf: "stretch",
|
|
173
|
+
alignItems: "center",
|
|
174
|
+
justifyContent: "center",
|
|
175
|
+
borderRadius: theme.radii.md,
|
|
176
|
+
borderCurve: "continuous"
|
|
177
|
+
}
|
|
178
|
+
}));
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* The "Cancel" text button. `minWidth` keeps the rendered node at the 44dp floor even for a short
|
|
182
|
+
* `cancelLabel` — horizontal hitSlop can only expand its outer right edge, so the node itself must
|
|
183
|
+
* clear the floor, the same fix `ButtonGroup`'s segments use.
|
|
184
|
+
*/
|
|
185
|
+
export const searchBarCancelStructure = createThemedVariants(theme => ({
|
|
186
|
+
base: {
|
|
187
|
+
minWidth: MIN_TOUCH_TARGET,
|
|
188
|
+
alignItems: "center",
|
|
189
|
+
justifyContent: "center",
|
|
190
|
+
paddingHorizontal: theme.space[2],
|
|
191
|
+
borderRadius: theme.radii.md,
|
|
192
|
+
borderCurve: "continuous"
|
|
193
|
+
},
|
|
194
|
+
variants: {
|
|
195
|
+
size: {
|
|
196
|
+
sm: {
|
|
197
|
+
height: SEARCH_BAR_SIZES.sm.height
|
|
198
|
+
},
|
|
199
|
+
md: {
|
|
200
|
+
height: SEARCH_BAR_SIZES.md.height
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
defaultVariants: {
|
|
205
|
+
size: "md"
|
|
206
|
+
}
|
|
207
|
+
}));
|
|
208
|
+
//# sourceMappingURL=SearchBar.variants.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Public surface of `pixelize-native-library/search-bar`. Value exports and type exports are split
|
|
5
|
+
* for `verbatimModuleSyntax`. The resolvers (`resolveSearchBarColors`, `SEARCH_BAR_SIZES`, …) stay
|
|
6
|
+
* internal — a consumer configures a SearchBar through its props, never by importing its internals.
|
|
7
|
+
* No `icon` prop (the leading/trailing glyphs are fixed), so unlike `input/index.ts` there is no
|
|
8
|
+
* `IconName` re-export.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
export { SearchBar } from "./SearchBar.js";
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# section/ — hairline top border + uppercase label + body
|
|
2
|
+
|
|
3
|
+
`Section` groups an uppercase muted label and ordinary `children` below a hairline top border —
|
|
4
|
+
the settings-section pattern re-declared across consumer apps.
|
|
5
|
+
|
|
6
|
+
## Files
|
|
7
|
+
|
|
8
|
+
| File | Role |
|
|
9
|
+
|------|------|
|
|
10
|
+
| `Section.tsx` | The component. Hairline + label + children; `style` last. |
|
|
11
|
+
| `Section.variants.ts` | Pure resolver (`resolveSectionColors`) + themed structural resolver. |
|
|
12
|
+
| `index.ts` | Public surface: `Section`, `SectionProps`. |
|
|
13
|
+
| `__tests__/Section.test.ts` | Pure: WCAG 1.4.3 on the label, colour mapping. |
|
|
14
|
+
| `__tests__/Section.render.test.tsx` | Render: label + children, heading role + level, consumer `style` last. |
|
|
15
|
+
| `__tests__/Section.dom.test.tsx` | Real DOM (`jest.web.config.js`): the label renders a real `<h2>`. |
|
|
16
|
+
|
|
17
|
+
## Props
|
|
18
|
+
|
|
19
|
+
| Prop | Type | Default | Notes |
|
|
20
|
+
|------|------|---------|-------|
|
|
21
|
+
| `label` | `string` | — | Required. Uppercase, muted, bold. |
|
|
22
|
+
| `children` | `ReactNode` | — | Body content below the label. |
|
|
23
|
+
| `style` | `LayoutStyle` | — | Layout-only, outermost, last. |
|
|
24
|
+
| `testID` | `string` | — | Forwarded to the outermost `View`. |
|
|
25
|
+
|
|
26
|
+
## Accessibility contract (WCAG)
|
|
27
|
+
|
|
28
|
+
- **1.3.1 / 2.4.6 — the label is a level-2 heading**: `accessibilityRole="header"`,
|
|
29
|
+
`aria-level={2}` (`HEADING_LEVEL.section`, `core/heading`) — the same role and level
|
|
30
|
+
`SectionList`'s own section header carries, nesting under the screen's `AppBar` `<h1>` rather than
|
|
31
|
+
restarting the outline. `AppBar` + `Section` are what almost every screen is built from, so a
|
|
32
|
+
label without it leaves rotor heading navigation with nothing to land on.
|
|
33
|
+
- No `accessibilityRole` on the container — like `Card`, a plain grouping box; `children` carry
|
|
34
|
+
their own semantics.
|
|
35
|
+
- **2.3.3** — n/a: nothing here animates.
|
|
36
|
+
|
|
37
|
+
## Performance
|
|
38
|
+
|
|
39
|
+
Wrapped in `React.memo`.
|
|
40
|
+
|
|
41
|
+
- **Round 2 visual** — radii retarget (`radii.md`/`lg`/`xl`/`full`), `borderCurve: continuous` on md+ corners; floating surfaces wire platform elevation/highlight where applicable.
|