@homefile/components-v2 1.3.0 → 1.4.1

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 (205) hide show
  1. package/dist/assets/images/circle-face.svg +21 -0
  2. package/dist/assets/images/company.svg +34 -0
  3. package/dist/assets/images/index.d.ts +5 -1
  4. package/dist/assets/images/index.js +5 -1
  5. package/dist/assets/images/index.ts +7 -0
  6. package/dist/assets/images/location.jpg +0 -0
  7. package/dist/assets/images/logos/index.d.ts +2 -1
  8. package/dist/assets/images/logos/index.js +2 -1
  9. package/dist/assets/images/logos/index.ts +12 -1
  10. package/dist/assets/images/logos/shine.png +0 -0
  11. package/dist/assets/images/shine/gutter-cleaning.png +0 -0
  12. package/dist/assets/images/shine/holiday-lights.png +0 -0
  13. package/dist/assets/images/shine/home-cleaning.png +0 -0
  14. package/dist/assets/images/shine/index.d.ts +7 -0
  15. package/dist/assets/images/shine/index.js +7 -0
  16. package/dist/assets/images/shine/index.ts +15 -0
  17. package/dist/assets/images/shine/pressure.png +0 -0
  18. package/dist/assets/images/shine/roof-cleaning.png +0 -0
  19. package/dist/assets/images/shine/window.png +0 -0
  20. package/dist/assets/locales/en/index.json +23 -1
  21. package/dist/components/contacts/ContactCard.d.ts +1 -1
  22. package/dist/components/contacts/ContactCard.js +8 -3
  23. package/dist/components/contacts/ContactCardHeader.d.ts +1 -1
  24. package/dist/components/contacts/ContactCardHeader.js +5 -6
  25. package/dist/components/contacts/ContactHeaderMenu.d.ts +2 -0
  26. package/dist/components/contacts/ContactHeaderMenu.js +7 -0
  27. package/dist/components/contacts/ContactsContent.d.ts +1 -1
  28. package/dist/components/contacts/ContactsContent.js +2 -2
  29. package/dist/components/contacts/addEditPanel/AddEditContactPanel.d.ts +2 -0
  30. package/dist/components/contacts/addEditPanel/AddEditContactPanel.js +24 -0
  31. package/dist/components/contacts/addEditPanel/index.d.ts +1 -0
  32. package/dist/components/contacts/addEditPanel/index.js +1 -0
  33. package/dist/components/contacts/index.d.ts +3 -0
  34. package/dist/components/contacts/index.js +3 -0
  35. package/dist/components/contacts/viewPanel/CompanyInfoCard.d.ts +2 -0
  36. package/dist/components/contacts/viewPanel/CompanyInfoCard.js +13 -0
  37. package/dist/components/contacts/viewPanel/CompanyRating.d.ts +3 -0
  38. package/dist/components/contacts/viewPanel/CompanyRating.js +27 -0
  39. package/dist/components/contacts/viewPanel/ContactAddressCard.d.ts +2 -0
  40. package/dist/components/contacts/viewPanel/ContactAddressCard.js +12 -0
  41. package/dist/components/contacts/viewPanel/ContactNotes.d.ts +3 -0
  42. package/dist/components/contacts/viewPanel/ContactNotes.js +8 -0
  43. package/dist/components/contacts/viewPanel/PersonalInfoCard.d.ts +2 -0
  44. package/dist/components/contacts/viewPanel/PersonalInfoCard.js +8 -0
  45. package/dist/components/contacts/viewPanel/RoleTag.d.ts +2 -0
  46. package/dist/components/contacts/viewPanel/RoleTag.js +9 -0
  47. package/dist/components/contacts/viewPanel/ViewContactHeader.d.ts +2 -0
  48. package/dist/components/contacts/viewPanel/ViewContactHeader.js +11 -0
  49. package/dist/components/contacts/viewPanel/ViewContactPanel.d.ts +2 -0
  50. package/dist/components/contacts/viewPanel/ViewContactPanel.js +9 -0
  51. package/dist/components/contacts/viewPanel/index.d.ts +8 -0
  52. package/dist/components/contacts/viewPanel/index.js +8 -0
  53. package/dist/components/forms/dynamicForm/DynamicForm.d.ts +1 -1
  54. package/dist/components/forms/dynamicForm/DynamicForm.js +5 -5
  55. package/dist/components/forms/dynamicForm/SimpleDynamicForm.d.ts +2 -0
  56. package/dist/components/forms/dynamicForm/SimpleDynamicForm.js +29 -0
  57. package/dist/components/forms/dynamicForm/fields/FieldWithDelete.d.ts +1 -1
  58. package/dist/components/forms/dynamicForm/fields/FieldWithDelete.js +2 -3
  59. package/dist/components/forms/dynamicForm/fields/GroupField.d.ts +1 -1
  60. package/dist/components/forms/dynamicForm/fields/GroupField.js +2 -2
  61. package/dist/components/forms/dynamicForm/index.d.ts +1 -1
  62. package/dist/components/forms/dynamicForm/index.js +1 -1
  63. package/dist/components/homeAssistant/panel/ApplianceSteps.d.ts +1 -1
  64. package/dist/components/homeAssistant/panel/ApplianceSteps.js +2 -2
  65. package/dist/components/homeAssistant/panel/HomeAssistantPanel.d.ts +1 -1
  66. package/dist/components/homeAssistant/panel/HomeAssistantPanel.js +14 -7
  67. package/dist/components/homeBoard/HomeBoard.js +1 -1
  68. package/dist/components/homeBoard/HomeCardWithRecipent.d.ts +1 -1
  69. package/dist/components/homeBoard/HomeCardWithRecipent.js +8 -2
  70. package/dist/components/onboarding/pages/SignIn.d.ts +1 -1
  71. package/dist/components/onboarding/pages/SignIn.js +5 -9
  72. package/dist/components/partner/customPartnerTiles/ShineTile.d.ts +2 -0
  73. package/dist/components/partner/customPartnerTiles/ShineTile.js +56 -0
  74. package/dist/components/partner/customPartnerTiles/index.d.ts +1 -0
  75. package/dist/components/partner/customPartnerTiles/index.js +1 -0
  76. package/dist/helpers/HomeRoles.helper.d.ts +1 -5
  77. package/dist/helpers/HomeRoles.helper.js +6 -0
  78. package/dist/helpers/forms/dynamicForm.helper.js +3 -1
  79. package/dist/hooks/forms/index.d.ts +1 -0
  80. package/dist/hooks/forms/index.js +1 -0
  81. package/dist/hooks/forms/useSimpleDynamicForm.d.ts +11 -0
  82. package/dist/hooks/forms/useSimpleDynamicForm.js +36 -0
  83. package/dist/hooks/myHomes/useMyHomeCard.d.ts +1 -3
  84. package/dist/index.d.ts +1 -1
  85. package/dist/index.js +1 -1
  86. package/dist/interfaces/contacts/AddEditContactPanel.interface.d.ts +12 -0
  87. package/dist/interfaces/contacts/ContactCard.interface.d.ts +15 -1
  88. package/dist/interfaces/contacts/ContactCardInfo.interface.d.ts +2 -1
  89. package/dist/interfaces/contacts/ContactsContent.interface.d.ts +4 -0
  90. package/dist/interfaces/contacts/ViewContactPanel.interface.d.ts +9 -0
  91. package/dist/interfaces/contacts/ViewContactPanel.interface.js +1 -0
  92. package/dist/interfaces/contacts/index.d.ts +2 -0
  93. package/dist/interfaces/contacts/index.js +2 -0
  94. package/dist/interfaces/forms/dynamicForm/DynamicForm.interface.d.ts +9 -7
  95. package/dist/interfaces/forms/dynamicForm/SimpleDynamicForm.interface.d.ts +4 -0
  96. package/dist/interfaces/forms/dynamicForm/SimpleDynamicForm.interface.js +1 -0
  97. package/dist/interfaces/forms/dynamicForm/fields/FieldWithDelete.interface.d.ts +1 -1
  98. package/dist/interfaces/forms/dynamicForm/fields/GroupField.interface.d.ts +1 -1
  99. package/dist/interfaces/forms/dynamicForm/index.d.ts +1 -1
  100. package/dist/interfaces/forms/dynamicForm/index.js +1 -1
  101. package/dist/interfaces/homeAssistant/ApplianceSteps.interface.d.ts +3 -0
  102. package/dist/interfaces/homeAssistant/HomeAssistantPanel.interface.d.ts +4 -1
  103. package/dist/interfaces/homeBoard/HomeCardWithRecipent.interface.d.ts +1 -0
  104. package/dist/interfaces/pages/SignIn.interface.d.ts +1 -1
  105. package/dist/mocks/contacts/contacts.mock.js +17 -5
  106. package/dist/mocks/forms/dynamicForm.mock.d.ts +1 -0
  107. package/dist/mocks/forms/dynamicForm.mock.js +155 -0
  108. package/dist/proxies/contacts/contactForm.proxy.d.ts +2 -0
  109. package/dist/proxies/contacts/contactForm.proxy.js +7 -0
  110. package/dist/proxies/contacts/index.d.ts +1 -0
  111. package/dist/proxies/contacts/index.js +1 -0
  112. package/dist/proxies/index.d.ts +1 -0
  113. package/dist/proxies/index.js +1 -0
  114. package/dist/stories/assets/Illustrations.stories.js +2 -2
  115. package/dist/stories/contacts/AddEditContactPanel.stories.d.ts +5 -0
  116. package/dist/stories/contacts/AddEditContactPanel.stories.js +22 -0
  117. package/dist/stories/contacts/ContactCardAddress.stories.d.ts +2 -0
  118. package/dist/stories/contacts/ContactCardInfo.stories.d.ts +2 -0
  119. package/dist/stories/contacts/ViewContactPanel.stories.d.ts +5 -0
  120. package/dist/stories/contacts/ViewContactPanel.stories.js +28 -0
  121. package/dist/stories/homeAssistant/panel/ApplianceSteps.stories.d.ts +1 -1
  122. package/dist/stories/homeAssistant/panel/ApplianceSteps.stories.js +1 -0
  123. package/dist/stories/homeAssistant/panel/HomeAssistantPanel.stories.js +1 -1
  124. package/dist/stories/partner/customPartnerTiles/ShineTile.stories.d.ts +5 -0
  125. package/dist/stories/partner/customPartnerTiles/ShineTile.stories.js +19 -0
  126. package/package.json +1 -1
  127. package/src/assets/images/circle-face.svg +21 -0
  128. package/src/assets/images/company.svg +34 -0
  129. package/src/assets/images/index.ts +7 -0
  130. package/src/assets/images/location.jpg +0 -0
  131. package/src/assets/images/logos/index.ts +12 -1
  132. package/src/assets/images/logos/shine.png +0 -0
  133. package/src/assets/images/shine/gutter-cleaning.png +0 -0
  134. package/src/assets/images/shine/holiday-lights.png +0 -0
  135. package/src/assets/images/shine/home-cleaning.png +0 -0
  136. package/src/assets/images/shine/index.ts +15 -0
  137. package/src/assets/images/shine/pressure.png +0 -0
  138. package/src/assets/images/shine/roof-cleaning.png +0 -0
  139. package/src/assets/images/shine/window.png +0 -0
  140. package/src/assets/locales/en/index.json +23 -1
  141. package/src/components/contacts/ContactCard.tsx +28 -25
  142. package/src/components/contacts/ContactCardHeader.tsx +5 -38
  143. package/src/components/contacts/ContactHeaderMenu.tsx +42 -0
  144. package/src/components/contacts/ContactsContent.tsx +3 -1
  145. package/src/components/contacts/addEditPanel/AddEditContactPanel.tsx +63 -0
  146. package/src/components/contacts/addEditPanel/index.ts +1 -0
  147. package/src/components/contacts/index.ts +3 -0
  148. package/src/components/contacts/viewPanel/CompanyInfoCard.tsx +58 -0
  149. package/src/components/contacts/viewPanel/CompanyRating.tsx +27 -0
  150. package/src/components/contacts/viewPanel/ContactAddressCard.tsx +39 -0
  151. package/src/components/contacts/viewPanel/ContactNotes.tsx +16 -0
  152. package/src/components/contacts/viewPanel/PersonalInfoCard.tsx +41 -0
  153. package/src/components/contacts/viewPanel/RoleTag.tsx +30 -0
  154. package/src/components/contacts/viewPanel/ViewContactHeader.tsx +26 -0
  155. package/src/components/contacts/viewPanel/ViewContactPanel.tsx +70 -0
  156. package/src/components/contacts/viewPanel/index.ts +8 -0
  157. package/src/components/forms/dynamicForm/DynamicForm.tsx +9 -6
  158. package/src/components/forms/dynamicForm/SimpleDynamicForm.tsx +57 -0
  159. package/src/components/forms/dynamicForm/fields/FieldWithDelete.tsx +2 -3
  160. package/src/components/forms/dynamicForm/fields/GroupField.tsx +7 -2
  161. package/src/components/forms/dynamicForm/index.ts +1 -1
  162. package/src/components/homeAssistant/panel/ApplianceSteps.tsx +5 -2
  163. package/src/components/homeAssistant/panel/HomeAssistantPanel.tsx +20 -7
  164. package/src/components/homeBoard/HomeBoard.tsx +3 -0
  165. package/src/components/homeBoard/HomeCardWithRecipent.tsx +15 -1
  166. package/src/components/onboarding/pages/SignIn.tsx +9 -18
  167. package/src/components/partner/customPartnerTiles/ShineTile.tsx +148 -0
  168. package/src/components/partner/customPartnerTiles/index.ts +1 -0
  169. package/src/helpers/HomeRoles.helper.ts +7 -1
  170. package/src/helpers/forms/dynamicForm.helper.ts +4 -0
  171. package/src/hooks/forms/index.ts +1 -0
  172. package/src/hooks/forms/useSimpleDynamicForm.ts +58 -0
  173. package/src/index.ts +3 -0
  174. package/src/interfaces/contacts/AddEditContactPanel.interface.ts +14 -0
  175. package/src/interfaces/contacts/ContactCard.interface.ts +20 -1
  176. package/src/interfaces/contacts/ContactCardInfo.interface.ts +3 -2
  177. package/src/interfaces/contacts/ContactsContent.interface.ts +3 -0
  178. package/src/interfaces/contacts/ViewContactPanel.interface.ts +10 -0
  179. package/src/interfaces/contacts/index.ts +2 -0
  180. package/src/interfaces/forms/dynamicForm/DynamicForm.interface.ts +10 -6
  181. package/src/interfaces/forms/dynamicForm/SimpleDynamicForm.interface.ts +5 -0
  182. package/src/interfaces/forms/dynamicForm/fields/FieldWithDelete.interface.ts +1 -1
  183. package/src/interfaces/forms/dynamicForm/fields/GroupField.interface.ts +1 -1
  184. package/src/interfaces/forms/dynamicForm/index.ts +1 -1
  185. package/src/interfaces/homeAssistant/ApplianceSteps.interface.ts +13 -2
  186. package/src/interfaces/homeAssistant/HomeAssistantPanel.interface.ts +4 -1
  187. package/src/interfaces/homeBoard/HomeCardWithRecipent.interface.ts +1 -0
  188. package/src/interfaces/pages/SignIn.interface.ts +2 -2
  189. package/src/mocks/contacts/contacts.mock.ts +17 -5
  190. package/src/mocks/forms/dynamicForm.mock.ts +156 -0
  191. package/src/proxies/contacts/contactForm.proxy.ts +9 -0
  192. package/src/proxies/contacts/index.ts +1 -0
  193. package/src/proxies/index.ts +1 -0
  194. package/src/stories/assets/Illustrations.stories.tsx +4 -0
  195. package/src/stories/contacts/AddEditContactPanel.stories.tsx +45 -0
  196. package/src/stories/contacts/ViewContactPanel.stories.tsx +35 -0
  197. package/src/stories/homeAssistant/panel/ApplianceSteps.stories.tsx +2 -1
  198. package/src/stories/homeAssistant/panel/HomeAssistantPanel.stories.tsx +2 -0
  199. package/src/stories/partner/customPartnerTiles/ShineTile.stories.tsx +26 -0
  200. package/dist/components/forms/dynamicForm/DynamicFormSimple.d.ts +0 -2
  201. package/dist/components/forms/dynamicForm/DynamicFormSimple.js +0 -32
  202. package/dist/interfaces/forms/dynamicForm/DynamicFormSimple.interface.d.ts +0 -4
  203. package/src/components/forms/dynamicForm/DynamicFormSimple.tsx +0 -66
  204. package/src/interfaces/forms/dynamicForm/DynamicFormSimple.interface.ts +0 -5
  205. /package/dist/interfaces/{forms/dynamicForm/DynamicFormSimple.interface.js → contacts/AddEditContactPanel.interface.js} +0 -0
@@ -0,0 +1,21 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="27.292" height="27.295" viewBox="0 0 27.292 27.295">
2
+ <defs>
3
+ <clipPath id="clip-path">
4
+ <rect id="Rectangle_22561" data-name="Rectangle 22561" width="27.292" height="27.295" fill="none"/>
5
+ </clipPath>
6
+ </defs>
7
+ <g id="Group_18754" data-name="Group 18754" clip-path="url(#clip-path)">
8
+ <path id="Path_14078" data-name="Path 14078" d="M35.441,22.423a6.682,6.682,0,0,1-6.651,6.154,6.713,6.713,0,0,1-1.73-.235,6.672,6.672,0,0,1,6.648-6.151c.186,0,.365.013.545.026a6.945,6.945,0,0,1,1.187.207" transform="translate(-20.064 -16.452)" fill="#40566b"/>
9
+ <path id="Path_14079" data-name="Path 14079" d="M57.189,25.353a6.625,6.625,0,0,0,.59-2.263,6.674,6.674,0,0,1,4.928,6.126,6.674,6.674,0,0,1-5.518-3.863" transform="translate(-42.401 -17.12)" fill="#323954"/>
10
+ <path id="Path_14080" data-name="Path 14080" d="M34.776,31.84A6.674,6.674,0,0,0,40.295,35.7c0,.106.015.209.015.315V38.49a6.675,6.675,0,0,1-13.35,0V36.019c0-.176.013-.349.026-.522a6.632,6.632,0,0,0,7.791-3.656" transform="translate(-19.989 -23.607)" fill="#daf1f3"/>
11
+ <path id="Path_14081" data-name="Path 14081" d="M26.045,83.189l.771,2.873A13.633,13.633,0,0,1,13,81.845l2.242-1.955a10.653,10.653,0,0,0,10.8,3.3" transform="translate(-9.639 -59.233)" fill="#e24c5d"/>
12
+ <path id="Path_14082" data-name="Path 14082" d="M61.877,3.486,59.891,5.7A10.626,10.626,0,0,0,52.77,2.974V0a13.589,13.589,0,0,1,9.107,3.486" transform="translate(-39.125)" fill="#f6cf76"/>
13
+ <path id="Path_14083" data-name="Path 14083" d="M86.837,23.642a13.574,13.574,0,0,1-.641,4.135L83.3,27.063a10.679,10.679,0,0,0-2.991-11.369L82.3,13.48a13.616,13.616,0,0,1,4.541,10.162" transform="translate(-59.545 -9.994)" fill="#e24c5d"/>
14
+ <path id="Path_14084" data-name="Path 14084" d="M7.183,68.746,4.941,70.7A13.61,13.61,0,0,1,2.13,65.576l2.891-.716a10.633,10.633,0,0,0,2.161,3.886" transform="translate(-1.579 -48.089)" fill="#f6cf76"/>
15
+ <path id="Path_14085" data-name="Path 14085" d="M73.776,66.642A13.668,13.668,0,0,1,64.3,75.689l-.771-2.873a10.694,10.694,0,0,0,7.351-6.888Z" transform="translate(-47.104 -48.881)" fill="#00c0b7"/>
16
+ <path id="Path_14086" data-name="Path 14086" d="M4,4.008a13.6,13.6,0,0,1,9.648-4V2.984a10.672,10.672,0,0,0-10.2,13.8L.551,17.5A13.65,13.65,0,0,1,4,4.008" transform="translate(0 -0.007)" fill="#00c0b7"/>
17
+ <path id="Path_14087" data-name="Path 14087" d="M48.382,68.16a2.9,2.9,0,0,1-1.5-.418l.4-.665a2.112,2.112,0,0,0,2.693-.424l.584.51a2.9,2.9,0,0,1-2.182,1" transform="translate(-34.763 -49.419)" fill="#40566b"/>
18
+ <path id="Path_14088" data-name="Path 14088" d="M41.266,52.4a.776.776,0,1,1-.776-.776.776.776,0,0,1,.776.776" transform="translate(-29.446 -38.272)" fill="#40566b"/>
19
+ <path id="Path_14089" data-name="Path 14089" d="M59.766,52.4a.776.776,0,1,1-.776-.776.776.776,0,0,1,.776.776" transform="translate(-43.162 -38.272)" fill="#40566b"/>
20
+ </g>
21
+ </svg>
@@ -0,0 +1,34 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="27.2" height="21.5" viewBox="0 0 27.2 21.5">
2
+ <defs>
3
+ <clipPath id="clip-path">
4
+ <rect id="Rectangle_18088" data-name="Rectangle 18088" width="27.2" height="21.5" fill="none"/>
5
+ </clipPath>
6
+ </defs>
7
+ <g id="Group_16616" data-name="Group 16616" transform="translate(-1127.558 -2313.81)">
8
+ <rect id="Rectangle_18076" data-name="Rectangle 18076" width="7.966" height="7.071" transform="translate(1144.598 2324.792)" fill="#00c0b7"/>
9
+ <rect id="Rectangle_18077" data-name="Rectangle 18077" width="7.966" height="3.146" transform="translate(1144.598 2331.864)" fill="#f6cf76"/>
10
+ <path id="Path_11902" data-name="Path 11902" d="M33.78,44.66v2.047H10.97V44.66Z" transform="translate(1118.783 2278.086)" fill="#40566b"/>
11
+ <path id="Path_11903" data-name="Path 11903" d="M33.78,29.95v2.943H10.97V29.95H33.78Z" transform="translate(1118.783 2289.852)" fill="#f6cf76"/>
12
+ <path id="Path_11904" data-name="Path 11904" d="M35.8,0V3.81H48.674V0Z" transform="translate(1098.921 2313.81)" fill="#e24c5d"/>
13
+ <path id="Path_11905" data-name="Path 11905" d="M71.41,61.961v3.146H67.97V54.889H71.41Z" transform="translate(1073.188 2269.903)" fill="#00a1aa"/>
14
+ <path id="Path_11906" data-name="Path 11906" d="M54.219,54.889V65.106H50.78V54.889Z" transform="translate(1086.939 2269.903)" fill="#00a1aa"/>
15
+ <rect id="Rectangle_18078" data-name="Rectangle 18078" width="7.965" height="3.146" transform="translate(1129.753 2331.864)" fill="#f6cf76"/>
16
+ <rect id="Rectangle_18079" data-name="Rectangle 18079" width="7.965" height="7.071" transform="translate(1129.753 2324.792)" fill="#00c0b7"/>
17
+ <rect id="Rectangle_18080" data-name="Rectangle 18080" width="0.4" height="10.217" transform="translate(1140.958 2324.792)" fill="#40566b"/>
18
+ <rect id="Rectangle_18081" data-name="Rectangle 18081" width="0.6" height="2.183" transform="translate(1137.056 2317.619)" fill="#40566b"/>
19
+ <rect id="Rectangle_18082" data-name="Rectangle 18082" width="0.6" height="2.183" transform="translate(1144.66 2317.619)" fill="#40566b"/>
20
+ <rect id="Rectangle_18083" data-name="Rectangle 18083" width="2.286" height="0.4" transform="translate(1146.845 2328.267) rotate(-45)" fill="#fff"/>
21
+ <rect id="Rectangle_18084" data-name="Rectangle 18084" width="4.741" height="0.4" transform="translate(1147.044 2330.002) rotate(-45)" fill="#fff"/>
22
+ <rect id="Rectangle_18085" data-name="Rectangle 18085" width="2.288" height="0.4" transform="translate(1132.034 2328.266) rotate(-44.939)" fill="#fff"/>
23
+ <rect id="Rectangle_18086" data-name="Rectangle 18086" width="4.74" height="0.4" transform="translate(1132.235 2330.001) rotate(-45)" fill="#fff"/>
24
+ <rect id="Rectangle_18087" data-name="Rectangle 18087" width="27.2" height="0.6" transform="translate(1127.558 2334.709)" fill="#40566b"/>
25
+ <g id="Group_16615" data-name="Group 16615" transform="translate(1127.558 2313.81)">
26
+ <g id="Group_16614" data-name="Group 16614" clip-path="url(#clip-path)">
27
+ <path id="Path_11907" data-name="Path 11907" d="M44.83,5.842c.008.179.2.255.395.255.174,0,.375-.042.375-.246,0-.224-.241-.241-.428-.258-.356-.028-.714-.151-.714-.557,0-.434.356-.616.745-.616.367,0,.748.154.748.593h-.392c-.023-.159-.188-.227-.356-.227s-.333.089-.333.241c0,.173.171.215.375.235.415.039.77.129.77.588s-.4.608-.787.61-.8-.19-.8-.619Z" transform="translate(-35.54 -3.536)" fill="#fff"/>
28
+ <path id="Path_11908" data-name="Path 11908" d="M58.048,6.59V5.762H57.3V6.59h-.417V4.631H57.3v.747h.75V4.631h.42V6.59Z" transform="translate(-45.5 -3.704)" fill="#fff"/>
29
+ <path id="Path_11909" data-name="Path 11909" d="M70.329,6.5a.958.958,0,0,1-1-1.01,1,1,0,1,1,2,0A.963.963,0,0,1,70.329,6.5m.006-.381a.57.57,0,0,0,.582-.63.582.582,0,1,0-1.162,0,.564.564,0,0,0,.579.63" transform="translate(-55.459 -3.581)" fill="#fff"/>
30
+ <path id="Path_11910" data-name="Path 11910" d="M83.842,6.57V4.611c.28,0,.557,0,.837,0a.676.676,0,0,1,.7.714.667.667,0,0,1-.7.692h-.417V6.57Zm.837-.913a.315.315,0,0,0,.3-.344.309.309,0,0,0-.3-.336h-.426v.68Z" transform="translate(-67.066 -3.687)" fill="#fff"/>
31
+ </g>
32
+ </g>
33
+ </g>
34
+ </svg>
@@ -20,10 +20,12 @@ import Check from './check.svg';
20
20
  import CheckInCircle from './check-in-circle.svg';
21
21
  import CheckPen from './check-pen.svg';
22
22
  import Chemistry from './chemistry.svg';
23
+ import CircleFace from './circle-face.svg';
23
24
  import Cleaning from './cleaning.svg';
24
25
  import Closet from './closet.svg';
25
26
  import Clouds from './clouds.png';
26
27
  import Co2 from './co2.svg';
28
+ import Company from './company.svg';
27
29
  import ComputerReport from './computer-report.svg';
28
30
  import Confirmation from './confirmation.svg';
29
31
  import Construction from './construction.svg';
@@ -76,6 +78,7 @@ import Laundry from './laundry.svg';
76
78
  import Light from './light.svg';
77
79
  import LivingRoom from './living-room.svg';
78
80
  import Loading from './loading.svg';
81
+ import Location from './location.jpg';
79
82
  import LogoCompany from './logo-company.svg';
80
83
  import LogoSmall from './logo-small.svg';
81
84
  import MagnifyingGlassReport from './magnifying-glass-report.svg';
@@ -148,10 +151,11 @@ import WizardDetailed from './wizard-detailed.svg';
148
151
  import WizardQuick from './wizard-quick.svg';
149
152
  import YellowFolder from './yellow-folder.svg';
150
153
  import YellowFolderUnshared from './yellow-folder-unshared.svg';
151
- export { AlertDelete, AlertDeletePurple, Arrow, Batery, Bathroom, Battery2, Bedroom, BgBlue, BgLogo, Billing, BillingAddress, BlueFolder, BlueFolderShared, Box, Building, Calc, Calendar2, Catalog, Check, CheckInCircle, CheckPen, Chemistry, Cleaning, Closet, Clouds, Co2, ComputerReport, Confirmation, Construction, Contacts, Contacts2, Contributor, CreditCard, Detector, Diamond, DiningRoom, DocIcon, Document, Drop, DropCalendar, Electricity, Entryway, Exclamation, Face, Feedback, FileUploading, Finance, Fire, Flag, FormSent, Foundation, Garage, GearPencil, GearTime, GenericField, GlassWater, GreenFolder, Group, Groups, GuestBedroom, Hallway, HandPencil, Heater, Help, HomeAddress, Homeowner, House, HouseHands, IA, ImageDefault, ImgIcon, Inbox, Insect, Kitchen, Laundry, Light, LivingRoom, Loading, LogoCompany, LogoSmall, MagnifyingGlassReport, Manager, MasterBedroom, Member, Message, MobileDrop, Money, Mudroom, NeedHelp, Office, Painting, PartnerGeneric, Patio, PdfIcon, PersonMail, Plate, Play, Plus, Pool, Pool2, Price, Profile, ProgressReport, Proposal, RealEstate, Receipt, ReceiptBg, ReceiptHouse, Receipts, Recipient, Records, Register, RelationshipHome, ResendPassword, Rocket, Roof2, Security, Send, ShareHome, ShareWith, SixtyEight, SMS, Social, SolarPanel, Sprinkler, Structure, Subscription, Target, Temperature, Theatre, Thumbnail, ThumbnailSmall, ThumbUp, Trash, Trees, TreesCrop, TreesCrop2, VideoIcon, VideoPlay, VioletFolder, Warning, Warranty, WellDone, WholeHome, Wind, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, };
154
+ export { AlertDelete, AlertDeletePurple, Arrow, Batery, Bathroom, Battery2, Bedroom, BgBlue, BgLogo, Billing, BillingAddress, BlueFolder, BlueFolderShared, Box, Building, Calc, Calendar2, Catalog, Check, CheckInCircle, CheckPen, Chemistry, CircleFace, Cleaning, Closet, Clouds, Co2, Company, ComputerReport, Confirmation, Construction, Contacts, Contacts2, Contributor, CreditCard, Detector, Diamond, DiningRoom, DocIcon, Document, Drop, DropCalendar, Electricity, Entryway, Exclamation, Face, Feedback, FileUploading, Finance, Fire, Flag, FormSent, Foundation, Garage, GearPencil, GearTime, GenericField, GlassWater, GreenFolder, Group, Groups, GuestBedroom, Hallway, HandPencil, Heater, Help, HomeAddress, Homeowner, House, HouseHands, IA, ImageDefault, ImgIcon, Inbox, Insect, Kitchen, Laundry, Light, LivingRoom, Loading, Location, LogoCompany, LogoSmall, MagnifyingGlassReport, Manager, MasterBedroom, Member, Message, MobileDrop, Money, Mudroom, NeedHelp, Office, Painting, PartnerGeneric, Patio, PdfIcon, PersonMail, Plate, Play, Plus, Pool, Pool2, Price, Profile, ProgressReport, Proposal, RealEstate, Receipt, ReceiptBg, ReceiptHouse, Receipts, Recipient, Records, Register, RelationshipHome, ResendPassword, Rocket, Roof2, Security, Send, ShareHome, ShareWith, SixtyEight, SMS, Social, SolarPanel, Sprinkler, Structure, Subscription, Target, Temperature, Theatre, Thumbnail, ThumbnailSmall, ThumbUp, Trash, Trees, TreesCrop, TreesCrop2, VideoIcon, VideoPlay, VioletFolder, Warning, Warranty, WellDone, WholeHome, Wind, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, };
152
155
  export * from './appliances';
153
156
  export * from './clouds-animation';
154
157
  export * from './form';
155
158
  export * from './logos';
156
159
  export * from './groups';
157
160
  export * from './placeholders';
161
+ export * from './shine';
@@ -20,10 +20,12 @@ import Check from './check.svg';
20
20
  import CheckInCircle from './check-in-circle.svg';
21
21
  import CheckPen from './check-pen.svg';
22
22
  import Chemistry from './chemistry.svg';
23
+ import CircleFace from './circle-face.svg';
23
24
  import Cleaning from './cleaning.svg';
24
25
  import Closet from './closet.svg';
25
26
  import Clouds from './clouds.png';
26
27
  import Co2 from './co2.svg';
28
+ import Company from './company.svg';
27
29
  import ComputerReport from './computer-report.svg';
28
30
  import Confirmation from './confirmation.svg';
29
31
  import Construction from './construction.svg';
@@ -76,6 +78,7 @@ import Laundry from './laundry.svg';
76
78
  import Light from './light.svg';
77
79
  import LivingRoom from './living-room.svg';
78
80
  import Loading from './loading.svg';
81
+ import Location from './location.jpg';
79
82
  import LogoCompany from './logo-company.svg';
80
83
  import LogoSmall from './logo-small.svg';
81
84
  import MagnifyingGlassReport from './magnifying-glass-report.svg';
@@ -148,10 +151,11 @@ import WizardDetailed from './wizard-detailed.svg';
148
151
  import WizardQuick from './wizard-quick.svg';
149
152
  import YellowFolder from './yellow-folder.svg';
150
153
  import YellowFolderUnshared from './yellow-folder-unshared.svg';
151
- export { AlertDelete, AlertDeletePurple, Arrow, Batery, Bathroom, Battery2, Bedroom, BgBlue, BgLogo, Billing, BillingAddress, BlueFolder, BlueFolderShared, Box, Building, Calc, Calendar2, Catalog, Check, CheckInCircle, CheckPen, Chemistry, Cleaning, Closet, Clouds, Co2, ComputerReport, Confirmation, Construction, Contacts, Contacts2, Contributor, CreditCard, Detector, Diamond, DiningRoom, DocIcon, Document, Drop, DropCalendar, Electricity, Entryway, Exclamation, Face, Feedback, FileUploading, Finance, Fire, Flag, FormSent, Foundation, Garage, GearPencil, GearTime, GenericField, GlassWater, GreenFolder, Group, Groups, GuestBedroom, Hallway, HandPencil, Heater, Help, HomeAddress, Homeowner, House, HouseHands, IA, ImageDefault, ImgIcon, Inbox, Insect, Kitchen, Laundry, Light, LivingRoom, Loading, LogoCompany, LogoSmall, MagnifyingGlassReport, Manager, MasterBedroom, Member, Message, MobileDrop, Money, Mudroom, NeedHelp, Office, Painting, PartnerGeneric, Patio, PdfIcon, PersonMail, Plate, Play, Plus, Pool, Pool2, Price, Profile, ProgressReport, Proposal, RealEstate, Receipt, ReceiptBg, ReceiptHouse, Receipts, Recipient, Records, Register, RelationshipHome, ResendPassword, Rocket, Roof2, Security, Send, ShareHome, ShareWith, SixtyEight, SMS, Social, SolarPanel, Sprinkler, Structure, Subscription, Target, Temperature, Theatre, Thumbnail, ThumbnailSmall, ThumbUp, Trash, Trees, TreesCrop, TreesCrop2, VideoIcon, VideoPlay, VioletFolder, Warning, Warranty, WellDone, WholeHome, Wind, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, };
154
+ export { AlertDelete, AlertDeletePurple, Arrow, Batery, Bathroom, Battery2, Bedroom, BgBlue, BgLogo, Billing, BillingAddress, BlueFolder, BlueFolderShared, Box, Building, Calc, Calendar2, Catalog, Check, CheckInCircle, CheckPen, Chemistry, CircleFace, Cleaning, Closet, Clouds, Co2, Company, ComputerReport, Confirmation, Construction, Contacts, Contacts2, Contributor, CreditCard, Detector, Diamond, DiningRoom, DocIcon, Document, Drop, DropCalendar, Electricity, Entryway, Exclamation, Face, Feedback, FileUploading, Finance, Fire, Flag, FormSent, Foundation, Garage, GearPencil, GearTime, GenericField, GlassWater, GreenFolder, Group, Groups, GuestBedroom, Hallway, HandPencil, Heater, Help, HomeAddress, Homeowner, House, HouseHands, IA, ImageDefault, ImgIcon, Inbox, Insect, Kitchen, Laundry, Light, LivingRoom, Loading, Location, LogoCompany, LogoSmall, MagnifyingGlassReport, Manager, MasterBedroom, Member, Message, MobileDrop, Money, Mudroom, NeedHelp, Office, Painting, PartnerGeneric, Patio, PdfIcon, PersonMail, Plate, Play, Plus, Pool, Pool2, Price, Profile, ProgressReport, Proposal, RealEstate, Receipt, ReceiptBg, ReceiptHouse, Receipts, Recipient, Records, Register, RelationshipHome, ResendPassword, Rocket, Roof2, Security, Send, ShareHome, ShareWith, SixtyEight, SMS, Social, SolarPanel, Sprinkler, Structure, Subscription, Target, Temperature, Theatre, Thumbnail, ThumbnailSmall, ThumbUp, Trash, Trees, TreesCrop, TreesCrop2, VideoIcon, VideoPlay, VioletFolder, Warning, Warranty, WellDone, WholeHome, Wind, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, };
152
155
  export * from './appliances';
153
156
  export * from './clouds-animation';
154
157
  export * from './form';
155
158
  export * from './logos';
156
159
  export * from './groups';
157
160
  export * from './placeholders';
161
+ export * from './shine';
@@ -20,10 +20,12 @@ import Check from './check.svg'
20
20
  import CheckInCircle from './check-in-circle.svg'
21
21
  import CheckPen from './check-pen.svg'
22
22
  import Chemistry from './chemistry.svg'
23
+ import CircleFace from './circle-face.svg'
23
24
  import Cleaning from './cleaning.svg'
24
25
  import Closet from './closet.svg'
25
26
  import Clouds from './clouds.png'
26
27
  import Co2 from './co2.svg'
28
+ import Company from './company.svg'
27
29
  import ComputerReport from './computer-report.svg'
28
30
  import Confirmation from './confirmation.svg'
29
31
  import Construction from './construction.svg'
@@ -76,6 +78,7 @@ import Laundry from './laundry.svg'
76
78
  import Light from './light.svg'
77
79
  import LivingRoom from './living-room.svg'
78
80
  import Loading from './loading.svg'
81
+ import Location from './location.jpg'
79
82
  import LogoCompany from './logo-company.svg'
80
83
  import LogoSmall from './logo-small.svg'
81
84
  import MagnifyingGlassReport from './magnifying-glass-report.svg'
@@ -172,10 +175,12 @@ export {
172
175
  CheckInCircle,
173
176
  CheckPen,
174
177
  Chemistry,
178
+ CircleFace,
175
179
  Cleaning,
176
180
  Closet,
177
181
  Clouds,
178
182
  Co2,
183
+ Company,
179
184
  ComputerReport,
180
185
  Confirmation,
181
186
  Construction,
@@ -228,6 +233,7 @@ export {
228
233
  Light,
229
234
  LivingRoom,
230
235
  Loading,
236
+ Location,
231
237
  LogoCompany,
232
238
  LogoSmall,
233
239
  MagnifyingGlassReport,
@@ -308,3 +314,4 @@ export * from './form'
308
314
  export * from './logos'
309
315
  export * from './groups'
310
316
  export * from './placeholders'
317
+ export * from './shine'
Binary file
@@ -5,5 +5,6 @@ import Lowes from './lowes.png';
5
5
  import Walmart from './walmart.png';
6
6
  import Prime from './prime.png';
7
7
  import Sears from './sears.png';
8
+ import Shine from './shine.png';
8
9
  import Terminix from './terminix.png';
9
- export { APHW, HomeDepot, Homefile, Lowes, Walmart, Prime, Sears, Terminix };
10
+ export { APHW, HomeDepot, Homefile, Lowes, Walmart, Prime, Sears, Shine, Terminix, };
@@ -5,5 +5,6 @@ import Lowes from './lowes.png';
5
5
  import Walmart from './walmart.png';
6
6
  import Prime from './prime.png';
7
7
  import Sears from './sears.png';
8
+ import Shine from './shine.png';
8
9
  import Terminix from './terminix.png';
9
- export { APHW, HomeDepot, Homefile, Lowes, Walmart, Prime, Sears, Terminix };
10
+ export { APHW, HomeDepot, Homefile, Lowes, Walmart, Prime, Sears, Shine, Terminix, };
@@ -5,6 +5,17 @@ import Lowes from './lowes.png'
5
5
  import Walmart from './walmart.png'
6
6
  import Prime from './prime.png'
7
7
  import Sears from './sears.png'
8
+ import Shine from './shine.png'
8
9
  import Terminix from './terminix.png'
9
10
 
10
- export { APHW, HomeDepot, Homefile, Lowes, Walmart, Prime, Sears, Terminix }
11
+ export {
12
+ APHW,
13
+ HomeDepot,
14
+ Homefile,
15
+ Lowes,
16
+ Walmart,
17
+ Prime,
18
+ Sears,
19
+ Shine,
20
+ Terminix,
21
+ }
@@ -0,0 +1,7 @@
1
+ import GutterCleaning from './gutter-cleaning.png';
2
+ import HomeCleaning from './home-cleaning.png';
3
+ import HolidayLights from './holiday-lights.png';
4
+ import Pressure from './pressure.png';
5
+ import RoofCleaning from './roof-cleaning.png';
6
+ import WindowCleaning from './window.png';
7
+ export { GutterCleaning, HomeCleaning, HolidayLights, Pressure, RoofCleaning, WindowCleaning, };
@@ -0,0 +1,7 @@
1
+ import GutterCleaning from './gutter-cleaning.png';
2
+ import HomeCleaning from './home-cleaning.png';
3
+ import HolidayLights from './holiday-lights.png';
4
+ import Pressure from './pressure.png';
5
+ import RoofCleaning from './roof-cleaning.png';
6
+ import WindowCleaning from './window.png';
7
+ export { GutterCleaning, HomeCleaning, HolidayLights, Pressure, RoofCleaning, WindowCleaning, };
@@ -0,0 +1,15 @@
1
+ import GutterCleaning from './gutter-cleaning.png'
2
+ import HomeCleaning from './home-cleaning.png'
3
+ import HolidayLights from './holiday-lights.png'
4
+ import Pressure from './pressure.png'
5
+ import RoofCleaning from './roof-cleaning.png'
6
+ import WindowCleaning from './window.png'
7
+
8
+ export {
9
+ GutterCleaning,
10
+ HomeCleaning,
11
+ HolidayLights,
12
+ Pressure,
13
+ RoofCleaning,
14
+ WindowCleaning,
15
+ }
@@ -109,7 +109,8 @@
109
109
  "previous": "Previous",
110
110
  "save": "Save",
111
111
  "send": "Send",
112
- "skip": "Skip for now"
112
+ "skip": "Skip for now",
113
+ "saveStep": "Save Step"
113
114
  },
114
115
  "createDocument": {
115
116
  "tabs": {
@@ -139,11 +140,20 @@
139
140
  },
140
141
  "contacts": {
141
142
  "addBtn": "Contact",
143
+ "addContact": "Add Contact",
144
+ "companyInfo": "Company Info",
145
+ "contactView": "View Contact",
146
+ "details": "Details",
147
+ "editContact": "Edit Contact",
142
148
  "error": "Email should be from a valid Homefile account",
149
+ "homeAddress": "Home Address",
150
+ "notes": "Notes",
143
151
  "shareContact": "Share Contact",
152
+ "permissions": "Permissions",
144
153
  "placeholders": {
145
154
  "email": "Enter Email"
146
155
  },
156
+ "rating": "Homeowner Rating",
147
157
  "title": "Contacts"
148
158
  },
149
159
  "daysOfWeek": {
@@ -601,6 +611,18 @@
601
611
  },
602
612
  "needImage": "Need image",
603
613
  "noResults": "No results found",
614
+ "shine": {
615
+ "heroTitle": "We do windows and so much more!",
616
+ "scheduleService": "Schedule a Service",
617
+ "services": {
618
+ "home": "Home Cleaning",
619
+ "lights": "Holiday Lights",
620
+ "gutter": "Gutter Cleaning",
621
+ "roof": "Roof Cleaning",
622
+ "pressure": "Pressure Washing",
623
+ "window": "Window Cleaning"
624
+ }
625
+ },
604
626
  "tabs": {
605
627
  "code": "Code",
606
628
  "content": "Content",
@@ -1,2 +1,2 @@
1
1
  import { ContactCardI } from '../../interfaces';
2
- export declare const ContactCard: ({ apiError, contact, index, menuItems, onShare, }: ContactCardI) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ContactCard: ({ apiError, contact, index, menuItems, onClick, onShare, }: ContactCardI) => import("react/jsx-runtime").JSX.Element;
@@ -2,7 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Box, Container, Flex, Stack } from '@chakra-ui/react';
3
3
  import { ContactCardHeader, ContactCardInfo, ContactCardAddress, } from '..';
4
4
  import { colors } from '../../theme/colors';
5
- export const ContactCard = ({ apiError, contact, index, menuItems, onShare, }) => {
6
- const { address, city, state, zip, company, email, firstName, lastName, phone, } = contact;
7
- return (_jsx(Container, { maxW: 'none', children: _jsxs(Stack, { pb: "base", px: "base", children: [_jsx(ContactCardHeader, { apiError: apiError, contact: contact, menuItems: menuItems, onShare: onShare }), _jsxs(Flex, { justify: "space-between", align: "stretch", gap: "base", children: [_jsx(ContactCardInfo, { company, email, firstName, lastName, phone, index }), _jsx(Box, { borderLeft: `1px solid ${colors.lightBlue[1]}`, w: "45%", pl: "base", children: _jsx(ContactCardAddress, { company, address, city, state, zip }) })] })] }) }));
5
+ export const ContactCard = ({ apiError, contact, index, menuItems, onClick, onShare, }) => {
6
+ const hasOnClick = typeof onClick === 'function';
7
+ return (_jsx(Container, { maxW: "none", textAlign: "start", onClick: () => onClick === null || onClick === void 0 ? void 0 : onClick(Object.assign(Object.assign({}, contact), { index })), transition: "background-color 0.3s", _hover: {
8
+ bg: hasOnClick ? 'lightGreen.1' : 'transparent',
9
+ }, cursor: hasOnClick ? 'pointer' : 'default', children: _jsxs(Stack, { pb: "base", pt: "1", px: "base", spacing: "base", children: [_jsx(ContactCardHeader, { apiError: apiError, contact: contact, menuItems: menuItems, onShare: onShare }), _jsx(CardBody, { contact, index })] }) }));
10
+ };
11
+ const CardBody = ({ contact, index, }) => {
12
+ return (_jsxs(Flex, { justify: "space-between", align: "stretch", gap: "base", children: [_jsx(ContactCardInfo, Object.assign({}, contact, { index })), _jsx(Box, { borderLeft: `1px solid ${colors.lightBlue[1]}`, w: "45%", pl: "base", children: _jsx(ContactCardAddress, Object.assign({}, contact)) })] }));
8
13
  };
@@ -1,2 +1,2 @@
1
1
  import { ContactCardHeaderI } from '../../interfaces';
2
- export declare const ContactCardHeader: ({ apiError, contact, menuItems, onShare, }: ContactCardHeaderI) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ContactCardHeader: (props: ContactCardHeaderI) => import("react/jsx-runtime").JSX.Element;
@@ -1,11 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { t } from 'i18next';
3
- import { Flex, IconButton, Image, Text, useDisclosure } from '@chakra-ui/react';
3
+ import { Flex, Image, Text } from '@chakra-ui/react';
4
4
  import { Contacts } from '../../assets/images';
5
- import { IconMenu, MoreHorizontal, ShareContactPopover, ShareIcon, } from '..';
6
- export const ContactCardHeader = ({ apiError, contact, menuItems, onShare, }) => {
5
+ import { ContactHeaderMenu } from '..';
6
+ export const ContactCardHeader = (props) => {
7
7
  var _a;
8
- const { category, title } = contact;
9
- const { isOpen, onOpen, onClose } = useDisclosure();
10
- return (_jsxs(Flex, { align: "center", justify: "space-between", children: [_jsxs(Flex, { align: "center", gap: "base", children: [_jsx(Image, { src: Contacts, boxSize: "1rem", "aria-label": (_a = t('ariaLabels.contact')) !== null && _a !== void 0 ? _a : ' ' }), _jsxs(Flex, { align: "center", gap: "base", children: [_jsx(Text, { fontSize: "xs", children: category.toUpperCase() }), title && (_jsx(Text, { fontSize: "xs", color: "gray.4", children: "|" })), _jsx(Text, { fontSize: "xs", children: title.toUpperCase() })] })] }), _jsxs(Flex, { align: "center", position: "relative", gap: "base", py: "base", children: [_jsx(IconButton, { "aria-label": "share", variant: "menuIcon", icon: _jsx(ShareIcon, { size: 18 }), onClick: onOpen, w: "fit-content" }), _jsx(ShareContactPopover, { apiError: apiError, contact: contact, isOpen: isOpen, onClose: onClose, onShare: onShare }), _jsx(IconMenu, { icon: _jsx(MoreHorizontal, { size: 32 }), itemForm: contact, menuItems: menuItems, disabled: menuItems.length < 1 })] })] }));
8
+ const { category, title } = props.contact;
9
+ return (_jsxs(Flex, { align: "center", justify: "space-between", children: [_jsxs(Flex, { align: "center", gap: "base", children: [_jsx(Image, { src: Contacts, boxSize: "1rem", "aria-label": (_a = t('ariaLabels.contact')) !== null && _a !== void 0 ? _a : ' ' }), _jsxs(Flex, { align: "center", gap: "base", children: [_jsx(Text, { fontSize: "xs", children: category.toUpperCase() }), title && (_jsx(Text, { fontSize: "xs", color: "gray.4", children: "|" })), _jsx(Text, { fontSize: "xs", children: title.toUpperCase() })] })] }), _jsx(ContactHeaderMenu, Object.assign({}, props))] }));
11
10
  };
@@ -0,0 +1,2 @@
1
+ import { ContactCardHeaderI } from '../../interfaces';
2
+ export declare const ContactHeaderMenu: ({ apiError, contact, menuItems, onShare, }: ContactCardHeaderI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Flex, IconButton, useDisclosure } from '@chakra-ui/react';
3
+ import { ShareIcon, MoreHorizontal, IconMenu, ShareContactPopover, } from '..';
4
+ export const ContactHeaderMenu = ({ apiError, contact, menuItems, onShare, }) => {
5
+ const { isOpen, onOpen, onClose } = useDisclosure();
6
+ return (_jsxs(Flex, { align: "center", position: "relative", gap: "base", children: [_jsx(IconButton, { "aria-label": "share", variant: "menuIcon", icon: _jsx(ShareIcon, { size: 18 }), onClick: onOpen, w: "fit-content" }), _jsx(ShareContactPopover, { apiError: apiError, contact: contact, isOpen: isOpen, onClose: onClose, onShare: onShare }), _jsx(IconMenu, { icon: _jsx(MoreHorizontal, { size: 32 }), itemForm: contact, menuItems: menuItems, disabled: menuItems.length < 1 })] }));
7
+ };
@@ -1,2 +1,2 @@
1
1
  import { ContactsContentI } from '../../interfaces';
2
- export declare const ContactsContent: ({ apiError, contacts, menuItems, handleClose, children, handleAdd, disabled, onShare, }: ContactsContentI) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ContactsContent: ({ apiError, contacts, menuItems, handleClose, children, handleAdd, disabled, onClick, onShare, }: ContactsContentI) => import("react/jsx-runtime").JSX.Element;
@@ -4,9 +4,9 @@ import { DrawerContent, DrawerHeader, DrawerBody, Flex, Stack, } from '@chakra-u
4
4
  import { Contacts } from '../../assets/images';
5
5
  import { ContactCard, LeftButtonAnimated, PanelHeader, SearchInput, } from '..';
6
6
  import { useContactsContent, useWindowDimensions } from '../../hooks';
7
- export const ContactsContent = ({ apiError, contacts, menuItems, handleClose, children, handleAdd, disabled, onShare, }) => {
7
+ export const ContactsContent = ({ apiError, contacts, menuItems, handleClose, children, handleAdd, disabled, onClick, onShare, }) => {
8
8
  const { filteredContacts, handleChange, search } = useContactsContent(contacts);
9
9
  const { windowDimensions: { width }, } = useWindowDimensions();
10
10
  const maxW = width > 413 ? '16rem' : '10rem';
11
- return (_jsxs(DrawerContent, { bg: "lightBlue.1", children: [_jsxs(DrawerHeader, { p: "0", children: [_jsx(PanelHeader, { handleCloseButton: handleClose, icon: Contacts, title: t('contacts.title') }), _jsxs(Flex, { justify: "space-between", pl: "base", my: "base", align: "center", gap: "base", children: [_jsx(SearchInput, { maxW: maxW, value: search, onChange: handleChange }), _jsx(LeftButtonAnimated, { onClick: handleAdd, label: t('contacts.addBtn'), disabled: disabled })] })] }), _jsxs(DrawerBody, { p: "0", children: [_jsx(Stack, { spacing: "2", p: "base", bg: "lightBlue.2", minHeight: "full", children: filteredContacts.map((contact, idx) => (_jsx(ContactCard, { apiError: apiError, contact: contact, menuItems: menuItems, onShare: onShare, index: idx }, contact._id))) }), children] })] }));
11
+ return (_jsxs(DrawerContent, { bg: "lightBlue.1", children: [_jsxs(DrawerHeader, { p: "0", children: [_jsx(PanelHeader, { handleCloseButton: handleClose, icon: Contacts, title: t('contacts.title') }), _jsxs(Flex, { justify: "space-between", pl: "base", my: "base", align: "center", gap: "base", children: [_jsx(SearchInput, { maxW: maxW, value: search, onChange: handleChange }), _jsx(LeftButtonAnimated, { onClick: handleAdd, label: t('contacts.addBtn'), disabled: disabled })] })] }), _jsxs(DrawerBody, { p: "0", overflowX: "hidden", children: [_jsx(Stack, { spacing: "2", p: "base", bg: "lightBlue.2", minHeight: "full", children: filteredContacts.map((contact, idx) => (_jsx(ContactCard, { apiError: apiError, contact: contact, menuItems: menuItems, onClick: onClick, onShare: onShare, index: idx }, contact._id))) }), children] })] }));
12
12
  };
@@ -0,0 +1,2 @@
1
+ import { AddEditContactPanelI } from '../../../interfaces';
2
+ export declare const AddEditContactPanel: ({ detailsComponent, isEditing, onBackClick, permissionsComponent, }: AddEditContactPanelI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { t } from 'i18next';
3
+ import { DrawerContent, DrawerHeader, DrawerBody, Flex, Box, Text, } from '@chakra-ui/react';
4
+ import { BackCircleButton, PanelHeader, TabsHeader } from '../..';
5
+ import { Contacts } from '../../../assets/images';
6
+ import { dynamicFormProxy } from '../../../proxies';
7
+ import { useSnapshot } from 'valtio';
8
+ export const AddEditContactPanel = ({ detailsComponent, isEditing, onBackClick, permissionsComponent, }) => {
9
+ var _a, _b;
10
+ const { fields } = useSnapshot(dynamicFormProxy);
11
+ const name = (_b = (_a = fields === null || fields === void 0 ? void 0 : fields[0]) === null || _a === void 0 ? void 0 : _a.children) === null || _b === void 0 ? void 0 : _b[0].children;
12
+ const fullName = `${name === null || name === void 0 ? void 0 : name[0].value} ${name === null || name === void 0 ? void 0 : name[1].value}`;
13
+ const tabs = [
14
+ {
15
+ label: t('contacts.details'),
16
+ component: detailsComponent,
17
+ },
18
+ {
19
+ label: t('contacts.permissions'),
20
+ component: permissionsComponent,
21
+ },
22
+ ];
23
+ return (_jsxs(DrawerContent, { bg: "lightBlue.1", children: [_jsxs(DrawerHeader, { p: "0", children: [_jsx(PanelHeader, { handleCloseButton: () => null, icon: Contacts, title: isEditing ? t('contacts.editContact') : t('contacts.addContact') }), _jsxs(Flex, { align: "center", gap: "base", bg: "lightBlue.2", p: "base", children: [_jsx(BackCircleButton, { onClick: onBackClick }), _jsx(Box, { borderLeft: "solid", borderWidth: "1px", borderColor: "lightBlue.6", h: "1.75rem" }), _jsx(Text, { fontSize: "lg", fontWeight: "medium", isTruncated: true, children: fullName })] })] }), _jsx(DrawerBody, { p: "0", overflowX: "hidden", position: "relative", children: _jsx(TabsHeader, { tabList: tabs }) })] }));
24
+ };
@@ -0,0 +1 @@
1
+ export * from './AddEditContactPanel';
@@ -0,0 +1 @@
1
+ export * from './AddEditContactPanel';
@@ -1,7 +1,10 @@
1
+ export * from './addEditPanel';
1
2
  export * from './shareContactForms';
3
+ export * from './viewPanel';
2
4
  export * from './ContactCard';
3
5
  export * from './ContactCardAddress';
4
6
  export * from './ContactCardHeader';
5
7
  export * from './ContactCardInfo';
8
+ export * from './ContactHeaderMenu';
6
9
  export * from './ContactsContent';
7
10
  export * from './ShareContactPopover';
@@ -1,7 +1,10 @@
1
+ export * from './addEditPanel';
1
2
  export * from './shareContactForms';
3
+ export * from './viewPanel';
2
4
  export * from './ContactCard';
3
5
  export * from './ContactCardAddress';
4
6
  export * from './ContactCardHeader';
5
7
  export * from './ContactCardInfo';
8
+ export * from './ContactHeaderMenu';
6
9
  export * from './ContactsContent';
7
10
  export * from './ShareContactPopover';
@@ -0,0 +1,2 @@
1
+ import { ViewContactPanelI } from '../../../interfaces';
2
+ export declare const CompanyInfoCard: ({ contact, }: Pick<ViewContactPanelI, "contact">) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { t } from 'i18next';
3
+ import { Box, Center, Flex, Stack, Text, Image } from '@chakra-ui/react';
4
+ import { getImageAltText } from '../../../utils';
5
+ import { Location } from '../../../assets/images';
6
+ import { CompanyRating } from './CompanyRating';
7
+ export const CompanyInfoCard = ({ contact, }) => {
8
+ if (!contact.companyInfo)
9
+ return null;
10
+ const { company, phone, url, address, city, state, zip, rating } = contact.companyInfo;
11
+ const alt = getImageAltText(Location);
12
+ return (_jsxs(Box, { position: "relative", children: [_jsx(CompanyRating, { contact: contact, position: "absolute", top: "0", right: "0", zIndex: "1" }), _jsxs(Stack, { spacing: "base", children: [_jsx(Text, { textTransform: "uppercase", fontSize: "xs", children: t('contacts.companyInfo') }), _jsxs(Flex, { gap: "base", minH: "50px", children: [_jsx(Center, { h: "78px", w: "78px", children: _jsx(Image, { src: Location, alt: alt }) }), _jsxs(Stack, { spacing: "6", children: [_jsxs(Stack, { spacing: "0.5", children: [_jsx(Text, { fontWeight: "bold", fontSize: "lg", children: company }), _jsxs(Box, { children: [_jsx(Text, { fontSize: "sm", children: phone }), _jsx(Text, { variant: "email", lineHeight: "1", fontSize: "sm", children: url })] })] }), _jsxs(Box, { children: [_jsx(Text, { fontSize: "xs", lineHeight: "16px", children: address }), _jsx(Text, { fontSize: "xs", lineHeight: "16px", children: `${city}, ${state} ${zip}` })] })] })] })] })] }));
13
+ };
@@ -0,0 +1,3 @@
1
+ import { StackProps } from '@chakra-ui/react';
2
+ import { ViewContactPanelI } from '../../../interfaces';
3
+ export declare const CompanyRating: ({ contact, ...props }: Pick<ViewContactPanelI, "contact"> & StackProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,27 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
13
+ import { t } from 'i18next';
14
+ import { Flex, Stack, Text } from '@chakra-ui/react';
15
+ import { Star } from '../..';
16
+ import { colors } from '../../../theme/colors';
17
+ export const CompanyRating = (_a) => {
18
+ var _b;
19
+ var { contact } = _a, props = __rest(_a, ["contact"]);
20
+ if (!((_b = contact.companyInfo) === null || _b === void 0 ? void 0 : _b.rating))
21
+ return null;
22
+ const { rating, _id } = contact.companyInfo;
23
+ return (_jsxs(Stack, Object.assign({ spacing: "0", align: "end" }, props, { children: [_jsx(Text, { textTransform: "uppercase", fontSize: "10px", children: t('contacts.rating') }), _jsx(Flex, { align: "center", gap: "1", children: Array.from({ length: 5 }).map((_, index) => {
24
+ const starColor = rating >= index ? colors.yellow['1'] : colors.gray['1'];
25
+ return _jsx(Star, { stroke: starColor, size: 13 }, `${_id}-${index}`);
26
+ }) })] })));
27
+ };
@@ -0,0 +1,2 @@
1
+ import { ViewContactPanelI } from '../../../interfaces';
2
+ export declare const ContactAddressCard: ({ contact, }: Pick<ViewContactPanelI, "contact">) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { t } from 'i18next';
3
+ import { Box, Center, Flex, Stack, Text, Image } from '@chakra-ui/react';
4
+ import { getImageAltText } from '../../../utils';
5
+ import { Location } from '../../../assets/images';
6
+ export const ContactAddressCard = ({ contact, }) => {
7
+ if (!contact)
8
+ return null;
9
+ const { address, city, state, zip, lastName } = contact;
10
+ const alt = getImageAltText(Location);
11
+ return (_jsxs(Stack, { spacing: "base", children: [_jsx(Text, { textTransform: "uppercase", fontSize: "xs", children: t('contacts.homeAddress') }), _jsxs(Flex, { gap: "base", minH: "50px", children: [_jsx(Center, { h: "78px", w: "78px", children: _jsx(Image, { src: Location, alt: alt }) }), _jsxs(Stack, { spacing: "base", children: [_jsx(Text, { fontWeight: "bold", fontSize: "lg", children: `${lastName}s Home` }), _jsxs(Box, { children: [_jsx(Text, { fontSize: "xs", lineHeight: "16px", children: address }), _jsx(Text, { fontSize: "xs", lineHeight: "16px", children: `${city}, ${state} ${zip}` })] })] })] })] }));
12
+ };
@@ -0,0 +1,3 @@
1
+ export declare const ContactNotes: ({ notes }: {
2
+ notes?: string | undefined;
3
+ }) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { t } from 'i18next';
3
+ import { Stack, Text } from '@chakra-ui/react';
4
+ export const ContactNotes = ({ notes = '' }) => {
5
+ if (!notes)
6
+ return null;
7
+ return (_jsxs(Stack, { spacing: "base", children: [_jsx(Text, { textTransform: "uppercase", fontSize: "xs", children: t('contacts.notes') }), _jsx(Text, { fontSize: "sm", fontFamily: "secondary", lineHeight: "16px", children: notes })] }));
8
+ };
@@ -0,0 +1,2 @@
1
+ import { ContactCardInfoI } from '../../../interfaces';
2
+ export declare const PersonalInfoCard: ({ email, firstName, index, lastName, phone, title, }: ContactCardInfoI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Center, Flex, Stack, Text } from '@chakra-ui/react';
3
+ import { randomColor } from '../../../utils';
4
+ export const PersonalInfoCard = ({ email, firstName, index, lastName, phone, title, }) => {
5
+ const name = `${firstName} ${lastName}`.trim();
6
+ const initials = firstName.charAt(0) + lastName.charAt(0);
7
+ return (_jsxs(Flex, { gap: "base", minH: "50px", align: "center", children: [_jsx(Center, { h: "78px", w: "78px", bg: randomColor(index), children: _jsx(Text, { fontSize: "36px", fontWeight: "extrabold", fontFamily: "primary", color: "neutral.white", children: initials }) }), _jsxs(Stack, { spacing: "0.5", children: [_jsx(Text, { fontWeight: "bold", fontSize: "xl", children: name }), _jsxs(Box, { children: [_jsx(Text, { fontSize: "sm", children: title }), _jsx(Text, { fontSize: "sm", children: phone }), _jsx(Text, { variant: "email", lineHeight: "1", fontSize: "sm", children: email })] })] })] }));
8
+ };
@@ -0,0 +1,2 @@
1
+ import { ViewContactPanelI } from '../../../interfaces';
2
+ export declare const RoleTag: ({ roleType }: Pick<ViewContactPanelI, "roleType">) => import("react/jsx-runtime").JSX.Element | null;
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { homeRoles } from '../../../helpers';
3
+ import { Box, Text } from '@chakra-ui/react';
4
+ export const RoleTag = ({ roleType }) => {
5
+ if (!roleType)
6
+ return null;
7
+ const { bg, name } = homeRoles[roleType];
8
+ return (_jsx(Box, { bg: bg, px: "base", pt: "2", pb: "6", position: "absolute", top: "0", left: "0", right: "0", zIndex: "-1", children: _jsx(Text, { color: "neutral.white", fontSize: "sm", fontWeight: "bold", textTransform: "uppercase", children: name }) }));
9
+ };
@@ -0,0 +1,2 @@
1
+ import { ContactCardHeaderI } from '../../../interfaces';
2
+ export declare const ViewContactHeader: (props: ContactCardHeaderI) => import("react/jsx-runtime").JSX.Element;