@bosonprotocol/react-kit 0.32.0-alpha.9 → 0.33.0-alpha.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 (206) hide show
  1. package/dist/cjs/components/error/SimpleError.d.ts +7 -5
  2. package/dist/cjs/components/error/SimpleError.d.ts.map +1 -1
  3. package/dist/cjs/components/error/SimpleError.js +4 -4
  4. package/dist/cjs/components/error/SimpleError.js.map +1 -1
  5. package/dist/cjs/components/form/BaseInput.js +1 -1
  6. package/dist/cjs/components/form/BaseInput.js.map +1 -1
  7. package/dist/cjs/components/form/BaseTagsInput.d.ts.map +1 -1
  8. package/dist/cjs/components/form/BaseTagsInput.js +1 -1
  9. package/dist/cjs/components/form/BaseTagsInput.js.map +1 -1
  10. package/dist/cjs/components/form/BaseTextArea.d.ts.map +1 -1
  11. package/dist/cjs/components/form/BaseTextArea.js +1 -1
  12. package/dist/cjs/components/form/BaseTextArea.js.map +1 -1
  13. package/dist/cjs/components/form/Checkbox.d.ts.map +1 -1
  14. package/dist/cjs/components/form/Checkbox.js +1 -1
  15. package/dist/cjs/components/form/Checkbox.js.map +1 -1
  16. package/dist/cjs/components/form/CountrySelect.d.ts +16 -3
  17. package/dist/cjs/components/form/CountrySelect.d.ts.map +1 -1
  18. package/dist/cjs/components/form/CountrySelect.js +26 -18
  19. package/dist/cjs/components/form/CountrySelect.js.map +1 -1
  20. package/dist/cjs/components/form/Datepicker.d.ts.map +1 -1
  21. package/dist/cjs/components/form/Datepicker.js +1 -1
  22. package/dist/cjs/components/form/Datepicker.js.map +1 -1
  23. package/dist/cjs/components/form/Field.styles.d.ts +0 -1
  24. package/dist/cjs/components/form/Field.styles.d.ts.map +1 -1
  25. package/dist/cjs/components/form/Field.styles.js.map +1 -1
  26. package/dist/cjs/components/form/FormField.d.ts +1 -1
  27. package/dist/cjs/components/form/FormField.d.ts.map +1 -1
  28. package/dist/cjs/components/form/FormField.js +5 -3
  29. package/dist/cjs/components/form/FormField.js.map +1 -1
  30. package/dist/cjs/components/form/InputColor.d.ts.map +1 -1
  31. package/dist/cjs/components/form/InputColor.js +1 -1
  32. package/dist/cjs/components/form/InputColor.js.map +1 -1
  33. package/dist/cjs/components/form/Phone.d.ts.map +1 -1
  34. package/dist/cjs/components/form/Phone.js +1 -1
  35. package/dist/cjs/components/form/Phone.js.map +1 -1
  36. package/dist/cjs/components/form/Select.d.ts.map +1 -1
  37. package/dist/cjs/components/form/Select.js +1 -2
  38. package/dist/cjs/components/form/Select.js.map +1 -1
  39. package/dist/cjs/components/form/Upload/ImageEditorModal/ImageEditor.d.ts +9 -0
  40. package/dist/cjs/components/form/Upload/ImageEditorModal/ImageEditor.d.ts.map +1 -0
  41. package/dist/cjs/components/form/Upload/ImageEditorModal/ImageEditor.js +65 -0
  42. package/dist/cjs/components/form/Upload/ImageEditorModal/ImageEditor.js.map +1 -0
  43. package/dist/cjs/components/form/Upload/ImageEditorModal/ImageEditorModal.d.ts +10 -0
  44. package/dist/cjs/components/form/Upload/ImageEditorModal/ImageEditorModal.d.ts.map +1 -0
  45. package/dist/cjs/components/form/Upload/ImageEditorModal/ImageEditorModal.js +100 -0
  46. package/dist/cjs/components/form/Upload/ImageEditorModal/ImageEditorModal.js.map +1 -0
  47. package/dist/cjs/components/form/Upload/Upload.d.ts +39 -2
  48. package/dist/cjs/components/form/Upload/Upload.d.ts.map +1 -1
  49. package/dist/cjs/components/form/Upload/Upload.js +80 -19
  50. package/dist/cjs/components/form/Upload/Upload.js.map +1 -1
  51. package/dist/cjs/components/form/Upload/WithUploadToIpfs.d.ts +1 -1
  52. package/dist/cjs/components/form/Upload/WithUploadToIpfs.d.ts.map +1 -1
  53. package/dist/cjs/components/form/Upload/WithUploadToIpfs.js +9 -7
  54. package/dist/cjs/components/form/Upload/WithUploadToIpfs.js.map +1 -1
  55. package/dist/cjs/components/form/index.d.ts +2 -1
  56. package/dist/cjs/components/form/index.d.ts.map +1 -1
  57. package/dist/cjs/components/form/index.js +2 -1
  58. package/dist/cjs/components/form/index.js.map +1 -1
  59. package/dist/cjs/components/form/types.d.ts +17 -4
  60. package/dist/cjs/components/form/types.d.ts.map +1 -1
  61. package/dist/cjs/components/modal/ModalComponents.d.ts +2 -0
  62. package/dist/cjs/components/modal/ModalComponents.d.ts.map +1 -1
  63. package/dist/cjs/components/modal/ModalComponents.js +3 -1
  64. package/dist/cjs/components/modal/ModalComponents.js.map +1 -1
  65. package/dist/cjs/components/modal/ModalContext.d.ts +2 -1
  66. package/dist/cjs/components/modal/ModalContext.d.ts.map +1 -1
  67. package/dist/cjs/components/modal/ModalContext.js.map +1 -1
  68. package/dist/cjs/components/modal/ModalTypes.d.ts +1 -0
  69. package/dist/cjs/components/modal/ModalTypes.d.ts.map +1 -1
  70. package/dist/cjs/components/modal/ModalTypes.js +2 -1
  71. package/dist/cjs/components/modal/ModalTypes.js.map +1 -1
  72. package/dist/cjs/components/modal/useModal.d.ts +3 -2
  73. package/dist/cjs/components/modal/useModal.d.ts.map +1 -1
  74. package/dist/cjs/hooks/images/useFileImage.d.ts +8 -0
  75. package/dist/cjs/hooks/images/useFileImage.d.ts.map +1 -0
  76. package/dist/cjs/hooks/images/useFileImage.js +26 -0
  77. package/dist/cjs/hooks/images/useFileImage.js.map +1 -0
  78. package/dist/cjs/hooks/images/useIpfsImage.d.ts +13 -0
  79. package/dist/cjs/hooks/images/useIpfsImage.d.ts.map +1 -0
  80. package/dist/cjs/hooks/images/useIpfsImage.js +26 -0
  81. package/dist/cjs/hooks/images/useIpfsImage.js.map +1 -0
  82. package/dist/cjs/index.d.ts +1 -0
  83. package/dist/cjs/index.d.ts.map +1 -1
  84. package/dist/cjs/index.js +1 -0
  85. package/dist/cjs/index.js.map +1 -1
  86. package/dist/cjs/lib/base64/base64.d.ts +4 -1
  87. package/dist/cjs/lib/base64/base64.d.ts.map +1 -1
  88. package/dist/cjs/lib/base64/base64.js +1 -1
  89. package/dist/cjs/lib/base64/base64.js.map +1 -1
  90. package/dist/esm/components/error/SimpleError.d.ts +7 -5
  91. package/dist/esm/components/error/SimpleError.d.ts.map +1 -1
  92. package/dist/esm/components/error/SimpleError.js +4 -4
  93. package/dist/esm/components/error/SimpleError.js.map +1 -1
  94. package/dist/esm/components/form/BaseInput.js +1 -1
  95. package/dist/esm/components/form/BaseInput.js.map +1 -1
  96. package/dist/esm/components/form/BaseTagsInput.d.ts.map +1 -1
  97. package/dist/esm/components/form/BaseTagsInput.js +1 -1
  98. package/dist/esm/components/form/BaseTagsInput.js.map +1 -1
  99. package/dist/esm/components/form/BaseTextArea.d.ts.map +1 -1
  100. package/dist/esm/components/form/BaseTextArea.js +1 -1
  101. package/dist/esm/components/form/BaseTextArea.js.map +1 -1
  102. package/dist/esm/components/form/Checkbox.d.ts.map +1 -1
  103. package/dist/esm/components/form/Checkbox.js +1 -1
  104. package/dist/esm/components/form/Checkbox.js.map +1 -1
  105. package/dist/esm/components/form/CountrySelect.d.ts +16 -3
  106. package/dist/esm/components/form/CountrySelect.d.ts.map +1 -1
  107. package/dist/esm/components/form/CountrySelect.js +58 -30
  108. package/dist/esm/components/form/CountrySelect.js.map +1 -1
  109. package/dist/esm/components/form/Datepicker.d.ts.map +1 -1
  110. package/dist/esm/components/form/Datepicker.js +1 -1
  111. package/dist/esm/components/form/Datepicker.js.map +1 -1
  112. package/dist/esm/components/form/Field.styles.d.ts +0 -1
  113. package/dist/esm/components/form/Field.styles.d.ts.map +1 -1
  114. package/dist/esm/components/form/Field.styles.js.map +1 -1
  115. package/dist/esm/components/form/FormField.d.ts +1 -1
  116. package/dist/esm/components/form/FormField.d.ts.map +1 -1
  117. package/dist/esm/components/form/FormField.js +3 -2
  118. package/dist/esm/components/form/FormField.js.map +1 -1
  119. package/dist/esm/components/form/InputColor.d.ts.map +1 -1
  120. package/dist/esm/components/form/InputColor.js +1 -1
  121. package/dist/esm/components/form/InputColor.js.map +1 -1
  122. package/dist/esm/components/form/Phone.d.ts.map +1 -1
  123. package/dist/esm/components/form/Phone.js +1 -1
  124. package/dist/esm/components/form/Phone.js.map +1 -1
  125. package/dist/esm/components/form/Select.d.ts.map +1 -1
  126. package/dist/esm/components/form/Select.js +1 -2
  127. package/dist/esm/components/form/Select.js.map +1 -1
  128. package/dist/esm/components/form/Upload/ImageEditorModal/ImageEditor.d.ts +9 -0
  129. package/dist/esm/components/form/Upload/ImageEditorModal/ImageEditor.d.ts.map +1 -0
  130. package/dist/esm/components/form/Upload/ImageEditorModal/ImageEditor.js +36 -0
  131. package/dist/esm/components/form/Upload/ImageEditorModal/ImageEditor.js.map +1 -0
  132. package/dist/esm/components/form/Upload/ImageEditorModal/ImageEditorModal.d.ts +10 -0
  133. package/dist/esm/components/form/Upload/ImageEditorModal/ImageEditorModal.d.ts.map +1 -0
  134. package/dist/esm/components/form/Upload/ImageEditorModal/ImageEditorModal.js +48 -0
  135. package/dist/esm/components/form/Upload/ImageEditorModal/ImageEditorModal.js.map +1 -0
  136. package/dist/esm/components/form/Upload/Upload.d.ts +39 -2
  137. package/dist/esm/components/form/Upload/Upload.d.ts.map +1 -1
  138. package/dist/esm/components/form/Upload/Upload.js +92 -19
  139. package/dist/esm/components/form/Upload/Upload.js.map +1 -1
  140. package/dist/esm/components/form/Upload/WithUploadToIpfs.d.ts +1 -1
  141. package/dist/esm/components/form/Upload/WithUploadToIpfs.d.ts.map +1 -1
  142. package/dist/esm/components/form/Upload/WithUploadToIpfs.js +9 -7
  143. package/dist/esm/components/form/Upload/WithUploadToIpfs.js.map +1 -1
  144. package/dist/esm/components/form/index.d.ts +2 -1
  145. package/dist/esm/components/form/index.d.ts.map +1 -1
  146. package/dist/esm/components/form/index.js +2 -1
  147. package/dist/esm/components/form/index.js.map +1 -1
  148. package/dist/esm/components/form/types.d.ts +17 -4
  149. package/dist/esm/components/form/types.d.ts.map +1 -1
  150. package/dist/esm/components/modal/ModalComponents.d.ts +2 -0
  151. package/dist/esm/components/modal/ModalComponents.d.ts.map +1 -1
  152. package/dist/esm/components/modal/ModalComponents.js +3 -1
  153. package/dist/esm/components/modal/ModalComponents.js.map +1 -1
  154. package/dist/esm/components/modal/ModalContext.d.ts +2 -1
  155. package/dist/esm/components/modal/ModalContext.d.ts.map +1 -1
  156. package/dist/esm/components/modal/ModalContext.js.map +1 -1
  157. package/dist/esm/components/modal/ModalTypes.d.ts +1 -0
  158. package/dist/esm/components/modal/ModalTypes.d.ts.map +1 -1
  159. package/dist/esm/components/modal/ModalTypes.js +2 -1
  160. package/dist/esm/components/modal/ModalTypes.js.map +1 -1
  161. package/dist/esm/components/modal/useModal.d.ts +3 -2
  162. package/dist/esm/components/modal/useModal.d.ts.map +1 -1
  163. package/dist/esm/hooks/images/useFileImage.d.ts +8 -0
  164. package/dist/esm/hooks/images/useFileImage.d.ts.map +1 -0
  165. package/dist/esm/hooks/images/useFileImage.js +13 -0
  166. package/dist/esm/hooks/images/useFileImage.js.map +1 -0
  167. package/dist/esm/hooks/images/useIpfsImage.d.ts +13 -0
  168. package/dist/esm/hooks/images/useIpfsImage.d.ts.map +1 -0
  169. package/dist/esm/hooks/images/useIpfsImage.js +16 -0
  170. package/dist/esm/hooks/images/useIpfsImage.js.map +1 -0
  171. package/dist/esm/index.d.ts +1 -0
  172. package/dist/esm/index.d.ts.map +1 -1
  173. package/dist/esm/index.js +1 -0
  174. package/dist/esm/index.js.map +1 -1
  175. package/dist/esm/lib/base64/base64.d.ts +4 -1
  176. package/dist/esm/lib/base64/base64.d.ts.map +1 -1
  177. package/dist/esm/lib/base64/base64.js +1 -1
  178. package/dist/esm/lib/base64/base64.js.map +1 -1
  179. package/package.json +7 -4
  180. package/src/components/error/SimpleError.tsx +19 -10
  181. package/src/components/form/BaseInput.tsx +1 -1
  182. package/src/components/form/BaseTagsInput.tsx +1 -2
  183. package/src/components/form/BaseTextArea.tsx +1 -2
  184. package/src/components/form/Checkbox.tsx +1 -2
  185. package/src/components/form/CountrySelect.tsx +96 -43
  186. package/src/components/form/Datepicker.tsx +1 -2
  187. package/src/components/form/Field.styles.ts +1 -1
  188. package/src/components/form/FormField.tsx +6 -4
  189. package/src/components/form/InputColor.tsx +1 -2
  190. package/src/components/form/Phone.tsx +1 -2
  191. package/src/components/form/Select.tsx +1 -2
  192. package/src/components/form/Upload/ImageEditorModal/ImageEditor.tsx +74 -0
  193. package/src/components/form/Upload/ImageEditorModal/ImageEditorModal.tsx +77 -0
  194. package/src/components/form/Upload/Upload.tsx +136 -40
  195. package/src/components/form/Upload/WithUploadToIpfs.tsx +13 -11
  196. package/src/components/form/index.ts +2 -1
  197. package/src/components/form/types.ts +18 -3
  198. package/src/components/modal/ModalComponents.tsx +3 -1
  199. package/src/components/modal/ModalContext.tsx +4 -3
  200. package/src/components/modal/ModalTypes.ts +2 -1
  201. package/src/hooks/images/useFileImage.ts +24 -0
  202. package/src/hooks/images/useIpfsImage.ts +27 -0
  203. package/src/index.tsx +1 -0
  204. package/src/lib/base64/base64.ts +1 -1
  205. package/src/stories/buttons/Upload.stories.tsx +82 -0
  206. package/src/stories/selects/CountrySelect.stories.tsx +118 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIpfsImage.js","sourceRoot":"","sources":["../../../../src/hooks/images/useIpfsImage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAM3D,MAAM,UAAU,YAAY,CAC1B,EAAE,GAAG,EAAqB,EAC1B,OAA6B;IAE7B,OAAO,QAAQ,CACb,CAAC,cAAc,EAAE,GAAG,CAAC,EACrB,KAAK,IAAI,EAAE;QACT,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO;YACL,GAAG,MAAM;YACT,GAAG,QAAQ;SACZ,CAAC;IACJ,CAAC,EACD;QACE,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CACF,CAAC;AACJ,CAAC"}
@@ -81,4 +81,5 @@ export * from "./components/error/ErrorMessage";
81
81
  export * from "./components/error/SimpleError";
82
82
  export * from "./components/step/MultiSteps";
83
83
  export * from "./components/ipfs/IpfsProvider";
84
+ export * from "./types/helpers";
84
85
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -81,4 +81,5 @@ export * from "./components/error/ErrorMessage";
81
81
  export * from "./components/error/SimpleError";
82
82
  export * from "./components/step/MultiSteps";
83
83
  export * from "./components/ipfs/IpfsProvider";
84
+ export * from "./types/helpers";
84
85
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import { IpfsMetadataStorage } from "@bosonprotocol/ipfs-storage";
3
- export declare function fetchImageAsBase64(imageUrl: string): Promise<string>;
3
+ export declare function fetchImageAsBase64(imageUrl: string): Promise<{
4
+ base64: string;
5
+ blob: Blob;
6
+ }>;
4
7
  export declare function fromBase64ToBinary(base64: string): Buffer;
5
8
  export declare function blobToBase64(blob: Blob): Promise<string>;
6
9
  export declare const loadAndSetMedia: (fileOrBlob: File | Blob, callback: (base64Uri: string) => void, errorCallback?: ((...errorArgs: unknown[]) => void) | undefined) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../../../src/lib/base64/base64.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,mBAIxD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAI9D;AAED,eAAO,MAAM,eAAe,eACd,IAAI,GAAG,IAAI,wBACD,MAAM,KAAK,IAAI,kCACN,OAAO,EAAE,KAAK,IAAI,sBAWlD,CAAC;AAEF,eAAO,MAAM,sBAAsB,UAAW,IAAI,oBAMjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,cACpB,MAAM,EAAE,uBACE,mBAAmB,KACvC,QAAQ,MAAM,EAAE,CAgBlB,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,QAsB5C"}
1
+ {"version":3,"file":"base64.d.ts","sourceRoot":"","sources":["../../../../src/lib/base64/base64.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,MAAM;;;GAIxD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAI9D;AAED,eAAO,MAAM,eAAe,eACd,IAAI,GAAG,IAAI,wBACD,MAAM,KAAK,IAAI,kCACN,OAAO,EAAE,KAAK,IAAI,sBAWlD,CAAC;AAEF,eAAO,MAAM,sBAAsB,UAAW,IAAI,oBAMjD,CAAC;AAEF,eAAO,MAAM,oBAAoB,cACpB,MAAM,EAAE,uBACE,mBAAmB,KACvC,QAAQ,MAAM,EAAE,CAgBlB,CAAC;AAEF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,QAsB5C"}
@@ -1,7 +1,7 @@
1
1
  export async function fetchImageAsBase64(imageUrl) {
2
2
  const response = await fetch(imageUrl);
3
3
  const blob = await response.blob();
4
- return blobToBase64(blob);
4
+ return { base64: await blobToBase64(blob), blob };
5
5
  }
6
6
  export function fromBase64ToBinary(base64) {
7
7
  return Buffer.from(base64.replace(/data:image\/.*;base64,/, ""), "base64");
@@ -1 +1 @@
1
- {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../../src/lib/base64/base64.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base64.js","sourceRoot":"","sources":["../../../../src/lib/base64/base64.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bosonprotocol/react-kit",
3
3
  "description": "React toolkit with smart components and hooks for building on top of the Boson Protocol.",
4
- "version": "0.32.0-alpha.9",
4
+ "version": "0.33.0-alpha.0",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
7
7
  "types": "./dist/cjs/index.d.ts",
@@ -15,8 +15,8 @@
15
15
  "license": "Apache-2.0",
16
16
  "dependencies": {
17
17
  "@bosonprotocol/chat-sdk": "^1.3.1-alpha.9",
18
- "@bosonprotocol/core-sdk": "^1.40.4-alpha.7",
19
- "@bosonprotocol/ethers-sdk": "^1.14.4-alpha.7",
18
+ "@bosonprotocol/core-sdk": "^1.40.4",
19
+ "@bosonprotocol/ethers-sdk": "^1.14.4",
20
20
  "@bosonprotocol/ipfs-storage": "^1.11.3",
21
21
  "@davatar/react": "1.11.1",
22
22
  "@ethersproject/units": "5.6.0",
@@ -54,7 +54,9 @@
54
54
  "multihashes": "^4.0.3",
55
55
  "phosphor-react": "^1.4.1",
56
56
  "polished": "^4.2.2",
57
+ "react-avatar-editor": "^13.0.2",
57
58
  "react-chartjs-2": "^5.2.0",
59
+ "react-dropzone": "^14.2.3",
58
60
  "react-error-boundary": "^4.0.13",
59
61
  "react-hot-toast": "2.4.0",
60
62
  "react-markdown": "8.0.6",
@@ -155,6 +157,7 @@
155
157
  "@types/lodash.uniqby": "^4.7.7",
156
158
  "@types/node": "^16.11.25",
157
159
  "@types/react": "^18.0.3",
160
+ "@types/react-avatar-editor": "^13.0.2",
158
161
  "@types/react-slick": "^0.23.13",
159
162
  "@types/react-table": "^7.7.14",
160
163
  "@types/storybook__react": "^5.2.1",
@@ -185,5 +188,5 @@
185
188
  "overrides": {
186
189
  "typescript": "^5.1.6"
187
190
  },
188
- "gitHead": "bbc2d285de7252d51efa9007980be0ba83e8fd5e"
191
+ "gitHead": "5bb2c1b3cd162e43194e001ae46b41688c0a285a"
189
192
  }
@@ -1,33 +1,42 @@
1
1
  import { Warning } from "phosphor-react";
2
2
  import React, { ReactNode } from "react";
3
- import styled from "styled-components";
3
+ import styled, { CSSProperties } from "styled-components";
4
4
 
5
5
  import { theme } from "../../theme";
6
- import { Grid } from "../ui/Grid";
6
+ import { Grid, GridProps } from "../ui/Grid";
7
7
  import { Typography } from "../ui/Typography";
8
8
  const colors = theme.colors.light;
9
9
 
10
- const StyledGrid = styled(Grid)`
11
- background-color: ${colors.lightGrey};
10
+ const StyledGrid = styled(Grid)<{
11
+ $background: CSSProperties["backgroundColor"];
12
+ }>`
13
+ background-color: ${({ $background }) => $background};
12
14
  `;
13
15
 
14
- interface Props {
16
+ export type SimpleProps = GridProps & {
15
17
  errorMessage?: string;
16
18
  children?: ReactNode;
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
- [x: string]: any;
19
- }
19
+ backgroundColor?: CSSProperties["backgroundColor"];
20
+ warningColor?: CSSProperties["backgroundColor"];
21
+ };
20
22
 
21
- export function SimpleError({ errorMessage, children, ...rest }: Props) {
23
+ export function SimpleError({
24
+ errorMessage,
25
+ children,
26
+ backgroundColor = colors.lightGrey,
27
+ warningColor = colors.darkOrange,
28
+ ...rest
29
+ }: SimpleProps) {
22
30
  return (
23
31
  <StyledGrid
24
32
  justifyContent="flex-start"
25
33
  gap="0.5rem"
26
34
  margin="1.5rem 0 0 0"
27
35
  padding="1.5rem"
36
+ $background={backgroundColor}
28
37
  {...rest}
29
38
  >
30
- <Warning color={colors.darkOrange} size={16} />
39
+ <Warning color={warningColor} size={16} />
31
40
  {children ? (
32
41
  children
33
42
  ) : (
@@ -32,7 +32,7 @@ export const BaseInput = forwardRef<HTMLInputElement, BaseInputProps>(
32
32
  const errorText = meta.error || status?.[name];
33
33
  const errorMessage = errorText && meta.touched ? errorText : "";
34
34
  const displayError =
35
- typeof errorMessage === typeof "string" && errorMessage !== "";
35
+ typeof errorMessage === "string" && errorMessage !== "";
36
36
  const InputComponent = useMemo(() => {
37
37
  const displayClearButton = isClearable && !props.disabled;
38
38
  const inputProps = {
@@ -35,8 +35,7 @@ export const BaseTagsInput = ({
35
35
  const tags = field.value || [];
36
36
 
37
37
  const errorMessage = meta.error && meta.touched ? meta.error : "";
38
- const displayError =
39
- typeof errorMessage === typeof "string" && errorMessage !== "";
38
+ const displayError = typeof errorMessage === "string" && errorMessage !== "";
40
39
 
41
40
  const handleBlur = () => {
42
41
  if (!meta.touched) {
@@ -8,8 +8,7 @@ export type BaseTextAreaProps = TextareaProps;
8
8
  export function BaseTextArea({ name, theme, ...props }: TextareaProps) {
9
9
  const [field, meta] = useField(name);
10
10
  const errorMessage = meta.error && meta.touched ? meta.error : "";
11
- const displayError =
12
- typeof errorMessage === typeof "string" && errorMessage !== "";
11
+ const displayError = typeof errorMessage === "string" && errorMessage !== "";
13
12
  return (
14
13
  <>
15
14
  <FieldTextArea
@@ -10,8 +10,7 @@ export default function Checkbox({ name, text, ...props }: CheckboxProps) {
10
10
  const [field, meta, helpers] = useField(name);
11
11
  const ref = useRef(field.value);
12
12
  const errorMessage = meta.error && meta.touched ? meta.error : "";
13
- const displayError =
14
- typeof errorMessage === typeof "string" && errorMessage !== "";
13
+ const displayError = typeof errorMessage === "string" && errorMessage !== "";
15
14
  const checkboxId = `checkbox-${name}`;
16
15
 
17
16
  useEffect(() => {
@@ -4,15 +4,16 @@ import { GlobeHemisphereWest } from "phosphor-react";
4
4
  import React, { forwardRef, useState, useEffect } from "react";
5
5
  import type { Country as CountryCode } from "react-phone-number-input";
6
6
  import PhoneInput from "react-phone-number-input";
7
- import Select, { components } from "react-select";
8
- import styled from "styled-components";
7
+ import Select, { GroupBase, StylesConfig, components } from "react-select";
8
+ import styled, { CSSProperties } from "styled-components";
9
9
  import { zIndex } from "../ui/zIndex";
10
10
  import Error from "./Error";
11
11
  import type { InputProps } from "./types";
12
12
  import { SelectDataProps } from "./types";
13
- import { theme } from "../../theme";
13
+ import { theme as importedTheme } from "../../theme";
14
+ export type { Country as CountryCode } from "react-phone-number-input";
14
15
 
15
- const colors = theme.colors.light;
16
+ const colors = importedTheme.colors.light;
16
17
  const customStyles = {
17
18
  control: (provided: any, state: any) => {
18
19
  const before = state.selectProps.label
@@ -24,45 +25,61 @@ const customStyles = {
24
25
  }
25
26
  }
26
27
  : null;
28
+ const { theme } = state;
27
29
  return {
28
30
  ...provided,
29
- borderRadius: 0,
30
- padding: "0.4rem 0.25rem",
31
+ borderRadius: theme.borderRadius,
32
+ height: theme.controlHeight,
33
+ alignContent: "center",
34
+ padding: "0.4rem 1rem",
31
35
  boxShadow: "none",
32
36
  ":hover": {
33
- borderColor: colors.secondary,
37
+ borderColor: theme.colors.controlHoverBorderColor,
34
38
  borderWidth: "1px"
35
39
  },
36
- background: colors.lightGrey,
40
+ background: theme.colors.controlBackground,
37
41
  border: state.isFocused
38
- ? `1px solid ${colors.secondary}`
39
- : `1px solid ${colors.border}`,
42
+ ? `1px solid ${theme.colors.controlFocusBorderColor}`
43
+ : `1px solid ${theme.colors.controlUnfocusedBorderColor}`,
40
44
  ...before
41
45
  };
42
46
  },
43
- container: (provided: any, state: any) => ({
44
- ...provided,
45
- zIndex: state.isFocused ? zIndex.Select + 1 : zIndex.Select,
46
- position: "relative",
47
- width: "100%"
48
- }),
49
- option: (provided: any, state: any) => ({
47
+ container: (provided: any, state: any) => {
48
+ return {
49
+ ...provided,
50
+ zIndex: state.isFocused ? zIndex.Select + 1 : zIndex.Select,
51
+ position: "relative",
52
+ width: "100%"
53
+ };
54
+ },
55
+ option: (provided: any, state: any) => {
56
+ const { theme } = state;
57
+ return {
58
+ ...provided,
59
+ cursor: state.isDisabled ? "not-allowed" : "pointer",
60
+ opacity: state.isDisabled ? "0.5" : "1",
61
+ background:
62
+ state.isOptionSelected || state.isSelected || state.isFocused
63
+ ? theme.colors.selectedOptionBackground
64
+ : theme.colors.unselectedOptionBackground,
65
+ color:
66
+ state.isOptionSelected || state.isSelected
67
+ ? theme.colors.selectedOptionColor
68
+ : theme.colors.unselectedOptionColor
69
+ };
70
+ },
71
+ menu: (provided) => ({
50
72
  ...provided,
51
- cursor: state.isDisabled ? "not-allowed" : "pointer",
52
- opacity: state.isDisabled ? "0.5" : "1",
53
- background:
54
- state.isOptionSelected || state.isSelected || state.isFocused
55
- ? colors.lightGrey
56
- : colors.white,
57
- color:
58
- state.isOptionSelected || state.isSelected
59
- ? colors.secondary
60
- : colors.black
73
+ overflow: "hidden"
61
74
  }),
62
75
  indicatorSeparator: () => ({
63
76
  display: "none"
64
77
  })
65
- };
78
+ } satisfies StylesConfig<
79
+ SelectDataProps<string>,
80
+ false,
81
+ GroupBase<SelectDataProps<string>>
82
+ >;
66
83
 
67
84
  const ControlGrid = styled.div`
68
85
  display: flex;
@@ -92,13 +109,10 @@ const OptionGrid = styled.div`
92
109
 
93
110
  const PhoneWrapper = styled.div`
94
111
  width: 100%;
95
- padding-bottom: 0.5rem;
96
112
  input {
97
113
  width: 100%;
98
114
  padding: 1rem;
99
115
  gap: 0.5rem;
100
- background: ${colors.lightGrey};
101
- border: 1px solid ${colors.border};
102
116
  border-radius: 0;
103
117
  outline: none;
104
118
  font-family: "Plus Jakarta Sans";
@@ -106,18 +120,34 @@ const PhoneWrapper = styled.div`
106
120
  }
107
121
  `;
108
122
 
109
- type Props = InputProps & {
123
+ export type CountrySelectProps = InputProps & {
110
124
  countries?: CountryCode[];
125
+ theme?: Partial<{
126
+ controlHeight: CSSProperties["height"];
127
+ borderRadius: CSSProperties["borderRadius"];
128
+ controlHoverBorderColor: CSSProperties["borderColor"];
129
+ controlBackground: CSSProperties["background"];
130
+ controlFocusBorderColor: CSSProperties["borderColor"];
131
+ controlUnfocusedBorderColor: CSSProperties["borderColor"];
132
+ selectedOptionBackground: CSSProperties["background"];
133
+ unselectedOptionBackground: CSSProperties["background"];
134
+ selectedOptionColor: CSSProperties["color"];
135
+ unselectedOptionColor: CSSProperties["color"];
136
+ }>;
111
137
  };
112
138
 
113
- export function CountrySelect({ name, countries, ...props }: Props) {
139
+ export function CountrySelect({
140
+ name,
141
+ countries,
142
+ theme: selectTheme,
143
+ ...rest
144
+ }: CountrySelectProps) {
114
145
  const { status } = useFormikContext();
115
146
  const [initialized, setInitialized] = useState<boolean>(false);
116
147
  const [field, meta, helpers] = useField(name);
117
148
  const errorText = meta.error || status?.[name];
118
149
  const errorMessage = errorText && meta.touched ? errorText : "";
119
- const displayError =
120
- typeof errorMessage === typeof "string" && errorMessage !== "";
150
+ const displayError = typeof errorMessage === "string" && errorMessage !== "";
121
151
  const [phone, setPhone] = useState<string | undefined>(undefined);
122
152
  const [countryCode, setCountryCode] = useState<CountryCode | undefined>();
123
153
 
@@ -131,10 +161,6 @@ export function CountrySelect({ name, countries, ...props }: Props) {
131
161
  return (
132
162
  <>
133
163
  <PhoneWrapper>
134
- {
135
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment, prettier/prettier
136
- /* @ts-ignore */
137
- }
138
164
  <PhoneInput
139
165
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
140
166
  inputComponent={forwardRef((props, ref) => (
@@ -149,7 +175,37 @@ export function CountrySelect({ name, countries, ...props }: Props) {
149
175
  <>
150
176
  <div>
151
177
  <Select
178
+ {...rest}
152
179
  {...props}
180
+ isDisabled={rest.disabled}
181
+ theme={(theme) => ({
182
+ ...theme,
183
+ controlHeight: selectTheme?.controlHeight,
184
+ borderRadius: selectTheme?.borderRadius || 0,
185
+ colors: {
186
+ ...theme.colors,
187
+ controlHoverBorderColor:
188
+ selectTheme?.controlHoverBorderColor ||
189
+ colors.secondary,
190
+ controlBackground:
191
+ selectTheme?.controlBackground || colors.lightGrey,
192
+ controlFocusBorderColor:
193
+ selectTheme?.controlFocusBorderColor ||
194
+ colors.secondary,
195
+ controlUnfocusedBorderColor:
196
+ selectTheme?.controlUnfocusedBorderColor ||
197
+ colors.border,
198
+ selectedOptionBackground:
199
+ selectTheme?.selectedOptionBackground ||
200
+ colors.lightGrey,
201
+ unselectedOptionBackground:
202
+ selectTheme?.unselectedOptionBackground || colors.white,
203
+ selectedOptionColor:
204
+ selectTheme?.selectedOptionColor || colors.secondary,
205
+ unselectedOptionColor:
206
+ selectTheme?.unselectedOptionColor || colors.black
207
+ }
208
+ })}
153
209
  styles={customStyles}
154
210
  name="countrySelect"
155
211
  value={(props?.options || []).find(
@@ -201,10 +257,7 @@ export function CountrySelect({ name, countries, ...props }: Props) {
201
257
  )}
202
258
  />
203
259
  </PhoneWrapper>
204
- <Error
205
- display={!props.hideError && displayError}
206
- message={errorMessage}
207
- />
260
+ <Error display={!rest.hideError && displayError} message={errorMessage} />
208
261
  </>
209
262
  );
210
263
  }
@@ -15,8 +15,7 @@ export default function DatepickerComponent({
15
15
  const [field, meta, helpers] = useField(name);
16
16
 
17
17
  const errorMessage = meta.error && meta.touched ? meta.error : "";
18
- const displayError =
19
- typeof errorMessage === typeof "string" && errorMessage !== "";
18
+ const displayError = typeof errorMessage === "string" && errorMessage !== "";
20
19
 
21
20
  const handleChange = (date: Dayjs | Array<Dayjs | null>) => {
22
21
  if (!meta.touched) {
@@ -115,7 +115,7 @@ export const FieldInput = styled.input<{
115
115
  `};
116
116
  `;
117
117
 
118
- export const FileUploadWrapper = styled.div<{ choosen: any; error: any }>`
118
+ export const FileUploadWrapper = styled.div<{ error: any }>`
119
119
  position: relative;
120
120
  overflow: hidden;
121
121
  display: flex;
@@ -13,15 +13,16 @@ import type { FormFieldProps } from "./types";
13
13
 
14
14
  const colors = theme.colors.light;
15
15
 
16
- export default function FormField({
16
+ export function FormField({
17
17
  title,
18
+ titleIcon,
18
19
  subTitle = false,
19
20
  required = false,
20
21
  tooltip,
21
22
  children,
22
23
  style = {},
23
- theme = "",
24
- valueToCopy
24
+ valueToCopy,
25
+ copyIconColor = colors.secondary
25
26
  }: FormFieldProps) {
26
27
  return (
27
28
  <FormFieldWrapper
@@ -59,10 +60,11 @@ export default function FormField({
59
60
  }
60
61
  }}
61
62
  >
62
- <Copy size={24} color={colors.secondary} weight="light" />
63
+ <Copy size={24} color={copyIconColor} weight="light" />
63
64
  </CopyButton>
64
65
  )}
65
66
  </Typography>
67
+ {titleIcon}
66
68
  {tooltip && <Tooltip content={tooltip} size={16} />}
67
69
  </Grid>
68
70
  {subTitle && (
@@ -39,8 +39,7 @@ const ColorPicker = styled(Input).attrs({
39
39
  export default function InputColor({ name, ...props }: InputColorProps) {
40
40
  const [field, meta] = useField<string>(name);
41
41
  const errorMessage = meta.error && meta.touched ? meta.error : "";
42
- const displayError =
43
- typeof errorMessage === typeof "string" && errorMessage !== "";
42
+ const displayError = typeof errorMessage === "string" && errorMessage !== "";
44
43
 
45
44
  return (
46
45
  <>
@@ -138,8 +138,7 @@ export default function Phone({ name, ...props }: InputProps) {
138
138
  const [field, meta, helpers] = useField(name);
139
139
  const errorText = meta.error || status?.[name];
140
140
  const errorMessage = errorText && meta.touched ? errorText : "";
141
- const displayError =
142
- typeof errorMessage === typeof "string" && errorMessage !== "";
141
+ const displayError = typeof errorMessage === "string" && errorMessage !== "";
143
142
 
144
143
  const handlePhoneChange = useCallback(
145
144
  (value: string) => {
@@ -91,8 +91,7 @@ export default function SelectComponent({
91
91
  : "";
92
92
 
93
93
  const displayError =
94
- typeof displayErrorMessage === typeof "string" &&
95
- displayErrorMessage !== "";
94
+ typeof displayErrorMessage === "string" && displayErrorMessage !== "";
96
95
 
97
96
  const handleChange = (option: SelectDataProps<string>) => {
98
97
  if (!meta.touched) {
@@ -0,0 +1,74 @@
1
+ import React, { ChangeEvent, forwardRef, useState } from "react";
2
+ import AvatarEditor, { AvatarEditorProps } from "react-avatar-editor";
3
+ import Dropzone from "react-dropzone";
4
+ import styled from "styled-components";
5
+ import { Grid } from "../../../ui/Grid";
6
+ import { useIpfsImage } from "../../../../hooks/images/useIpfsImage";
7
+
8
+ const StyledCanvasWrapper = styled.div`
9
+ display: flex;
10
+ justify-content: center;
11
+ > :first-child {
12
+ max-width: 100%;
13
+ object-fit: contain;
14
+ width: auto !important;
15
+ height: auto !important;
16
+ }
17
+ `;
18
+
19
+ export type ImageEditorProps = Pick<
20
+ AvatarEditorProps,
21
+ "borderRadius" | "width" | "height"
22
+ > & {
23
+ url?: string;
24
+ };
25
+
26
+ export const ImageEditor = forwardRef<AvatarEditor, ImageEditorProps>(
27
+ ({ url, borderRadius, width, height }, editorRef) => {
28
+ const [scale, setScale] = useState<number>();
29
+ const handleScale = (e: ChangeEvent<HTMLInputElement>) => {
30
+ const scale = parseFloat(e.target.value);
31
+ setScale(scale);
32
+ };
33
+ const { data } = useIpfsImage({ url: url ?? "" }, { enabled: !!url });
34
+ const image = data?.base64;
35
+ const { width: imageWidth, height: imageHeight } = data || {};
36
+ const w = borderRadius ? width : width || imageWidth;
37
+ const h = borderRadius ? height : height || imageHeight;
38
+ return (
39
+ <>
40
+ {image && (
41
+ <div style={{ margin: "2rem 0", maxWidth: "100%" }}>
42
+ <Dropzone noClick noKeyboard>
43
+ {({ getRootProps, getInputProps }) => (
44
+ <StyledCanvasWrapper {...getRootProps()}>
45
+ <AvatarEditor
46
+ image={image}
47
+ ref={editorRef}
48
+ width={w}
49
+ height={h}
50
+ scale={scale}
51
+ borderRadius={borderRadius}
52
+ />
53
+ <input {...getInputProps()} />
54
+ </StyledCanvasWrapper>
55
+ )}
56
+ </Dropzone>
57
+ <Grid alignItems="center" justifyContent="center">
58
+ Zoom:
59
+ <input
60
+ name="scale"
61
+ type="range"
62
+ onChange={handleScale}
63
+ min={"0.1"}
64
+ max="2"
65
+ step="0.01"
66
+ defaultValue="1"
67
+ />
68
+ </Grid>
69
+ </div>
70
+ )}
71
+ </>
72
+ );
73
+ }
74
+ );