@planningcenter/chat-react-native 3.9.3-rc.2 → 3.10.0

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.
Files changed (36) hide show
  1. package/build/components/conversation/disabled_replies_banners.js +1 -1
  2. package/build/components/conversation/disabled_replies_banners.js.map +1 -1
  3. package/build/components/conversation/message_form.d.ts.map +1 -1
  4. package/build/components/conversation/message_form.js +3 -2
  5. package/build/components/conversation/message_form.js.map +1 -1
  6. package/build/components/display/image_attachment_preview.js +2 -2
  7. package/build/components/display/image_attachment_preview.js.map +1 -1
  8. package/build/components/display/utils/button_colors.js +3 -3
  9. package/build/components/display/utils/button_colors.js.map +1 -1
  10. package/build/components/display/utils/status_colors.js +16 -16
  11. package/build/components/display/utils/status_colors.js.map +1 -1
  12. package/build/components/display/video_attachment_preview.js +2 -2
  13. package/build/components/display/video_attachment_preview.js.map +1 -1
  14. package/build/screens/bug_report_screen.js +0 -25
  15. package/build/screens/bug_report_screen.js.map +1 -1
  16. package/build/screens/conversation_details_screen.js +1 -1
  17. package/build/screens/conversation_details_screen.js.map +1 -1
  18. package/build/utils/theme.d.ts +25 -10
  19. package/build/utils/theme.d.ts.map +1 -1
  20. package/build/utils/theme.js +47 -16
  21. package/build/utils/theme.js.map +1 -1
  22. package/build/vendor/tapestry/tokens.d.ts +14 -0
  23. package/build/vendor/tapestry/tokens.d.ts.map +1 -1
  24. package/build/vendor/tapestry/tokens.js +14 -0
  25. package/build/vendor/tapestry/tokens.js.map +1 -1
  26. package/package.json +2 -2
  27. package/src/components/conversation/disabled_replies_banners.tsx +1 -1
  28. package/src/components/conversation/message_form.tsx +3 -2
  29. package/src/components/display/image_attachment_preview.tsx +2 -2
  30. package/src/components/display/utils/button_colors.ts +3 -3
  31. package/src/components/display/utils/status_colors.ts +30 -30
  32. package/src/components/display/video_attachment_preview.tsx +2 -2
  33. package/src/screens/bug_report_screen.tsx +0 -25
  34. package/src/screens/conversation_details_screen.tsx +1 -1
  35. package/src/utils/theme.ts +73 -26
  36. package/src/vendor/tapestry/tokens.ts +14 -0
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/vendor/tapestry/tokens.ts"],"names":[],"mappings":"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","sourcesContent":["// Copied from `@planningcenter/tapestry` package.\n// Defining these tokens locally is a temporary solution until the package supports mobile.\n// Tokens Reference: https://planningcenter.github.io/tapestry/?path=/docs/foundations-design-tokens--docs\n\nconst colorPrimitives = {\n colorNeutral7: 'hsl(0, 0%, 7%)',\n colorNeutral12: 'hsl(0, 0%, 12%)',\n colorNeutral15: 'hsl(0, 0%, 15%)',\n colorNeutral17: 'hsl(0, 0%, 17%)',\n colorNeutral19: 'hsl(0, 0%, 19%)',\n colorNeutral24: 'hsl(0, 0%, 24%)',\n colorNeutral32: 'hsl(0, 0%, 32%)',\n colorNeutral45: 'hsl(0, 0%, 45%)',\n colorNeutral50: 'hsl(0, 0%, 50%)',\n colorNeutral58: 'hsl(0, 0%, 58%)',\n colorNeutral68: 'hsl(0, 0%, 68%)',\n colorNeutral81: 'hsl(0, 0%, 81%)',\n colorNeutral88: 'hsl(0, 0%, 88%)',\n colorNeutral93: 'hsl(0, 0%, 93%)',\n colorNeutral95: 'hsl(0, 0%, 95%)',\n colorNeutral97: 'hsl(0, 0%, 97%)',\n colorNeutral98: 'hsl(0, 0%, 98%)',\n borderColorStatusError: 'hsl(8, 60%, 47%)',\n borderColorStatusErrorDark: 'hsl(8, 60%, 55%)',\n colorNeutral100White: 'hsl(0, 0%, 100%)',\n fillColorInteractionDefault: 'hsl(204, 100%, 40%)',\n fillColorInteractionSwipeDefault: 'hsl(204, 100%, 40%)',\n fillColorInteractionSwipeSecondary: 'hsl(0, 0%, 24%)',\n fillColorStatusNeutralGhost: 'hsl(0, 0%, 93%)',\n fillColorStatusNeutralGhostDark: 'hsl(0, 0%, 18%)',\n textColorStatusNeutral: 'hsl(0, 0%, 24%)',\n textColorStatusNeutralDark: 'hsl(0, 0%, 80%)',\n iconColorStatusNeutralPrimary: 'hsl(0, 0%, 45%)',\n iconColorStatusNeutralPrimaryDark: 'hsl(0, 0%, 54%)',\n fillColorStatusErrorGhost: 'hsl(9, 59%, 93%)',\n fillColorStatusErrorGhostDark: 'hsl(8, 20%, 16%)',\n textColorStatusError: 'hsl(8, 60%, 45%)',\n textColorStatusErrorDark: 'hsl(8, 61%, 61%)',\n iconColorStatusErrorPrimary: 'hsl(8, 60%, 47%)',\n iconColorStatusErrorPrimaryDark: 'hsl(8, 60%, 55%)',\n fillColorStatusWarningGhost: 'hsl(42, 87%, 94%)',\n fillColorStatusWarningGhostDark: 'hsl(41, 18%, 17%)',\n textColorStatusWarning: 'hsl(42, 100%, 29%)',\n textColorStatusWarningDark: 'hsl(42, 84%, 55%)',\n iconColorStatusWarningPrimary: 'hsl(42, 84%, 49%)',\n iconColorStatusWarningPrimaryDark: 'hsl(42, 84%, 49%)',\n fillColorStatusSuccessGhost: 'hsl(97, 57%, 90%)',\n fillColorStatusSuccessGhostDark: 'hsl(125, 17%, 15%)',\n textColorStatusSuccess: 'hsl(97, 57%, 28%)',\n textColorStatusSuccessDark: 'hsl(97, 57%, 41%)',\n iconColorStatusSuccessPrimary: 'hsl(96, 57%, 33%)',\n iconColorStatusSuccessPrimaryDark: 'hsl(96, 57%, 41%)',\n fillColorStatusInfoGhost: 'hsl(203, 94%, 94%)',\n fillColorStatusInfoGhostDark: 'hsl(204, 32%, 15%)',\n textColorStatusInfo: 'hsl(204, 100%, 35%)',\n textColorStatusInfoDark: 'hsl(204, 68%, 55%)',\n iconColorStatusInfoPrimary: 'hsl(204, 100%, 40%)',\n iconColorStatusInfoPrimaryDark: 'hsl(204, 78%, 38%)',\n fillColorTransparencyLight010: 'hsla(0, 0%, 100%, 0.1)',\n fillColorTransparencyLight020: 'hsla(0, 0%, 100%, 0.2)',\n fillColorTransparencyLight030: 'hsla(0, 0%, 100%, 0.3)',\n fillColorTransparencyLight040: 'hsla(0, 0%, 100%, 0.4)',\n fillColorTransparencyLight050: 'hsla(0, 0%, 100%, 0.5)',\n fillColorTransparencyLight060: 'hsla(0, 0%, 100%, 0.6)',\n fillColorTransparencyLight070: 'hsla(0, 0%, 100%, 0.7)',\n fillColorTransparencyLight080: 'hsla(0, 0%, 100%, 0.8)',\n fillColorTransparencyLight090: 'hsla(0, 0%, 100%, 0.9)',\n fillColorTransparencyDark010: 'hsla(0, 0%, 0%, 0.1)',\n fillColorTransparencyDark020: 'hsla(0, 0%, 0%, 0.2)',\n fillColorTransparencyDark030: 'hsla(0, 0%, 0%, 0.3)',\n fillColorTransparencyDark040: 'hsla(0, 0%, 0%, 0.4)',\n fillColorTransparencyDark050: 'hsla(0, 0%, 0%, 0.5)',\n fillColorTransparencyDark060: 'hsla(0, 0%, 0%, 0.6)',\n fillColorTransparencyDark070: 'hsla(0, 0%, 0%, 0.7)',\n fillColorTransparencyDark080: 'hsla(0, 0%, 0%, 0.8)',\n fillColorTransparencyDark090: 'hsla(0, 0%, 0%, 0.9)',\n} as const\n\nconst numericPrimtives = {\n spacingFourth: 2,\n spacingHalf: 4,\n spacing1: 8,\n spacing2: 16,\n spacing3: 24,\n spacing4: 32,\n spacing5: 40,\n spacing6: 48,\n spacing7: 56,\n borderRadiusSm: 2,\n borderRadiusMd: 4,\n borderRadiusLg: 8,\n borderRadiusXl: 16,\n borderRadiusRound: 56,\n borderSizeDefault: 1,\n borderSizeThick: 2,\n fontWeightNormal: '400',\n fontWeightMedium: '500',\n fontWeightSemiBold: '600',\n fontWeightBold: '700',\n fontSize4xl: 32,\n fontSize3xl: 28,\n fontSize2xl: 24,\n fontSizeXl: 20,\n fontSizeLg: 18,\n fontSizeMd: 16,\n fontSizeSm: 14,\n fontSizeXs: 12,\n fontSize2xs: 10,\n} as const\n\nconst numericAliases = {\n borderRadiusDefault: numericPrimtives.borderRadiusMd,\n} as const\n\n// These tokens are specfic to Chat will not be replaced by the Tapestry library\nconst localChatTokens = {\n colorInteractionOnlineDefault: 'hsl(123, 38%, 57%)',\n fillColorInteractionDefaultDark: 'hsl(204, 100%, 40%)',\n fillColorStatusErrorMedium: 'hsl(0, 72%, 45%)',\n} as const\n\nexport const tokens = {\n ...colorPrimitives,\n ...numericPrimtives,\n ...numericAliases,\n ...localChatTokens,\n}\n"]}
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../../src/vendor/tapestry/tokens.ts"],"names":[],"mappings":"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","sourcesContent":["// Copied from `@planningcenter/tapestry` package.\n// Defining these tokens locally is a temporary solution until the package supports mobile.\n// Tokens Reference: https://planningcenter.github.io/tapestry/?path=/docs/foundations-design-tokens--docs\n\nconst colorPrimitives = {\n colorNeutral7: 'hsl(0, 0%, 7%)',\n colorNeutral12: 'hsl(0, 0%, 12%)',\n colorNeutral15: 'hsl(0, 0%, 15%)',\n colorNeutral17: 'hsl(0, 0%, 17%)',\n colorNeutral19: 'hsl(0, 0%, 19%)',\n colorNeutral24: 'hsl(0, 0%, 24%)',\n colorNeutral32: 'hsl(0, 0%, 32%)',\n colorNeutral45: 'hsl(0, 0%, 45%)',\n colorNeutral50: 'hsl(0, 0%, 50%)',\n colorNeutral58: 'hsl(0, 0%, 58%)',\n colorNeutral68: 'hsl(0, 0%, 68%)',\n colorNeutral81: 'hsl(0, 0%, 81%)',\n colorNeutral88: 'hsl(0, 0%, 88%)',\n colorNeutral93: 'hsl(0, 0%, 93%)',\n colorNeutral95: 'hsl(0, 0%, 95%)',\n colorNeutral97: 'hsl(0, 0%, 97%)',\n colorNeutral98: 'hsl(0, 0%, 98%)',\n borderColorStatusInfo: 'hsl(204, 100%, 40%)',\n borderColorStatusInfoDark: 'hsl(204, 78%, 38%)',\n borderColorStatusSuccess: 'hsl(96, 57%, 33%)',\n borderColorStatusSuccessDark: 'hsl(96, 57%, 41%)',\n borderColorStatusWarning: 'hsl(42, 84%, 49%)',\n borderColorStatusWarningDark: 'hsl(42, 84%, 49%)',\n borderColorStatusError: 'hsl(8, 60%, 47%)',\n borderColorStatusErrorDark: 'hsl(8, 60%, 55%)',\n colorNeutral100White: 'hsl(0, 0%, 100%)',\n fillColorInteractionDefault: 'hsl(204, 100%, 40%)',\n fillColorInteractionSwipeDefault: 'hsl(204, 100%, 40%)',\n fillColorInteractionSwipeSecondary: 'hsl(0, 0%, 24%)',\n fillColorStatusNeutralGhost: 'hsl(0, 0%, 93%)',\n fillColorStatusNeutralGhostDark: 'hsl(0, 0%, 18%)',\n textColorStatusNeutral: 'hsl(0, 0%, 24%)',\n textColorStatusNeutralDark: 'hsl(0, 0%, 80%)',\n iconColorStatusNeutralPrimary: 'hsl(0, 0%, 45%)',\n iconColorStatusNeutralPrimaryDark: 'hsl(0, 0%, 54%)',\n fillColorStatusErrorSolid: 'hsl(8, 60%, 47%)',\n fillColorStatusErrorSolidDark: 'hsl(8, 60%, 55%)',\n fillColorStatusErrorGhost: 'hsl(9, 59%, 93%)',\n fillColorStatusErrorGhostDark: 'hsl(8, 20%, 16%)',\n textColorStatusError: 'hsl(8, 60%, 45%)',\n textColorStatusErrorDark: 'hsl(8, 61%, 61%)',\n iconColorStatusErrorPrimary: 'hsl(8, 60%, 47%)',\n iconColorStatusErrorPrimaryDark: 'hsl(8, 60%, 55%)',\n fillColorStatusWarningSolid: 'hsl(42, 84%, 49%)',\n fillColorStatusWarningSolidDark: 'hsl(42, 84%, 49%)',\n fillColorStatusWarningGhost: 'hsl(42, 87%, 94%)',\n fillColorStatusWarningGhostDark: 'hsl(41, 18%, 17%)',\n textColorStatusWarning: 'hsl(42, 100%, 29%)',\n textColorStatusWarningDark: 'hsl(42, 84%, 55%)',\n iconColorStatusWarningPrimary: 'hsl(42, 84%, 49%)',\n iconColorStatusWarningPrimaryDark: 'hsl(42, 84%, 49%)',\n fillColorStatusSuccessSolid: 'hsl(96, 57%, 33%)',\n fillColorStatusSuccessSolidDark: 'hsl(96, 57%, 41%)',\n fillColorStatusSuccessGhost: 'hsl(97, 57%, 90%)',\n fillColorStatusSuccessGhostDark: 'hsl(125, 17%, 15%)',\n textColorStatusSuccess: 'hsl(97, 57%, 28%)',\n textColorStatusSuccessDark: 'hsl(97, 57%, 41%)',\n iconColorStatusSuccessPrimary: 'hsl(96, 57%, 33%)',\n iconColorStatusSuccessPrimaryDark: 'hsl(96, 57%, 41%)',\n fillColorStatusInfoSolid: 'hsl(204, 100%, 40%)',\n fillColorStatusInfoSolidDark: 'hsl(204, 78%, 38%)',\n fillColorStatusInfoGhost: 'hsl(203, 94%, 94%)',\n fillColorStatusInfoGhostDark: 'hsl(204, 32%, 15%)',\n textColorStatusInfo: 'hsl(204, 100%, 35%)',\n textColorStatusInfoDark: 'hsl(204, 68%, 55%)',\n iconColorStatusInfoPrimary: 'hsl(204, 100%, 40%)',\n iconColorStatusInfoPrimaryDark: 'hsl(204, 78%, 38%)',\n fillColorTransparencyLight010: 'hsla(0, 0%, 100%, 0.1)',\n fillColorTransparencyLight020: 'hsla(0, 0%, 100%, 0.2)',\n fillColorTransparencyLight030: 'hsla(0, 0%, 100%, 0.3)',\n fillColorTransparencyLight040: 'hsla(0, 0%, 100%, 0.4)',\n fillColorTransparencyLight050: 'hsla(0, 0%, 100%, 0.5)',\n fillColorTransparencyLight060: 'hsla(0, 0%, 100%, 0.6)',\n fillColorTransparencyLight070: 'hsla(0, 0%, 100%, 0.7)',\n fillColorTransparencyLight080: 'hsla(0, 0%, 100%, 0.8)',\n fillColorTransparencyLight090: 'hsla(0, 0%, 100%, 0.9)',\n fillColorTransparencyDark010: 'hsla(0, 0%, 0%, 0.1)',\n fillColorTransparencyDark020: 'hsla(0, 0%, 0%, 0.2)',\n fillColorTransparencyDark030: 'hsla(0, 0%, 0%, 0.3)',\n fillColorTransparencyDark040: 'hsla(0, 0%, 0%, 0.4)',\n fillColorTransparencyDark050: 'hsla(0, 0%, 0%, 0.5)',\n fillColorTransparencyDark060: 'hsla(0, 0%, 0%, 0.6)',\n fillColorTransparencyDark070: 'hsla(0, 0%, 0%, 0.7)',\n fillColorTransparencyDark080: 'hsla(0, 0%, 0%, 0.8)',\n fillColorTransparencyDark090: 'hsla(0, 0%, 0%, 0.9)',\n} as const\n\nconst numericPrimtives = {\n spacingFourth: 2,\n spacingHalf: 4,\n spacing1: 8,\n spacing2: 16,\n spacing3: 24,\n spacing4: 32,\n spacing5: 40,\n spacing6: 48,\n spacing7: 56,\n borderRadiusSm: 2,\n borderRadiusMd: 4,\n borderRadiusLg: 8,\n borderRadiusXl: 16,\n borderRadiusRound: 56,\n borderSizeDefault: 1,\n borderSizeThick: 2,\n fontWeightNormal: '400',\n fontWeightMedium: '500',\n fontWeightSemiBold: '600',\n fontWeightBold: '700',\n fontSize4xl: 32,\n fontSize3xl: 28,\n fontSize2xl: 24,\n fontSizeXl: 20,\n fontSizeLg: 18,\n fontSizeMd: 16,\n fontSizeSm: 14,\n fontSizeXs: 12,\n fontSize2xs: 10,\n} as const\n\nconst numericAliases = {\n borderRadiusDefault: numericPrimtives.borderRadiusMd,\n} as const\n\n// These tokens are specfic to Chat will not be replaced by the Tapestry library\nconst localChatTokens = {\n colorInteractionOnlineDefault: 'hsl(123, 38%, 57%)',\n fillColorInteractionDefaultDark: 'hsl(204, 100%, 40%)',\n fillColorStatusErrorMedium: 'hsl(0, 72%, 45%)',\n} as const\n\nexport const tokens = {\n ...colorPrimitives,\n ...numericPrimtives,\n ...numericAliases,\n ...localChatTokens,\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planningcenter/chat-react-native",
3
- "version": "3.9.3-rc.2",
3
+ "version": "3.10.0",
4
4
  "description": "",
5
5
  "main": "build/index.js",
6
6
  "types": "build/index.d.ts",
@@ -55,5 +55,5 @@
55
55
  "prettier": "^3.4.2",
56
56
  "typescript": "<5.6.0"
57
57
  },
58
- "gitHead": "de49441aae912740d1ceb6b140464b535e6b4a44"
58
+ "gitHead": "13ed62e0777dcfc153cb61b2e9f1bb4ff0cabc88"
59
59
  }
@@ -42,7 +42,7 @@ const useStyles = () => {
42
42
  baseBanner: {
43
43
  paddingHorizontal: 16,
44
44
  paddingVertical: 4,
45
- backgroundColor: colors.statusNeutralBackground,
45
+ backgroundColor: colors.statusNeutralComposedBackground,
46
46
  borderTopWidth: 1,
47
47
  borderTopColor: colors.borderColorDefaultBase,
48
48
  },
@@ -291,6 +291,7 @@ function MessageFormInput() {
291
291
  return (
292
292
  <View style={styles.textInputBoundary}>
293
293
  <MessageFormAttachments />
294
+ {attachmentError ? <Text style={styles.inputErrorMessage}>{attachmentError}</Text> : null}
294
295
  <View style={styles.textInputRow}>
295
296
  {usingGiphy ? (
296
297
  <View style={styles.giphyBadge}>
@@ -313,8 +314,6 @@ function MessageFormInput() {
313
314
  submitBehavior={usingGiphy ? 'submit' : 'newline'}
314
315
  />
315
316
  </View>
316
-
317
- {attachmentError ? <Text style={styles.inputErrorMessage}>{attachmentError}</Text> : null}
318
317
  </View>
319
318
  )
320
319
  }
@@ -646,6 +645,8 @@ const useMessageFormStyles = () => {
646
645
  inputErrorMessage: {
647
646
  color: theme.colors.statusErrorText,
648
647
  fontSize: 14,
648
+ paddingHorizontal: 16,
649
+ paddingVertical: 4,
649
650
  },
650
651
  editingIndicator: {
651
652
  flexDirection: 'row',
@@ -81,7 +81,7 @@ const useStyles = ({ size = 'md', error = false }: Partial<ImageAttachmentPrevie
81
81
  overflow: 'hidden',
82
82
  borderRadius: borderRadius,
83
83
  borderWidth: error ? 2 : 1,
84
- borderColor: error ? colors.borderColorStatusError : colors.borderColorDefaultBase,
84
+ borderColor: error ? colors.statusErrorBorder : colors.borderColorDefaultBase,
85
85
  },
86
86
  image: {
87
87
  opacity: error ? 0.5 : 1,
@@ -97,7 +97,7 @@ const useStyles = ({ size = 'md', error = false }: Partial<ImageAttachmentPrevie
97
97
  width: 20,
98
98
  },
99
99
  errorBadge: {
100
- backgroundColor: colors.borderColorStatusError,
100
+ backgroundColor: colors.statusErrorBorder,
101
101
  position: 'absolute',
102
102
  bottom: 0,
103
103
  right: 0,
@@ -51,7 +51,7 @@ function useButtonColorOptionMap(): ButtonColorOptionMap {
51
51
 
52
52
  return {
53
53
  interaction: colors.interaction,
54
- danger: colors.fillColorStatusErrorMedium,
54
+ danger: colors.statusErrorFill,
55
55
  disabled: colors.textColorDefaultDisabled,
56
56
  }
57
57
  }
@@ -61,7 +61,7 @@ function useIconButtonColorOptionMap(): IconButtonColorOptionMap {
61
61
  const { colors } = useTheme()
62
62
 
63
63
  return {
64
- danger: colors.fillColorStatusErrorMedium,
64
+ danger: colors.statusErrorFill,
65
65
  disabled: colors.textColorDefaultDisabled,
66
66
  interaction: colors.interaction,
67
67
  neutral: colors.iconColorDefaultSecondary,
@@ -77,7 +77,7 @@ function useGradientColorMap(): GradientColorMap {
77
77
 
78
78
  return {
79
79
  interaction: [defaultColorStart, defaultColorEnd],
80
- danger: [colors.fillColorStatusErrorMedium, colors.fillColorStatusErrorMedium],
80
+ danger: [colors.statusErrorFill, colors.statusErrorFill],
81
81
  disabled: [
82
82
  colors.fillColorButtonNeutralSolidDisabled,
83
83
  colors.fillColorButtonNeutralSolidDisabled,
@@ -37,49 +37,49 @@ type StatusAppearanceColors = Record<
37
37
  function useStatusColorAppearanceMap(): StatusAppearanceColors {
38
38
  const {
39
39
  colors: {
40
- statusErrorBackground,
41
- statusErrorText,
42
- statusErrorIcon,
43
- statusInfoBackground,
44
- statusInfoText,
45
- statusInfoIcon,
46
- statusNeutralBackground,
47
- statusNeutralText,
48
- statusNeutralIcon,
49
- statusSuccessBackground,
50
- statusSuccessText,
51
- statusSuccessIcon,
52
- statusWarningBackground,
53
- statusWarningText,
54
- statusWarningIcon,
40
+ statusErrorComposedBackground,
41
+ statusErrorComposedText,
42
+ statusErrorComposedIcon,
43
+ statusInfoComposedBackground,
44
+ statusInfoComposedText,
45
+ statusInfoComposedIcon,
46
+ statusNeutralComposedBackground,
47
+ statusNeutralComposedText,
48
+ statusNeutralComposedIcon,
49
+ statusSuccessComposedBackground,
50
+ statusSuccessComposedText,
51
+ statusSuccessComposedIcon,
52
+ statusWarningComposedBackground,
53
+ statusWarningComposedText,
54
+ statusWarningComposedIcon,
55
55
  },
56
56
  } = useTheme()
57
57
 
58
58
  return {
59
59
  error: {
60
- background: statusErrorBackground,
61
- text: statusErrorText,
62
- icon: statusErrorIcon,
60
+ background: statusErrorComposedBackground,
61
+ text: statusErrorComposedText,
62
+ icon: statusErrorComposedIcon,
63
63
  },
64
64
  info: {
65
- background: statusInfoBackground,
66
- text: statusInfoText,
67
- icon: statusInfoIcon,
65
+ background: statusInfoComposedBackground,
66
+ text: statusInfoComposedText,
67
+ icon: statusInfoComposedIcon,
68
68
  },
69
69
  neutral: {
70
- background: statusNeutralBackground,
71
- text: statusNeutralText,
72
- icon: statusNeutralIcon,
70
+ background: statusNeutralComposedBackground,
71
+ text: statusNeutralComposedText,
72
+ icon: statusNeutralComposedIcon,
73
73
  },
74
74
  success: {
75
- background: statusSuccessBackground,
76
- text: statusSuccessText,
77
- icon: statusSuccessIcon,
75
+ background: statusSuccessComposedBackground,
76
+ text: statusSuccessComposedText,
77
+ icon: statusSuccessComposedIcon,
78
78
  },
79
79
  warning: {
80
- background: statusWarningBackground,
81
- text: statusWarningText,
82
- icon: statusWarningIcon,
80
+ background: statusWarningComposedBackground,
81
+ text: statusWarningComposedText,
82
+ icon: statusWarningComposedIcon,
83
83
  },
84
84
  }
85
85
  }
@@ -93,7 +93,7 @@ const useStyles = ({ error }: Partial<VideoAttachmentPreviewProps>) => {
93
93
  alignItems: 'center',
94
94
  gap: 8,
95
95
  backgroundColor: colors.fillColorNeutral070,
96
- borderColor: error ? colors.borderColorStatusError : colors.borderColorDefaultBase,
96
+ borderColor: error ? colors.statusErrorBorder : colors.borderColorDefaultBase,
97
97
  borderWidth: error ? 2 : 1,
98
98
  borderRadius,
99
99
  padding: 4,
@@ -136,7 +136,7 @@ const useStyles = ({ error }: Partial<VideoAttachmentPreviewProps>) => {
136
136
  alignSelf: 'flex-start',
137
137
  },
138
138
  errorBadge: {
139
- backgroundColor: colors.borderColorStatusError,
139
+ backgroundColor: colors.statusErrorBorder,
140
140
  position: 'absolute',
141
141
  bottom: 0,
142
142
  right: 0,
@@ -254,9 +254,6 @@ const useStyles = () => {
254
254
  fullHeight: {
255
255
  flex: 1,
256
256
  },
257
- centeredText: {
258
- textAlign: 'center',
259
- },
260
257
  description: {
261
258
  color: colors.textColorDefaultSecondary,
262
259
  },
@@ -295,28 +292,6 @@ const useStyles = () => {
295
292
  attachButton: {
296
293
  alignSelf: 'flex-start',
297
294
  },
298
- videoPreviewContainer: {
299
- flexDirection: 'row',
300
- justifyContent: 'space-between',
301
- alignItems: 'center',
302
- gap: 16,
303
- },
304
- videoPreviewTextContainer: {
305
- flexDirection: 'row',
306
- gap: 4,
307
- alignItems: 'center',
308
- flexShrink: 1,
309
- },
310
- videoPreviewText: {
311
- flexShrink: 1,
312
- color: colors.textColorDefaultSecondary,
313
- },
314
- videoPreviewFileIcon: {
315
- color: colors.iconColorDefaultSecondary,
316
- },
317
- videoPreviewRemoveButtonIcon: {
318
- color: colors.statusErrorIcon,
319
- },
320
295
  footer: { gap: 8 },
321
296
  successIcon: {
322
297
  color: colors.statusSuccessIcon,
@@ -596,7 +596,7 @@ const useStyles = ({ isStart, isEnd }: { isStart?: boolean; isEnd?: boolean } =
596
596
  inputValidationContainer: {
597
597
  paddingTop: 8,
598
598
  borderTopWidth: 1,
599
- borderColor: colors.borderColorStatusError,
599
+ borderColor: colors.statusErrorBorder,
600
600
  },
601
601
  inputValidationText: {
602
602
  color: colors.statusErrorText,
@@ -58,22 +58,37 @@ interface ChatColors {
58
58
  iOSModalHeaderButtonTextColor: OpaqueColorValue | string | undefined
59
59
  androidSwitchThumbColor: string | undefined
60
60
  testColor: string
61
- statusInfoIcon: string
62
- statusInfoText: string
63
- statusInfoBackground: string
64
61
  statusSuccessIcon: string
65
62
  statusSuccessText: string
66
- statusSuccessBackground: string
63
+ statusSuccessBorder: string
64
+ statusSuccessFill: string
65
+ statusInfoIcon: string
66
+ statusInfoText: string
67
+ statusInfoBorder: string
68
+ statusInfoFill: string
67
69
  statusWarningIcon: string
68
70
  statusWarningText: string
69
- statusWarningBackground: string
71
+ statusWarningBorder: string
72
+ statusWarningFill: string
70
73
  statusErrorIcon: string
71
74
  statusErrorText: string
72
- statusErrorBackground: string
73
- statusNeutralIcon: string
74
- statusNeutralText: string
75
- statusNeutralBackground: string
76
- borderColorStatusError: string
75
+ statusErrorBorder: string
76
+ statusErrorFill: string
77
+ statusSuccessComposedIcon: string
78
+ statusSuccessComposedText: string
79
+ statusSuccessComposedBackground: string
80
+ statusInfoComposedIcon: string
81
+ statusInfoComposedText: string
82
+ statusInfoComposedBackground: string
83
+ statusWarningComposedIcon: string
84
+ statusWarningComposedText: string
85
+ statusWarningComposedBackground: string
86
+ statusErrorComposedIcon: string
87
+ statusErrorComposedText: string
88
+ statusErrorComposedBackground: string
89
+ statusNeutralComposedIcon: string
90
+ statusNeutralComposedText: string
91
+ statusNeutralComposedBackground: string
77
92
  }
78
93
 
79
94
  const colorsChatLight: ChatColors = {
@@ -87,20 +102,35 @@ const colorsChatLight: ChatColors = {
87
102
  testColor: 'hotpink',
88
103
  statusInfoIcon: tokens.iconColorStatusInfoPrimary,
89
104
  statusInfoText: tokens.textColorStatusInfo,
90
- statusInfoBackground: tokens.fillColorStatusInfoGhost,
105
+ statusInfoBorder: tokens.borderColorStatusInfo,
106
+ statusInfoFill: tokens.fillColorStatusInfoSolid,
91
107
  statusSuccessIcon: tokens.iconColorStatusSuccessPrimary,
92
108
  statusSuccessText: tokens.textColorStatusSuccess,
93
- statusSuccessBackground: tokens.fillColorStatusSuccessGhost,
109
+ statusSuccessBorder: tokens.borderColorStatusSuccess,
110
+ statusSuccessFill: tokens.fillColorStatusSuccessSolid,
94
111
  statusWarningIcon: tokens.iconColorStatusWarningPrimary,
95
112
  statusWarningText: tokens.textColorStatusWarning,
96
- statusWarningBackground: tokens.fillColorStatusWarningGhost,
113
+ statusWarningBorder: tokens.borderColorStatusWarning,
114
+ statusWarningFill: tokens.fillColorStatusWarningSolid,
97
115
  statusErrorIcon: tokens.iconColorStatusErrorPrimary,
98
116
  statusErrorText: tokens.textColorStatusError,
99
- statusErrorBackground: tokens.fillColorStatusErrorGhost,
100
- statusNeutralIcon: tokens.iconColorStatusNeutralPrimary,
101
- statusNeutralText: tokens.textColorStatusNeutral,
102
- statusNeutralBackground: tokens.fillColorStatusNeutralGhost,
103
- borderColorStatusError: tokens.borderColorStatusError,
117
+ statusErrorBorder: tokens.borderColorStatusError,
118
+ statusErrorFill: tokens.fillColorStatusErrorSolid,
119
+ statusInfoComposedIcon: tokens.iconColorStatusInfoPrimary,
120
+ statusInfoComposedText: tokens.textColorStatusInfo,
121
+ statusInfoComposedBackground: tokens.fillColorStatusInfoGhost,
122
+ statusSuccessComposedIcon: tokens.iconColorStatusSuccessPrimary,
123
+ statusSuccessComposedText: tokens.textColorStatusSuccess,
124
+ statusSuccessComposedBackground: tokens.fillColorStatusSuccessGhost,
125
+ statusWarningComposedIcon: tokens.iconColorStatusWarningPrimary,
126
+ statusWarningComposedText: tokens.textColorStatusWarning,
127
+ statusWarningComposedBackground: tokens.fillColorStatusWarningGhost,
128
+ statusErrorComposedIcon: tokens.iconColorStatusErrorPrimary,
129
+ statusErrorComposedText: tokens.textColorStatusError,
130
+ statusErrorComposedBackground: tokens.fillColorStatusErrorGhost,
131
+ statusNeutralComposedIcon: tokens.iconColorStatusNeutralPrimary,
132
+ statusNeutralComposedText: tokens.textColorStatusNeutral,
133
+ statusNeutralComposedBackground: tokens.fillColorStatusNeutralGhost,
104
134
  }
105
135
 
106
136
  const colorsChatDark: ChatColors = {
@@ -114,20 +144,37 @@ const colorsChatDark: ChatColors = {
114
144
  testColor: 'pink',
115
145
  statusInfoIcon: tokens.iconColorStatusInfoPrimaryDark,
116
146
  statusInfoText: tokens.textColorStatusInfoDark,
117
- statusInfoBackground: tokens.fillColorStatusInfoGhostDark,
147
+ statusInfoBorder: tokens.borderColorStatusInfoDark,
148
+ statusInfoFill: tokens.fillColorStatusInfoSolidDark,
118
149
  statusSuccessIcon: tokens.iconColorStatusSuccessPrimaryDark,
119
150
  statusSuccessText: tokens.textColorStatusSuccessDark,
120
- statusSuccessBackground: tokens.fillColorStatusSuccessGhostDark,
151
+ statusSuccessBorder: tokens.borderColorStatusSuccessDark,
152
+ statusSuccessFill: tokens.fillColorStatusSuccessSolidDark,
121
153
  statusWarningIcon: tokens.iconColorStatusWarningPrimaryDark,
122
154
  statusWarningText: tokens.textColorStatusWarningDark,
123
- statusWarningBackground: tokens.fillColorStatusWarningGhostDark,
155
+ statusWarningBorder: tokens.borderColorStatusWarningDark,
156
+ statusWarningFill: tokens.fillColorStatusWarningSolidDark,
124
157
  statusErrorIcon: tokens.iconColorStatusErrorPrimaryDark,
125
158
  statusErrorText: tokens.textColorStatusErrorDark,
126
- statusErrorBackground: tokens.fillColorStatusErrorGhostDark,
127
- statusNeutralIcon: tokens.iconColorStatusNeutralPrimaryDark,
128
- statusNeutralText: tokens.textColorStatusNeutralDark,
129
- statusNeutralBackground: tokens.fillColorStatusNeutralGhostDark,
130
- borderColorStatusError: tokens.borderColorStatusErrorDark,
159
+ statusErrorBorder: tokens.borderColorStatusErrorDark,
160
+ statusErrorFill: tokens.fillColorStatusErrorSolidDark,
161
+
162
+ // Note: CCA inverts composed status colors in dark mode
163
+ statusInfoComposedIcon: tokens.iconColorStatusInfoPrimaryDark,
164
+ statusInfoComposedText: tokens.textColorStatusInfoDark,
165
+ statusInfoComposedBackground: tokens.fillColorStatusInfoGhostDark,
166
+ statusSuccessComposedIcon: tokens.iconColorStatusSuccessPrimaryDark,
167
+ statusSuccessComposedText: tokens.textColorStatusSuccessDark,
168
+ statusSuccessComposedBackground: tokens.fillColorStatusSuccessGhostDark,
169
+ statusWarningComposedIcon: tokens.iconColorStatusWarningPrimaryDark,
170
+ statusWarningComposedText: tokens.textColorStatusWarningDark,
171
+ statusWarningComposedBackground: tokens.fillColorStatusWarningGhostDark,
172
+ statusErrorComposedIcon: tokens.iconColorStatusErrorPrimaryDark,
173
+ statusErrorComposedText: tokens.textColorStatusErrorDark,
174
+ statusErrorComposedBackground: tokens.fillColorStatusErrorGhostDark,
175
+ statusNeutralComposedIcon: tokens.iconColorStatusNeutralPrimaryDark,
176
+ statusNeutralComposedText: tokens.textColorStatusNeutralDark,
177
+ statusNeutralComposedBackground: tokens.fillColorStatusNeutralGhostDark,
131
178
  }
132
179
 
133
180
  const chatThemeColorMap = {
@@ -20,6 +20,12 @@ const colorPrimitives = {
20
20
  colorNeutral95: 'hsl(0, 0%, 95%)',
21
21
  colorNeutral97: 'hsl(0, 0%, 97%)',
22
22
  colorNeutral98: 'hsl(0, 0%, 98%)',
23
+ borderColorStatusInfo: 'hsl(204, 100%, 40%)',
24
+ borderColorStatusInfoDark: 'hsl(204, 78%, 38%)',
25
+ borderColorStatusSuccess: 'hsl(96, 57%, 33%)',
26
+ borderColorStatusSuccessDark: 'hsl(96, 57%, 41%)',
27
+ borderColorStatusWarning: 'hsl(42, 84%, 49%)',
28
+ borderColorStatusWarningDark: 'hsl(42, 84%, 49%)',
23
29
  borderColorStatusError: 'hsl(8, 60%, 47%)',
24
30
  borderColorStatusErrorDark: 'hsl(8, 60%, 55%)',
25
31
  colorNeutral100White: 'hsl(0, 0%, 100%)',
@@ -32,24 +38,32 @@ const colorPrimitives = {
32
38
  textColorStatusNeutralDark: 'hsl(0, 0%, 80%)',
33
39
  iconColorStatusNeutralPrimary: 'hsl(0, 0%, 45%)',
34
40
  iconColorStatusNeutralPrimaryDark: 'hsl(0, 0%, 54%)',
41
+ fillColorStatusErrorSolid: 'hsl(8, 60%, 47%)',
42
+ fillColorStatusErrorSolidDark: 'hsl(8, 60%, 55%)',
35
43
  fillColorStatusErrorGhost: 'hsl(9, 59%, 93%)',
36
44
  fillColorStatusErrorGhostDark: 'hsl(8, 20%, 16%)',
37
45
  textColorStatusError: 'hsl(8, 60%, 45%)',
38
46
  textColorStatusErrorDark: 'hsl(8, 61%, 61%)',
39
47
  iconColorStatusErrorPrimary: 'hsl(8, 60%, 47%)',
40
48
  iconColorStatusErrorPrimaryDark: 'hsl(8, 60%, 55%)',
49
+ fillColorStatusWarningSolid: 'hsl(42, 84%, 49%)',
50
+ fillColorStatusWarningSolidDark: 'hsl(42, 84%, 49%)',
41
51
  fillColorStatusWarningGhost: 'hsl(42, 87%, 94%)',
42
52
  fillColorStatusWarningGhostDark: 'hsl(41, 18%, 17%)',
43
53
  textColorStatusWarning: 'hsl(42, 100%, 29%)',
44
54
  textColorStatusWarningDark: 'hsl(42, 84%, 55%)',
45
55
  iconColorStatusWarningPrimary: 'hsl(42, 84%, 49%)',
46
56
  iconColorStatusWarningPrimaryDark: 'hsl(42, 84%, 49%)',
57
+ fillColorStatusSuccessSolid: 'hsl(96, 57%, 33%)',
58
+ fillColorStatusSuccessSolidDark: 'hsl(96, 57%, 41%)',
47
59
  fillColorStatusSuccessGhost: 'hsl(97, 57%, 90%)',
48
60
  fillColorStatusSuccessGhostDark: 'hsl(125, 17%, 15%)',
49
61
  textColorStatusSuccess: 'hsl(97, 57%, 28%)',
50
62
  textColorStatusSuccessDark: 'hsl(97, 57%, 41%)',
51
63
  iconColorStatusSuccessPrimary: 'hsl(96, 57%, 33%)',
52
64
  iconColorStatusSuccessPrimaryDark: 'hsl(96, 57%, 41%)',
65
+ fillColorStatusInfoSolid: 'hsl(204, 100%, 40%)',
66
+ fillColorStatusInfoSolidDark: 'hsl(204, 78%, 38%)',
53
67
  fillColorStatusInfoGhost: 'hsl(203, 94%, 94%)',
54
68
  fillColorStatusInfoGhostDark: 'hsl(204, 32%, 15%)',
55
69
  textColorStatusInfo: 'hsl(204, 100%, 35%)',