@sendbird/uikit-react-native-foundation 2.0.3 → 2.1.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 (81) hide show
  1. package/lib/commonjs/assets/icon/{icon-moderations.png → icon-moderation.png} +0 -0
  2. package/lib/commonjs/assets/icon/{icon-moderations@2x.png → icon-moderation@2x.png} +0 -0
  3. package/lib/commonjs/assets/icon/{icon-moderations@3x.png → icon-moderation@3x.png} +0 -0
  4. package/lib/commonjs/assets/icon/index.js +1 -1
  5. package/lib/commonjs/assets/icon/index.js.map +1 -1
  6. package/lib/commonjs/components/Modal/index.js +1 -0
  7. package/lib/commonjs/components/Modal/index.js.map +1 -1
  8. package/lib/commonjs/index.js +19 -27
  9. package/lib/commonjs/index.js.map +1 -1
  10. package/lib/commonjs/styles/HeaderStyleContext.js.map +1 -1
  11. package/lib/commonjs/theme/DarkUIKitTheme.js +10 -0
  12. package/lib/commonjs/theme/DarkUIKitTheme.js.map +1 -1
  13. package/lib/commonjs/theme/LightUIKitTheme.js +10 -0
  14. package/lib/commonjs/theme/LightUIKitTheme.js.map +1 -1
  15. package/lib/commonjs/types.js.map +1 -1
  16. package/lib/commonjs/ui/ActionMenu/index.js +1 -1
  17. package/lib/commonjs/ui/ActionMenu/index.js.map +1 -1
  18. package/lib/commonjs/ui/GroupChannelPreview/index.js +11 -2
  19. package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -1
  20. package/lib/commonjs/ui/Header/index.js +3 -2
  21. package/lib/commonjs/ui/Header/index.js.map +1 -1
  22. package/lib/commonjs/ui/MenuBar/index.js +2 -0
  23. package/lib/commonjs/ui/MenuBar/index.js.map +1 -1
  24. package/lib/commonjs/ui/OutlinedButton/index.js +57 -0
  25. package/lib/commonjs/ui/OutlinedButton/index.js.map +1 -0
  26. package/lib/commonjs/ui/ProfileCard/index.js +94 -0
  27. package/lib/commonjs/ui/ProfileCard/index.js.map +1 -0
  28. package/lib/module/assets/icon/{icon-moderations.png → icon-moderation.png} +0 -0
  29. package/lib/module/assets/icon/{icon-moderations@2x.png → icon-moderation@2x.png} +0 -0
  30. package/lib/module/assets/icon/{icon-moderations@3x.png → icon-moderation@3x.png} +0 -0
  31. package/lib/module/assets/icon/index.js +1 -1
  32. package/lib/module/assets/icon/index.js.map +1 -1
  33. package/lib/module/components/Modal/index.js +1 -0
  34. package/lib/module/components/Modal/index.js.map +1 -1
  35. package/lib/module/index.js +6 -4
  36. package/lib/module/index.js.map +1 -1
  37. package/lib/module/styles/HeaderStyleContext.js.map +1 -1
  38. package/lib/module/theme/DarkUIKitTheme.js +10 -0
  39. package/lib/module/theme/DarkUIKitTheme.js.map +1 -1
  40. package/lib/module/theme/LightUIKitTheme.js +10 -0
  41. package/lib/module/theme/LightUIKitTheme.js.map +1 -1
  42. package/lib/module/types.js.map +1 -1
  43. package/lib/module/ui/ActionMenu/index.js +1 -1
  44. package/lib/module/ui/ActionMenu/index.js.map +1 -1
  45. package/lib/module/ui/GroupChannelPreview/index.js +11 -2
  46. package/lib/module/ui/GroupChannelPreview/index.js.map +1 -1
  47. package/lib/module/ui/Header/index.js +3 -2
  48. package/lib/module/ui/Header/index.js.map +1 -1
  49. package/lib/module/ui/MenuBar/index.js +2 -0
  50. package/lib/module/ui/MenuBar/index.js.map +1 -1
  51. package/lib/module/ui/OutlinedButton/index.js +43 -0
  52. package/lib/module/ui/OutlinedButton/index.js.map +1 -0
  53. package/lib/module/ui/ProfileCard/index.js +78 -0
  54. package/lib/module/ui/ProfileCard/index.js.map +1 -0
  55. package/lib/typescript/src/assets/icon/index.d.ts +1 -1
  56. package/lib/typescript/src/index.d.ts +10 -4
  57. package/lib/typescript/src/styles/HeaderStyleContext.d.ts +2 -10
  58. package/lib/typescript/src/types.d.ts +5 -1
  59. package/lib/typescript/src/ui/ActionMenu/index.d.ts +1 -0
  60. package/lib/typescript/src/ui/GroupChannelPreview/index.d.ts +2 -1
  61. package/lib/typescript/src/ui/Header/index.d.ts +2 -1
  62. package/lib/typescript/src/ui/MenuBar/index.d.ts +2 -1
  63. package/lib/typescript/src/ui/OutlinedButton/index.d.ts +8 -0
  64. package/lib/typescript/src/ui/ProfileCard/index.d.ts +11 -0
  65. package/package.json +3 -3
  66. package/src/assets/icon/{icon-moderations.png → icon-moderation.png} +0 -0
  67. package/src/assets/icon/{icon-moderations@2x.png → icon-moderation@2x.png} +0 -0
  68. package/src/assets/icon/{icon-moderations@3x.png → icon-moderation@3x.png} +0 -0
  69. package/src/assets/icon/index.ts +1 -1
  70. package/src/components/Modal/index.tsx +1 -0
  71. package/src/index.ts +10 -4
  72. package/src/styles/HeaderStyleContext.tsx +2 -13
  73. package/src/theme/DarkUIKitTheme.ts +10 -0
  74. package/src/theme/LightUIKitTheme.ts +10 -0
  75. package/src/types.ts +7 -1
  76. package/src/ui/ActionMenu/index.tsx +10 -1
  77. package/src/ui/GroupChannelPreview/index.tsx +13 -0
  78. package/src/ui/Header/index.tsx +8 -3
  79. package/src/ui/MenuBar/index.tsx +4 -0
  80. package/src/ui/OutlinedButton/index.tsx +42 -0
  81. package/src/ui/ProfileCard/index.tsx +73 -0
@@ -1 +1 @@
1
- {"version":3,"names":["GroupChannelPreview","customCover","coverUrl","memberCount","badgeCount","maxBadgeCount","body","bodyIcon","title","titleCaption","titleCaptionLeft","frozen","notificationOff","colors","useUIKitTheme","color","ui","groupChannelPreview","styles","container","backgroundColor","default","none","background","coverContainer","conditionChaining","Boolean","channelCover","coverBackground","uri","rightSection","rightTopSection","channelInfoContainer","channelInfoTitle","textTitle","channelInfoMemberCount","primary","channelInfoFrozen","onBackground03","titleCaptionContainer","textTitleCaption","titleCaptionText","rightBottomSection","bodyWrapper","bodyIconBackground","bodyText","textBody","separator","Separator","createStyleSheet","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};\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}: 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 <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 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":["GroupChannelPreview","customCover","coverUrl","memberCount","badgeCount","maxBadgeCount","body","bodyIcon","title","titleCaption","titleCaptionLeft","frozen","notificationOff","broadcast","colors","useUIKitTheme","color","ui","groupChannelPreview","styles","container","backgroundColor","default","none","background","coverContainer","conditionChaining","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","createStyleSheet","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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"}
@@ -40,7 +40,8 @@ const Header = _ref => {
40
40
  right = null,
41
41
  onPressLeft,
42
42
  onPressRight,
43
- clearTitleMargin = false
43
+ clearTitleMargin = false,
44
+ statusBarTopInsetAs = 'padding'
44
45
  } = _ref;
45
46
  const {
46
47
  topInset,
@@ -67,9 +68,9 @@ const Header = _ref => {
67
68
 
68
69
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
69
70
  style: [styles.container, {
71
+ [statusBarTopInsetAs === 'padding' ? 'paddingTop' : 'marginTop']: topInset,
70
72
  paddingLeft: paddingLeft + styles.container.paddingHorizontal,
71
73
  paddingRight: paddingRight + styles.container.paddingHorizontal,
72
- paddingTop: topInset,
73
74
  backgroundColor: colors.ui.header.nav.none.background,
74
75
  borderBottomColor: colors.ui.header.nav.none.borderBottom
75
76
  }]
@@ -1 +1 @@
1
- {"version":3,"names":["AlignMapper","left","center","right","Header","children","titleAlign","title","onPressLeft","onPressRight","clearTitleMargin","topInset","defaultTitleAlign","defaultHeight","useHeaderStyle","colors","useUIKitTheme","paddingLeft","paddingRight","useSafeAreaInsets","actualTitleAlign","paddingTop","backgroundColor","ui","header","nav","none","background","styles","container","paddingHorizontal","borderBottomColor","borderBottom","height","marginHorizontal","justifyContent","LeftSide","RightSide","HeaderTitle","style","props","HeaderSubtitle","onBackground03","HeaderButton","disabled","onPress","color","button","e","conditionChaining","createStyleSheet","borderBottomWidth","flexDirection","flex","alignItems","minWidth","marginRight","marginLeft","padding","Button","Title","Subtitle"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity, TouchableOpacityProps, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Text, { TextProps } from '../../components/Text';\nimport type { BaseHeaderProps } from '../../index';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype HeaderElement = string | React.ReactElement | null;\ntype HeaderProps = BaseHeaderProps<\n {\n title?: HeaderElement;\n left?: HeaderElement;\n right?: HeaderElement;\n onPressLeft?: () => void;\n onPressRight?: () => void;\n },\n { clearTitleMargin?: boolean }\n>;\n\nconst AlignMapper = { left: 'flex-start', center: 'center', right: 'flex-end' } as const;\nconst Header: ((props: HeaderProps) => JSX.Element) & {\n Button: typeof HeaderButton;\n Title: typeof HeaderTitle;\n Subtitle: typeof HeaderSubtitle;\n} = ({\n children,\n titleAlign,\n title = null,\n left = null,\n right = null,\n onPressLeft,\n onPressRight,\n clearTitleMargin = false,\n}) => {\n const { topInset, defaultTitleAlign, defaultHeight } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const { left: paddingLeft, right: paddingRight } = useSafeAreaInsets();\n\n const actualTitleAlign = titleAlign ?? defaultTitleAlign;\n\n if (!title && !left && !right) {\n return (\n <View style={{ paddingTop: topInset, backgroundColor: colors.ui.header.nav.none.background }}>{children}</View>\n );\n }\n\n return (\n <View\n style={[\n styles.container,\n {\n paddingLeft: paddingLeft + styles.container.paddingHorizontal,\n paddingRight: paddingRight + styles.container.paddingHorizontal,\n paddingTop: topInset,\n backgroundColor: colors.ui.header.nav.none.background,\n borderBottomColor: colors.ui.header.nav.none.borderBottom,\n },\n ]}\n >\n <View style={[styles.header, { height: defaultHeight }]}>\n <LeftSide titleAlign={actualTitleAlign} left={left} onPressLeft={onPressLeft} />\n <View\n style={[\n styles.title,\n clearTitleMargin && { marginHorizontal: 0 },\n { justifyContent: AlignMapper[actualTitleAlign] },\n ]}\n >\n {typeof title === 'string' ? <HeaderTitle>{title}</HeaderTitle> : title}\n </View>\n <RightSide titleAlign={actualTitleAlign} right={right} onPressRight={onPressRight} />\n </View>\n {children}\n </View>\n );\n};\n\nconst LeftSide = ({ titleAlign, onPressLeft, left }: HeaderProps) => {\n if (titleAlign === 'center') {\n return <View style={styles.left}>{left && <HeaderButton onPress={onPressLeft}>{left}</HeaderButton>}</View>;\n }\n if (!left) return null;\n return (\n <View style={styles.left}>\n <HeaderButton onPress={onPressLeft}>{left}</HeaderButton>\n </View>\n );\n};\n\nconst RightSide = ({ titleAlign, onPressRight, right }: HeaderProps) => {\n if (titleAlign === 'center') {\n return <View style={styles.right}>{right && <HeaderButton onPress={onPressRight}>{right}</HeaderButton>}</View>;\n }\n if (!right) return null;\n return (\n <View style={styles.right}>\n <HeaderButton onPress={onPressRight}>{right}</HeaderButton>\n </View>\n );\n};\n\nconst HeaderTitle = ({ children, style, ...props }: TextProps) => {\n return (\n <Text {...props} h1 numberOfLines={1} style={style}>\n {children}\n </Text>\n );\n};\nconst HeaderSubtitle = ({ children, style, ...props }: TextProps) => {\n const { colors } = useUIKitTheme();\n return (\n <Text color={colors.onBackground03} {...props} caption2 numberOfLines={1} style={style}>\n {children}\n </Text>\n );\n};\nconst HeaderButton = ({ children, disabled, onPress, color, ...props }: TouchableOpacityProps & { color?: string }) => {\n return (\n <TouchableOpacity\n style={styles.button}\n {...props}\n disabled={!onPress || disabled}\n onPress={(e) => onPress?.(e)}\n activeOpacity={0.7}\n >\n {conditionChaining(\n [typeof children === 'string' || typeof children === 'number'],\n [\n <Text button numberOfLines={1} color={color}>\n {children}\n </Text>,\n children,\n ],\n )}\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n borderBottomWidth: 1,\n },\n header: {\n flexDirection: 'row',\n },\n title: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'center',\n marginHorizontal: 12,\n },\n left: {\n height: '100%',\n minWidth: 32,\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: 12,\n },\n right: {\n height: '100%',\n minWidth: 32,\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 12,\n },\n button: {\n padding: 4,\n },\n});\n\nHeader.Button = HeaderButton;\nHeader.Title = HeaderTitle;\nHeader.Subtitle = HeaderSubtitle;\nexport default Header;\n"],"mappings":"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"}
1
+ {"version":3,"names":["AlignMapper","left","center","right","Header","children","titleAlign","title","onPressLeft","onPressRight","clearTitleMargin","statusBarTopInsetAs","topInset","defaultTitleAlign","defaultHeight","useHeaderStyle","colors","useUIKitTheme","paddingLeft","paddingRight","useSafeAreaInsets","actualTitleAlign","paddingTop","backgroundColor","ui","header","nav","none","background","styles","container","paddingHorizontal","borderBottomColor","borderBottom","height","marginHorizontal","justifyContent","LeftSide","RightSide","HeaderTitle","style","props","HeaderSubtitle","onBackground03","HeaderButton","disabled","onPress","color","button","e","conditionChaining","createStyleSheet","borderBottomWidth","flexDirection","flex","alignItems","minWidth","marginRight","marginLeft","padding","Button","Title","Subtitle"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity, TouchableOpacityProps, View } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Text, { TextProps } from '../../components/Text';\nimport type { BaseHeaderProps } from '../../index';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype HeaderElement = string | React.ReactElement | null;\nexport type HeaderProps = BaseHeaderProps<\n {\n title?: HeaderElement;\n left?: HeaderElement;\n right?: HeaderElement;\n onPressLeft?: () => void;\n onPressRight?: () => void;\n },\n {\n clearTitleMargin?: boolean;\n statusBarTopInsetAs?: 'padding' | 'margin';\n }\n>;\n\nconst AlignMapper = { left: 'flex-start', center: 'center', right: 'flex-end' } as const;\nconst Header: ((props: HeaderProps) => JSX.Element) & {\n Button: typeof HeaderButton;\n Title: typeof HeaderTitle;\n Subtitle: typeof HeaderSubtitle;\n} = ({\n children,\n titleAlign,\n title = null,\n left = null,\n right = null,\n onPressLeft,\n onPressRight,\n clearTitleMargin = false,\n statusBarTopInsetAs = 'padding',\n}) => {\n const { topInset, defaultTitleAlign, defaultHeight } = useHeaderStyle();\n\n const { colors } = useUIKitTheme();\n const { left: paddingLeft, right: paddingRight } = useSafeAreaInsets();\n\n const actualTitleAlign = titleAlign ?? defaultTitleAlign;\n\n if (!title && !left && !right) {\n return (\n <View style={{ paddingTop: topInset, backgroundColor: colors.ui.header.nav.none.background }}>{children}</View>\n );\n }\n\n return (\n <View\n style={[\n styles.container,\n {\n [statusBarTopInsetAs === 'padding' ? 'paddingTop' : 'marginTop']: topInset,\n paddingLeft: paddingLeft + styles.container.paddingHorizontal,\n paddingRight: paddingRight + styles.container.paddingHorizontal,\n backgroundColor: colors.ui.header.nav.none.background,\n borderBottomColor: colors.ui.header.nav.none.borderBottom,\n },\n ]}\n >\n <View style={[styles.header, { height: defaultHeight }]}>\n <LeftSide titleAlign={actualTitleAlign} left={left} onPressLeft={onPressLeft} />\n <View\n style={[\n styles.title,\n clearTitleMargin && { marginHorizontal: 0 },\n { justifyContent: AlignMapper[actualTitleAlign] },\n ]}\n >\n {typeof title === 'string' ? <HeaderTitle>{title}</HeaderTitle> : title}\n </View>\n <RightSide titleAlign={actualTitleAlign} right={right} onPressRight={onPressRight} />\n </View>\n {children}\n </View>\n );\n};\n\nconst LeftSide = ({ titleAlign, onPressLeft, left }: HeaderProps) => {\n if (titleAlign === 'center') {\n return <View style={styles.left}>{left && <HeaderButton onPress={onPressLeft}>{left}</HeaderButton>}</View>;\n }\n if (!left) return null;\n return (\n <View style={styles.left}>\n <HeaderButton onPress={onPressLeft}>{left}</HeaderButton>\n </View>\n );\n};\n\nconst RightSide = ({ titleAlign, onPressRight, right }: HeaderProps) => {\n if (titleAlign === 'center') {\n return <View style={styles.right}>{right && <HeaderButton onPress={onPressRight}>{right}</HeaderButton>}</View>;\n }\n if (!right) return null;\n return (\n <View style={styles.right}>\n <HeaderButton onPress={onPressRight}>{right}</HeaderButton>\n </View>\n );\n};\n\nconst HeaderTitle = ({ children, style, ...props }: TextProps) => {\n return (\n <Text {...props} h1 numberOfLines={1} style={style}>\n {children}\n </Text>\n );\n};\nconst HeaderSubtitle = ({ children, style, ...props }: TextProps) => {\n const { colors } = useUIKitTheme();\n return (\n <Text color={colors.onBackground03} {...props} caption2 numberOfLines={1} style={style}>\n {children}\n </Text>\n );\n};\nconst HeaderButton = ({ children, disabled, onPress, color, ...props }: TouchableOpacityProps & { color?: string }) => {\n return (\n <TouchableOpacity\n style={styles.button}\n {...props}\n disabled={!onPress || disabled}\n onPress={(e) => onPress?.(e)}\n activeOpacity={0.7}\n >\n {conditionChaining(\n [typeof children === 'string' || typeof children === 'number'],\n [\n <Text button numberOfLines={1} color={color}>\n {children}\n </Text>,\n children,\n ],\n )}\n </TouchableOpacity>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingHorizontal: 12,\n borderBottomWidth: 1,\n },\n header: {\n flexDirection: 'row',\n },\n title: {\n flex: 1,\n flexDirection: 'row',\n alignItems: 'center',\n marginHorizontal: 12,\n },\n left: {\n height: '100%',\n minWidth: 32,\n alignItems: 'center',\n justifyContent: 'center',\n marginRight: 12,\n },\n right: {\n height: '100%',\n minWidth: 32,\n alignItems: 'center',\n justifyContent: 'center',\n marginLeft: 12,\n },\n button: {\n padding: 4,\n },\n});\n\nHeader.Button = HeaderButton;\nHeader.Title = HeaderTitle;\nHeader.Subtitle = HeaderSubtitle;\nexport default Header;\n"],"mappings":"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"}
@@ -27,6 +27,7 @@ const MenuBar = _ref => {
27
27
  let {
28
28
  variant = 'default',
29
29
  disabled,
30
+ visible = true,
30
31
  onPress,
31
32
  name,
32
33
  icon,
@@ -39,6 +40,7 @@ const MenuBar = _ref => {
39
40
  palette,
40
41
  colors
41
42
  } = (0, _useUIKitTheme.default)();
43
+ if (!visible) return null;
42
44
  return /*#__PURE__*/_react.default.createElement(_reactNative.View, null, /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
43
45
  disabled: disabled,
44
46
  onPress: onPress,
@@ -1 +1 @@
1
- {"version":3,"names":["MenuBar","variant","disabled","onPress","name","icon","iconColor","iconBackgroundColor","actionLabel","actionItem","palette","colors","useUIKitTheme","styles","container","conditionChaining","background50","primary","containedIcon","backgroundColor","background400","Boolean","onBackground02","createStyleSheet","paddingVertical","flexDirection","alignItems","flex","marginRight","borderRadius","padding"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Divider from '../../components/Divider';\nimport Icon from '../../components/Icon';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\nexport type MenuBarProps = {\n variant?: 'default' | 'contained';\n\n onPress: () => void;\n disabled?: boolean;\n\n icon: keyof typeof Icon.Assets;\n iconColor?: string;\n iconBackgroundColor?: string;\n name: string;\n\n actionLabel?: string;\n actionItem?: React.ReactNode;\n};\nconst MenuBar = ({\n variant = 'default',\n disabled,\n onPress,\n name,\n icon,\n iconColor,\n iconBackgroundColor,\n actionLabel,\n actionItem = null,\n}: MenuBarProps) => {\n const { palette, colors } = useUIKitTheme();\n\n return (\n <View>\n <Pressable disabled={disabled} onPress={onPress} style={styles.container}>\n {icon && (\n <Icon\n icon={icon}\n size={variant === 'contained' ? 16 : 24}\n color={conditionChaining(\n [variant === 'contained', iconColor],\n [palette.background50, iconColor, colors.primary],\n )}\n containerStyle={[\n styles.icon,\n variant === 'contained' && styles.containedIcon,\n variant === 'contained' && { backgroundColor: iconBackgroundColor ?? palette.background400 },\n ]}\n />\n )}\n <Text subtitle2 numberOfLines={1} style={styles.name}>\n {name}\n </Text>\n {Boolean(actionLabel) && (\n <Text subtitle2 numberOfLines={1} color={colors.onBackground02} style={styles.actionLabel}>\n {actionLabel}\n </Text>\n )}\n {actionItem}\n </Pressable>\n <Divider />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingVertical: 16,\n flexDirection: 'row',\n alignItems: 'center',\n },\n name: {\n flex: 1,\n marginRight: 8,\n },\n icon: {\n marginRight: 16,\n },\n containedIcon: {\n borderRadius: 24,\n padding: 4,\n },\n actionLabel: {\n marginRight: 4,\n },\n});\n\nexport default MenuBar;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;AAgBA,MAAMA,OAAO,GAAG,QAUI;EAAA,IAVH;IACfC,OAAO,GAAG,SADK;IAEfC,QAFe;IAGfC,OAHe;IAIfC,IAJe;IAKfC,IALe;IAMfC,SANe;IAOfC,mBAPe;IAQfC,WARe;IASfC,UAAU,GAAG;EATE,CAUG;EAClB,MAAM;IAAEC,OAAF;IAAWC;EAAX,IAAsB,IAAAC,sBAAA,GAA5B;EAEA,oBACE,6BAAC,iBAAD,qBACE,6BAAC,sBAAD;IAAW,QAAQ,EAAEV,QAArB;IAA+B,OAAO,EAAEC,OAAxC;IAAiD,KAAK,EAAEU,MAAM,CAACC;EAA/D,GACGT,IAAI,iBACH,6BAAC,aAAD;IACE,IAAI,EAAEA,IADR;IAEE,IAAI,EAAEJ,OAAO,KAAK,WAAZ,GAA0B,EAA1B,GAA+B,EAFvC;IAGE,KAAK,EAAE,IAAAc,6BAAA,EACL,CAACd,OAAO,KAAK,WAAb,EAA0BK,SAA1B,CADK,EAEL,CAACI,OAAO,CAACM,YAAT,EAAuBV,SAAvB,EAAkCK,MAAM,CAACM,OAAzC,CAFK,CAHT;IAOE,cAAc,EAAE,CACdJ,MAAM,CAACR,IADO,EAEdJ,OAAO,KAAK,WAAZ,IAA2BY,MAAM,CAACK,aAFpB,EAGdjB,OAAO,KAAK,WAAZ,IAA2B;MAAEkB,eAAe,EAAEZ,mBAAmB,IAAIG,OAAO,CAACU;IAAlD,CAHb;EAPlB,EAFJ,eAgBE,6BAAC,aAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEP,MAAM,CAACT;EAAhD,GACGA,IADH,CAhBF,EAmBGiB,OAAO,CAACb,WAAD,CAAP,iBACC,6BAAC,aAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEG,MAAM,CAACW,cAAhD;IAAgE,KAAK,EAAET,MAAM,CAACL;EAA9E,GACGA,WADH,CApBJ,EAwBGC,UAxBH,CADF,eA2BE,6BAAC,gBAAD,OA3BF,CADF;AA+BD,CA5CD;;AA8CA,MAAMI,MAAM,GAAG,IAAAU,yBAAA,EAAiB;EAC9BT,SAAS,EAAE;IACTU,eAAe,EAAE,EADR;IAETC,aAAa,EAAE,KAFN;IAGTC,UAAU,EAAE;EAHH,CADmB;EAM9BtB,IAAI,EAAE;IACJuB,IAAI,EAAE,CADF;IAEJC,WAAW,EAAE;EAFT,CANwB;EAU9BvB,IAAI,EAAE;IACJuB,WAAW,EAAE;EADT,CAVwB;EAa9BV,aAAa,EAAE;IACbW,YAAY,EAAE,EADD;IAEbC,OAAO,EAAE;EAFI,CAbe;EAiB9BtB,WAAW,EAAE;IACXoB,WAAW,EAAE;EADF;AAjBiB,CAAjB,CAAf;eAsBe5B,O"}
1
+ {"version":3,"names":["MenuBar","variant","disabled","visible","onPress","name","icon","iconColor","iconBackgroundColor","actionLabel","actionItem","palette","colors","useUIKitTheme","styles","container","conditionChaining","background50","primary","containedIcon","backgroundColor","background400","Boolean","onBackground02","createStyleSheet","paddingVertical","flexDirection","alignItems","flex","marginRight","borderRadius","padding"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Divider from '../../components/Divider';\nimport Icon from '../../components/Icon';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\nexport type MenuBarProps = {\n variant?: 'default' | 'contained';\n\n onPress: () => void;\n disabled?: boolean;\n visible?: boolean;\n\n icon: keyof typeof Icon.Assets;\n iconColor?: string;\n iconBackgroundColor?: string;\n name: string;\n\n actionLabel?: string;\n actionItem?: React.ReactNode;\n};\nconst MenuBar = ({\n variant = 'default',\n disabled,\n visible = true,\n onPress,\n name,\n icon,\n iconColor,\n iconBackgroundColor,\n actionLabel,\n actionItem = null,\n}: MenuBarProps) => {\n const { palette, colors } = useUIKitTheme();\n\n if (!visible) return null;\n\n return (\n <View>\n <Pressable disabled={disabled} onPress={onPress} style={styles.container}>\n {icon && (\n <Icon\n icon={icon}\n size={variant === 'contained' ? 16 : 24}\n color={conditionChaining(\n [variant === 'contained', iconColor],\n [palette.background50, iconColor, colors.primary],\n )}\n containerStyle={[\n styles.icon,\n variant === 'contained' && styles.containedIcon,\n variant === 'contained' && { backgroundColor: iconBackgroundColor ?? palette.background400 },\n ]}\n />\n )}\n <Text subtitle2 numberOfLines={1} style={styles.name}>\n {name}\n </Text>\n {Boolean(actionLabel) && (\n <Text subtitle2 numberOfLines={1} color={colors.onBackground02} style={styles.actionLabel}>\n {actionLabel}\n </Text>\n )}\n {actionItem}\n </Pressable>\n <Divider />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingVertical: 16,\n flexDirection: 'row',\n alignItems: 'center',\n },\n name: {\n flex: 1,\n marginRight: 8,\n },\n icon: {\n marginRight: 16,\n },\n containedIcon: {\n borderRadius: 24,\n padding: 4,\n },\n actionLabel: {\n marginRight: 4,\n },\n});\n\nexport default MenuBar;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;AAiBA,MAAMA,OAAO,GAAG,QAWI;EAAA,IAXH;IACfC,OAAO,GAAG,SADK;IAEfC,QAFe;IAGfC,OAAO,GAAG,IAHK;IAIfC,OAJe;IAKfC,IALe;IAMfC,IANe;IAOfC,SAPe;IAQfC,mBARe;IASfC,WATe;IAUfC,UAAU,GAAG;EAVE,CAWG;EAClB,MAAM;IAAEC,OAAF;IAAWC;EAAX,IAAsB,IAAAC,sBAAA,GAA5B;EAEA,IAAI,CAACV,OAAL,EAAc,OAAO,IAAP;EAEd,oBACE,6BAAC,iBAAD,qBACE,6BAAC,sBAAD;IAAW,QAAQ,EAAED,QAArB;IAA+B,OAAO,EAAEE,OAAxC;IAAiD,KAAK,EAAEU,MAAM,CAACC;EAA/D,GACGT,IAAI,iBACH,6BAAC,aAAD;IACE,IAAI,EAAEA,IADR;IAEE,IAAI,EAAEL,OAAO,KAAK,WAAZ,GAA0B,EAA1B,GAA+B,EAFvC;IAGE,KAAK,EAAE,IAAAe,6BAAA,EACL,CAACf,OAAO,KAAK,WAAb,EAA0BM,SAA1B,CADK,EAEL,CAACI,OAAO,CAACM,YAAT,EAAuBV,SAAvB,EAAkCK,MAAM,CAACM,OAAzC,CAFK,CAHT;IAOE,cAAc,EAAE,CACdJ,MAAM,CAACR,IADO,EAEdL,OAAO,KAAK,WAAZ,IAA2Ba,MAAM,CAACK,aAFpB,EAGdlB,OAAO,KAAK,WAAZ,IAA2B;MAAEmB,eAAe,EAAEZ,mBAAmB,IAAIG,OAAO,CAACU;IAAlD,CAHb;EAPlB,EAFJ,eAgBE,6BAAC,aAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEP,MAAM,CAACT;EAAhD,GACGA,IADH,CAhBF,EAmBGiB,OAAO,CAACb,WAAD,CAAP,iBACC,6BAAC,aAAD;IAAM,SAAS,MAAf;IAAgB,aAAa,EAAE,CAA/B;IAAkC,KAAK,EAAEG,MAAM,CAACW,cAAhD;IAAgE,KAAK,EAAET,MAAM,CAACL;EAA9E,GACGA,WADH,CApBJ,EAwBGC,UAxBH,CADF,eA2BE,6BAAC,gBAAD,OA3BF,CADF;AA+BD,CA/CD;;AAiDA,MAAMI,MAAM,GAAG,IAAAU,yBAAA,EAAiB;EAC9BT,SAAS,EAAE;IACTU,eAAe,EAAE,EADR;IAETC,aAAa,EAAE,KAFN;IAGTC,UAAU,EAAE;EAHH,CADmB;EAM9BtB,IAAI,EAAE;IACJuB,IAAI,EAAE,CADF;IAEJC,WAAW,EAAE;EAFT,CANwB;EAU9BvB,IAAI,EAAE;IACJuB,WAAW,EAAE;EADT,CAVwB;EAa9BV,aAAa,EAAE;IACbW,YAAY,EAAE,EADD;IAEbC,OAAO,EAAE;EAFI,CAbe;EAiB9BtB,WAAW,EAAE;IACXoB,WAAW,EAAE;EADF;AAjBiB,CAAjB,CAAf;eAsBe7B,O"}
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _Text = _interopRequireDefault(require("../../components/Text"));
13
+
14
+ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
15
+
16
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+
20
+ const OutlinedButton = _ref => {
21
+ let {
22
+ children,
23
+ onPress,
24
+ containerStyle
25
+ } = _ref;
26
+ const {
27
+ colors
28
+ } = (0, _useUIKitTheme.default)();
29
+ return /*#__PURE__*/_react.default.createElement(_reactNative.Pressable, {
30
+ onPress: onPress,
31
+ style: [styles.outlinedButton, {
32
+ borderColor: colors.onBackground01
33
+ }, containerStyle]
34
+ }, /*#__PURE__*/_react.default.createElement(_Text.default, {
35
+ button: true,
36
+ color: colors.onBackground01,
37
+ numberOfLines: 1,
38
+ style: styles.outlinedButtonText
39
+ }, children));
40
+ };
41
+
42
+ const styles = (0, _createStyleSheet.default)({
43
+ outlinedButton: {
44
+ borderRadius: 4,
45
+ padding: 16,
46
+ borderWidth: 1,
47
+ alignItems: 'center',
48
+ justifyContent: 'center'
49
+ },
50
+ outlinedButtonText: {
51
+ textAlign: 'center',
52
+ width: '100%'
53
+ }
54
+ });
55
+ var _default = OutlinedButton;
56
+ exports.default = _default;
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OutlinedButton","children","onPress","containerStyle","colors","useUIKitTheme","styles","outlinedButton","borderColor","onBackground01","outlinedButtonText","createStyleSheet","borderRadius","padding","borderWidth","alignItems","justifyContent","textAlign","width"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable, StyleProp, ViewStyle } from 'react-native';\n\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype OutlinedButtonProps = {\n children: string;\n containerStyle?: StyleProp<ViewStyle>;\n onPress?: () => void;\n};\n\nconst OutlinedButton = ({ children, onPress, containerStyle }: OutlinedButtonProps) => {\n const { colors } = useUIKitTheme();\n return (\n <Pressable\n onPress={onPress}\n style={[styles.outlinedButton, { borderColor: colors.onBackground01 }, containerStyle]}\n >\n <Text button color={colors.onBackground01} numberOfLines={1} style={styles.outlinedButtonText}>\n {children}\n </Text>\n </Pressable>\n );\n};\n\nconst styles = createStyleSheet({\n outlinedButton: {\n borderRadius: 4,\n padding: 16,\n borderWidth: 1,\n alignItems: 'center',\n justifyContent: 'center',\n },\n outlinedButtonText: {\n textAlign: 'center',\n width: '100%',\n },\n});\n\nexport default OutlinedButton;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;;;AAQA,MAAMA,cAAc,GAAG,QAAgE;EAAA,IAA/D;IAAEC,QAAF;IAAYC,OAAZ;IAAqBC;EAArB,CAA+D;EACrF,MAAM;IAAEC;EAAF,IAAa,IAAAC,sBAAA,GAAnB;EACA,oBACE,6BAAC,sBAAD;IACE,OAAO,EAAEH,OADX;IAEE,KAAK,EAAE,CAACI,MAAM,CAACC,cAAR,EAAwB;MAAEC,WAAW,EAAEJ,MAAM,CAACK;IAAtB,CAAxB,EAAgEN,cAAhE;EAFT,gBAIE,6BAAC,aAAD;IAAM,MAAM,MAAZ;IAAa,KAAK,EAAEC,MAAM,CAACK,cAA3B;IAA2C,aAAa,EAAE,CAA1D;IAA6D,KAAK,EAAEH,MAAM,CAACI;EAA3E,GACGT,QADH,CAJF,CADF;AAUD,CAZD;;AAcA,MAAMK,MAAM,GAAG,IAAAK,yBAAA,EAAiB;EAC9BJ,cAAc,EAAE;IACdK,YAAY,EAAE,CADA;IAEdC,OAAO,EAAE,EAFK;IAGdC,WAAW,EAAE,CAHC;IAIdC,UAAU,EAAE,QAJE;IAKdC,cAAc,EAAE;EALF,CADc;EAQ9BN,kBAAkB,EAAE;IAClBO,SAAS,EAAE,QADO;IAElBC,KAAK,EAAE;EAFW;AARU,CAAjB,CAAf;eAcelB,c"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _Divider = _interopRequireDefault(require("../../components/Divider"));
13
+
14
+ var _Text = _interopRequireDefault(require("../../components/Text"));
15
+
16
+ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
17
+
18
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
19
+
20
+ var _Avatar = _interopRequireDefault(require("../Avatar"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ const ProfileCard = _ref => {
25
+ let {
26
+ uri,
27
+ username,
28
+ bodyLabel,
29
+ body,
30
+ button,
31
+ containerStyle
32
+ } = _ref;
33
+ const {
34
+ colors
35
+ } = (0, _useUIKitTheme.default)();
36
+ const color = colors.ui.profileCard.default.none;
37
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
38
+ style: [styles.container, {
39
+ backgroundColor: color.background
40
+ }, containerStyle]
41
+ }, /*#__PURE__*/_react.default.createElement(_reactNative.View, {
42
+ style: styles.profileContainer
43
+ }, /*#__PURE__*/_react.default.createElement(_Avatar.default, {
44
+ uri: uri,
45
+ size: 80,
46
+ containerStyle: styles.profileAvatar
47
+ }), /*#__PURE__*/_react.default.createElement(_Text.default, {
48
+ h1: true,
49
+ color: color.textUsername,
50
+ numberOfLines: 1
51
+ }, username)), button && /*#__PURE__*/_react.default.createElement(_reactNative.View, {
52
+ style: styles.messageButtonArea
53
+ }, button), /*#__PURE__*/_react.default.createElement(_Divider.default, {
54
+ space: 16
55
+ }), /*#__PURE__*/_react.default.createElement(_reactNative.View, {
56
+ style: styles.profileInfoContainer
57
+ }, /*#__PURE__*/_react.default.createElement(_Text.default, {
58
+ body2: true,
59
+ color: color.textBodyLabel,
60
+ style: styles.profileInfoBodyLabel
61
+ }, bodyLabel), /*#__PURE__*/_react.default.createElement(_Text.default, {
62
+ body3: true,
63
+ numberOfLines: 1,
64
+ color: color.textBody
65
+ }, body)));
66
+ };
67
+
68
+ const styles = (0, _createStyleSheet.default)({
69
+ container: {
70
+ paddingTop: 32,
71
+ width: '100%'
72
+ },
73
+ profileContainer: {
74
+ alignItems: 'center',
75
+ paddingHorizontal: 16,
76
+ marginBottom: 24
77
+ },
78
+ profileAvatar: {
79
+ marginBottom: 8
80
+ },
81
+ profileInfoContainer: {
82
+ padding: 16
83
+ },
84
+ profileInfoBodyLabel: {
85
+ marginBottom: 4
86
+ },
87
+ messageButtonArea: {
88
+ marginHorizontal: 24,
89
+ marginBottom: 24
90
+ }
91
+ });
92
+ var _default = ProfileCard;
93
+ exports.default = _default;
94
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["ProfileCard","uri","username","bodyLabel","body","button","containerStyle","colors","useUIKitTheme","color","ui","profileCard","default","none","styles","container","backgroundColor","background","profileContainer","profileAvatar","textUsername","messageButtonArea","profileInfoContainer","textBodyLabel","profileInfoBodyLabel","textBody","createStyleSheet","paddingTop","width","alignItems","paddingHorizontal","marginBottom","padding","marginHorizontal"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport Divider from '../../components/Divider';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Avatar from '../Avatar';\n\ntype Props = {\n uri: string;\n username: string;\n\n button?: JSX.Element;\n\n bodyLabel: string;\n body: string;\n\n containerStyle?: StyleProp<ViewStyle>;\n};\n\nconst ProfileCard = ({ uri, username, bodyLabel, body, button, containerStyle }: Props) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.profileCard.default.none;\n\n return (\n <View style={[styles.container, { backgroundColor: color.background }, containerStyle]}>\n <View style={styles.profileContainer}>\n <Avatar uri={uri} size={80} containerStyle={styles.profileAvatar} />\n <Text h1 color={color.textUsername} numberOfLines={1}>\n {username}\n </Text>\n </View>\n {button && <View style={styles.messageButtonArea}>{button}</View>}\n <Divider space={16} />\n <View style={styles.profileInfoContainer}>\n <Text body2 color={color.textBodyLabel} style={styles.profileInfoBodyLabel}>\n {bodyLabel}\n </Text>\n <Text body3 numberOfLines={1} color={color.textBody}>\n {body}\n </Text>\n </View>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 32,\n width: '100%',\n },\n profileContainer: {\n alignItems: 'center',\n paddingHorizontal: 16,\n marginBottom: 24,\n },\n profileAvatar: {\n marginBottom: 8,\n },\n profileInfoContainer: {\n padding: 16,\n },\n profileInfoBodyLabel: {\n marginBottom: 4,\n },\n messageButtonArea: {\n marginHorizontal: 24,\n marginBottom: 24,\n },\n});\n\nexport default ProfileCard;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;AACA;;AACA;;AACA;;;;AAcA,MAAMA,WAAW,GAAG,QAAuE;EAAA,IAAtE;IAAEC,GAAF;IAAOC,QAAP;IAAiBC,SAAjB;IAA4BC,IAA5B;IAAkCC,MAAlC;IAA0CC;EAA1C,CAAsE;EACzF,MAAM;IAAEC;EAAF,IAAa,IAAAC,sBAAA,GAAnB;EACA,MAAMC,KAAK,GAAGF,MAAM,CAACG,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA5C;EAEA,oBACE,6BAAC,iBAAD;IAAM,KAAK,EAAE,CAACC,MAAM,CAACC,SAAR,EAAmB;MAAEC,eAAe,EAAEP,KAAK,CAACQ;IAAzB,CAAnB,EAA0DX,cAA1D;EAAb,gBACE,6BAAC,iBAAD;IAAM,KAAK,EAAEQ,MAAM,CAACI;EAApB,gBACE,6BAAC,eAAD;IAAQ,GAAG,EAAEjB,GAAb;IAAkB,IAAI,EAAE,EAAxB;IAA4B,cAAc,EAAEa,MAAM,CAACK;EAAnD,EADF,eAEE,6BAAC,aAAD;IAAM,EAAE,MAAR;IAAS,KAAK,EAAEV,KAAK,CAACW,YAAtB;IAAoC,aAAa,EAAE;EAAnD,GACGlB,QADH,CAFF,CADF,EAOGG,MAAM,iBAAI,6BAAC,iBAAD;IAAM,KAAK,EAAES,MAAM,CAACO;EAApB,GAAwChB,MAAxC,CAPb,eAQE,6BAAC,gBAAD;IAAS,KAAK,EAAE;EAAhB,EARF,eASE,6BAAC,iBAAD;IAAM,KAAK,EAAES,MAAM,CAACQ;EAApB,gBACE,6BAAC,aAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEb,KAAK,CAACc,aAAzB;IAAwC,KAAK,EAAET,MAAM,CAACU;EAAtD,GACGrB,SADH,CADF,eAIE,6BAAC,aAAD;IAAM,KAAK,MAAX;IAAY,aAAa,EAAE,CAA3B;IAA8B,KAAK,EAAEM,KAAK,CAACgB;EAA3C,GACGrB,IADH,CAJF,CATF,CADF;AAoBD,CAxBD;;AA0BA,MAAMU,MAAM,GAAG,IAAAY,yBAAA,EAAiB;EAC9BX,SAAS,EAAE;IACTY,UAAU,EAAE,EADH;IAETC,KAAK,EAAE;EAFE,CADmB;EAK9BV,gBAAgB,EAAE;IAChBW,UAAU,EAAE,QADI;IAEhBC,iBAAiB,EAAE,EAFH;IAGhBC,YAAY,EAAE;EAHE,CALY;EAU9BZ,aAAa,EAAE;IACbY,YAAY,EAAE;EADD,CAVe;EAa9BT,oBAAoB,EAAE;IACpBU,OAAO,EAAE;EADW,CAbQ;EAgB9BR,oBAAoB,EAAE;IACpBO,YAAY,EAAE;EADM,CAhBQ;EAmB9BV,iBAAiB,EAAE;IACjBY,gBAAgB,EAAE,EADD;IAEjBF,YAAY,EAAE;EAFG;AAnBW,CAAjB,CAAf;eAyBe/B,W"}
@@ -33,7 +33,7 @@ const IconAssets = {
33
33
  'leave': require('./icon-leave.png'),
34
34
  'members': require('./icon-members.png'),
35
35
  'message': require('./icon-message.png'),
36
- 'moderations': require('./icon-moderations.png'),
36
+ 'moderation': require('./icon-moderation.png'),
37
37
  'more': require('./icon-more.png'),
38
38
  'mute': require('./icon-mute.png'),
39
39
  'notifications-filled': require('./icon-notifications-filled.png'),
@@ -1 +1 @@
1
- {"version":3,"names":["IconAssets","require"],"sources":["index.ts"],"sourcesContent":["const IconAssets = {\n 'chat-hide': require('./ic-chat-hide.png'),\n 'chat-show': require('./ic-chat-show.png'),\n 'add': require('./icon-add.png'),\n 'archive': require('./icon-archive.png'),\n 'arrow-left': require('./icon-arrow-left.png'),\n 'ban': require('./icon-ban.png'),\n 'broadcast': require('./icon-broadcast.png'),\n 'camera': require('./icon-camera.png'),\n 'channels': require('./icon-channels.png'),\n 'chat-filled': require('./icon-chat-filled.png'),\n 'chat': require('./icon-chat.png'),\n 'checkbox-off': require('./icon-checkbox-off.png'),\n 'checkbox-on': require('./icon-checkbox-on.png'),\n 'chevron-down': require('./icon-chevron-down.png'),\n 'chevron-right': require('./icon-chevron-right.png'),\n 'close': require('./icon-close.png'),\n 'copy': require('./icon-copy.png'),\n 'create': require('./icon-create.png'),\n 'delete': require('./icon-delete.png'),\n 'document': require('./icon-document.png'),\n 'done-all': require('./icon-done-all.png'),\n 'done': require('./icon-done.png'),\n 'download': require('./icon-download.png'),\n 'edit': require('./icon-edit.png'),\n 'emoji-more': require('./icon-emoji-more.png'),\n 'error': require('./icon-error.png'),\n 'file-audio': require('./icon-file-audio.png'),\n 'file-document': require('./icon-file-document.png'),\n 'freeze': require('./icon-freeze.png'),\n 'gif': require('./icon-gif.png'),\n 'info': require('./icon-info.png'),\n 'leave': require('./icon-leave.png'),\n 'members': require('./icon-members.png'),\n 'message': require('./icon-message.png'),\n 'moderations': require('./icon-moderations.png'),\n 'more': require('./icon-more.png'),\n 'mute': require('./icon-mute.png'),\n 'notifications-filled': require('./icon-notifications-filled.png'),\n 'notifications-off-filled': require('./icon-notifications-off-filled.png'),\n 'notifications': require('./icon-notifications.png'),\n 'operator': require('./icon-operator.png'),\n 'photo': require('./icon-photo.png'),\n 'play': require('./icon-play.png'),\n 'plus': require('./icon-plus.png'),\n 'question': require('./icon-question.png'),\n 'refresh': require('./icon-refresh.png'),\n 'remove': require('./icon-remove.png'),\n 'reply-filled': require('./icon-reply-filled.png'),\n 'reply': require('./icon-reply.png'),\n 'search': require('./icon-search.png'),\n 'send': require('./icon-send.png'),\n 'settings-filled': require('./icon-settings-filled.png'),\n 'spinner': require('./icon-spinner.png'),\n 'streaming': require('./icon-streaming.png'),\n 'supergroup': require('./icon-supergroup.png'),\n 'theme': require('./icon-theme.png'),\n 'thumbnail-none': require('./icon-thumbnail-none.png'),\n 'unarchive': require('./icon-unarchive.png'),\n 'user': require('./icon-user.png'),\n};\nexport default IconAssets;\n"],"mappings":"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"}
1
+ {"version":3,"names":["IconAssets","require"],"sources":["index.ts"],"sourcesContent":["const IconAssets = {\n 'chat-hide': require('./ic-chat-hide.png'),\n 'chat-show': require('./ic-chat-show.png'),\n 'add': require('./icon-add.png'),\n 'archive': require('./icon-archive.png'),\n 'arrow-left': require('./icon-arrow-left.png'),\n 'ban': require('./icon-ban.png'),\n 'broadcast': require('./icon-broadcast.png'),\n 'camera': require('./icon-camera.png'),\n 'channels': require('./icon-channels.png'),\n 'chat-filled': require('./icon-chat-filled.png'),\n 'chat': require('./icon-chat.png'),\n 'checkbox-off': require('./icon-checkbox-off.png'),\n 'checkbox-on': require('./icon-checkbox-on.png'),\n 'chevron-down': require('./icon-chevron-down.png'),\n 'chevron-right': require('./icon-chevron-right.png'),\n 'close': require('./icon-close.png'),\n 'copy': require('./icon-copy.png'),\n 'create': require('./icon-create.png'),\n 'delete': require('./icon-delete.png'),\n 'document': require('./icon-document.png'),\n 'done-all': require('./icon-done-all.png'),\n 'done': require('./icon-done.png'),\n 'download': require('./icon-download.png'),\n 'edit': require('./icon-edit.png'),\n 'emoji-more': require('./icon-emoji-more.png'),\n 'error': require('./icon-error.png'),\n 'file-audio': require('./icon-file-audio.png'),\n 'file-document': require('./icon-file-document.png'),\n 'freeze': require('./icon-freeze.png'),\n 'gif': require('./icon-gif.png'),\n 'info': require('./icon-info.png'),\n 'leave': require('./icon-leave.png'),\n 'members': require('./icon-members.png'),\n 'message': require('./icon-message.png'),\n 'moderation': require('./icon-moderation.png'),\n 'more': require('./icon-more.png'),\n 'mute': require('./icon-mute.png'),\n 'notifications-filled': require('./icon-notifications-filled.png'),\n 'notifications-off-filled': require('./icon-notifications-off-filled.png'),\n 'notifications': require('./icon-notifications.png'),\n 'operator': require('./icon-operator.png'),\n 'photo': require('./icon-photo.png'),\n 'play': require('./icon-play.png'),\n 'plus': require('./icon-plus.png'),\n 'question': require('./icon-question.png'),\n 'refresh': require('./icon-refresh.png'),\n 'remove': require('./icon-remove.png'),\n 'reply-filled': require('./icon-reply-filled.png'),\n 'reply': require('./icon-reply.png'),\n 'search': require('./icon-search.png'),\n 'send': require('./icon-send.png'),\n 'settings-filled': require('./icon-settings-filled.png'),\n 'spinner': require('./icon-spinner.png'),\n 'streaming': require('./icon-streaming.png'),\n 'supergroup': require('./icon-supergroup.png'),\n 'theme': require('./icon-theme.png'),\n 'thumbnail-none': require('./icon-thumbnail-none.png'),\n 'unarchive': require('./icon-unarchive.png'),\n 'user': require('./icon-user.png'),\n};\nexport default IconAssets;\n"],"mappings":"AAAA,MAAMA,UAAU,GAAG;EACjB,aAAaC,OAAO,CAAC,oBAAD,CADH;EAEjB,aAAaA,OAAO,CAAC,oBAAD,CAFH;EAGjB,OAAOA,OAAO,CAAC,gBAAD,CAHG;EAIjB,WAAWA,OAAO,CAAC,oBAAD,CAJD;EAKjB,cAAcA,OAAO,CAAC,uBAAD,CALJ;EAMjB,OAAOA,OAAO,CAAC,gBAAD,CANG;EAOjB,aAAaA,OAAO,CAAC,sBAAD,CAPH;EAQjB,UAAUA,OAAO,CAAC,mBAAD,CARA;EASjB,YAAYA,OAAO,CAAC,qBAAD,CATF;EAUjB,eAAeA,OAAO,CAAC,wBAAD,CAVL;EAWjB,QAAQA,OAAO,CAAC,iBAAD,CAXE;EAYjB,gBAAgBA,OAAO,CAAC,yBAAD,CAZN;EAajB,eAAeA,OAAO,CAAC,wBAAD,CAbL;EAcjB,gBAAgBA,OAAO,CAAC,yBAAD,CAdN;EAejB,iBAAiBA,OAAO,CAAC,0BAAD,CAfP;EAgBjB,SAASA,OAAO,CAAC,kBAAD,CAhBC;EAiBjB,QAAQA,OAAO,CAAC,iBAAD,CAjBE;EAkBjB,UAAUA,OAAO,CAAC,mBAAD,CAlBA;EAmBjB,UAAUA,OAAO,CAAC,mBAAD,CAnBA;EAoBjB,YAAYA,OAAO,CAAC,qBAAD,CApBF;EAqBjB,YAAYA,OAAO,CAAC,qBAAD,CArBF;EAsBjB,QAAQA,OAAO,CAAC,iBAAD,CAtBE;EAuBjB,YAAYA,OAAO,CAAC,qBAAD,CAvBF;EAwBjB,QAAQA,OAAO,CAAC,iBAAD,CAxBE;EAyBjB,cAAcA,OAAO,CAAC,uBAAD,CAzBJ;EA0BjB,SAASA,OAAO,CAAC,kBAAD,CA1BC;EA2BjB,cAAcA,OAAO,CAAC,uBAAD,CA3BJ;EA4BjB,iBAAiBA,OAAO,CAAC,0BAAD,CA5BP;EA6BjB,UAAUA,OAAO,CAAC,mBAAD,CA7BA;EA8BjB,OAAOA,OAAO,CAAC,gBAAD,CA9BG;EA+BjB,QAAQA,OAAO,CAAC,iBAAD,CA/BE;EAgCjB,SAASA,OAAO,CAAC,kBAAD,CAhCC;EAiCjB,WAAWA,OAAO,CAAC,oBAAD,CAjCD;EAkCjB,WAAWA,OAAO,CAAC,oBAAD,CAlCD;EAmCjB,cAAcA,OAAO,CAAC,uBAAD,CAnCJ;EAoCjB,QAAQA,OAAO,CAAC,iBAAD,CApCE;EAqCjB,QAAQA,OAAO,CAAC,iBAAD,CArCE;EAsCjB,wBAAwBA,OAAO,CAAC,iCAAD,CAtCd;EAuCjB,4BAA4BA,OAAO,CAAC,qCAAD,CAvClB;EAwCjB,iBAAiBA,OAAO,CAAC,0BAAD,CAxCP;EAyCjB,YAAYA,OAAO,CAAC,qBAAD,CAzCF;EA0CjB,SAASA,OAAO,CAAC,kBAAD,CA1CC;EA2CjB,QAAQA,OAAO,CAAC,iBAAD,CA3CE;EA4CjB,QAAQA,OAAO,CAAC,iBAAD,CA5CE;EA6CjB,YAAYA,OAAO,CAAC,qBAAD,CA7CF;EA8CjB,WAAWA,OAAO,CAAC,oBAAD,CA9CD;EA+CjB,UAAUA,OAAO,CAAC,mBAAD,CA/CA;EAgDjB,gBAAgBA,OAAO,CAAC,yBAAD,CAhDN;EAiDjB,SAASA,OAAO,CAAC,kBAAD,CAjDC;EAkDjB,UAAUA,OAAO,CAAC,mBAAD,CAlDA;EAmDjB,QAAQA,OAAO,CAAC,iBAAD,CAnDE;EAoDjB,mBAAmBA,OAAO,CAAC,4BAAD,CApDT;EAqDjB,WAAWA,OAAO,CAAC,oBAAD,CArDD;EAsDjB,aAAaA,OAAO,CAAC,sBAAD,CAtDH;EAuDjB,cAAcA,OAAO,CAAC,uBAAD,CAvDJ;EAwDjB,SAASA,OAAO,CAAC,kBAAD,CAxDC;EAyDjB,kBAAkBA,OAAO,CAAC,2BAAD,CAzDR;EA0DjB,aAAaA,OAAO,CAAC,sBAAD,CA1DH;EA2DjB,QAAQA,OAAO,CAAC,iBAAD;AA3DE,CAAnB;AA6DA,eAAeD,UAAf"}
@@ -54,6 +54,7 @@ const Modal = _ref => {
54
54
  }, [visible]);
55
55
  useOnDismiss(modalVisible, onDismiss);
56
56
  return /*#__PURE__*/React.createElement(RNModal, _extends({
57
+ statusBarTranslucent: statusBarTranslucent,
57
58
  transparent: true,
58
59
  hardwareAccelerated: true,
59
60
  visible: modalVisible,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useRef","useState","Animated","Dimensions","KeyboardAvoidingView","PanResponder","Platform","Pressable","Modal","RNModal","StyleSheet","TouchableWithoutFeedback","useWindowDimensions","createStyleSheet","useHeaderStyle","useUIKitTheme","children","onClose","backgroundStyle","onDismiss","type","visible","disableBackgroundClose","enableKeyboardAvoid","statusBarTranslucent","props","palette","content","backdrop","showTransition","hideTransition","useModalAnimation","panResponder","useModalPanResponder","translateY","topInset","modalVisible","setModalVisible","showAction","hideAction","width","height","useOnDismiss","undefined","absoluteFill","opacity","backgroundColor","onBackgroundLight03","styles","background","select","ios","default","transform","panHandlers","isHideGesture","distanceY","velocityY","show","hide","create","onMoveShouldSetPanResponderCapture","_","dy","onPanResponderGrant","setOffset","__getValue","onPanResponderMove","setValue","onPanResponderRelease","vy","current","initialY","get","baseAnimBackground","Value","baseAnimContent","interpolate","inputRange","outputRange","createTransition","toValue","config","duration","useNativeDriver","parallel","timing","start","prevVisible","usePrevProp","OS","prop","prev","curr","flex"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n Dimensions,\n KeyboardAvoidingView,\n ModalProps,\n PanResponder,\n Platform,\n Pressable,\n Modal as RNModal,\n StyleProp,\n StyleSheet,\n TouchableWithoutFeedback,\n ViewStyle,\n useWindowDimensions,\n} from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = {\n type?: 'slide' | 'fade';\n onClose: () => void;\n backgroundStyle?: StyleProp<ViewStyle>;\n disableBackgroundClose?: boolean;\n enableKeyboardAvoid?: boolean;\n} & Omit<ModalProps, 'animationType' | 'onRequestClose'>;\n\n/**\n * Modal Open: Triggered by Modal.props.visible state changed to true\n * - visible true -> modalVisible true -> animation start\n *\n * Modal Close: Triggered by Modal.props.onClose() call\n * - Modal.props.onClose() -> visible false -> animation start -> modalVisible false\n * */\nconst Modal = ({\n children,\n onClose,\n backgroundStyle,\n onDismiss,\n type = 'fade',\n visible = false,\n disableBackgroundClose = false,\n enableKeyboardAvoid = false,\n statusBarTranslucent,\n ...props\n}: Props) => {\n const { palette } = useUIKitTheme();\n const { content, backdrop, showTransition, hideTransition } = useModalAnimation(type);\n const panResponder = useModalPanResponder(type, content.translateY, showTransition, onClose);\n const { topInset } = useHeaderStyle();\n\n const [modalVisible, setModalVisible] = useState(false);\n const showAction = () => setModalVisible(true);\n const hideAction = () => hideTransition(() => setModalVisible(false));\n\n const { width, height } = useWindowDimensions();\n\n useEffect(() => {\n if (visible) showAction();\n else hideAction();\n }, [visible]);\n\n useOnDismiss(modalVisible, onDismiss);\n\n return (\n <RNModal\n transparent\n hardwareAccelerated\n visible={modalVisible}\n onRequestClose={onClose}\n onShow={() => showTransition()}\n onDismiss={onDismiss}\n supportedOrientations={['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right']}\n animationType={'none'}\n {...props}\n >\n <TouchableWithoutFeedback onPress={disableBackgroundClose ? undefined : onClose}>\n <Animated.View\n style={[StyleSheet.absoluteFill, { opacity: backdrop.opacity, backgroundColor: palette.onBackgroundLight03 }]}\n />\n </TouchableWithoutFeedback>\n <KeyboardAvoidingView\n // NOTE: This is trick for Android.\n // When orientation is changed on Android, the offset that to avoid soft-keyboard is not updated normally.\n key={`${width}-${height}`}\n enabled={enableKeyboardAvoid}\n style={styles.background}\n behavior={Platform.select({ ios: 'padding', default: 'height' })}\n pointerEvents={'box-none'}\n keyboardVerticalOffset={enableKeyboardAvoid && statusBarTranslucent ? -topInset : 0}\n >\n <Animated.View\n style={[\n styles.background,\n backgroundStyle,\n { opacity: content.opacity, transform: [{ translateY: content.translateY }] },\n ]}\n pointerEvents={'box-none'}\n {...panResponder.panHandlers}\n >\n <Pressable\n // NOTE: https://github.com/facebook/react-native/issues/14295\n // Due to 'Pressable', the width of the children must be explicitly specified as a number.\n >\n {children}\n </Pressable>\n </Animated.View>\n </KeyboardAvoidingView>\n </RNModal>\n );\n};\n\nconst isHideGesture = (distanceY: number, velocityY: number) => {\n return distanceY > 125 || (distanceY > 0 && velocityY > 0.1);\n};\nconst useModalPanResponder = (\n type: 'slide' | 'fade',\n translateY: Animated.Value,\n show: () => void,\n hide: () => void,\n) => {\n if (type === 'fade') return { panHandlers: {} };\n return React.useRef(\n PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, { dy }) => dy > 8,\n // @ts-ignore\n onPanResponderGrant: () => translateY.setOffset(translateY.__getValue()),\n onPanResponderMove: (_, { dy }) => dy >= 0 && translateY.setValue(dy), // Animated.event([null, { dy: translateY }], { useNativeDriver: false }),\n onPanResponderRelease: (_, { dy, vy }) => {\n if (isHideGesture(dy, vy)) hide();\n else show();\n },\n }),\n ).current;\n};\n\nconst useModalAnimation = (type: 'slide' | 'fade') => {\n const initialY = type === 'slide' ? Dimensions.get('window').height : 0;\n const baseAnimBackground = useRef(new Animated.Value(0)).current;\n const baseAnimContent = useRef(new Animated.Value(initialY)).current;\n\n const content = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [type === 'slide' ? 1 : 0, 1],\n }),\n translateY: baseAnimContent,\n };\n const backdrop = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n }),\n };\n const createTransition = (toValue: 0 | 1) => {\n const config = { duration: 250, useNativeDriver: false };\n return Animated.parallel([\n Animated.timing(baseAnimBackground, { toValue, ...config }),\n Animated.timing(baseAnimContent, { toValue: toValue === 0 ? initialY : 0, ...config }),\n ]).start;\n };\n return {\n content,\n backdrop,\n showTransition: createTransition(1),\n hideTransition: createTransition(0),\n };\n};\n\n// NOTE: onDismiss is supports iOS only\nconst useOnDismiss = (visible: boolean, onDismiss?: () => void) => {\n const prevVisible = usePrevProp(visible);\n useEffect(() => {\n if (Platform.OS === 'ios') return;\n if (prevVisible && !visible) onDismiss?.();\n }, [prevVisible, visible]);\n};\n\nconst usePrevProp = <T,>(prop: T) => {\n const prev = useRef(prop);\n const curr = useRef(prop);\n useEffect(() => {\n prev.current = curr.current;\n curr.current = prop;\n });\n return prev.current;\n};\n\nconst styles = createStyleSheet({\n background: { flex: 1 },\n});\n\nexport default Modal;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useRef","useState","Animated","Dimensions","KeyboardAvoidingView","PanResponder","Platform","Pressable","Modal","RNModal","StyleSheet","TouchableWithoutFeedback","useWindowDimensions","createStyleSheet","useHeaderStyle","useUIKitTheme","children","onClose","backgroundStyle","onDismiss","type","visible","disableBackgroundClose","enableKeyboardAvoid","statusBarTranslucent","props","palette","content","backdrop","showTransition","hideTransition","useModalAnimation","panResponder","useModalPanResponder","translateY","topInset","modalVisible","setModalVisible","showAction","hideAction","width","height","useOnDismiss","undefined","absoluteFill","opacity","backgroundColor","onBackgroundLight03","styles","background","select","ios","default","transform","panHandlers","isHideGesture","distanceY","velocityY","show","hide","create","onMoveShouldSetPanResponderCapture","_","dy","onPanResponderGrant","setOffset","__getValue","onPanResponderMove","setValue","onPanResponderRelease","vy","current","initialY","get","baseAnimBackground","Value","baseAnimContent","interpolate","inputRange","outputRange","createTransition","toValue","config","duration","useNativeDriver","parallel","timing","start","prevVisible","usePrevProp","OS","prop","prev","curr","flex"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport {\n Animated,\n Dimensions,\n KeyboardAvoidingView,\n ModalProps,\n PanResponder,\n Platform,\n Pressable,\n Modal as RNModal,\n StyleProp,\n StyleSheet,\n TouchableWithoutFeedback,\n ViewStyle,\n useWindowDimensions,\n} from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = {\n type?: 'slide' | 'fade';\n onClose: () => void;\n backgroundStyle?: StyleProp<ViewStyle>;\n disableBackgroundClose?: boolean;\n enableKeyboardAvoid?: boolean;\n} & Omit<ModalProps, 'animationType' | 'onRequestClose'>;\n\n/**\n * Modal Open: Triggered by Modal.props.visible state changed to true\n * - visible true -> modalVisible true -> animation start\n *\n * Modal Close: Triggered by Modal.props.onClose() call\n * - Modal.props.onClose() -> visible false -> animation start -> modalVisible false\n * */\nconst Modal = ({\n children,\n onClose,\n backgroundStyle,\n onDismiss,\n type = 'fade',\n visible = false,\n disableBackgroundClose = false,\n enableKeyboardAvoid = false,\n statusBarTranslucent,\n ...props\n}: Props) => {\n const { palette } = useUIKitTheme();\n const { content, backdrop, showTransition, hideTransition } = useModalAnimation(type);\n const panResponder = useModalPanResponder(type, content.translateY, showTransition, onClose);\n const { topInset } = useHeaderStyle();\n\n const [modalVisible, setModalVisible] = useState(false);\n const showAction = () => setModalVisible(true);\n const hideAction = () => hideTransition(() => setModalVisible(false));\n\n const { width, height } = useWindowDimensions();\n\n useEffect(() => {\n if (visible) showAction();\n else hideAction();\n }, [visible]);\n\n useOnDismiss(modalVisible, onDismiss);\n\n return (\n <RNModal\n statusBarTranslucent={statusBarTranslucent}\n transparent\n hardwareAccelerated\n visible={modalVisible}\n onRequestClose={onClose}\n onShow={() => showTransition()}\n onDismiss={onDismiss}\n supportedOrientations={['portrait', 'portrait-upside-down', 'landscape', 'landscape-left', 'landscape-right']}\n animationType={'none'}\n {...props}\n >\n <TouchableWithoutFeedback onPress={disableBackgroundClose ? undefined : onClose}>\n <Animated.View\n style={[StyleSheet.absoluteFill, { opacity: backdrop.opacity, backgroundColor: palette.onBackgroundLight03 }]}\n />\n </TouchableWithoutFeedback>\n <KeyboardAvoidingView\n // NOTE: This is trick for Android.\n // When orientation is changed on Android, the offset that to avoid soft-keyboard is not updated normally.\n key={`${width}-${height}`}\n enabled={enableKeyboardAvoid}\n style={styles.background}\n behavior={Platform.select({ ios: 'padding', default: 'height' })}\n pointerEvents={'box-none'}\n keyboardVerticalOffset={enableKeyboardAvoid && statusBarTranslucent ? -topInset : 0}\n >\n <Animated.View\n style={[\n styles.background,\n backgroundStyle,\n { opacity: content.opacity, transform: [{ translateY: content.translateY }] },\n ]}\n pointerEvents={'box-none'}\n {...panResponder.panHandlers}\n >\n <Pressable\n // NOTE: https://github.com/facebook/react-native/issues/14295\n // Due to 'Pressable', the width of the children must be explicitly specified as a number.\n >\n {children}\n </Pressable>\n </Animated.View>\n </KeyboardAvoidingView>\n </RNModal>\n );\n};\n\nconst isHideGesture = (distanceY: number, velocityY: number) => {\n return distanceY > 125 || (distanceY > 0 && velocityY > 0.1);\n};\nconst useModalPanResponder = (\n type: 'slide' | 'fade',\n translateY: Animated.Value,\n show: () => void,\n hide: () => void,\n) => {\n if (type === 'fade') return { panHandlers: {} };\n return React.useRef(\n PanResponder.create({\n onMoveShouldSetPanResponderCapture: (_, { dy }) => dy > 8,\n // @ts-ignore\n onPanResponderGrant: () => translateY.setOffset(translateY.__getValue()),\n onPanResponderMove: (_, { dy }) => dy >= 0 && translateY.setValue(dy), // Animated.event([null, { dy: translateY }], { useNativeDriver: false }),\n onPanResponderRelease: (_, { dy, vy }) => {\n if (isHideGesture(dy, vy)) hide();\n else show();\n },\n }),\n ).current;\n};\n\nconst useModalAnimation = (type: 'slide' | 'fade') => {\n const initialY = type === 'slide' ? Dimensions.get('window').height : 0;\n const baseAnimBackground = useRef(new Animated.Value(0)).current;\n const baseAnimContent = useRef(new Animated.Value(initialY)).current;\n\n const content = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [type === 'slide' ? 1 : 0, 1],\n }),\n translateY: baseAnimContent,\n };\n const backdrop = {\n opacity: baseAnimBackground.interpolate({\n inputRange: [0, 1],\n outputRange: [0, 1],\n }),\n };\n const createTransition = (toValue: 0 | 1) => {\n const config = { duration: 250, useNativeDriver: false };\n return Animated.parallel([\n Animated.timing(baseAnimBackground, { toValue, ...config }),\n Animated.timing(baseAnimContent, { toValue: toValue === 0 ? initialY : 0, ...config }),\n ]).start;\n };\n return {\n content,\n backdrop,\n showTransition: createTransition(1),\n hideTransition: createTransition(0),\n };\n};\n\n// NOTE: onDismiss is supports iOS only\nconst useOnDismiss = (visible: boolean, onDismiss?: () => void) => {\n const prevVisible = usePrevProp(visible);\n useEffect(() => {\n if (Platform.OS === 'ios') return;\n if (prevVisible && !visible) onDismiss?.();\n }, [prevVisible, visible]);\n};\n\nconst usePrevProp = <T,>(prop: T) => {\n const prev = useRef(prop);\n const curr = useRef(prop);\n useEffect(() => {\n prev.current = curr.current;\n curr.current = prop;\n });\n return prev.current;\n};\n\nconst styles = createStyleSheet({\n background: { flex: 1 },\n});\n\nexport default Modal;\n"],"mappings":"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"}
@@ -12,11 +12,11 @@ export { default as TextInput } from './components/TextInput';
12
12
  export { default as URLParsedText } from './components/URLParsedText';
13
13
  /** UI **/
14
14
 
15
- export { default as ActionMenu, ActionMenuItem } from './ui/ActionMenu';
15
+ export { default as ActionMenu } from './ui/ActionMenu';
16
16
  export { default as Alert } from './ui/Alert';
17
17
  export { default as Avatar } from './ui/Avatar';
18
18
  export { default as Badge } from './ui/Badge';
19
- export { default as BottomSheet, BottomSheetItem } from './ui/BottomSheet';
19
+ export { default as BottomSheet } from './ui/BottomSheet';
20
20
  export { default as Button } from './ui/Button';
21
21
  export { default as ChannelFrozenBanner } from './ui/ChannelFrozenBanner';
22
22
  export { DialogProvider, useActionMenu, useAlert, usePrompt, useBottomSheet } from './ui/Dialog';
@@ -24,7 +24,9 @@ export { default as GroupChannelPreview } from './ui/GroupChannelPreview';
24
24
  export { default as Header } from './ui/Header';
25
25
  export { default as LoadingSpinner } from './ui/LoadingSpinner';
26
26
  export { default as MenuBar, MenuBarProps } from './ui/MenuBar';
27
+ export { default as OutlinedButton } from './ui/OutlinedButton';
27
28
  export { default as Placeholder } from './ui/Placeholder';
29
+ export { default as ProfileCard } from './ui/ProfileCard';
28
30
  export { default as Prompt } from './ui/Prompt';
29
31
  export { default as Toast, useToast, ToastProvider } from './ui/Toast';
30
32
  /** Styles **/
@@ -32,9 +34,9 @@ export { default as Toast, useToast, ToastProvider } from './ui/Toast';
32
34
  export { default as createSelectByColorScheme } from './styles/createSelectByColorScheme';
33
35
  export { default as createScaleFactor } from './styles/createScaleFactor';
34
36
  export { default as createStyleSheet } from './styles/createStyleSheet';
35
- export { default as createTypography, UIKitTypographyOverrides } from './styles/createTypography';
37
+ export { default as createTypography } from './styles/createTypography';
36
38
  export { default as getDefaultHeaderHeight } from './styles/getDefaultHeaderHeight';
37
- export { HeaderStyleContext, HeaderStyleProvider, HeaderStyleContextType } from './styles/HeaderStyleContext';
39
+ export { HeaderStyleContext, HeaderStyleProvider } from './styles/HeaderStyleContext';
38
40
  export { default as useHeaderStyle } from './styles/useHeaderStyle';
39
41
  /** Theme **/
40
42
 
@@ -1 +1 @@
1
- {"version":3,"names":["default","IconAssets","Divider","Icon","Image","Modal","Switch","Text","TextInput","URLParsedText","ActionMenu","ActionMenuItem","Alert","Avatar","Badge","BottomSheet","BottomSheetItem","Button","ChannelFrozenBanner","DialogProvider","useActionMenu","useAlert","usePrompt","useBottomSheet","GroupChannelPreview","Header","LoadingSpinner","MenuBar","MenuBarProps","Placeholder","Prompt","Toast","useToast","ToastProvider","createSelectByColorScheme","createScaleFactor","createStyleSheet","createTypography","UIKitTypographyOverrides","getDefaultHeaderHeight","HeaderStyleContext","HeaderStyleProvider","HeaderStyleContextType","useHeaderStyle","createTheme","DarkUIKitTheme","LightUIKitTheme","Palette","UIKitThemeContext","UIKitThemeProvider","useUIKitTheme"],"sources":["index.ts"],"sourcesContent":["/** Assets **/\nexport { default as IconAssets } from './assets/icon';\n\n/** Component **/\nexport { default as Divider } from './components/Divider';\nexport { default as Icon } from './components/Icon';\nexport { default as Image } from './components/Image';\nexport { default as Modal } from './components/Modal';\nexport { default as Switch } from './components/Switch';\nexport { default as Text } from './components/Text';\nexport { default as TextInput } from './components/TextInput';\nexport { default as URLParsedText } from './components/URLParsedText';\n\n/** UI **/\nexport { default as ActionMenu, ActionMenuItem } from './ui/ActionMenu';\nexport { default as Alert } from './ui/Alert';\nexport { default as Avatar } from './ui/Avatar';\nexport { default as Badge } from './ui/Badge';\nexport { default as BottomSheet, BottomSheetItem } from './ui/BottomSheet';\nexport { default as Button } from './ui/Button';\nexport { default as ChannelFrozenBanner } from './ui/ChannelFrozenBanner';\nexport { DialogProvider, useActionMenu, useAlert, usePrompt, useBottomSheet } from './ui/Dialog';\nexport { default as GroupChannelPreview } from './ui/GroupChannelPreview';\nexport { default as Header } from './ui/Header';\nexport { default as LoadingSpinner } from './ui/LoadingSpinner';\nexport { default as MenuBar, MenuBarProps } from './ui/MenuBar';\nexport { default as Placeholder } from './ui/Placeholder';\nexport { default as Prompt } from './ui/Prompt';\nexport { default as Toast, useToast, ToastProvider } from './ui/Toast';\n\n/** Styles **/\nexport { default as createSelectByColorScheme } from './styles/createSelectByColorScheme';\nexport { default as createScaleFactor } from './styles/createScaleFactor';\nexport { default as createStyleSheet } from './styles/createStyleSheet';\nexport { default as createTypography, UIKitTypographyOverrides } from './styles/createTypography';\nexport { default as getDefaultHeaderHeight } from './styles/getDefaultHeaderHeight';\nexport { HeaderStyleContext, HeaderStyleProvider, HeaderStyleContextType } from './styles/HeaderStyleContext';\nexport { default as useHeaderStyle } from './styles/useHeaderStyle';\n\n/** Theme **/\nexport { default as createTheme } from './theme/createTheme';\nexport { default as DarkUIKitTheme } from './theme/DarkUIKitTheme';\nexport { default as LightUIKitTheme } from './theme/LightUIKitTheme';\nexport { default as Palette } from './theme/Palette';\nexport { default as UIKitThemeContext } from './theme/UIKitThemeContext';\nexport { default as UIKitThemeProvider } from './theme/UIKitThemeProvider';\nexport { default as useUIKitTheme } from './theme/useUIKitTheme';\n\n/** Types **/\nexport type {\n TypoName,\n UIKitTheme,\n UIKitTypography,\n FontAttributes,\n BaseHeaderProps,\n UIKitColorScheme,\n UIKitColors,\n ComponentColorTree,\n UIKitPalette,\n HeaderElement,\n HeaderPartProps,\n ComponentColors,\n Component,\n GetColorTree,\n} from './types';\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,UAApB,QAAsC,eAAtC;AAEA;;AACA,SAASD,OAAO,IAAIE,OAApB,QAAmC,sBAAnC;AACA,SAASF,OAAO,IAAIG,IAApB,QAAgC,mBAAhC;AACA,SAASH,OAAO,IAAII,KAApB,QAAiC,oBAAjC;AACA,SAASJ,OAAO,IAAIK,KAApB,QAAiC,oBAAjC;AACA,SAASL,OAAO,IAAIM,MAApB,QAAkC,qBAAlC;AACA,SAASN,OAAO,IAAIO,IAApB,QAAgC,mBAAhC;AACA,SAASP,OAAO,IAAIQ,SAApB,QAAqC,wBAArC;AACA,SAASR,OAAO,IAAIS,aAApB,QAAyC,4BAAzC;AAEA;;AACA,SAAST,OAAO,IAAIU,UAApB,EAAgCC,cAAhC,QAAsD,iBAAtD;AACA,SAASX,OAAO,IAAIY,KAApB,QAAiC,YAAjC;AACA,SAASZ,OAAO,IAAIa,MAApB,QAAkC,aAAlC;AACA,SAASb,OAAO,IAAIc,KAApB,QAAiC,YAAjC;AACA,SAASd,OAAO,IAAIe,WAApB,EAAiCC,eAAjC,QAAwD,kBAAxD;AACA,SAAShB,OAAO,IAAIiB,MAApB,QAAkC,aAAlC;AACA,SAASjB,OAAO,IAAIkB,mBAApB,QAA+C,0BAA/C;AACA,SAASC,cAAT,EAAyBC,aAAzB,EAAwCC,QAAxC,EAAkDC,SAAlD,EAA6DC,cAA7D,QAAmF,aAAnF;AACA,SAASvB,OAAO,IAAIwB,mBAApB,QAA+C,0BAA/C;AACA,SAASxB,OAAO,IAAIyB,MAApB,QAAkC,aAAlC;AACA,SAASzB,OAAO,IAAI0B,cAApB,QAA0C,qBAA1C;AACA,SAAS1B,OAAO,IAAI2B,OAApB,EAA6BC,YAA7B,QAAiD,cAAjD;AACA,SAAS5B,OAAO,IAAI6B,WAApB,QAAuC,kBAAvC;AACA,SAAS7B,OAAO,IAAI8B,MAApB,QAAkC,aAAlC;AACA,SAAS9B,OAAO,IAAI+B,KAApB,EAA2BC,QAA3B,EAAqCC,aAArC,QAA0D,YAA1D;AAEA;;AACA,SAASjC,OAAO,IAAIkC,yBAApB,QAAqD,oCAArD;AACA,SAASlC,OAAO,IAAImC,iBAApB,QAA6C,4BAA7C;AACA,SAASnC,OAAO,IAAIoC,gBAApB,QAA4C,2BAA5C;AACA,SAASpC,OAAO,IAAIqC,gBAApB,EAAsCC,wBAAtC,QAAsE,2BAAtE;AACA,SAAStC,OAAO,IAAIuC,sBAApB,QAAkD,iCAAlD;AACA,SAASC,kBAAT,EAA6BC,mBAA7B,EAAkDC,sBAAlD,QAAgF,6BAAhF;AACA,SAAS1C,OAAO,IAAI2C,cAApB,QAA0C,yBAA1C;AAEA;;AACA,SAAS3C,OAAO,IAAI4C,WAApB,QAAuC,qBAAvC;AACA,SAAS5C,OAAO,IAAI6C,cAApB,QAA0C,wBAA1C;AACA,SAAS7C,OAAO,IAAI8C,eAApB,QAA2C,yBAA3C;AACA,SAAS9C,OAAO,IAAI+C,OAApB,QAAmC,iBAAnC;AACA,SAAS/C,OAAO,IAAIgD,iBAApB,QAA6C,2BAA7C;AACA,SAAShD,OAAO,IAAIiD,kBAApB,QAA8C,4BAA9C;AACA,SAASjD,OAAO,IAAIkD,aAApB,QAAyC,uBAAzC;AAEA"}
1
+ {"version":3,"names":["default","IconAssets","Divider","Icon","Image","Modal","Switch","Text","TextInput","URLParsedText","ActionMenu","Alert","Avatar","Badge","BottomSheet","Button","ChannelFrozenBanner","DialogProvider","useActionMenu","useAlert","usePrompt","useBottomSheet","GroupChannelPreview","Header","LoadingSpinner","MenuBar","MenuBarProps","OutlinedButton","Placeholder","ProfileCard","Prompt","Toast","useToast","ToastProvider","createSelectByColorScheme","createScaleFactor","createStyleSheet","createTypography","getDefaultHeaderHeight","HeaderStyleContext","HeaderStyleProvider","useHeaderStyle","createTheme","DarkUIKitTheme","LightUIKitTheme","Palette","UIKitThemeContext","UIKitThemeProvider","useUIKitTheme"],"sources":["index.ts"],"sourcesContent":["/** Assets **/\nexport { default as IconAssets } from './assets/icon';\n\n/** Component **/\nexport { default as Divider } from './components/Divider';\nexport { default as Icon } from './components/Icon';\nexport { default as Image } from './components/Image';\nexport { default as Modal } from './components/Modal';\nexport { default as Switch } from './components/Switch';\nexport { default as Text } from './components/Text';\nexport { default as TextInput } from './components/TextInput';\nexport { default as URLParsedText } from './components/URLParsedText';\n\n/** UI **/\nexport { default as ActionMenu } from './ui/ActionMenu';\nexport { default as Alert } from './ui/Alert';\nexport { default as Avatar } from './ui/Avatar';\nexport { default as Badge } from './ui/Badge';\nexport { default as BottomSheet } from './ui/BottomSheet';\nexport { default as Button } from './ui/Button';\nexport { default as ChannelFrozenBanner } from './ui/ChannelFrozenBanner';\nexport { DialogProvider, useActionMenu, useAlert, usePrompt, useBottomSheet } from './ui/Dialog';\nexport { default as GroupChannelPreview } from './ui/GroupChannelPreview';\nexport { default as Header } from './ui/Header';\nexport { default as LoadingSpinner } from './ui/LoadingSpinner';\nexport { default as MenuBar, MenuBarProps } from './ui/MenuBar';\nexport { default as OutlinedButton } from './ui/OutlinedButton';\nexport { default as Placeholder } from './ui/Placeholder';\nexport { default as ProfileCard } from './ui/ProfileCard';\nexport { default as Prompt } from './ui/Prompt';\nexport { default as Toast, useToast, ToastProvider } from './ui/Toast';\n\n/** Styles **/\nexport { default as createSelectByColorScheme } from './styles/createSelectByColorScheme';\nexport { default as createScaleFactor } from './styles/createScaleFactor';\nexport { default as createStyleSheet } from './styles/createStyleSheet';\nexport { default as createTypography } from './styles/createTypography';\nexport { default as getDefaultHeaderHeight } from './styles/getDefaultHeaderHeight';\nexport { HeaderStyleContext, HeaderStyleProvider } from './styles/HeaderStyleContext';\nexport { default as useHeaderStyle } from './styles/useHeaderStyle';\n\n/** Theme **/\nexport { default as createTheme } from './theme/createTheme';\nexport { default as DarkUIKitTheme } from './theme/DarkUIKitTheme';\nexport { default as LightUIKitTheme } from './theme/LightUIKitTheme';\nexport { default as Palette } from './theme/Palette';\nexport { default as UIKitThemeContext } from './theme/UIKitThemeContext';\nexport { default as UIKitThemeProvider } from './theme/UIKitThemeProvider';\nexport { default as useUIKitTheme } from './theme/useUIKitTheme';\n\n/** Types **/\nexport type {\n TypoName,\n UIKitTheme,\n UIKitTypography,\n FontAttributes,\n BaseHeaderProps,\n UIKitColorScheme,\n UIKitColors,\n ComponentColorTree,\n UIKitPalette,\n HeaderElement,\n HeaderPartProps,\n ComponentColors,\n Component,\n GetColorTree,\n} from './types';\nexport type { ActionMenuItem } from './ui/ActionMenu';\nexport type { BottomSheetItem } from './ui/BottomSheet';\nexport type { UIKitTypographyOverrides } from './styles/createTypography';\nexport type { HeaderStyleContextType } from './styles/HeaderStyleContext';\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,UAApB,QAAsC,eAAtC;AAEA;;AACA,SAASD,OAAO,IAAIE,OAApB,QAAmC,sBAAnC;AACA,SAASF,OAAO,IAAIG,IAApB,QAAgC,mBAAhC;AACA,SAASH,OAAO,IAAII,KAApB,QAAiC,oBAAjC;AACA,SAASJ,OAAO,IAAIK,KAApB,QAAiC,oBAAjC;AACA,SAASL,OAAO,IAAIM,MAApB,QAAkC,qBAAlC;AACA,SAASN,OAAO,IAAIO,IAApB,QAAgC,mBAAhC;AACA,SAASP,OAAO,IAAIQ,SAApB,QAAqC,wBAArC;AACA,SAASR,OAAO,IAAIS,aAApB,QAAyC,4BAAzC;AAEA;;AACA,SAAST,OAAO,IAAIU,UAApB,QAAsC,iBAAtC;AACA,SAASV,OAAO,IAAIW,KAApB,QAAiC,YAAjC;AACA,SAASX,OAAO,IAAIY,MAApB,QAAkC,aAAlC;AACA,SAASZ,OAAO,IAAIa,KAApB,QAAiC,YAAjC;AACA,SAASb,OAAO,IAAIc,WAApB,QAAuC,kBAAvC;AACA,SAASd,OAAO,IAAIe,MAApB,QAAkC,aAAlC;AACA,SAASf,OAAO,IAAIgB,mBAApB,QAA+C,0BAA/C;AACA,SAASC,cAAT,EAAyBC,aAAzB,EAAwCC,QAAxC,EAAkDC,SAAlD,EAA6DC,cAA7D,QAAmF,aAAnF;AACA,SAASrB,OAAO,IAAIsB,mBAApB,QAA+C,0BAA/C;AACA,SAAStB,OAAO,IAAIuB,MAApB,QAAkC,aAAlC;AACA,SAASvB,OAAO,IAAIwB,cAApB,QAA0C,qBAA1C;AACA,SAASxB,OAAO,IAAIyB,OAApB,EAA6BC,YAA7B,QAAiD,cAAjD;AACA,SAAS1B,OAAO,IAAI2B,cAApB,QAA0C,qBAA1C;AACA,SAAS3B,OAAO,IAAI4B,WAApB,QAAuC,kBAAvC;AACA,SAAS5B,OAAO,IAAI6B,WAApB,QAAuC,kBAAvC;AACA,SAAS7B,OAAO,IAAI8B,MAApB,QAAkC,aAAlC;AACA,SAAS9B,OAAO,IAAI+B,KAApB,EAA2BC,QAA3B,EAAqCC,aAArC,QAA0D,YAA1D;AAEA;;AACA,SAASjC,OAAO,IAAIkC,yBAApB,QAAqD,oCAArD;AACA,SAASlC,OAAO,IAAImC,iBAApB,QAA6C,4BAA7C;AACA,SAASnC,OAAO,IAAIoC,gBAApB,QAA4C,2BAA5C;AACA,SAASpC,OAAO,IAAIqC,gBAApB,QAA4C,2BAA5C;AACA,SAASrC,OAAO,IAAIsC,sBAApB,QAAkD,iCAAlD;AACA,SAASC,kBAAT,EAA6BC,mBAA7B,QAAwD,6BAAxD;AACA,SAASxC,OAAO,IAAIyC,cAApB,QAA0C,yBAA1C;AAEA;;AACA,SAASzC,OAAO,IAAI0C,WAApB,QAAuC,qBAAvC;AACA,SAAS1C,OAAO,IAAI2C,cAApB,QAA0C,wBAA1C;AACA,SAAS3C,OAAO,IAAI4C,eAApB,QAA2C,yBAA3C;AACA,SAAS5C,OAAO,IAAI6C,OAApB,QAAmC,iBAAnC;AACA,SAAS7C,OAAO,IAAI8C,iBAApB,QAA6C,2BAA7C;AACA,SAAS9C,OAAO,IAAI+C,kBAApB,QAA8C,4BAA9C;AACA,SAAS/C,OAAO,IAAIgD,aAApB,QAAyC,uBAAzC;AAEA"}
@@ -1 +1 @@
1
- {"version":3,"names":["React","StatusBar","useWindowDimensions","useSafeAreaInsets","getDefaultHeaderHeight","HeaderStyleContext","createContext","HeaderComponent","defaultTitleAlign","statusBarTranslucent","topInset","currentHeight","defaultHeight","HeaderStyleProvider","children","top","width","height"],"sources":["HeaderStyleContext.tsx"],"sourcesContent":["import React from 'react';\nimport { StatusBar, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { BaseHeaderProps, HeaderElement } from '../types';\nimport getDefaultHeaderHeight from './getDefaultHeaderHeight';\n\nexport type HeaderStyleContextType = {\n HeaderComponent: (\n props: BaseHeaderProps<\n {\n title?: HeaderElement;\n left?: HeaderElement;\n right?: HeaderElement;\n onPressLeft?: () => void;\n onPressRight?: () => void;\n },\n { clearTitleMargin?: boolean }\n >,\n ) => React.ReactElement | null;\n defaultTitleAlign: 'left' | 'center';\n statusBarTranslucent: boolean;\n topInset: number;\n defaultHeight: number;\n};\nexport const HeaderStyleContext = React.createContext<HeaderStyleContextType>({\n HeaderComponent: () => null,\n defaultTitleAlign: 'left',\n statusBarTranslucent: true,\n topInset: StatusBar.currentHeight ?? 0,\n defaultHeight: getDefaultHeaderHeight(false),\n});\n\ntype Props = Pick<HeaderStyleContextType, 'statusBarTranslucent' | 'defaultTitleAlign' | 'HeaderComponent'>;\nexport const HeaderStyleProvider = ({\n children,\n HeaderComponent = () => null,\n defaultTitleAlign,\n statusBarTranslucent,\n}: React.PropsWithChildren<Props>) => {\n const { top } = useSafeAreaInsets();\n const { width, height } = useWindowDimensions();\n\n return (\n <HeaderStyleContext.Provider\n value={{\n HeaderComponent,\n defaultTitleAlign,\n statusBarTranslucent,\n topInset: statusBarTranslucent ? top : 0,\n defaultHeight: getDefaultHeaderHeight(width > height),\n }}\n >\n {children}\n </HeaderStyleContext.Provider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,EAAoBC,mBAApB,QAA+C,cAA/C;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAGA,OAAOC,sBAAP,MAAmC,0BAAnC;AAoBA,OAAO,MAAMC,kBAAkB,gBAAGL,KAAK,CAACM,aAAN,CAA4C;EAC5EC,eAAe,EAAE,MAAM,IADqD;EAE5EC,iBAAiB,EAAE,MAFyD;EAG5EC,oBAAoB,EAAE,IAHsD;EAI5EC,QAAQ,EAAET,SAAS,CAACU,aAAV,IAA2B,CAJuC;EAK5EC,aAAa,EAAER,sBAAsB,CAAC,KAAD;AALuC,CAA5C,CAA3B;AASP,OAAO,MAAMS,mBAAmB,GAAG,QAKG;EAAA,IALF;IAClCC,QADkC;IAElCP,eAAe,GAAG,MAAM,IAFU;IAGlCC,iBAHkC;IAIlCC;EAJkC,CAKE;EACpC,MAAM;IAAEM;EAAF,IAAUZ,iBAAiB,EAAjC;EACA,MAAM;IAAEa,KAAF;IAASC;EAAT,IAAoBf,mBAAmB,EAA7C;EAEA,oBACE,oBAAC,kBAAD,CAAoB,QAApB;IACE,KAAK,EAAE;MACLK,eADK;MAELC,iBAFK;MAGLC,oBAHK;MAILC,QAAQ,EAAED,oBAAoB,GAAGM,GAAH,GAAS,CAJlC;MAKLH,aAAa,EAAER,sBAAsB,CAACY,KAAK,GAAGC,MAAT;IALhC;EADT,GASGH,QATH,CADF;AAaD,CAtBM"}
1
+ {"version":3,"names":["React","StatusBar","useWindowDimensions","useSafeAreaInsets","getDefaultHeaderHeight","HeaderStyleContext","createContext","HeaderComponent","defaultTitleAlign","statusBarTranslucent","topInset","currentHeight","defaultHeight","HeaderStyleProvider","children","top","width","height"],"sources":["HeaderStyleContext.tsx"],"sourcesContent":["import React from 'react';\nimport { StatusBar, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type { HeaderProps } from '../ui/Header';\nimport getDefaultHeaderHeight from './getDefaultHeaderHeight';\n\nexport type HeaderStyleContextType = {\n HeaderComponent: (props: HeaderProps) => React.ReactElement | null;\n defaultTitleAlign: 'left' | 'center';\n statusBarTranslucent: boolean;\n topInset: number;\n defaultHeight: number;\n};\nexport const HeaderStyleContext = React.createContext<HeaderStyleContextType>({\n HeaderComponent: () => null,\n defaultTitleAlign: 'left',\n statusBarTranslucent: true,\n topInset: StatusBar.currentHeight ?? 0,\n defaultHeight: getDefaultHeaderHeight(false),\n});\n\ntype Props = Pick<HeaderStyleContextType, 'statusBarTranslucent' | 'defaultTitleAlign' | 'HeaderComponent'>;\nexport const HeaderStyleProvider = ({\n children,\n HeaderComponent = () => null,\n defaultTitleAlign,\n statusBarTranslucent,\n}: React.PropsWithChildren<Props>) => {\n const { top } = useSafeAreaInsets();\n const { width, height } = useWindowDimensions();\n\n return (\n <HeaderStyleContext.Provider\n value={{\n HeaderComponent,\n defaultTitleAlign,\n statusBarTranslucent,\n topInset: statusBarTranslucent ? top : 0,\n defaultHeight: getDefaultHeaderHeight(width > height),\n }}\n >\n {children}\n </HeaderStyleContext.Provider>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,EAAoBC,mBAApB,QAA+C,cAA/C;AACA,SAASC,iBAAT,QAAkC,gCAAlC;AAGA,OAAOC,sBAAP,MAAmC,0BAAnC;AASA,OAAO,MAAMC,kBAAkB,gBAAGL,KAAK,CAACM,aAAN,CAA4C;EAC5EC,eAAe,EAAE,MAAM,IADqD;EAE5EC,iBAAiB,EAAE,MAFyD;EAG5EC,oBAAoB,EAAE,IAHsD;EAI5EC,QAAQ,EAAET,SAAS,CAACU,aAAV,IAA2B,CAJuC;EAK5EC,aAAa,EAAER,sBAAsB,CAAC,KAAD;AALuC,CAA5C,CAA3B;AASP,OAAO,MAAMS,mBAAmB,GAAG,QAKG;EAAA,IALF;IAClCC,QADkC;IAElCP,eAAe,GAAG,MAAM,IAFU;IAGlCC,iBAHkC;IAIlCC;EAJkC,CAKE;EACpC,MAAM;IAAEM;EAAF,IAAUZ,iBAAiB,EAAjC;EACA,MAAM;IAAEa,KAAF;IAASC;EAAT,IAAoBf,mBAAmB,EAA7C;EAEA,oBACE,oBAAC,kBAAD,CAAoB,QAApB;IACE,KAAK,EAAE;MACLK,eADK;MAELC,iBAFK;MAGLC,oBAHK;MAILC,QAAQ,EAAED,oBAAoB,GAAGM,GAAH,GAAS,CAJlC;MAKLH,aAAa,EAAER,sBAAsB,CAACY,KAAK,GAAGC,MAAT;IALhC;EADT,GASGH,QATH,CADF;AAaD,CAtBM"}
@@ -167,6 +167,16 @@ const DarkUIKitTheme = createTheme({
167
167
  separator: palette.onBackgroundDark04
168
168
  }
169
169
  }
170
+ },
171
+ profileCard: {
172
+ default: {
173
+ none: {
174
+ textUsername: palette.onBackgroundDark01,
175
+ textBodyLabel: palette.onBackgroundDark02,
176
+ textBody: palette.onBackgroundDark01,
177
+ background: palette.background500
178
+ }
179
+ }
170
180
  }
171
181
  }
172
182
  })