@cdx-ui/components 0.0.1-beta.9 → 0.0.1-beta.91
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 +32 -20
- package/lib/commonjs/animation/hooks/index.js +17 -0
- package/lib/commonjs/animation/hooks/index.js.map +1 -0
- package/lib/commonjs/animation/hooks/useCombinedAnimationDisabledState.js +50 -0
- package/lib/commonjs/animation/hooks/useCombinedAnimationDisabledState.js.map +1 -0
- package/lib/commonjs/animation/index.js +39 -0
- package/lib/commonjs/animation/index.js.map +1 -0
- package/lib/commonjs/animation/types.js +6 -0
- package/lib/commonjs/animation/types.js.map +1 -0
- package/lib/commonjs/animation/utils.js +223 -0
- package/lib/commonjs/animation/utils.js.map +1 -0
- package/lib/commonjs/components/Alert/index.js +263 -0
- package/lib/commonjs/components/Alert/index.js.map +1 -0
- package/lib/commonjs/components/Alert/styles.js +87 -0
- package/lib/commonjs/components/Alert/styles.js.map +1 -0
- package/lib/commonjs/components/AlertDialog/index.js +17 -14
- package/lib/commonjs/components/AlertDialog/index.js.map +1 -1
- package/lib/commonjs/components/Avatar/index.js +126 -26
- package/lib/commonjs/components/Avatar/index.js.map +1 -1
- package/lib/commonjs/components/Avatar/styles.js +36 -29
- package/lib/commonjs/components/Avatar/styles.js.map +1 -1
- package/lib/commonjs/components/BottomSheet/index.js +80 -27
- package/lib/commonjs/components/BottomSheet/index.js.map +1 -1
- package/lib/commonjs/components/BottomSheet/styles.js +5 -42
- package/lib/commonjs/components/BottomSheet/styles.js.map +1 -1
- package/lib/commonjs/components/Button/index.js +143 -29
- package/lib/commonjs/components/Button/index.js.map +1 -1
- package/lib/commonjs/components/Button/styles.js +94 -29
- package/lib/commonjs/components/Button/styles.js.map +1 -1
- package/lib/commonjs/components/CLAUDE.md +194 -0
- package/lib/commonjs/components/Card/index.js +62 -16
- package/lib/commonjs/components/Card/index.js.map +1 -1
- package/lib/commonjs/components/Card/styles.js +27 -4
- package/lib/commonjs/components/Card/styles.js.map +1 -1
- package/lib/commonjs/components/Checkbox/index.js +71 -48
- package/lib/commonjs/components/Checkbox/index.js.map +1 -1
- package/lib/commonjs/components/Checkbox/styles.js +41 -47
- package/lib/commonjs/components/Checkbox/styles.js.map +1 -1
- package/lib/commonjs/components/Chip/index.js +94 -17
- package/lib/commonjs/components/Chip/index.js.map +1 -1
- package/lib/commonjs/components/Chip/styles.js +178 -21
- package/lib/commonjs/components/Chip/styles.js.map +1 -1
- package/lib/commonjs/components/CurrencyInput/index.js +157 -0
- package/lib/commonjs/components/CurrencyInput/index.js.map +1 -0
- package/lib/commonjs/components/CurrencyInput/styles.js +31 -0
- package/lib/commonjs/components/CurrencyInput/styles.js.map +1 -0
- package/lib/commonjs/components/Dialog/index.js +140 -65
- package/lib/commonjs/components/Dialog/index.js.map +1 -1
- package/lib/commonjs/components/Dialog/styles.js +60 -14
- package/lib/commonjs/components/Dialog/styles.js.map +1 -1
- package/lib/commonjs/components/Divider/index.js +98 -0
- package/lib/commonjs/components/Divider/index.js.map +1 -0
- package/lib/commonjs/components/Divider/styles.js +75 -0
- package/lib/commonjs/components/Divider/styles.js.map +1 -0
- package/lib/commonjs/components/Field/index.js +77 -27
- package/lib/commonjs/components/Field/index.js.map +1 -1
- package/lib/commonjs/components/Field/styles.js +4 -4
- package/lib/commonjs/components/Field/styles.js.map +1 -1
- package/lib/commonjs/components/Form/index.js +5 -12
- package/lib/commonjs/components/Form/index.js.map +1 -1
- package/lib/commonjs/components/Heading/styles.js +1 -1
- package/lib/commonjs/components/Heading/styles.js.map +1 -1
- package/lib/commonjs/components/Icon/index.js +12 -5
- package/lib/commonjs/components/Icon/index.js.map +1 -1
- package/lib/commonjs/components/IconButton/index.js +11 -34
- package/lib/commonjs/components/IconButton/index.js.map +1 -1
- package/lib/commonjs/components/IconButton/styles.js +135 -10
- package/lib/commonjs/components/IconButton/styles.js.map +1 -1
- package/lib/commonjs/components/Input/index.js +50 -20
- package/lib/commonjs/components/Input/index.js.map +1 -1
- package/lib/commonjs/components/Input/styles.js +18 -6
- package/lib/commonjs/components/Input/styles.js.map +1 -1
- package/lib/commonjs/components/Link/index.js +35 -9
- package/lib/commonjs/components/Link/index.js.map +1 -1
- package/lib/commonjs/components/Link/styles.js +56 -6
- package/lib/commonjs/components/Link/styles.js.map +1 -1
- package/lib/commonjs/components/ListItem/index.js +132 -79
- package/lib/commonjs/components/ListItem/index.js.map +1 -1
- package/lib/commonjs/components/ListItem/styles.js +29 -57
- package/lib/commonjs/components/ListItem/styles.js.map +1 -1
- package/lib/commonjs/components/OtpInput/index.js +94 -28
- package/lib/commonjs/components/OtpInput/index.js.map +1 -1
- package/lib/commonjs/components/ProgressBar/index.js +8 -13
- package/lib/commonjs/components/ProgressBar/index.js.map +1 -1
- package/lib/commonjs/components/ProgressSegmented/index.js +24 -10
- package/lib/commonjs/components/ProgressSegmented/index.js.map +1 -1
- package/lib/commonjs/components/QuickActionButton/index.js +133 -0
- package/lib/commonjs/components/QuickActionButton/index.js.map +1 -0
- package/lib/commonjs/components/QuickActionButton/styles.js +17 -0
- package/lib/commonjs/components/QuickActionButton/styles.js.map +1 -0
- package/lib/commonjs/components/Radio/index.js +165 -0
- package/lib/commonjs/components/Radio/index.js.map +1 -0
- package/lib/commonjs/components/Radio/styles.js +31 -0
- package/lib/commonjs/components/Radio/styles.js.map +1 -0
- package/lib/commonjs/components/ScopedTheme/index.js +24 -0
- package/lib/commonjs/components/ScopedTheme/index.js.map +1 -0
- package/lib/commonjs/components/Select/index.js +111 -39
- package/lib/commonjs/components/Select/index.js.map +1 -1
- package/lib/commonjs/components/Select/styles.js +23 -20
- package/lib/commonjs/components/Select/styles.js.map +1 -1
- package/lib/commonjs/components/Skeleton/index.js +37 -0
- package/lib/commonjs/components/Skeleton/index.js.map +1 -0
- package/lib/commonjs/components/Skeleton/styles.js +9 -0
- package/lib/commonjs/components/Skeleton/styles.js.map +1 -0
- package/lib/commonjs/components/Switch/BaseSwitch.js +23 -13
- package/lib/commonjs/components/Switch/BaseSwitch.js.map +1 -1
- package/lib/commonjs/components/Switch/BaseSwitch.web.js +25 -21
- package/lib/commonjs/components/Switch/BaseSwitch.web.js.map +1 -1
- package/lib/commonjs/components/Switch/index.js +34 -3
- package/lib/commonjs/components/Switch/index.js.map +1 -1
- package/lib/commonjs/components/Text/styles.js +2 -2
- package/lib/commonjs/components/Text/styles.js.map +1 -1
- package/lib/commonjs/components/Tile/index.js +324 -0
- package/lib/commonjs/components/Tile/index.js.map +1 -0
- package/lib/commonjs/components/Tile/styles.js +52 -0
- package/lib/commonjs/components/Tile/styles.js.map +1 -0
- package/lib/commonjs/components/Toast/animation.js +329 -0
- package/lib/commonjs/components/Toast/animation.js.map +1 -0
- package/lib/commonjs/components/Toast/hooks.js +66 -0
- package/lib/commonjs/components/Toast/hooks.js.map +1 -0
- package/lib/commonjs/components/Toast/index.js +493 -0
- package/lib/commonjs/components/Toast/index.js.map +1 -0
- package/lib/commonjs/components/Toast/styles.js +141 -0
- package/lib/commonjs/components/Toast/styles.js.map +1 -0
- package/lib/commonjs/components/Toast/types.js +6 -0
- package/lib/commonjs/components/Toast/types.js.map +1 -0
- package/lib/commonjs/components/VirtualizedList/index.js.map +1 -1
- package/lib/commonjs/components/index.js +108 -0
- package/lib/commonjs/components/index.js.map +1 -1
- package/lib/commonjs/figma/Alert.Button.figma.js +31 -0
- package/lib/commonjs/figma/Alert.Button.figma.js.map +1 -0
- package/lib/commonjs/figma/Alert.Close.figma.js +24 -0
- package/lib/commonjs/figma/Alert.Close.figma.js.map +1 -0
- package/lib/commonjs/figma/Alert.Description.figma.js +20 -0
- package/lib/commonjs/figma/Alert.Description.figma.js.map +1 -0
- package/lib/commonjs/figma/Alert.Title.figma.js +20 -0
- package/lib/commonjs/figma/Alert.Title.figma.js.map +1 -0
- package/lib/commonjs/figma/Alert.figma.js +42 -0
- package/lib/commonjs/figma/Alert.figma.js.map +1 -0
- package/lib/commonjs/figma/AlertDialog.Description.figma.js +20 -0
- package/lib/commonjs/figma/AlertDialog.Description.figma.js.map +1 -0
- package/lib/commonjs/figma/AlertDialog.Footer.figma.js +41 -0
- package/lib/commonjs/figma/AlertDialog.Footer.figma.js.map +1 -0
- package/lib/commonjs/figma/AlertDialog.Header.figma.js +28 -0
- package/lib/commonjs/figma/AlertDialog.Header.figma.js.map +1 -0
- package/lib/commonjs/figma/AlertDialog.Text.figma.js +20 -0
- package/lib/commonjs/figma/AlertDialog.Text.figma.js.map +1 -0
- package/lib/commonjs/figma/AlertDialog.Title.figma.js +27 -0
- package/lib/commonjs/figma/AlertDialog.Title.figma.js.map +1 -0
- package/lib/commonjs/figma/AlertDialog.figma.js +43 -0
- package/lib/commonjs/figma/AlertDialog.figma.js.map +1 -0
- package/lib/commonjs/figma/Avatar.figma.js +57 -0
- package/lib/commonjs/figma/Avatar.figma.js.map +1 -0
- package/lib/commonjs/figma/Button.figma.js +66 -0
- package/lib/commonjs/figma/Button.figma.js.map +1 -0
- package/lib/commonjs/figma/CLAUDE.md +30 -0
- package/lib/commonjs/figma/Card.Header.figma.js +28 -0
- package/lib/commonjs/figma/Card.Header.figma.js.map +1 -0
- package/lib/commonjs/figma/Card.figma.js +42 -0
- package/lib/commonjs/figma/Card.figma.js.map +1 -0
- package/lib/commonjs/figma/Checkbox.figma.js +55 -0
- package/lib/commonjs/figma/Checkbox.figma.js.map +1 -0
- package/lib/commonjs/figma/Chip.figma.js +68 -0
- package/lib/commonjs/figma/Chip.figma.js.map +1 -0
- package/lib/commonjs/figma/Dialog.Description.figma.js +20 -0
- package/lib/commonjs/figma/Dialog.Description.figma.js.map +1 -0
- package/lib/commonjs/figma/Dialog.Footer.figma.js +30 -0
- package/lib/commonjs/figma/Dialog.Footer.figma.js.map +1 -0
- package/lib/commonjs/figma/Dialog.Header.figma.js +29 -0
- package/lib/commonjs/figma/Dialog.Header.figma.js.map +1 -0
- package/lib/commonjs/figma/Dialog.Text.figma.js +20 -0
- package/lib/commonjs/figma/Dialog.Text.figma.js.map +1 -0
- package/lib/commonjs/figma/Dialog.Title.figma.js +27 -0
- package/lib/commonjs/figma/Dialog.Title.figma.js.map +1 -0
- package/lib/commonjs/figma/Dialog.figma.js +51 -0
- package/lib/commonjs/figma/Dialog.figma.js.map +1 -0
- package/lib/commonjs/figma/Divider.figma.js +32 -0
- package/lib/commonjs/figma/Divider.figma.js.map +1 -0
- package/lib/commonjs/figma/Field.Input.figma.js +57 -0
- package/lib/commonjs/figma/Field.Input.figma.js.map +1 -0
- package/lib/commonjs/figma/Field.Select.figma.js +57 -0
- package/lib/commonjs/figma/Field.Select.figma.js.map +1 -0
- package/lib/commonjs/figma/Heading.figma.js +30 -0
- package/lib/commonjs/figma/Heading.figma.js.map +1 -0
- package/lib/commonjs/figma/Icon.figma.js +20 -0
- package/lib/commonjs/figma/Icon.figma.js.map +1 -0
- package/lib/commonjs/figma/IconButton.figma.js +47 -0
- package/lib/commonjs/figma/IconButton.figma.js.map +1 -0
- package/lib/commonjs/figma/Input.figma.js +52 -0
- package/lib/commonjs/figma/Input.figma.js.map +1 -0
- package/lib/commonjs/figma/Link.figma.js +30 -0
- package/lib/commonjs/figma/Link.figma.js.map +1 -0
- package/lib/commonjs/figma/ListItem.Description.figma.js +23 -0
- package/lib/commonjs/figma/ListItem.Description.figma.js.map +1 -0
- package/lib/commonjs/figma/ListItem.LeadingSlot.figma.js +24 -0
- package/lib/commonjs/figma/ListItem.LeadingSlot.figma.js.map +1 -0
- package/lib/commonjs/figma/ListItem.Meta.figma.js +23 -0
- package/lib/commonjs/figma/ListItem.Meta.figma.js.map +1 -0
- package/lib/commonjs/figma/ListItem.SectionHeader.figma.js +24 -0
- package/lib/commonjs/figma/ListItem.SectionHeader.figma.js.map +1 -0
- package/lib/commonjs/figma/ListItem.Title.figma.js +23 -0
- package/lib/commonjs/figma/ListItem.Title.figma.js.map +1 -0
- package/lib/commonjs/figma/ListItem.TrailingSlot.figma.js +24 -0
- package/lib/commonjs/figma/ListItem.TrailingSlot.figma.js.map +1 -0
- package/lib/commonjs/figma/ListItem.figma.js +50 -0
- package/lib/commonjs/figma/ListItem.figma.js.map +1 -0
- package/lib/commonjs/figma/ProgressSegmented.figma.js +39 -0
- package/lib/commonjs/figma/ProgressSegmented.figma.js.map +1 -0
- package/lib/commonjs/figma/QuickActionButton.figma.js +38 -0
- package/lib/commonjs/figma/QuickActionButton.figma.js.map +1 -0
- package/lib/commonjs/figma/Radio.figma.js +40 -0
- package/lib/commonjs/figma/Radio.figma.js.map +1 -0
- package/lib/commonjs/figma/Select.figma.js +53 -0
- package/lib/commonjs/figma/Select.figma.js.map +1 -0
- package/lib/commonjs/figma/Text.figma.js +32 -0
- package/lib/commonjs/figma/Text.figma.js.map +1 -0
- package/lib/commonjs/figma/icons.figma.batch.js +27 -0
- package/lib/commonjs/figma/icons.figma.batch.js.map +1 -0
- package/lib/commonjs/figma/icons.figma.batch.json +17705 -0
- package/lib/commonjs/globals.d.js +2 -0
- package/lib/commonjs/globals.d.js.map +1 -0
- package/lib/commonjs/hooks/index.js +19 -0
- package/lib/commonjs/hooks/index.js.map +1 -0
- package/lib/commonjs/hooks/useForgeBottomTabScreenOptions.js +246 -0
- package/lib/commonjs/hooks/useForgeBottomTabScreenOptions.js.map +1 -0
- package/lib/commonjs/index.js +39 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/metro/withCdxMetroConfig.js +7 -18
- package/lib/commonjs/metro/withCdxMetroConfig.js.map +1 -1
- package/lib/commonjs/metro/withForgeMetroConfig.js +24 -0
- package/lib/commonjs/metro/withForgeMetroConfig.js.map +1 -0
- package/lib/commonjs/navigation/forgeTabIcon.js +43 -0
- package/lib/commonjs/navigation/forgeTabIcon.js.map +1 -0
- package/lib/commonjs/navigation/forgeTabIcon.native.js +35 -0
- package/lib/commonjs/navigation/forgeTabIcon.native.js.map +1 -0
- package/lib/commonjs/navigation/index.js +13 -0
- package/lib/commonjs/navigation/index.js.map +1 -0
- package/lib/commonjs/navigation/types.js +38 -0
- package/lib/commonjs/navigation/types.js.map +1 -0
- package/lib/commonjs/providers/animation-settings/index.js +31 -0
- package/lib/commonjs/providers/animation-settings/index.js.map +1 -0
- package/lib/commonjs/providers/animation-settings/provider.js +59 -0
- package/lib/commonjs/providers/animation-settings/provider.js.map +1 -0
- package/lib/commonjs/providers/animation-settings/types.js +6 -0
- package/lib/commonjs/providers/animation-settings/types.js.map +1 -0
- package/lib/commonjs/providers/forge-design/index.js +29 -0
- package/lib/commonjs/providers/forge-design/index.js.map +1 -0
- package/lib/commonjs/providers/forge-design/provider.js +71 -0
- package/lib/commonjs/providers/forge-design/provider.js.map +1 -0
- package/lib/commonjs/providers/forge-design/types.js +6 -0
- package/lib/commonjs/providers/forge-design/types.js.map +1 -0
- package/lib/commonjs/providers/text-component/index.js +28 -0
- package/lib/commonjs/providers/text-component/index.js.map +1 -0
- package/lib/commonjs/providers/text-component/provider.js +11 -0
- package/lib/commonjs/providers/text-component/provider.js.map +1 -0
- package/lib/commonjs/providers/text-component/types.js +6 -0
- package/lib/commonjs/providers/text-component/types.js.map +1 -0
- package/lib/commonjs/providers/toast/index.js +33 -0
- package/lib/commonjs/providers/toast/index.js.map +1 -0
- package/lib/commonjs/providers/toast/insets-container.js +166 -0
- package/lib/commonjs/providers/toast/insets-container.js.map +1 -0
- package/lib/commonjs/providers/toast/lifecycle.context.js +36 -0
- package/lib/commonjs/providers/toast/lifecycle.context.js.map +1 -0
- package/lib/commonjs/providers/toast/provider.js +508 -0
- package/lib/commonjs/providers/toast/provider.js.map +1 -0
- package/lib/commonjs/providers/toast/reducer.js +46 -0
- package/lib/commonjs/providers/toast/reducer.js.map +1 -0
- package/lib/commonjs/providers/toast/toast-config.context.js +29 -0
- package/lib/commonjs/providers/toast/toast-config.context.js.map +1 -0
- package/lib/commonjs/providers/toast/toast-item-renderer.js +43 -0
- package/lib/commonjs/providers/toast/toast-item-renderer.js.map +1 -0
- package/lib/commonjs/providers/toast/types.js +6 -0
- package/lib/commonjs/providers/toast/types.js.map +1 -0
- package/lib/commonjs/styles/primitives.js +43 -6
- package/lib/commonjs/styles/primitives.js.map +1 -1
- package/lib/commonjs/styles.css +0 -5
- package/lib/commonjs/utils/positionToDataIcon.js +41 -0
- package/lib/commonjs/utils/positionToDataIcon.js.map +1 -0
- package/lib/module/animation/hooks/index.js +4 -0
- package/lib/module/animation/hooks/index.js.map +1 -0
- package/lib/module/animation/hooks/useCombinedAnimationDisabledState.js +47 -0
- package/lib/module/animation/hooks/useCombinedAnimationDisabledState.js.map +1 -0
- package/lib/module/animation/index.js +6 -0
- package/lib/module/animation/index.js.map +1 -0
- package/lib/module/animation/types.js +4 -0
- package/lib/module/animation/types.js.map +1 -0
- package/lib/module/animation/utils.js +212 -0
- package/lib/module/animation/utils.js.map +1 -0
- package/lib/module/components/Alert/index.js +259 -0
- package/lib/module/components/Alert/index.js.map +1 -0
- package/lib/module/components/Alert/styles.js +84 -0
- package/lib/module/components/Alert/styles.js.map +1 -0
- package/lib/module/components/AlertDialog/index.js +18 -15
- package/lib/module/components/AlertDialog/index.js.map +1 -1
- package/lib/module/components/Avatar/index.js +129 -29
- package/lib/module/components/Avatar/index.js.map +1 -1
- package/lib/module/components/Avatar/styles.js +36 -29
- package/lib/module/components/Avatar/styles.js.map +1 -1
- package/lib/module/components/BottomSheet/index.js +85 -32
- package/lib/module/components/BottomSheet/index.js.map +1 -1
- package/lib/module/components/BottomSheet/styles.js +4 -42
- package/lib/module/components/BottomSheet/styles.js.map +1 -1
- package/lib/module/components/Button/index.js +146 -33
- package/lib/module/components/Button/index.js.map +1 -1
- package/lib/module/components/Button/styles.js +93 -28
- package/lib/module/components/Button/styles.js.map +1 -1
- package/lib/module/components/CLAUDE.md +194 -0
- package/lib/module/components/Card/index.js +64 -17
- package/lib/module/components/Card/index.js.map +1 -1
- package/lib/module/components/Card/styles.js +27 -4
- package/lib/module/components/Card/styles.js.map +1 -1
- package/lib/module/components/Checkbox/index.js +75 -52
- package/lib/module/components/Checkbox/index.js.map +1 -1
- package/lib/module/components/Checkbox/styles.js +43 -48
- package/lib/module/components/Checkbox/styles.js.map +1 -1
- package/lib/module/components/Chip/index.js +98 -21
- package/lib/module/components/Chip/index.js.map +1 -1
- package/lib/module/components/Chip/styles.js +177 -20
- package/lib/module/components/Chip/styles.js.map +1 -1
- package/lib/module/components/CurrencyInput/index.js +154 -0
- package/lib/module/components/CurrencyInput/index.js.map +1 -0
- package/lib/module/components/CurrencyInput/styles.js +27 -0
- package/lib/module/components/CurrencyInput/styles.js.map +1 -0
- package/lib/module/components/Dialog/index.js +147 -72
- package/lib/module/components/Dialog/index.js.map +1 -1
- package/lib/module/components/Dialog/styles.js +60 -14
- package/lib/module/components/Dialog/styles.js.map +1 -1
- package/lib/module/components/Divider/index.js +94 -0
- package/lib/module/components/Divider/index.js.map +1 -0
- package/lib/module/components/Divider/styles.js +71 -0
- package/lib/module/components/Divider/styles.js.map +1 -0
- package/lib/module/components/Field/index.js +81 -32
- package/lib/module/components/Field/index.js.map +1 -1
- package/lib/module/components/Field/styles.js +4 -4
- package/lib/module/components/Field/styles.js.map +1 -1
- package/lib/module/components/Form/index.js +7 -14
- package/lib/module/components/Form/index.js.map +1 -1
- package/lib/module/components/Heading/styles.js +1 -1
- package/lib/module/components/Heading/styles.js.map +1 -1
- package/lib/module/components/Icon/index.js +12 -5
- package/lib/module/components/Icon/index.js.map +1 -1
- package/lib/module/components/IconButton/index.js +12 -35
- package/lib/module/components/IconButton/index.js.map +1 -1
- package/lib/module/components/IconButton/styles.js +135 -10
- package/lib/module/components/IconButton/styles.js.map +1 -1
- package/lib/module/components/Input/index.js +53 -23
- package/lib/module/components/Input/index.js.map +1 -1
- package/lib/module/components/Input/styles.js +18 -6
- package/lib/module/components/Input/styles.js.map +1 -1
- package/lib/module/components/Link/index.js +38 -11
- package/lib/module/components/Link/index.js.map +1 -1
- package/lib/module/components/Link/styles.js +55 -6
- package/lib/module/components/Link/styles.js.map +1 -1
- package/lib/module/components/ListItem/index.js +137 -84
- package/lib/module/components/ListItem/index.js.map +1 -1
- package/lib/module/components/ListItem/styles.js +30 -58
- package/lib/module/components/ListItem/styles.js.map +1 -1
- package/lib/module/components/OtpInput/index.js +94 -28
- package/lib/module/components/OtpInput/index.js.map +1 -1
- package/lib/module/components/ProgressBar/index.js +9 -14
- package/lib/module/components/ProgressBar/index.js.map +1 -1
- package/lib/module/components/ProgressSegmented/index.js +25 -11
- package/lib/module/components/ProgressSegmented/index.js.map +1 -1
- package/lib/module/components/QuickActionButton/index.js +129 -0
- package/lib/module/components/QuickActionButton/index.js.map +1 -0
- package/lib/module/components/QuickActionButton/styles.js +13 -0
- package/lib/module/components/QuickActionButton/styles.js.map +1 -0
- package/lib/module/components/Radio/index.js +161 -0
- package/lib/module/components/Radio/index.js.map +1 -0
- package/lib/module/components/Radio/styles.js +27 -0
- package/lib/module/components/Radio/styles.js.map +1 -0
- package/lib/module/components/ScopedTheme/index.js +19 -0
- package/lib/module/components/ScopedTheme/index.js.map +1 -0
- package/lib/module/components/Select/index.js +117 -45
- package/lib/module/components/Select/index.js.map +1 -1
- package/lib/module/components/Select/styles.js +24 -21
- package/lib/module/components/Select/styles.js.map +1 -1
- package/lib/module/components/Skeleton/index.js +32 -0
- package/lib/module/components/Skeleton/index.js.map +1 -0
- package/lib/module/components/Skeleton/styles.js +5 -0
- package/lib/module/components/Skeleton/styles.js.map +1 -0
- package/lib/module/components/Switch/BaseSwitch.js +24 -14
- package/lib/module/components/Switch/BaseSwitch.js.map +1 -1
- package/lib/module/components/Switch/BaseSwitch.web.js +26 -22
- package/lib/module/components/Switch/BaseSwitch.web.js.map +1 -1
- package/lib/module/components/Switch/index.js +35 -4
- package/lib/module/components/Switch/index.js.map +1 -1
- package/lib/module/components/Text/styles.js +2 -2
- package/lib/module/components/Text/styles.js.map +1 -1
- package/lib/module/components/Tile/index.js +315 -0
- package/lib/module/components/Tile/index.js.map +1 -0
- package/lib/module/components/Tile/styles.js +48 -0
- package/lib/module/components/Tile/styles.js.map +1 -0
- package/lib/module/components/Toast/animation.js +324 -0
- package/lib/module/components/Toast/animation.js.map +1 -0
- package/lib/module/components/Toast/hooks.js +61 -0
- package/lib/module/components/Toast/hooks.js.map +1 -0
- package/lib/module/components/Toast/index.js +487 -0
- package/lib/module/components/Toast/index.js.map +1 -0
- package/lib/module/components/Toast/styles.js +138 -0
- package/lib/module/components/Toast/styles.js.map +1 -0
- package/lib/module/components/Toast/types.js +4 -0
- package/lib/module/components/Toast/types.js.map +1 -0
- package/lib/module/components/VirtualizedList/index.js.map +1 -1
- package/lib/module/components/index.js +9 -0
- package/lib/module/components/index.js.map +1 -1
- package/lib/module/figma/Alert.Button.figma.js +25 -0
- package/lib/module/figma/Alert.Button.figma.js.map +1 -0
- package/lib/module/figma/Alert.Close.figma.js +18 -0
- package/lib/module/figma/Alert.Close.figma.js.map +1 -0
- package/lib/module/figma/Alert.Description.figma.js +14 -0
- package/lib/module/figma/Alert.Description.figma.js.map +1 -0
- package/lib/module/figma/Alert.Title.figma.js +14 -0
- package/lib/module/figma/Alert.Title.figma.js.map +1 -0
- package/lib/module/figma/Alert.figma.js +36 -0
- package/lib/module/figma/Alert.figma.js.map +1 -0
- package/lib/module/figma/AlertDialog.Description.figma.js +14 -0
- package/lib/module/figma/AlertDialog.Description.figma.js.map +1 -0
- package/lib/module/figma/AlertDialog.Footer.figma.js +35 -0
- package/lib/module/figma/AlertDialog.Footer.figma.js.map +1 -0
- package/lib/module/figma/AlertDialog.Header.figma.js +22 -0
- package/lib/module/figma/AlertDialog.Header.figma.js.map +1 -0
- package/lib/module/figma/AlertDialog.Text.figma.js +14 -0
- package/lib/module/figma/AlertDialog.Text.figma.js.map +1 -0
- package/lib/module/figma/AlertDialog.Title.figma.js +21 -0
- package/lib/module/figma/AlertDialog.Title.figma.js.map +1 -0
- package/lib/module/figma/AlertDialog.figma.js +37 -0
- package/lib/module/figma/AlertDialog.figma.js.map +1 -0
- package/lib/module/figma/Avatar.figma.js +51 -0
- package/lib/module/figma/Avatar.figma.js.map +1 -0
- package/lib/module/figma/Button.figma.js +60 -0
- package/lib/module/figma/Button.figma.js.map +1 -0
- package/lib/module/figma/CLAUDE.md +30 -0
- package/lib/module/figma/Card.Header.figma.js +22 -0
- package/lib/module/figma/Card.Header.figma.js.map +1 -0
- package/lib/module/figma/Card.figma.js +36 -0
- package/lib/module/figma/Card.figma.js.map +1 -0
- package/lib/module/figma/Checkbox.figma.js +49 -0
- package/lib/module/figma/Checkbox.figma.js.map +1 -0
- package/lib/module/figma/Chip.figma.js +62 -0
- package/lib/module/figma/Chip.figma.js.map +1 -0
- package/lib/module/figma/Dialog.Description.figma.js +14 -0
- package/lib/module/figma/Dialog.Description.figma.js.map +1 -0
- package/lib/module/figma/Dialog.Footer.figma.js +24 -0
- package/lib/module/figma/Dialog.Footer.figma.js.map +1 -0
- package/lib/module/figma/Dialog.Header.figma.js +23 -0
- package/lib/module/figma/Dialog.Header.figma.js.map +1 -0
- package/lib/module/figma/Dialog.Text.figma.js +14 -0
- package/lib/module/figma/Dialog.Text.figma.js.map +1 -0
- package/lib/module/figma/Dialog.Title.figma.js +21 -0
- package/lib/module/figma/Dialog.Title.figma.js.map +1 -0
- package/lib/module/figma/Dialog.figma.js +45 -0
- package/lib/module/figma/Dialog.figma.js.map +1 -0
- package/lib/module/figma/Divider.figma.js +26 -0
- package/lib/module/figma/Divider.figma.js.map +1 -0
- package/lib/module/figma/Field.Input.figma.js +51 -0
- package/lib/module/figma/Field.Input.figma.js.map +1 -0
- package/lib/module/figma/Field.Select.figma.js +51 -0
- package/lib/module/figma/Field.Select.figma.js.map +1 -0
- package/lib/module/figma/Heading.figma.js +24 -0
- package/lib/module/figma/Heading.figma.js.map +1 -0
- package/lib/module/figma/Icon.figma.js +14 -0
- package/lib/module/figma/Icon.figma.js.map +1 -0
- package/lib/module/figma/IconButton.figma.js +41 -0
- package/lib/module/figma/IconButton.figma.js.map +1 -0
- package/lib/module/figma/Input.figma.js +46 -0
- package/lib/module/figma/Input.figma.js.map +1 -0
- package/lib/module/figma/Link.figma.js +24 -0
- package/lib/module/figma/Link.figma.js.map +1 -0
- package/lib/module/figma/ListItem.Description.figma.js +17 -0
- package/lib/module/figma/ListItem.Description.figma.js.map +1 -0
- package/lib/module/figma/ListItem.LeadingSlot.figma.js +18 -0
- package/lib/module/figma/ListItem.LeadingSlot.figma.js.map +1 -0
- package/lib/module/figma/ListItem.Meta.figma.js +17 -0
- package/lib/module/figma/ListItem.Meta.figma.js.map +1 -0
- package/lib/module/figma/ListItem.SectionHeader.figma.js +18 -0
- package/lib/module/figma/ListItem.SectionHeader.figma.js.map +1 -0
- package/lib/module/figma/ListItem.Title.figma.js +17 -0
- package/lib/module/figma/ListItem.Title.figma.js.map +1 -0
- package/lib/module/figma/ListItem.TrailingSlot.figma.js +18 -0
- package/lib/module/figma/ListItem.TrailingSlot.figma.js.map +1 -0
- package/lib/module/figma/ListItem.figma.js +44 -0
- package/lib/module/figma/ListItem.figma.js.map +1 -0
- package/lib/module/figma/ProgressSegmented.figma.js +33 -0
- package/lib/module/figma/ProgressSegmented.figma.js.map +1 -0
- package/lib/module/figma/QuickActionButton.figma.js +32 -0
- package/lib/module/figma/QuickActionButton.figma.js.map +1 -0
- package/lib/module/figma/Radio.figma.js +34 -0
- package/lib/module/figma/Radio.figma.js.map +1 -0
- package/lib/module/figma/Select.figma.js +47 -0
- package/lib/module/figma/Select.figma.js.map +1 -0
- package/lib/module/figma/Text.figma.js +26 -0
- package/lib/module/figma/Text.figma.js.map +1 -0
- package/lib/module/figma/icons.figma.batch.js +22 -0
- package/lib/module/figma/icons.figma.batch.js.map +1 -0
- package/lib/module/figma/icons.figma.batch.json +17705 -0
- package/lib/module/globals.d.js +2 -0
- package/lib/module/globals.d.js.map +1 -0
- package/lib/module/hooks/index.js +4 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/useForgeBottomTabScreenOptions.js +242 -0
- package/lib/module/hooks/useForgeBottomTabScreenOptions.js.map +1 -0
- package/lib/module/index.js +3 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/metro/withCdxMetroConfig.js +3 -17
- package/lib/module/metro/withCdxMetroConfig.js.map +1 -1
- package/lib/module/metro/withForgeMetroConfig.js +20 -0
- package/lib/module/metro/withForgeMetroConfig.js.map +1 -0
- package/lib/module/navigation/forgeTabIcon.js +39 -0
- package/lib/module/navigation/forgeTabIcon.js.map +1 -0
- package/lib/module/navigation/forgeTabIcon.native.js +31 -0
- package/lib/module/navigation/forgeTabIcon.native.js.map +1 -0
- package/lib/module/navigation/index.js +4 -0
- package/lib/module/navigation/index.js.map +1 -0
- package/lib/module/navigation/types.js +36 -0
- package/lib/module/navigation/types.js.map +1 -0
- package/lib/module/providers/animation-settings/index.js +4 -0
- package/lib/module/providers/animation-settings/index.js.map +1 -0
- package/lib/module/providers/animation-settings/provider.js +52 -0
- package/lib/module/providers/animation-settings/provider.js.map +1 -0
- package/lib/module/providers/animation-settings/types.js +4 -0
- package/lib/module/providers/animation-settings/types.js.map +1 -0
- package/lib/module/providers/forge-design/index.js +5 -0
- package/lib/module/providers/forge-design/index.js.map +1 -0
- package/lib/module/providers/forge-design/provider.js +66 -0
- package/lib/module/providers/forge-design/provider.js.map +1 -0
- package/lib/module/providers/forge-design/types.js +4 -0
- package/lib/module/providers/forge-design/types.js.map +1 -0
- package/lib/module/providers/text-component/index.js +5 -0
- package/lib/module/providers/text-component/index.js.map +1 -0
- package/lib/module/providers/text-component/provider.js +6 -0
- package/lib/module/providers/text-component/provider.js.map +1 -0
- package/lib/module/providers/text-component/types.js +4 -0
- package/lib/module/providers/text-component/types.js.map +1 -0
- package/lib/module/providers/toast/index.js +6 -0
- package/lib/module/providers/toast/index.js.map +1 -0
- package/lib/module/providers/toast/insets-container.js +162 -0
- package/lib/module/providers/toast/insets-container.js.map +1 -0
- package/lib/module/providers/toast/lifecycle.context.js +32 -0
- package/lib/module/providers/toast/lifecycle.context.js.map +1 -0
- package/lib/module/providers/toast/provider.js +503 -0
- package/lib/module/providers/toast/provider.js.map +1 -0
- package/lib/module/providers/toast/reducer.js +42 -0
- package/lib/module/providers/toast/reducer.js.map +1 -0
- package/lib/module/providers/toast/toast-config.context.js +25 -0
- package/lib/module/providers/toast/toast-config.context.js.map +1 -0
- package/lib/module/providers/toast/toast-item-renderer.js +39 -0
- package/lib/module/providers/toast/toast-item-renderer.js.map +1 -0
- package/lib/module/providers/toast/types.js +4 -0
- package/lib/module/providers/toast/types.js.map +1 -0
- package/lib/module/styles/primitives.js +43 -6
- package/lib/module/styles/primitives.js.map +1 -1
- package/lib/module/styles.css +0 -5
- package/lib/module/utils/positionToDataIcon.js +38 -0
- package/lib/module/utils/positionToDataIcon.js.map +1 -0
- package/lib/typescript/animation/hooks/index.d.ts +2 -0
- package/lib/typescript/animation/hooks/index.d.ts.map +1 -0
- package/lib/typescript/animation/hooks/useCombinedAnimationDisabledState.d.ts +22 -0
- package/lib/typescript/animation/hooks/useCombinedAnimationDisabledState.d.ts.map +1 -0
- package/lib/typescript/animation/index.d.ts +4 -0
- package/lib/typescript/animation/index.d.ts.map +1 -0
- package/lib/typescript/animation/types.d.ts +105 -0
- package/lib/typescript/animation/types.d.ts.map +1 -0
- package/lib/typescript/animation/utils.d.ts +120 -0
- package/lib/typescript/animation/utils.d.ts.map +1 -0
- package/lib/typescript/components/Alert/index.d.ts +67 -0
- package/lib/typescript/components/Alert/index.d.ts.map +1 -0
- package/lib/typescript/components/Alert/styles.d.ts +19 -0
- package/lib/typescript/components/Alert/styles.d.ts.map +1 -0
- package/lib/typescript/components/AlertDialog/index.d.ts +3 -2
- package/lib/typescript/components/AlertDialog/index.d.ts.map +1 -1
- package/lib/typescript/components/Avatar/index.d.ts +6 -2
- package/lib/typescript/components/Avatar/index.d.ts.map +1 -1
- package/lib/typescript/components/Avatar/styles.d.ts +4 -4
- package/lib/typescript/components/Avatar/styles.d.ts.map +1 -1
- package/lib/typescript/components/BottomSheet/index.d.ts.map +1 -1
- package/lib/typescript/components/BottomSheet/styles.d.ts +0 -5
- package/lib/typescript/components/BottomSheet/styles.d.ts.map +1 -1
- package/lib/typescript/components/Button/index.d.ts +44 -9
- package/lib/typescript/components/Button/index.d.ts.map +1 -1
- package/lib/typescript/components/Button/styles.d.ts +10 -7
- package/lib/typescript/components/Button/styles.d.ts.map +1 -1
- package/lib/typescript/components/Card/index.d.ts +8 -3
- package/lib/typescript/components/Card/index.d.ts.map +1 -1
- package/lib/typescript/components/Card/styles.d.ts +13 -3
- package/lib/typescript/components/Card/styles.d.ts.map +1 -1
- package/lib/typescript/components/Checkbox/index.d.ts +4 -3
- package/lib/typescript/components/Checkbox/index.d.ts.map +1 -1
- package/lib/typescript/components/Checkbox/styles.d.ts +4 -14
- package/lib/typescript/components/Checkbox/styles.d.ts.map +1 -1
- package/lib/typescript/components/Chip/index.d.ts +31 -8
- package/lib/typescript/components/Chip/index.d.ts.map +1 -1
- package/lib/typescript/components/Chip/styles.d.ts +12 -4
- package/lib/typescript/components/Chip/styles.d.ts.map +1 -1
- package/lib/typescript/components/CurrencyInput/index.d.ts +15 -0
- package/lib/typescript/components/CurrencyInput/index.d.ts.map +1 -0
- package/lib/typescript/components/CurrencyInput/styles.d.ts +9 -0
- package/lib/typescript/components/CurrencyInput/styles.d.ts.map +1 -0
- package/lib/typescript/components/Dialog/index.d.ts +25 -13
- package/lib/typescript/components/Dialog/index.d.ts.map +1 -1
- package/lib/typescript/components/Dialog/styles.d.ts +16 -5
- package/lib/typescript/components/Dialog/styles.d.ts.map +1 -1
- package/lib/typescript/components/Divider/index.d.ts +21 -0
- package/lib/typescript/components/Divider/index.d.ts.map +1 -0
- package/lib/typescript/components/Divider/styles.d.ts +12 -0
- package/lib/typescript/components/Divider/styles.d.ts.map +1 -0
- package/lib/typescript/components/Field/index.d.ts +14 -7
- package/lib/typescript/components/Field/index.d.ts.map +1 -1
- package/lib/typescript/components/Field/styles.d.ts.map +1 -1
- package/lib/typescript/components/Form/index.d.ts +4 -4
- package/lib/typescript/components/Form/index.d.ts.map +1 -1
- package/lib/typescript/components/Heading/styles.d.ts +1 -1
- package/lib/typescript/components/Icon/index.d.ts +5 -5
- package/lib/typescript/components/Icon/index.d.ts.map +1 -1
- package/lib/typescript/components/IconButton/index.d.ts +3 -3
- package/lib/typescript/components/IconButton/index.d.ts.map +1 -1
- package/lib/typescript/components/IconButton/styles.d.ts +6 -2
- package/lib/typescript/components/IconButton/styles.d.ts.map +1 -1
- package/lib/typescript/components/Input/index.d.ts +11 -3
- package/lib/typescript/components/Input/index.d.ts.map +1 -1
- package/lib/typescript/components/Input/styles.d.ts.map +1 -1
- package/lib/typescript/components/Link/index.d.ts +4 -2
- package/lib/typescript/components/Link/index.d.ts.map +1 -1
- package/lib/typescript/components/Link/styles.d.ts +9 -2
- package/lib/typescript/components/Link/styles.d.ts.map +1 -1
- package/lib/typescript/components/ListItem/index.d.ts +28 -6
- package/lib/typescript/components/ListItem/index.d.ts.map +1 -1
- package/lib/typescript/components/ListItem/styles.d.ts +3 -10
- package/lib/typescript/components/ListItem/styles.d.ts.map +1 -1
- package/lib/typescript/components/OtpInput/index.d.ts +1 -1
- package/lib/typescript/components/OtpInput/index.d.ts.map +1 -1
- package/lib/typescript/components/ProgressBar/index.d.ts +4 -4
- package/lib/typescript/components/ProgressBar/index.d.ts.map +1 -1
- package/lib/typescript/components/ProgressSegmented/index.d.ts +14 -3
- package/lib/typescript/components/ProgressSegmented/index.d.ts.map +1 -1
- package/lib/typescript/components/QuickActionButton/index.d.ts +41 -0
- package/lib/typescript/components/QuickActionButton/index.d.ts.map +1 -0
- package/lib/typescript/components/QuickActionButton/styles.d.ts +7 -0
- package/lib/typescript/components/QuickActionButton/styles.d.ts.map +1 -0
- package/lib/typescript/components/Radio/index.d.ts +44 -0
- package/lib/typescript/components/Radio/index.d.ts.map +1 -0
- package/lib/typescript/components/Radio/styles.d.ts +8 -0
- package/lib/typescript/components/Radio/styles.d.ts.map +1 -0
- package/lib/typescript/components/ScopedTheme/index.d.ts +16 -0
- package/lib/typescript/components/ScopedTheme/index.d.ts.map +1 -0
- package/lib/typescript/components/Select/index.d.ts +35 -2
- package/lib/typescript/components/Select/index.d.ts.map +1 -1
- package/lib/typescript/components/Select/styles.d.ts.map +1 -1
- package/lib/typescript/components/Skeleton/index.d.ts +9 -0
- package/lib/typescript/components/Skeleton/index.d.ts.map +1 -0
- package/lib/typescript/components/Skeleton/styles.d.ts +4 -0
- package/lib/typescript/components/Skeleton/styles.d.ts.map +1 -0
- package/lib/typescript/components/Stack/styles.d.ts +2 -2
- package/lib/typescript/components/Switch/BaseSwitch.d.ts +12 -5
- package/lib/typescript/components/Switch/BaseSwitch.d.ts.map +1 -1
- package/lib/typescript/components/Switch/BaseSwitch.web.d.ts +11 -5
- package/lib/typescript/components/Switch/BaseSwitch.web.d.ts.map +1 -1
- package/lib/typescript/components/Switch/index.d.ts +5 -1
- package/lib/typescript/components/Switch/index.d.ts.map +1 -1
- package/lib/typescript/components/Text/styles.d.ts +1 -1
- package/lib/typescript/components/Tile/index.d.ts +76 -0
- package/lib/typescript/components/Tile/index.d.ts.map +1 -0
- package/lib/typescript/components/Tile/styles.d.ts +18 -0
- package/lib/typescript/components/Tile/styles.d.ts.map +1 -0
- package/lib/typescript/components/Toast/animation.d.ts +21 -0
- package/lib/typescript/components/Toast/animation.d.ts.map +1 -0
- package/lib/typescript/components/Toast/hooks.d.ts +17 -0
- package/lib/typescript/components/Toast/hooks.d.ts.map +1 -0
- package/lib/typescript/components/Toast/index.d.ts +28 -0
- package/lib/typescript/components/Toast/index.d.ts.map +1 -0
- package/lib/typescript/components/Toast/styles.d.ts +73 -0
- package/lib/typescript/components/Toast/styles.d.ts.map +1 -0
- package/lib/typescript/components/Toast/types.d.ts +303 -0
- package/lib/typescript/components/Toast/types.d.ts.map +1 -0
- package/lib/typescript/components/VirtualizedList/index.d.ts +2 -1
- package/lib/typescript/components/VirtualizedList/index.d.ts.map +1 -1
- package/lib/typescript/components/index.d.ts +9 -0
- package/lib/typescript/components/index.d.ts.map +1 -1
- package/lib/typescript/figma/Alert.Button.figma.d.ts +11 -0
- package/lib/typescript/figma/Alert.Button.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Alert.Close.figma.d.ts +11 -0
- package/lib/typescript/figma/Alert.Close.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Alert.Description.figma.d.ts +8 -0
- package/lib/typescript/figma/Alert.Description.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Alert.Title.figma.d.ts +8 -0
- package/lib/typescript/figma/Alert.Title.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Alert.figma.d.ts +8 -0
- package/lib/typescript/figma/Alert.figma.d.ts.map +1 -0
- package/lib/typescript/figma/AlertDialog.Description.figma.d.ts +8 -0
- package/lib/typescript/figma/AlertDialog.Description.figma.d.ts.map +1 -0
- package/lib/typescript/figma/AlertDialog.Footer.figma.d.ts +8 -0
- package/lib/typescript/figma/AlertDialog.Footer.figma.d.ts.map +1 -0
- package/lib/typescript/figma/AlertDialog.Header.figma.d.ts +8 -0
- package/lib/typescript/figma/AlertDialog.Header.figma.d.ts.map +1 -0
- package/lib/typescript/figma/AlertDialog.Text.figma.d.ts +8 -0
- package/lib/typescript/figma/AlertDialog.Text.figma.d.ts.map +1 -0
- package/lib/typescript/figma/AlertDialog.Title.figma.d.ts +8 -0
- package/lib/typescript/figma/AlertDialog.Title.figma.d.ts.map +1 -0
- package/lib/typescript/figma/AlertDialog.figma.d.ts +8 -0
- package/lib/typescript/figma/AlertDialog.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Avatar.figma.d.ts +11 -0
- package/lib/typescript/figma/Avatar.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Button.figma.d.ts +8 -0
- package/lib/typescript/figma/Button.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Card.Header.figma.d.ts +8 -0
- package/lib/typescript/figma/Card.Header.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Card.figma.d.ts +8 -0
- package/lib/typescript/figma/Card.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Checkbox.figma.d.ts +8 -0
- package/lib/typescript/figma/Checkbox.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Chip.figma.d.ts +8 -0
- package/lib/typescript/figma/Chip.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Dialog.Description.figma.d.ts +8 -0
- package/lib/typescript/figma/Dialog.Description.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Dialog.Footer.figma.d.ts +8 -0
- package/lib/typescript/figma/Dialog.Footer.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Dialog.Header.figma.d.ts +8 -0
- package/lib/typescript/figma/Dialog.Header.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Dialog.Text.figma.d.ts +8 -0
- package/lib/typescript/figma/Dialog.Text.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Dialog.Title.figma.d.ts +8 -0
- package/lib/typescript/figma/Dialog.Title.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Dialog.figma.d.ts +8 -0
- package/lib/typescript/figma/Dialog.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Divider.figma.d.ts +8 -0
- package/lib/typescript/figma/Divider.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Field.Input.figma.d.ts +8 -0
- package/lib/typescript/figma/Field.Input.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Field.Select.figma.d.ts +8 -0
- package/lib/typescript/figma/Field.Select.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Heading.figma.d.ts +8 -0
- package/lib/typescript/figma/Heading.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Icon.figma.d.ts +8 -0
- package/lib/typescript/figma/Icon.figma.d.ts.map +1 -0
- package/lib/typescript/figma/IconButton.figma.d.ts +8 -0
- package/lib/typescript/figma/IconButton.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Input.figma.d.ts +8 -0
- package/lib/typescript/figma/Input.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Link.figma.d.ts +8 -0
- package/lib/typescript/figma/Link.figma.d.ts.map +1 -0
- package/lib/typescript/figma/ListItem.Description.figma.d.ts +11 -0
- package/lib/typescript/figma/ListItem.Description.figma.d.ts.map +1 -0
- package/lib/typescript/figma/ListItem.LeadingSlot.figma.d.ts +8 -0
- package/lib/typescript/figma/ListItem.LeadingSlot.figma.d.ts.map +1 -0
- package/lib/typescript/figma/ListItem.Meta.figma.d.ts +11 -0
- package/lib/typescript/figma/ListItem.Meta.figma.d.ts.map +1 -0
- package/lib/typescript/figma/ListItem.SectionHeader.figma.d.ts +8 -0
- package/lib/typescript/figma/ListItem.SectionHeader.figma.d.ts.map +1 -0
- package/lib/typescript/figma/ListItem.Title.figma.d.ts +11 -0
- package/lib/typescript/figma/ListItem.Title.figma.d.ts.map +1 -0
- package/lib/typescript/figma/ListItem.TrailingSlot.figma.d.ts +8 -0
- package/lib/typescript/figma/ListItem.TrailingSlot.figma.d.ts.map +1 -0
- package/lib/typescript/figma/ListItem.figma.d.ts +8 -0
- package/lib/typescript/figma/ListItem.figma.d.ts.map +1 -0
- package/lib/typescript/figma/ProgressSegmented.figma.d.ts +8 -0
- package/lib/typescript/figma/ProgressSegmented.figma.d.ts.map +1 -0
- package/lib/typescript/figma/QuickActionButton.figma.d.ts +8 -0
- package/lib/typescript/figma/QuickActionButton.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Radio.figma.d.ts +8 -0
- package/lib/typescript/figma/Radio.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Select.figma.d.ts +8 -0
- package/lib/typescript/figma/Select.figma.d.ts.map +1 -0
- package/lib/typescript/figma/Text.figma.d.ts +11 -0
- package/lib/typescript/figma/Text.figma.d.ts.map +1 -0
- package/lib/typescript/figma/icons.figma.batch.d.ts +14 -0
- package/lib/typescript/figma/icons.figma.batch.d.ts.map +1 -0
- package/lib/typescript/hooks/index.d.ts +2 -0
- package/lib/typescript/hooks/index.d.ts.map +1 -0
- package/lib/typescript/hooks/useForgeBottomTabScreenOptions.d.ts +137 -0
- package/lib/typescript/hooks/useForgeBottomTabScreenOptions.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +4 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/metro/withCdxMetroConfig.d.ts +4 -18
- package/lib/typescript/metro/withCdxMetroConfig.d.ts.map +1 -1
- package/lib/typescript/metro/withForgeMetroConfig.d.ts +19 -0
- package/lib/typescript/metro/withForgeMetroConfig.d.ts.map +1 -0
- package/lib/typescript/navigation/forgeTabIcon.d.ts +27 -0
- package/lib/typescript/navigation/forgeTabIcon.d.ts.map +1 -0
- package/lib/typescript/navigation/forgeTabIcon.native.d.ts +15 -0
- package/lib/typescript/navigation/forgeTabIcon.native.d.ts.map +1 -0
- package/lib/typescript/navigation/index.d.ts +4 -0
- package/lib/typescript/navigation/index.d.ts.map +1 -0
- package/lib/typescript/navigation/types.d.ts +37 -0
- package/lib/typescript/navigation/types.d.ts.map +1 -0
- package/lib/typescript/providers/animation-settings/index.d.ts +3 -0
- package/lib/typescript/providers/animation-settings/index.d.ts.map +1 -0
- package/lib/typescript/providers/animation-settings/provider.d.ts +28 -0
- package/lib/typescript/providers/animation-settings/provider.d.ts.map +1 -0
- package/lib/typescript/providers/animation-settings/types.d.ts +35 -0
- package/lib/typescript/providers/animation-settings/types.d.ts.map +1 -0
- package/lib/typescript/providers/forge-design/index.d.ts +3 -0
- package/lib/typescript/providers/forge-design/index.d.ts.map +1 -0
- package/lib/typescript/providers/forge-design/provider.d.ts +24 -0
- package/lib/typescript/providers/forge-design/provider.d.ts.map +1 -0
- package/lib/typescript/providers/forge-design/types.d.ts +82 -0
- package/lib/typescript/providers/forge-design/types.d.ts.map +1 -0
- package/lib/typescript/providers/text-component/index.d.ts +3 -0
- package/lib/typescript/providers/text-component/index.d.ts.map +1 -0
- package/lib/typescript/providers/text-component/provider.d.ts +7 -0
- package/lib/typescript/providers/text-component/provider.d.ts.map +1 -0
- package/lib/typescript/providers/text-component/types.d.ts +51 -0
- package/lib/typescript/providers/text-component/types.d.ts.map +1 -0
- package/lib/typescript/providers/toast/index.d.ts +5 -0
- package/lib/typescript/providers/toast/index.d.ts.map +1 -0
- package/lib/typescript/providers/toast/insets-container.d.ts +72 -0
- package/lib/typescript/providers/toast/insets-container.d.ts.map +1 -0
- package/lib/typescript/providers/toast/lifecycle.context.d.ts +32 -0
- package/lib/typescript/providers/toast/lifecycle.context.d.ts.map +1 -0
- package/lib/typescript/providers/toast/provider.d.ts +32 -0
- package/lib/typescript/providers/toast/provider.d.ts.map +1 -0
- package/lib/typescript/providers/toast/reducer.d.ts +14 -0
- package/lib/typescript/providers/toast/reducer.d.ts.map +1 -0
- package/lib/typescript/providers/toast/toast-config.context.d.ts +20 -0
- package/lib/typescript/providers/toast/toast-config.context.d.ts.map +1 -0
- package/lib/typescript/providers/toast/toast-item-renderer.d.ts +7 -0
- package/lib/typescript/providers/toast/toast-item-renderer.d.ts.map +1 -0
- package/lib/typescript/providers/toast/types.d.ts +422 -0
- package/lib/typescript/providers/toast/types.d.ts.map +1 -0
- package/lib/typescript/styles/primitives.d.ts +38 -0
- package/lib/typescript/styles/primitives.d.ts.map +1 -1
- package/lib/typescript/utils/positionToDataIcon.d.ts +29 -0
- package/lib/typescript/utils/positionToDataIcon.d.ts.map +1 -0
- package/package.json +12 -11
- package/src/animation/hooks/index.ts +1 -0
- package/src/animation/hooks/useCombinedAnimationDisabledState.ts +46 -0
- package/src/animation/index.ts +3 -0
- package/src/animation/types.ts +128 -0
- package/src/animation/utils.ts +249 -0
- package/src/components/Alert/index.tsx +318 -0
- package/src/components/Alert/styles.ts +88 -0
- package/src/components/AlertDialog/index.tsx +21 -20
- package/src/components/Avatar/index.tsx +135 -45
- package/src/components/Avatar/styles.ts +49 -34
- package/src/components/BottomSheet/index.tsx +109 -46
- package/src/components/BottomSheet/styles.ts +6 -50
- package/src/components/Button/index.tsx +248 -47
- package/src/components/Button/styles.ts +78 -37
- package/src/components/CLAUDE.md +194 -0
- package/src/components/Card/index.tsx +84 -29
- package/src/components/Card/styles.ts +42 -15
- package/src/components/Checkbox/index.tsx +101 -51
- package/src/components/Checkbox/styles.ts +84 -86
- package/src/components/Chip/index.tsx +136 -32
- package/src/components/Chip/styles.ts +220 -18
- package/src/components/CurrencyInput/index.tsx +192 -0
- package/src/components/CurrencyInput/styles.ts +44 -0
- package/src/components/Dialog/index.tsx +199 -93
- package/src/components/Dialog/styles.ts +72 -30
- package/src/components/Divider/index.tsx +94 -0
- package/src/components/Divider/styles.ts +86 -0
- package/src/components/Field/index.tsx +121 -50
- package/src/components/Field/styles.ts +5 -4
- package/src/components/Form/index.tsx +18 -14
- package/src/components/Heading/styles.ts +1 -1
- package/src/components/Icon/index.tsx +14 -8
- package/src/components/IconButton/index.tsx +13 -36
- package/src/components/IconButton/styles.ts +136 -10
- package/src/components/Input/index.tsx +75 -32
- package/src/components/Input/styles.ts +32 -12
- package/src/components/Link/index.tsx +57 -18
- package/src/components/Link/styles.ts +49 -9
- package/src/components/ListItem/index.tsx +157 -87
- package/src/components/ListItem/styles.ts +50 -81
- package/src/components/OtpInput/index.tsx +126 -43
- package/src/components/ProgressBar/index.tsx +11 -16
- package/src/components/ProgressSegmented/index.tsx +45 -14
- package/src/components/QuickActionButton/index.tsx +161 -0
- package/src/components/QuickActionButton/styles.ts +42 -0
- package/src/components/Radio/index.tsx +214 -0
- package/src/components/Radio/styles.ts +59 -0
- package/src/components/ScopedTheme/index.tsx +17 -0
- package/src/components/Select/index.tsx +175 -55
- package/src/components/Select/styles.ts +59 -51
- package/src/components/Skeleton/index.tsx +42 -0
- package/src/components/Skeleton/styles.ts +5 -0
- package/src/components/Switch/BaseSwitch.tsx +38 -16
- package/src/components/Switch/BaseSwitch.web.tsx +28 -35
- package/src/components/Switch/index.tsx +51 -4
- package/src/components/Text/styles.ts +2 -2
- package/src/components/Tile/index.tsx +347 -0
- package/src/components/Tile/styles.ts +82 -0
- package/src/components/Toast/animation.ts +387 -0
- package/src/components/Toast/hooks.ts +92 -0
- package/src/components/Toast/index.tsx +520 -0
- package/src/components/Toast/styles.ts +186 -0
- package/src/components/Toast/types.ts +332 -0
- package/src/components/VirtualizedList/index.tsx +11 -1
- package/src/components/index.ts +9 -0
- package/src/globals.d.ts +1 -0
- package/src/hooks/index.ts +5 -0
- package/src/hooks/useForgeBottomTabScreenOptions.ts +245 -0
- package/src/index.ts +4 -0
- package/src/metro/withCdxMetroConfig.ts +4 -29
- package/src/metro/withForgeMetroConfig.ts +29 -0
- package/src/navigation/forgeTabIcon.native.ts +36 -0
- package/src/navigation/forgeTabIcon.ts +33 -0
- package/src/navigation/index.ts +3 -0
- package/src/navigation/types.ts +54 -0
- package/src/providers/animation-settings/index.ts +11 -0
- package/src/providers/animation-settings/provider.tsx +54 -0
- package/src/providers/animation-settings/types.ts +37 -0
- package/src/providers/forge-design/index.ts +2 -0
- package/src/providers/forge-design/provider.tsx +61 -0
- package/src/providers/forge-design/types.ts +84 -0
- package/src/providers/text-component/index.ts +2 -0
- package/src/providers/text-component/provider.tsx +7 -0
- package/src/providers/text-component/types.ts +52 -0
- package/src/providers/toast/index.ts +4 -0
- package/src/providers/toast/insets-container.tsx +232 -0
- package/src/providers/toast/lifecycle.context.tsx +37 -0
- package/src/providers/toast/provider.tsx +572 -0
- package/src/providers/toast/reducer.ts +40 -0
- package/src/providers/toast/toast-config.context.ts +25 -0
- package/src/providers/toast/toast-item-renderer.tsx +40 -0
- package/src/providers/toast/types.ts +431 -0
- package/src/styles/primitives.ts +43 -6
- package/src/styles.css +0 -5
- package/src/utils/positionToDataIcon.ts +34 -0
- package/lib/commonjs/components/Field/FieldLabel.js +0 -33
- package/lib/commonjs/components/Field/FieldLabel.js.map +0 -1
- package/lib/commonjs/components/Field/FieldLabel.web.js +0 -25
- package/lib/commonjs/components/Field/FieldLabel.web.js.map +0 -1
- package/lib/commonjs/components/Form/FormRoot.js +0 -25
- package/lib/commonjs/components/Form/FormRoot.js.map +0 -1
- package/lib/commonjs/components/Form/FormRoot.web.js +0 -17
- package/lib/commonjs/components/Form/FormRoot.web.js.map +0 -1
- package/lib/commonjs/components/Input/BaseInput.android.js +0 -20
- package/lib/commonjs/components/Input/BaseInput.android.js.map +0 -1
- package/lib/commonjs/components/Input/BaseInput.js +0 -13
- package/lib/commonjs/components/Input/BaseInput.js.map +0 -1
- package/lib/commonjs/components/Input/BaseInput.web.js +0 -50
- package/lib/commonjs/components/Input/BaseInput.web.js.map +0 -1
- package/lib/commonjs/components/Select/SelectTriggerHost.js +0 -10
- package/lib/commonjs/components/Select/SelectTriggerHost.js.map +0 -1
- package/lib/commonjs/components/Select/SelectTriggerHost.web.js +0 -121
- package/lib/commonjs/components/Select/SelectTriggerHost.web.js.map +0 -1
- package/lib/module/components/Field/FieldLabel.js +0 -29
- package/lib/module/components/Field/FieldLabel.js.map +0 -1
- package/lib/module/components/Field/FieldLabel.web.js +0 -20
- package/lib/module/components/Field/FieldLabel.web.js.map +0 -1
- package/lib/module/components/Form/FormRoot.js +0 -21
- package/lib/module/components/Form/FormRoot.js.map +0 -1
- package/lib/module/components/Form/FormRoot.web.js +0 -12
- package/lib/module/components/Form/FormRoot.web.js.map +0 -1
- package/lib/module/components/Input/BaseInput.android.js +0 -16
- package/lib/module/components/Input/BaseInput.android.js.map +0 -1
- package/lib/module/components/Input/BaseInput.js +0 -4
- package/lib/module/components/Input/BaseInput.js.map +0 -1
- package/lib/module/components/Input/BaseInput.web.js +0 -45
- package/lib/module/components/Input/BaseInput.web.js.map +0 -1
- package/lib/module/components/Select/SelectTriggerHost.js +0 -7
- package/lib/module/components/Select/SelectTriggerHost.js.map +0 -1
- package/lib/module/components/Select/SelectTriggerHost.web.js +0 -116
- package/lib/module/components/Select/SelectTriggerHost.web.js.map +0 -1
- package/lib/typescript/components/Field/FieldLabel.d.ts +0 -18
- package/lib/typescript/components/Field/FieldLabel.d.ts.map +0 -1
- package/lib/typescript/components/Field/FieldLabel.web.d.ts +0 -16
- package/lib/typescript/components/Field/FieldLabel.web.d.ts.map +0 -1
- package/lib/typescript/components/Form/FormRoot.d.ts +0 -14
- package/lib/typescript/components/Form/FormRoot.d.ts.map +0 -1
- package/lib/typescript/components/Form/FormRoot.web.d.ts +0 -10
- package/lib/typescript/components/Form/FormRoot.web.d.ts.map +0 -1
- package/lib/typescript/components/Input/BaseInput.android.d.ts +0 -3
- package/lib/typescript/components/Input/BaseInput.android.d.ts.map +0 -1
- package/lib/typescript/components/Input/BaseInput.d.ts +0 -2
- package/lib/typescript/components/Input/BaseInput.d.ts.map +0 -1
- package/lib/typescript/components/Input/BaseInput.web.d.ts +0 -3
- package/lib/typescript/components/Input/BaseInput.web.d.ts.map +0 -1
- package/lib/typescript/components/Select/SelectTriggerHost.d.ts +0 -3
- package/lib/typescript/components/Select/SelectTriggerHost.d.ts.map +0 -1
- package/lib/typescript/components/Select/SelectTriggerHost.web.d.ts +0 -17
- package/lib/typescript/components/Select/SelectTriggerHost.web.d.ts.map +0 -1
- package/src/components/Field/FieldLabel.tsx +0 -33
- package/src/components/Field/FieldLabel.web.tsx +0 -25
- package/src/components/Form/FormRoot.tsx +0 -20
- package/src/components/Form/FormRoot.web.tsx +0 -12
- package/src/components/Input/BaseInput.android.tsx +0 -13
- package/src/components/Input/BaseInput.tsx +0 -1
- package/src/components/Input/BaseInput.web.tsx +0 -41
- package/src/components/Select/SelectTriggerHost.tsx +0 -4
- package/src/components/Select/SelectTriggerHost.web.tsx +0 -163
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
import { View } from 'react-native';
|
|
2
|
+
import type { EntryOrExitLayoutType, WithTimingConfig } from 'react-native-reanimated';
|
|
3
|
+
import type { ToastRootProps } from '@cdx-ui/primitives';
|
|
4
|
+
import { ForgeIcon } from '@cdx-ui/icons';
|
|
5
|
+
import type { AnimationRoot, AnimationValue } from '../../animation';
|
|
6
|
+
import type { ToastComponentProps, ToastShowOptions } from '../../providers/toast';
|
|
7
|
+
import type { ButtonProps } from '../Button';
|
|
8
|
+
import type { IconButtonProps } from '../IconButton';
|
|
9
|
+
import type { IconProps } from '../Icon';
|
|
10
|
+
import { ToastColorProps } from './styles';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Toast color types
|
|
14
|
+
*/
|
|
15
|
+
export type ToastColor = ToastColorProps['color'];
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Toast placement types.
|
|
19
|
+
*
|
|
20
|
+
* On web, `-start` and `-end` variants position the toast at the
|
|
21
|
+
* corresponding horizontal edge with a `max-width` of 460 px.
|
|
22
|
+
* The plain `top` / `bottom` values centre the toast horizontally.
|
|
23
|
+
*
|
|
24
|
+
* On native (iOS / Android), `-start` and `-end` degrade gracefully
|
|
25
|
+
* to edge-to-edge layout identical to their base `top` / `bottom`
|
|
26
|
+
* counterpart — the toast still spans the full width.
|
|
27
|
+
*/
|
|
28
|
+
export type ToastPlacement =
|
|
29
|
+
| 'top-start'
|
|
30
|
+
| 'top'
|
|
31
|
+
| 'top-end'
|
|
32
|
+
| 'bottom-start'
|
|
33
|
+
| 'bottom'
|
|
34
|
+
| 'bottom-end';
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Animation configuration for toast root component
|
|
38
|
+
*/
|
|
39
|
+
export type ToastRootAnimation = AnimationRoot<{
|
|
40
|
+
opacity?: AnimationValue<{
|
|
41
|
+
/**
|
|
42
|
+
* Opacity interpolation values [start, end]
|
|
43
|
+
* Controls how fast toast items fade out as they move beyond the visible stack limits.
|
|
44
|
+
* When toasts are pushed out of view (beyond the last few visible items), their opacity
|
|
45
|
+
* gradually decreases to create a smooth disappearing effect.
|
|
46
|
+
* - First value: fully visible opacity (1) for items within visible stack
|
|
47
|
+
* - Second value: hidden opacity (0) for items pushed out of view
|
|
48
|
+
* @default [1, 0]
|
|
49
|
+
*/
|
|
50
|
+
value?: [number, number];
|
|
51
|
+
/**
|
|
52
|
+
* Animation timing configuration
|
|
53
|
+
* @default { duration: 300 }
|
|
54
|
+
*/
|
|
55
|
+
timingConfig?: WithTimingConfig;
|
|
56
|
+
}>;
|
|
57
|
+
translateY?: AnimationValue<{
|
|
58
|
+
/**
|
|
59
|
+
* Translate Y interpolation values [start, end]
|
|
60
|
+
* Controls how much of a toast item is visible when it's positioned behind the last visible toast.
|
|
61
|
+
* This creates a "peek" effect where stacked toasts are slightly offset vertically,
|
|
62
|
+
* allowing users to see a portion of the toast behind the current one.
|
|
63
|
+
* - First value: no offset (0) for the last/active toast
|
|
64
|
+
* - Second value: vertical offset in pixels (10) for toasts behind the last one
|
|
65
|
+
* Note: The offset direction is automatically adjusted based on placement (top/bottom)
|
|
66
|
+
* @default [0, 10] (multiplied by placement sign)
|
|
67
|
+
*/
|
|
68
|
+
value?: [number, number];
|
|
69
|
+
/**
|
|
70
|
+
* Animation timing configuration
|
|
71
|
+
* @default { duration: 300 }
|
|
72
|
+
*/
|
|
73
|
+
timingConfig?: WithTimingConfig;
|
|
74
|
+
}>;
|
|
75
|
+
scale?: AnimationValue<{
|
|
76
|
+
/**
|
|
77
|
+
* Scale interpolation values [start, end]
|
|
78
|
+
* Controls the size scaling of toast items in the stack.
|
|
79
|
+
* Toasts behind the active one are slightly scaled down to create depth and visual hierarchy.
|
|
80
|
+
* - First value: normal scale (1) for the active/last toast
|
|
81
|
+
* - Second value: scaled down value (0.97) for toasts positioned behind
|
|
82
|
+
* @default [1, 0.97]
|
|
83
|
+
*/
|
|
84
|
+
value?: [number, number];
|
|
85
|
+
/**
|
|
86
|
+
* Animation timing configuration
|
|
87
|
+
* @default { duration: 300 }
|
|
88
|
+
*/
|
|
89
|
+
timingConfig?: WithTimingConfig;
|
|
90
|
+
}>;
|
|
91
|
+
entering?: AnimationValue<{
|
|
92
|
+
/**
|
|
93
|
+
* Custom entering animation for top placement
|
|
94
|
+
* @default FadeInUp.springify().withInitialValues({ opacity: 1, transform: [{ translateY: -100 }] }).mass(3)
|
|
95
|
+
*/
|
|
96
|
+
top?: EntryOrExitLayoutType;
|
|
97
|
+
/**
|
|
98
|
+
* Custom entering animation for bottom placement
|
|
99
|
+
* @default FadeInDown.springify().withInitialValues({ opacity: 1, transform: [{ translateY: 100 }] }).mass(3)
|
|
100
|
+
*/
|
|
101
|
+
bottom?: EntryOrExitLayoutType;
|
|
102
|
+
}>;
|
|
103
|
+
exiting?: AnimationValue<{
|
|
104
|
+
/**
|
|
105
|
+
* Custom exiting animation for top placement
|
|
106
|
+
* @default Keyframe animation with translateY: -100, scale: 0.97, opacity: 0.5
|
|
107
|
+
*/
|
|
108
|
+
top?: EntryOrExitLayoutType;
|
|
109
|
+
/**
|
|
110
|
+
* Custom exiting animation for bottom placement
|
|
111
|
+
* @default Keyframe animation with translateY: 100, scale: 0.97, opacity: 0.5
|
|
112
|
+
*/
|
|
113
|
+
bottom?: EntryOrExitLayoutType;
|
|
114
|
+
}>;
|
|
115
|
+
}>;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Props for the Toast.Root component
|
|
119
|
+
*/
|
|
120
|
+
export interface ToastProps extends ToastRootProps, Omit<ToastComponentProps, 'id'> {
|
|
121
|
+
/**
|
|
122
|
+
* Color of the toast
|
|
123
|
+
* @default 'default'
|
|
124
|
+
*/
|
|
125
|
+
color?: ToastColor;
|
|
126
|
+
/**
|
|
127
|
+
* Placement of the toast
|
|
128
|
+
* @default 'bottom'
|
|
129
|
+
*/
|
|
130
|
+
placement?: ToastPlacement;
|
|
131
|
+
/**
|
|
132
|
+
* Additional CSS class for the toast container
|
|
133
|
+
*
|
|
134
|
+
* @note The following style properties are occupied by animations and cannot be set via className:
|
|
135
|
+
* - `opacity` - Animated for visibility transitions when toasts are pushed beyond visible stack limits
|
|
136
|
+
* - `transform` (translateY) - Animated for vertical position transitions when toasts are stacked, and for swipe-to-dismiss gestures
|
|
137
|
+
* - `transform` (scale) - Animated for size scaling transitions when toasts are stacked (toasts behind active one are scaled down)
|
|
138
|
+
* - `height` - Animated for height transitions when toast content changes
|
|
139
|
+
*
|
|
140
|
+
* To customize these properties, use the `animation` prop:
|
|
141
|
+
* ```tsx
|
|
142
|
+
* <Toast.Root
|
|
143
|
+
* animation={{
|
|
144
|
+
* opacity: {
|
|
145
|
+
* value: [1, 0],
|
|
146
|
+
* timingConfig: { duration: 300 }
|
|
147
|
+
* },
|
|
148
|
+
* translateY: {
|
|
149
|
+
* value: [0, 10],
|
|
150
|
+
* timingConfig: { duration: 300 }
|
|
151
|
+
* },
|
|
152
|
+
* scale: {
|
|
153
|
+
* value: [1, 0.97],
|
|
154
|
+
* timingConfig: { duration: 300 }
|
|
155
|
+
* }
|
|
156
|
+
* }}
|
|
157
|
+
* />
|
|
158
|
+
* ```
|
|
159
|
+
*
|
|
160
|
+
* To completely disable animated styles and use your own via className or style prop, set `isAnimatedStyleActive={false}`.
|
|
161
|
+
*/
|
|
162
|
+
className?: string;
|
|
163
|
+
/**
|
|
164
|
+
* Animation configuration for toast
|
|
165
|
+
* - `false` or `"disabled"`: Disable only root animations
|
|
166
|
+
* - `"disable-all"`: Disable all animations including children
|
|
167
|
+
* - `true` or `undefined`: Use default animations
|
|
168
|
+
* - `object`: Custom animation configuration
|
|
169
|
+
*/
|
|
170
|
+
animation?: ToastRootAnimation;
|
|
171
|
+
/**
|
|
172
|
+
* Whether the toast can be swiped to dismiss and dragged with rubber effect
|
|
173
|
+
* @default true
|
|
174
|
+
*/
|
|
175
|
+
isSwipeable?: boolean;
|
|
176
|
+
/**
|
|
177
|
+
* Whether animated styles (react-native-reanimated) are active
|
|
178
|
+
* When `false`, the animated style is removed and you can implement custom logic
|
|
179
|
+
* This prop should only be used when you want to write custom styling logic instead of the default animated styles
|
|
180
|
+
* @default true
|
|
181
|
+
*/
|
|
182
|
+
isAnimatedStyleActive?: boolean;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Props for the Toast.Title component
|
|
187
|
+
*/
|
|
188
|
+
export interface ToastTitleProps {
|
|
189
|
+
/**
|
|
190
|
+
* Content to be rendered as title
|
|
191
|
+
*/
|
|
192
|
+
children?: React.ReactNode;
|
|
193
|
+
/**
|
|
194
|
+
* Additional CSS class for the title
|
|
195
|
+
*/
|
|
196
|
+
className?: string;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Props for the Toast.Description component
|
|
201
|
+
*/
|
|
202
|
+
export interface ToastDescriptionProps {
|
|
203
|
+
/**
|
|
204
|
+
* Content to be rendered as description
|
|
205
|
+
*/
|
|
206
|
+
children?: React.ReactNode;
|
|
207
|
+
/**
|
|
208
|
+
* Additional CSS class for the description
|
|
209
|
+
*/
|
|
210
|
+
className?: string;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
/**
|
|
214
|
+
* Props for the Toast.Icon component
|
|
215
|
+
*/
|
|
216
|
+
export interface ToastIconProps extends Omit<IconProps, 'children' | 'as'> {
|
|
217
|
+
asChild?: boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Forge icon component to render. Required unless `asChild` is set.
|
|
220
|
+
*/
|
|
221
|
+
as?: IconProps['as'];
|
|
222
|
+
/**
|
|
223
|
+
* Child element to render when `asChild` is set.
|
|
224
|
+
*/
|
|
225
|
+
children?: React.ReactNode;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Props for the Toast.Action component
|
|
230
|
+
*/
|
|
231
|
+
export type ToastActionProps = ButtonProps;
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* Props for the Toast.Close component
|
|
235
|
+
*/
|
|
236
|
+
export type ToastCloseProps = Omit<IconButtonProps, 'as'> & {
|
|
237
|
+
/**
|
|
238
|
+
* Forge icon component to render (icon-only control).
|
|
239
|
+
* @default CloseIcon
|
|
240
|
+
*/
|
|
241
|
+
as?: ForgeIcon;
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Context values shared between Toast components
|
|
246
|
+
*/
|
|
247
|
+
export interface ToastContextValue {
|
|
248
|
+
/**
|
|
249
|
+
* Color of the toast
|
|
250
|
+
*/
|
|
251
|
+
color?: ToastColor;
|
|
252
|
+
/**
|
|
253
|
+
* Function to hide the toast
|
|
254
|
+
*/
|
|
255
|
+
hide?: (ids?: (string & {}) | string[] | 'all') => void;
|
|
256
|
+
/**
|
|
257
|
+
* ID of the toast
|
|
258
|
+
*/
|
|
259
|
+
id?: string;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Ref type for the Toast.Root component
|
|
264
|
+
*/
|
|
265
|
+
export type ToastRootRef = React.ComponentRef<typeof View>;
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Props for useToastRootAnimation hook
|
|
269
|
+
* Picks required properties from ToastRootProps and adds id from ToastComponentProps
|
|
270
|
+
*/
|
|
271
|
+
export type UseToastRootAnimationOptions = Pick<
|
|
272
|
+
ToastProps,
|
|
273
|
+
| 'animation'
|
|
274
|
+
| 'index'
|
|
275
|
+
| 'total'
|
|
276
|
+
| 'heights'
|
|
277
|
+
| 'placement'
|
|
278
|
+
| 'hide'
|
|
279
|
+
| 'isSwipeable'
|
|
280
|
+
| 'maxVisibleToasts'
|
|
281
|
+
> &
|
|
282
|
+
Pick<ToastComponentProps, 'id'>;
|
|
283
|
+
|
|
284
|
+
/**
|
|
285
|
+
* Props for the DefaultToast component
|
|
286
|
+
* Used internally when showing toasts with string or config object (without component)
|
|
287
|
+
*/
|
|
288
|
+
export interface DefaultToastProps extends ToastComponentProps {
|
|
289
|
+
/**
|
|
290
|
+
* Color of the toast
|
|
291
|
+
* @default 'default'
|
|
292
|
+
*/
|
|
293
|
+
color?: ToastProps['color'];
|
|
294
|
+
/**
|
|
295
|
+
* Placement of the toast
|
|
296
|
+
* @default 'bottom'
|
|
297
|
+
*/
|
|
298
|
+
placement?: ToastProps['placement'];
|
|
299
|
+
/**
|
|
300
|
+
* Animation configuration for toast
|
|
301
|
+
*/
|
|
302
|
+
animation?: ToastProps['animation'];
|
|
303
|
+
/**
|
|
304
|
+
* Whether the toast can be swiped to dismiss and dragged with rubber effect
|
|
305
|
+
*/
|
|
306
|
+
isSwipeable?: ToastProps['isSwipeable'];
|
|
307
|
+
/**
|
|
308
|
+
* Label text for the toast
|
|
309
|
+
*/
|
|
310
|
+
label?: string;
|
|
311
|
+
/**
|
|
312
|
+
* Description text for the toast
|
|
313
|
+
*/
|
|
314
|
+
description?: string;
|
|
315
|
+
/**
|
|
316
|
+
* Action button label text
|
|
317
|
+
*/
|
|
318
|
+
actionLabel?: string;
|
|
319
|
+
/**
|
|
320
|
+
* Callback function called when the action button is pressed
|
|
321
|
+
* Receives show and hide functions for programmatic toast control
|
|
322
|
+
*/
|
|
323
|
+
onActionPress?: (helpers: {
|
|
324
|
+
show: (options: string | ToastShowOptions) => string;
|
|
325
|
+
hide: (ids?: (string & {}) | string[] | 'all') => void;
|
|
326
|
+
}) => void;
|
|
327
|
+
/**
|
|
328
|
+
* Forge icon component to display in the toast.
|
|
329
|
+
* Rendered via `Toast.Icon` internally — inherits color-aware coloring automatically.
|
|
330
|
+
*/
|
|
331
|
+
icon?: ForgeIcon;
|
|
332
|
+
}
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
import type { ForwardedRef, ReactElement } from 'react';
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
|
-
import {
|
|
3
|
+
import {
|
|
4
|
+
FlashList,
|
|
5
|
+
type FlashListProps,
|
|
6
|
+
type FlashListRef,
|
|
7
|
+
type ListRenderItem,
|
|
8
|
+
type ListRenderItemInfo,
|
|
9
|
+
type RenderTarget,
|
|
10
|
+
type RenderTargetOptions,
|
|
11
|
+
type ViewToken,
|
|
12
|
+
} from '@shopify/flash-list';
|
|
4
13
|
|
|
5
14
|
export type VirtualizedListRef = FlashListRef<unknown>;
|
|
6
15
|
export type VirtualizedListProps<T = unknown> = FlashListProps<T>;
|
|
16
|
+
export type { ListRenderItem, ListRenderItemInfo, RenderTarget, RenderTargetOptions, ViewToken };
|
|
7
17
|
|
|
8
18
|
function VirtualizedListInner<T>(
|
|
9
19
|
props: VirtualizedListProps<T>,
|
package/src/components/index.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './Alert';
|
|
1
2
|
export * from './AlertDialog';
|
|
2
3
|
export * from './Avatar';
|
|
3
4
|
export * from './BottomSheet';
|
|
@@ -6,7 +7,9 @@ export * from './Button';
|
|
|
6
7
|
export * from './Card';
|
|
7
8
|
export * from './Checkbox';
|
|
8
9
|
export * from './Chip';
|
|
10
|
+
export * from './CurrencyInput';
|
|
9
11
|
export * from './Dialog';
|
|
12
|
+
export * from './Divider';
|
|
10
13
|
export * from './Field';
|
|
11
14
|
export * from './Form';
|
|
12
15
|
export * from './Image';
|
|
@@ -15,12 +18,18 @@ export * from './OtpInput';
|
|
|
15
18
|
export * from './Link';
|
|
16
19
|
export * from './ListItem';
|
|
17
20
|
export * from './ProgressBar';
|
|
21
|
+
export * from './Skeleton';
|
|
18
22
|
export * from './ProgressSegmented';
|
|
23
|
+
export * from './Radio';
|
|
24
|
+
export * from './ScopedTheme';
|
|
19
25
|
export * from './Select';
|
|
20
26
|
export * from './VirtualizedList';
|
|
21
27
|
export * from './Switch';
|
|
28
|
+
export * from './Tile';
|
|
29
|
+
export * from './Toast';
|
|
22
30
|
export { HStack, VStack } from './Stack';
|
|
23
31
|
export * from './Heading';
|
|
24
32
|
export * from './Text';
|
|
25
33
|
export * from './Icon';
|
|
26
34
|
export * from './IconButton';
|
|
35
|
+
export * from './QuickActionButton';
|
package/src/globals.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
declare let __DEV__: boolean | undefined;
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useForgeBottomTabScreenOptions
|
|
3
|
+
*
|
|
4
|
+
* Returns a `screenOptions` object for **React Navigation bottom tab navigators**
|
|
5
|
+
* (`@react-navigation/bottom-tabs` v7+), populated with CDX UI design-system
|
|
6
|
+
* token values.
|
|
7
|
+
*
|
|
8
|
+
* CDX UI does not import `@react-navigation` — the consumer passes the returned
|
|
9
|
+
* object to their own navigator. This keeps the dependency out of
|
|
10
|
+
* `@cdx-ui/components` and works with any React Navigation tab variant:
|
|
11
|
+
* `createNativeBottomTabNavigator` (iOS/Android) or `createBottomTabNavigator`
|
|
12
|
+
* (web/JS).
|
|
13
|
+
*
|
|
14
|
+
* **Not compatible with:**
|
|
15
|
+
* - Expo Router `<NativeTabs>` — uses different prop names
|
|
16
|
+
* - React Router or DOM tab components — these are not React Navigation
|
|
17
|
+
*
|
|
18
|
+
* ## Basic usage
|
|
19
|
+
*
|
|
20
|
+
* ```tsx
|
|
21
|
+
* import { useForgeBottomTabScreenOptions } from '@cdx-ui/components';
|
|
22
|
+
* import { createNativeBottomTabNavigator } from '@react-navigation/bottom-tabs/unstable';
|
|
23
|
+
*
|
|
24
|
+
* const Tab = createNativeBottomTabNavigator<AppTabs>();
|
|
25
|
+
*
|
|
26
|
+
* function AppTabs() {
|
|
27
|
+
* const screenOptions = useForgeBottomTabScreenOptions();
|
|
28
|
+
* return (
|
|
29
|
+
* <Tab.Navigator screenOptions={screenOptions}>
|
|
30
|
+
* <Tab.Screen name="Home" component={HomeScreen} />
|
|
31
|
+
* </Tab.Navigator>
|
|
32
|
+
* );
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*
|
|
36
|
+
* ## Overriding individual tokens
|
|
37
|
+
*
|
|
38
|
+
* Spread the returned object and override only the keys you need.
|
|
39
|
+
* Nested style objects (`tabBarLabelStyle`, `tabBarStyle`, `tabBarBadgeStyle`)
|
|
40
|
+
* must be spread individually to preserve unrelated DS defaults:
|
|
41
|
+
*
|
|
42
|
+
* ```tsx
|
|
43
|
+
* const dsOptions = useForgeBottomTabScreenOptions();
|
|
44
|
+
* const screenOptions = {
|
|
45
|
+
* ...dsOptions,
|
|
46
|
+
* tabBarActiveTintColor: '#custom',
|
|
47
|
+
* tabBarLabelStyle: { ...dsOptions.tabBarLabelStyle, fontFamily: 'MyFont' },
|
|
48
|
+
* };
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* ## Token variable names
|
|
52
|
+
*
|
|
53
|
+
* | screenOption | CSS variable |
|
|
54
|
+
* | ---------------------------------- | ---------------------------------- |
|
|
55
|
+
* | tabBarActiveTintColor | --color-content-action |
|
|
56
|
+
* | tabBarInactiveTintColor | --color-content-secondary |
|
|
57
|
+
* | tabBarStyle.backgroundColor | --color-surface-primary |
|
|
58
|
+
* | tabBarLabelStyle.fontFamily | --font-body |
|
|
59
|
+
* | tabBarLabelStyle.fontSize | --text-xs (via `text-xs` class) |
|
|
60
|
+
* | tabBarLabelStyle.fontWeight | --font-weight-medium |
|
|
61
|
+
* | tabBarBadgeStyle.backgroundColor | --color-surface-danger-strong |
|
|
62
|
+
*
|
|
63
|
+
* ## Platform notes
|
|
64
|
+
*
|
|
65
|
+
* - `tabBarInactiveTintColor` has no effect on iOS — inactive items always use
|
|
66
|
+
* system grey.
|
|
67
|
+
* - `tabBarStyle.backgroundColor` is ignored on iOS 26+ (liquid glass takes
|
|
68
|
+
* over). It is honoured on iOS ≤18 and all Android versions.
|
|
69
|
+
* - The hook resolves CSS variables via Uniwind's `useCSSVariable`. If the
|
|
70
|
+
* Uniwind runtime is not set up (e.g. in a plain Jest test without a CSS
|
|
71
|
+
* context), each variable resolves to `undefined` and the hardcoded fallback
|
|
72
|
+
* is used instead — fallbacks intentionally match the CDX UI light-theme
|
|
73
|
+
* values.
|
|
74
|
+
* - `tabBarLabelStyle.fontSize` is resolved via Uniwind's
|
|
75
|
+
* `useResolveClassNames('text-xs')` rather than reading the rem-valued
|
|
76
|
+
* `--text-xs` variable directly. React Navigation v7 requires a numeric
|
|
77
|
+
* `fontSize`, and letting Uniwind resolve the class means the rem→px
|
|
78
|
+
* conversion uses the consumer's configured rem base (default 16px,
|
|
79
|
+
* overridable via the `polyfills.rem` Metro option) instead of a constant
|
|
80
|
+
* hardcoded here.
|
|
81
|
+
*/
|
|
82
|
+
import type { TextStyle } from 'react-native';
|
|
83
|
+
import { useCSSVariable, useResolveClassNames } from 'uniwind';
|
|
84
|
+
import type { BottomTabNavigationOptions } from '@react-navigation/bottom-tabs';
|
|
85
|
+
|
|
86
|
+
// ── Types ────────────────────────────────────────────────────────────────────
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* The `screenOptions` shape returned by `useForgeBottomTabScreenOptions`.
|
|
90
|
+
*
|
|
91
|
+
* These are concrete types (not the broad `StyleProp<…>` React Navigation
|
|
92
|
+
* uses internally) so consumers get precise IDE completion. The compile-time
|
|
93
|
+
* drift guard below ensures this type stays assignable to
|
|
94
|
+
* `BottomTabNavigationOptions` — the TypeScript compiler will error if CDX UI
|
|
95
|
+
* adds a key or value that React Navigation no longer accepts.
|
|
96
|
+
*
|
|
97
|
+
* Pass directly as `screenOptions` on a `createNativeBottomTabNavigator` or
|
|
98
|
+
* `createBottomTabNavigator` navigator, or spread and override individual keys.
|
|
99
|
+
*/
|
|
100
|
+
export interface ForgeReactNavigationBottomTabScreenOptions {
|
|
101
|
+
tabBarActiveTintColor: string;
|
|
102
|
+
tabBarInactiveTintColor: string;
|
|
103
|
+
tabBarStyle: { backgroundColor: string };
|
|
104
|
+
tabBarLabelStyle: {
|
|
105
|
+
fontFamily: string;
|
|
106
|
+
/** Pixel size — React Navigation requires a number for tab label fontSize. */
|
|
107
|
+
fontSize: number;
|
|
108
|
+
fontWeight: TextStyle['fontWeight'];
|
|
109
|
+
};
|
|
110
|
+
tabBarBadgeStyle: { backgroundColor: string };
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Compile-time drift guard.
|
|
115
|
+
*
|
|
116
|
+
* `ForgeReactNavigationBottomTabScreenOptions` must be assignable to
|
|
117
|
+
* `BottomTabNavigationOptions`. TypeScript checks this assignment at build
|
|
118
|
+
* time — if React Navigation removes or incompatibly narrows one of our keys,
|
|
119
|
+
* this line becomes a type error before it reaches consumers.
|
|
120
|
+
*
|
|
121
|
+
* The `null as unknown as ...` cast keeps the runtime value `null` so tree-
|
|
122
|
+
* shakers eliminate the variable from the final bundle entirely.
|
|
123
|
+
*/
|
|
124
|
+
|
|
125
|
+
const _rnDriftGuard: BottomTabNavigationOptions =
|
|
126
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
127
|
+
null as any as ForgeReactNavigationBottomTabScreenOptions;
|
|
128
|
+
|
|
129
|
+
// ── Fallbacks ────────────────────────────────────────────────────────────────
|
|
130
|
+
//
|
|
131
|
+
// Resolved light-theme values for each token. Used when useCSSVariable returns
|
|
132
|
+
// undefined (no Uniwind CSS context in scope, e.g. Jest).
|
|
133
|
+
|
|
134
|
+
const FALLBACKS = {
|
|
135
|
+
activeTintColor: '#346099', // --color-brand-700 (--color-content-action)
|
|
136
|
+
inactiveTintColor: '#4a4c4f', // --color-base-800 (--color-content-secondary)
|
|
137
|
+
fontFamily: 'Inter', // --font-sans (--font-body)
|
|
138
|
+
fontSize: 12, // px (--text-xs)
|
|
139
|
+
fontWeight: '500' as TextStyle['fontWeight'], // (--font-weight-medium)
|
|
140
|
+
backgroundColor: '#ffffff', // --color-white (--color-surface-primary)
|
|
141
|
+
badgeBackgroundColor: '#c10007', // --color-red-700 (--color-surface-danger-strong)
|
|
142
|
+
} as const;
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Coerces a Uniwind-resolved `fontSize` to a finite pixel number, falling
|
|
146
|
+
* back when the style could not be resolved (e.g. no Uniwind runtime in Jest).
|
|
147
|
+
*
|
|
148
|
+
* `useResolveClassNames('text-xs')` performs the rem→px conversion using
|
|
149
|
+
* Uniwind's configured rem base, so the value is already numeric on native.
|
|
150
|
+
* React Native Web may surface string values; unit-less and `px` strings are
|
|
151
|
+
* accepted, but anything else (`rem`, `em`, `%`) falls back rather than
|
|
152
|
+
* guessing a rem base here.
|
|
153
|
+
*/
|
|
154
|
+
function toPx(value: string | number | undefined, fallbackPx: number): number {
|
|
155
|
+
if (typeof value === 'number') {
|
|
156
|
+
return Number.isFinite(value) ? value : fallbackPx;
|
|
157
|
+
}
|
|
158
|
+
if (typeof value !== 'string') return fallbackPx;
|
|
159
|
+
const trimmed = value.trim();
|
|
160
|
+
if (!/^-?\d*\.?\d+(px)?$/.test(trimmed)) return fallbackPx;
|
|
161
|
+
return parseFloat(trimmed);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* Coerces a Uniwind `useCSSVariable` fontWeight value to a string.
|
|
166
|
+
*
|
|
167
|
+
* `--font-weight-*` variables are emitted as unit-less numbers (e.g. `500`),
|
|
168
|
+
* and `useCSSVariable` may return them as numbers. React Native's `TextStyle`
|
|
169
|
+
* accepts numeric fontWeight, but react-native-screens' native bottom tabs
|
|
170
|
+
* declare the corresponding host prop (`tabBarItemTitleFontWeight`) as a
|
|
171
|
+
* String — passing a number crashes Android Fabric with
|
|
172
|
+
* "java.lang.Double cannot be cast to java.lang.String".
|
|
173
|
+
*/
|
|
174
|
+
function toFontWeight(
|
|
175
|
+
value: string | number | undefined,
|
|
176
|
+
fallback: TextStyle['fontWeight'],
|
|
177
|
+
): TextStyle['fontWeight'] {
|
|
178
|
+
if (value === undefined) return fallback;
|
|
179
|
+
return String(value) as TextStyle['fontWeight'];
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
// ── Hook ─────────────────────────────────────────────────────────────────────
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Returns a `screenOptions` object for **React Navigation bottom tab
|
|
186
|
+
* navigators** (`@react-navigation/bottom-tabs` v7+), populated with CDX UI
|
|
187
|
+
* design-system token values.
|
|
188
|
+
*
|
|
189
|
+
* Must be called inside a React component or custom hook (React hook rules
|
|
190
|
+
* apply).
|
|
191
|
+
*/
|
|
192
|
+
/**
|
|
193
|
+
* Deep-merges consumer overrides into a base `ForgeReactNavigationBottomTabScreenOptions`
|
|
194
|
+
* object. Nested style objects (`tabBarLabelStyle`, `tabBarStyle`,
|
|
195
|
+
* `tabBarBadgeStyle`) are merged property-by-property so consumers can override
|
|
196
|
+
* individual style properties without losing unrelated DS defaults.
|
|
197
|
+
*
|
|
198
|
+
* Use with `useForgeBottomTabScreenOptions` to apply targeted overrides:
|
|
199
|
+
*
|
|
200
|
+
* ```tsx
|
|
201
|
+
* const dsOptions = useForgeBottomTabScreenOptions();
|
|
202
|
+
* const screenOptions = mergeForgeBottomTabScreenOptions(dsOptions, {
|
|
203
|
+
* tabBarActiveTintColor: '#custom',
|
|
204
|
+
* tabBarLabelStyle: { fontFamily: 'MyFont' }, // fontSize + fontWeight preserved
|
|
205
|
+
* });
|
|
206
|
+
* ```
|
|
207
|
+
*/
|
|
208
|
+
export function mergeForgeBottomTabScreenOptions(
|
|
209
|
+
base: ForgeReactNavigationBottomTabScreenOptions,
|
|
210
|
+
overrides: Partial<ForgeReactNavigationBottomTabScreenOptions>,
|
|
211
|
+
): ForgeReactNavigationBottomTabScreenOptions {
|
|
212
|
+
return {
|
|
213
|
+
...base,
|
|
214
|
+
...overrides,
|
|
215
|
+
tabBarLabelStyle: { ...base.tabBarLabelStyle, ...overrides.tabBarLabelStyle },
|
|
216
|
+
tabBarStyle: { ...base.tabBarStyle, ...overrides.tabBarStyle },
|
|
217
|
+
tabBarBadgeStyle: { ...base.tabBarBadgeStyle, ...overrides.tabBarBadgeStyle },
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
export function useForgeBottomTabScreenOptions(): ForgeReactNavigationBottomTabScreenOptions {
|
|
222
|
+
const activeTintColor = useCSSVariable('--color-content-action');
|
|
223
|
+
const inactiveTintColor = useCSSVariable('--color-content-secondary');
|
|
224
|
+
const fontFamily = useCSSVariable('--font-body');
|
|
225
|
+
const labelTextStyle = useResolveClassNames('text-xs');
|
|
226
|
+
const fontWeight = useCSSVariable('--font-weight-medium');
|
|
227
|
+
const backgroundColor = useCSSVariable('--color-surface-primary');
|
|
228
|
+
const badgeBackgroundColor = useCSSVariable('--color-surface-danger-strong');
|
|
229
|
+
|
|
230
|
+
return {
|
|
231
|
+
tabBarActiveTintColor: String(activeTintColor ?? FALLBACKS.activeTintColor),
|
|
232
|
+
tabBarInactiveTintColor: String(inactiveTintColor ?? FALLBACKS.inactiveTintColor),
|
|
233
|
+
tabBarStyle: {
|
|
234
|
+
backgroundColor: String(backgroundColor ?? FALLBACKS.backgroundColor),
|
|
235
|
+
},
|
|
236
|
+
tabBarLabelStyle: {
|
|
237
|
+
fontFamily: String(fontFamily ?? FALLBACKS.fontFamily),
|
|
238
|
+
fontSize: toPx(labelTextStyle?.fontSize, FALLBACKS.fontSize),
|
|
239
|
+
fontWeight: toFontWeight(fontWeight, FALLBACKS.fontWeight),
|
|
240
|
+
},
|
|
241
|
+
tabBarBadgeStyle: {
|
|
242
|
+
backgroundColor: String(badgeBackgroundColor ?? FALLBACKS.badgeBackgroundColor),
|
|
243
|
+
},
|
|
244
|
+
};
|
|
245
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
/// <reference types="uniwind/types" preserve="true" />
|
|
2
2
|
export * from './components';
|
|
3
|
+
export * from './hooks';
|
|
4
|
+
export * from './navigation';
|
|
5
|
+
export { ToastProvider, useToast } from './providers/toast';
|
|
6
|
+
export type * from './providers/toast';
|
|
3
7
|
export { View, ScrollView, KeyboardAvoidingView } from 'react-native';
|
|
4
8
|
export { SafeAreaView, useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
@@ -1,29 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
/** Path to the CSS entry file (e.g., `'./global.css'`). */
|
|
6
|
-
cssEntryFile: string;
|
|
7
|
-
/** Path where generated Tailwind class type definitions are written. */
|
|
8
|
-
generatedTypesFile?: string;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Wraps a Metro config with CDX UI's styling-layer configuration.
|
|
13
|
-
*
|
|
14
|
-
* Today this delegates to Uniwind. If the styling layer is swapped (see
|
|
15
|
-
* `docs/research/uniwind-to-nativewind-contingency.md`), only the internals
|
|
16
|
-
* of this function change — consuming Metro configs stay the same.
|
|
17
|
-
*
|
|
18
|
-
* Must be the **outermost** Metro config wrapper (after any other wrappers
|
|
19
|
-
* like `withStorybook`).
|
|
20
|
-
*/
|
|
21
|
-
export function withCdxMetroConfig<T extends MetroConfig>(
|
|
22
|
-
config: T,
|
|
23
|
-
options: CdxMetroConfigOptions,
|
|
24
|
-
): T {
|
|
25
|
-
return withUniwindConfig(config, {
|
|
26
|
-
cssEntryFile: options.cssEntryFile,
|
|
27
|
-
dtsFile: options.generatedTypesFile,
|
|
28
|
-
}) as T;
|
|
29
|
-
}
|
|
1
|
+
/** @deprecated Use `withForgeMetroConfig` instead. Will be removed in a future major release. */
|
|
2
|
+
export { withForgeMetroConfig as withCdxMetroConfig } from './withForgeMetroConfig';
|
|
3
|
+
/** @deprecated Use `ForgeMetroConfigOptions` instead. Will be removed in a future major release. */
|
|
4
|
+
export type { ForgeMetroConfigOptions as CdxMetroConfigOptions } from './withForgeMetroConfig';
|