pixelize-native-library 1.0.6
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/README.md +34 -0
- package/lib/module/core/MODULE.md +94 -0
- package/lib/module/core/a11y/MODULE.md +22 -0
- package/lib/module/core/a11y/index.js +26 -0
- package/lib/module/core/a11y/index.js.map +1 -0
- package/lib/module/core/icon/MODULE.md +35 -0
- package/lib/module/core/icon/index.js +92 -0
- package/lib/module/core/icon/index.js.map +1 -0
- package/lib/module/core/style/index.js +4 -0
- package/lib/module/core/style/index.js.map +1 -0
- package/lib/module/core/style/layoutStyle.js +4 -0
- package/lib/module/core/style/layoutStyle.js.map +1 -0
- package/lib/module/core/style/variants.js +115 -0
- package/lib/module/core/style/variants.js.map +1 -0
- package/lib/module/index.js +13 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/modules/accordion/Accordion.js +194 -0
- package/lib/module/modules/accordion/Accordion.js.map +1 -0
- package/lib/module/modules/accordion/Accordion.variants.js +143 -0
- package/lib/module/modules/accordion/Accordion.variants.js.map +1 -0
- package/lib/module/modules/accordion/MODULE.md +97 -0
- package/lib/module/modules/accordion/index.js +10 -0
- package/lib/module/modules/accordion/index.js.map +1 -0
- package/lib/module/modules/alert-dialog/AlertDialog.js +62 -0
- package/lib/module/modules/alert-dialog/AlertDialog.js.map +1 -0
- package/lib/module/modules/alert-dialog/AlertDialog.variants.js +44 -0
- package/lib/module/modules/alert-dialog/AlertDialog.variants.js.map +1 -0
- package/lib/module/modules/alert-dialog/MODULE.md +81 -0
- package/lib/module/modules/alert-dialog/index.js +10 -0
- package/lib/module/modules/alert-dialog/index.js.map +1 -0
- package/lib/module/modules/avatar/Avatar.js +57 -0
- package/lib/module/modules/avatar/Avatar.js.map +1 -0
- package/lib/module/modules/avatar/Avatar.variants.js +127 -0
- package/lib/module/modules/avatar/Avatar.variants.js.map +1 -0
- package/lib/module/modules/avatar/MODULE.md +76 -0
- package/lib/module/modules/avatar/index.js +12 -0
- package/lib/module/modules/avatar/index.js.map +1 -0
- package/lib/module/modules/badge/Badge.js +56 -0
- package/lib/module/modules/badge/Badge.js.map +1 -0
- package/lib/module/modules/badge/Badge.variants.js +124 -0
- package/lib/module/modules/badge/Badge.variants.js.map +1 -0
- package/lib/module/modules/badge/MODULE.md +82 -0
- package/lib/module/modules/badge/index.js +12 -0
- package/lib/module/modules/badge/index.js.map +1 -0
- package/lib/module/modules/bottom-nav/BottomNav.js +257 -0
- package/lib/module/modules/bottom-nav/BottomNav.js.map +1 -0
- package/lib/module/modules/bottom-nav/BottomNav.search.js +153 -0
- package/lib/module/modules/bottom-nav/BottomNav.search.js.map +1 -0
- package/lib/module/modules/bottom-nav/BottomNav.variants.js +164 -0
- package/lib/module/modules/bottom-nav/BottomNav.variants.js.map +1 -0
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js +297 -0
- package/lib/module/modules/bottom-nav/BottomNavOverflowSheet.js.map +1 -0
- package/lib/module/modules/bottom-nav/MODULE.md +198 -0
- package/lib/module/modules/bottom-nav/index.js +16 -0
- package/lib/module/modules/bottom-nav/index.js.map +1 -0
- package/lib/module/modules/button/Button.js +173 -0
- package/lib/module/modules/button/Button.js.map +1 -0
- package/lib/module/modules/button/Button.variants.js +173 -0
- package/lib/module/modules/button/Button.variants.js.map +1 -0
- package/lib/module/modules/button/MODULE.md +87 -0
- package/lib/module/modules/button/index.js +12 -0
- package/lib/module/modules/button/index.js.map +1 -0
- package/lib/module/modules/button-group/ButtonGroup.js +106 -0
- package/lib/module/modules/button-group/ButtonGroup.js.map +1 -0
- package/lib/module/modules/button-group/ButtonGroup.variants.js +220 -0
- package/lib/module/modules/button-group/ButtonGroup.variants.js.map +1 -0
- package/lib/module/modules/button-group/MODULE.md +129 -0
- package/lib/module/modules/button-group/index.js +11 -0
- package/lib/module/modules/button-group/index.js.map +1 -0
- package/lib/module/modules/card/Card.js +39 -0
- package/lib/module/modules/card/Card.js.map +1 -0
- package/lib/module/modules/card/Card.variants.js +75 -0
- package/lib/module/modules/card/Card.variants.js.map +1 -0
- package/lib/module/modules/card/MODULE.md +81 -0
- package/lib/module/modules/card/index.js +10 -0
- package/lib/module/modules/card/index.js.map +1 -0
- package/lib/module/modules/checkbox/Checkbox.js +115 -0
- package/lib/module/modules/checkbox/Checkbox.js.map +1 -0
- package/lib/module/modules/checkbox/Checkbox.variants.js +122 -0
- package/lib/module/modules/checkbox/Checkbox.variants.js.map +1 -0
- package/lib/module/modules/checkbox/MODULE.md +76 -0
- package/lib/module/modules/checkbox/index.js +11 -0
- package/lib/module/modules/checkbox/index.js.map +1 -0
- package/lib/module/modules/divider/Divider.js +35 -0
- package/lib/module/modules/divider/Divider.js.map +1 -0
- package/lib/module/modules/divider/Divider.variants.js +51 -0
- package/lib/module/modules/divider/Divider.variants.js.map +1 -0
- package/lib/module/modules/divider/MODULE.md +61 -0
- package/lib/module/modules/divider/index.js +10 -0
- package/lib/module/modules/divider/index.js.map +1 -0
- package/lib/module/modules/drawer/Drawer.js +171 -0
- package/lib/module/modules/drawer/Drawer.js.map +1 -0
- package/lib/module/modules/drawer/Drawer.variants.js +118 -0
- package/lib/module/modules/drawer/Drawer.variants.js.map +1 -0
- package/lib/module/modules/drawer/MODULE.md +161 -0
- package/lib/module/modules/drawer/index.js +10 -0
- package/lib/module/modules/drawer/index.js.map +1 -0
- package/lib/module/modules/empty-state/EmptyState.js +79 -0
- package/lib/module/modules/empty-state/EmptyState.js.map +1 -0
- package/lib/module/modules/empty-state/EmptyState.variants.js +54 -0
- package/lib/module/modules/empty-state/EmptyState.variants.js.map +1 -0
- package/lib/module/modules/empty-state/MODULE.md +78 -0
- package/lib/module/modules/empty-state/index.js +13 -0
- package/lib/module/modules/empty-state/index.js.map +1 -0
- package/lib/module/modules/file-upload/FileUpload.js +132 -0
- package/lib/module/modules/file-upload/FileUpload.js.map +1 -0
- package/lib/module/modules/file-upload/FileUpload.variants.js +179 -0
- package/lib/module/modules/file-upload/FileUpload.variants.js.map +1 -0
- package/lib/module/modules/file-upload/MODULE.md +130 -0
- package/lib/module/modules/file-upload/index.js +10 -0
- package/lib/module/modules/file-upload/index.js.map +1 -0
- package/lib/module/modules/filter-sheet/FilterChip.js +79 -0
- package/lib/module/modules/filter-sheet/FilterChip.js.map +1 -0
- package/lib/module/modules/filter-sheet/FilterSheet.js +98 -0
- package/lib/module/modules/filter-sheet/FilterSheet.js.map +1 -0
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js +156 -0
- package/lib/module/modules/filter-sheet/FilterSheet.variants.js.map +1 -0
- package/lib/module/modules/filter-sheet/FilterSheetBody.js +175 -0
- package/lib/module/modules/filter-sheet/FilterSheetBody.js.map +1 -0
- package/lib/module/modules/filter-sheet/MODULE.md +115 -0
- package/lib/module/modules/filter-sheet/filterSheet.helpers.js +90 -0
- package/lib/module/modules/filter-sheet/filterSheet.helpers.js.map +1 -0
- package/lib/module/modules/filter-sheet/index.js +14 -0
- package/lib/module/modules/filter-sheet/index.js.map +1 -0
- package/lib/module/modules/input/Input.js +132 -0
- package/lib/module/modules/input/Input.js.map +1 -0
- package/lib/module/modules/input/Input.variants.js +122 -0
- package/lib/module/modules/input/Input.variants.js.map +1 -0
- package/lib/module/modules/input/MODULE.md +97 -0
- package/lib/module/modules/input/index.js +13 -0
- package/lib/module/modules/input/index.js.map +1 -0
- package/lib/module/modules/menu/MODULE.md +103 -0
- package/lib/module/modules/menu/Menu.js +128 -0
- package/lib/module/modules/menu/Menu.js.map +1 -0
- package/lib/module/modules/menu/Menu.variants.js +75 -0
- package/lib/module/modules/menu/Menu.variants.js.map +1 -0
- package/lib/module/modules/menu/index.js +12 -0
- package/lib/module/modules/menu/index.js.map +1 -0
- package/lib/module/modules/modal/MODULE.md +138 -0
- package/lib/module/modules/modal/Modal.js +101 -0
- package/lib/module/modules/modal/Modal.js.map +1 -0
- package/lib/module/modules/modal/Modal.variants.js +92 -0
- package/lib/module/modules/modal/Modal.variants.js.map +1 -0
- package/lib/module/modules/modal/ModalPortalContext.js +25 -0
- package/lib/module/modules/modal/ModalPortalContext.js.map +1 -0
- package/lib/module/modules/modal/ModalPortalProvider.js +22 -0
- package/lib/module/modules/modal/ModalPortalProvider.js.map +1 -0
- package/lib/module/modules/modal/index.js +16 -0
- package/lib/module/modules/modal/index.js.map +1 -0
- package/lib/module/modules/modal/renderWebPortal.js +18 -0
- package/lib/module/modules/modal/renderWebPortal.js.map +1 -0
- package/lib/module/modules/modal/renderWebPortal.web.js +24 -0
- package/lib/module/modules/modal/renderWebPortal.web.js.map +1 -0
- package/lib/module/modules/multi-select/MODULE.md +100 -0
- package/lib/module/modules/multi-select/MultiSelect.js +204 -0
- package/lib/module/modules/multi-select/MultiSelect.js.map +1 -0
- package/lib/module/modules/multi-select/MultiSelect.variants.js +195 -0
- package/lib/module/modules/multi-select/MultiSelect.variants.js.map +1 -0
- package/lib/module/modules/multi-select/index.js +11 -0
- package/lib/module/modules/multi-select/index.js.map +1 -0
- package/lib/module/modules/number-input/MODULE.md +108 -0
- package/lib/module/modules/number-input/NumberInput.js +253 -0
- package/lib/module/modules/number-input/NumberInput.js.map +1 -0
- package/lib/module/modules/number-input/NumberInput.variants.js +200 -0
- package/lib/module/modules/number-input/NumberInput.variants.js.map +1 -0
- package/lib/module/modules/number-input/index.js +12 -0
- package/lib/module/modules/number-input/index.js.map +1 -0
- package/lib/module/modules/pin-input/MODULE.md +134 -0
- package/lib/module/modules/pin-input/PinInput.js +158 -0
- package/lib/module/modules/pin-input/PinInput.js.map +1 -0
- package/lib/module/modules/pin-input/PinInput.variants.js +183 -0
- package/lib/module/modules/pin-input/PinInput.variants.js.map +1 -0
- package/lib/module/modules/pin-input/index.js +11 -0
- package/lib/module/modules/pin-input/index.js.map +1 -0
- package/lib/module/modules/progress-bar/MODULE.md +101 -0
- package/lib/module/modules/progress-bar/ProgressBar.js +102 -0
- package/lib/module/modules/progress-bar/ProgressBar.js.map +1 -0
- package/lib/module/modules/progress-bar/ProgressBar.variants.js +151 -0
- package/lib/module/modules/progress-bar/ProgressBar.variants.js.map +1 -0
- package/lib/module/modules/progress-bar/index.js +12 -0
- package/lib/module/modules/progress-bar/index.js.map +1 -0
- package/lib/module/modules/radio-group/MODULE.md +75 -0
- package/lib/module/modules/radio-group/RadioGroup.js +87 -0
- package/lib/module/modules/radio-group/RadioGroup.js.map +1 -0
- package/lib/module/modules/radio-group/RadioGroup.variants.js +163 -0
- package/lib/module/modules/radio-group/RadioGroup.variants.js.map +1 -0
- package/lib/module/modules/radio-group/index.js +11 -0
- package/lib/module/modules/radio-group/index.js.map +1 -0
- package/lib/module/modules/reorder/MODULE.md +131 -0
- package/lib/module/modules/reorder/Reorder.js +291 -0
- package/lib/module/modules/reorder/Reorder.js.map +1 -0
- package/lib/module/modules/reorder/Reorder.variants.js +172 -0
- package/lib/module/modules/reorder/Reorder.variants.js.map +1 -0
- package/lib/module/modules/reorder/index.js +11 -0
- package/lib/module/modules/reorder/index.js.map +1 -0
- package/lib/module/modules/select/MODULE.md +91 -0
- package/lib/module/modules/select/Select.js +178 -0
- package/lib/module/modules/select/Select.js.map +1 -0
- package/lib/module/modules/select/Select.variants.js +146 -0
- package/lib/module/modules/select/Select.variants.js.map +1 -0
- package/lib/module/modules/select/index.js +10 -0
- package/lib/module/modules/select/index.js.map +1 -0
- package/lib/module/modules/skeleton/MODULE.md +87 -0
- package/lib/module/modules/skeleton/Skeleton.js +78 -0
- package/lib/module/modules/skeleton/Skeleton.js.map +1 -0
- package/lib/module/modules/skeleton/Skeleton.variants.js +145 -0
- package/lib/module/modules/skeleton/Skeleton.variants.js.map +1 -0
- package/lib/module/modules/skeleton/index.js +10 -0
- package/lib/module/modules/skeleton/index.js.map +1 -0
- package/lib/module/modules/slider/MODULE.md +95 -0
- package/lib/module/modules/slider/Slider.js +183 -0
- package/lib/module/modules/slider/Slider.js.map +1 -0
- package/lib/module/modules/slider/Slider.variants.js +258 -0
- package/lib/module/modules/slider/Slider.variants.js.map +1 -0
- package/lib/module/modules/slider/index.js +10 -0
- package/lib/module/modules/slider/index.js.map +1 -0
- package/lib/module/modules/spinner/MODULE.md +97 -0
- package/lib/module/modules/spinner/Spinner.js +58 -0
- package/lib/module/modules/spinner/Spinner.js.map +1 -0
- package/lib/module/modules/spinner/Spinner.variants.js +131 -0
- package/lib/module/modules/spinner/Spinner.variants.js.map +1 -0
- package/lib/module/modules/spinner/index.js +11 -0
- package/lib/module/modules/spinner/index.js.map +1 -0
- package/lib/module/modules/stepper/MODULE.md +88 -0
- package/lib/module/modules/stepper/Stepper.js +100 -0
- package/lib/module/modules/stepper/Stepper.js.map +1 -0
- package/lib/module/modules/stepper/Stepper.variants.js +146 -0
- package/lib/module/modules/stepper/Stepper.variants.js.map +1 -0
- package/lib/module/modules/stepper/index.js +10 -0
- package/lib/module/modules/stepper/index.js.map +1 -0
- package/lib/module/modules/switch/MODULE.md +65 -0
- package/lib/module/modules/switch/Switch.js +53 -0
- package/lib/module/modules/switch/Switch.js.map +1 -0
- package/lib/module/modules/switch/Switch.variants.js +61 -0
- package/lib/module/modules/switch/Switch.variants.js.map +1 -0
- package/lib/module/modules/switch/index.js +10 -0
- package/lib/module/modules/switch/index.js.map +1 -0
- package/lib/module/modules/tabs/MODULE.md +80 -0
- package/lib/module/modules/tabs/Tabs.js +127 -0
- package/lib/module/modules/tabs/Tabs.js.map +1 -0
- package/lib/module/modules/tabs/Tabs.variants.js +135 -0
- package/lib/module/modules/tabs/Tabs.variants.js.map +1 -0
- package/lib/module/modules/tabs/index.js +12 -0
- package/lib/module/modules/tabs/index.js.map +1 -0
- package/lib/module/modules/textarea/MODULE.md +91 -0
- package/lib/module/modules/textarea/Textarea.js +136 -0
- package/lib/module/modules/textarea/Textarea.js.map +1 -0
- package/lib/module/modules/textarea/Textarea.variants.js +113 -0
- package/lib/module/modules/textarea/Textarea.variants.js.map +1 -0
- package/lib/module/modules/textarea/index.js +10 -0
- package/lib/module/modules/textarea/index.js.map +1 -0
- package/lib/module/modules/timeline/MODULE.md +95 -0
- package/lib/module/modules/timeline/Timeline.js +92 -0
- package/lib/module/modules/timeline/Timeline.js.map +1 -0
- package/lib/module/modules/timeline/Timeline.variants.js +146 -0
- package/lib/module/modules/timeline/Timeline.variants.js.map +1 -0
- package/lib/module/modules/timeline/index.js +12 -0
- package/lib/module/modules/timeline/index.js.map +1 -0
- package/lib/module/modules/toast/MODULE.md +104 -0
- package/lib/module/modules/toast/Toast.js +178 -0
- package/lib/module/modules/toast/Toast.js.map +1 -0
- package/lib/module/modules/toast/Toast.variants.js +120 -0
- package/lib/module/modules/toast/Toast.variants.js.map +1 -0
- package/lib/module/modules/toast/index.js +13 -0
- package/lib/module/modules/toast/index.js.map +1 -0
- package/lib/module/modules/tooltip/MODULE.md +86 -0
- package/lib/module/modules/tooltip/Tooltip.js +115 -0
- package/lib/module/modules/tooltip/Tooltip.js.map +1 -0
- package/lib/module/modules/tooltip/Tooltip.variants.js +75 -0
- package/lib/module/modules/tooltip/Tooltip.variants.js.map +1 -0
- package/lib/module/modules/tooltip/index.js +10 -0
- package/lib/module/modules/tooltip/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/theme/MODULE.md +87 -0
- package/lib/module/theme/index.js +15 -0
- package/lib/module/theme/index.js.map +1 -0
- package/lib/module/theme/platform/MODULE.md +102 -0
- package/lib/module/theme/platform/colorScheme.native.js +24 -0
- package/lib/module/theme/platform/colorScheme.native.js.map +1 -0
- package/lib/module/theme/platform/elevation.native.js +75 -0
- package/lib/module/theme/platform/elevation.native.js.map +1 -0
- package/lib/module/theme/platform/fonts.native.js +58 -0
- package/lib/module/theme/platform/fonts.native.js.map +1 -0
- package/lib/module/theme/platform/index.js +14 -0
- package/lib/module/theme/platform/index.js.map +1 -0
- package/lib/module/theme/platform/units.native.js +18 -0
- package/lib/module/theme/platform/units.native.js.map +1 -0
- package/lib/module/theme/provider/PixelizeProvider.js +149 -0
- package/lib/module/theme/provider/PixelizeProvider.js.map +1 -0
- package/lib/module/theme/provider/colorModeStorage.js +63 -0
- package/lib/module/theme/provider/colorModeStorage.js.map +1 -0
- package/lib/module/theme/provider/index.js +8 -0
- package/lib/module/theme/provider/index.js.map +1 -0
- package/lib/module/theme/provider/useTheme.js +13 -0
- package/lib/module/theme/provider/useTheme.js.map +1 -0
- package/lib/module/theme/provider/useThemeColors.js +13 -0
- package/lib/module/theme/provider/useThemeColors.js.map +1 -0
- package/lib/module/theme/provider/useThemeMode.js +13 -0
- package/lib/module/theme/provider/useThemeMode.js.map +1 -0
- package/lib/module/theme/tokens/MODULE.md +102 -0
- package/lib/module/theme/tokens/brands/emerald/palette.dark.js +9 -0
- package/lib/module/theme/tokens/brands/emerald/palette.dark.js.map +1 -0
- package/lib/module/theme/tokens/brands/emerald/palette.light.js +125 -0
- package/lib/module/theme/tokens/brands/emerald/palette.light.js.map +1 -0
- package/lib/module/theme/tokens/brands/index.js +91 -0
- package/lib/module/theme/tokens/brands/index.js.map +1 -0
- package/lib/module/theme/tokens/brands/lavender/palette.dark.js +9 -0
- package/lib/module/theme/tokens/brands/lavender/palette.dark.js.map +1 -0
- package/lib/module/theme/tokens/brands/lavender/palette.light.js +376 -0
- package/lib/module/theme/tokens/brands/lavender/palette.light.js.map +1 -0
- package/lib/module/theme/tokens/brands/meadow/palette.dark.js +9 -0
- package/lib/module/theme/tokens/brands/meadow/palette.dark.js.map +1 -0
- package/lib/module/theme/tokens/brands/meadow/palette.light.js +126 -0
- package/lib/module/theme/tokens/brands/meadow/palette.light.js.map +1 -0
- package/lib/module/theme/tokens/brands/radiant/palette.dark.js +9 -0
- package/lib/module/theme/tokens/brands/radiant/palette.dark.js.map +1 -0
- package/lib/module/theme/tokens/brands/radiant/palette.light.js +125 -0
- package/lib/module/theme/tokens/brands/radiant/palette.light.js.map +1 -0
- package/lib/module/theme/tokens/brands/rosewood/palette.dark.js +9 -0
- package/lib/module/theme/tokens/brands/rosewood/palette.dark.js.map +1 -0
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js +125 -0
- package/lib/module/theme/tokens/brands/rosewood/palette.light.js.map +1 -0
- package/lib/module/theme/tokens/brands/skyline/palette.dark.js +9 -0
- package/lib/module/theme/tokens/brands/skyline/palette.dark.js.map +1 -0
- package/lib/module/theme/tokens/brands/skyline/palette.light.js +126 -0
- package/lib/module/theme/tokens/brands/skyline/palette.light.js.map +1 -0
- package/lib/module/theme/tokens/brands/slate/palette.dark.js +11 -0
- package/lib/module/theme/tokens/brands/slate/palette.dark.js.map +1 -0
- package/lib/module/theme/tokens/brands/slate/palette.light.js +129 -0
- package/lib/module/theme/tokens/brands/slate/palette.light.js.map +1 -0
- package/lib/module/theme/tokens/brands/storefront/palette.dark.js +7 -0
- package/lib/module/theme/tokens/brands/storefront/palette.dark.js.map +1 -0
- package/lib/module/theme/tokens/brands/storefront/palette.light.js +127 -0
- package/lib/module/theme/tokens/brands/storefront/palette.light.js.map +1 -0
- package/lib/module/theme/tokens/brands/zinc/palette.dark.js +222 -0
- package/lib/module/theme/tokens/brands/zinc/palette.dark.js.map +1 -0
- package/lib/module/theme/tokens/brands/zinc/palette.light.js +393 -0
- package/lib/module/theme/tokens/brands/zinc/palette.light.js.map +1 -0
- package/lib/module/theme/tokens/builders/accentText.js +66 -0
- package/lib/module/theme/tokens/builders/accentText.js.map +1 -0
- package/lib/module/theme/tokens/builders/buildBrandTokens.js +38 -0
- package/lib/module/theme/tokens/builders/buildBrandTokens.js.map +1 -0
- package/lib/module/theme/tokens/builders/buildDarkPalette.js +300 -0
- package/lib/module/theme/tokens/builders/buildDarkPalette.js.map +1 -0
- package/lib/module/theme/tokens/builders/color.js +187 -0
- package/lib/module/theme/tokens/builders/color.js.map +1 -0
- package/lib/module/theme/tokens/index.js +27 -0
- package/lib/module/theme/tokens/index.js.map +1 -0
- package/lib/module/theme/tokens/primitives/borderWidths.js +16 -0
- package/lib/module/theme/tokens/primitives/borderWidths.js.map +1 -0
- package/lib/module/theme/tokens/primitives/breakpoints.js +18 -0
- package/lib/module/theme/tokens/primitives/breakpoints.js.map +1 -0
- package/lib/module/theme/tokens/primitives/elevation.js +95 -0
- package/lib/module/theme/tokens/primitives/elevation.js.map +1 -0
- package/lib/module/theme/tokens/primitives/fontSizes.js +22 -0
- package/lib/module/theme/tokens/primitives/fontSizes.js.map +1 -0
- package/lib/module/theme/tokens/primitives/fontWeights.js +23 -0
- package/lib/module/theme/tokens/primitives/fontWeights.js.map +1 -0
- package/lib/module/theme/tokens/primitives/index.js +14 -0
- package/lib/module/theme/tokens/primitives/index.js.map +1 -0
- package/lib/module/theme/tokens/primitives/letterSpacings.js +18 -0
- package/lib/module/theme/tokens/primitives/letterSpacings.js.map +1 -0
- package/lib/module/theme/tokens/primitives/lineHeights.js +21 -0
- package/lib/module/theme/tokens/primitives/lineHeights.js.map +1 -0
- package/lib/module/theme/tokens/primitives/radii.js +21 -0
- package/lib/module/theme/tokens/primitives/radii.js.map +1 -0
- package/lib/module/theme/tokens/primitives/sizes.js +34 -0
- package/lib/module/theme/tokens/primitives/sizes.js.map +1 -0
- package/lib/module/theme/tokens/primitives/space.js +30 -0
- package/lib/module/theme/tokens/primitives/space.js.map +1 -0
- package/lib/module/theme/tokens/primitives/zIndices.js +23 -0
- package/lib/module/theme/tokens/primitives/zIndices.js.map +1 -0
- package/lib/module/theme/tokens/roles/index.js +126 -0
- package/lib/module/theme/tokens/roles/index.js.map +1 -0
- package/lib/module/theme/tokens/types.js +2 -0
- package/lib/module/theme/tokens/types.js.map +1 -0
- package/lib/typescript/core/a11y/index.d.ts +7 -0
- package/lib/typescript/core/a11y/index.d.ts.map +1 -0
- package/lib/typescript/core/icon/index.d.ts +60 -0
- package/lib/typescript/core/icon/index.d.ts.map +1 -0
- package/lib/typescript/core/style/index.d.ts +4 -0
- package/lib/typescript/core/style/index.d.ts.map +1 -0
- package/lib/typescript/core/style/layoutStyle.d.ts +19 -0
- package/lib/typescript/core/style/layoutStyle.d.ts.map +1 -0
- package/lib/typescript/core/style/variants.d.ts +55 -0
- package/lib/typescript/core/style/variants.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +11 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/modules/accordion/Accordion.d.ts +57 -0
- package/lib/typescript/modules/accordion/Accordion.d.ts.map +1 -0
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts +131 -0
- package/lib/typescript/modules/accordion/Accordion.variants.d.ts.map +1 -0
- package/lib/typescript/modules/accordion/index.d.ts +9 -0
- package/lib/typescript/modules/accordion/index.d.ts.map +1 -0
- package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts +24 -0
- package/lib/typescript/modules/alert-dialog/AlertDialog.d.ts.map +1 -0
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts +29 -0
- package/lib/typescript/modules/alert-dialog/AlertDialog.variants.d.ts.map +1 -0
- package/lib/typescript/modules/alert-dialog/index.d.ts +9 -0
- package/lib/typescript/modules/alert-dialog/index.d.ts.map +1 -0
- package/lib/typescript/modules/avatar/Avatar.d.ts +30 -0
- package/lib/typescript/modules/avatar/Avatar.d.ts.map +1 -0
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts +123 -0
- package/lib/typescript/modules/avatar/Avatar.variants.d.ts.map +1 -0
- package/lib/typescript/modules/avatar/index.d.ts +11 -0
- package/lib/typescript/modules/avatar/index.d.ts.map +1 -0
- package/lib/typescript/modules/badge/Badge.d.ts +19 -0
- package/lib/typescript/modules/badge/Badge.d.ts.map +1 -0
- package/lib/typescript/modules/badge/Badge.variants.d.ts +102 -0
- package/lib/typescript/modules/badge/Badge.variants.d.ts.map +1 -0
- package/lib/typescript/modules/badge/index.d.ts +10 -0
- package/lib/typescript/modules/badge/index.d.ts.map +1 -0
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts +106 -0
- package/lib/typescript/modules/bottom-nav/BottomNav.d.ts.map +1 -0
- package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts +61 -0
- package/lib/typescript/modules/bottom-nav/BottomNav.search.d.ts.map +1 -0
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts +122 -0
- package/lib/typescript/modules/bottom-nav/BottomNav.variants.d.ts.map +1 -0
- package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts +39 -0
- package/lib/typescript/modules/bottom-nav/BottomNavOverflowSheet.d.ts.map +1 -0
- package/lib/typescript/modules/bottom-nav/index.d.ts +12 -0
- package/lib/typescript/modules/bottom-nav/index.d.ts.map +1 -0
- package/lib/typescript/modules/button/Button.d.ts +43 -0
- package/lib/typescript/modules/button/Button.d.ts.map +1 -0
- package/lib/typescript/modules/button/Button.variants.d.ts +156 -0
- package/lib/typescript/modules/button/Button.variants.d.ts.map +1 -0
- package/lib/typescript/modules/button/index.d.ts +10 -0
- package/lib/typescript/modules/button/index.d.ts.map +1 -0
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts +37 -0
- package/lib/typescript/modules/button-group/ButtonGroup.d.ts.map +1 -0
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts +217 -0
- package/lib/typescript/modules/button-group/ButtonGroup.variants.d.ts.map +1 -0
- package/lib/typescript/modules/button-group/index.d.ts +10 -0
- package/lib/typescript/modules/button-group/index.d.ts.map +1 -0
- package/lib/typescript/modules/card/Card.d.ts +20 -0
- package/lib/typescript/modules/card/Card.d.ts.map +1 -0
- package/lib/typescript/modules/card/Card.variants.d.ts +51 -0
- package/lib/typescript/modules/card/Card.variants.d.ts.map +1 -0
- package/lib/typescript/modules/card/index.d.ts +9 -0
- package/lib/typescript/modules/card/index.d.ts.map +1 -0
- package/lib/typescript/modules/checkbox/Checkbox.d.ts +43 -0
- package/lib/typescript/modules/checkbox/Checkbox.d.ts.map +1 -0
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts +120 -0
- package/lib/typescript/modules/checkbox/Checkbox.variants.d.ts.map +1 -0
- package/lib/typescript/modules/checkbox/index.d.ts +10 -0
- package/lib/typescript/modules/checkbox/index.d.ts.map +1 -0
- package/lib/typescript/modules/divider/Divider.d.ts +18 -0
- package/lib/typescript/modules/divider/Divider.d.ts.map +1 -0
- package/lib/typescript/modules/divider/Divider.variants.d.ts +42 -0
- package/lib/typescript/modules/divider/Divider.variants.d.ts.map +1 -0
- package/lib/typescript/modules/divider/index.d.ts +9 -0
- package/lib/typescript/modules/divider/index.d.ts.map +1 -0
- package/lib/typescript/modules/drawer/Drawer.d.ts +44 -0
- package/lib/typescript/modules/drawer/Drawer.d.ts.map +1 -0
- package/lib/typescript/modules/drawer/Drawer.variants.d.ts +80 -0
- package/lib/typescript/modules/drawer/Drawer.variants.d.ts.map +1 -0
- package/lib/typescript/modules/drawer/index.d.ts +8 -0
- package/lib/typescript/modules/drawer/index.d.ts.map +1 -0
- package/lib/typescript/modules/empty-state/EmptyState.d.ts +29 -0
- package/lib/typescript/modules/empty-state/EmptyState.d.ts.map +1 -0
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts +43 -0
- package/lib/typescript/modules/empty-state/EmptyState.variants.d.ts.map +1 -0
- package/lib/typescript/modules/empty-state/index.d.ts +10 -0
- package/lib/typescript/modules/empty-state/index.d.ts.map +1 -0
- package/lib/typescript/modules/file-upload/FileUpload.d.ts +44 -0
- package/lib/typescript/modules/file-upload/FileUpload.d.ts.map +1 -0
- package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts +114 -0
- package/lib/typescript/modules/file-upload/FileUpload.variants.d.ts.map +1 -0
- package/lib/typescript/modules/file-upload/index.d.ts +9 -0
- package/lib/typescript/modules/file-upload/index.d.ts.map +1 -0
- package/lib/typescript/modules/filter-sheet/FilterChip.d.ts +25 -0
- package/lib/typescript/modules/filter-sheet/FilterChip.d.ts.map +1 -0
- package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts +54 -0
- package/lib/typescript/modules/filter-sheet/FilterSheet.d.ts.map +1 -0
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts +98 -0
- package/lib/typescript/modules/filter-sheet/FilterSheet.variants.d.ts.map +1 -0
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts +28 -0
- package/lib/typescript/modules/filter-sheet/FilterSheetBody.d.ts.map +1 -0
- package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts +45 -0
- package/lib/typescript/modules/filter-sheet/filterSheet.helpers.d.ts.map +1 -0
- package/lib/typescript/modules/filter-sheet/index.d.ts +12 -0
- package/lib/typescript/modules/filter-sheet/index.d.ts.map +1 -0
- package/lib/typescript/modules/input/Input.d.ts +33 -0
- package/lib/typescript/modules/input/Input.d.ts.map +1 -0
- package/lib/typescript/modules/input/Input.variants.d.ts +116 -0
- package/lib/typescript/modules/input/Input.variants.d.ts.map +1 -0
- package/lib/typescript/modules/input/index.d.ts +10 -0
- package/lib/typescript/modules/input/index.d.ts.map +1 -0
- package/lib/typescript/modules/menu/Menu.d.ts +43 -0
- package/lib/typescript/modules/menu/Menu.d.ts.map +1 -0
- package/lib/typescript/modules/menu/Menu.variants.d.ts +41 -0
- package/lib/typescript/modules/menu/Menu.variants.d.ts.map +1 -0
- package/lib/typescript/modules/menu/index.d.ts +10 -0
- package/lib/typescript/modules/menu/index.d.ts.map +1 -0
- package/lib/typescript/modules/modal/Modal.d.ts +32 -0
- package/lib/typescript/modules/modal/Modal.d.ts.map +1 -0
- package/lib/typescript/modules/modal/Modal.variants.d.ts +72 -0
- package/lib/typescript/modules/modal/Modal.variants.d.ts.map +1 -0
- package/lib/typescript/modules/modal/ModalPortalContext.d.ts +2 -0
- package/lib/typescript/modules/modal/ModalPortalContext.d.ts.map +1 -0
- package/lib/typescript/modules/modal/ModalPortalProvider.d.ts +21 -0
- package/lib/typescript/modules/modal/ModalPortalProvider.d.ts.map +1 -0
- package/lib/typescript/modules/modal/index.d.ts +16 -0
- package/lib/typescript/modules/modal/index.d.ts.map +1 -0
- package/lib/typescript/modules/modal/renderWebPortal.d.ts +15 -0
- package/lib/typescript/modules/modal/renderWebPortal.d.ts.map +1 -0
- package/lib/typescript/modules/modal/renderWebPortal.web.d.ts +19 -0
- package/lib/typescript/modules/modal/renderWebPortal.web.d.ts.map +1 -0
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts +33 -0
- package/lib/typescript/modules/multi-select/MultiSelect.d.ts.map +1 -0
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts +149 -0
- package/lib/typescript/modules/multi-select/MultiSelect.variants.d.ts.map +1 -0
- package/lib/typescript/modules/multi-select/index.d.ts +10 -0
- package/lib/typescript/modules/multi-select/index.d.ts.map +1 -0
- package/lib/typescript/modules/number-input/NumberInput.d.ts +34 -0
- package/lib/typescript/modules/number-input/NumberInput.d.ts.map +1 -0
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts +170 -0
- package/lib/typescript/modules/number-input/NumberInput.variants.d.ts.map +1 -0
- package/lib/typescript/modules/number-input/index.d.ts +11 -0
- package/lib/typescript/modules/number-input/index.d.ts.map +1 -0
- package/lib/typescript/modules/pin-input/PinInput.d.ts +40 -0
- package/lib/typescript/modules/pin-input/PinInput.d.ts.map +1 -0
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts +164 -0
- package/lib/typescript/modules/pin-input/PinInput.variants.d.ts.map +1 -0
- package/lib/typescript/modules/pin-input/index.d.ts +10 -0
- package/lib/typescript/modules/pin-input/index.d.ts.map +1 -0
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts +21 -0
- package/lib/typescript/modules/progress-bar/ProgressBar.d.ts.map +1 -0
- package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts +112 -0
- package/lib/typescript/modules/progress-bar/ProgressBar.variants.d.ts.map +1 -0
- package/lib/typescript/modules/progress-bar/index.d.ts +11 -0
- package/lib/typescript/modules/progress-bar/index.d.ts.map +1 -0
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts +27 -0
- package/lib/typescript/modules/radio-group/RadioGroup.d.ts.map +1 -0
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts +142 -0
- package/lib/typescript/modules/radio-group/RadioGroup.variants.d.ts.map +1 -0
- package/lib/typescript/modules/radio-group/index.d.ts +10 -0
- package/lib/typescript/modules/radio-group/index.d.ts.map +1 -0
- package/lib/typescript/modules/reorder/Reorder.d.ts +43 -0
- package/lib/typescript/modules/reorder/Reorder.d.ts.map +1 -0
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts +116 -0
- package/lib/typescript/modules/reorder/Reorder.variants.d.ts.map +1 -0
- package/lib/typescript/modules/reorder/index.d.ts +9 -0
- package/lib/typescript/modules/reorder/index.d.ts.map +1 -0
- package/lib/typescript/modules/select/Select.d.ts +31 -0
- package/lib/typescript/modules/select/Select.d.ts.map +1 -0
- package/lib/typescript/modules/select/Select.variants.d.ts +127 -0
- package/lib/typescript/modules/select/Select.variants.d.ts.map +1 -0
- package/lib/typescript/modules/select/index.d.ts +9 -0
- package/lib/typescript/modules/select/index.d.ts.map +1 -0
- package/lib/typescript/modules/skeleton/Skeleton.d.ts +27 -0
- package/lib/typescript/modules/skeleton/Skeleton.d.ts.map +1 -0
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts +119 -0
- package/lib/typescript/modules/skeleton/Skeleton.variants.d.ts.map +1 -0
- package/lib/typescript/modules/skeleton/index.d.ts +9 -0
- package/lib/typescript/modules/skeleton/index.d.ts.map +1 -0
- package/lib/typescript/modules/slider/Slider.d.ts +44 -0
- package/lib/typescript/modules/slider/Slider.d.ts.map +1 -0
- package/lib/typescript/modules/slider/Slider.variants.d.ts +211 -0
- package/lib/typescript/modules/slider/Slider.variants.d.ts.map +1 -0
- package/lib/typescript/modules/slider/index.d.ts +9 -0
- package/lib/typescript/modules/slider/index.d.ts.map +1 -0
- package/lib/typescript/modules/spinner/Spinner.d.ts +19 -0
- package/lib/typescript/modules/spinner/Spinner.d.ts.map +1 -0
- package/lib/typescript/modules/spinner/Spinner.variants.d.ts +113 -0
- package/lib/typescript/modules/spinner/Spinner.variants.d.ts.map +1 -0
- package/lib/typescript/modules/spinner/index.d.ts +10 -0
- package/lib/typescript/modules/spinner/index.d.ts.map +1 -0
- package/lib/typescript/modules/stepper/Stepper.d.ts +26 -0
- package/lib/typescript/modules/stepper/Stepper.d.ts.map +1 -0
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts +107 -0
- package/lib/typescript/modules/stepper/Stepper.variants.d.ts.map +1 -0
- package/lib/typescript/modules/stepper/index.d.ts +8 -0
- package/lib/typescript/modules/stepper/index.d.ts.map +1 -0
- package/lib/typescript/modules/switch/Switch.d.ts +22 -0
- package/lib/typescript/modules/switch/Switch.d.ts.map +1 -0
- package/lib/typescript/modules/switch/Switch.variants.d.ts +60 -0
- package/lib/typescript/modules/switch/Switch.variants.d.ts.map +1 -0
- package/lib/typescript/modules/switch/index.d.ts +8 -0
- package/lib/typescript/modules/switch/index.d.ts.map +1 -0
- package/lib/typescript/modules/tabs/Tabs.d.ts +31 -0
- package/lib/typescript/modules/tabs/Tabs.d.ts.map +1 -0
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts +114 -0
- package/lib/typescript/modules/tabs/Tabs.variants.d.ts.map +1 -0
- package/lib/typescript/modules/tabs/index.d.ts +10 -0
- package/lib/typescript/modules/tabs/index.d.ts.map +1 -0
- package/lib/typescript/modules/textarea/Textarea.d.ts +25 -0
- package/lib/typescript/modules/textarea/Textarea.d.ts.map +1 -0
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts +99 -0
- package/lib/typescript/modules/textarea/Textarea.variants.d.ts.map +1 -0
- package/lib/typescript/modules/textarea/index.d.ts +9 -0
- package/lib/typescript/modules/textarea/index.d.ts.map +1 -0
- package/lib/typescript/modules/timeline/Timeline.d.ts +28 -0
- package/lib/typescript/modules/timeline/Timeline.d.ts.map +1 -0
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts +103 -0
- package/lib/typescript/modules/timeline/Timeline.variants.d.ts.map +1 -0
- package/lib/typescript/modules/timeline/index.d.ts +9 -0
- package/lib/typescript/modules/timeline/index.d.ts.map +1 -0
- package/lib/typescript/modules/toast/Toast.d.ts +38 -0
- package/lib/typescript/modules/toast/Toast.d.ts.map +1 -0
- package/lib/typescript/modules/toast/Toast.variants.d.ts +80 -0
- package/lib/typescript/modules/toast/Toast.variants.d.ts.map +1 -0
- package/lib/typescript/modules/toast/index.d.ts +12 -0
- package/lib/typescript/modules/toast/index.d.ts.map +1 -0
- package/lib/typescript/modules/tooltip/Tooltip.d.ts +31 -0
- package/lib/typescript/modules/tooltip/Tooltip.d.ts.map +1 -0
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts +52 -0
- package/lib/typescript/modules/tooltip/Tooltip.variants.d.ts.map +1 -0
- package/lib/typescript/modules/tooltip/index.d.ts +9 -0
- package/lib/typescript/modules/tooltip/index.d.ts.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/theme/index.d.ts +11 -0
- package/lib/typescript/theme/index.d.ts.map +1 -0
- package/lib/typescript/theme/platform/colorScheme.native.d.ts +12 -0
- package/lib/typescript/theme/platform/colorScheme.native.d.ts.map +1 -0
- package/lib/typescript/theme/platform/elevation.native.d.ts +35 -0
- package/lib/typescript/theme/platform/elevation.native.d.ts.map +1 -0
- package/lib/typescript/theme/platform/fonts.native.d.ts +41 -0
- package/lib/typescript/theme/platform/fonts.native.d.ts.map +1 -0
- package/lib/typescript/theme/platform/index.d.ts +15 -0
- package/lib/typescript/theme/platform/index.d.ts.map +1 -0
- package/lib/typescript/theme/platform/units.native.d.ts +13 -0
- package/lib/typescript/theme/platform/units.native.d.ts.map +1 -0
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts +81 -0
- package/lib/typescript/theme/provider/PixelizeProvider.d.ts.map +1 -0
- package/lib/typescript/theme/provider/colorModeStorage.d.ts +43 -0
- package/lib/typescript/theme/provider/colorModeStorage.d.ts.map +1 -0
- package/lib/typescript/theme/provider/index.d.ts +8 -0
- package/lib/typescript/theme/provider/index.d.ts.map +1 -0
- package/lib/typescript/theme/provider/useTheme.d.ts +4 -0
- package/lib/typescript/theme/provider/useTheme.d.ts.map +1 -0
- package/lib/typescript/theme/provider/useThemeColors.d.ts +9 -0
- package/lib/typescript/theme/provider/useThemeColors.d.ts.map +1 -0
- package/lib/typescript/theme/provider/useThemeMode.d.ts +4 -0
- package/lib/typescript/theme/provider/useThemeMode.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts +3 -0
- package/lib/typescript/theme/tokens/brands/emerald/palette.dark.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts +4 -0
- package/lib/typescript/theme/tokens/brands/emerald/palette.light.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/index.d.ts +30 -0
- package/lib/typescript/theme/tokens/brands/index.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts +3 -0
- package/lib/typescript/theme/tokens/brands/lavender/palette.dark.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts +4 -0
- package/lib/typescript/theme/tokens/brands/lavender/palette.light.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts +3 -0
- package/lib/typescript/theme/tokens/brands/meadow/palette.dark.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts +4 -0
- package/lib/typescript/theme/tokens/brands/meadow/palette.light.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts +3 -0
- package/lib/typescript/theme/tokens/brands/radiant/palette.dark.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts +4 -0
- package/lib/typescript/theme/tokens/brands/radiant/palette.light.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts +3 -0
- package/lib/typescript/theme/tokens/brands/rosewood/palette.dark.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts +4 -0
- package/lib/typescript/theme/tokens/brands/rosewood/palette.light.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts +3 -0
- package/lib/typescript/theme/tokens/brands/skyline/palette.dark.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts +4 -0
- package/lib/typescript/theme/tokens/brands/skyline/palette.light.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts +3 -0
- package/lib/typescript/theme/tokens/brands/slate/palette.dark.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts +4 -0
- package/lib/typescript/theme/tokens/brands/slate/palette.light.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts +3 -0
- package/lib/typescript/theme/tokens/brands/storefront/palette.dark.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts +4 -0
- package/lib/typescript/theme/tokens/brands/storefront/palette.light.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts +4 -0
- package/lib/typescript/theme/tokens/brands/zinc/palette.dark.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts +4 -0
- package/lib/typescript/theme/tokens/brands/zinc/palette.light.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/builders/accentText.d.ts +42 -0
- package/lib/typescript/theme/tokens/builders/accentText.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts +21 -0
- package/lib/typescript/theme/tokens/builders/buildBrandTokens.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts +13 -0
- package/lib/typescript/theme/tokens/builders/buildDarkPalette.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/builders/color.d.ts +59 -0
- package/lib/typescript/theme/tokens/builders/color.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/index.d.ts +21 -0
- package/lib/typescript/theme/tokens/index.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts +15 -0
- package/lib/typescript/theme/tokens/primitives/borderWidths.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts +17 -0
- package/lib/typescript/theme/tokens/primitives/breakpoints.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/elevation.d.ts +109 -0
- package/lib/typescript/theme/tokens/primitives/elevation.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts +21 -0
- package/lib/typescript/theme/tokens/primitives/fontSizes.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts +21 -0
- package/lib/typescript/theme/tokens/primitives/fontWeights.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/index.d.ts +23 -0
- package/lib/typescript/theme/tokens/primitives/index.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts +17 -0
- package/lib/typescript/theme/tokens/primitives/letterSpacings.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts +20 -0
- package/lib/typescript/theme/tokens/primitives/lineHeights.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/radii.d.ts +20 -0
- package/lib/typescript/theme/tokens/primitives/radii.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/sizes.d.ts +33 -0
- package/lib/typescript/theme/tokens/primitives/sizes.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/space.d.ts +29 -0
- package/lib/typescript/theme/tokens/primitives/space.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/primitives/zIndices.d.ts +22 -0
- package/lib/typescript/theme/tokens/primitives/zIndices.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/roles/index.d.ts +68 -0
- package/lib/typescript/theme/tokens/roles/index.d.ts.map +1 -0
- package/lib/typescript/theme/tokens/types.d.ts +103 -0
- package/lib/typescript/theme/tokens/types.d.ts.map +1 -0
- package/package.json +259 -0
- package/registry.json +175 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# badge/ — non-interactive status/label chip
|
|
2
|
+
|
|
3
|
+
`Badge` renders a small status/label chip: subtle tinted fill, a coloured border, and a label
|
|
4
|
+
(with an optional leading icon). It is a `View`, never a `Pressable` — no press, focus, loading,
|
|
5
|
+
or disabled state.
|
|
6
|
+
|
|
7
|
+
## Files
|
|
8
|
+
|
|
9
|
+
| File | Role |
|
|
10
|
+
|------|------|
|
|
11
|
+
| `Badge.tsx` | The component. Composition + a11y wiring only — no press/focus/animation logic. |
|
|
12
|
+
| `Badge.variants.ts` | Pure resolvers (`BADGE_SIZES`, `resolveBadgeTone`, `resolveBadgeAccessibility`) + the themed structural variant resolver `badgeStructure`. No React, no lucide. |
|
|
13
|
+
| `index.ts` | Public surface: `Badge`, `BadgeProps`, the closed unions, `IconName` (re-exported from `core/icon`). |
|
|
14
|
+
| `__tests__/Badge.test.ts` | Pure: WCAG contrast (all brands × modes) + accessibility contract. |
|
|
15
|
+
| `__tests__/Badge.render.test.tsx` | Render: tones, sizes, accessible name, optional icon. |
|
|
16
|
+
|
|
17
|
+
## Props
|
|
18
|
+
|
|
19
|
+
| Prop | Type | Default | Notes |
|
|
20
|
+
|------|------|---------|-------|
|
|
21
|
+
| `tone` | `accent \| neutral \| success \| warning \| danger \| info` | `accent` | Closed union — see below. |
|
|
22
|
+
| `size` | `sm \| md` | `md` | 20 / 24 dp. No touch-target floor — not interactive. |
|
|
23
|
+
| `label` | `string` | — | Always required; a Badge is never icon-only. |
|
|
24
|
+
| `icon` | `IconName` | — | A NAME, never a `ReactNode`. Optional, leading only. |
|
|
25
|
+
| `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
|
|
26
|
+
| `testID` | `string` | — | |
|
|
27
|
+
|
|
28
|
+
## Accessibility contract (WCAG)
|
|
29
|
+
|
|
30
|
+
- **4.1.2** — the chip is ONE accessible node: `accessible`, `accessibilityRole="text"`,
|
|
31
|
+
`accessibilityLabel={label}`. The icon (a plain SVG, not independently accessible) and the label
|
|
32
|
+
`Text` never surface as two separate elements to assistive tech.
|
|
33
|
+
- **1.4.3** — the label is the tone's derived `text` colour on the tone's `fill`, measured ≥ 4.5:1
|
|
34
|
+
for every tone × brand × mode (`Badge.test.ts`).
|
|
35
|
+
- **1.4.11** — the border clears ≥ 3:1 both against the canvas AND against the chip's own `fill`
|
|
36
|
+
(the two colours it's actually adjacent to), for every tone × brand × mode.
|
|
37
|
+
- No touch target / `hitSlop`, no focus ring, no reduced-motion handling — none apply. Badge is
|
|
38
|
+
non-interactive and has no animation to suppress.
|
|
39
|
+
|
|
40
|
+
## Why `tone` is a union, not a `color`
|
|
41
|
+
|
|
42
|
+
Same reasoning as Button/Input: every colour a Badge can show is a role lookup
|
|
43
|
+
(`resolveBadgeTone`), guaranteed legible in both modes, never an app-invented hex. `accent`/
|
|
44
|
+
`neutral` mirror Button's tone shapes at "subtle" emphasis only (a badge never uses a solid fill —
|
|
45
|
+
it's a passive label, not a call-to-action). The four status tones map onto
|
|
46
|
+
`colors.status.<role>`.
|
|
47
|
+
|
|
48
|
+
## A real gap this module found: `StatusColors.border` is not a badge border
|
|
49
|
+
|
|
50
|
+
The spec for this component assumed `status.<role>.border`, `.subtle`, and `.text` were all
|
|
51
|
+
already ≥ AA from `roleColors()`. Measuring (never assuming — see `Badge.test.ts`) found that
|
|
52
|
+
**`StatusColors.border` (`ramp[200]`) clears neither 3:1 against the canvas nor against its own
|
|
53
|
+
`subtle` fill, on any of the 8 brands × either mode** (as low as 1.26:1) — it is a decorative rung,
|
|
54
|
+
not a boundary one. `.solid` doesn't generalise as a fix either: `Input.variants.ts` already reads
|
|
55
|
+
it for `danger` alone and documents it clearing ≥ 3:1 everywhere, but measured here it fails for
|
|
56
|
+
`success`/`warning`/`info` in light mode (as low as 1.84:1).
|
|
57
|
+
|
|
58
|
+
The field that DOES clear ≥ 3:1 against both the canvas and the subtle fill, for every status role
|
|
59
|
+
× brand × mode, is `StatusColors.text` — so `resolveBadgeTone` reuses it as the border colour too.
|
|
60
|
+
This is a deliberate, measured substitution (see the comment in `Badge.variants.ts`), not a
|
|
61
|
+
shortcut — and it happens to read as the shadcn-style "coloured outline matching the label" look.
|
|
62
|
+
`accent`/`neutral` don't have this problem: `border.interactive` (the same outline Button's
|
|
63
|
+
`outline` variant uses) measures ≥ 3:1 against the canvas and against both subtle fills on every
|
|
64
|
+
brand × mode.
|
|
65
|
+
|
|
66
|
+
## Patterns copied from Button/Input
|
|
67
|
+
|
|
68
|
+
1. **Structure vs colour split.** Height/padding/radius/border WIDTH → `createThemedVariants`
|
|
69
|
+
(registered once per theme). Colour → resolved from role tokens per `tone`, applied inline.
|
|
70
|
+
2. **Pure, testable resolvers** in `Badge.variants.ts` (no React/lucide) so the WCAG contract is
|
|
71
|
+
unit-tested by measuring real palettes — never eyeballed.
|
|
72
|
+
3. **Closed unions only** (`tone`/`size`), `icon` as a NAME, `style: LayoutStyle` last and once, no
|
|
73
|
+
`{...rest}`.
|
|
74
|
+
|
|
75
|
+
## Known gaps
|
|
76
|
+
|
|
77
|
+
- None outside the `StatusColors.border` finding documented above (which this module works
|
|
78
|
+
around at the component layer rather than editing the frozen `theme/tokens/`).
|
|
79
|
+
|
|
80
|
+
## Performance
|
|
81
|
+
|
|
82
|
+
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). Its one child, `Icon`, only ever receives primitives — nothing to memoize.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Public surface of `pixelize-native-library/badge`. Value exports and type exports are split for
|
|
5
|
+
* `verbatimModuleSyntax`. The visual resolver (`resolveBadgeTone`, `BADGE_SIZES`, …) stays
|
|
6
|
+
* internal — a consumer configures a Badge through its props, never by importing its internals.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { Badge } from "./Badge.js";
|
|
10
|
+
|
|
11
|
+
// Re-exported so a caller can type an `icon` prop without a separate import from `core/icon`.
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Badge"],"sourceRoot":"../../../../src","sources":["modules/badge/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,QAAQ,YAAS;;AAK/B","ignoreList":[]}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* BottomNav — a fixed bottom tab bar (core tab slots + a trailing "More" slot) that presents its
|
|
5
|
+
* overflow destinations, search, and the opt-in "Edit tabs" flow inside the library's OWN `Drawer`
|
|
6
|
+
* (`../drawer`), consumed exactly as any app would — through its public `index.ts`, never Drawer's
|
|
7
|
+
* internal `Drawer.variants.ts`. This is what satisfies reusing the existing bottom-sheet primitive
|
|
8
|
+
* instead of rebuilding slide/backdrop/dismiss mechanics from scratch: every one of Drawer's WCAG
|
|
9
|
+
* escape hooks (backdrop press, Android hardware back, iOS VoiceOver escape, the web-portal opt-in)
|
|
10
|
+
* is inherited for free.
|
|
11
|
+
*
|
|
12
|
+
* `BottomNav.tsx` owns only the fixed bar: per-tab focus tracking, the active-indicator render
|
|
13
|
+
* (presence/absence + a label-weight switch, never colour alone — see the accessibility contract in
|
|
14
|
+
* MODULE.md), wiring press → `onDestinationPress`, and closing the sheet after a sheet-row selection.
|
|
15
|
+
* The sheet's actual content (search, Recent, grouped sections, edit mode, no-results) is
|
|
16
|
+
* `BottomNavOverflowSheet` — a private sub-component in its own file, the same "this warrants its own
|
|
17
|
+
* file" call this library already made for Reorder's private `ReorderRow`.
|
|
18
|
+
*
|
|
19
|
+
* Every piece of state here was classified against one question: does anything OUTSIDE this
|
|
20
|
+
* component plausibly need to read or set it? `active`, `moreVisible`, `recent`, `coreTabs`, and
|
|
21
|
+
* `edit.editing` all answer yes (the app's own router/persistence owns them) and are therefore
|
|
22
|
+
* controlled props, never internal state — see MODULE.md's "Controlled-state contract" for the full,
|
|
23
|
+
* item-by-item reasoning. Only per-tab keyboard/AT focus is internal here, the same idiom
|
|
24
|
+
* Button/Input/Select already use for their own focus rings.
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import { memo, useCallback, useMemo, useState } from "react";
|
|
28
|
+
import { Platform, Pressable, StyleSheet, Text, View } from "react-native";
|
|
29
|
+
import { Icon } from "../../core/icon/index.js";
|
|
30
|
+
import { useTheme } from "../../theme/index.js";
|
|
31
|
+
import { Button } from "../button/index.js";
|
|
32
|
+
import { Drawer } from "../drawer/index.js";
|
|
33
|
+
import { Menu } from "../menu/index.js";
|
|
34
|
+
import { BOTTOM_NAV_ICON_SIZE, bottomNavBarStructure, bottomNavTabStructure, resolveBottomNavAccessibility, resolveBottomNavBottomInset, resolveBottomNavTabColors } from "./BottomNav.variants.js";
|
|
35
|
+
import { BottomNavOverflowSheet } from "./BottomNavOverflowSheet.js";
|
|
36
|
+
|
|
37
|
+
/** Fully app-supplied. The library never hardcodes a destination's id, label, icon, or grouping. */
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Discriminated, closed, and exhaustive — the ONE state fact BottomNav needs to render the right
|
|
41
|
+
* selection UI. New variants may be ADDED later (e.g. a future `{ kind: "search" }`); existing
|
|
42
|
+
* variants are never renamed or reshaped — see MODULE.md's API stability contract.
|
|
43
|
+
*/
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* The whole "Edit tabs" feature is atomically opt-in — omit `edit` entirely and BottomNav renders NO
|
|
47
|
+
* edit affordance anywhere, byte-identical to a build of this module that never had the feature.
|
|
48
|
+
*/
|
|
49
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
50
|
+
const ICON_STROKE = 2;
|
|
51
|
+
const DEFAULT_SEARCH_PLACEHOLDER = "Search";
|
|
52
|
+
const DEFAULT_RECENT_LABEL = "Recent";
|
|
53
|
+
const DEFAULT_NO_RESULTS_LABEL = "No matches";
|
|
54
|
+
const DEFAULT_MORE_QUICK_ACTIONS_LABEL = "More options";
|
|
55
|
+
// Nudges the quick-actions badge toward the More tab's corner without clipping its own ≥44dp target
|
|
56
|
+
// (Button's `hitSlop` still expands outward from this offset position).
|
|
57
|
+
const QUICK_ACTIONS_BADGE_OFFSET = -4;
|
|
58
|
+
// The active-tab dot — presence/absence conveys selection (WCAG 1.4.1), never a colour swap alone.
|
|
59
|
+
const ACTIVE_DOT_SIZE = 6;
|
|
60
|
+
// Stable identity so an omitted `recent` hands `BottomNavOverflowSheet` the SAME empty array every
|
|
61
|
+
// render, rather than a fresh `[]` literal that would defeat its memo.
|
|
62
|
+
const EMPTY_RECENT = [];
|
|
63
|
+
|
|
64
|
+
/** Which tab currently holds keyboard/AT focus — a discriminated shape (not a bare id) so the More
|
|
65
|
+
* tab, whose "id" isn't one of `coreTabs`, can't collide with a core tab that happens to share it. */
|
|
66
|
+
|
|
67
|
+
function focusRing(theme, testID) {
|
|
68
|
+
return /*#__PURE__*/_jsx(View, {
|
|
69
|
+
pointerEvents: "none",
|
|
70
|
+
testID: testID,
|
|
71
|
+
style: {
|
|
72
|
+
position: "absolute",
|
|
73
|
+
top: 0,
|
|
74
|
+
left: 0,
|
|
75
|
+
right: 0,
|
|
76
|
+
bottom: 0,
|
|
77
|
+
borderWidth: 2,
|
|
78
|
+
borderColor: theme.colors.border.focus,
|
|
79
|
+
borderRadius: theme.radii.base
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
export const BottomNav = /*#__PURE__*/memo(function BottomNav(props) {
|
|
84
|
+
const {
|
|
85
|
+
coreTabs,
|
|
86
|
+
active,
|
|
87
|
+
onDestinationPress,
|
|
88
|
+
moreLabel,
|
|
89
|
+
moreIcon,
|
|
90
|
+
moreVisible,
|
|
91
|
+
onMoreVisibleChange,
|
|
92
|
+
overflowSections,
|
|
93
|
+
recent,
|
|
94
|
+
searchPlaceholder = DEFAULT_SEARCH_PLACEHOLDER,
|
|
95
|
+
searchAccessibilityLabel,
|
|
96
|
+
recentLabel = DEFAULT_RECENT_LABEL,
|
|
97
|
+
noResultsLabel = DEFAULT_NO_RESULTS_LABEL,
|
|
98
|
+
edit,
|
|
99
|
+
moreQuickActions,
|
|
100
|
+
moreQuickActionsLabel = DEFAULT_MORE_QUICK_ACTIONS_LABEL,
|
|
101
|
+
style,
|
|
102
|
+
testID
|
|
103
|
+
} = props;
|
|
104
|
+
const theme = useTheme();
|
|
105
|
+
const [focused, setFocused] = useState(null);
|
|
106
|
+
const bottomInset = resolveBottomNavBottomInset(theme.space[2], Platform.OS);
|
|
107
|
+
const moreSelected = active.kind === "more";
|
|
108
|
+
const moreColors = resolveBottomNavTabColors(theme.colors, moreSelected);
|
|
109
|
+
const moreA11y = resolveBottomNavAccessibility({
|
|
110
|
+
selected: moreSelected,
|
|
111
|
+
expanded: moreVisible
|
|
112
|
+
});
|
|
113
|
+
const closeSheet = useCallback(() => onMoreVisibleChange(false), [onMoreVisibleChange]);
|
|
114
|
+
// Every navigation intent inside the sheet reports through the same `onDestinationPress` the core
|
|
115
|
+
// tabs use, then closes the sheet — see the interaction model in MODULE.md. Stable via useCallback
|
|
116
|
+
// so `BottomNavOverflowSheet`'s memo isn't defeated by a fresh closure every render.
|
|
117
|
+
const handleSheetPress = useCallback(id => {
|
|
118
|
+
onDestinationPress(id);
|
|
119
|
+
closeSheet();
|
|
120
|
+
}, [onDestinationPress, closeSheet]);
|
|
121
|
+
|
|
122
|
+
// Memoized so `Menu`'s own memo isn't defeated by a fresh trigger element every render.
|
|
123
|
+
const quickActionsTrigger = useMemo(() => /*#__PURE__*/_jsx(Button, {
|
|
124
|
+
icon: "more-horizontal",
|
|
125
|
+
variant: "ghost",
|
|
126
|
+
tone: "neutral",
|
|
127
|
+
size: "sm",
|
|
128
|
+
accessibilityLabel: moreQuickActionsLabel,
|
|
129
|
+
testID: testID ? `${testID}-more-quick-actions` : undefined
|
|
130
|
+
}), [moreQuickActionsLabel, testID]);
|
|
131
|
+
const sheetTestID = testID ? `${testID}-sheet` : undefined;
|
|
132
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
133
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
134
|
+
testID: testID,
|
|
135
|
+
accessibilityRole: "tablist",
|
|
136
|
+
style: [bottomNavBarStructure(theme), {
|
|
137
|
+
backgroundColor: theme.colors.bg.surface,
|
|
138
|
+
borderTopColor: theme.colors.border.default,
|
|
139
|
+
paddingBottom: bottomInset
|
|
140
|
+
}, style],
|
|
141
|
+
children: [coreTabs.map(tab => {
|
|
142
|
+
const selected = active.kind === "core" && active.id === tab.id;
|
|
143
|
+
const colors = resolveBottomNavTabColors(theme.colors, selected);
|
|
144
|
+
const a11y = resolveBottomNavAccessibility({
|
|
145
|
+
selected
|
|
146
|
+
});
|
|
147
|
+
const isFocused = focused?.kind === "core" && focused.id === tab.id;
|
|
148
|
+
const tabTestID = testID ? `${testID}-tab-${tab.id}` : undefined;
|
|
149
|
+
return /*#__PURE__*/_jsxs(Pressable, {
|
|
150
|
+
testID: tabTestID,
|
|
151
|
+
accessibilityRole: a11y.accessibilityRole,
|
|
152
|
+
accessibilityLabel: tab.accessibilityLabel ?? tab.label,
|
|
153
|
+
accessibilityState: a11y.accessibilityState,
|
|
154
|
+
onPress: () => onDestinationPress(tab.id),
|
|
155
|
+
onFocus: () => setFocused({
|
|
156
|
+
kind: "core",
|
|
157
|
+
id: tab.id
|
|
158
|
+
}),
|
|
159
|
+
onBlur: () => setFocused(prev => prev?.kind === "core" && prev.id === tab.id ? null : prev),
|
|
160
|
+
style: bottomNavTabStructure(theme),
|
|
161
|
+
children: [isFocused && focusRing(theme, tabTestID ? `${tabTestID}-focus-ring` : undefined), /*#__PURE__*/_jsx(Icon, {
|
|
162
|
+
name: tab.icon,
|
|
163
|
+
size: BOTTOM_NAV_ICON_SIZE,
|
|
164
|
+
color: colors.icon,
|
|
165
|
+
strokeWidth: ICON_STROKE
|
|
166
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
167
|
+
numberOfLines: 1,
|
|
168
|
+
style: [theme.fontStyleForWeight(selected ? theme.fontWeights.semibold : theme.fontWeights.regular), {
|
|
169
|
+
fontSize: theme.fontSizes.xs,
|
|
170
|
+
color: colors.label
|
|
171
|
+
}],
|
|
172
|
+
children: tab.label
|
|
173
|
+
}), selected && /*#__PURE__*/_jsx(View, {
|
|
174
|
+
testID: tabTestID ? `${tabTestID}-indicator` : undefined,
|
|
175
|
+
style: {
|
|
176
|
+
width: ACTIVE_DOT_SIZE,
|
|
177
|
+
height: ACTIVE_DOT_SIZE,
|
|
178
|
+
borderRadius: ACTIVE_DOT_SIZE / 2,
|
|
179
|
+
backgroundColor: colors.indicator
|
|
180
|
+
}
|
|
181
|
+
})]
|
|
182
|
+
}, tab.id);
|
|
183
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
184
|
+
style: styles.moreSlot,
|
|
185
|
+
children: [/*#__PURE__*/_jsxs(Pressable, {
|
|
186
|
+
testID: testID ? `${testID}-more` : undefined,
|
|
187
|
+
accessibilityRole: moreA11y.accessibilityRole,
|
|
188
|
+
accessibilityLabel: moreLabel,
|
|
189
|
+
accessibilityState: moreA11y.accessibilityState,
|
|
190
|
+
onPress: () => onMoreVisibleChange(true),
|
|
191
|
+
onFocus: () => setFocused({
|
|
192
|
+
kind: "more"
|
|
193
|
+
}),
|
|
194
|
+
onBlur: () => setFocused(prev => prev?.kind === "more" ? null : prev),
|
|
195
|
+
style: bottomNavTabStructure(theme),
|
|
196
|
+
children: [focused?.kind === "more" && focusRing(theme, testID ? `${testID}-more-focus-ring` : undefined), /*#__PURE__*/_jsx(Icon, {
|
|
197
|
+
name: moreIcon,
|
|
198
|
+
size: BOTTOM_NAV_ICON_SIZE,
|
|
199
|
+
color: moreColors.icon,
|
|
200
|
+
strokeWidth: ICON_STROKE
|
|
201
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
202
|
+
numberOfLines: 1,
|
|
203
|
+
style: [theme.fontStyleForWeight(moreSelected ? theme.fontWeights.semibold : theme.fontWeights.regular), {
|
|
204
|
+
fontSize: theme.fontSizes.xs,
|
|
205
|
+
color: moreColors.label
|
|
206
|
+
}],
|
|
207
|
+
children: moreLabel
|
|
208
|
+
}), moreSelected && /*#__PURE__*/_jsx(View, {
|
|
209
|
+
testID: testID ? `${testID}-more-indicator` : undefined,
|
|
210
|
+
style: {
|
|
211
|
+
width: ACTIVE_DOT_SIZE,
|
|
212
|
+
height: ACTIVE_DOT_SIZE,
|
|
213
|
+
borderRadius: ACTIVE_DOT_SIZE / 2,
|
|
214
|
+
backgroundColor: moreColors.indicator
|
|
215
|
+
}
|
|
216
|
+
})]
|
|
217
|
+
}), moreQuickActions !== undefined && /*#__PURE__*/_jsx(View, {
|
|
218
|
+
style: styles.quickActionsBadge,
|
|
219
|
+
children: /*#__PURE__*/_jsx(Menu, {
|
|
220
|
+
trigger: quickActionsTrigger,
|
|
221
|
+
items: moreQuickActions,
|
|
222
|
+
testID: testID ? `${testID}-more-quick-actions-menu` : undefined
|
|
223
|
+
})
|
|
224
|
+
})]
|
|
225
|
+
})]
|
|
226
|
+
}), /*#__PURE__*/_jsx(Drawer, {
|
|
227
|
+
visible: moreVisible,
|
|
228
|
+
onRequestClose: closeSheet,
|
|
229
|
+
testID: sheetTestID,
|
|
230
|
+
children: /*#__PURE__*/_jsx(BottomNavOverflowSheet, {
|
|
231
|
+
overflowSections: overflowSections,
|
|
232
|
+
recent: recent ?? EMPTY_RECENT,
|
|
233
|
+
coreTabs: coreTabs,
|
|
234
|
+
active: active,
|
|
235
|
+
onDestinationPress: handleSheetPress,
|
|
236
|
+
edit: edit,
|
|
237
|
+
searchPlaceholder: searchPlaceholder,
|
|
238
|
+
searchAccessibilityLabel: searchAccessibilityLabel ?? searchPlaceholder,
|
|
239
|
+
recentLabel: recentLabel,
|
|
240
|
+
noResultsLabel: noResultsLabel,
|
|
241
|
+
testID: sheetTestID
|
|
242
|
+
})
|
|
243
|
+
})]
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
const styles = StyleSheet.create({
|
|
247
|
+
moreSlot: {
|
|
248
|
+
flex: 1,
|
|
249
|
+
position: "relative"
|
|
250
|
+
},
|
|
251
|
+
quickActionsBadge: {
|
|
252
|
+
position: "absolute",
|
|
253
|
+
top: QUICK_ACTIONS_BADGE_OFFSET,
|
|
254
|
+
right: QUICK_ACTIONS_BADGE_OFFSET
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
//# sourceMappingURL=BottomNav.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","useCallback","useMemo","useState","Platform","Pressable","StyleSheet","Text","View","Icon","useTheme","Button","Drawer","Menu","BOTTOM_NAV_ICON_SIZE","bottomNavBarStructure","bottomNavTabStructure","resolveBottomNavAccessibility","resolveBottomNavBottomInset","resolveBottomNavTabColors","BottomNavOverflowSheet","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ICON_STROKE","DEFAULT_SEARCH_PLACEHOLDER","DEFAULT_RECENT_LABEL","DEFAULT_NO_RESULTS_LABEL","DEFAULT_MORE_QUICK_ACTIONS_LABEL","QUICK_ACTIONS_BADGE_OFFSET","ACTIVE_DOT_SIZE","EMPTY_RECENT","focusRing","theme","testID","pointerEvents","style","position","top","left","right","bottom","borderWidth","borderColor","colors","border","focus","borderRadius","radii","base","BottomNav","props","coreTabs","active","onDestinationPress","moreLabel","moreIcon","moreVisible","onMoreVisibleChange","overflowSections","recent","searchPlaceholder","searchAccessibilityLabel","recentLabel","noResultsLabel","edit","moreQuickActions","moreQuickActionsLabel","focused","setFocused","bottomInset","space","OS","moreSelected","kind","moreColors","moreA11y","selected","expanded","closeSheet","handleSheetPress","id","quickActionsTrigger","icon","variant","tone","size","accessibilityLabel","undefined","sheetTestID","children","accessibilityRole","backgroundColor","bg","surface","borderTopColor","default","paddingBottom","map","tab","a11y","isFocused","tabTestID","label","accessibilityState","onPress","onFocus","onBlur","prev","name","color","strokeWidth","numberOfLines","fontStyleForWeight","fontWeights","semibold","regular","fontSize","fontSizes","xs","width","height","indicator","styles","moreSlot","quickActionsBadge","trigger","items","visible","onRequestClose","create","flex"],"sourceRoot":"../../../../src","sources":["modules/bottom-nav/BottomNav.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* BottomNav's fuzzy destination search — pure, framework-free (no React, no `react-native` import at
|
|
5
|
+
* all). Kept out of `BottomNav.variants.ts` deliberately: this is an orthogonal concern (ranking
|
|
6
|
+
* CORRECTNESS, not colour/structure) with its own large, focused test surface, the same "give it its
|
|
7
|
+
* own file" call the design brief makes for `BottomNavOverflowSheet.tsx`.
|
|
8
|
+
*
|
|
9
|
+
* A from-scratch scorer, not a new dependency — same "no new dependency" bar `Reorder`'s hand-built
|
|
10
|
+
* `PanResponder` drag math already set for this library. See MODULE.md's "Open Risks" for why this
|
|
11
|
+
* algorithm is a build-time judgment call (swappable behind the same `matchDestinations` signature),
|
|
12
|
+
* not a locked-in guarantee.
|
|
13
|
+
*
|
|
14
|
+
* Deliberately searches `overflowSections` only — never `coreTabs` (already visible in the bar) and
|
|
15
|
+
* never `recent` (a separate, always-available pre-search fast path). See MODULE.md.
|
|
16
|
+
*
|
|
17
|
+
* Types are imported `import type` only (erased by `verbatimModuleSyntax`), so this file pulls in no
|
|
18
|
+
* runtime dependency on `BottomNav.tsx`, React, or React Native — it stays testable under plain jest
|
|
19
|
+
* with zero mocking.
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/** Lowercases and collapses internal whitespace runs to a single space, trimmed at both ends — the
|
|
23
|
+
* shared normalisation every tier below measures against. */
|
|
24
|
+
export function normalizeQuery(text) {
|
|
25
|
+
return text.trim().toLowerCase().replace(/\s+/g, " ");
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Classic Levenshtein edit distance (insert/delete/substitute, each cost 1), the iterative two-row
|
|
30
|
+
* form — O(min memory), never the full O(a·b) matrix a naive implementation would allocate.
|
|
31
|
+
*/
|
|
32
|
+
export function levenshteinDistance(a, b) {
|
|
33
|
+
if (a === b) return 0;
|
|
34
|
+
if (a.length === 0) return b.length;
|
|
35
|
+
if (b.length === 0) return a.length;
|
|
36
|
+
let previousRow = Array.from({
|
|
37
|
+
length: b.length + 1
|
|
38
|
+
}, (_, index) => index);
|
|
39
|
+
for (let i = 1; i <= a.length; i += 1) {
|
|
40
|
+
const currentRow = [i];
|
|
41
|
+
for (let j = 1; j <= b.length; j += 1) {
|
|
42
|
+
const substitutionCost = a[i - 1] === b[j - 1] ? 0 : 1;
|
|
43
|
+
const deletion = (previousRow[j] ?? 0) + 1;
|
|
44
|
+
const insertion = (currentRow[j - 1] ?? 0) + 1;
|
|
45
|
+
const substitution = (previousRow[j - 1] ?? 0) + substitutionCost;
|
|
46
|
+
currentRow.push(Math.min(deletion, insertion, substitution));
|
|
47
|
+
}
|
|
48
|
+
previousRow = currentRow;
|
|
49
|
+
}
|
|
50
|
+
return previousRow[b.length] ?? 0;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/** How many single-character edits a word of this length may be off by and still count as a typo of
|
|
54
|
+
* the query rather than a different word: 1 for short words (≤ 6 chars), 2 for longer ones — a
|
|
55
|
+
* longer word has more room for one stray transposition/typo before it stops resembling the query. */
|
|
56
|
+
export function typoBudget(wordLength) {
|
|
57
|
+
return wordLength <= 6 ? 1 : 2;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Tiered scoring constants — highest signal wins, same "best signal wins" idea Button's
|
|
61
|
+
// `resolveButtonTone` reuses (a single, ordered lookup rather than accumulating point systems).
|
|
62
|
+
const SCORE_EXACT = 100;
|
|
63
|
+
const SCORE_PREFIX = 90;
|
|
64
|
+
const SCORE_SUBSTRING = 70;
|
|
65
|
+
const SCORE_SUBSEQUENCE_BASE = 50;
|
|
66
|
+
// Added on top of the base, scaled by how much of the label the query's characters actually span —
|
|
67
|
+
// a cheap proxy for "contiguity" (a query packed tightly into a short label scores higher than the
|
|
68
|
+
// same characters scattered across a long one), without the cost/risk of computing a true longest
|
|
69
|
+
// contiguous run.
|
|
70
|
+
const SCORE_SUBSEQUENCE_DENSITY_BONUS = 10;
|
|
71
|
+
const SCORE_TYPO_BASE = 20;
|
|
72
|
+
const SCORE_TYPO_PER_DISTANCE = 5;
|
|
73
|
+
|
|
74
|
+
/** True if every character of `query` appears in `label`, in order — not necessarily contiguous. */
|
|
75
|
+
function isSubsequence(query, label) {
|
|
76
|
+
let position = 0;
|
|
77
|
+
for (const char of label) {
|
|
78
|
+
if (position < query.length && char === query[position]) position += 1;
|
|
79
|
+
}
|
|
80
|
+
return position === query.length;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Tier 4 — 0 when `query` isn't a subsequence of `label` at all. */
|
|
84
|
+
function subsequenceScore(query, label) {
|
|
85
|
+
if (query.length === 0 || label.length === 0 || !isSubsequence(query, label)) return 0;
|
|
86
|
+
const density = query.length / label.length;
|
|
87
|
+
return SCORE_SUBSEQUENCE_BASE + density * SCORE_SUBSEQUENCE_DENSITY_BONUS;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/** Tier 5 — the best (lowest-distance) per-word typo match, 0 if no word clears its own budget. */
|
|
91
|
+
function typoScore(query, label) {
|
|
92
|
+
let best = 0;
|
|
93
|
+
for (const word of label.split(" ")) {
|
|
94
|
+
if (word.length === 0) continue;
|
|
95
|
+
const distance = levenshteinDistance(query, word);
|
|
96
|
+
if (distance > typoBudget(word.length)) continue;
|
|
97
|
+
const score = SCORE_TYPO_BASE - distance * SCORE_TYPO_PER_DISTANCE;
|
|
98
|
+
if (score > best) best = score;
|
|
99
|
+
}
|
|
100
|
+
return best;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Tiered scoring, highest signal wins:
|
|
105
|
+
* 1. exact match (case-insensitive, whitespace-collapsed) → {@link SCORE_EXACT}
|
|
106
|
+
* 2. prefix match ("acc" → "Accounts") → {@link SCORE_PREFIX}
|
|
107
|
+
* 3. substring anywhere in the label → {@link SCORE_SUBSTRING}
|
|
108
|
+
* 4. subsequence match ("acnt" → "Accounts"), density-scaled → {@link SCORE_SUBSEQUENCE_BASE}+
|
|
109
|
+
* 5. typo-tolerant: per-word Levenshtein ≤ `typoBudget` → {@link SCORE_TYPO_BASE}-
|
|
110
|
+
* Returns 0 (no match) below tier 5's own threshold. An empty/whitespace `query` always returns 0 —
|
|
111
|
+
* callers (`matchDestinations`) short-circuit on that case before ever reaching here.
|
|
112
|
+
*/
|
|
113
|
+
export function fuzzyScore(query, label) {
|
|
114
|
+
const normalizedQuery = normalizeQuery(query);
|
|
115
|
+
const normalizedLabel = normalizeQuery(label);
|
|
116
|
+
if (normalizedQuery.length === 0) return 0;
|
|
117
|
+
if (normalizedLabel === normalizedQuery) return SCORE_EXACT;
|
|
118
|
+
if (normalizedLabel.startsWith(normalizedQuery)) return SCORE_PREFIX;
|
|
119
|
+
if (normalizedLabel.includes(normalizedQuery)) return SCORE_SUBSTRING;
|
|
120
|
+
const subsequence = subsequenceScore(normalizedQuery, normalizedLabel);
|
|
121
|
+
if (subsequence > 0) return subsequence;
|
|
122
|
+
return typoScore(normalizedQuery, normalizedLabel);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Ranks every destination across every section for one query; empty/whitespace query → `[]` (the
|
|
127
|
+
* pre-search state is Recent + grouped sections, not an empty search result — `BottomNavOverflowSheet`
|
|
128
|
+
* itself decides which view to render, this function only ever answers "what matches").
|
|
129
|
+
*
|
|
130
|
+
* `Array.prototype.sort` has been a STABLE sort since ES2019 — ties keep their original
|
|
131
|
+
* section/destination order for free, so this never needs a second manual tiebreaker (same "let the
|
|
132
|
+
* platform guarantee do the work" reasoning `moveItem`'s splice-based approach relies on).
|
|
133
|
+
*/
|
|
134
|
+
export function matchDestinations(query, sections) {
|
|
135
|
+
const normalizedQuery = normalizeQuery(query);
|
|
136
|
+
if (normalizedQuery.length === 0) return [];
|
|
137
|
+
const matches = [];
|
|
138
|
+
for (const section of sections) {
|
|
139
|
+
for (const destination of section.destinations) {
|
|
140
|
+
const score = fuzzyScore(normalizedQuery, destination.label);
|
|
141
|
+
if (score > 0) {
|
|
142
|
+
matches.push({
|
|
143
|
+
destination,
|
|
144
|
+
sectionId: section.id,
|
|
145
|
+
sectionLabel: section.label,
|
|
146
|
+
score
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return matches.sort((a, b) => b.score - a.score);
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=BottomNav.search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["normalizeQuery","text","trim","toLowerCase","replace","levenshteinDistance","a","b","length","previousRow","Array","from","_","index","i","currentRow","j","substitutionCost","deletion","insertion","substitution","push","Math","min","typoBudget","wordLength","SCORE_EXACT","SCORE_PREFIX","SCORE_SUBSTRING","SCORE_SUBSEQUENCE_BASE","SCORE_SUBSEQUENCE_DENSITY_BONUS","SCORE_TYPO_BASE","SCORE_TYPO_PER_DISTANCE","isSubsequence","query","label","position","char","subsequenceScore","density","typoScore","best","word","split","distance","score","fuzzyScore","normalizedQuery","normalizedLabel","startsWith","includes","subsequence","matchDestinations","sections","matches","section","destination","destinations","sectionId","id","sectionLabel","sort"],"sourceRoot":"../../../../src","sources":["modules/bottom-nav/BottomNav.search.ts"],"mappings":"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","ignoreList":[]}
|