@sendbird/uikit-react-native-foundation 1.1.2 → 2.0.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 (137) hide show
  1. package/lib/commonjs/{ui → components}/Divider/index.js +0 -0
  2. package/lib/commonjs/{ui → components}/Divider/index.js.map +0 -0
  3. package/lib/commonjs/{ui → components}/Icon/index.js +0 -0
  4. package/lib/commonjs/{ui → components}/Icon/index.js.map +0 -0
  5. package/lib/commonjs/{ui → components}/Modal/index.js +0 -0
  6. package/lib/commonjs/{ui → components}/Modal/index.js.map +0 -0
  7. package/lib/commonjs/{ui → components}/Switch/index.js +0 -0
  8. package/lib/commonjs/{ui → components}/Switch/index.js.map +0 -0
  9. package/lib/commonjs/{ui → components}/Text/index.js +0 -0
  10. package/lib/commonjs/{ui → components}/Text/index.js.map +0 -0
  11. package/lib/commonjs/{ui → components}/TextInput/index.js +0 -0
  12. package/lib/commonjs/{ui → components}/TextInput/index.js.map +0 -0
  13. package/lib/commonjs/{ui → components}/URLParsedText/index.js +0 -0
  14. package/lib/commonjs/{ui → components}/URLParsedText/index.js.map +0 -0
  15. package/lib/commonjs/index.js +14 -14
  16. package/lib/commonjs/index.js.map +1 -1
  17. package/lib/commonjs/ui/ActionMenu/index.js +4 -4
  18. package/lib/commonjs/ui/ActionMenu/index.js.map +1 -1
  19. package/lib/commonjs/ui/Alert/index.js +4 -4
  20. package/lib/commonjs/ui/Alert/index.js.map +1 -1
  21. package/lib/commonjs/ui/Avatar/AvatarIcon.js +2 -2
  22. package/lib/commonjs/ui/Avatar/AvatarIcon.js.map +1 -1
  23. package/lib/commonjs/ui/Avatar/index.js +2 -2
  24. package/lib/commonjs/ui/Avatar/index.js.map +1 -1
  25. package/lib/commonjs/ui/Badge/index.js +2 -2
  26. package/lib/commonjs/ui/Badge/index.js.map +1 -1
  27. package/lib/commonjs/ui/BottomSheet/index.js +2 -2
  28. package/lib/commonjs/ui/BottomSheet/index.js.map +1 -1
  29. package/lib/commonjs/ui/Button/index.js +4 -4
  30. package/lib/commonjs/ui/Button/index.js.map +1 -1
  31. package/lib/commonjs/ui/ChannelFrozenBanner/index.js +2 -2
  32. package/lib/commonjs/ui/ChannelFrozenBanner/index.js.map +1 -1
  33. package/lib/commonjs/ui/Dialog/DialogSheet.js +5 -4
  34. package/lib/commonjs/ui/Dialog/DialogSheet.js.map +1 -1
  35. package/lib/commonjs/ui/GroupChannelPreview/index.js +4 -4
  36. package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -1
  37. package/lib/commonjs/ui/Header/index.js +2 -2
  38. package/lib/commonjs/ui/Header/index.js.map +1 -1
  39. package/lib/commonjs/ui/LoadingSpinner/index.js +2 -2
  40. package/lib/commonjs/ui/LoadingSpinner/index.js.map +1 -1
  41. package/lib/commonjs/ui/MenuBar/index.js +5 -5
  42. package/lib/commonjs/ui/MenuBar/index.js.map +1 -1
  43. package/lib/commonjs/ui/Placeholder/index.js +4 -4
  44. package/lib/commonjs/ui/Placeholder/index.js.map +1 -1
  45. package/lib/commonjs/ui/Prompt/index.js +6 -6
  46. package/lib/commonjs/ui/Prompt/index.js.map +1 -1
  47. package/lib/commonjs/ui/Toast/index.js +4 -4
  48. package/lib/commonjs/ui/Toast/index.js.map +1 -1
  49. package/lib/module/{ui → components}/Divider/index.js +0 -0
  50. package/lib/module/{ui → components}/Divider/index.js.map +0 -0
  51. package/lib/module/{ui → components}/Icon/index.js +0 -0
  52. package/lib/module/{ui → components}/Icon/index.js.map +0 -0
  53. package/lib/module/{ui → components}/Modal/index.js +0 -0
  54. package/lib/module/{ui → components}/Modal/index.js.map +0 -0
  55. package/lib/module/{ui → components}/Switch/index.js +0 -0
  56. package/lib/module/{ui → components}/Switch/index.js.map +0 -0
  57. package/lib/module/{ui → components}/Text/index.js +0 -0
  58. package/lib/module/{ui → components}/Text/index.js.map +0 -0
  59. package/lib/module/{ui → components}/TextInput/index.js +0 -0
  60. package/lib/module/{ui → components}/TextInput/index.js.map +0 -0
  61. package/lib/module/{ui → components}/URLParsedText/index.js +0 -0
  62. package/lib/module/{ui → components}/URLParsedText/index.js.map +0 -0
  63. package/lib/module/index.js +7 -7
  64. package/lib/module/index.js.map +1 -1
  65. package/lib/module/ui/ActionMenu/index.js +2 -2
  66. package/lib/module/ui/ActionMenu/index.js.map +1 -1
  67. package/lib/module/ui/Alert/index.js +2 -2
  68. package/lib/module/ui/Alert/index.js.map +1 -1
  69. package/lib/module/ui/Avatar/AvatarIcon.js +1 -1
  70. package/lib/module/ui/Avatar/AvatarIcon.js.map +1 -1
  71. package/lib/module/ui/Avatar/index.js +1 -1
  72. package/lib/module/ui/Avatar/index.js.map +1 -1
  73. package/lib/module/ui/Badge/index.js +1 -1
  74. package/lib/module/ui/Badge/index.js.map +1 -1
  75. package/lib/module/ui/BottomSheet/index.js +1 -1
  76. package/lib/module/ui/BottomSheet/index.js.map +1 -1
  77. package/lib/module/ui/Button/index.js +2 -2
  78. package/lib/module/ui/Button/index.js.map +1 -1
  79. package/lib/module/ui/ChannelFrozenBanner/index.js +1 -1
  80. package/lib/module/ui/ChannelFrozenBanner/index.js.map +1 -1
  81. package/lib/module/ui/Dialog/DialogSheet.js +3 -2
  82. package/lib/module/ui/Dialog/DialogSheet.js.map +1 -1
  83. package/lib/module/ui/GroupChannelPreview/index.js +2 -2
  84. package/lib/module/ui/GroupChannelPreview/index.js.map +1 -1
  85. package/lib/module/ui/Header/index.js +1 -1
  86. package/lib/module/ui/Header/index.js.map +1 -1
  87. package/lib/module/ui/LoadingSpinner/index.js +1 -1
  88. package/lib/module/ui/LoadingSpinner/index.js.map +1 -1
  89. package/lib/module/ui/MenuBar/index.js +3 -3
  90. package/lib/module/ui/MenuBar/index.js.map +1 -1
  91. package/lib/module/ui/Placeholder/index.js +2 -2
  92. package/lib/module/ui/Placeholder/index.js.map +1 -1
  93. package/lib/module/ui/Prompt/index.js +3 -3
  94. package/lib/module/ui/Prompt/index.js.map +1 -1
  95. package/lib/module/ui/Toast/index.js +2 -2
  96. package/lib/module/ui/Toast/index.js.map +1 -1
  97. package/lib/typescript/src/{ui → components}/Divider/index.d.ts +0 -0
  98. package/lib/typescript/src/{ui → components}/Icon/index.d.ts +0 -0
  99. package/lib/typescript/src/{ui → components}/Modal/index.d.ts +0 -0
  100. package/lib/typescript/src/{ui → components}/Switch/index.d.ts +0 -0
  101. package/lib/typescript/src/{ui → components}/Text/index.d.ts +0 -0
  102. package/lib/typescript/src/{ui → components}/TextInput/index.d.ts +0 -0
  103. package/lib/typescript/src/{ui → components}/URLParsedText/index.d.ts +0 -0
  104. package/lib/typescript/src/index.d.ts +7 -7
  105. package/lib/typescript/src/ui/Avatar/AvatarIcon.d.ts +1 -1
  106. package/lib/typescript/src/ui/BottomSheet/index.d.ts +1 -1
  107. package/lib/typescript/src/ui/Button/index.d.ts +1 -1
  108. package/lib/typescript/src/ui/Dialog/DialogSheet.d.ts +1 -1
  109. package/lib/typescript/src/ui/GroupChannelPreview/index.d.ts +1 -1
  110. package/lib/typescript/src/ui/Header/index.d.ts +1 -1
  111. package/lib/typescript/src/ui/MenuBar/index.d.ts +1 -1
  112. package/lib/typescript/src/ui/Placeholder/index.d.ts +1 -1
  113. package/package.json +4 -4
  114. package/src/{ui → components}/Divider/index.tsx +0 -0
  115. package/src/{ui → components}/Icon/index.tsx +0 -0
  116. package/src/{ui → components}/Modal/index.tsx +0 -0
  117. package/src/{ui → components}/Switch/index.tsx +0 -0
  118. package/src/{ui → components}/Text/index.tsx +0 -0
  119. package/src/{ui → components}/TextInput/index.tsx +0 -0
  120. package/src/{ui → components}/URLParsedText/index.tsx +0 -0
  121. package/src/index.ts +8 -7
  122. package/src/ui/ActionMenu/index.tsx +2 -2
  123. package/src/ui/Alert/index.tsx +2 -2
  124. package/src/ui/Avatar/AvatarIcon.tsx +1 -1
  125. package/src/ui/Avatar/index.tsx +1 -1
  126. package/src/ui/Badge/index.tsx +1 -1
  127. package/src/ui/BottomSheet/index.tsx +2 -2
  128. package/src/ui/Button/index.tsx +2 -2
  129. package/src/ui/ChannelFrozenBanner/index.tsx +1 -1
  130. package/src/ui/Dialog/DialogSheet.tsx +3 -2
  131. package/src/ui/GroupChannelPreview/index.tsx +2 -2
  132. package/src/ui/Header/index.tsx +1 -1
  133. package/src/ui/LoadingSpinner/index.tsx +1 -1
  134. package/src/ui/MenuBar/index.tsx +3 -3
  135. package/src/ui/Placeholder/index.tsx +2 -2
  136. package/src/ui/Prompt/index.tsx +3 -3
  137. package/src/ui/Toast/index.tsx +2 -2
@@ -13,14 +13,14 @@ var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
13
13
 
14
14
  var _uikitUtils = require("@sendbird/uikit-utils");
15
15
 
16
+ var _Text = _interopRequireDefault(require("../../components/Text"));
17
+
16
18
  var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
17
19
 
18
20
  var _useHeaderStyle = _interopRequireDefault(require("../../styles/useHeaderStyle"));
19
21
 
20
22
  var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
21
23
 
22
- var _Text = _interopRequireDefault(require("../Text"));
23
-
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
 
26
26
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
@@ -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 type { BaseHeaderProps } from '../../index';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Text, { TextProps } from '../Text';\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","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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"}
@@ -9,9 +9,9 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _reactNative = require("react-native");
11
11
 
12
- var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
12
+ var _Icon = _interopRequireDefault(require("../../components/Icon"));
13
13
 
14
- var _Icon = _interopRequireDefault(require("../Icon"));
14
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
@@ -1 +1 @@
1
- {"version":3,"names":["LoadingSpinner","size","color","style","colors","useUIKitTheme","primary","useLoopAnimated","duration","useNativeDriver","animated","useRef","Animated","Value","current","useEffect","loop","timing","toValue","easing","Easing","inOut","linear","resetBeforeIteration","start","stopAnimation","setValue","Rotate","children","rotate","interpolate","inputRange","outputRange","transform"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Easing, StyleProp, ViewStyle } from 'react-native';\n\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\n\ntype Props = {\n size?: number;\n color?: string;\n style?: StyleProp<ViewStyle>;\n};\n\nconst LoadingSpinner = ({ size = 24, color, style }: Props) => {\n const { colors } = useUIKitTheme();\n return (\n <Rotate style={style}>\n <Icon icon={'spinner'} size={size} color={color ?? colors.primary} />\n </Rotate>\n );\n};\n\nconst useLoopAnimated = (duration: number, useNativeDriver = true) => {\n const animated = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n Animated.loop(\n Animated.timing(animated, { toValue: 1, duration, useNativeDriver, easing: Easing.inOut(Easing.linear) }),\n { resetBeforeIteration: true },\n ).start();\n\n return () => {\n animated.stopAnimation();\n animated.setValue(0);\n };\n }, []);\n\n return animated;\n};\n\nconst Rotate = ({ children, style }: React.PropsWithChildren<{ style: StyleProp<ViewStyle> }>) => {\n const loop = useLoopAnimated(1000);\n const rotate = loop.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'] });\n return <Animated.View style={[style, { transform: [{ rotate }] }]}>{children}</Animated.View>;\n};\n\nexport default LoadingSpinner;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;AAQA,MAAMA,cAAc,GAAG,QAAwC;EAAA,IAAvC;IAAEC,IAAI,GAAG,EAAT;IAAaC,KAAb;IAAoBC;EAApB,CAAuC;EAC7D,MAAM;IAAEC;EAAF,IAAa,IAAAC,sBAAA,GAAnB;EACA,oBACE,6BAAC,MAAD;IAAQ,KAAK,EAAEF;EAAf,gBACE,6BAAC,aAAD;IAAM,IAAI,EAAE,SAAZ;IAAuB,IAAI,EAAEF,IAA7B;IAAmC,KAAK,EAAEC,KAAK,IAAIE,MAAM,CAACE;EAA1D,EADF,CADF;AAKD,CAPD;;AASA,MAAMC,eAAe,GAAG,UAACC,QAAD,EAA8C;EAAA,IAA3BC,eAA2B,uEAAT,IAAS;EACpE,MAAMC,QAAQ,GAAG,IAAAC,aAAA,EAAO,IAAIC,qBAAA,CAASC,KAAb,CAAmB,CAAnB,CAAP,EAA8BC,OAA/C;EAEA,IAAAC,gBAAA,EAAU,MAAM;IACdH,qBAAA,CAASI,IAAT,CACEJ,qBAAA,CAASK,MAAT,CAAgBP,QAAhB,EAA0B;MAAEQ,OAAO,EAAE,CAAX;MAAcV,QAAd;MAAwBC,eAAxB;MAAyCU,MAAM,EAAEC,mBAAA,CAAOC,KAAP,CAAaD,mBAAA,CAAOE,MAApB;IAAjD,CAA1B,CADF,EAEE;MAAEC,oBAAoB,EAAE;IAAxB,CAFF,EAGEC,KAHF;;IAKA,OAAO,MAAM;MACXd,QAAQ,CAACe,aAAT;MACAf,QAAQ,CAACgB,QAAT,CAAkB,CAAlB;IACD,CAHD;EAID,CAVD,EAUG,EAVH;EAYA,OAAOhB,QAAP;AACD,CAhBD;;AAkBA,MAAMiB,MAAM,GAAG,SAAmF;EAAA,IAAlF;IAAEC,QAAF;IAAYzB;EAAZ,CAAkF;EAChG,MAAMa,IAAI,GAAGT,eAAe,CAAC,IAAD,CAA5B;EACA,MAAMsB,MAAM,GAAGb,IAAI,CAACc,WAAL,CAAiB;IAAEC,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAd;IAAsBC,WAAW,EAAE,CAAC,MAAD,EAAS,QAAT;EAAnC,CAAjB,CAAf;EACA,oBAAO,6BAAC,qBAAD,CAAU,IAAV;IAAe,KAAK,EAAE,CAAC7B,KAAD,EAAQ;MAAE8B,SAAS,EAAE,CAAC;QAAEJ;MAAF,CAAD;IAAb,CAAR;EAAtB,GAA6DD,QAA7D,CAAP;AACD,CAJD;;eAMe5B,c"}
1
+ {"version":3,"names":["LoadingSpinner","size","color","style","colors","useUIKitTheme","primary","useLoopAnimated","duration","useNativeDriver","animated","useRef","Animated","Value","current","useEffect","loop","timing","toValue","easing","Easing","inOut","linear","resetBeforeIteration","start","stopAnimation","setValue","Rotate","children","rotate","interpolate","inputRange","outputRange","transform"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { Animated, Easing, StyleProp, ViewStyle } from 'react-native';\n\nimport Icon from '../../components/Icon';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = {\n size?: number;\n color?: string;\n style?: StyleProp<ViewStyle>;\n};\n\nconst LoadingSpinner = ({ size = 24, color, style }: Props) => {\n const { colors } = useUIKitTheme();\n return (\n <Rotate style={style}>\n <Icon icon={'spinner'} size={size} color={color ?? colors.primary} />\n </Rotate>\n );\n};\n\nconst useLoopAnimated = (duration: number, useNativeDriver = true) => {\n const animated = useRef(new Animated.Value(0)).current;\n\n useEffect(() => {\n Animated.loop(\n Animated.timing(animated, { toValue: 1, duration, useNativeDriver, easing: Easing.inOut(Easing.linear) }),\n { resetBeforeIteration: true },\n ).start();\n\n return () => {\n animated.stopAnimation();\n animated.setValue(0);\n };\n }, []);\n\n return animated;\n};\n\nconst Rotate = ({ children, style }: React.PropsWithChildren<{ style: StyleProp<ViewStyle> }>) => {\n const loop = useLoopAnimated(1000);\n const rotate = loop.interpolate({ inputRange: [0, 1], outputRange: ['0deg', '360deg'] });\n return <Animated.View style={[style, { transform: [{ rotate }] }]}>{children}</Animated.View>;\n};\n\nexport default LoadingSpinner;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AACA;;;;;;;;AAQA,MAAMA,cAAc,GAAG,QAAwC;EAAA,IAAvC;IAAEC,IAAI,GAAG,EAAT;IAAaC,KAAb;IAAoBC;EAApB,CAAuC;EAC7D,MAAM;IAAEC;EAAF,IAAa,IAAAC,sBAAA,GAAnB;EACA,oBACE,6BAAC,MAAD;IAAQ,KAAK,EAAEF;EAAf,gBACE,6BAAC,aAAD;IAAM,IAAI,EAAE,SAAZ;IAAuB,IAAI,EAAEF,IAA7B;IAAmC,KAAK,EAAEC,KAAK,IAAIE,MAAM,CAACE;EAA1D,EADF,CADF;AAKD,CAPD;;AASA,MAAMC,eAAe,GAAG,UAACC,QAAD,EAA8C;EAAA,IAA3BC,eAA2B,uEAAT,IAAS;EACpE,MAAMC,QAAQ,GAAG,IAAAC,aAAA,EAAO,IAAIC,qBAAA,CAASC,KAAb,CAAmB,CAAnB,CAAP,EAA8BC,OAA/C;EAEA,IAAAC,gBAAA,EAAU,MAAM;IACdH,qBAAA,CAASI,IAAT,CACEJ,qBAAA,CAASK,MAAT,CAAgBP,QAAhB,EAA0B;MAAEQ,OAAO,EAAE,CAAX;MAAcV,QAAd;MAAwBC,eAAxB;MAAyCU,MAAM,EAAEC,mBAAA,CAAOC,KAAP,CAAaD,mBAAA,CAAOE,MAApB;IAAjD,CAA1B,CADF,EAEE;MAAEC,oBAAoB,EAAE;IAAxB,CAFF,EAGEC,KAHF;;IAKA,OAAO,MAAM;MACXd,QAAQ,CAACe,aAAT;MACAf,QAAQ,CAACgB,QAAT,CAAkB,CAAlB;IACD,CAHD;EAID,CAVD,EAUG,EAVH;EAYA,OAAOhB,QAAP;AACD,CAhBD;;AAkBA,MAAMiB,MAAM,GAAG,SAAmF;EAAA,IAAlF;IAAEC,QAAF;IAAYzB;EAAZ,CAAkF;EAChG,MAAMa,IAAI,GAAGT,eAAe,CAAC,IAAD,CAA5B;EACA,MAAMsB,MAAM,GAAGb,IAAI,CAACc,WAAL,CAAiB;IAAEC,UAAU,EAAE,CAAC,CAAD,EAAI,CAAJ,CAAd;IAAsBC,WAAW,EAAE,CAAC,MAAD,EAAS,QAAT;EAAnC,CAAjB,CAAf;EACA,oBAAO,6BAAC,qBAAD,CAAU,IAAV;IAAe,KAAK,EAAE,CAAC7B,KAAD,EAAQ;MAAE8B,SAAS,EAAE,CAAC;QAAEJ;MAAF,CAAD;IAAb,CAAR;EAAtB,GAA6DD,QAA7D,CAAP;AACD,CAJD;;eAMe5B,c"}
@@ -11,15 +11,15 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _uikitUtils = require("@sendbird/uikit-utils");
13
13
 
14
- var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
14
+ var _Divider = _interopRequireDefault(require("../../components/Divider"));
15
15
 
16
- var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
16
+ var _Icon = _interopRequireDefault(require("../../components/Icon"));
17
17
 
18
- var _Divider = _interopRequireDefault(require("../Divider"));
18
+ var _Text = _interopRequireDefault(require("../../components/Text"));
19
19
 
20
- var _Icon = _interopRequireDefault(require("../Icon"));
20
+ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
21
21
 
22
- var _Text = _interopRequireDefault(require("../Text"));
22
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
23
23
 
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
 
@@ -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 createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Divider from '../Divider';\nimport Icon from '../Icon';\nimport Text from '../Text';\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","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"}
@@ -11,18 +11,18 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _uikitUtils = require("@sendbird/uikit-utils");
13
13
 
14
+ var _Icon = _interopRequireDefault(require("../../components/Icon"));
15
+
16
+ var _Text = _interopRequireDefault(require("../../components/Text"));
17
+
14
18
  var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
15
19
 
16
20
  var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
17
21
 
18
22
  var _Button = _interopRequireDefault(require("../Button"));
19
23
 
20
- var _Icon = _interopRequireDefault(require("../Icon"));
21
-
22
24
  var _LoadingSpinner = _interopRequireDefault(require("../LoadingSpinner"));
23
25
 
24
- var _Text = _interopRequireDefault(require("../Text"));
25
-
26
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
27
 
28
28
  const Placeholder = _ref => {
@@ -1 +1 @@
1
- {"version":3,"names":["Placeholder","icon","loading","message","errorRetryLabel","onPressRetry","colors","useUIKitTheme","conditionChaining","styles","containerLoading","containerError","container","ui","placeholder","default","none","highlight","content","Boolean","createStyleSheet","width","height","alignItems","justifyContent"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport Icon from '../Icon';\nimport LoadingSpinner from '../LoadingSpinner';\nimport Text from '../Text';\n\ntype Props = {\n loading?: boolean;\n\n icon: keyof typeof Icon.Assets;\n message?: string;\n errorRetryLabel?: string;\n onPressRetry?: () => void;\n};\n\nconst Placeholder = ({ icon, loading = false, message = '', errorRetryLabel, onPressRetry }: Props) => {\n const { colors } = useUIKitTheme();\n\n // loading ? styles.containerLoading : errorRetryLabel ? styles.containerError : styles.container\n return (\n <View\n style={conditionChaining(\n [loading, errorRetryLabel],\n [styles.containerLoading, styles.containerError, styles.container],\n )}\n >\n {conditionChaining(\n [loading],\n [\n <LoadingSpinner size={64} color={colors.ui.placeholder.default.none.highlight} />,\n <Icon icon={icon} size={64} color={colors.ui.placeholder.default.none.content} />,\n ],\n )}\n {Boolean(message) && !loading && (\n <Text body3 color={colors.ui.placeholder.default.none.content}>\n {message}\n </Text>\n )}\n {Boolean(errorRetryLabel) && !loading && (\n <Button\n variant={'text'}\n onPress={onPressRetry}\n contentColor={colors.ui.placeholder.default.none.highlight}\n icon={'refresh'}\n >\n {errorRetryLabel}\n </Button>\n )}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n width: 200,\n height: 100,\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n containerError: {\n width: 200,\n height: 148,\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n containerLoading: {\n width: 200,\n height: 100,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default Placeholder;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAWA,MAAMA,WAAW,GAAG,QAAmF;EAAA,IAAlF;IAAEC,IAAF;IAAQC,OAAO,GAAG,KAAlB;IAAyBC,OAAO,GAAG,EAAnC;IAAuCC,eAAvC;IAAwDC;EAAxD,CAAkF;EACrG,MAAM;IAAEC;EAAF,IAAa,IAAAC,sBAAA,GAAnB,CADqG,CAGrG;;EACA,oBACE,6BAAC,iBAAD;IACE,KAAK,EAAE,IAAAC,6BAAA,EACL,CAACN,OAAD,EAAUE,eAAV,CADK,EAEL,CAACK,MAAM,CAACC,gBAAR,EAA0BD,MAAM,CAACE,cAAjC,EAAiDF,MAAM,CAACG,SAAxD,CAFK;EADT,GAMG,IAAAJ,6BAAA,EACC,CAACN,OAAD,CADD,EAEC,cACE,6BAAC,uBAAD;IAAgB,IAAI,EAAE,EAAtB;IAA0B,KAAK,EAAEI,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC;EAApE,EADF,eAEE,6BAAC,aAAD;IAAM,IAAI,EAAEhB,IAAZ;IAAkB,IAAI,EAAE,EAAxB;IAA4B,KAAK,EAAEK,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtE,EAFF,CAFD,CANH,EAaGC,OAAO,CAAChB,OAAD,CAAP,IAAoB,CAACD,OAArB,iBACC,6BAAC,aAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEI,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtD,GACGf,OADH,CAdJ,EAkBGgB,OAAO,CAACf,eAAD,CAAP,IAA4B,CAACF,OAA7B,iBACC,6BAAC,eAAD;IACE,OAAO,EAAE,MADX;IAEE,OAAO,EAAEG,YAFX;IAGE,YAAY,EAAEC,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC,SAHnD;IAIE,IAAI,EAAE;EAJR,GAMGb,eANH,CAnBJ,CADF;AA+BD,CAnCD;;AAqCA,MAAMK,MAAM,GAAG,IAAAW,yBAAA,EAAiB;EAC9BR,SAAS,EAAE;IACTS,KAAK,EAAE,GADE;IAETC,MAAM,EAAE,GAFC;IAGTC,UAAU,EAAE,QAHH;IAITC,cAAc,EAAE;EAJP,CADmB;EAO9Bb,cAAc,EAAE;IACdU,KAAK,EAAE,GADO;IAEdC,MAAM,EAAE,GAFM;IAGdC,UAAU,EAAE,QAHE;IAIdC,cAAc,EAAE;EAJF,CAPc;EAa9Bd,gBAAgB,EAAE;IAChBW,KAAK,EAAE,GADS;IAEhBC,MAAM,EAAE,GAFQ;IAGhBC,UAAU,EAAE,QAHI;IAIhBC,cAAc,EAAE;EAJA;AAbY,CAAjB,CAAf;eAqBexB,W"}
1
+ {"version":3,"names":["Placeholder","icon","loading","message","errorRetryLabel","onPressRetry","colors","useUIKitTheme","conditionChaining","styles","containerLoading","containerError","container","ui","placeholder","default","none","highlight","content","Boolean","createStyleSheet","width","height","alignItems","justifyContent"],"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 Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport LoadingSpinner from '../LoadingSpinner';\n\ntype Props = {\n loading?: boolean;\n\n icon: keyof typeof Icon.Assets;\n message?: string;\n errorRetryLabel?: string;\n onPressRetry?: () => void;\n};\n\nconst Placeholder = ({ icon, loading = false, message = '', errorRetryLabel, onPressRetry }: Props) => {\n const { colors } = useUIKitTheme();\n\n // loading ? styles.containerLoading : errorRetryLabel ? styles.containerError : styles.container\n return (\n <View\n style={conditionChaining(\n [loading, errorRetryLabel],\n [styles.containerLoading, styles.containerError, styles.container],\n )}\n >\n {conditionChaining(\n [loading],\n [\n <LoadingSpinner size={64} color={colors.ui.placeholder.default.none.highlight} />,\n <Icon icon={icon} size={64} color={colors.ui.placeholder.default.none.content} />,\n ],\n )}\n {Boolean(message) && !loading && (\n <Text body3 color={colors.ui.placeholder.default.none.content}>\n {message}\n </Text>\n )}\n {Boolean(errorRetryLabel) && !loading && (\n <Button\n variant={'text'}\n onPress={onPressRetry}\n contentColor={colors.ui.placeholder.default.none.highlight}\n icon={'refresh'}\n >\n {errorRetryLabel}\n </Button>\n )}\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n width: 200,\n height: 100,\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n containerError: {\n width: 200,\n height: 148,\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n containerLoading: {\n width: 200,\n height: 100,\n alignItems: 'center',\n justifyContent: 'center',\n },\n});\n\nexport default Placeholder;\n"],"mappings":";;;;;;;AAAA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAWA,MAAMA,WAAW,GAAG,QAAmF;EAAA,IAAlF;IAAEC,IAAF;IAAQC,OAAO,GAAG,KAAlB;IAAyBC,OAAO,GAAG,EAAnC;IAAuCC,eAAvC;IAAwDC;EAAxD,CAAkF;EACrG,MAAM;IAAEC;EAAF,IAAa,IAAAC,sBAAA,GAAnB,CADqG,CAGrG;;EACA,oBACE,6BAAC,iBAAD;IACE,KAAK,EAAE,IAAAC,6BAAA,EACL,CAACN,OAAD,EAAUE,eAAV,CADK,EAEL,CAACK,MAAM,CAACC,gBAAR,EAA0BD,MAAM,CAACE,cAAjC,EAAiDF,MAAM,CAACG,SAAxD,CAFK;EADT,GAMG,IAAAJ,6BAAA,EACC,CAACN,OAAD,CADD,EAEC,cACE,6BAAC,uBAAD;IAAgB,IAAI,EAAE,EAAtB;IAA0B,KAAK,EAAEI,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC;EAApE,EADF,eAEE,6BAAC,aAAD;IAAM,IAAI,EAAEhB,IAAZ;IAAkB,IAAI,EAAE,EAAxB;IAA4B,KAAK,EAAEK,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtE,EAFF,CAFD,CANH,EAaGC,OAAO,CAAChB,OAAD,CAAP,IAAoB,CAACD,OAArB,iBACC,6BAAC,aAAD;IAAM,KAAK,MAAX;IAAY,KAAK,EAAEI,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCE;EAAtD,GACGf,OADH,CAdJ,EAkBGgB,OAAO,CAACf,eAAD,CAAP,IAA4B,CAACF,OAA7B,iBACC,6BAAC,eAAD;IACE,OAAO,EAAE,MADX;IAEE,OAAO,EAAEG,YAFX;IAGE,YAAY,EAAEC,MAAM,CAACO,EAAP,CAAUC,WAAV,CAAsBC,OAAtB,CAA8BC,IAA9B,CAAmCC,SAHnD;IAIE,IAAI,EAAE;EAJR,GAMGb,eANH,CAnBJ,CADF;AA+BD,CAnCD;;AAqCA,MAAMK,MAAM,GAAG,IAAAW,yBAAA,EAAiB;EAC9BR,SAAS,EAAE;IACTS,KAAK,EAAE,GADE;IAETC,MAAM,EAAE,GAFC;IAGTC,UAAU,EAAE,QAHH;IAITC,cAAc,EAAE;EAJP,CADmB;EAO9Bb,cAAc,EAAE;IACdU,KAAK,EAAE,GADO;IAEdC,MAAM,EAAE,GAFM;IAGdC,UAAU,EAAE,QAHE;IAIdC,cAAc,EAAE;EAJF,CAPc;EAa9Bd,gBAAgB,EAAE;IAChBW,KAAK,EAAE,GADS;IAEhBC,MAAM,EAAE,GAFQ;IAGhBC,UAAU,EAAE,QAHI;IAIhBC,cAAc,EAAE;EAJA;AAbY,CAAjB,CAAf;eAqBexB,W"}
@@ -11,6 +11,12 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _uikitUtils = require("@sendbird/uikit-utils");
13
13
 
14
+ var _Modal = _interopRequireDefault(require("../../components/Modal"));
15
+
16
+ var _Text = _interopRequireDefault(require("../../components/Text"));
17
+
18
+ var _TextInput = _interopRequireDefault(require("../../components/TextInput"));
19
+
14
20
  var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
15
21
 
16
22
  var _useHeaderStyle = _interopRequireDefault(require("../../styles/useHeaderStyle"));
@@ -21,12 +27,6 @@ var _Button = _interopRequireDefault(require("../Button"));
21
27
 
22
28
  var _DialogBox = _interopRequireDefault(require("../Dialog/DialogBox"));
23
29
 
24
- var _Modal = _interopRequireDefault(require("../Modal"));
25
-
26
- var _Text = _interopRequireDefault(require("../Text"));
27
-
28
- var _TextInput = _interopRequireDefault(require("../TextInput"));
29
-
30
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
31
 
32
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -1 +1 @@
1
- {"version":3,"names":["Prompt","onDismiss","visible","onHide","autoFocus","title","defaultValue","placeholder","onSubmit","NOOP","onCancel","submitLabel","cancelLabel","statusBarTranslucent","useHeaderStyle","colors","useUIKitTheme","inputRef","useRef","width","height","useWindowDimensions","buttons","text","onPress","setText","useState","useEffect","setTimeout","Platform","OS","current","blur","focus","alignItems","justifyContent","styles","container","Boolean","titleContainer","ui","dialog","default","none","flex","inputContainer","paddingHorizontal","paddingVertical","buttonContainer","map","index","button","highlight","Keyboard","dismiss","createStyleSheet","paddingTop","marginBottom","flexDirection","padding","marginLeft"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Keyboard, Platform, TextInput as RNTextInput, View, useWindowDimensions } from 'react-native';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport DialogBox from '../Dialog/DialogBox';\nimport Modal from '../Modal';\nimport Text from '../Text';\nimport TextInput from '../TextInput';\n\nexport type PromptItem = {\n title: string;\n placeholder?: string;\n defaultValue?: string;\n onSubmit?: (text: string) => void;\n submitLabel?: string;\n onCancel?: () => void;\n cancelLabel?: string;\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onDismiss?: () => void;\n autoFocus?: boolean;\n} & PromptItem;\nconst Prompt = ({\n onDismiss,\n visible,\n onHide,\n autoFocus = true,\n title,\n defaultValue = '',\n placeholder = 'Enter',\n onSubmit = NOOP,\n onCancel = NOOP,\n submitLabel = 'Submit',\n cancelLabel = 'Cancel',\n}: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const inputRef = useRef<RNTextInput>(null);\n const { width, height } = useWindowDimensions();\n\n const buttons = [\n { text: cancelLabel, onPress: onCancel },\n { text: submitLabel, onPress: () => onSubmit(text) },\n ];\n\n const [text, setText] = useState(defaultValue);\n\n // FIXME: autoFocus trick with modal\n // Android\n // - InputProps.autoFocus is not trigger keyboard appearing.\n // - InputRef.focus() is trigger keyboard appearing, but position of keyboard selection is always the start of text.\n // iOS\n // - InputProps.autoFocus is trigger weird UI behavior on landscape mode.\n useEffect(() => {\n if (autoFocus && visible) {\n setTimeout(() => {\n if (Platform.OS === 'android') inputRef.current?.blur();\n inputRef.current?.focus();\n }, 250);\n }\n }, [autoFocus, visible, `${width}-${height}`]);\n\n return (\n <Modal\n enableKeyboardAvoid\n disableBackgroundClose\n onClose={onHide}\n onDismiss={() => {\n setText('');\n onDismiss?.();\n }}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}\n >\n <DialogBox style={styles.container}>\n {Boolean(title) && (\n <View style={styles.titleContainer}>\n <Text h1 color={colors.ui.dialog.default.none.text} numberOfLines={1} style={{ flex: 1 }}>\n {title}\n </Text>\n </View>\n )}\n\n <View style={styles.inputContainer}>\n <TextInput\n autoFocus={autoFocus && Platform.OS === 'android'}\n ref={inputRef}\n placeholder={placeholder}\n variant={'underline'}\n value={text}\n onChangeText={setText}\n style={{ paddingHorizontal: 0, paddingVertical: 10 }}\n />\n </View>\n\n <View style={styles.buttonContainer}>\n {buttons.map(({ text, onPress }, index) => {\n return (\n <Button\n key={text + index}\n variant={'text'}\n style={styles.button}\n contentColor={colors.ui.dialog.default.none.highlight}\n onPress={() => {\n Keyboard.dismiss();\n try {\n onPress?.();\n } finally {\n onHide();\n }\n }}\n >\n {text}\n </Button>\n );\n })}\n </View>\n </DialogBox>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 8,\n },\n titleContainer: {\n marginBottom: 12,\n paddingVertical: 12,\n paddingHorizontal: 24,\n flexDirection: 'row',\n alignItems: 'center',\n },\n inputContainer: {\n paddingHorizontal: 24,\n marginBottom: 12,\n },\n buttonContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: 12,\n },\n button: {\n marginLeft: 8,\n },\n});\n\nexport default Prompt;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Prompt","onDismiss","visible","onHide","autoFocus","title","defaultValue","placeholder","onSubmit","NOOP","onCancel","submitLabel","cancelLabel","statusBarTranslucent","useHeaderStyle","colors","useUIKitTheme","inputRef","useRef","width","height","useWindowDimensions","buttons","text","onPress","setText","useState","useEffect","setTimeout","Platform","OS","current","blur","focus","alignItems","justifyContent","styles","container","Boolean","titleContainer","ui","dialog","default","none","flex","inputContainer","paddingHorizontal","paddingVertical","buttonContainer","map","index","button","highlight","Keyboard","dismiss","createStyleSheet","paddingTop","marginBottom","flexDirection","padding","marginLeft"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Keyboard, Platform, TextInput as RNTextInput, View, useWindowDimensions } from 'react-native';\n\nimport { NOOP } from '@sendbird/uikit-utils';\n\nimport Modal from '../../components/Modal';\nimport Text from '../../components/Text';\nimport TextInput from '../../components/TextInput';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport DialogBox from '../Dialog/DialogBox';\n\nexport type PromptItem = {\n title: string;\n placeholder?: string;\n defaultValue?: string;\n onSubmit?: (text: string) => void;\n submitLabel?: string;\n onCancel?: () => void;\n cancelLabel?: string;\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onDismiss?: () => void;\n autoFocus?: boolean;\n} & PromptItem;\nconst Prompt = ({\n onDismiss,\n visible,\n onHide,\n autoFocus = true,\n title,\n defaultValue = '',\n placeholder = 'Enter',\n onSubmit = NOOP,\n onCancel = NOOP,\n submitLabel = 'Submit',\n cancelLabel = 'Cancel',\n}: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const inputRef = useRef<RNTextInput>(null);\n const { width, height } = useWindowDimensions();\n\n const buttons = [\n { text: cancelLabel, onPress: onCancel },\n { text: submitLabel, onPress: () => onSubmit(text) },\n ];\n\n const [text, setText] = useState(defaultValue);\n\n // FIXME: autoFocus trick with modal\n // Android\n // - InputProps.autoFocus is not trigger keyboard appearing.\n // - InputRef.focus() is trigger keyboard appearing, but position of keyboard selection is always the start of text.\n // iOS\n // - InputProps.autoFocus is trigger weird UI behavior on landscape mode.\n useEffect(() => {\n if (autoFocus && visible) {\n setTimeout(() => {\n if (Platform.OS === 'android') inputRef.current?.blur();\n inputRef.current?.focus();\n }, 250);\n }\n }, [autoFocus, visible, `${width}-${height}`]);\n\n return (\n <Modal\n enableKeyboardAvoid\n disableBackgroundClose\n onClose={onHide}\n onDismiss={() => {\n setText('');\n onDismiss?.();\n }}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}\n >\n <DialogBox style={styles.container}>\n {Boolean(title) && (\n <View style={styles.titleContainer}>\n <Text h1 color={colors.ui.dialog.default.none.text} numberOfLines={1} style={{ flex: 1 }}>\n {title}\n </Text>\n </View>\n )}\n\n <View style={styles.inputContainer}>\n <TextInput\n autoFocus={autoFocus && Platform.OS === 'android'}\n ref={inputRef}\n placeholder={placeholder}\n variant={'underline'}\n value={text}\n onChangeText={setText}\n style={{ paddingHorizontal: 0, paddingVertical: 10 }}\n />\n </View>\n\n <View style={styles.buttonContainer}>\n {buttons.map(({ text, onPress }, index) => {\n return (\n <Button\n key={text + index}\n variant={'text'}\n style={styles.button}\n contentColor={colors.ui.dialog.default.none.highlight}\n onPress={() => {\n Keyboard.dismiss();\n try {\n onPress?.();\n } finally {\n onHide();\n }\n }}\n >\n {text}\n </Button>\n );\n })}\n </View>\n </DialogBox>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 8,\n },\n titleContainer: {\n marginBottom: 12,\n paddingVertical: 12,\n paddingHorizontal: 24,\n flexDirection: 'row',\n alignItems: 'center',\n },\n inputContainer: {\n paddingHorizontal: 24,\n marginBottom: 12,\n },\n buttonContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: 12,\n },\n button: {\n marginLeft: 8,\n },\n});\n\nexport default Prompt;\n"],"mappings":"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"}
@@ -11,13 +11,13 @@ var _reactNative = require("react-native");
11
11
 
12
12
  var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
13
13
 
14
- var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
14
+ var _Icon = _interopRequireDefault(require("../../components/Icon"));
15
15
 
16
- var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
16
+ var _Text = _interopRequireDefault(require("../../components/Text"));
17
17
 
18
- var _Icon = _interopRequireDefault(require("../Icon"));
18
+ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
19
19
 
20
- var _Text = _interopRequireDefault(require("../Text"));
20
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
@@ -1 +1 @@
1
- {"version":3,"names":["ToastContext","createContext","useOpacity","opacity","useRef","Animated","Value","current","transition","useCallback","value","timing","toValue","duration","useNativeDriver","start","show","hide","Toast","visible","type","children","top","bottom","colors","select","palette","useUIKitTheme","color","useMemo","dark","error300","light","error200","secondary300","secondary200","backgroundColor","useEffect","styles","toast","icon","onBackgroundReverse01","text","VISIBLE_MS","ToastProvider","dismissTimeout","state","setState","useState","useSafeAreaInsets","hideTimeout","setTimeout","prev","clearTimeout","toastPosition","useToast","context","useContext","Error","createStyleSheet","position","height","paddingHorizontal","justifyContent","alignItems","alignSelf","borderRadius","flexDirection","marginRight","maxWidth"],"sources":["index.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { Animated } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Icon from '../Icon';\nimport Text from '../Text';\n\ntype ToastType = 'normal' | 'error' | 'success';\ntype Context = { show(text: string, type?: ToastType): void };\n\nconst ToastContext = createContext<Context | null>(null);\n\ntype Props = React.PropsWithChildren<{\n top?: number;\n bottom?: number;\n visible: boolean;\n type: ToastType;\n children: string;\n}>;\n\nconst useOpacity = () => {\n const opacity = useRef(new Animated.Value(0)).current;\n const transition = useCallback(\n (value: number) => Animated.timing(opacity, { toValue: value, duration: 500, useNativeDriver: true }).start(),\n [],\n );\n return {\n opacity,\n show: () => transition(1),\n hide: () => transition(0),\n };\n};\n\nconst Toast = ({ visible, type, children, top, bottom }: Props) => {\n const { colors, select, palette } = useUIKitTheme();\n const { opacity, show, hide } = useOpacity();\n\n const color = useMemo(() => {\n if (type === 'error') {\n return select({ dark: palette.error300, light: palette.error200 });\n }\n if (type === 'success') {\n return select({ dark: palette.secondary300, light: palette.secondary200 });\n }\n return 'transparent';\n }, [type, select]);\n\n const backgroundColor = useMemo(() => {\n return select({ light: 'rgba(0,0,0,0.64)', dark: 'rgba(255,255,255,0.64)' });\n }, [select]);\n\n useEffect(() => {\n visible ? show() : hide();\n }, [visible]);\n\n return (\n <Animated.View pointerEvents={'none'} style={[styles.toast, { opacity, top, bottom, backgroundColor }]}>\n {type !== 'normal' && (\n <Icon icon={type === 'success' ? 'done' : 'error'} color={color} containerStyle={styles.icon} />\n )}\n <Text color={colors.onBackgroundReverse01} body3 numberOfLines={2} style={styles.text}>\n {children}\n </Text>\n </Animated.View>\n );\n};\n\nconst VISIBLE_MS = 3000;\nexport const ToastProvider = ({\n children,\n dismissTimeout = VISIBLE_MS,\n}: React.PropsWithChildren<{ dismissTimeout?: number }>) => {\n const [state, setState] = useState({ visible: false, type: 'error' as ToastType, text: '' });\n const { bottom } = useSafeAreaInsets();\n\n useEffect(() => {\n if (!state.visible) return;\n\n const hideTimeout = setTimeout(() => {\n setState((prev) => ({ ...prev, visible: false }));\n }, dismissTimeout);\n return () => clearTimeout(hideTimeout);\n });\n\n return (\n <ToastContext.Provider value={{ show: (text, type = 'normal') => text && setState({ text, type, visible: true }) }}>\n {children}\n <Toast type={state.type} visible={state.visible} bottom={bottom + styles.toastPosition.bottom}>\n {state.text}\n </Toast>\n </ToastContext.Provider>\n );\n};\n\nexport const useToast = () => {\n const context = useContext(ToastContext);\n if (!context) throw new Error('ToastContext is not provided, wrap your app with ToastProvider');\n return context;\n};\n\nconst styles = createStyleSheet({\n toast: {\n position: 'absolute',\n height: 48,\n paddingHorizontal: 12,\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'center',\n borderRadius: 24,\n flexDirection: 'row',\n },\n icon: {\n marginRight: 4,\n },\n text: {\n maxWidth: 240,\n paddingHorizontal: 4,\n },\n toastPosition: {\n bottom: 60,\n },\n});\n\nexport default Toast;\n"],"mappings":"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"}
1
+ {"version":3,"names":["ToastContext","createContext","useOpacity","opacity","useRef","Animated","Value","current","transition","useCallback","value","timing","toValue","duration","useNativeDriver","start","show","hide","Toast","visible","type","children","top","bottom","colors","select","palette","useUIKitTheme","color","useMemo","dark","error300","light","error200","secondary300","secondary200","backgroundColor","useEffect","styles","toast","icon","onBackgroundReverse01","text","VISIBLE_MS","ToastProvider","dismissTimeout","state","setState","useState","useSafeAreaInsets","hideTimeout","setTimeout","prev","clearTimeout","toastPosition","useToast","context","useContext","Error","createStyleSheet","position","height","paddingHorizontal","justifyContent","alignItems","alignSelf","borderRadius","flexDirection","marginRight","maxWidth"],"sources":["index.tsx"],"sourcesContent":["import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { Animated } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport Icon from '../../components/Icon';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype ToastType = 'normal' | 'error' | 'success';\ntype Context = { show(text: string, type?: ToastType): void };\n\nconst ToastContext = createContext<Context | null>(null);\n\ntype Props = React.PropsWithChildren<{\n top?: number;\n bottom?: number;\n visible: boolean;\n type: ToastType;\n children: string;\n}>;\n\nconst useOpacity = () => {\n const opacity = useRef(new Animated.Value(0)).current;\n const transition = useCallback(\n (value: number) => Animated.timing(opacity, { toValue: value, duration: 500, useNativeDriver: true }).start(),\n [],\n );\n return {\n opacity,\n show: () => transition(1),\n hide: () => transition(0),\n };\n};\n\nconst Toast = ({ visible, type, children, top, bottom }: Props) => {\n const { colors, select, palette } = useUIKitTheme();\n const { opacity, show, hide } = useOpacity();\n\n const color = useMemo(() => {\n if (type === 'error') {\n return select({ dark: palette.error300, light: palette.error200 });\n }\n if (type === 'success') {\n return select({ dark: palette.secondary300, light: palette.secondary200 });\n }\n return 'transparent';\n }, [type, select]);\n\n const backgroundColor = useMemo(() => {\n return select({ light: 'rgba(0,0,0,0.64)', dark: 'rgba(255,255,255,0.64)' });\n }, [select]);\n\n useEffect(() => {\n visible ? show() : hide();\n }, [visible]);\n\n return (\n <Animated.View pointerEvents={'none'} style={[styles.toast, { opacity, top, bottom, backgroundColor }]}>\n {type !== 'normal' && (\n <Icon icon={type === 'success' ? 'done' : 'error'} color={color} containerStyle={styles.icon} />\n )}\n <Text color={colors.onBackgroundReverse01} body3 numberOfLines={2} style={styles.text}>\n {children}\n </Text>\n </Animated.View>\n );\n};\n\nconst VISIBLE_MS = 3000;\nexport const ToastProvider = ({\n children,\n dismissTimeout = VISIBLE_MS,\n}: React.PropsWithChildren<{ dismissTimeout?: number }>) => {\n const [state, setState] = useState({ visible: false, type: 'error' as ToastType, text: '' });\n const { bottom } = useSafeAreaInsets();\n\n useEffect(() => {\n if (!state.visible) return;\n\n const hideTimeout = setTimeout(() => {\n setState((prev) => ({ ...prev, visible: false }));\n }, dismissTimeout);\n return () => clearTimeout(hideTimeout);\n });\n\n return (\n <ToastContext.Provider value={{ show: (text, type = 'normal') => text && setState({ text, type, visible: true }) }}>\n {children}\n <Toast type={state.type} visible={state.visible} bottom={bottom + styles.toastPosition.bottom}>\n {state.text}\n </Toast>\n </ToastContext.Provider>\n );\n};\n\nexport const useToast = () => {\n const context = useContext(ToastContext);\n if (!context) throw new Error('ToastContext is not provided, wrap your app with ToastProvider');\n return context;\n};\n\nconst styles = createStyleSheet({\n toast: {\n position: 'absolute',\n height: 48,\n paddingHorizontal: 12,\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'center',\n borderRadius: 24,\n flexDirection: 'row',\n },\n icon: {\n marginRight: 4,\n },\n text: {\n maxWidth: 240,\n paddingHorizontal: 4,\n },\n toastPosition: {\n bottom: 60,\n },\n});\n\nexport default Toast;\n"],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -2,7 +2,14 @@
2
2
  export { default as IconAssets } from './assets/icon';
3
3
  /** Component **/
4
4
 
5
+ export { default as Divider } from './components/Divider';
6
+ export { default as Icon } from './components/Icon';
5
7
  export { default as Image } from './components/Image';
8
+ export { default as Modal } from './components/Modal';
9
+ export { default as Switch } from './components/Switch';
10
+ export { default as Text } from './components/Text';
11
+ export { default as TextInput } from './components/TextInput';
12
+ export { default as URLParsedText } from './components/URLParsedText';
6
13
  /** UI **/
7
14
 
8
15
  export { default as ActionMenu, ActionMenuItem } from './ui/ActionMenu';
@@ -13,20 +20,13 @@ export { default as BottomSheet, BottomSheetItem } from './ui/BottomSheet';
13
20
  export { default as Button } from './ui/Button';
14
21
  export { default as ChannelFrozenBanner } from './ui/ChannelFrozenBanner';
15
22
  export { DialogProvider, useActionMenu, useAlert, usePrompt, useBottomSheet } from './ui/Dialog';
16
- export { default as Divider } from './ui/Divider';
17
23
  export { default as GroupChannelPreview } from './ui/GroupChannelPreview';
18
24
  export { default as Header } from './ui/Header';
19
- export { default as Icon } from './ui/Icon';
20
25
  export { default as LoadingSpinner } from './ui/LoadingSpinner';
21
26
  export { default as MenuBar, MenuBarProps } from './ui/MenuBar';
22
- export { default as Modal } from './ui/Modal';
23
27
  export { default as Placeholder } from './ui/Placeholder';
24
28
  export { default as Prompt } from './ui/Prompt';
25
- export { default as Switch } from './ui/Switch';
26
- export { default as Text } from './ui/Text';
27
- export { default as TextInput } from './ui/TextInput';
28
29
  export { default as Toast, useToast, ToastProvider } from './ui/Toast';
29
- export { default as URLParsedText } from './ui/URLParsedText';
30
30
  /** Styles **/
31
31
 
32
32
  export { default as createSelectByColorScheme } from './styles/createSelectByColorScheme';
@@ -1 +1 @@
1
- {"version":3,"names":["default","IconAssets","Image","ActionMenu","ActionMenuItem","Alert","Avatar","Badge","BottomSheet","BottomSheetItem","Button","ChannelFrozenBanner","DialogProvider","useActionMenu","useAlert","usePrompt","useBottomSheet","Divider","GroupChannelPreview","Header","Icon","LoadingSpinner","MenuBar","MenuBarProps","Modal","Placeholder","Prompt","Switch","Text","TextInput","Toast","useToast","ToastProvider","URLParsedText","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/** Component **/\nexport { default as Image } from './components/Image';\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 Divider } from './ui/Divider';\nexport { default as GroupChannelPreview } from './ui/GroupChannelPreview';\nexport { default as Header } from './ui/Header';\nexport { default as Icon } from './ui/Icon';\nexport { default as LoadingSpinner } from './ui/LoadingSpinner';\nexport { default as MenuBar, MenuBarProps } from './ui/MenuBar';\nexport { default as Modal } from './ui/Modal';\nexport { default as Placeholder } from './ui/Placeholder';\nexport { default as Prompt } from './ui/Prompt';\nexport { default as Switch } from './ui/Switch';\nexport { default as Text } from './ui/Text';\nexport { default as TextInput } from './ui/TextInput';\nexport { default as Toast, useToast, ToastProvider } from './ui/Toast';\nexport { default as URLParsedText } from './ui/URLParsedText';\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;AACA;;AACA,SAASD,OAAO,IAAIE,KAApB,QAAiC,oBAAjC;AAEA;;AACA,SAASF,OAAO,IAAIG,UAApB,EAAgCC,cAAhC,QAAsD,iBAAtD;AACA,SAASJ,OAAO,IAAIK,KAApB,QAAiC,YAAjC;AACA,SAASL,OAAO,IAAIM,MAApB,QAAkC,aAAlC;AACA,SAASN,OAAO,IAAIO,KAApB,QAAiC,YAAjC;AACA,SAASP,OAAO,IAAIQ,WAApB,EAAiCC,eAAjC,QAAwD,kBAAxD;AACA,SAAST,OAAO,IAAIU,MAApB,QAAkC,aAAlC;AACA,SAASV,OAAO,IAAIW,mBAApB,QAA+C,0BAA/C;AACA,SAASC,cAAT,EAAyBC,aAAzB,EAAwCC,QAAxC,EAAkDC,SAAlD,EAA6DC,cAA7D,QAAmF,aAAnF;AACA,SAAShB,OAAO,IAAIiB,OAApB,QAAmC,cAAnC;AACA,SAASjB,OAAO,IAAIkB,mBAApB,QAA+C,0BAA/C;AACA,SAASlB,OAAO,IAAImB,MAApB,QAAkC,aAAlC;AACA,SAASnB,OAAO,IAAIoB,IAApB,QAAgC,WAAhC;AACA,SAASpB,OAAO,IAAIqB,cAApB,QAA0C,qBAA1C;AACA,SAASrB,OAAO,IAAIsB,OAApB,EAA6BC,YAA7B,QAAiD,cAAjD;AACA,SAASvB,OAAO,IAAIwB,KAApB,QAAiC,YAAjC;AACA,SAASxB,OAAO,IAAIyB,WAApB,QAAuC,kBAAvC;AACA,SAASzB,OAAO,IAAI0B,MAApB,QAAkC,aAAlC;AACA,SAAS1B,OAAO,IAAI2B,MAApB,QAAkC,aAAlC;AACA,SAAS3B,OAAO,IAAI4B,IAApB,QAAgC,WAAhC;AACA,SAAS5B,OAAO,IAAI6B,SAApB,QAAqC,gBAArC;AACA,SAAS7B,OAAO,IAAI8B,KAApB,EAA2BC,QAA3B,EAAqCC,aAArC,QAA0D,YAA1D;AACA,SAAShC,OAAO,IAAIiC,aAApB,QAAyC,oBAAzC;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","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,13 +1,13 @@
1
1
  import React, { useState } from 'react';
2
2
  import { TouchableOpacity, View } from 'react-native';
3
3
  import { Logger } from '@sendbird/uikit-utils';
4
+ import Modal from '../../components/Modal';
5
+ import Text from '../../components/Text';
4
6
  import createStyleSheet from '../../styles/createStyleSheet';
5
7
  import useHeaderStyle from '../../styles/useHeaderStyle';
6
8
  import useUIKitTheme from '../../theme/useUIKitTheme';
7
9
  import DialogBox from '../Dialog/DialogBox';
8
10
  import LoadingSpinner from '../LoadingSpinner';
9
- import Modal from '../Modal';
10
- import Text from '../Text';
11
11
 
12
12
  const ActionMenu = _ref => {
13
13
  let {
@@ -1 +1 @@
1
- {"version":3,"names":["React","useState","TouchableOpacity","View","Logger","createStyleSheet","useHeaderStyle","useUIKitTheme","DialogBox","LoadingSpinner","Modal","Text","ActionMenu","visible","onHide","onError","onDismiss","title","menuItems","statusBarTranslucent","colors","pending","setPending","_onHide","alignItems","justifyContent","styles","ui","dialog","default","none","text","maxWidth","highlight","width","marginLeft","buttonContainer","map","item","index","button","onPress","e","errorHandler","error","flexDirection","paddingHorizontal","paddingVertical","marginTop","marginBottom"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport DialogBox from '../Dialog/DialogBox';\nimport LoadingSpinner from '../LoadingSpinner';\nimport Modal from '../Modal';\nimport Text from '../Text';\n\nexport type ActionMenuItem = {\n title?: string;\n menuItems: {\n title: string;\n onPress?: (() => Promise<void>) | (() => void);\n onError?: () => void;\n }[];\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onError?: (error: unknown) => void;\n onDismiss?: () => void;\n} & ActionMenuItem;\nconst ActionMenu = ({ visible, onHide, onError, onDismiss, title, menuItems }: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const [pending, setPending] = useState(false);\n const _onHide = () => {\n if (!pending) onHide();\n };\n\n return (\n <Modal\n onClose={_onHide}\n onDismiss={onDismiss}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}\n >\n <DialogBox>\n <View style={styles.title}>\n <Text\n h1\n color={colors.ui.dialog.default.none.text}\n numberOfLines={1}\n // style={{ flex: 1 }}\n style={{ maxWidth: pending ? '86%' : '100%' }}\n >\n {title}\n </Text>\n {pending && (\n <LoadingSpinner\n size={20}\n color={colors.ui.dialog.default.none.highlight}\n style={{ width: '10%', marginLeft: '4%' }}\n />\n )}\n </View>\n <View style={styles.buttonContainer}>\n {menuItems.map((item, index) => {\n return (\n <TouchableOpacity\n activeOpacity={0.75}\n key={item.title + index}\n style={styles.button}\n disabled={pending}\n onPress={async () => {\n setPending(true);\n try {\n await item.onPress?.();\n } catch (e: unknown) {\n const errorHandler = onError ?? item.onError;\n errorHandler?.(e);\n if (!errorHandler) Logger.error('ActionMenu onPress error', e);\n } finally {\n onHide();\n setPending(false);\n }\n }}\n >\n <Text subtitle2 color={colors.ui.dialog.default.none.text} numberOfLines={1}>\n {item.title}\n </Text>\n </TouchableOpacity>\n );\n })}\n </View>\n </DialogBox>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n title: {\n flexDirection: 'row',\n paddingHorizontal: 24,\n paddingVertical: 20,\n alignItems: 'center',\n },\n buttonContainer: {\n marginTop: 4,\n marginBottom: 8,\n },\n button: {\n paddingHorizontal: 24,\n paddingVertical: 12,\n },\n});\n\nexport default ActionMenu;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useState","TouchableOpacity","View","Logger","Modal","Text","createStyleSheet","useHeaderStyle","useUIKitTheme","DialogBox","LoadingSpinner","ActionMenu","visible","onHide","onError","onDismiss","title","menuItems","statusBarTranslucent","colors","pending","setPending","_onHide","alignItems","justifyContent","styles","ui","dialog","default","none","text","maxWidth","highlight","width","marginLeft","buttonContainer","map","item","index","button","onPress","e","errorHandler","error","flexDirection","paddingHorizontal","paddingVertical","marginTop","marginBottom"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { TouchableOpacity, View } from 'react-native';\n\nimport { Logger } from '@sendbird/uikit-utils';\n\nimport Modal from '../../components/Modal';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport DialogBox from '../Dialog/DialogBox';\nimport LoadingSpinner from '../LoadingSpinner';\n\nexport type ActionMenuItem = {\n title?: string;\n menuItems: {\n title: string;\n onPress?: (() => Promise<void>) | (() => void);\n onError?: () => void;\n }[];\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onError?: (error: unknown) => void;\n onDismiss?: () => void;\n} & ActionMenuItem;\nconst ActionMenu = ({ visible, onHide, onError, onDismiss, title, menuItems }: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n const [pending, setPending] = useState(false);\n const _onHide = () => {\n if (!pending) onHide();\n };\n\n return (\n <Modal\n onClose={_onHide}\n onDismiss={onDismiss}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}\n >\n <DialogBox>\n <View style={styles.title}>\n <Text\n h1\n color={colors.ui.dialog.default.none.text}\n numberOfLines={1}\n // style={{ flex: 1 }}\n style={{ maxWidth: pending ? '86%' : '100%' }}\n >\n {title}\n </Text>\n {pending && (\n <LoadingSpinner\n size={20}\n color={colors.ui.dialog.default.none.highlight}\n style={{ width: '10%', marginLeft: '4%' }}\n />\n )}\n </View>\n <View style={styles.buttonContainer}>\n {menuItems.map((item, index) => {\n return (\n <TouchableOpacity\n activeOpacity={0.75}\n key={item.title + index}\n style={styles.button}\n disabled={pending}\n onPress={async () => {\n setPending(true);\n try {\n await item.onPress?.();\n } catch (e: unknown) {\n const errorHandler = onError ?? item.onError;\n errorHandler?.(e);\n if (!errorHandler) Logger.error('ActionMenu onPress error', e);\n } finally {\n onHide();\n setPending(false);\n }\n }}\n >\n <Text subtitle2 color={colors.ui.dialog.default.none.text} numberOfLines={1}>\n {item.title}\n </Text>\n </TouchableOpacity>\n );\n })}\n </View>\n </DialogBox>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n title: {\n flexDirection: 'row',\n paddingHorizontal: 24,\n paddingVertical: 20,\n alignItems: 'center',\n },\n buttonContainer: {\n marginTop: 4,\n marginBottom: 8,\n },\n button: {\n paddingHorizontal: 24,\n paddingVertical: 12,\n },\n});\n\nexport default ActionMenu;\n"],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import React from 'react';
2
2
  import { View } from 'react-native';
3
+ import Modal from '../../components/Modal';
4
+ import Text from '../../components/Text';
3
5
  import createStyleSheet from '../../styles/createStyleSheet';
4
6
  import useHeaderStyle from '../../styles/useHeaderStyle';
5
7
  import useUIKitTheme from '../../theme/useUIKitTheme';
6
8
  import Button from '../Button';
7
9
  import DialogBox from '../Dialog/DialogBox';
8
- import Modal from '../Modal';
9
- import Text from '../Text';
10
10
 
11
11
  const Alert = _ref => {
12
12
  let {
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","createStyleSheet","useHeaderStyle","useUIKitTheme","Button","DialogBox","Modal","Text","Alert","onDismiss","visible","onHide","title","message","buttons","text","statusBarTranslucent","colors","alignItems","justifyContent","styles","container","Boolean","titleContainer","ui","dialog","default","none","flex","messageContainer","buttonContainer","map","index","style","onPress","button","destructive","highlight","paddingTop","paddingBottom","paddingHorizontal","flexDirection","marginBottom","marginLeft","padding"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { AlertButton, View } from 'react-native';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport DialogBox from '../Dialog/DialogBox';\nimport Modal from '../Modal';\nimport Text from '../Text';\n\nexport type AlertItem = {\n title?: string;\n message?: string;\n buttons?: AlertButton[];\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onDismiss?: () => void;\n} & AlertItem;\nconst Alert = ({ onDismiss, visible, onHide, title = '', message = '', buttons = [{ text: 'OK' }] }: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n\n return (\n <Modal\n onClose={onHide}\n onDismiss={onDismiss}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}\n >\n <DialogBox style={styles.container}>\n {Boolean(title) && (\n <View style={styles.titleContainer}>\n <Text h1 color={colors.ui.dialog.default.none.text} numberOfLines={1} style={{ flex: 1 }}>\n {title}\n </Text>\n </View>\n )}\n\n <View style={styles.messageContainer}>\n {Boolean(message) && (\n <Text\n subtitle2={!title}\n body3={Boolean(title)}\n color={!title ? colors.ui.dialog.default.none.text : colors.ui.dialog.default.none.message}\n numberOfLines={3}\n >\n {message}\n </Text>\n )}\n </View>\n\n <View style={styles.buttonContainer}>\n {buttons.map(({ text = 'OK', style = 'default', onPress }, index) => {\n return (\n <Button\n key={text + index}\n variant={'text'}\n style={styles.button}\n onPress={async () => {\n try {\n onPress?.();\n } finally {\n onHide();\n }\n }}\n contentColor={\n style === 'destructive'\n ? colors.ui.dialog.default.none.destructive\n : colors.ui.dialog.default.none.highlight\n }\n >\n {text}\n </Button>\n );\n })}\n </View>\n </DialogBox>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 20,\n },\n titleContainer: {\n paddingBottom: 16,\n paddingHorizontal: 24,\n flexDirection: 'row',\n alignItems: 'center',\n },\n messageContainer: {\n paddingHorizontal: 24,\n marginBottom: 12,\n },\n button: {\n marginLeft: 8,\n },\n buttonContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: 12,\n },\n});\n\nexport default Alert;\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","View","Modal","Text","createStyleSheet","useHeaderStyle","useUIKitTheme","Button","DialogBox","Alert","onDismiss","visible","onHide","title","message","buttons","text","statusBarTranslucent","colors","alignItems","justifyContent","styles","container","Boolean","titleContainer","ui","dialog","default","none","flex","messageContainer","buttonContainer","map","index","style","onPress","button","destructive","highlight","paddingTop","paddingBottom","paddingHorizontal","flexDirection","marginBottom","marginLeft","padding"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { AlertButton, View } from 'react-native';\n\nimport Modal from '../../components/Modal';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Button from '../Button';\nimport DialogBox from '../Dialog/DialogBox';\n\nexport type AlertItem = {\n title?: string;\n message?: string;\n buttons?: AlertButton[];\n};\n\ntype Props = {\n visible: boolean;\n onHide: () => void;\n onDismiss?: () => void;\n} & AlertItem;\nconst Alert = ({ onDismiss, visible, onHide, title = '', message = '', buttons = [{ text: 'OK' }] }: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { colors } = useUIKitTheme();\n\n return (\n <Modal\n onClose={onHide}\n onDismiss={onDismiss}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'center' }}\n >\n <DialogBox style={styles.container}>\n {Boolean(title) && (\n <View style={styles.titleContainer}>\n <Text h1 color={colors.ui.dialog.default.none.text} numberOfLines={1} style={{ flex: 1 }}>\n {title}\n </Text>\n </View>\n )}\n\n <View style={styles.messageContainer}>\n {Boolean(message) && (\n <Text\n subtitle2={!title}\n body3={Boolean(title)}\n color={!title ? colors.ui.dialog.default.none.text : colors.ui.dialog.default.none.message}\n numberOfLines={3}\n >\n {message}\n </Text>\n )}\n </View>\n\n <View style={styles.buttonContainer}>\n {buttons.map(({ text = 'OK', style = 'default', onPress }, index) => {\n return (\n <Button\n key={text + index}\n variant={'text'}\n style={styles.button}\n onPress={async () => {\n try {\n onPress?.();\n } finally {\n onHide();\n }\n }}\n contentColor={\n style === 'destructive'\n ? colors.ui.dialog.default.none.destructive\n : colors.ui.dialog.default.none.highlight\n }\n >\n {text}\n </Button>\n );\n })}\n </View>\n </DialogBox>\n </Modal>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n paddingTop: 20,\n },\n titleContainer: {\n paddingBottom: 16,\n paddingHorizontal: 24,\n flexDirection: 'row',\n alignItems: 'center',\n },\n messageContainer: {\n paddingHorizontal: 24,\n marginBottom: 12,\n },\n button: {\n marginLeft: 8,\n },\n buttonContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n padding: 12,\n },\n});\n\nexport default Alert;\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import React from 'react';
2
2
  import { View } from 'react-native';
3
+ import Icon from '../../components/Icon';
3
4
  import createStyleSheet from '../../styles/createStyleSheet';
4
5
  import useUIKitTheme from '../../theme/useUIKitTheme';
5
- import Icon from '../Icon';
6
6
 
7
7
  const AvatarIcon = _ref => {
8
8
  let {