@openlettermarketing/olc-react-sdk 2.1.4 → 2.1.5-beta.2

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 (230) hide show
  1. package/.eslintignore +1 -0
  2. package/.eslintrc.cjs +18 -0
  3. package/.eslintrc.yml +47 -0
  4. package/.github/workflows/publish-beta.yml +154 -0
  5. package/.github/workflows/publish-production.yml +143 -0
  6. package/.prettierignore +3 -0
  7. package/.prettierrc.yml +5 -0
  8. package/CHANGELOG.md +4 -0
  9. package/babel.config.json +10 -0
  10. package/build/index.js +82 -82
  11. package/build/index.js.map +1 -1
  12. package/build/types/version.d.ts +1 -1
  13. package/examples/.eslintrc.yml +4 -0
  14. package/index.html +18 -0
  15. package/package.json +1 -1
  16. package/public/vite.svg +1 -0
  17. package/src/App.tsx +209 -0
  18. package/src/assets/Fonts/Lexi-Regular.ttf +0 -0
  19. package/src/assets/images/create-template/prebuilt.svg +13 -0
  20. package/src/assets/images/create-template/scratch.svg +4 -0
  21. package/src/assets/images/input/cancel.tsx +20 -0
  22. package/src/assets/images/input/search.tsx +20 -0
  23. package/src/assets/images/input/select-cancel.tsx +17 -0
  24. package/src/assets/images/modal-icons/add.tsx +36 -0
  25. package/src/assets/images/modal-icons/cancel-file.tsx +12 -0
  26. package/src/assets/images/modal-icons/cancel-input.tsx +13 -0
  27. package/src/assets/images/modal-icons/cancel.tsx +35 -0
  28. package/src/assets/images/modal-icons/close-new.svg +3 -0
  29. package/src/assets/images/modal-icons/confirm-close-icon.tsx +14 -0
  30. package/src/assets/images/modal-icons/confirm-new.tsx +22 -0
  31. package/src/assets/images/modal-icons/confirm.svg +12 -0
  32. package/src/assets/images/modal-icons/cross.tsx +23 -0
  33. package/src/assets/images/modal-icons/del.tsx +19 -0
  34. package/src/assets/images/modal-icons/design-icon.tsx +22 -0
  35. package/src/assets/images/modal-icons/doc.tsx +43 -0
  36. package/src/assets/images/modal-icons/docx.tsx +43 -0
  37. package/src/assets/images/modal-icons/envelope-icon.tsx +26 -0
  38. package/src/assets/images/modal-icons/info.tsx +19 -0
  39. package/src/assets/images/modal-icons/jpeg.tsx +43 -0
  40. package/src/assets/images/modal-icons/jpg.tsx +43 -0
  41. package/src/assets/images/modal-icons/modal-cros.svg +4 -0
  42. package/src/assets/images/modal-icons/modal-cross.tsx +37 -0
  43. package/src/assets/images/modal-icons/new-cancel.tsx +11 -0
  44. package/src/assets/images/modal-icons/order-download.tsx +42 -0
  45. package/src/assets/images/modal-icons/pdf.tsx +51 -0
  46. package/src/assets/images/modal-icons/png.tsx +43 -0
  47. package/src/assets/images/modal-icons/save.tsx +23 -0
  48. package/src/assets/images/modal-icons/template-copy.tsx +25 -0
  49. package/src/assets/images/modal-icons/tool-cancel.tsx +25 -0
  50. package/src/assets/images/products/bi-new.svg +23 -0
  51. package/src/assets/images/products/left-arrow.svg +17 -0
  52. package/src/assets/images/products/personal-new.tsx +31 -0
  53. package/src/assets/images/products/postcard-new.tsx +27 -0
  54. package/src/assets/images/products/professional-new.tsx +24 -0
  55. package/src/assets/images/products/real-new.tsx +30 -0
  56. package/src/assets/images/products/right-arrow.svg +17 -0
  57. package/src/assets/images/products/snap-new.svg +31 -0
  58. package/src/assets/images/templates/actions.svg +3 -0
  59. package/src/assets/images/templates/address-block-icon.tsx +62 -0
  60. package/src/assets/images/templates/archive.svg +3 -0
  61. package/src/assets/images/templates/arrow-down.tsx +27 -0
  62. package/src/assets/images/templates/back-arrow.tsx +19 -0
  63. package/src/assets/images/templates/bi-fold-self-mailers.tsx +28 -0
  64. package/src/assets/images/templates/check.svg +3 -0
  65. package/src/assets/images/templates/code.svg +10 -0
  66. package/src/assets/images/templates/content-copy-icon.tsx +24 -0
  67. package/src/assets/images/templates/custom-add-on-icon.tsx +18 -0
  68. package/src/assets/images/templates/custom-qr-section-icon.tsx +9 -0
  69. package/src/assets/images/templates/custom-template.tsx +23 -0
  70. package/src/assets/images/templates/designer.tsx +43 -0
  71. package/src/assets/images/templates/dot.tsx +22 -0
  72. package/src/assets/images/templates/download-v2.svg +4 -0
  73. package/src/assets/images/templates/download.svg +4 -0
  74. package/src/assets/images/templates/dummy-template.tsx +76 -0
  75. package/src/assets/images/templates/dynamic-field.tsx +119 -0
  76. package/src/assets/images/templates/edit-pencil-icon.tsx +21 -0
  77. package/src/assets/images/templates/edit.svg +3 -0
  78. package/src/assets/images/templates/epo-icon.tsx +16 -0
  79. package/src/assets/images/templates/field.tsx +29 -0
  80. package/src/assets/images/templates/gsv-icon.tsx +31 -0
  81. package/src/assets/images/templates/info-icon.tsx +37 -0
  82. package/src/assets/images/templates/left-arrow.svg +17 -0
  83. package/src/assets/images/templates/pencil.svg +3 -0
  84. package/src/assets/images/templates/personal-letter.tsx +53 -0
  85. package/src/assets/images/templates/postcard.tsx +32 -0
  86. package/src/assets/images/templates/professional-letter.tsx +53 -0
  87. package/src/assets/images/templates/qr-code.tsx +13 -0
  88. package/src/assets/images/templates/real-penned-letters.tsx +57 -0
  89. package/src/assets/images/templates/right-arrow.svg +17 -0
  90. package/src/assets/images/templates/size-image-lg.tsx +20 -0
  91. package/src/assets/images/templates/size-image-mid.tsx +20 -0
  92. package/src/assets/images/templates/size-image-xl.tsx +20 -0
  93. package/src/assets/images/templates/size-image.tsx +20 -0
  94. package/src/assets/images/templates/snap-pack.tsx +67 -0
  95. package/src/assets/images/templates/template-default-design.tsx +21 -0
  96. package/src/assets/images/templates/trash-upload.svg +3 -0
  97. package/src/assets/images/templates/trash.svg +3 -0
  98. package/src/assets/images/templates/tri-fold-self-mailers.tsx +93 -0
  99. package/src/assets/images/templates/upload-image.svg +10 -0
  100. package/src/assets/images/templates/x.svg +3 -0
  101. package/src/assets/images/thumbnails/one.svg +9 -0
  102. package/src/assets/images/tooltip/tool-arrow.tsx +25 -0
  103. package/src/components/CreateTemplate/V2/index.tsx +525 -0
  104. package/src/components/CreateTemplate/V2/styles.scss +372 -0
  105. package/src/components/CreateTemplate/index.tsx +508 -0
  106. package/src/components/CreateTemplate/styles.scss +404 -0
  107. package/src/components/GenericUIBlocks/Button/index.tsx +54 -0
  108. package/src/components/GenericUIBlocks/Button/styles.scss +43 -0
  109. package/src/components/GenericUIBlocks/CircularProgress/index.tsx +18 -0
  110. package/src/components/GenericUIBlocks/CircularProgress/styles.scss +93 -0
  111. package/src/components/GenericUIBlocks/CustomTooltip/index.tsx +88 -0
  112. package/src/components/GenericUIBlocks/CustomTooltip/styles.scss +19 -0
  113. package/src/components/GenericUIBlocks/Dialog/V2/index.tsx +227 -0
  114. package/src/components/GenericUIBlocks/Dialog/V2/styles.scss +289 -0
  115. package/src/components/GenericUIBlocks/Dialog/index.tsx +185 -0
  116. package/src/components/GenericUIBlocks/Dialog/styles.scss +227 -0
  117. package/src/components/GenericUIBlocks/Divider/index.tsx +12 -0
  118. package/src/components/GenericUIBlocks/Divider/styles.scss +7 -0
  119. package/src/components/GenericUIBlocks/GeneralSelect/index.tsx +114 -0
  120. package/src/components/GenericUIBlocks/GeneralSelect/styles.scss +406 -0
  121. package/src/components/GenericUIBlocks/GeneralTooltip/index.tsx +25 -0
  122. package/src/components/GenericUIBlocks/GeneralTooltip/styles.scss +20 -0
  123. package/src/components/GenericUIBlocks/GenericSnackbar/Toast/index.tsx +91 -0
  124. package/src/components/GenericUIBlocks/GenericSnackbar/Toast/styles.scss +92 -0
  125. package/src/components/GenericUIBlocks/Grid/index.tsx +82 -0
  126. package/src/components/GenericUIBlocks/Input/index.tsx +269 -0
  127. package/src/components/GenericUIBlocks/Input/styles.scss +332 -0
  128. package/src/components/GenericUIBlocks/Tabs/index.tsx +71 -0
  129. package/src/components/GenericUIBlocks/Tabs/styles.scss +42 -0
  130. package/src/components/GenericUIBlocks/Typography/index.tsx +18 -0
  131. package/src/components/GenericUIBlocks/Typography/styles.scss +27 -0
  132. package/src/components/SidePanel/CustomAddOns/index.tsx +342 -0
  133. package/src/components/SidePanel/CustomAddOns/styles.scss +86 -0
  134. package/src/components/SidePanel/CustomBlockColors/index.tsx +211 -0
  135. package/src/components/SidePanel/CustomBlockColors/styles.scss +80 -0
  136. package/src/components/SidePanel/CustomFields/customFieldSection.tsx +547 -0
  137. package/src/components/SidePanel/CustomFields/styles.scss +64 -0
  138. package/src/components/SidePanel/CustomQRCode/V2/QRCodeModal/index.tsx +172 -0
  139. package/src/components/SidePanel/CustomQRCode/V2/QRCodeModal/styles.scss +46 -0
  140. package/src/components/SidePanel/CustomQRCode/index.tsx +1070 -0
  141. package/src/components/SidePanel/CustomQRCode/styles.scss +149 -0
  142. package/src/components/SidePanel/CustomUploads/V2/index.tsx +542 -0
  143. package/src/components/SidePanel/CustomUploads/V2/styles.scss +267 -0
  144. package/src/components/SidePanel/CustomUploads/index.tsx +301 -0
  145. package/src/components/SidePanel/Templates/ModalGallery/HireDesigner/index.tsx +424 -0
  146. package/src/components/SidePanel/Templates/ModalGallery/HireDesigner/styles.scss +180 -0
  147. package/src/components/SidePanel/Templates/ModalGallery/V2/index.tsx +235 -0
  148. package/src/components/SidePanel/Templates/ModalGallery/V2/styles.scss +244 -0
  149. package/src/components/SidePanel/Templates/ModalGallery/index.tsx +231 -0
  150. package/src/components/SidePanel/Templates/SideBarGallery/index.tsx +233 -0
  151. package/src/components/SidePanel/Templates/SideBarGallery/styles.scss +152 -0
  152. package/src/components/SidePanel/Templates/TemplatesCard/V2/index.tsx +149 -0
  153. package/src/components/SidePanel/Templates/TemplatesCard/V2/styles.scss +156 -0
  154. package/src/components/SidePanel/Templates/TemplatesCard/index.tsx +160 -0
  155. package/src/components/SidePanel/Templates/TemplatesCard/styles.scss +98 -0
  156. package/src/components/SidePanel/Templates/customTemplateSection.tsx +793 -0
  157. package/src/components/SidePanel/Templates/styles.scss +244 -0
  158. package/src/components/SidePanel/index.tsx +160 -0
  159. package/src/components/TemplateBuilder/index.tsx +585 -0
  160. package/src/components/TemplateBuilder/styles.scss +100 -0
  161. package/src/components/TemplateTypes/index.tsx +96 -0
  162. package/src/components/TemplateTypes/styles.scss +91 -0
  163. package/src/components/TopNavigation/ConfirmNavigateDialog/index.tsx +81 -0
  164. package/src/components/TopNavigation/ConfirmNavigateDialog/styles.scss +123 -0
  165. package/src/components/TopNavigation/DuplicateTemplateModal.tsx +103 -0
  166. package/src/components/TopNavigation/EditTemplateNameModel/index.tsx +71 -0
  167. package/src/components/TopNavigation/EditTemplateNameModel/styles.scss +88 -0
  168. package/src/components/TopNavigation/SaveTemplateModel/index.tsx +201 -0
  169. package/src/components/TopNavigation/SaveTemplateModel/styles.scss +128 -0
  170. package/src/components/TopNavigation/index.tsx +938 -0
  171. package/src/components/TopNavigation/styles.scss +303 -0
  172. package/src/importMeta.d.ts +31 -0
  173. package/src/index.scss +131 -0
  174. package/src/index.tsx +238 -0
  175. package/src/libs/test.ts +7 -0
  176. package/src/redux/actions/action-types.ts +52 -0
  177. package/src/redux/actions/customQRCodeActions.ts +54 -0
  178. package/src/redux/actions/snackbarActions.ts +16 -0
  179. package/src/redux/actions/templateActions.ts +236 -0
  180. package/src/redux/reducers/customFieldReducer.ts +99 -0
  181. package/src/redux/reducers/customQRCodeReducer.ts +58 -0
  182. package/src/redux/reducers/index.ts +15 -0
  183. package/src/redux/reducers/snackbarReducer.ts +40 -0
  184. package/src/redux/reducers/templateReducer.ts +485 -0
  185. package/src/redux/store.ts +18 -0
  186. package/src/styles/colors.scss +61 -0
  187. package/src/test/mocks.js +89 -0
  188. package/src/test/setupJest.js +1 -0
  189. package/src/utils/api.ts +36 -0
  190. package/src/utils/constants.ts +182 -0
  191. package/src/utils/customStyles.ts +45 -0
  192. package/src/utils/fetchWrapper.ts +73 -0
  193. package/src/utils/fonts.json +1597 -0
  194. package/src/utils/helper.ts +205 -0
  195. package/src/utils/local-storage.ts +15 -0
  196. package/src/utils/message.ts +162 -0
  197. package/src/utils/products.ts +186 -0
  198. package/src/utils/template-builder.ts +328 -0
  199. package/src/utils/templateIdentifierArea/biFold.ts +107 -0
  200. package/src/utils/templateIdentifierArea/index.ts +35 -0
  201. package/src/utils/templateIdentifierArea/personal.ts +107 -0
  202. package/src/utils/templateIdentifierArea/postCards.ts +163 -0
  203. package/src/utils/templateIdentifierArea/professional.ts +125 -0
  204. package/src/utils/templateIdentifierArea/snapPack.ts +107 -0
  205. package/src/utils/templateIdentifierArea/triFold.ts +107 -0
  206. package/src/utils/templateRestrictedArea/biFold.ts +329 -0
  207. package/src/utils/templateRestrictedArea/nonWindowProfessional.ts +90 -0
  208. package/src/utils/templateRestrictedArea/personal.ts +90 -0
  209. package/src/utils/templateRestrictedArea/postCard.ts +334 -0
  210. package/src/utils/templateRestrictedArea/postCardJumbo.tsx +408 -0
  211. package/src/utils/templateRestrictedArea/professional.ts +318 -0
  212. package/src/utils/templateRestrictedArea/realPenned.ts +233 -0
  213. package/src/utils/templateRestrictedArea/snapPack.ts +1009 -0
  214. package/src/utils/templateRestrictedArea/triFold.ts +330 -0
  215. package/src/utils/templateSafetyBorders/biFold.ts +91 -0
  216. package/src/utils/templateSafetyBorders/index.ts +43 -0
  217. package/src/utils/templateSafetyBorders/personal.ts +41 -0
  218. package/src/utils/templateSafetyBorders/postCards.ts +259 -0
  219. package/src/utils/templateSafetyBorders/professional.ts +78 -0
  220. package/src/utils/templateSafetyBorders/snapPack.ts +165 -0
  221. package/src/utils/templateSafetyBorders/triFold.ts +114 -0
  222. package/src/utils/templateSafetyBorders/types.d.ts +68 -0
  223. package/src/utils/types.ts +12 -0
  224. package/src/v2Theme.scss +142 -0
  225. package/tsconfig.json +29 -0
  226. package/tsconfig.node.json +12 -0
  227. package/update-version.js +23 -0
  228. package/version.js +1 -0
  229. package/vite.config.ts +8 -0
  230. package/webpack.config.js +80 -0
@@ -0,0 +1,182 @@
1
+ export const PROD_API_BASE_URL = 'https://qrforward.org/api/v1/sdk';
2
+ export const DEMO_API_BASE_URL = 'https://demo.qrforward.org/api/v1/sdk';
3
+ export const STAGE_API_BASE_URL = 'https://staging.qrforward.org/api/v1/sdk';
4
+ export const LOCAL_API_BASE_URL = 'http://localhost:8089/api/v1/sdk';
5
+
6
+ export const LOCAL_S3_URL = 'http://localhost:8089/api/v1/download/s3/sdk-images';
7
+ export const STAGE_S3_URL = `https://staging.qrforward.org/api/v1/download/s3/sdk-images`;
8
+ export const DEMO_S3_URL = `https://demo.qrforward.org/api/v1/download/s3/sdk-images`;
9
+ export const PROD_S3_URL = `https://qrforward.org/api/v1/download/s3/sdk-images`;
10
+
11
+ export const DEMO_PO_GENERATOR_URL = 'https://demo.offer-generator.com/property-offers';
12
+ export const STAGE_PO_GENERATOR_URL = 'https://staging.offer-generator.com/property-offers';
13
+ export const PROD_PO_GENERATOR_URL = 'https://offer-generator.com/property-offers';
14
+
15
+ export const DPI: number = 96;
16
+
17
+ export const BARCODE_IMAGE_URL: string = `/assets/preview/one-barcode.png`;
18
+ export const GOOGLE_STREET_VIEW_IMAGE_URL: string = `/default_images/dummyGSV.png`;
19
+
20
+ export const PRODUCT_LEARN_URL: string = "https://help.openletterconnect.com/draft-help-doc/product-and-order-guide/creating-a-template";
21
+
22
+ export const multiPageLetters: string[] = [
23
+ "Postcards",
24
+ "Tri-Fold Self-Mailers",
25
+ "Bi-Fold Self-Mailers",
26
+ "Snap Pack Mailers",
27
+ ];
28
+
29
+ //@ts-ignore
30
+ export const emojiRegex = /[\u{1F600}-\u{1F64F}]|[\u{1F300}-\u{1F5FF}]|[\u{1F680}-\u{1F6FF}]|[\u{1F700}-\u{1F77F}]|[\u{1F780}-\u{1F7FF}]|[\u{1F800}-\u{1F8FF}]|[\u{1F900}-\u{1F9FF}]|[\u{1FA00}-\u{1FA6F}]|[\u{2600}-\u{26FF}]|[\u{2700}-\u{27BF}]|[\u{2300}-\u{23FF}]|[\u{2B50}\u{2B55}]|[\u{1F004}\u{1F0CF}]/u;
31
+
32
+ export const allowedImageTypes = ['image/jpeg', 'image/png', 'image/svg+xml'];
33
+
34
+ interface TemplateTypes {
35
+ id: string;
36
+ label: string;
37
+ value: string;
38
+ }
39
+
40
+ export const defaultTemplateTypes: TemplateTypes [] = [
41
+ {
42
+ id: "1",
43
+ label: "My Templates",
44
+ value: "my_templates"
45
+ },
46
+ {
47
+ id: "2",
48
+ label: "Team Templates",
49
+ value: "team_templates"
50
+ }
51
+ ];
52
+
53
+ export const sortOrderForTemplates: string[] = [
54
+ "Postcards",
55
+ "Bi-Fold Self-Mailers",
56
+ "Tri-Fold Self-Mailers",
57
+ "Personal Letters",
58
+ "Snap Pack Mailers",
59
+ "Professional Letters",
60
+ "Real Penned Letter",
61
+ ];
62
+
63
+ export const sortOrderForTemplatesV2: string[] = [
64
+ "Postcards",
65
+ "Self Mailer",
66
+ "Personal Letters",
67
+ "Snap Pack Mailers",
68
+ "Professional Letters",
69
+ "Real Penned Letter",
70
+ ];
71
+
72
+ export const EMAIL_REGEX = /^[a-z0-9](\.?[a-z0-9_\-\+])*@[a-z0-9](\.?[a-z0-9-])*\.[a-z]{2,}$/i;
73
+ export const VIDEO_URL_REGEX = /[(http(s)?):\/\/(www\.)?a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/;
74
+
75
+ export const DISALLOWED_DOMAINS = [
76
+ 'qrforward.org',
77
+ 'demo-qrforward.org',
78
+ 'staging-qrforward.org',
79
+ ];
80
+
81
+ export const MERGE_UTM_PARAMS = [
82
+ {
83
+ key: '{{C.FIRST_NAME}}',
84
+ value: 'firstname'
85
+ },
86
+ {
87
+ key: '{{C.LAST_NAME}}',
88
+ value: 'lastname'
89
+ },
90
+ {
91
+ key: '{{C.EMAIL}}',
92
+ value: 'email'
93
+ },
94
+ {
95
+ key: '{{C.PHONE_NUMBER}}',
96
+ value: 'phone'
97
+ }
98
+ ];
99
+
100
+ export const DEFAULT_RESTRICTED_AREA_BG = '#FFFFFF';
101
+
102
+ export const RESTRICTED_AREA_COLOR_PALETTE = [
103
+ // Row 1 (Grays)
104
+ { name: 'White', value: '#FFFFFF' },
105
+ { name: 'Very Light Gray', value: '#EFEFEF' },
106
+ { name: 'Light Gray', value: '#DFDFDF' },
107
+ { name: 'Medium Gray', value: '#CFCFCF' },
108
+ { name: 'Dark Gray', value: '#BFBFBF' },
109
+ { name: 'Darker Gray', value: '#AFAFAF' },
110
+
111
+ // Row 2 (Creams/Beiges)
112
+ { name: 'Light Cream', value: '#FAF7F0' },
113
+ { name: 'Cream', value: '#F4EFE1' },
114
+ { name: 'Light Beige', value: '#EEE6D2' },
115
+ { name: 'Beige', value: '#E8DEC4' },
116
+ { name: 'Medium Beige', value: '#E2D5B5' },
117
+ { name: 'Dark Beige', value: '#DCCCA7' },
118
+
119
+ // Row 3 (Pinks)
120
+ { name: 'Light Pink', value: '#FAE1E1' },
121
+ { name: 'Pink', value: '#F7D2D2' },
122
+ { name: 'Medium Pink', value: '#F2C4C4' },
123
+ { name: 'Rose Pink', value: '#EDB6B6' },
124
+ { name: 'Dark Pink', value: '#E8A7A7' },
125
+ { name: 'Deep Pink', value: '#E39A9A' },
126
+
127
+ // Row 4 (Oranges)
128
+ { name: 'Light Orange', value: '#FBE9D0' },
129
+ { name: 'Orange', value: '#F7DDBB' },
130
+ { name: 'Medium Orange', value: '#F4D2A6' },
131
+ { name: 'Dark Orange', value: '#F0C791' },
132
+ { name: 'Deep Orange', value: '#EDBB7C' },
133
+ { name: 'Burnt Orange', value: '#E9B067' },
134
+
135
+ // Row 5 (Yellows)
136
+ { name: 'Light Yellow', value: '#FCF5D9' },
137
+ { name: 'Yellow', value: '#F9EEBE' },
138
+ { name: 'Medium Yellow', value: '#F6E7A3' },
139
+ { name: 'Dark Yellow', value: '#F3E088' },
140
+ { name: 'Deep Yellow', value: '#F0D96D' },
141
+ { name: 'Golden Yellow', value: '#EDD252' },
142
+
143
+ // Row 6 (Light Greens)
144
+ { name: 'Light Green', value: '#E4F4E1' },
145
+ { name: 'Green', value: '#D5EDCF' },
146
+ { name: 'Medium Green', value: '#C6E6BD' },
147
+ { name: 'Dark Green', value: '#B7DFAA' },
148
+ { name: 'Deep Green', value: '#A8D899' },
149
+ { name: 'Forest Green', value: '#9AD187' },
150
+
151
+ // Row 7 (Dark Greens)
152
+ { name: 'Sage Green', value: '#DDEBDF' },
153
+ { name: 'Olive Green', value: '#C8DDCB' },
154
+ { name: 'Medium Olive', value: '#B3D0B7' },
155
+ { name: 'Dark Olive', value: '#9EC2A4' },
156
+ { name: 'Deep Olive', value: '#89B490' },
157
+ { name: 'Forest Olive', value: '#74A77D' },
158
+
159
+ // Row 8 (Light Blues)
160
+ { name: 'Light Blue', value: '#E3F0FA' },
161
+ { name: 'Sky Blue', value: '#D0E5F5' },
162
+ { name: 'Medium Sky', value: '#BDD9F0' },
163
+ { name: 'Dark Sky', value: '#AACEEB' },
164
+ { name: 'Deep Sky', value: '#98C2E6' },
165
+ { name: 'Ocean Blue', value: '#85B7E1' },
166
+
167
+ // Row 9 (Dark Blues)
168
+ { name: 'Navy Blue', value: '#D9E2F0' },
169
+ { name: 'Medium Navy', value: '#C2D0E5' },
170
+ { name: 'Dark Navy', value: '#ABBFD9' },
171
+ { name: 'Deep Navy', value: '#94ADCE' },
172
+ { name: 'Royal Blue', value: '#7D9CC3' },
173
+ { name: 'Midnight Blue', value: '#668AB8' },
174
+
175
+ // Row 10 (Purples)
176
+ { name: 'Light Purple', value: '#EBE5F9' },
177
+ { name: 'Purple', value: '#DED3F4' },
178
+ { name: 'Medium Purple', value: '#D1C1EF' },
179
+ { name: 'Dark Purple', value: '#C4AFE9' },
180
+ { name: 'Deep Purple', value: '#B89DE4' },
181
+ { name: 'Royal Purple', value: '#AB8BDF' },
182
+ ];
@@ -0,0 +1,45 @@
1
+ import React from 'react';
2
+
3
+ export interface CustomCSSProperties extends React.CSSProperties {
4
+ '--font-family'?: string;
5
+ '--scrollbar-thumb-color'?: string;
6
+ '--scrollbar-track-color'?: string;
7
+ '--primary-color'?: string;
8
+ '--secondary-color'?: string;
9
+ '--svg-color'?: string;
10
+ '--svg-color-not-active'?: string;
11
+ '--text-color'?: string;
12
+ '--modal-background-color'?: string;
13
+ '--notification-background-color'?: string;
14
+ '--notification-text-color'?: string;
15
+ '--border-color'?: string;
16
+ '--error-color'?: string;
17
+ '--primary-color-hover'?: string;
18
+ '--card-background-color'?: string;
19
+ '--modal-svg-bg'?: string;
20
+ '--primary-color-btn-hover'?: string;
21
+ }
22
+
23
+ export interface Styles {
24
+ root: CustomCSSProperties;
25
+ }
26
+
27
+ export const customStyles: Styles = {
28
+ root: {
29
+ '--font-family': 'Inter',
30
+ '--scrollbar-thumb-color': '#fb8500',
31
+ '--scrollbar-track-color': 'grey',
32
+ '--primary-color': '#fb8500',
33
+ '--secondary-color': 'red',
34
+ '--svg-color': '#ffb703',
35
+ '--svg-color-not-active': 'purple',
36
+ '--text-color': '#fff',
37
+ '--modal-background-color': '#fff',
38
+ '--notification-background-color': "#EF7820",
39
+ '--notification-text-color': "#fff",
40
+ '--border-color': 'rgba(0, 0, 0, 0.5)',
41
+ '--error-color': '#ff0000',
42
+ '--modal-svg-bg': 'grey',
43
+ '--primary-color-btn-hover': 'grey',
44
+ },
45
+ };
@@ -0,0 +1,73 @@
1
+ import { PROD_API_BASE_URL, DEMO_API_BASE_URL, LOCAL_API_BASE_URL, STAGE_API_BASE_URL } from "./constants";
2
+ import { getPublicApiKey, getIsSandbox, getEnv } from "./helper";
3
+
4
+ const getHeaders = (additionalHeaders: Record<string, string> = {}) => ({
5
+ 'Content-Type': 'application/json',
6
+ 'Accept': 'application/json',
7
+ 'Authorization': `Bearer ${getPublicApiKey()}`,
8
+ ...additionalHeaders,
9
+ });
10
+
11
+ export interface RequestOptions {
12
+ method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
13
+ headers?: Record<string, string>;
14
+ body?: any;
15
+ params?: Record<string, string>;
16
+ }
17
+
18
+
19
+ const fetchWrapper = async (endpoint: string, options: RequestOptions) => {
20
+ const baseUrl = (() => {
21
+ const env = getEnv();
22
+ if (env === 'local') return LOCAL_API_BASE_URL;
23
+ if (env === 'staging') return STAGE_API_BASE_URL;
24
+ return getIsSandbox() ? DEMO_API_BASE_URL : PROD_API_BASE_URL;
25
+ })();
26
+ const url = new URL(`${baseUrl}${endpoint}`);
27
+ if (options.method === 'GET' && options.params) {
28
+ Object.entries(options.params).forEach(([key, value]) => {
29
+ url.searchParams.append(key, value);
30
+ });
31
+ }
32
+
33
+ const fetchOptions: RequestInit = {
34
+ method: options.method,
35
+ headers: getHeaders(options.headers),
36
+ };
37
+
38
+ if (options.method !== 'GET' && options.body) {
39
+ fetchOptions.body = JSON.stringify(options.body);
40
+ }
41
+
42
+ // Add body to fetchOptions if present
43
+ if (options.body) {
44
+ if (options.body instanceof FormData) {
45
+ fetchOptions.body = options.body;
46
+ // @ts-ignore
47
+ delete fetchOptions?.headers['Content-Type'];
48
+ } else {
49
+ fetchOptions.headers = getHeaders(options.headers);
50
+ }
51
+ }
52
+
53
+ try {
54
+ const response = await fetch(url.toString(), fetchOptions);
55
+
56
+ if (!response.ok) {
57
+ const errorData = await response.json();
58
+ throw new Error(errorData.message || 'An error occurred');
59
+ }
60
+
61
+ if (response.status === 204) {
62
+ return null;
63
+ }
64
+
65
+ const data = await response.json();
66
+ return { status: response.status, data };
67
+
68
+ } catch (error) {
69
+ return error
70
+ }
71
+ };
72
+
73
+ export default fetchWrapper;