@compsych/mobile-ui 1.0.24 → 1.0.26

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@compsych/mobile-ui",
3
- "version": "1.0.24",
3
+ "version": "1.0.26",
4
4
  "description": "ComPsych React Native Design System — 19 mobile UI components with self-contained design tokens",
5
5
  "main": "src/index.ts",
6
6
  "types": "src/index.ts",
@@ -18,6 +18,7 @@ export interface BodyTextProps extends TextProps {
18
18
  variant?: BodyVariant;
19
19
  emphasized?: boolean;
20
20
  color?: string;
21
+ children?: React.ReactNode;
21
22
  }
22
23
 
23
24
  const FONT_FAMILY: Record<string, string> = {
@@ -7,6 +7,7 @@ import { useTheme } from '../../theme';
7
7
  export interface ScreenContainerProps extends ScrollViewProps {
8
8
  children?: React.ReactNode;
9
9
  noPadding?: boolean;
10
+ keyboardShouldPersistTaps?: 'always' | 'never' | 'handled' | boolean;
10
11
  }
11
12
 
12
13
  /**
@@ -92,6 +92,7 @@ export function ServiceCard({
92
92
  innerBg: undefined,
93
93
  iconBadgeBg: undefined,
94
94
  iconBadgeColor: undefined,
95
+ buttonIconBg: cr.surface.surfaceContainer.sysSurfaceContainer,
95
96
  },
96
97
  tonal: {
97
98
  bg: cr.addOn.primaryFixed.sysPrimaryFixedDim,
@@ -104,6 +105,7 @@ export function ServiceCard({
104
105
  innerBg: undefined,
105
106
  iconBadgeBg: undefined,
106
107
  iconBadgeColor: undefined,
108
+ buttonIconBg: cr.surface.surfaceContainer.sysSurfaceContainerLowest,
107
109
  },
108
110
  filled: {
109
111
  bg: cr.accent.primary.sysPrimaryContainer,
@@ -116,6 +118,7 @@ export function ServiceCard({
116
118
  innerBg: undefined,
117
119
  iconBadgeBg: undefined,
118
120
  iconBadgeColor: undefined,
121
+ buttonIconBg: cr.surface.surfaceContainer.sysSurfaceContainerLowest,
119
122
  },
120
123
  doubled: {
121
124
  bg: cr.surface.surfaceContainer.sysSurfaceContainerLowest,
@@ -128,6 +131,7 @@ export function ServiceCard({
128
131
  innerBg: cr.transparent.primary.sysPrimary08,
129
132
  iconBadgeBg: cr.accent.primary.sysPrimary,
130
133
  iconBadgeColor: cr.accent.primary.sysOnPrimary,
134
+ buttonIconBg: cr.surface.surfaceContainer.sysSurfaceContainerLowest,
131
135
  },
132
136
  image: {
133
137
  bg: 'transparent',
@@ -140,6 +144,7 @@ export function ServiceCard({
140
144
  innerBg: undefined,
141
145
  iconBadgeBg: undefined,
142
146
  iconBadgeColor: undefined,
147
+ buttonIconBg: cr.surface.surfaceContainer.sysSurfaceContainerLowest,
143
148
  },
144
149
  }),
145
150
  [cr, dim],
@@ -366,16 +371,25 @@ export function ServiceCard({
366
371
  {children}
367
372
  {buttonIcon && (
368
373
  <View
369
- style={{
370
- position: 'absolute',
371
- bottom: s.paddingV,
372
- ...(I18nManager.isRTL
373
- ? { left: s.paddingH }
374
- : { right: s.paddingH }),
375
- }}
374
+ style={[
375
+ styles.buttonIconWrapper,
376
+ {
377
+ bottom: s.paddingV,
378
+ ...(I18nManager.isRTL
379
+ ? { left: s.paddingH }
380
+ : { right: s.paddingH }),
381
+ },
382
+ ]}
376
383
  pointerEvents="none"
377
384
  >
378
- {buttonIcon}
385
+ <View
386
+ style={[
387
+ styles.buttonIconCircle,
388
+ { backgroundColor: v.buttonIconBg },
389
+ ]}
390
+ >
391
+ {buttonIcon}
392
+ </View>
379
393
  </View>
380
394
  )}
381
395
  </>
@@ -425,6 +439,16 @@ const styles = StyleSheet.create({
425
439
  width: '100%',
426
440
  gap: 16,
427
441
  },
442
+ buttonIconWrapper: {
443
+ position: 'absolute',
444
+ },
445
+ buttonIconCircle: {
446
+ width: 36,
447
+ height: 36,
448
+ borderRadius: 18,
449
+ alignItems: 'center',
450
+ justifyContent: 'center',
451
+ },
428
452
  imageArrowButton: {
429
453
  width: 32,
430
454
  height: 32,