mirror of
https://github.com/stablyai/orca.git
synced 2026-09-27 00:02:37 +00:00
186 lines
3.9 KiB
TypeScript
186 lines
3.9 KiB
TypeScript
import { StyleSheet } from 'react-native'
|
|
import { colors, spacing, radii, typography } from '../src/theme/mobile-theme'
|
|
|
|
export const pairScanStyles = StyleSheet.create({
|
|
container: {
|
|
flex: 1,
|
|
backgroundColor: colors.bgBase,
|
|
padding: spacing.lg
|
|
},
|
|
backButton: {
|
|
width: 36,
|
|
height: 36,
|
|
borderRadius: 18,
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
marginBottom: spacing.sm
|
|
},
|
|
steps: {
|
|
gap: spacing.sm,
|
|
marginBottom: spacing.lg,
|
|
marginLeft: 7
|
|
},
|
|
step: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
gap: spacing.sm
|
|
},
|
|
stepBadge: {
|
|
width: 22,
|
|
height: 22,
|
|
borderRadius: 11,
|
|
backgroundColor: colors.bgRaised,
|
|
alignItems: 'center',
|
|
justifyContent: 'center'
|
|
},
|
|
stepNumber: {
|
|
fontSize: 12,
|
|
fontWeight: '700',
|
|
color: colors.textSecondary
|
|
},
|
|
stepText: {
|
|
fontSize: typography.bodySize,
|
|
color: colors.textSecondary
|
|
},
|
|
cameraWrap: {
|
|
flex: 1,
|
|
borderRadius: radii.camera,
|
|
overflow: 'hidden'
|
|
},
|
|
// Why: holds the layout slot while the camera is unmounted during
|
|
// paste, so the bottom action button doesn't snap up to fill the
|
|
// empty space.
|
|
cameraPlaceholder: {
|
|
flex: 1,
|
|
backgroundColor: colors.bgPanel,
|
|
borderRadius: radii.camera
|
|
},
|
|
camera: {
|
|
...StyleSheet.absoluteFillObject
|
|
},
|
|
reticle: {
|
|
...StyleSheet.absoluteFillObject,
|
|
alignItems: 'center',
|
|
justifyContent: 'center'
|
|
},
|
|
reticleFrame: {
|
|
position: 'relative'
|
|
},
|
|
corner: {
|
|
position: 'absolute',
|
|
width: 28,
|
|
height: 28,
|
|
borderColor: 'rgba(255,255,255,0.7)'
|
|
},
|
|
cornerTL: {
|
|
top: 0,
|
|
left: 0,
|
|
borderTopWidth: 2.5,
|
|
borderLeftWidth: 2.5,
|
|
borderTopLeftRadius: 6
|
|
},
|
|
cornerTR: {
|
|
top: 0,
|
|
right: 0,
|
|
borderTopWidth: 2.5,
|
|
borderRightWidth: 2.5,
|
|
borderTopRightRadius: 6
|
|
},
|
|
cornerBL: {
|
|
bottom: 0,
|
|
left: 0,
|
|
borderBottomWidth: 2.5,
|
|
borderLeftWidth: 2.5,
|
|
borderBottomLeftRadius: 6
|
|
},
|
|
cornerBR: {
|
|
bottom: 0,
|
|
right: 0,
|
|
borderBottomWidth: 2.5,
|
|
borderRightWidth: 2.5,
|
|
borderBottomRightRadius: 6
|
|
},
|
|
centered: {
|
|
flex: 1,
|
|
alignItems: 'center',
|
|
justifyContent: 'center'
|
|
},
|
|
title: {
|
|
fontSize: typography.titleSize,
|
|
fontWeight: '600',
|
|
color: colors.textPrimary,
|
|
marginBottom: spacing.sm
|
|
},
|
|
subtitle: {
|
|
maxWidth: 310,
|
|
fontSize: typography.bodySize,
|
|
color: colors.textSecondary,
|
|
textAlign: 'center',
|
|
marginBottom: spacing.xl,
|
|
lineHeight: 20
|
|
},
|
|
connectingText: {
|
|
color: colors.textSecondary,
|
|
fontSize: typography.bodySize,
|
|
marginTop: spacing.lg
|
|
},
|
|
logSlot: {
|
|
width: '100%',
|
|
marginTop: spacing.lg,
|
|
paddingHorizontal: spacing.sm
|
|
},
|
|
errorText: {
|
|
color: colors.statusRed,
|
|
fontSize: typography.bodySize,
|
|
textAlign: 'center',
|
|
marginBottom: spacing.xl,
|
|
lineHeight: 20
|
|
},
|
|
primaryButton: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
gap: spacing.xs,
|
|
backgroundColor: colors.textPrimary,
|
|
paddingHorizontal: spacing.xl,
|
|
paddingVertical: spacing.sm + 2,
|
|
borderRadius: radii.button
|
|
},
|
|
primaryButtonText: {
|
|
color: colors.bgBase,
|
|
fontSize: typography.bodySize,
|
|
fontWeight: '600'
|
|
},
|
|
pasteButton: {
|
|
flexDirection: 'row',
|
|
alignItems: 'center',
|
|
justifyContent: 'center',
|
|
gap: spacing.xs,
|
|
marginTop: spacing.md,
|
|
paddingVertical: spacing.sm,
|
|
borderRadius: radii.button
|
|
},
|
|
pasteButtonPressed: {
|
|
opacity: 0.6
|
|
},
|
|
pasteButtonText: {
|
|
color: colors.textSecondary,
|
|
fontSize: typography.bodySize,
|
|
fontWeight: '500'
|
|
},
|
|
errorActions: {
|
|
alignItems: 'center',
|
|
gap: spacing.sm
|
|
},
|
|
secondaryButton: {
|
|
paddingHorizontal: spacing.xl,
|
|
paddingVertical: spacing.sm,
|
|
borderRadius: radii.button
|
|
},
|
|
secondaryButtonText: {
|
|
color: colors.textSecondary,
|
|
fontSize: typography.bodySize,
|
|
fontWeight: '500'
|
|
}
|
|
})
|