@compsych/mobile-ui 1.0.20 → 1.0.22

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.20",
3
+ "version": "1.0.22",
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",
@@ -211,7 +211,8 @@ export function ServiceCard({
211
211
  v.elevated && ELEVATION,
212
212
  fullWidth && { alignSelf: 'stretch' as const },
213
213
  isRow ? styles.rowRoot : styles.colRoot,
214
- !isRow && { gap: s.gap },
214
+ !isRow && variant !== 'image' && { gap: s.gap },
215
+ variant === 'image' && { justifyContent: 'space-between' },
215
216
  style,
216
217
  ];
217
218
 
@@ -294,27 +295,28 @@ export function ServiceCard({
294
295
  resizeMode="cover"
295
296
  accessible={false}
296
297
  />
297
- <View
298
+ <LinearGradient
299
+ colors={['rgba(0,0,0,0.4)', 'rgba(0,0,0,0.05)', 'rgba(0,0,0,0.5)']}
300
+ locations={[0.012, 0.268, 1]}
298
301
  style={[
299
302
  { position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 },
300
- {
301
- borderRadius: s.borderRadius,
302
- backgroundColor: 'rgba(0,0,0,0.30)',
303
- },
303
+ { borderRadius: s.borderRadius },
304
304
  ]}
305
305
  pointerEvents="none"
306
306
  />
307
307
  </>
308
308
  )}
309
- {renderedIcon && (
310
- <View style={{ width: s.iconSize, height: s.iconSize }}>
311
- {renderedIcon}
312
- </View>
313
- )}
314
- {textBlock}
315
- {isRow && ChevronRight && (
316
- <ChevronRight size={20} color="#ffffff" strokeWidth={1.5} />
317
- )}
309
+ <View style={{ width: s.iconSize, height: s.iconSize }}>
310
+ {renderedIcon}
311
+ </View>
312
+ <View style={styles.imageBottom}>
313
+ <View style={{ flex: 1 }}>{textBlock}</View>
314
+ {onPress && ChevronRight && (
315
+ <View style={styles.imageArrowButton}>
316
+ <ChevronRight size={16} color={cr.surface.surface.sysOnSurface} strokeWidth={1.5} />
317
+ </View>
318
+ )}
319
+ </View>
318
320
  {children}
319
321
  </>
320
322
  );
@@ -398,6 +400,21 @@ const styles = StyleSheet.create({
398
400
  alignItems: 'center',
399
401
  gap: 12,
400
402
  },
403
+ imageBottom: {
404
+ flexDirection: 'row',
405
+ alignItems: 'flex-end',
406
+ width: '100%',
407
+ gap: 16,
408
+ },
409
+ imageArrowButton: {
410
+ width: 32,
411
+ height: 32,
412
+ borderRadius: 999,
413
+ backgroundColor: '#ffffff',
414
+ alignItems: 'center',
415
+ justifyContent: 'center',
416
+ flexShrink: 0,
417
+ },
401
418
  rowTextBlock: {
402
419
  flex: 1,
403
420
  minWidth: 0,