@replyke/ui-core-react-native 4.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 (127) hide show
  1. package/dist/cjs/components/CustomButton.d.ts +11 -0
  2. package/dist/cjs/components/CustomButton.js +27 -0
  3. package/dist/cjs/components/CustomButton.js.map +1 -0
  4. package/dist/cjs/components/EmojiSuggestions.d.ts +6 -0
  5. package/dist/cjs/components/EmojiSuggestions.js +59 -0
  6. package/dist/cjs/components/EmojiSuggestions.js.map +1 -0
  7. package/dist/cjs/components/FromNow.d.ts +9 -0
  8. package/dist/cjs/components/FromNow.js +54 -0
  9. package/dist/cjs/components/FromNow.js.map +1 -0
  10. package/dist/cjs/components/GiphyContainer.d.ts +14 -0
  11. package/dist/cjs/components/GiphyContainer.js +232 -0
  12. package/dist/cjs/components/GiphyContainer.js.map +1 -0
  13. package/dist/cjs/components/Skeleton.d.ts +6 -0
  14. package/dist/cjs/components/Skeleton.js +56 -0
  15. package/dist/cjs/components/Skeleton.js.map +1 -0
  16. package/dist/cjs/components/UserAvatar.d.ts +12 -0
  17. package/dist/cjs/components/UserAvatar.js +41 -0
  18. package/dist/cjs/components/UserAvatar.js.map +1 -0
  19. package/dist/cjs/components/index.d.ts +6 -0
  20. package/dist/cjs/components/index.js +21 -0
  21. package/dist/cjs/components/index.js.map +1 -0
  22. package/dist/cjs/constants/index.d.ts +1 -0
  23. package/dist/cjs/constants/index.js +18 -0
  24. package/dist/cjs/constants/index.js.map +1 -0
  25. package/dist/cjs/constants/reset-styles.d.ts +9 -0
  26. package/dist/cjs/constants/reset-styles.js +40 -0
  27. package/dist/cjs/constants/reset-styles.js.map +1 -0
  28. package/dist/cjs/helpers/getImageComponent.d.ts +10 -0
  29. package/dist/cjs/helpers/getImageComponent.js +25 -0
  30. package/dist/cjs/helpers/getImageComponent.js.map +1 -0
  31. package/dist/cjs/helpers/index.d.ts +2 -0
  32. package/dist/cjs/helpers/index.js +8 -0
  33. package/dist/cjs/helpers/index.js.map +1 -0
  34. package/dist/cjs/helpers/parseContentWithMentions.d.ts +2 -0
  35. package/dist/cjs/helpers/parseContentWithMentions.js +44 -0
  36. package/dist/cjs/helpers/parseContentWithMentions.js.map +1 -0
  37. package/dist/cjs/hooks/index.d.ts +1 -0
  38. package/dist/cjs/hooks/index.js +9 -0
  39. package/dist/cjs/hooks/index.js.map +1 -0
  40. package/dist/cjs/hooks/useTextInputCursorIndicator.d.ts +7 -0
  41. package/dist/cjs/hooks/useTextInputCursorIndicator.js +24 -0
  42. package/dist/cjs/hooks/useTextInputCursorIndicator.js.map +1 -0
  43. package/dist/cjs/icons/FlagIcon.d.ts +7 -0
  44. package/dist/cjs/icons/FlagIcon.js +42 -0
  45. package/dist/cjs/icons/FlagIcon.js.map +1 -0
  46. package/dist/cjs/icons/HeartFullIcon.d.ts +7 -0
  47. package/dist/cjs/icons/HeartFullIcon.js +40 -0
  48. package/dist/cjs/icons/HeartFullIcon.js.map +1 -0
  49. package/dist/cjs/icons/HeartIcon.d.ts +7 -0
  50. package/dist/cjs/icons/HeartIcon.js +40 -0
  51. package/dist/cjs/icons/HeartIcon.js.map +1 -0
  52. package/dist/cjs/icons/MagnifyingGlassIcon.d.ts +8 -0
  53. package/dist/cjs/icons/MagnifyingGlassIcon.js +40 -0
  54. package/dist/cjs/icons/MagnifyingGlassIcon.js.map +1 -0
  55. package/dist/cjs/icons/TrashIcon.d.ts +7 -0
  56. package/dist/cjs/icons/TrashIcon.js +40 -0
  57. package/dist/cjs/icons/TrashIcon.js.map +1 -0
  58. package/dist/cjs/icons/index.d.ts +6 -0
  59. package/dist/cjs/icons/index.js +17 -0
  60. package/dist/cjs/icons/index.js.map +1 -0
  61. package/dist/cjs/index.d.ts +5 -0
  62. package/dist/cjs/index.js +22 -0
  63. package/dist/cjs/index.js.map +1 -0
  64. package/dist/esm/components/CustomButton.d.ts +11 -0
  65. package/dist/esm/components/CustomButton.js +25 -0
  66. package/dist/esm/components/CustomButton.js.map +1 -0
  67. package/dist/esm/components/EmojiSuggestions.d.ts +6 -0
  68. package/dist/esm/components/EmojiSuggestions.js +57 -0
  69. package/dist/esm/components/EmojiSuggestions.js.map +1 -0
  70. package/dist/esm/components/FromNow.d.ts +9 -0
  71. package/dist/esm/components/FromNow.js +49 -0
  72. package/dist/esm/components/FromNow.js.map +1 -0
  73. package/dist/esm/components/GiphyContainer.d.ts +14 -0
  74. package/dist/esm/components/GiphyContainer.js +229 -0
  75. package/dist/esm/components/GiphyContainer.js.map +1 -0
  76. package/dist/esm/components/Skeleton.d.ts +6 -0
  77. package/dist/esm/components/Skeleton.js +52 -0
  78. package/dist/esm/components/Skeleton.js.map +1 -0
  79. package/dist/esm/components/UserAvatar.d.ts +12 -0
  80. package/dist/esm/components/UserAvatar.js +39 -0
  81. package/dist/esm/components/UserAvatar.js.map +1 -0
  82. package/dist/esm/components/index.d.ts +6 -0
  83. package/dist/esm/components/index.js +7 -0
  84. package/dist/esm/components/index.js.map +1 -0
  85. package/dist/esm/constants/index.d.ts +1 -0
  86. package/dist/esm/constants/index.js +2 -0
  87. package/dist/esm/constants/index.js.map +1 -0
  88. package/dist/esm/constants/reset-styles.d.ts +9 -0
  89. package/dist/esm/constants/reset-styles.js +37 -0
  90. package/dist/esm/constants/reset-styles.js.map +1 -0
  91. package/dist/esm/helpers/getImageComponent.d.ts +10 -0
  92. package/dist/esm/helpers/getImageComponent.js +21 -0
  93. package/dist/esm/helpers/getImageComponent.js.map +1 -0
  94. package/dist/esm/helpers/index.d.ts +2 -0
  95. package/dist/esm/helpers/index.js +3 -0
  96. package/dist/esm/helpers/index.js.map +1 -0
  97. package/dist/esm/helpers/parseContentWithMentions.d.ts +2 -0
  98. package/dist/esm/helpers/parseContentWithMentions.js +40 -0
  99. package/dist/esm/helpers/parseContentWithMentions.js.map +1 -0
  100. package/dist/esm/hooks/index.d.ts +1 -0
  101. package/dist/esm/hooks/index.js +2 -0
  102. package/dist/esm/hooks/index.js.map +1 -0
  103. package/dist/esm/hooks/useTextInputCursorIndicator.d.ts +7 -0
  104. package/dist/esm/hooks/useTextInputCursorIndicator.js +21 -0
  105. package/dist/esm/hooks/useTextInputCursorIndicator.js.map +1 -0
  106. package/dist/esm/icons/FlagIcon.d.ts +7 -0
  107. package/dist/esm/icons/FlagIcon.js +7 -0
  108. package/dist/esm/icons/FlagIcon.js.map +1 -0
  109. package/dist/esm/icons/HeartFullIcon.d.ts +7 -0
  110. package/dist/esm/icons/HeartFullIcon.js +5 -0
  111. package/dist/esm/icons/HeartFullIcon.js.map +1 -0
  112. package/dist/esm/icons/HeartIcon.d.ts +7 -0
  113. package/dist/esm/icons/HeartIcon.js +5 -0
  114. package/dist/esm/icons/HeartIcon.js.map +1 -0
  115. package/dist/esm/icons/MagnifyingGlassIcon.d.ts +8 -0
  116. package/dist/esm/icons/MagnifyingGlassIcon.js +5 -0
  117. package/dist/esm/icons/MagnifyingGlassIcon.js.map +1 -0
  118. package/dist/esm/icons/TrashIcon.d.ts +7 -0
  119. package/dist/esm/icons/TrashIcon.js +5 -0
  120. package/dist/esm/icons/TrashIcon.js.map +1 -0
  121. package/dist/esm/icons/index.d.ts +6 -0
  122. package/dist/esm/icons/index.js +7 -0
  123. package/dist/esm/icons/index.js.map +1 -0
  124. package/dist/esm/index.d.ts +5 -0
  125. package/dist/esm/index.js +6 -0
  126. package/dist/esm/index.js.map +1 -0
  127. package/package.json +62 -0
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Dynamically loads the Image component.
3
+ * Tries to require expo-image's Image, and if not found, falls back to React Native's Image.
4
+ *
5
+ * @returns {Object} An object containing the ImageComponent and a flag indicating if it's expo-image.
6
+ */
7
+ export declare const getImageComponent: () => {
8
+ ImageComponent: any;
9
+ isExpo: boolean;
10
+ };
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Dynamically loads the Image component.
3
+ * Tries to require expo-image's Image, and if not found, falls back to React Native's Image.
4
+ *
5
+ * @returns {Object} An object containing the ImageComponent and a flag indicating if it's expo-image.
6
+ */
7
+ export const getImageComponent = () => {
8
+ let ImageComponent;
9
+ let isExpo = false;
10
+ try {
11
+ // Try to load expo-image's Image component.
12
+ ImageComponent = require("expo-image").Image;
13
+ isExpo = true;
14
+ }
15
+ catch (error) {
16
+ // Fallback to React Native's Image.
17
+ ImageComponent = require("react-native").Image;
18
+ }
19
+ return { ImageComponent, isExpo };
20
+ };
21
+ //# sourceMappingURL=getImageComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getImageComponent.js","sourceRoot":"","sources":["../../../src/helpers/getImageComponent.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,IAAI,cAAc,CAAC;IACnB,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC;QACH,4CAA4C;QAC5C,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC;QAC7C,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oCAAoC;QACpC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC;IACjD,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;AACpC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { getImageComponent } from "./getImageComponent";
2
+ export { parseContentWithMentions } from "./parseContentWithMentions";
@@ -0,0 +1,3 @@
1
+ export { getImageComponent } from "./getImageComponent";
2
+ export { parseContentWithMentions } from "./parseContentWithMentions";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/helpers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Mention } from "@replyke/core";
2
+ export declare const parseContentWithMentions: (content: string, mentions: Mention[], currentUserId: string | undefined, currentUserClickCallback: (() => void) | undefined, otherUserClickCallback: ((userId: string) => void) | undefined) => (string | JSX.Element)[];
@@ -0,0 +1,40 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text } from "react-native";
3
+ export const parseContentWithMentions = (content, mentions, currentUserId, currentUserClickCallback, otherUserClickCallback) => {
4
+ if (!mentions.length)
5
+ return [content];
6
+ // Create a regex pattern to match all mentions in the array, escaping special characters
7
+ const mentionPattern = new RegExp(mentions
8
+ .map((mention) => `@${mention.username.replace(/[-/\\^$*+?.()|[\]{}]/g, "\\$&")}`)
9
+ .join("|"), "g");
10
+ // Replace mentions with a placeholder and split content based on the regex
11
+ const parts = content.split(mentionPattern);
12
+ // Find all matched mentions in the content
13
+ const matches = Array.from(content.matchAll(mentionPattern));
14
+ // Construct the parsed output
15
+ const parsedContent = [];
16
+ let lastIndex = 0;
17
+ parts.forEach((part, index) => {
18
+ if (part) {
19
+ parsedContent.push(part);
20
+ lastIndex += part.length;
21
+ }
22
+ const match = matches[index];
23
+ if (match) {
24
+ const matchedMention = mentions.find((mention) => `@${mention.username}` === match[0]);
25
+ if (matchedMention) {
26
+ parsedContent.push(_jsx(Text, { style: { color: "#1e40af" }, onPress: () => {
27
+ if (matchedMention.id === currentUserId) {
28
+ currentUserClickCallback?.();
29
+ }
30
+ else {
31
+ otherUserClickCallback?.(matchedMention.id);
32
+ }
33
+ }, children: match[0] }, lastIndex));
34
+ lastIndex += match[0].length;
35
+ }
36
+ }
37
+ });
38
+ return parsedContent;
39
+ };
40
+ //# sourceMappingURL=parseContentWithMentions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseContentWithMentions.js","sourceRoot":"","sources":["../../../src/helpers/parseContentWithMentions.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAGpC,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,OAAe,EACf,QAAmB,EACnB,aAAiC,EACjC,wBAAkD,EAClD,sBAA8D,EACpC,EAAE;IAC5B,IAAI,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvC,yFAAyF;IACzF,MAAM,cAAc,GAAG,IAAI,MAAM,CAC/B,QAAQ;SACL,GAAG,CACF,CAAC,OAAO,EAAE,EAAE,CACV,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,uBAAuB,EAAE,MAAM,CAAC,EAAE,CAClE;SACA,IAAI,CAAC,GAAG,CAAC,EACZ,GAAG,CACJ,CAAC;IAEF,2EAA2E;IAC3E,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAE5C,2CAA2C;IAC3C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;IAE7D,8BAA8B;IAC9B,MAAM,aAAa,GAA6B,EAAE,CAAC;IACnD,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC5B,IAAI,IAAI,EAAE,CAAC;YACT,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC;QAC3B,CAAC;QAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAClC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CACjD,CAAC;YACF,IAAI,cAAc,EAAE,CAAC;gBACnB,aAAa,CAAC,IAAI,CAChB,KAAC,IAAI,IACH,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,EAC3B,OAAO,EAAE,GAAG,EAAE;wBACZ,IAAI,cAAc,CAAC,EAAE,KAAK,aAAa,EAAE,CAAC;4BACxC,wBAAwB,EAAE,EAAE,CAAC;wBAC/B,CAAC;6BAAM,CAAC;4BACN,sBAAsB,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;wBAC9C,CAAC;oBACH,CAAC,YAGA,KAAK,CAAC,CAAC,CAAC,IAFJ,SAAS,CAGT,CACR,CAAC;gBACF,SAAS,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export { default as useTextInputCursorIndicator } from "./useTextInputCursorIndicator";
@@ -0,0 +1,2 @@
1
+ export { default as useTextInputCursorIndicator } from "./useTextInputCursorIndicator";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { NativeSyntheticEvent, TextInputSelectionChangeEventData } from "react-native";
2
+ export default function useTextInputCursorIndicator(): {
3
+ cursorPosition: number;
4
+ isSelectionActive: boolean;
5
+ handleSelectionChange: (event: NativeSyntheticEvent<TextInputSelectionChangeEventData>) => void;
6
+ handleTextChange: (text: string) => void;
7
+ };
@@ -0,0 +1,21 @@
1
+ import { useState, useCallback } from "react";
2
+ export default function useTextInputCursorIndicator() {
3
+ const [cursorPosition, setCursorPosition] = useState(0);
4
+ const [isSelectionActive, setIsSelectionActive] = useState(false);
5
+ const handleSelectionChange = useCallback((event) => {
6
+ const { selection } = event.nativeEvent;
7
+ setCursorPosition(selection.start); // Keeps cursor position in sync
8
+ setIsSelectionActive(selection.start !== selection.end);
9
+ }, []);
10
+ const handleTextChange = useCallback((text) => {
11
+ setIsSelectionActive(false); // Reset selection state if typing
12
+ // No need to modify cursorPosition, as onSelectionChange will update it automatically
13
+ }, []);
14
+ return {
15
+ cursorPosition,
16
+ isSelectionActive,
17
+ handleSelectionChange,
18
+ handleTextChange,
19
+ };
20
+ }
21
+ //# sourceMappingURL=useTextInputCursorIndicator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTextInputCursorIndicator.js","sourceRoot":"","sources":["../../../src/hooks/useTextInputCursorIndicator.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAM9C,MAAM,CAAC,OAAO,UAAU,2BAA2B;IACjD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC;IAChE,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE3E,MAAM,qBAAqB,GAAG,WAAW,CACvC,CAAC,KAA8D,EAAE,EAAE;QACjE,MAAM,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC;QACxC,iBAAiB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,gCAAgC;QACpE,oBAAoB,CAAC,SAAS,CAAC,KAAK,KAAK,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1D,CAAC,EACD,EAAE,CACH,CAAC;IAEF,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,IAAY,EAAE,EAAE;QACpD,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,kCAAkC;QAC/D,sFAAsF;IACxF,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACL,cAAc;QACd,iBAAiB;QACjB,qBAAqB;QACrB,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ interface IconProps {
3
+ size?: number;
4
+ color?: string;
5
+ }
6
+ declare const FlagIcon: React.FC<IconProps>;
7
+ export default FlagIcon;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Svg, { Path } from "react-native-svg";
3
+ const FlagIcon = ({ size = 20, color = "#DC2626" }) => {
4
+ return (_jsx(Svg, { width: size, height: size, viewBox: "0 0 16 16", fill: "none", children: _jsx(Path, { d: "M14.27 1.48a1.3 1.3 0 0 0-.65.18 6.32 6.32 0 0 1-3 1.1c-1.66 0-3.65-1-5.65-1a11.41 11.41 0 0 0-3.18.46v-.09a.63.63 0 0 0-1.25 0v11.76a.63.63 0 1 0 1.25 0V11a10.56 10.56 0 0 1 3.18-.46c1.66 0 4.4 1 6.45 1A5.86 5.86 0 0 0 15 10.11a1.17 1.17 0 0 0 .47-.93V2.66a1.21 1.21 0 0 0-1.2-1.18zm0 7.65a4.58 4.58 0 0 1-2.87 1.08 17.73 17.73 0 0 1-3.29-.49 16 16 0 0 0-3.16-.48A12.3 12.3 0 0 0 2 9.57v-6.1A9.85 9.85 0 0 1 4.93 3a11.59 11.59 0 0 1 2.78.48 11.9 11.9 0 0 0 2.87.52 7.5 7.5 0 0 0 3.67-1.27z", fill: color }) }));
5
+ };
6
+ export default FlagIcon;
7
+ //# sourceMappingURL=FlagIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlagIcon.js","sourceRoot":"","sources":["../../../src/icons/FlagIcon.tsx"],"names":[],"mappings":";AACA,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO7C,MAAM,QAAQ,GAAwB,CAAC,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,GAAG,SAAS,EAAE,EAAE,EAAE;IACzE,OAAO,CACL,KAAC,GAAG,IAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,YAC7D,KAAC,IAAI,IACH,CAAC,EAAC,4eAA4e,EAC9e,IAAI,EAAE,KAAK,GACX,GACE,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ interface HeartFullIconProps {
3
+ color?: string;
4
+ size?: number;
5
+ }
6
+ declare const HeartFullIcon: React.FC<HeartFullIconProps>;
7
+ export default HeartFullIcon;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Svg, { Path } from "react-native-svg";
3
+ const HeartFullIcon = ({ color = "#DC2626", size = 20, }) => (_jsx(Svg, { viewBox: "0 0 512 512", width: size, height: size, fill: color, children: _jsx(Path, { d: "M47.6 300.4L228.3 469.1c7.5 7 17.4 10.9 27.7 10.9s20.2-3.9 27.7-10.9L464.4 300.4c30.4-28.3 47.6-68 47.6-109.5v-5.8c0-69.9-50.5-129.5-119.4-141C347 36.5 300.6 51.4 268 84L256 96 244 84c-32.6-32.6-79-47.5-124.6-39.9C50.5 55.6 0 115.2 0 185.1v5.8c0 41.5 17.2 81.2 47.6 109.5z" }) }));
4
+ export default HeartFullIcon;
5
+ //# sourceMappingURL=HeartFullIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeartFullIcon.js","sourceRoot":"","sources":["../../../src/icons/HeartFullIcon.tsx"],"names":[],"mappings":";AACA,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO7C,MAAM,aAAa,GAAiC,CAAC,EACnD,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,EAAE,GACV,EAAE,EAAE,CAAC,CACJ,KAAC,GAAG,IAAC,OAAO,EAAC,aAAa,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,YAC/D,KAAC,IAAI,IAAC,CAAC,EAAC,kRAAkR,GAAG,GACzR,CACP,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ interface HeartIconProps {
3
+ color?: string;
4
+ size?: number;
5
+ }
6
+ declare const HeartIcon: React.FC<HeartIconProps>;
7
+ export default HeartIcon;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Svg, { Path } from "react-native-svg";
3
+ const HeartIcon = ({ color = "#000", size = 20 }) => (_jsx(Svg, { viewBox: "0 0 512 512", width: size, height: size, fill: color, children: _jsx(Path, { d: "M225.8 468.2l-2.5-2.3L48.1 303.2C17.4 274.7 0 234.7 0 192.8l0-3.3c0-70.4 50-130.8 119.2-144C158.6 37.9 198.9 47 231 69.6c9 6.4 17.4 13.8 25 22.3c4.2-4.8 8.7-9.2 13.5-13.3c3.7-3.2 7.5-6.2 11.5-9c0 0 0 0 0 0C313.1 47 353.4 37.9 392.8 45.4C462 58.6 512 119.1 512 189.5l0 3.3c0 41.9-17.4 81.9-48.1 110.4L288.7 465.9l-2.5 2.3c-8.2 7.6-19 11.9-30.2 11.9s-22-4.2-30.2-11.9zM239.1 145c-.4-.3-.7-.7-1-1.1l-17.8-20-.1-.1s0 0 0 0c-23.1-25.9-58-37.7-92-31.2C81.6 101.5 48 142.1 48 189.5l0 3.3c0 28.5 11.9 55.8 32.8 75.2L256 430.7 431.2 268c20.9-19.4 32.8-46.7 32.8-75.2l0-3.3c0-47.3-33.6-88-80.1-96.9c-34-6.5-69 5.4-92 31.2c0 0 0 0-.1 .1s0 0-.1 .1l-17.8 20c-.3 .4-.7 .7-1 1.1c-4.5 4.5-10.6 7-16.9 7s-12.4-2.5-16.9-7z" }) }));
4
+ export default HeartIcon;
5
+ //# sourceMappingURL=HeartIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeartIcon.js","sourceRoot":"","sources":["../../../src/icons/HeartIcon.tsx"],"names":[],"mappings":";AACA,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO7C,MAAM,SAAS,GAA6B,CAAC,EAAE,KAAK,GAAG,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAC7E,KAAC,GAAG,IACF,OAAO,EAAC,aAAa,EACrB,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,IAAI,EAAE,KAAK,YAEX,KAAC,IAAI,IAAC,CAAC,EAAC,ksBAAksB,GAAG,GACzsB,CACP,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ interface MagnifyingGlassIconProps {
3
+ color?: string;
4
+ width?: number;
5
+ height?: number;
6
+ }
7
+ declare const MagnifyingGlassIcon: React.FC<MagnifyingGlassIconProps>;
8
+ export default MagnifyingGlassIcon;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import Svg, { Path } from "react-native-svg";
3
+ const MagnifyingGlassIcon = ({ color = "#000000", width = 24, height = 24, }) => (_jsx(Svg, { viewBox: "0 0 256 256", width: width, height: height, fill: "none", children: _jsx(Path, { d: "M232.47656,215.51563l-40.67773-40.67774a96.10791,96.10791,0,1,0-16.97168,16.96973l40.67871,40.67871a12.0001,12.0001,0,1,0,16.9707-16.9707ZM43.99707,116a72,72,0,1,1,72,72A72.08124,72.08124,0,0,1,43.99707,116Z", fill: color }) }));
4
+ export default MagnifyingGlassIcon;
5
+ //# sourceMappingURL=MagnifyingGlassIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MagnifyingGlassIcon.js","sourceRoot":"","sources":["../../../src/icons/MagnifyingGlassIcon.tsx"],"names":[],"mappings":";AACA,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAQ7C,MAAM,mBAAmB,GAAuC,CAAC,EAC/D,KAAK,GAAG,SAAS,EACjB,KAAK,GAAG,EAAE,EACV,MAAM,GAAG,EAAE,GACZ,EAAE,EAAE,CAAC,CACJ,KAAC,GAAG,IAAC,OAAO,EAAC,aAAa,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAC,MAAM,YAClE,KAAC,IAAI,IACH,CAAC,EAAC,iNAAiN,EACnN,IAAI,EAAE,KAAK,GACX,GACE,CACP,CAAC;AAEF,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ interface TrashIconProps {
3
+ color?: string;
4
+ size?: number;
5
+ }
6
+ declare const TrashIcon: React.FC<TrashIconProps>;
7
+ export default TrashIcon;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import Svg, { Path } from "react-native-svg";
3
+ const TrashIcon = ({ color = "#1C274C", size = 24, }) => (_jsxs(Svg, { viewBox: "0 0 24 24", width: size, height: size, fill: "none", children: [_jsx(Path, { d: "M20.5001 6H3.5", stroke: color, strokeWidth: "1.5", strokeLinecap: "round" }), _jsx(Path, { d: "M18.8332 8.5L18.3732 15.3991C18.1962 18.054 18.1077 19.3815 17.2427 20.1907C16.3777 21 15.0473 21 12.3865 21H11.6132C8.95235 21 7.62195 21 6.75694 20.1907C5.89194 19.3815 5.80344 18.054 5.62644 15.3991L5.1665 8.5", stroke: color, strokeWidth: "1.5", strokeLinecap: "round" }), _jsx(Path, { d: "M9.5 11L10 16", stroke: color, strokeWidth: "1.5", strokeLinecap: "round" }), _jsx(Path, { d: "M14.5 11L14 16", stroke: color, strokeWidth: "1.5", strokeLinecap: "round" }), _jsx(Path, { d: "M6.5 6C6.55588 6 6.58382 6 6.60915 5.99936C7.43259 5.97849 8.15902 5.45491 8.43922 4.68032C8.44784 4.65649 8.45667 4.62999 8.47434 4.57697L8.57143 4.28571C8.65431 4.03708 8.69575 3.91276 8.75071 3.8072C8.97001 3.38607 9.37574 3.09364 9.84461 3.01877C9.96213 3 10.0932 3 10.3553 3H13.6447C13.9068 3 14.0379 3 14.1554 3.01877C14.6243 3.09364 15.03 3.38607 15.2493 3.8072C15.3043 3.91276 15.3457 4.03708 15.4286 4.28571L15.5257 4.57697C15.5433 4.62992 15.5522 4.65651 15.5608 4.68032C15.841 5.45491 16.5674 5.97849 17.3909 5.99936C17.4162 6 17.4441 6 17.5 6", stroke: color, strokeWidth: "1.5" })] }));
4
+ export default TrashIcon;
5
+ //# sourceMappingURL=TrashIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TrashIcon.js","sourceRoot":"","sources":["../../../src/icons/TrashIcon.tsx"],"names":[],"mappings":";AACA,OAAO,GAAG,EAAE,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAO7C,MAAM,SAAS,GAA6B,CAAC,EAC3C,KAAK,GAAG,SAAS,EACjB,IAAI,GAAG,EAAE,GACV,EAAE,EAAE,CAAC,CACJ,MAAC,GAAG,IAAC,OAAO,EAAC,WAAW,EAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAC,MAAM,aAC7D,KAAC,IAAI,IACH,CAAC,EAAC,gBAAgB,EAClB,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,GACrB,EACF,KAAC,IAAI,IACH,CAAC,EAAC,sNAAsN,EACxN,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,GACrB,EACF,KAAC,IAAI,IACH,CAAC,EAAC,eAAe,EACjB,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,GACrB,EACF,KAAC,IAAI,IACH,CAAC,EAAC,gBAAgB,EAClB,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,KAAK,EACjB,aAAa,EAAC,OAAO,GACrB,EACF,KAAC,IAAI,IACH,CAAC,EAAC,4iBAA4iB,EAC9iB,MAAM,EAAE,KAAK,EACb,WAAW,EAAC,KAAK,GACjB,IACE,CACP,CAAC;AAEF,eAAe,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ import FlagIcon from "./FlagIcon";
2
+ import HeartFullIcon from "./HeartFullIcon";
3
+ import HeartIcon from "./HeartIcon";
4
+ import MagnifyingGlassIcon from "./MagnifyingGlassIcon";
5
+ import TrashIcon from "./TrashIcon";
6
+ export { FlagIcon, HeartFullIcon, HeartIcon, MagnifyingGlassIcon, TrashIcon };
@@ -0,0 +1,7 @@
1
+ import FlagIcon from "./FlagIcon";
2
+ import HeartFullIcon from "./HeartFullIcon";
3
+ import HeartIcon from "./HeartIcon";
4
+ import MagnifyingGlassIcon from "./MagnifyingGlassIcon";
5
+ import TrashIcon from "./TrashIcon";
6
+ export { FlagIcon, HeartFullIcon, HeartIcon, MagnifyingGlassIcon, TrashIcon };
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/icons/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,SAAS,MAAM,aAAa,CAAC;AACpC,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,mBAAmB,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from "./components";
2
+ export * from "./helpers";
3
+ export * from "./hooks";
4
+ export * from "./icons";
5
+ export * from "./constants";
@@ -0,0 +1,6 @@
1
+ export * from "./components";
2
+ export * from "./helpers";
3
+ export * from "./hooks";
4
+ export * from "./icons";
5
+ export * from "./constants";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC"}
package/package.json ADDED
@@ -0,0 +1,62 @@
1
+ {
2
+ "name": "@replyke/ui-core-react-native",
3
+ "version": "4.0.0",
4
+ "author": "Replyke, maintained by Yanay Tsabary",
5
+ "description": "Replyke React components: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.",
6
+ "keywords": [
7
+ "react",
8
+ "social features",
9
+ "comment section",
10
+ "comments",
11
+ "nested comments",
12
+ "likes",
13
+ "votes",
14
+ "feeds",
15
+ "user lists",
16
+ "notifications",
17
+ "interactive apps",
18
+ "reactions",
19
+ "content moderation",
20
+ "reporting",
21
+ "mentions",
22
+ "user interactions",
23
+ "frontend tools",
24
+ "social media",
25
+ "replyke",
26
+ "react-component"
27
+ ],
28
+ "license": "MIT",
29
+ "main": "dist/cjs/index.js",
30
+ "module": "dist/esm/index.js",
31
+ "types": "dist/esm/index.d.ts",
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "files": [
36
+ "dist"
37
+ ],
38
+ "dependencies": {
39
+ "@giphy/js-fetch-api": "^5.6.0",
40
+ "@giphy/react-components": "^9.8.0"
41
+ },
42
+ "devDependencies": {
43
+ "@replyke/core": "^4.0.3",
44
+ "expo-image": "^2.0.4",
45
+ "moment": "^2.30.1",
46
+ "react-native-gesture-handler": "^2.22.1",
47
+ "react-native-svg": "^15.11.1"
48
+ },
49
+ "peerDependencies": {
50
+ "@replyke/core": "^4",
51
+ "expo-image": "^2",
52
+ "moment": "^2",
53
+ "react-native-gesture-handler": "^2",
54
+ "react-native-svg": "^15"
55
+ },
56
+ "scripts": {
57
+ "build:esm": "tsc -p tsconfig.esm.json",
58
+ "build:cjs": "tsc -p tsconfig.cjs.json",
59
+ "build": "rimraf dist && pnpm run build:esm && pnpm run build:cjs",
60
+ "prepublish": "pnpm run build"
61
+ }
62
+ }