@sendbird/uikit-react-native-foundation 2.1.0 → 2.3.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 (123) hide show
  1. package/lib/commonjs/assets/icon/icon-radio-off.png +0 -0
  2. package/lib/commonjs/assets/icon/icon-radio-off@2x.png +0 -0
  3. package/lib/commonjs/assets/icon/icon-radio-off@3x.png +0 -0
  4. package/lib/commonjs/assets/icon/icon-radio-on.png +0 -0
  5. package/lib/commonjs/assets/icon/icon-radio-on@2x.png +0 -0
  6. package/lib/commonjs/assets/icon/icon-radio-on@3x.png +0 -0
  7. package/lib/commonjs/assets/icon/index.js +2 -0
  8. package/lib/commonjs/assets/icon/index.js.map +1 -1
  9. package/lib/commonjs/components/Modal/index.js +3 -3
  10. package/lib/commonjs/components/Modal/index.js.map +1 -1
  11. package/lib/commonjs/components/RegexText/index.js +50 -0
  12. package/lib/commonjs/components/RegexText/index.js.map +1 -0
  13. package/lib/commonjs/components/URLParsedText/index.js +15 -19
  14. package/lib/commonjs/components/URLParsedText/index.js.map +1 -1
  15. package/lib/commonjs/index.js +8 -0
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/styles/createStyleSheet.js +2 -0
  18. package/lib/commonjs/styles/createStyleSheet.js.map +1 -1
  19. package/lib/commonjs/theme/DarkUIKitTheme.js +22 -0
  20. package/lib/commonjs/theme/DarkUIKitTheme.js.map +1 -1
  21. package/lib/commonjs/theme/LightUIKitTheme.js +22 -0
  22. package/lib/commonjs/theme/LightUIKitTheme.js.map +1 -1
  23. package/lib/commonjs/types.js.map +1 -1
  24. package/lib/commonjs/ui/Avatar/AvatarGroup.js +6 -7
  25. package/lib/commonjs/ui/Avatar/AvatarGroup.js.map +1 -1
  26. package/lib/commonjs/ui/Badge/index.js +1 -1
  27. package/lib/commonjs/ui/Badge/index.js.map +1 -1
  28. package/lib/commonjs/ui/BottomSheet/index.js +5 -2
  29. package/lib/commonjs/ui/BottomSheet/index.js.map +1 -1
  30. package/lib/commonjs/ui/Dialog/index.js +2 -1
  31. package/lib/commonjs/ui/Dialog/index.js.map +1 -1
  32. package/lib/commonjs/ui/GroupChannelPreview/index.js +16 -8
  33. package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -1
  34. package/lib/module/assets/icon/icon-radio-off.png +0 -0
  35. package/lib/module/assets/icon/icon-radio-off@2x.png +0 -0
  36. package/lib/module/assets/icon/icon-radio-off@3x.png +0 -0
  37. package/lib/module/assets/icon/icon-radio-on.png +0 -0
  38. package/lib/module/assets/icon/icon-radio-on@2x.png +0 -0
  39. package/lib/module/assets/icon/icon-radio-on@3x.png +0 -0
  40. package/lib/module/assets/icon/index.js +2 -0
  41. package/lib/module/assets/icon/index.js.map +1 -1
  42. package/lib/module/components/Modal/index.js +3 -3
  43. package/lib/module/components/Modal/index.js.map +1 -1
  44. package/lib/module/components/RegexText/index.js +38 -0
  45. package/lib/module/components/RegexText/index.js.map +1 -0
  46. package/lib/module/components/URLParsedText/index.js +13 -15
  47. package/lib/module/components/URLParsedText/index.js.map +1 -1
  48. package/lib/module/index.js +1 -0
  49. package/lib/module/index.js.map +1 -1
  50. package/lib/module/styles/createStyleSheet.js +2 -0
  51. package/lib/module/styles/createStyleSheet.js.map +1 -1
  52. package/lib/module/theme/DarkUIKitTheme.js +22 -0
  53. package/lib/module/theme/DarkUIKitTheme.js.map +1 -1
  54. package/lib/module/theme/LightUIKitTheme.js +22 -0
  55. package/lib/module/theme/LightUIKitTheme.js.map +1 -1
  56. package/lib/module/types.js.map +1 -1
  57. package/lib/module/ui/Avatar/AvatarGroup.js +5 -4
  58. package/lib/module/ui/Avatar/AvatarGroup.js.map +1 -1
  59. package/lib/module/ui/Badge/index.js +2 -2
  60. package/lib/module/ui/Badge/index.js.map +1 -1
  61. package/lib/module/ui/BottomSheet/index.js +5 -2
  62. package/lib/module/ui/BottomSheet/index.js.map +1 -1
  63. package/lib/module/ui/Dialog/index.js +2 -1
  64. package/lib/module/ui/Dialog/index.js.map +1 -1
  65. package/lib/module/ui/GroupChannelPreview/index.js +16 -8
  66. package/lib/module/ui/GroupChannelPreview/index.js.map +1 -1
  67. package/lib/typescript/src/assets/icon/index.d.ts +2 -0
  68. package/lib/typescript/src/components/Divider/index.d.ts +1 -1
  69. package/lib/typescript/src/components/Icon/index.d.ts +2 -2
  70. package/lib/typescript/src/components/Image/index.d.ts +1 -1
  71. package/lib/typescript/src/components/Modal/index.d.ts +3 -2
  72. package/lib/typescript/src/components/RegexText/index.d.ts +16 -0
  73. package/lib/typescript/src/components/Switch/index.d.ts +1 -1
  74. package/lib/typescript/src/components/Text/index.d.ts +2 -2
  75. package/lib/typescript/src/components/URLParsedText/index.d.ts +2 -2
  76. package/lib/typescript/src/index.d.ts +1 -0
  77. package/lib/typescript/src/styles/HeaderStyleContext.d.ts +2 -2
  78. package/lib/typescript/src/styles/createTypography.d.ts +1 -1
  79. package/lib/typescript/src/theme/UIKitThemeProvider.d.ts +1 -1
  80. package/lib/typescript/src/theme/createTheme.d.ts +1 -1
  81. package/lib/typescript/src/types.d.ts +14 -10
  82. package/lib/typescript/src/ui/ActionMenu/index.d.ts +2 -2
  83. package/lib/typescript/src/ui/Alert/index.d.ts +2 -2
  84. package/lib/typescript/src/ui/Avatar/AvatarGroup.d.ts +1 -1
  85. package/lib/typescript/src/ui/Avatar/AvatarIcon.d.ts +1 -1
  86. package/lib/typescript/src/ui/Avatar/index.d.ts +2 -2
  87. package/lib/typescript/src/ui/Badge/index.d.ts +1 -1
  88. package/lib/typescript/src/ui/BottomSheet/index.d.ts +7 -3
  89. package/lib/typescript/src/ui/Button/index.d.ts +1 -1
  90. package/lib/typescript/src/ui/ChannelFrozenBanner/index.d.ts +1 -1
  91. package/lib/typescript/src/ui/Dialog/DialogBox.d.ts +1 -1
  92. package/lib/typescript/src/ui/Dialog/DialogSheet.d.ts +2 -2
  93. package/lib/typescript/src/ui/Dialog/index.d.ts +4 -4
  94. package/lib/typescript/src/ui/GroupChannelPreview/index.d.ts +4 -2
  95. package/lib/typescript/src/ui/Header/index.d.ts +2 -2
  96. package/lib/typescript/src/ui/LoadingSpinner/index.d.ts +1 -1
  97. package/lib/typescript/src/ui/MenuBar/index.d.ts +1 -1
  98. package/lib/typescript/src/ui/OutlinedButton/index.d.ts +1 -1
  99. package/lib/typescript/src/ui/Placeholder/index.d.ts +1 -1
  100. package/lib/typescript/src/ui/ProfileCard/index.d.ts +1 -1
  101. package/lib/typescript/src/ui/Prompt/index.d.ts +2 -2
  102. package/lib/typescript/src/ui/Toast/index.d.ts +3 -3
  103. package/package.json +6 -5
  104. package/src/assets/icon/icon-radio-off.png +0 -0
  105. package/src/assets/icon/icon-radio-off@2x.png +0 -0
  106. package/src/assets/icon/icon-radio-off@3x.png +0 -0
  107. package/src/assets/icon/icon-radio-on.png +0 -0
  108. package/src/assets/icon/icon-radio-on@2x.png +0 -0
  109. package/src/assets/icon/icon-radio-on@3x.png +0 -0
  110. package/src/assets/icon/index.ts +2 -0
  111. package/src/components/Modal/index.tsx +7 -6
  112. package/src/components/RegexText/index.tsx +48 -0
  113. package/src/components/URLParsedText/index.tsx +22 -24
  114. package/src/index.ts +1 -0
  115. package/src/styles/createStyleSheet.ts +2 -0
  116. package/src/theme/DarkUIKitTheme.ts +22 -0
  117. package/src/theme/LightUIKitTheme.ts +22 -0
  118. package/src/types.ts +6 -1
  119. package/src/ui/Avatar/AvatarGroup.tsx +10 -6
  120. package/src/ui/Badge/index.tsx +2 -2
  121. package/src/ui/BottomSheet/index.tsx +4 -1
  122. package/src/ui/Dialog/index.tsx +1 -0
  123. package/src/ui/GroupChannelPreview/index.tsx +18 -7
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","conditionChaining","Icon","Image","Text","createStyleSheet","useUIKitTheme","Badge","GroupChannelPreview","customCover","coverUrl","memberCount","badgeCount","maxBadgeCount","body","bodyIcon","title","titleCaption","titleCaptionLeft","frozen","notificationOff","broadcast","colors","color","ui","groupChannelPreview","styles","container","backgroundColor","default","none","background","coverContainer","Boolean","channelCover","coverBackground","uri","rightSection","rightTopSection","channelInfoContainer","secondary","channelInfoBroadcast","channelInfoTitle","textTitle","channelInfoMemberCount","primary","channelInfoFrozen","onBackground03","titleCaptionContainer","textTitleCaption","titleCaptionText","rightBottomSection","bodyWrapper","bodyIconBackground","bodyText","textBody","separator","Separator","height","width","flexDirection","alignItems","justifyContent","marginLeft","marginRight","borderRadius","flex","paddingTop","paddingRight","marginBottom","flexShrink","marginTop","unreadBadge","minWidth","minHeight","position","left","right","bottom"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Icon from '../../components/Icon';\nimport Image from '../../components/Image';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Badge from '../Badge';\n\ntype Props = {\n customCover?: React.ReactElement;\n coverUrl: string;\n\n title: string;\n\n titleCaption: string;\n titleCaptionLeft?: React.ReactElement;\n\n bodyIcon?: keyof typeof Icon.Assets;\n body: string;\n\n memberCount?: number;\n badgeCount: number;\n maxBadgeCount?: number;\n\n frozen?: boolean;\n notificationOff?: boolean;\n broadcast?: boolean;\n};\n\nconst GroupChannelPreview = ({\n customCover,\n coverUrl,\n memberCount,\n badgeCount,\n maxBadgeCount,\n body,\n bodyIcon,\n title,\n titleCaption,\n titleCaptionLeft,\n frozen,\n notificationOff,\n broadcast,\n}: Props) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelPreview;\n\n return (\n <View style={[styles.container, { backgroundColor: color.default.none.background }]}>\n <View style={styles.coverContainer}>\n {conditionChaining(\n [Boolean(customCover)],\n [\n customCover,\n <Image\n resizeMode={'cover'}\n style={[styles.channelCover, { backgroundColor: color.default.none.coverBackground }]}\n source={{ uri: coverUrl }}\n />,\n ],\n )}\n </View>\n <View style={styles.rightSection}>\n <View style={styles.rightTopSection}>\n <View style={styles.channelInfoContainer}>\n {broadcast && (\n <Icon\n size={16}\n icon={'broadcast'}\n color={colors.secondary}\n containerStyle={styles.channelInfoBroadcast}\n />\n )}\n <Text numberOfLines={1} subtitle1 style={styles.channelInfoTitle} color={color.default.none.textTitle}>\n {title}\n </Text>\n {Boolean(memberCount) && (\n <Text caption1 style={styles.channelInfoMemberCount} color={color.default.none.memberCount}>\n {memberCount}\n </Text>\n )}\n {frozen && (\n <Icon size={16} icon={'freeze'} color={colors.primary} containerStyle={styles.channelInfoFrozen} />\n )}\n {notificationOff && <Icon size={16} icon={'notifications-off-filled'} color={colors.onBackground03} />}\n </View>\n <View style={styles.titleCaptionContainer}>\n {titleCaptionLeft}\n <Text caption2 color={color.default.none.textTitleCaption} style={styles.titleCaptionText}>\n {titleCaption}\n </Text>\n </View>\n </View>\n\n <View style={styles.rightBottomSection}>\n <View style={styles.body}>\n <View style={styles.bodyWrapper}>\n {bodyIcon && (\n <Icon\n size={18}\n icon={bodyIcon}\n color={color.default.none.bodyIcon}\n containerStyle={[\n styles.bodyIcon,\n { backgroundColor: colors.ui.groupChannelPreview.default.none.bodyIconBackground },\n ]}\n />\n )}\n <Text body3 numberOfLines={1} style={styles.bodyText} color={color.default.none.textBody}>\n {body}\n </Text>\n </View>\n </View>\n <View>{badgeCount > 0 && <Badge count={badgeCount} maxCount={maxBadgeCount} />}</View>\n </View>\n <Separator color={color.default.none.separator} />\n </View>\n </View>\n );\n};\n\ntype SeparatorProps = { color: string };\nconst Separator = ({ color }: SeparatorProps) => <View style={[styles.separator, { backgroundColor: color }]} />;\n\nconst styles = createStyleSheet({\n container: {\n height: 76,\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n coverContainer: {\n marginLeft: 16,\n marginRight: 16,\n },\n channelCover: {\n width: 56,\n height: 56,\n borderRadius: 28,\n },\n rightSection: {\n flex: 1,\n paddingTop: 10,\n paddingRight: 16,\n },\n rightTopSection: {\n flexDirection: 'row',\n marginBottom: 4,\n },\n channelInfoContainer: {\n flex: 1,\n marginRight: 4,\n alignItems: 'center',\n flexDirection: 'row',\n },\n channelInfoBroadcast: {\n marginRight: 4,\n },\n channelInfoTitle: {\n flexShrink: 1,\n marginRight: 4,\n },\n channelInfoMemberCount: {\n paddingTop: 2,\n marginRight: 4,\n },\n channelInfoFrozen: {\n marginRight: 4,\n },\n titleCaptionContainer: {\n alignItems: 'flex-start',\n flexDirection: 'row',\n marginLeft: 4,\n },\n titleCaptionText: {\n marginTop: 2,\n },\n rightBottomSection: {\n flex: 1,\n height: '100%',\n flexDirection: 'row',\n },\n body: {\n marginRight: 4,\n flex: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n bodyWrapper: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n bodyText: {\n flex: 1,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n unreadBadge: {\n minWidth: 20,\n minHeight: 20,\n borderRadius: 99,\n alignItems: 'center',\n justifyContent: 'center',\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n\nexport default GroupChannelPreview;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","conditionChaining","Icon","Image","Text","createStyleSheet","useUIKitTheme","Badge","GroupChannelPreview","customCover","coverUrl","memberCount","badgeCount","maxBadgeCount","body","bodyIcon","title","titleCaption","titleCaptionLeft","frozen","notificationOff","broadcast","mentioned","mentionTrigger","colors","color","ui","groupChannelPreview","styles","container","backgroundColor","default","none","background","coverContainer","Boolean","channelCover","coverBackground","uri","rightSection","rightTopSection","channelInfoContainer","secondary","channelInfoBroadcast","channelInfoTitle","textTitle","channelInfoMemberCount","primary","channelInfoFrozen","onBackground03","titleCaptionContainer","textTitleCaption","titleCaptionText","rightBottomSection","bodyWrapper","bodyIconBackground","bodyText","textBody","unreadContainer","badge","unreadMention","separator","Separator","height","width","flexDirection","alignItems","justifyContent","marginLeft","marginRight","borderRadius","flex","paddingTop","paddingRight","marginBottom","flexShrink","marginTop","position","left","right","bottom"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Icon from '../../components/Icon';\nimport Image from '../../components/Image';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Badge from '../Badge';\n\ntype Props = {\n customCover?: React.ReactElement;\n coverUrl: string;\n\n title: string;\n\n titleCaption: string;\n titleCaptionLeft?: React.ReactElement;\n\n bodyIcon?: keyof typeof Icon.Assets;\n body: string;\n\n memberCount?: number;\n badgeCount: number;\n maxBadgeCount?: number;\n\n frozen?: boolean;\n notificationOff?: boolean;\n broadcast?: boolean;\n mentioned?: boolean;\n mentionTrigger?: string;\n};\n\nconst GroupChannelPreview = ({\n customCover,\n coverUrl,\n memberCount,\n badgeCount,\n maxBadgeCount,\n body,\n bodyIcon,\n title,\n titleCaption,\n titleCaptionLeft,\n frozen,\n notificationOff,\n broadcast,\n mentioned,\n mentionTrigger = '@',\n}: Props) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelPreview;\n\n return (\n <View style={[styles.container, { backgroundColor: color.default.none.background }]}>\n <View style={styles.coverContainer}>\n {conditionChaining(\n [Boolean(customCover)],\n [\n customCover,\n <Image\n resizeMode={'cover'}\n style={[styles.channelCover, { backgroundColor: color.default.none.coverBackground }]}\n source={{ uri: coverUrl }}\n />,\n ],\n )}\n </View>\n <View style={styles.rightSection}>\n <View style={styles.rightTopSection}>\n <View style={styles.channelInfoContainer}>\n {broadcast && (\n <Icon\n size={16}\n icon={'broadcast'}\n color={colors.secondary}\n containerStyle={styles.channelInfoBroadcast}\n />\n )}\n <Text numberOfLines={1} subtitle1 style={styles.channelInfoTitle} color={color.default.none.textTitle}>\n {title}\n </Text>\n {Boolean(memberCount) && (\n <Text caption1 style={styles.channelInfoMemberCount} color={color.default.none.memberCount}>\n {memberCount}\n </Text>\n )}\n {frozen && (\n <Icon size={16} icon={'freeze'} color={colors.primary} containerStyle={styles.channelInfoFrozen} />\n )}\n {notificationOff && <Icon size={16} icon={'notifications-off-filled'} color={colors.onBackground03} />}\n </View>\n <View style={styles.titleCaptionContainer}>\n {titleCaptionLeft}\n <Text caption2 color={color.default.none.textTitleCaption} style={styles.titleCaptionText}>\n {titleCaption}\n </Text>\n </View>\n </View>\n\n <View style={styles.rightBottomSection}>\n <View style={styles.body}>\n <View style={styles.bodyWrapper}>\n {bodyIcon && (\n <Icon\n size={18}\n icon={bodyIcon}\n color={color.default.none.bodyIcon}\n containerStyle={[\n styles.bodyIcon,\n { backgroundColor: colors.ui.groupChannelPreview.default.none.bodyIconBackground },\n ]}\n />\n )}\n <Text body3 numberOfLines={1} style={styles.bodyText} color={color.default.none.textBody}>\n {body}\n </Text>\n </View>\n </View>\n <View style={styles.unreadContainer}>\n {mentioned && (\n <Text h2 color={colors.ui.badge.default.none.background} style={styles.unreadMention}>\n {mentionTrigger}\n </Text>\n )}\n {badgeCount > 0 && <Badge count={badgeCount} maxCount={maxBadgeCount} />}\n </View>\n </View>\n <Separator color={color.default.none.separator} />\n </View>\n </View>\n );\n};\n\ntype SeparatorProps = { color: string };\nconst Separator = ({ color }: SeparatorProps) => <View style={[styles.separator, { backgroundColor: color }]} />;\n\nconst styles = createStyleSheet({\n container: {\n height: 76,\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n coverContainer: {\n marginLeft: 16,\n marginRight: 16,\n },\n channelCover: {\n width: 56,\n height: 56,\n borderRadius: 28,\n },\n rightSection: {\n flex: 1,\n paddingTop: 10,\n paddingRight: 16,\n },\n rightTopSection: {\n flexDirection: 'row',\n marginBottom: 4,\n },\n channelInfoContainer: {\n flex: 1,\n marginRight: 4,\n alignItems: 'center',\n flexDirection: 'row',\n },\n channelInfoBroadcast: {\n marginRight: 4,\n },\n channelInfoTitle: {\n flexShrink: 1,\n marginRight: 4,\n },\n channelInfoMemberCount: {\n paddingTop: 2,\n marginRight: 4,\n },\n channelInfoFrozen: {\n marginRight: 4,\n },\n titleCaptionContainer: {\n alignItems: 'flex-start',\n flexDirection: 'row',\n marginLeft: 4,\n },\n titleCaptionText: {\n marginTop: 2,\n },\n rightBottomSection: {\n flex: 1,\n height: '100%',\n flexDirection: 'row',\n },\n body: {\n marginRight: 4,\n flex: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n bodyWrapper: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n bodyText: {\n flex: 1,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n unreadContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n unreadMention: {\n marginRight: 4,\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n\nexport default GroupChannelPreview;\n"],"mappings":"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"}
@@ -44,6 +44,8 @@ declare const IconAssets: {
44
44
  play: any;
45
45
  plus: any;
46
46
  question: any;
47
+ 'radio-off': any;
48
+ 'radio-on': any;
47
49
  refresh: any;
48
50
  remove: any;
49
51
  'reply-filled': any;
@@ -1,5 +1,5 @@
1
1
  import { StyleProp, ViewStyle } from 'react-native';
2
- declare type Props = {
2
+ type Props = {
3
3
  style?: StyleProp<ViewStyle>;
4
4
  space?: number;
5
5
  };
@@ -1,7 +1,7 @@
1
1
  import { ImageStyle, StyleProp, ViewStyle } from 'react-native';
2
2
  import IconAssets from '../../assets/icon';
3
- declare type IconNames = keyof typeof IconAssets;
4
- declare type Props = {
3
+ type IconNames = keyof typeof IconAssets;
4
+ type Props = {
5
5
  icon: IconNames;
6
6
  color?: string;
7
7
  size?: number;
@@ -9,6 +9,6 @@ export interface SendbirdImageProps extends Omit<NativeImageProps, 'onLoad' | 'o
9
9
  }) => void;
10
10
  tintColor?: string;
11
11
  }
12
- export declare type SendbirdImageComponent = (props: SendbirdImageProps) => JSX.Element;
12
+ export type SendbirdImageComponent = (props: SendbirdImageProps) => JSX.Element;
13
13
  declare const _default: SendbirdImageComponent;
14
14
  export default _default;
@@ -1,6 +1,7 @@
1
1
  import { ModalProps, StyleProp, ViewStyle } from 'react-native';
2
- declare type Props = {
3
- type?: 'slide' | 'fade';
2
+ type ModalAnimationType = 'slide' | 'slide-no-gesture' | 'fade';
3
+ type Props = {
4
+ type?: ModalAnimationType;
4
5
  onClose: () => void;
5
6
  backgroundStyle?: StyleProp<ViewStyle>;
6
7
  disableBackgroundClose?: boolean;
@@ -0,0 +1,16 @@
1
+ import { TextProps } from '../Text';
2
+ interface Pattern {
3
+ regex: RegExp;
4
+ replacer(params: {
5
+ match: string;
6
+ groups: string[];
7
+ index: number;
8
+ keyPrefix: string;
9
+ parentProps?: TextProps;
10
+ }): string | JSX.Element;
11
+ }
12
+ type Props = {
13
+ patterns: Pattern[];
14
+ } & TextProps;
15
+ declare const RegexText: ({ children, patterns, ...props }: Props) => JSX.Element;
16
+ export default RegexText;
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- declare type SwitchProps = React.PropsWithChildren<{
2
+ type SwitchProps = React.PropsWithChildren<{
3
3
  trackColor?: string;
4
4
  thumbColor?: string;
5
5
  inactiveThumbColor?: string;
@@ -1,7 +1,7 @@
1
1
  import { TextProps as RNTextProps } from 'react-native';
2
2
  import type { TypoName, UIKitTheme } from '../../types';
3
- declare type TypographyProps = Partial<Record<TypoName, boolean>>;
4
- export declare type TextProps = RNTextProps & TypographyProps & {
3
+ type TypographyProps = Partial<Record<TypoName, boolean>>;
4
+ export type TextProps = RNTextProps & TypographyProps & {
5
5
  color?: ((colors: UIKitTheme['colors']) => string) | string;
6
6
  };
7
7
  declare const Text: ({ children, color, style, ...props }: TextProps) => JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import type { TextProps } from '../Text';
2
- declare type OnPressUrl = (url: string, httpProtocol: boolean) => void;
3
- declare type Props = TextProps & {
2
+ type OnPressUrl = (url: string, httpProtocol: boolean) => void;
3
+ type Props = TextProps & {
4
4
  onPressUrl?: OnPressUrl;
5
5
  strict?: boolean;
6
6
  };
@@ -5,6 +5,7 @@ export { default as Divider } from './components/Divider';
5
5
  export { default as Icon } from './components/Icon';
6
6
  export { default as Image } from './components/Image';
7
7
  export { default as Modal } from './components/Modal';
8
+ export { default as RegexText } from './components/RegexText';
8
9
  export { default as Switch } from './components/Switch';
9
10
  export { default as Text } from './components/Text';
10
11
  export { default as TextInput } from './components/TextInput';
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { HeaderProps } from '../ui/Header';
3
- export declare type HeaderStyleContextType = {
3
+ export type HeaderStyleContextType = {
4
4
  HeaderComponent: (props: HeaderProps) => React.ReactElement | null;
5
5
  defaultTitleAlign: 'left' | 'center';
6
6
  statusBarTranslucent: boolean;
@@ -8,6 +8,6 @@ export declare type HeaderStyleContextType = {
8
8
  defaultHeight: number;
9
9
  };
10
10
  export declare const HeaderStyleContext: React.Context<HeaderStyleContextType>;
11
- declare type Props = Pick<HeaderStyleContextType, 'statusBarTranslucent' | 'defaultTitleAlign' | 'HeaderComponent'>;
11
+ type Props = Pick<HeaderStyleContextType, 'statusBarTranslucent' | 'defaultTitleAlign' | 'HeaderComponent'>;
12
12
  export declare const HeaderStyleProvider: ({ children, HeaderComponent, defaultTitleAlign, statusBarTranslucent, }: React.PropsWithChildren<Props>) => JSX.Element;
13
13
  export {};
@@ -1,5 +1,5 @@
1
1
  import type { FontAttributes, UIKitTypography } from '../types';
2
- export declare type UIKitTypographyOverrides = Partial<UIKitTypography> & {
2
+ export type UIKitTypographyOverrides = Partial<UIKitTypography> & {
3
3
  shared?: Partial<FontAttributes>;
4
4
  };
5
5
  declare const createTypography: (overrides?: UIKitTypographyOverrides, scaleFactor?: (dp: number) => number) => UIKitTypography;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import type { UIKitTheme } from '../types';
3
- declare type Props = React.PropsWithChildren<{
3
+ type Props = React.PropsWithChildren<{
4
4
  theme?: UIKitTheme;
5
5
  }>;
6
6
  declare const UIKitThemeProvider: ({ children, theme }: Props) => JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { UIKitTypographyOverrides } from '../styles/createTypography';
2
2
  import type { UIKitColors, UIKitTheme } from '../types';
3
- declare type Options = {
3
+ type Options = {
4
4
  colorScheme: UIKitTheme['colorScheme'];
5
5
  colors: (palette: UIKitTheme['palette']) => UIKitColors;
6
6
  palette?: UIKitTheme['palette'];
@@ -14,9 +14,9 @@ export interface UIKitTypography {
14
14
  caption3: FontAttributes;
15
15
  caption4: FontAttributes;
16
16
  }
17
- export declare type TypoName = keyof UIKitTypography;
18
- export declare type FontAttributes = Pick<TextStyle, 'fontFamily' | 'fontSize' | 'lineHeight' | 'letterSpacing' | 'fontWeight'>;
19
- export declare type UIKitColorScheme = 'light' | 'dark';
17
+ export type TypoName = keyof UIKitTypography;
18
+ export type FontAttributes = Pick<TextStyle, 'fontFamily' | 'fontSize' | 'lineHeight' | 'letterSpacing' | 'fontWeight'>;
19
+ export type UIKitColorScheme = 'light' | 'dark';
20
20
  export interface UIKitTheme {
21
21
  colorScheme: UIKitColorScheme;
22
22
  select<V>(options: {
@@ -26,8 +26,8 @@ export interface UIKitTheme {
26
26
  colors: UIKitColors;
27
27
  typography: UIKitTypography;
28
28
  }
29
- export declare type Component = 'Header' | 'Button' | 'Dialog' | 'Input' | 'Badge' | 'Placeholder' | 'Message' | 'DateSeparator' | 'GroupChannelPreview' | 'ProfileCard';
30
- export declare type GetColorTree<Tree extends {
29
+ export type Component = 'Header' | 'Button' | 'Dialog' | 'Input' | 'Badge' | 'Placeholder' | 'Message' | 'DateSeparator' | 'GroupChannelPreview' | 'ProfileCard' | 'Reaction';
30
+ export type GetColorTree<Tree extends {
31
31
  Variant: {
32
32
  [key in Component]: string;
33
33
  };
@@ -38,7 +38,7 @@ export declare type GetColorTree<Tree extends {
38
38
  [key in Component]: string;
39
39
  };
40
40
  }> = Tree;
41
- export declare type ComponentColorTree = GetColorTree<{
41
+ export type ComponentColorTree = GetColorTree<{
42
42
  Variant: {
43
43
  Header: 'nav';
44
44
  Button: 'contained' | 'text';
@@ -50,6 +50,7 @@ export declare type ComponentColorTree = GetColorTree<{
50
50
  DateSeparator: 'default';
51
51
  GroupChannelPreview: 'default';
52
52
  ProfileCard: 'default';
53
+ Reaction: 'default' | 'rounded';
53
54
  };
54
55
  State: {
55
56
  Header: 'none';
@@ -62,6 +63,7 @@ export declare type ComponentColorTree = GetColorTree<{
62
63
  DateSeparator: 'none';
63
64
  GroupChannelPreview: 'none';
64
65
  ProfileCard: 'none';
66
+ Reaction: 'enabled' | 'selected';
65
67
  };
66
68
  ColorPart: {
67
69
  Header: 'background' | 'borderBottom';
@@ -74,9 +76,10 @@ export declare type ComponentColorTree = GetColorTree<{
74
76
  DateSeparator: 'text' | 'background';
75
77
  GroupChannelPreview: 'textTitle' | 'textTitleCaption' | 'textBody' | 'memberCount' | 'bodyIcon' | 'background' | 'coverBackground' | 'bodyIconBackground' | 'separator';
76
78
  ProfileCard: 'textUsername' | 'textBodyLabel' | 'textBody' | 'background';
79
+ Reaction: 'background' | 'highlight';
77
80
  };
78
81
  }>;
79
- export declare type ComponentColors<T extends Component> = {
82
+ export type ComponentColors<T extends Component> = {
80
83
  [key in ComponentColorTree['Variant'][T]]: {
81
84
  [key in ComponentColorTree['State'][T]]: {
82
85
  [key in ComponentColorTree['ColorPart'][T]]: string;
@@ -117,17 +120,18 @@ export interface UIKitColors {
117
120
  dateSeparator: ComponentColors<'DateSeparator'>;
118
121
  groupChannelPreview: ComponentColors<'GroupChannelPreview'>;
119
122
  profileCard: ComponentColors<'ProfileCard'>;
123
+ reaction: ComponentColors<'Reaction'>;
120
124
  };
121
125
  }
122
- export declare type HeaderElement = string | ReactElement | null;
123
- export declare type HeaderPartProps = {
126
+ export type HeaderElement = string | ReactElement | null;
127
+ export type HeaderPartProps = {
124
128
  title?: HeaderElement;
125
129
  right?: HeaderElement;
126
130
  left?: HeaderElement;
127
131
  onPressLeft?: (...params: any[]) => any;
128
132
  onPressRight?: (...params: any[]) => any;
129
133
  };
130
- export declare type BaseHeaderProps<HeaderParts extends HeaderPartProps = {}, AdditionalProps = {}> = {
134
+ export type BaseHeaderProps<HeaderParts extends HeaderPartProps = {}, AdditionalProps = {}> = {
131
135
  titleAlign?: 'left' | 'center' | 'right';
132
136
  children?: ReactNode;
133
137
  } & HeaderParts & AdditionalProps;
@@ -1,4 +1,4 @@
1
- export declare type ActionMenuItem = {
1
+ export type ActionMenuItem = {
2
2
  title?: string;
3
3
  menuItems: {
4
4
  title: string;
@@ -7,7 +7,7 @@ export declare type ActionMenuItem = {
7
7
  onError?: () => void;
8
8
  }[];
9
9
  };
10
- declare type Props = {
10
+ type Props = {
11
11
  visible: boolean;
12
12
  onHide: () => void;
13
13
  onError?: (error: unknown) => void;
@@ -1,10 +1,10 @@
1
1
  import { AlertButton } from 'react-native';
2
- export declare type AlertItem = {
2
+ export type AlertItem = {
3
3
  title?: string;
4
4
  message?: string;
5
5
  buttons?: AlertButton[];
6
6
  };
7
- declare type Props = {
7
+ type Props = {
8
8
  visible: boolean;
9
9
  onHide: () => void;
10
10
  onDismiss?: () => void;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
- declare type Props = React.PropsWithChildren<{
3
+ type Props = React.PropsWithChildren<{
4
4
  size?: number;
5
5
  containerStyle?: StyleProp<ViewStyle>;
6
6
  }>;
@@ -1,6 +1,6 @@
1
1
  import { StyleProp, ViewStyle } from 'react-native';
2
2
  import Icon from '../../components/Icon';
3
- declare type Props = {
3
+ type Props = {
4
4
  icon: keyof typeof Icon.Assets;
5
5
  size?: number;
6
6
  backgroundColor?: string;
@@ -1,11 +1,11 @@
1
1
  import { StyleProp, ViewStyle } from 'react-native';
2
2
  import AvatarGroup from './AvatarGroup';
3
3
  import AvatarIcon from './AvatarIcon';
4
- declare type SubComponents = {
4
+ type SubComponents = {
5
5
  Group: typeof AvatarGroup;
6
6
  Icon: typeof AvatarIcon;
7
7
  };
8
- declare type Props = {
8
+ type Props = {
9
9
  uri?: string;
10
10
  size?: number;
11
11
  square?: boolean;
@@ -1,5 +1,5 @@
1
1
  import { StyleProp, ViewStyle } from 'react-native';
2
- declare type Props = {
2
+ type Props = {
3
3
  count: number;
4
4
  maxCount?: number;
5
5
  badgeColor?: string;
@@ -1,5 +1,8 @@
1
1
  import type Icon from '../../components/Icon';
2
- export declare type BottomSheetItem = {
2
+ type HeaderProps = {
3
+ onClose: () => Promise<void>;
4
+ };
5
+ export type BottomSheetItem = {
3
6
  sheetItems: {
4
7
  icon?: keyof typeof Icon.Assets;
5
8
  iconColor?: string;
@@ -7,12 +10,13 @@ export declare type BottomSheetItem = {
7
10
  titleColor?: string;
8
11
  onPress: () => void;
9
12
  }[];
13
+ HeaderComponent?: (props: HeaderProps) => JSX.Element;
10
14
  };
11
- declare type Props = {
15
+ type Props = {
12
16
  visible: boolean;
13
17
  onHide: () => Promise<void>;
14
18
  onError?: (error: unknown) => void;
15
19
  onDismiss?: () => void;
16
20
  } & BottomSheetItem;
17
- declare const BottomSheet: ({ onDismiss, onHide, visible, sheetItems }: Props) => JSX.Element;
21
+ declare const BottomSheet: ({ onDismiss, onHide, visible, sheetItems, HeaderComponent }: Props) => JSX.Element;
18
22
  export default BottomSheet;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
3
  import Icon from '../../components/Icon';
4
- declare type Props = React.PropsWithChildren<{
4
+ type Props = React.PropsWithChildren<{
5
5
  style?: StyleProp<ViewStyle>;
6
6
  icon?: keyof typeof Icon.Assets;
7
7
  variant?: 'contained' | 'text';
@@ -1,5 +1,5 @@
1
1
  import { StyleProp, ViewStyle } from 'react-native';
2
- declare type Props = {
2
+ type Props = {
3
3
  style?: StyleProp<ViewStyle>;
4
4
  text?: string;
5
5
  textColor?: string;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
- declare type Props = React.PropsWithChildren<{
3
+ type Props = React.PropsWithChildren<{
4
4
  style?: StyleProp<ViewStyle>;
5
5
  }>;
6
6
  declare const DialogBox: ({ style, children }: Props) => JSX.Element;
@@ -1,13 +1,13 @@
1
1
  import React from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
3
  import Icon from '../../components/Icon';
4
- declare type Props = React.PropsWithChildren<{
4
+ type Props = React.PropsWithChildren<{
5
5
  style?: StyleProp<ViewStyle>;
6
6
  }>;
7
7
  declare const DialogSheet: ((props: Props) => JSX.Element) & {
8
8
  Item: typeof SheetItem;
9
9
  };
10
- export declare type SheetItemProps = {
10
+ export type SheetItemProps = {
11
11
  icon?: keyof typeof Icon.Assets;
12
12
  iconColor?: string;
13
13
  title: string;
@@ -3,7 +3,7 @@ import type { ActionMenuItem } from '../ActionMenu';
3
3
  import type { AlertItem } from '../Alert';
4
4
  import type { BottomSheetItem } from '../BottomSheet';
5
5
  import type { PromptItem } from '../Prompt';
6
- declare type DialogJob = {
6
+ type DialogJob = {
7
7
  type: 'ActionMenu';
8
8
  props: ActionMenuItem;
9
9
  } | {
@@ -16,17 +16,17 @@ declare type DialogJob = {
16
16
  type: 'BottomSheet';
17
17
  props: BottomSheetItem;
18
18
  };
19
- declare type DialogPropsBy<T extends DialogJob['type'], U extends DialogJob = DialogJob> = U extends {
19
+ type DialogPropsBy<T extends DialogJob['type'], U extends DialogJob = DialogJob> = U extends {
20
20
  type: T;
21
21
  props: infer P;
22
22
  } ? P : never;
23
- declare type DialogContextType = {
23
+ type DialogContextType = {
24
24
  openMenu: (props: DialogPropsBy<'ActionMenu'>) => void;
25
25
  alert: (props: DialogPropsBy<'Alert'>) => void;
26
26
  openPrompt: (props: DialogPropsBy<'Prompt'>) => void;
27
27
  openSheet: (props: DialogPropsBy<'BottomSheet'>) => void;
28
28
  };
29
- declare type Props = React.PropsWithChildren<{
29
+ type Props = React.PropsWithChildren<{
30
30
  defaultLabels?: {
31
31
  alert?: {
32
32
  ok?: string;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import Icon from '../../components/Icon';
3
- declare type Props = {
3
+ type Props = {
4
4
  customCover?: React.ReactElement;
5
5
  coverUrl: string;
6
6
  title: string;
@@ -14,6 +14,8 @@ declare type Props = {
14
14
  frozen?: boolean;
15
15
  notificationOff?: boolean;
16
16
  broadcast?: boolean;
17
+ mentioned?: boolean;
18
+ mentionTrigger?: string;
17
19
  };
18
- declare const GroupChannelPreview: ({ customCover, coverUrl, memberCount, badgeCount, maxBadgeCount, body, bodyIcon, title, titleCaption, titleCaptionLeft, frozen, notificationOff, broadcast, }: Props) => JSX.Element;
20
+ declare const GroupChannelPreview: ({ customCover, coverUrl, memberCount, badgeCount, maxBadgeCount, body, bodyIcon, title, titleCaption, titleCaptionLeft, frozen, notificationOff, broadcast, mentioned, mentionTrigger, }: Props) => JSX.Element;
19
21
  export default GroupChannelPreview;
@@ -2,8 +2,8 @@ import React from 'react';
2
2
  import { TouchableOpacityProps } from 'react-native';
3
3
  import { TextProps } from '../../components/Text';
4
4
  import type { BaseHeaderProps } from '../../index';
5
- declare type HeaderElement = string | React.ReactElement | null;
6
- export declare type HeaderProps = BaseHeaderProps<{
5
+ type HeaderElement = string | React.ReactElement | null;
6
+ export type HeaderProps = BaseHeaderProps<{
7
7
  title?: HeaderElement;
8
8
  left?: HeaderElement;
9
9
  right?: HeaderElement;
@@ -1,5 +1,5 @@
1
1
  import { StyleProp, ViewStyle } from 'react-native';
2
- declare type Props = {
2
+ type Props = {
3
3
  size?: number;
4
4
  color?: string;
5
5
  style?: StyleProp<ViewStyle>;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import Icon from '../../components/Icon';
3
- export declare type MenuBarProps = {
3
+ export type MenuBarProps = {
4
4
  variant?: 'default' | 'contained';
5
5
  onPress: () => void;
6
6
  disabled?: boolean;
@@ -1,5 +1,5 @@
1
1
  import { StyleProp, ViewStyle } from 'react-native';
2
- declare type OutlinedButtonProps = {
2
+ type OutlinedButtonProps = {
3
3
  children: string;
4
4
  containerStyle?: StyleProp<ViewStyle>;
5
5
  onPress?: () => void;
@@ -1,5 +1,5 @@
1
1
  import Icon from '../../components/Icon';
2
- declare type Props = {
2
+ type Props = {
3
3
  loading?: boolean;
4
4
  icon: keyof typeof Icon.Assets;
5
5
  message?: string;
@@ -1,5 +1,5 @@
1
1
  import { StyleProp, ViewStyle } from 'react-native';
2
- declare type Props = {
2
+ type Props = {
3
3
  uri: string;
4
4
  username: string;
5
5
  button?: JSX.Element;
@@ -1,4 +1,4 @@
1
- export declare type PromptItem = {
1
+ export type PromptItem = {
2
2
  title: string;
3
3
  placeholder?: string;
4
4
  defaultValue?: string;
@@ -7,7 +7,7 @@ export declare type PromptItem = {
7
7
  onCancel?: () => void;
8
8
  cancelLabel?: string;
9
9
  };
10
- declare type Props = {
10
+ type Props = {
11
11
  visible: boolean;
12
12
  onHide: () => void;
13
13
  onDismiss?: () => void;
@@ -1,9 +1,9 @@
1
1
  import React from 'react';
2
- declare type ToastType = 'normal' | 'error' | 'success';
3
- declare type Context = {
2
+ type ToastType = 'normal' | 'error' | 'success';
3
+ type Context = {
4
4
  show(text: string, type?: ToastType): void;
5
5
  };
6
- declare type Props = React.PropsWithChildren<{
6
+ type Props = React.PropsWithChildren<{
7
7
  top?: number;
8
8
  bottom?: number;
9
9
  visible: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sendbird/uikit-react-native-foundation",
3
- "version": "2.1.0",
3
+ "version": "2.3.0",
4
4
  "description": "react-native-uikit",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -16,7 +16,8 @@
16
16
  "scripts": {
17
17
  "test": "jest",
18
18
  "build": "bob build",
19
- "clean": "del lib"
19
+ "clean": "del lib",
20
+ "generate-icons": "node src/assets/bundle-icons.js"
20
21
  },
21
22
  "keywords": [
22
23
  "react-native",
@@ -38,7 +39,7 @@
38
39
  "access": "public"
39
40
  },
40
41
  "dependencies": {
41
- "@sendbird/uikit-utils": "2.1.0"
42
+ "@sendbird/uikit-utils": "2.3.0"
42
43
  },
43
44
  "devDependencies": {
44
45
  "@types/react": "*",
@@ -48,7 +49,7 @@
48
49
  "react-native-builder-bob": "^0.18.0",
49
50
  "react-native-fast-image": "^8.5.11",
50
51
  "react-native-safe-area-context": "^3.3.2",
51
- "typescript": "^4.1.3"
52
+ "typescript": "4.9.4"
52
53
  },
53
54
  "peerDependencies": {
54
55
  "react": ">=16.13.1",
@@ -80,5 +81,5 @@
80
81
  "readmeFile": "./README.md",
81
82
  "displayName": "@sendbird/uikit-react-native-foundation"
82
83
  },
83
- "gitHead": "c778a84a632487047fe532db188b32dfa6e93a7f"
84
+ "gitHead": "a9bf41fd7919436db99f6cc3bacd0f8d791b7729"
84
85
  }