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,113 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Textarea's style + behaviour resolution — pure functions the component (and its tests) depend on,
|
|
5
|
+
* plus the themed structural variant resolvers. Same split as `Button.variants.ts`:
|
|
6
|
+
* - STRUCTURE (padding, radius, border WIDTH, minHeight) lives in `createThemedVariants` below,
|
|
7
|
+
* registered once per theme identity.
|
|
8
|
+
* - COLOUR is `status`-driven and resolved by `resolveTextareaStatus` from the theme's ROLE colours
|
|
9
|
+
* — never a raw ramp, never a hardcoded hex — so `status` stays a closed union, not a `color`.
|
|
10
|
+
* - ACCESSIBILITY prop derivation is `resolveTextareaAccessibility`, kept pure so the
|
|
11
|
+
* label/hint/disabled contract is unit-testable without rendering React Native.
|
|
12
|
+
*
|
|
13
|
+
* Free of React and of any lucide import, so the WCAG + behaviour tests import it directly (mocking
|
|
14
|
+
* only `react-native`'s `StyleSheet`, as `core/style` does).
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { createThemedVariants } from "../../core/style/index.js";
|
|
18
|
+
/**
|
|
19
|
+
* A multiline field is already well past the 44dp floor at every size (unlike a compact control such
|
|
20
|
+
* as Button), so the touch target is met structurally — no `hitSlop` needed here. Kept local (not
|
|
21
|
+
* imported from a sibling module) per the library's module-isolation rule.
|
|
22
|
+
*/
|
|
23
|
+
export const MIN_TOUCH_TARGET = 44;
|
|
24
|
+
export const TEXTAREA_SIZES = {
|
|
25
|
+
sm: {
|
|
26
|
+
minHeight: 72,
|
|
27
|
+
fontSize: 14
|
|
28
|
+
},
|
|
29
|
+
md: {
|
|
30
|
+
minHeight: 96,
|
|
31
|
+
fontSize: 16
|
|
32
|
+
},
|
|
33
|
+
lg: {
|
|
34
|
+
minHeight: 128,
|
|
35
|
+
fontSize: 18
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Maps `status` onto the theme's role colours — the reason the prop is a closed union and not a
|
|
40
|
+
* `color?: string`. `error`'s border is `status.danger.solid`: measured ≥ 3:1 against the canvas on
|
|
41
|
+
* every brand (unlike `status.danger.border`, the pale ramp[200] chip outline, which does not clear
|
|
42
|
+
* 3:1 — see the WCAG test). `default`'s border is the same neutral `border.interactive` Button uses
|
|
43
|
+
* for its outline boundary, guaranteed ≥ 3:1 on every brand.
|
|
44
|
+
*/
|
|
45
|
+
export function resolveTextareaStatus(colors, status) {
|
|
46
|
+
switch (status) {
|
|
47
|
+
case "error":
|
|
48
|
+
return {
|
|
49
|
+
border: colors.status.danger.solid,
|
|
50
|
+
message: colors.status.danger.text
|
|
51
|
+
};
|
|
52
|
+
case "default":
|
|
53
|
+
return {
|
|
54
|
+
border: colors.border.interactive,
|
|
55
|
+
message: colors.fg.muted
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Derives the accessibility surface once, purely, so the label/hint/disabled contract is testable
|
|
61
|
+
* without a renderer. React Native has no `aria-describedby`; `accessibilityHint` is the platform
|
|
62
|
+
* equivalent, so the SAME string this returns is also what the component renders as the visible
|
|
63
|
+
* helper/error `Text` — one source of truth, never two strings that could drift apart.
|
|
64
|
+
*/
|
|
65
|
+
export function resolveTextareaAccessibility(input) {
|
|
66
|
+
const isError = (input.status ?? "default") === "error";
|
|
67
|
+
const hint = isError && input.errorText ? input.errorText : input.helperText;
|
|
68
|
+
return {
|
|
69
|
+
accessibilityLabel: input.label,
|
|
70
|
+
accessibilityHint: hint,
|
|
71
|
+
accessibilityState: {
|
|
72
|
+
disabled: input.disabled === true
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Structural styles only — layout, padding, radius, border WIDTH, per-size `minHeight`. No colours
|
|
79
|
+
* (those are status-driven and applied inline over this), so this compiles once per theme identity
|
|
80
|
+
* via the `WeakMap`-cached themed resolver and never rebuilds per render.
|
|
81
|
+
*/
|
|
82
|
+
export const textareaFieldStructure = createThemedVariants(theme => ({
|
|
83
|
+
base: {
|
|
84
|
+
borderRadius: theme.radii.base,
|
|
85
|
+
borderWidth: theme.borderWidths.thin,
|
|
86
|
+
paddingHorizontal: theme.space[3],
|
|
87
|
+
paddingVertical: theme.space[2]
|
|
88
|
+
},
|
|
89
|
+
variants: {
|
|
90
|
+
size: {
|
|
91
|
+
sm: {
|
|
92
|
+
minHeight: TEXTAREA_SIZES.sm.minHeight
|
|
93
|
+
},
|
|
94
|
+
md: {
|
|
95
|
+
minHeight: TEXTAREA_SIZES.md.minHeight
|
|
96
|
+
},
|
|
97
|
+
lg: {
|
|
98
|
+
minHeight: TEXTAREA_SIZES.lg.minHeight
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
defaultVariants: {
|
|
103
|
+
size: "md"
|
|
104
|
+
}
|
|
105
|
+
}));
|
|
106
|
+
|
|
107
|
+
/** The gap between label / field / helper text. Themed (uses `space`), so it goes through the same resolver. */
|
|
108
|
+
export const textareaLayout = createThemedVariants(theme => ({
|
|
109
|
+
base: {
|
|
110
|
+
rowGap: theme.space[1]
|
|
111
|
+
}
|
|
112
|
+
}));
|
|
113
|
+
//# sourceMappingURL=Textarea.variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createThemedVariants","MIN_TOUCH_TARGET","TEXTAREA_SIZES","sm","minHeight","fontSize","md","lg","resolveTextareaStatus","colors","status","border","danger","solid","message","text","interactive","fg","muted","resolveTextareaAccessibility","input","isError","hint","errorText","helperText","accessibilityLabel","label","accessibilityHint","accessibilityState","disabled","textareaFieldStructure","theme","base","borderRadius","radii","borderWidth","borderWidths","thin","paddingHorizontal","space","paddingVertical","variants","size","defaultVariants","textareaLayout","rowGap"],"sourceRoot":"../../../../src","sources":["modules/textarea/Textarea.variants.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,oBAAoB,QAAQ,2BAAkB;AAKvD;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,gBAAgB,GAAG,EAAE;AASlC,OAAO,MAAMC,cAAc,GAAG;EAC5BC,EAAE,EAAE;IAAEC,SAAS,EAAE,EAAE;IAAEC,QAAQ,EAAE;EAAG,CAAC;EACnCC,EAAE,EAAE;IAAEF,SAAS,EAAE,EAAE;IAAEC,QAAQ,EAAE;EAAG,CAAC;EACnCE,EAAE,EAAE;IAAEH,SAAS,EAAE,GAAG;IAAEC,QAAQ,EAAE;EAAG;AACrC,CAA2D;AAS3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASG,qBAAqBA,CAACC,MAAkB,EAAEC,MAAsB,EAAwB;EACtG,QAAQA,MAAM;IACZ,KAAK,OAAO;MACV,OAAO;QAAEC,MAAM,EAAEF,MAAM,CAACC,MAAM,CAACE,MAAM,CAACC,KAAK;QAAEC,OAAO,EAAEL,MAAM,CAACC,MAAM,CAACE,MAAM,CAACG;MAAK,CAAC;IACnF,KAAK,SAAS;MACZ,OAAO;QAAEJ,MAAM,EAAEF,MAAM,CAACE,MAAM,CAACK,WAAW;QAAEF,OAAO,EAAEL,MAAM,CAACQ,EAAE,CAACC;MAAM,CAAC;EAC1E;AACF;AAiBA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,4BAA4BA,CAC1CC,KAAiC,EACL;EAC5B,MAAMC,OAAO,GAAG,CAACD,KAAK,CAACV,MAAM,IAAI,SAAS,MAAM,OAAO;EACvD,MAAMY,IAAI,GAAGD,OAAO,IAAID,KAAK,CAACG,SAAS,GAAGH,KAAK,CAACG,SAAS,GAAGH,KAAK,CAACI,UAAU;EAC5E,OAAO;IACLC,kBAAkB,EAAEL,KAAK,CAACM,KAAK;IAC/BC,iBAAiB,EAAEL,IAAI;IACvBM,kBAAkB,EAAE;MAAEC,QAAQ,EAAET,KAAK,CAACS,QAAQ,KAAK;IAAK;EAC1D,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,GAAG9B,oBAAoB,CAAE+B,KAAY,KAAM;EAC5EC,IAAI,EAAE;IACJC,YAAY,EAAEF,KAAK,CAACG,KAAK,CAACF,IAAI;IAC9BG,WAAW,EAAEJ,KAAK,CAACK,YAAY,CAACC,IAAI;IACpCC,iBAAiB,EAAEP,KAAK,CAACQ,KAAK,CAAC,CAAC,CAAC;IACjCC,eAAe,EAAET,KAAK,CAACQ,KAAK,CAAC,CAAC;EAChC,CAAC;EACDE,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJvC,EAAE,EAAE;QAAEC,SAAS,EAAEF,cAAc,CAACC,EAAE,CAACC;MAAU,CAAC;MAC9CE,EAAE,EAAE;QAAEF,SAAS,EAAEF,cAAc,CAACI,EAAE,CAACF;MAAU,CAAC;MAC9CG,EAAE,EAAE;QAAEH,SAAS,EAAEF,cAAc,CAACK,EAAE,CAACH;MAAU;IAC/C;EACF,CAAC;EACDuC,eAAe,EAAE;IAAED,IAAI,EAAE;EAAK;AAChC,CAAC,CAAC,CAAC;;AAEH;AACA,OAAO,MAAME,cAAc,GAAG5C,oBAAoB,CAAE+B,KAAY,KAAM;EACpEC,IAAI,EAAE;IAAEa,MAAM,EAAEd,KAAK,CAACQ,KAAK,CAAC,CAAC;EAAE;AACjC,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Public surface of `pixelize-native-library/textarea`. Value exports and type exports are split for
|
|
5
|
+
* `verbatimModuleSyntax`. The resolvers (`resolveTextareaStatus`, `TEXTAREA_SIZES`, …) stay internal
|
|
6
|
+
* — a consumer configures a Textarea through its props, never by importing its internals.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { Textarea } from "./Textarea.js";
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Textarea"],"sourceRoot":"../../../../src","sources":["modules/textarea/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,eAAY","ignoreList":[]}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# timeline/ — a vertical list of dated/ordered events
|
|
2
|
+
|
|
3
|
+
`Timeline` renders a vertical stack of events, each a marker (a plain dot, or an icon in a filled
|
|
4
|
+
circle) connected to the next row's marker by a line. Purely informational — no press handling, no
|
|
5
|
+
per-item emphasis, no animation.
|
|
6
|
+
|
|
7
|
+
## Files
|
|
8
|
+
|
|
9
|
+
| File | Role |
|
|
10
|
+
|------|------|
|
|
11
|
+
| `Timeline.tsx` | The component. Maps `items` to rows; wires the decorative connector's hidden-from-AT props. |
|
|
12
|
+
| `Timeline.variants.ts` | Pure resolver (`resolveTimelineColors`) + the structural variant resolvers (`timelineRowStructure`, `timelineConnectorStructure`, `timelineMarkerStructure`, `timelineConnectorLineStructure`, `timelineContentStructure`) and the `TIMELINE_MARKER` size constants. No React, no lucide. |
|
|
13
|
+
| `index.ts` | Public surface: `Timeline`, `TimelineProps`, `TimelineItem`, `IconName` (re-exported from `core/icon`). |
|
|
14
|
+
| `__tests__/Timeline.test.ts` | Pure: WCAG contrast (all brands × modes) for title/description/timestamp and the icon-on-marker pairing, plus the decorative-connector colour-mapping regression guard (mirrors `Divider.test.ts`). |
|
|
15
|
+
| `__tests__/Timeline.render.test.tsx` | Render: item order, description/timestamp omission, marker sizing per kind, connector line present on every row but the last, decorative hide vs exposed text, consumer `style` applies last. |
|
|
16
|
+
|
|
17
|
+
## Props
|
|
18
|
+
|
|
19
|
+
| Prop | Type | Default | Notes |
|
|
20
|
+
|------|------|---------|-------|
|
|
21
|
+
| `items` | `{ title: string; description?: string; timestamp?: string; icon?: IconName }[]` | — | Rendered top to bottom, in array order. |
|
|
22
|
+
| `style` | `LayoutStyle` | — | Layout-only, outermost, applied exactly once, last. |
|
|
23
|
+
| `testID` | `string` | — | Forwarded to the outermost `View`; per-row/marker/connector/line nodes get `${testID}-item-<i>[-marker\|-connector\|-line]` when set. |
|
|
24
|
+
|
|
25
|
+
There is no `variant`/`size`/`tone` — every event reads identically (accent marker, decorative
|
|
26
|
+
connector, fixed `fg` text roles), so there is no appearance choice to close into a union (same
|
|
27
|
+
reasoning `Divider`'s minimal prop set follows when a component has nothing to vary).
|
|
28
|
+
|
|
29
|
+
## Accessibility contract (WCAG)
|
|
30
|
+
|
|
31
|
+
- **4.1.2 / structure** — the marker + connecting line are purely decorative (removing them changes
|
|
32
|
+
spacing, not meaning): the connector `View` wrapping both carries `accessibilityElementsHidden` +
|
|
33
|
+
`importantForAccessibility="no-hide-descendants"` (the same pairing `Avatar` uses for its
|
|
34
|
+
decorative state), so neither the circle nor the line is announced. The title/description/
|
|
35
|
+
timestamp `Text` nodes are ordinary children of a plain, role-less `View` (the same "container has
|
|
36
|
+
nothing to announce; children carry their own semantics" reasoning `Card.tsx` documents), so they
|
|
37
|
+
stay in the accessibility tree, read in the order they appear.
|
|
38
|
+
- **1.4.3** — `title` (`fg.default`) and `description`/`timestamp` (`fg.muted`) are each measured
|
|
39
|
+
≥ 4.5:1 against `bg.canvas` for all 8 brands × both modes (`Timeline.test.ts`), the same reference
|
|
40
|
+
surface `Input`/`Badge`/`Button` use for their own resting-state text. `timestamp` deliberately
|
|
41
|
+
does **not** use `fg.subtle` — that role is a flat, unmeasured `gray[500]` rung with no
|
|
42
|
+
`readableOn()` derivation and falls as low as 3.19:1 (emerald light) against `bg.canvas`, the same
|
|
43
|
+
RadioGroup/Tabs class of bug the build brief calls out; `fg.muted` is the derived role that clears
|
|
44
|
+
AA everywhere, and the timestamp's smaller `fontSizes.xs` still carries the de-emphasis. The icon
|
|
45
|
+
glyph (`accent.onSolid`) is measured ≥ 4.5:1 against its own circle fill (`accent.solid`) — never
|
|
46
|
+
assumed from Button's identical pairing, per the RadioGroup/Tabs lesson in the build brief.
|
|
47
|
+
- **1.4.11** — the connector line reads `border.default`, the same decorative rung `Divider`
|
|
48
|
+
documents: it draws no interactive boundary and is hidden from AT, so the 3:1 non-text floor does
|
|
49
|
+
not apply (an explicit regression guard asserts it is never the guaranteed-≥3:1
|
|
50
|
+
`border.interactive`/`border.focus` tokens instead).
|
|
51
|
+
- **Touch target (2.5.x)** — N/A. Timeline has no `onPress`; same reasoning `AVATAR_SIZES` documents
|
|
52
|
+
for its own non-interactive diameters.
|
|
53
|
+
- **2.3.3 (reduced motion)** — N/A. No animation.
|
|
54
|
+
|
|
55
|
+
## Patterns copied from `button/` (the reference module), `avatar/`, and `divider/`
|
|
56
|
+
|
|
57
|
+
1. **Structure vs colour split.** Theme-numeric structure (marker diameter via `radii.full`,
|
|
58
|
+
connector line width via `borderWidths.thick`, content spacing via `space[…]`) → themed
|
|
59
|
+
`createThemedVariants` resolvers, registered once per theme. The row/connector-column layout has
|
|
60
|
+
no theme dependency, so those two use the lighter `createVariants` instead (same choice
|
|
61
|
+
`Spinner`/`RadioGroup` make for their own theme-independent structure). Colour → resolved from
|
|
62
|
+
role tokens (`resolveTimelineColors`), applied inline.
|
|
63
|
+
2. **Pure, testable resolver** (no React/lucide) so the WCAG + colour-mapping contract is
|
|
64
|
+
unit-tested against real palettes — never eyeballed.
|
|
65
|
+
3. **`icon?: IconName`** — a NAME, never a `ReactNode`; always paired with the visible `title`, so
|
|
66
|
+
it carries no `accessibilityLabel` requirement of its own (unlike Button's icon-only shape).
|
|
67
|
+
4. **`style: LayoutStyle`** last and once, no `{...rest}`.
|
|
68
|
+
|
|
69
|
+
## Why the connector's bottom padding lives on `content`, not the shared row
|
|
70
|
+
|
|
71
|
+
A row's height is undetermined (it hugs its tallest child); the connector column has no explicit
|
|
72
|
+
height, so it stretches (cross-axis `align-items: stretch`, the default) to match whichever sibling
|
|
73
|
+
sets that height. Padding placed on the row wrapper itself sits *outside* what determined the row's
|
|
74
|
+
own auto height in the first place, so the connector's stretched height would stop at the content's
|
|
75
|
+
un-padded text height — leaving a visible gap in the line before the next row's marker. Padding
|
|
76
|
+
placed on the **content** column instead becomes part of the height that determines the stretch, so
|
|
77
|
+
the connector column (and the line's `flex: 1` inside it) stretches through the gap too, and the
|
|
78
|
+
line reaches the next marker with no visible break.
|
|
79
|
+
|
|
80
|
+
## Known gaps
|
|
81
|
+
|
|
82
|
+
None — no icon, no new theme token, and no new core helper needed for this component. All markers
|
|
83
|
+
use the closed 22-name `IconName` set already in `core/icon`.
|
|
84
|
+
|
|
85
|
+
## Resolved (were WCAG bugs caught by the measured test suite, now fixed)
|
|
86
|
+
|
|
87
|
+
- `timestamp` originally mapped to `fg.subtle`, which measured below 4.5:1 against `bg.canvas` on
|
|
88
|
+
5 of 8 brands in light mode (lavender/meadow/radiant/emerald/rosewood; as low as 3.19:1 on
|
|
89
|
+
emerald) — caught by `Timeline.test.ts`'s real `it.each` measurement, never eyeballed. Remapped to
|
|
90
|
+
`fg.muted` (the `readableOn()`-derived role every other module already trusts on `bg.canvas`),
|
|
91
|
+
which clears AA on all 8 brands × both modes.
|
|
92
|
+
|
|
93
|
+
## Performance
|
|
94
|
+
|
|
95
|
+
Wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`). The `items.map()` renders host `View`/`Text` plus this library's `Icon` with only primitive props — nothing to memoize.
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Timeline — a vertical list of dated/ordered events. Each row is a marker (a plain dot, or an
|
|
5
|
+
* icon in a filled circle) connected to the next row's marker by a line. Purely informational: no
|
|
6
|
+
* press handling, no per-item emphasis, no animation. The marker + connecting line are decorative
|
|
7
|
+
* (removing them changes spacing, not meaning — same reasoning `Divider` documents for its own
|
|
8
|
+
* hairline), so they are hidden from assistive tech; the title/description/timestamp stay in the
|
|
9
|
+
* normal accessibility tree, read in order, exactly like the plain `View` container `Card.tsx`
|
|
10
|
+
* documents ("nothing here for `accessibilityRole` to announce — children carry their own
|
|
11
|
+
* semantics").
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
import { memo } from "react";
|
|
15
|
+
import { Text, View } from "react-native";
|
|
16
|
+
import { Icon } from "../../core/icon/index.js";
|
|
17
|
+
import { useTheme } from "../../theme/index.js";
|
|
18
|
+
import { resolveTimelineColors, timelineConnectorLineStructure, timelineConnectorStructure, timelineContentStructure, timelineMarkerStructure, timelineRowStructure, TIMELINE_MARKER } from "./Timeline.variants.js";
|
|
19
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
20
|
+
const ICON_STROKE = 2;
|
|
21
|
+
export const Timeline = /*#__PURE__*/memo(function Timeline({
|
|
22
|
+
items,
|
|
23
|
+
style,
|
|
24
|
+
testID
|
|
25
|
+
}) {
|
|
26
|
+
const theme = useTheme();
|
|
27
|
+
const colors = resolveTimelineColors(theme.colors);
|
|
28
|
+
return /*#__PURE__*/_jsx(View, {
|
|
29
|
+
testID: testID,
|
|
30
|
+
style: style,
|
|
31
|
+
children: items.map((item, index) => {
|
|
32
|
+
const isLast = index === items.length - 1;
|
|
33
|
+
const position = isLast ? "last" : "middle";
|
|
34
|
+
const rowTestID = testID === undefined ? undefined : `${testID}-item-${index}`;
|
|
35
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
36
|
+
testID: rowTestID,
|
|
37
|
+
style: timelineRowStructure(),
|
|
38
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
39
|
+
testID: rowTestID === undefined ? undefined : `${rowTestID}-connector`,
|
|
40
|
+
style: timelineConnectorStructure(),
|
|
41
|
+
accessibilityElementsHidden: true,
|
|
42
|
+
importantForAccessibility: "no-hide-descendants",
|
|
43
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
44
|
+
testID: rowTestID === undefined ? undefined : `${rowTestID}-marker`,
|
|
45
|
+
style: [timelineMarkerStructure(theme, {
|
|
46
|
+
kind: item.icon === undefined ? "dot" : "icon"
|
|
47
|
+
}), {
|
|
48
|
+
backgroundColor: colors.markerFill
|
|
49
|
+
}],
|
|
50
|
+
children: item.icon !== undefined && /*#__PURE__*/_jsx(Icon, {
|
|
51
|
+
name: item.icon,
|
|
52
|
+
size: TIMELINE_MARKER.glyph,
|
|
53
|
+
color: colors.markerIcon,
|
|
54
|
+
strokeWidth: ICON_STROKE
|
|
55
|
+
})
|
|
56
|
+
}), !isLast && /*#__PURE__*/_jsx(View, {
|
|
57
|
+
testID: rowTestID === undefined ? undefined : `${rowTestID}-line`,
|
|
58
|
+
style: [timelineConnectorLineStructure(theme), {
|
|
59
|
+
backgroundColor: colors.connector
|
|
60
|
+
}]
|
|
61
|
+
})]
|
|
62
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
63
|
+
style: timelineContentStructure(theme, {
|
|
64
|
+
position
|
|
65
|
+
}),
|
|
66
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
67
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.semibold), {
|
|
68
|
+
fontSize: theme.fontSizes.md,
|
|
69
|
+
color: colors.title
|
|
70
|
+
}],
|
|
71
|
+
children: item.title
|
|
72
|
+
}), item.description !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
73
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
74
|
+
fontSize: theme.fontSizes.sm,
|
|
75
|
+
color: colors.description,
|
|
76
|
+
marginTop: theme.space[1]
|
|
77
|
+
}],
|
|
78
|
+
children: item.description
|
|
79
|
+
}), item.timestamp !== undefined && /*#__PURE__*/_jsx(Text, {
|
|
80
|
+
style: [theme.fontStyleForWeight(theme.fontWeights.regular), {
|
|
81
|
+
fontSize: theme.fontSizes.xs,
|
|
82
|
+
color: colors.timestamp,
|
|
83
|
+
marginTop: theme.space[1]
|
|
84
|
+
}],
|
|
85
|
+
children: item.timestamp
|
|
86
|
+
})]
|
|
87
|
+
})]
|
|
88
|
+
}, `${index}-${item.title}`);
|
|
89
|
+
})
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
//# sourceMappingURL=Timeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["memo","Text","View","Icon","useTheme","resolveTimelineColors","timelineConnectorLineStructure","timelineConnectorStructure","timelineContentStructure","timelineMarkerStructure","timelineRowStructure","TIMELINE_MARKER","jsx","_jsx","jsxs","_jsxs","ICON_STROKE","Timeline","items","style","testID","theme","colors","children","map","item","index","isLast","length","position","rowTestID","undefined","accessibilityElementsHidden","importantForAccessibility","kind","icon","backgroundColor","markerFill","name","size","glyph","color","markerIcon","strokeWidth","connector","fontStyleForWeight","fontWeights","semibold","fontSize","fontSizes","md","title","description","regular","sm","marginTop","space","timestamp","xs"],"sourceRoot":"../../../../src","sources":["modules/timeline/Timeline.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAEzC,SAASC,IAAI,QAAQ,0BAAiB;AAGtC,SAASC,QAAQ,QAAQ,sBAAa;AAEtC,SACEC,qBAAqB,EACrBC,8BAA8B,EAC9BC,0BAA0B,EAC1BC,wBAAwB,EACxBC,uBAAuB,EACvBC,oBAAoB,EACpBC,eAAe,QACV,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAkB7B,MAAMC,WAAW,GAAG,CAAC;AAErB,OAAO,MAAMC,QAAQ,gBAAGjB,IAAI,CAAC,SAASiB,QAAQA,CAAC;EAAEC,KAAK;EAAEC,KAAK;EAAEC;AAAsB,CAAC,EAAE;EACtF,MAAMC,KAAK,GAAGjB,QAAQ,CAAC,CAAC;EACxB,MAAMkB,MAAM,GAAGjB,qBAAqB,CAACgB,KAAK,CAACC,MAAM,CAAC;EAElD,oBACET,IAAA,CAACX,IAAI;IAACkB,MAAM,EAAEA,MAAO;IAACD,KAAK,EAAEA,KAAM;IAAAI,QAAA,EAChCL,KAAK,CAACM,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;MAC1B,MAAMC,MAAM,GAAGD,KAAK,KAAKR,KAAK,CAACU,MAAM,GAAG,CAAC;MACzC,MAAMC,QAA2B,GAAGF,MAAM,GAAG,MAAM,GAAG,QAAQ;MAC9D,MAAMG,SAAS,GAAGV,MAAM,KAAKW,SAAS,GAAGA,SAAS,GAAG,GAAGX,MAAM,SAASM,KAAK,EAAE;MAE9E,oBACEX,KAAA,CAACb,IAAI;QAAgCkB,MAAM,EAAEU,SAAU;QAACX,KAAK,EAAET,oBAAoB,CAAC,CAAE;QAAAa,QAAA,gBACpFR,KAAA,CAACb,IAAI;UACHkB,MAAM,EAAEU,SAAS,KAAKC,SAAS,GAAGA,SAAS,GAAG,GAAGD,SAAS,YAAa;UACvEX,KAAK,EAAEZ,0BAA0B,CAAC,CAAE;UACpCyB,2BAA2B;UAC3BC,yBAAyB,EAAC,qBAAqB;UAAAV,QAAA,gBAE/CV,IAAA,CAACX,IAAI;YACHkB,MAAM,EAAEU,SAAS,KAAKC,SAAS,GAAGA,SAAS,GAAG,GAAGD,SAAS,SAAU;YACpEX,KAAK,EAAE,CACLV,uBAAuB,CAACY,KAAK,EAAE;cAAEa,IAAI,EAAET,IAAI,CAACU,IAAI,KAAKJ,SAAS,GAAG,KAAK,GAAG;YAAO,CAAC,CAAC,EAClF;cAAEK,eAAe,EAAEd,MAAM,CAACe;YAAW,CAAC,CACtC;YAAAd,QAAA,EAEDE,IAAI,CAACU,IAAI,KAAKJ,SAAS,iBACtBlB,IAAA,CAACV,IAAI;cACHmC,IAAI,EAAEb,IAAI,CAACU,IAAK;cAChBI,IAAI,EAAE5B,eAAe,CAAC6B,KAAM;cAC5BC,KAAK,EAAEnB,MAAM,CAACoB,UAAW;cACzBC,WAAW,EAAE3B;YAAY,CAC1B;UACF,CACG,CAAC,EACN,CAACW,MAAM,iBACNd,IAAA,CAACX,IAAI;YACHkB,MAAM,EAAEU,SAAS,KAAKC,SAAS,GAAGA,SAAS,GAAG,GAAGD,SAAS,OAAQ;YAClEX,KAAK,EAAE,CAACb,8BAA8B,CAACe,KAAK,CAAC,EAAE;cAAEe,eAAe,EAAEd,MAAM,CAACsB;YAAU,CAAC;UAAE,CACvF,CACF;QAAA,CACG,CAAC,eAEP7B,KAAA,CAACb,IAAI;UAACiB,KAAK,EAAEX,wBAAwB,CAACa,KAAK,EAAE;YAAEQ;UAAS,CAAC,CAAE;UAAAN,QAAA,gBACzDV,IAAA,CAACZ,IAAI;YACHkB,KAAK,EAAE,CACLE,KAAK,CAACwB,kBAAkB,CAACxB,KAAK,CAACyB,WAAW,CAACC,QAAQ,CAAC,EACpD;cAAEC,QAAQ,EAAE3B,KAAK,CAAC4B,SAAS,CAACC,EAAE;cAAET,KAAK,EAAEnB,MAAM,CAAC6B;YAAM,CAAC,CACrD;YAAA5B,QAAA,EAEDE,IAAI,CAAC0B;UAAK,CACP,CAAC,EACN1B,IAAI,CAAC2B,WAAW,KAAKrB,SAAS,iBAC7BlB,IAAA,CAACZ,IAAI;YACHkB,KAAK,EAAE,CACLE,KAAK,CAACwB,kBAAkB,CAACxB,KAAK,CAACyB,WAAW,CAACO,OAAO,CAAC,EACnD;cACEL,QAAQ,EAAE3B,KAAK,CAAC4B,SAAS,CAACK,EAAE;cAC5Bb,KAAK,EAAEnB,MAAM,CAAC8B,WAAW;cACzBG,SAAS,EAAElC,KAAK,CAACmC,KAAK,CAAC,CAAC;YAC1B,CAAC,CACD;YAAAjC,QAAA,EAEDE,IAAI,CAAC2B;UAAW,CACb,CACP,EACA3B,IAAI,CAACgC,SAAS,KAAK1B,SAAS,iBAC3BlB,IAAA,CAACZ,IAAI;YACHkB,KAAK,EAAE,CACLE,KAAK,CAACwB,kBAAkB,CAACxB,KAAK,CAACyB,WAAW,CAACO,OAAO,CAAC,EACnD;cACEL,QAAQ,EAAE3B,KAAK,CAAC4B,SAAS,CAACS,EAAE;cAC5BjB,KAAK,EAAEnB,MAAM,CAACmC,SAAS;cACvBF,SAAS,EAAElC,KAAK,CAACmC,KAAK,CAAC,CAAC;YAC1B,CAAC,CACD;YAAAjC,QAAA,EAEDE,IAAI,CAACgC;UAAS,CACX,CACP;QAAA,CACG,CAAC;MAAA,GApEE,GAAG/B,KAAK,IAAID,IAAI,CAAC0B,KAAK,EAqE3B,CAAC;IAEX,CAAC;EAAC,CACE,CAAC;AAEX,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Timeline's style + colour resolution — pure, React/lucide-free, same split as `Button`:
|
|
5
|
+
* - STRUCTURE (row layout, marker diameter, connector width, content spacing) lives in the
|
|
6
|
+
* `createThemedVariants` resolvers below, registered once per theme identity — never rebuilt
|
|
7
|
+
* per render.
|
|
8
|
+
* - COLOUR is resolved from the theme's ROLE colours (`resolveTimelineColors`), never a raw hex:
|
|
9
|
+
* every marker is the accent role and every text tier a fixed `fg` role. There is no
|
|
10
|
+
* `tone`/`color` prop to widen — a Timeline event has no per-item emphasis to express, so (like
|
|
11
|
+
* `resolveAvatarColors` / `resolveTabsColors`) this is pure indirection, not a union to resolve.
|
|
12
|
+
*
|
|
13
|
+
* Free of React and of any lucide import, so the WCAG + colour-mapping tests import it directly
|
|
14
|
+
* (mocking only `react-native`'s `StyleSheet`, as `core/style` and every sibling module's tests do).
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
import { createThemedVariants, createVariants } from "../../core/style/index.js";
|
|
18
|
+
/**
|
|
19
|
+
* Timeline-specific dimensions. Kept a plain constant — no theme dependency — same as
|
|
20
|
+
* `BUTTON_SIZES` / `AVATAR_SIZES`, so the render layer and tests share one source of truth.
|
|
21
|
+
*
|
|
22
|
+
* Not a touch target: Timeline has no `onPress` in this contract (a purely informational list), so
|
|
23
|
+
* the 44dp floor interactive modules hold themselves to (see `Button`'s `MIN_TOUCH_TARGET`) does
|
|
24
|
+
* not apply here — same reasoning `AVATAR_SIZES` documents for its own non-interactive diameters.
|
|
25
|
+
*/
|
|
26
|
+
export const TIMELINE_MARKER = {
|
|
27
|
+
dot: 8,
|
|
28
|
+
icon: 28,
|
|
29
|
+
glyph: 16
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Maps Timeline's fixed visual roles onto ROLE colours — never a hardcoded hex. There is no
|
|
33
|
+
* `tone`/`color` prop to widen: every event reads identically, so every colour Timeline can show is
|
|
34
|
+
* one of these role lookups, guaranteed legible in both modes.
|
|
35
|
+
*/
|
|
36
|
+
export function resolveTimelineColors(colors) {
|
|
37
|
+
return {
|
|
38
|
+
markerFill: colors.accent.solid,
|
|
39
|
+
markerIcon: colors.accent.onSolid,
|
|
40
|
+
// Decorative connector graphics carry no information of their own — removing the line changes
|
|
41
|
+
// spacing, not meaning — the same WCAG 1.4.11 reasoning `Divider.variants.ts` documents for
|
|
42
|
+
// `border.default`, deliberately NOT the guaranteed-≥3:1 `border.interactive`/`border.focus`
|
|
43
|
+
// those tokens exist for real UI/focus boundaries.
|
|
44
|
+
connector: colors.border.default,
|
|
45
|
+
title: colors.fg.default,
|
|
46
|
+
description: colors.fg.muted,
|
|
47
|
+
// NOT `fg.subtle`: measured, that role is a flat `gray[500]` rung with no `readableOn()`
|
|
48
|
+
// derivation behind it, and it falls as low as 3.19:1 (emerald light) against `bg.canvas` —
|
|
49
|
+
// the exact RadioGroup/Tabs class of bug the build brief calls out. `fg.muted` is the
|
|
50
|
+
// `readableOn()`-derived role and clears 4.5:1 on all 8 brands × both modes; the timestamp's
|
|
51
|
+
// smaller `fontSizes.xs` still carries the visual de-emphasis `subtle` was reaching for.
|
|
52
|
+
timestamp: colors.fg.muted
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* The whole row: the connector column beside the content column. No theme dependency (a plain
|
|
58
|
+
* constant layout, like `spinnerBox`/`radioDotStructure`), so this uses `createVariants`, not the
|
|
59
|
+
* themed resolver — no theme identity to cache against.
|
|
60
|
+
*/
|
|
61
|
+
export const timelineRowStructure = createVariants({
|
|
62
|
+
base: {
|
|
63
|
+
flexDirection: "row"
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* The connector column — fixed at the icon circle's width so a dot row and an icon row centre on
|
|
69
|
+
* the same vertical axis regardless of which marker kind that particular item renders. No explicit
|
|
70
|
+
* height: it stretches (the row's default cross-axis behaviour for a `flexDirection: "row"`
|
|
71
|
+
* container) to match the content column's height, which is what lets the line below the marker
|
|
72
|
+
* reach all the way down to the next row's marker — see `timelineContentStructure` below. No theme
|
|
73
|
+
* dependency, so `createVariants` again.
|
|
74
|
+
*/
|
|
75
|
+
export const timelineConnectorStructure = createVariants({
|
|
76
|
+
base: {
|
|
77
|
+
width: TIMELINE_MARKER.icon,
|
|
78
|
+
alignItems: "center"
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
/** The marker itself — a small dot, or a larger circle sized to hold an icon glyph. */
|
|
83
|
+
export const timelineMarkerStructure = createThemedVariants(theme => ({
|
|
84
|
+
base: {
|
|
85
|
+
alignItems: "center",
|
|
86
|
+
justifyContent: "center",
|
|
87
|
+
borderRadius: theme.radii.full
|
|
88
|
+
},
|
|
89
|
+
variants: {
|
|
90
|
+
kind: {
|
|
91
|
+
dot: {
|
|
92
|
+
width: TIMELINE_MARKER.dot,
|
|
93
|
+
height: TIMELINE_MARKER.dot
|
|
94
|
+
},
|
|
95
|
+
icon: {
|
|
96
|
+
width: TIMELINE_MARKER.icon,
|
|
97
|
+
height: TIMELINE_MARKER.icon
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
defaultVariants: {
|
|
102
|
+
kind: "dot"
|
|
103
|
+
}
|
|
104
|
+
}));
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* The line connecting one marker to the next. `flex: 1` fills whatever height the connector
|
|
108
|
+
* column above stretches to; a `middle` row's CONTENT carries the extra bottom padding that makes
|
|
109
|
+
* that stretched height reach past the text into the gap before the next row (see
|
|
110
|
+
* `timelineContentStructure`), so the line never visibly stops short of the next marker.
|
|
111
|
+
*/
|
|
112
|
+
export const timelineConnectorLineStructure = createThemedVariants(theme => ({
|
|
113
|
+
base: {
|
|
114
|
+
flex: 1,
|
|
115
|
+
width: theme.borderWidths.thick
|
|
116
|
+
}
|
|
117
|
+
}));
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* The text column beside the connector. A `middle` row (one with a following item) reserves the
|
|
121
|
+
* gap to that next row HERE, on the content sibling, not on the shared row wrapper — a row with an
|
|
122
|
+
* undetermined height stretches its children to its tallest child's own intrinsic height, so
|
|
123
|
+
* padding placed on the row itself would sit outside what the connector column stretches to match,
|
|
124
|
+
* leaving a visible break in the line. Placed on content instead, the padding becomes part of the
|
|
125
|
+
* height the connector column stretches to, so the line spans through it.
|
|
126
|
+
*/
|
|
127
|
+
export const timelineContentStructure = createThemedVariants(theme => ({
|
|
128
|
+
base: {
|
|
129
|
+
flex: 1,
|
|
130
|
+
marginLeft: theme.space[3]
|
|
131
|
+
},
|
|
132
|
+
variants: {
|
|
133
|
+
position: {
|
|
134
|
+
middle: {
|
|
135
|
+
paddingBottom: theme.space[6]
|
|
136
|
+
},
|
|
137
|
+
last: {
|
|
138
|
+
paddingBottom: 0
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
defaultVariants: {
|
|
143
|
+
position: "middle"
|
|
144
|
+
}
|
|
145
|
+
}));
|
|
146
|
+
//# sourceMappingURL=Timeline.variants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createThemedVariants","createVariants","TIMELINE_MARKER","dot","icon","glyph","resolveTimelineColors","colors","markerFill","accent","solid","markerIcon","onSolid","connector","border","default","title","fg","description","muted","timestamp","timelineRowStructure","base","flexDirection","timelineConnectorStructure","width","alignItems","timelineMarkerStructure","theme","justifyContent","borderRadius","radii","full","variants","kind","height","defaultVariants","timelineConnectorLineStructure","flex","borderWidths","thick","timelineContentStructure","marginLeft","space","position","middle","paddingBottom","last"],"sourceRoot":"../../../../src","sources":["modules/timeline/Timeline.variants.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA,SAASA,oBAAoB,EAAEC,cAAc,QAAQ,2BAAkB;AAYvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAmC,GAAG;EAAEC,GAAG,EAAE,CAAC;EAAEC,IAAI,EAAE,EAAE;EAAEC,KAAK,EAAE;AAAG,CAAC;AAclF;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACC,MAAkB,EAAkB;EACxE,OAAO;IACLC,UAAU,EAAED,MAAM,CAACE,MAAM,CAACC,KAAK;IAC/BC,UAAU,EAAEJ,MAAM,CAACE,MAAM,CAACG,OAAO;IACjC;IACA;IACA;IACA;IACAC,SAAS,EAAEN,MAAM,CAACO,MAAM,CAACC,OAAO;IAChCC,KAAK,EAAET,MAAM,CAACU,EAAE,CAACF,OAAO;IACxBG,WAAW,EAAEX,MAAM,CAACU,EAAE,CAACE,KAAK;IAC5B;IACA;IACA;IACA;IACA;IACAC,SAAS,EAAEb,MAAM,CAACU,EAAE,CAACE;EACvB,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAME,oBAAoB,GAAGpB,cAAc,CAAC;EACjDqB,IAAI,EAAE;IACJC,aAAa,EAAE;EACjB;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,0BAA0B,GAAGvB,cAAc,CAAC;EACvDqB,IAAI,EAAE;IACJG,KAAK,EAAEvB,eAAe,CAACE,IAAI;IAC3BsB,UAAU,EAAE;EACd;AACF,CAAC,CAAC;;AAEF;AACA,OAAO,MAAMC,uBAAuB,GAAG3B,oBAAoB,CAAE4B,KAAY,KAAM;EAC7EN,IAAI,EAAE;IACJI,UAAU,EAAE,QAAQ;IACpBG,cAAc,EAAE,QAAQ;IACxBC,YAAY,EAAEF,KAAK,CAACG,KAAK,CAACC;EAC5B,CAAC;EACDC,QAAQ,EAAE;IACRC,IAAI,EAAE;MACJ/B,GAAG,EAAE;QAAEsB,KAAK,EAAEvB,eAAe,CAACC,GAAG;QAAEgC,MAAM,EAAEjC,eAAe,CAACC;MAAI,CAAC;MAChEC,IAAI,EAAE;QAAEqB,KAAK,EAAEvB,eAAe,CAACE,IAAI;QAAE+B,MAAM,EAAEjC,eAAe,CAACE;MAAK;IACpE;EACF,CAAC;EACDgC,eAAe,EAAE;IAAEF,IAAI,EAAE;EAAM;AACjC,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMG,8BAA8B,GAAGrC,oBAAoB,CAAE4B,KAAY,KAAM;EACpFN,IAAI,EAAE;IACJgB,IAAI,EAAE,CAAC;IACPb,KAAK,EAAEG,KAAK,CAACW,YAAY,CAACC;EAC5B;AACF,CAAC,CAAC,CAAC;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,wBAAwB,GAAGzC,oBAAoB,CAAE4B,KAAY,KAAM;EAC9EN,IAAI,EAAE;IACJgB,IAAI,EAAE,CAAC;IACPI,UAAU,EAAEd,KAAK,CAACe,KAAK,CAAC,CAAC;EAC3B,CAAC;EACDV,QAAQ,EAAE;IACRW,QAAQ,EAAE;MACRC,MAAM,EAAE;QAAEC,aAAa,EAAElB,KAAK,CAACe,KAAK,CAAC,CAAC;MAAE,CAAC;MACzCI,IAAI,EAAE;QAAED,aAAa,EAAE;MAAE;IAC3B;EACF,CAAC;EACDV,eAAe,EAAE;IAAEQ,QAAQ,EAAE;EAAS;AACxC,CAAC,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Public surface of `pixelize-native-library/timeline`. Value exports and type exports are split for
|
|
5
|
+
* `verbatimModuleSyntax`. The internal resolvers (`resolveTimelineColors`, `TIMELINE_MARKER`, …)
|
|
6
|
+
* stay internal — a consumer configures a Timeline through its `items`, never by importing internals.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
export { Timeline } from "./Timeline.js";
|
|
10
|
+
|
|
11
|
+
// Re-exported so a caller can type an item's `icon` field without a separate import from `core/icon`.
|
|
12
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Timeline"],"sourceRoot":"../../../../src","sources":["modules/timeline/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,QAAQ,QAAQ,eAAY;;AAGrC","ignoreList":[]}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# toast/ — a transient status message, floating outside RN's Modal system
|
|
2
|
+
|
|
3
|
+
`Toast` is a `ToastProvider` + `useToast()` hook, not a placeable component — a screen never renders
|
|
4
|
+
`<Toast>` directly, it wraps its root in `<ToastProvider>` and calls `useToast().show(...)` from
|
|
5
|
+
anywhere beneath it.
|
|
6
|
+
|
|
7
|
+
## Files
|
|
8
|
+
|
|
9
|
+
| File | Role |
|
|
10
|
+
|------|------|
|
|
11
|
+
| `Toast.tsx` | `ToastProvider`, the internal `ToastCard`, and `useToast()`. State machine, timers, animation, a11y wiring. |
|
|
12
|
+
| `Toast.variants.ts` | Pure resolver (`resolveToastTone`) + the themed structural resolvers (`toastCardStructure`, `toastAccentBarStructure`, `toastOverlayStructure`, including the overlay's `zIndex`). No React, no lucide. |
|
|
13
|
+
| `index.ts` | Public surface: `ToastProvider`, `useToast`, `ToastOptions`, `ToastContextValue`, `ToastProviderProps`, the closed unions. No `IconName` re-export — the dismiss glyph is a fixed internal choice. |
|
|
14
|
+
| `__tests__/Toast.test.ts` | Pure: WCAG contrast (all brands × modes, including the close icon vs the card background) + touch target + the tone→role contract + every resolved colour is a solid 6-digit hex (never an alpha token). |
|
|
15
|
+
| `__tests__/Toast.render.test.tsx` | Render: show/auto-dismiss/dismiss, replace-while-visible, the cross-platform announce call, missing-provider error, the REAL rendered card background (flattened style, not just the token). |
|
|
16
|
+
|
|
17
|
+
## Why not `<Modal>`
|
|
18
|
+
|
|
19
|
+
A confirmed iOS bug drops or breaks a second `<Modal>` presented while a sibling Modal — this
|
|
20
|
+
library's own, or an OS share sheet — is still mounted or mid-dismiss-animation. A toast shown while
|
|
21
|
+
one of those is open would silently fail to appear. `ToastProvider` instead renders its own plain
|
|
22
|
+
`View` overlay, `position: "absolute"`, at the provider's own root — entirely outside RN's Modal
|
|
23
|
+
system, so it floats over anything without competing for the same presentation stack.
|
|
24
|
+
|
|
25
|
+
## API
|
|
26
|
+
|
|
27
|
+
| Member | Shape | Notes |
|
|
28
|
+
|--------|-------|-------|
|
|
29
|
+
| `ToastProvider` | `{ children, position?: "top" \| "bottom" }` | Mount once near the app root. `position` defaults to `top`; it is provider-level (one overlay), not per-toast. No `style` prop — same as `PixelizeProvider`, the only other provider in this catalogue: it wraps the whole app rather than being laid out by one. |
|
|
30
|
+
| `useToast()` | `{ show(options), dismiss() }` | Throws outside a `ToastProvider`, same contract as `useTheme()`. |
|
|
31
|
+
| `ToastOptions` | `{ message: string, tone?: ToastTone, duration?: number }` | `tone` defaults to `neutral`; `duration` defaults to `DEFAULT_TOAST_DURATION` (~3000ms). |
|
|
32
|
+
| `ToastTone` | `success \| warning \| danger \| info \| neutral` | Closed union — colour from `colors.status.<role>`, never a `color` prop. |
|
|
33
|
+
|
|
34
|
+
Single-slot by design: calling `show()` while a toast is visible replaces its message/tone, restarts
|
|
35
|
+
the auto-dismiss timer, and restarts the entrance animation (a fresh message reads as a new event).
|
|
36
|
+
There is no stacking queue in v1 — see Known gaps. `dismiss()` always targets that one slot and is a
|
|
37
|
+
safe no-op when nothing is showing.
|
|
38
|
+
|
|
39
|
+
## Accessibility contract (WCAG)
|
|
40
|
+
|
|
41
|
+
- **4.1.3 (status messages)** — `show()` calls `AccessibilityInfo.announceForAccessibility(message)`,
|
|
42
|
+
the real cross-platform imperative API (VoiceOver + TalkBack). The message `Text` deliberately does
|
|
43
|
+
NOT also carry `accessibilityLiveRegion`: that RN prop is Android-only, and since `show()` always
|
|
44
|
+
fires the imperative announce too, keeping both would double-announce on Android on every toast —
|
|
45
|
+
see the comment at the `show()` call site and on the `Text` in `Toast.tsx`. The card itself is
|
|
46
|
+
`accessibilityRole="alert"`. Every tone announces the same way (no politeness distinction).
|
|
47
|
+
- **2.5.x target size** — the close button's 24dp box reaches ≥ 44dp via `hitSlop`
|
|
48
|
+
(`CLOSE_BUTTON_SIZE + 2 · CLOSE_HIT_SLOP ≥ 44`), same `slopFor` idiom as `Button`/`Input`/`Checkbox`.
|
|
49
|
+
- **1.4.3** — the message text is `status.<role>.text` (or `fg.default` for `neutral`) on `bg.raised`,
|
|
50
|
+
measured ≥ 4.5:1 for every tone × brand × mode (`Toast.test.ts`). A contrast ratio only means
|
|
51
|
+
anything against an OPAQUE backdrop, so `Toast.test.ts` also asserts every resolved colour is a
|
|
52
|
+
solid 6-digit hex (never an alpha token), and `Toast.render.test.tsx` flattens the card's real
|
|
53
|
+
rendered style array to confirm `backgroundColor` survives as that same opaque hex — proving
|
|
54
|
+
`theme.elevation.lg` (spread after `{ backgroundColor }` in `Toast.tsx`, shadow-only, never a fill)
|
|
55
|
+
never clobbers or substitutes for it.
|
|
56
|
+
- **1.4.11** — the left accent bar is the SAME role as the text (see "Why the bar reuses `text`"
|
|
57
|
+
below), measured ≥ 3:1 against the card's own background for every tone × brand × mode. The close
|
|
58
|
+
icon (`fg.muted`, constant across tones — not resolved via `resolveToastTone`) is measured the same
|
|
59
|
+
way against every tone's card background in the same file.
|
|
60
|
+
- **2.3.3** — the slide/fade entrance and exit are suppressed (`duration: 0`) when
|
|
61
|
+
`useReducedMotion()` is true; the toast still appears/disappears, just without the animated motion.
|
|
62
|
+
- The close button is icon-only: `accessibilityRole="button"` with a fixed, always-present
|
|
63
|
+
`accessibilityLabel="Dismiss notification"` (not a consumer-configurable prop, so there is no
|
|
64
|
+
unlabelled-icon-button state to make unrepresentable here — unlike `Button`'s icon-only shape).
|
|
65
|
+
|
|
66
|
+
## Why the accent bar reuses `status.<role>.text`, not `.solid`
|
|
67
|
+
|
|
68
|
+
A first design used `status.<role>.solid` (the vivid fill) for the bar against the card's `subtle`
|
|
69
|
+
(pale) background — the obvious "coloured bar" choice. Measuring it against every brand × mode
|
|
70
|
+
(`roleColors.test.ts`'s own promises only cover `solid` vs `onSolid`/`subtle`) showed
|
|
71
|
+
`success`/`warning`/`info` in **light mode** fall to ~1.9–2.6:1 against `subtle`/`surface`/`raised` —
|
|
72
|
+
well under the 3:1 a rendered boundary needs; only `danger` happened to clear it. `status.<role>.text`
|
|
73
|
+
is the rung `readableOn` already resolves to ≥ 4.5:1 nearby, so it comfortably clears the bar's
|
|
74
|
+
looser 3:1 floor too — one already-verified role covers both the bar and the message, instead of
|
|
75
|
+
shipping a second, unverified pairing. `Toast.test.ts` locks this measurement so a future token
|
|
76
|
+
change can't silently reintroduce the gap.
|
|
77
|
+
|
|
78
|
+
## Patterns copied from `Button`/`Card`
|
|
79
|
+
|
|
80
|
+
1. **Structure vs colour split.** Structural values (padding, radius, gap, the bar's width, the
|
|
81
|
+
overlay's edge inset AND `zIndex`) → `createThemedVariants`, one resolver per concept, registered
|
|
82
|
+
once per theme — never a fresh inline style object per render. Colour → resolved from role tokens
|
|
83
|
+
per `tone`, applied inline.
|
|
84
|
+
2. **Pure, testable resolvers** in `Toast.variants.ts` (no React/lucide) so the WCAG + tone→colour
|
|
85
|
+
contracts are unit-tested by measuring real palettes — never eyeballed.
|
|
86
|
+
3. **Elevation applied directly** from `theme.elevation.lg` on the card, same idiom as `Card`'s
|
|
87
|
+
`elevated` variant (`theme.elevation.md`) — not re-derived as a shadow style.
|
|
88
|
+
4. **Closed unions only** (`tone`, `position`), no `{...rest}`, no consumer style prop on the
|
|
89
|
+
provider (see API table).
|
|
90
|
+
|
|
91
|
+
## Known gaps
|
|
92
|
+
|
|
93
|
+
- **No stacking queue.** `show()` while visible replaces the current toast; there is no multi-toast
|
|
94
|
+
queue in v1. Flagging for a future version if a consumer needs concurrent toasts.
|
|
95
|
+
- **No safe-area inset awareness.** The overlay's edge inset is a fixed `theme.space[4]`; it does not
|
|
96
|
+
read device safe-area insets (notch/home-indicator). `react-native-safe-area-context` is already an
|
|
97
|
+
optional peer dependency for this catalogue but no module wires it yet — a consumer on a notched
|
|
98
|
+
device may want to add its own top padding via screen-level layout until this is revisited.
|
|
99
|
+
- Render tests need `@testing-library/react-native` + a react-native jest preset (same
|
|
100
|
+
dependency-pending note as `Button.render.test.tsx`).
|
|
101
|
+
|
|
102
|
+
## Performance
|
|
103
|
+
|
|
104
|
+
`ToastProvider` (exported) and `ToastCard` (internal, non-exported) are both wrapped in `React.memo` (repo-wide re-render audit, 2026-07-17 — see root `CLAUDE.md`) — mirrors the repo convention (e.g. `AccordionRow`) of memoizing library-internal child components too. No new `useCallback`/`useMemo` needed: the props handed to `ToastCard` (`toast`, `theme`, `position`, `progress`, `onDismiss={hide}`) were already stable — the file already used `useCallback`/`useMemo` throughout.
|