@homefile/components-v2 1.5.0 → 1.6.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 (237) hide show
  1. package/dist/assets/images/alerts/index.d.ts +2 -0
  2. package/dist/assets/images/alerts/index.js +2 -0
  3. package/dist/assets/images/alerts/index.ts +3 -0
  4. package/dist/assets/images/alerts/smoke-detector-expired.jpg +0 -0
  5. package/dist/assets/images/battery.svg +9 -0
  6. package/dist/assets/images/index.d.ts +4 -1
  7. package/dist/assets/images/index.js +4 -1
  8. package/dist/assets/images/index.ts +5 -0
  9. package/dist/assets/images/wind-white.svg +7 -0
  10. package/dist/assets/locales/en/index.json +69 -1
  11. package/dist/components/animations/HomieAnimation.d.ts +1 -0
  12. package/dist/components/animations/HomieAnimation.js +11 -0
  13. package/dist/components/animations/index.d.ts +1 -0
  14. package/dist/components/animations/index.js +1 -0
  15. package/dist/components/badge/CustomBadge.d.ts +5 -0
  16. package/dist/components/badge/CustomBadge.js +5 -0
  17. package/dist/components/badge/index.d.ts +5 -4
  18. package/dist/components/badge/index.js +5 -4
  19. package/dist/components/contacts/ContactCard.d.ts +1 -1
  20. package/dist/components/contacts/ContactCard.js +5 -5
  21. package/dist/components/contacts/ContactCardHeader.d.ts +1 -1
  22. package/dist/components/contacts/ContactCardHeader.js +4 -4
  23. package/dist/components/contacts/ContactCardInfo.d.ts +1 -1
  24. package/dist/components/contacts/ContactCardInfo.js +2 -2
  25. package/dist/components/contacts/ContactHeaderMenu.js +3 -3
  26. package/dist/components/contacts/ContactsContent.d.ts +1 -1
  27. package/dist/components/contacts/ContactsContent.js +31 -6
  28. package/dist/components/contacts/LetterDivider.d.ts +3 -0
  29. package/dist/components/contacts/LetterDivider.js +5 -0
  30. package/dist/components/contacts/ShareContactSection.d.ts +2 -0
  31. package/dist/components/contacts/ShareContactSection.js +26 -0
  32. package/dist/components/contacts/index.d.ts +3 -1
  33. package/dist/components/contacts/index.js +3 -1
  34. package/dist/components/contacts/shareContactForms/AddReceiverButton.d.ts +2 -0
  35. package/dist/components/contacts/shareContactForms/AddReceiverButton.js +7 -0
  36. package/dist/components/contacts/shareContactForms/SendToList.d.ts +2 -0
  37. package/dist/components/contacts/shareContactForms/SendToList.js +11 -0
  38. package/dist/components/contacts/shareContactForms/ShareContactByEmail.d.ts +2 -2
  39. package/dist/components/contacts/shareContactForms/ShareContactByEmail.js +7 -17
  40. package/dist/components/contacts/shareContactForms/ShareContactByHomefile.d.ts +2 -0
  41. package/dist/components/contacts/shareContactForms/ShareContactByHomefile.js +17 -0
  42. package/dist/components/contacts/shareContactForms/ShareContactBySMS.d.ts +2 -0
  43. package/dist/components/contacts/shareContactForms/ShareContactBySMS.js +11 -0
  44. package/dist/components/contacts/shareContactForms/index.d.ts +4 -0
  45. package/dist/components/contacts/shareContactForms/index.js +4 -0
  46. package/dist/components/contacts/sharePanel/SelectedContacts.d.ts +2 -0
  47. package/dist/components/contacts/sharePanel/SelectedContacts.js +8 -0
  48. package/dist/components/contacts/sharePanel/ShareContactsContent.d.ts +2 -0
  49. package/dist/components/contacts/sharePanel/ShareContactsContent.js +28 -0
  50. package/dist/components/contacts/sharePanel/index.d.ts +2 -0
  51. package/dist/components/contacts/sharePanel/index.js +2 -0
  52. package/dist/components/homeAssistant/HomeAssistant.js +2 -1
  53. package/dist/components/homeAssistant/HomeAssistantWrapper.d.ts +2 -1
  54. package/dist/components/homeAssistant/HomeAssistantWrapper.js +2 -3
  55. package/dist/components/homeAssistant/HomeMonitor.d.ts +2 -0
  56. package/dist/components/homeAssistant/HomeMonitor.js +6 -0
  57. package/dist/components/homeAssistant/HomeMonitorButton.d.ts +2 -0
  58. package/dist/components/homeAssistant/HomeMonitorButton.js +31 -0
  59. package/dist/components/homeAssistant/HomeMonitorSteps.d.ts +2 -0
  60. package/dist/components/homeAssistant/HomeMonitorSteps.js +11 -0
  61. package/dist/components/homeAssistant/index.d.ts +4 -0
  62. package/dist/components/homeAssistant/index.js +4 -0
  63. package/dist/components/homeAssistant/monitorAlerts/AlertHeader.d.ts +1 -0
  64. package/dist/components/homeAssistant/monitorAlerts/AlertHeader.js +7 -0
  65. package/dist/components/homeAssistant/monitorAlerts/AlertTemplate.d.ts +2 -0
  66. package/dist/components/homeAssistant/monitorAlerts/AlertTemplate.js +5 -0
  67. package/dist/components/homeAssistant/monitorAlerts/AlertTitle.d.ts +2 -0
  68. package/dist/components/homeAssistant/monitorAlerts/AlertTitle.js +5 -0
  69. package/dist/components/homeAssistant/monitorAlerts/BaseAlertCard.d.ts +3 -0
  70. package/dist/components/homeAssistant/monitorAlerts/BaseAlertCard.js +21 -0
  71. package/dist/components/homeAssistant/monitorAlerts/HomefileMonitoring.d.ts +1 -0
  72. package/dist/components/homeAssistant/monitorAlerts/HomefileMonitoring.js +7 -0
  73. package/dist/components/homeAssistant/monitorAlerts/MonitorAlerts.d.ts +2 -0
  74. package/dist/components/homeAssistant/monitorAlerts/MonitorAlerts.js +32 -0
  75. package/dist/components/homeAssistant/monitorAlerts/Notifications.d.ts +4 -0
  76. package/dist/components/homeAssistant/monitorAlerts/Notifications.js +9 -0
  77. package/dist/components/homeAssistant/monitorAlerts/alertDetails/ChangeAirFilter.d.ts +1 -0
  78. package/dist/components/homeAssistant/monitorAlerts/alertDetails/ChangeAirFilter.js +11 -0
  79. package/dist/components/homeAssistant/monitorAlerts/alertDetails/CustomDivider.d.ts +1 -0
  80. package/dist/components/homeAssistant/monitorAlerts/alertDetails/CustomDivider.js +5 -0
  81. package/dist/components/homeAssistant/monitorAlerts/alertDetails/SmokeDetectorBattery.d.ts +1 -0
  82. package/dist/components/homeAssistant/monitorAlerts/alertDetails/SmokeDetectorBattery.js +11 -0
  83. package/dist/components/homeAssistant/monitorAlerts/alertDetails/SmokeDetectorExpired.d.ts +1 -0
  84. package/dist/components/homeAssistant/monitorAlerts/alertDetails/SmokeDetectorExpired.js +11 -0
  85. package/dist/components/homeAssistant/monitorAlerts/alertDetails/index.d.ts +4 -0
  86. package/dist/components/homeAssistant/monitorAlerts/alertDetails/index.js +4 -0
  87. package/dist/components/homeAssistant/monitorAlerts/index.d.ts +8 -0
  88. package/dist/components/homeAssistant/monitorAlerts/index.js +8 -0
  89. package/dist/components/homeAssistant/panel/HomeAssistantPanel.js +1 -1
  90. package/dist/components/homeBoard/HomeBoard.js +1 -1
  91. package/dist/components/inputs/TextInput.d.ts +1 -1
  92. package/dist/components/inputs/TextInput.js +2 -2
  93. package/dist/components/partner/PartnerFooter.d.ts +1 -1
  94. package/dist/components/partner/PartnerFooter.js +2 -2
  95. package/dist/components/partner/ShortPartnerTile.d.ts +1 -1
  96. package/dist/components/partner/ShortPartnerTile.js +2 -2
  97. package/dist/helpers/homeAssistant/HomeAssistant.helper.js +4 -4
  98. package/dist/hooks/contacts/index.d.ts +3 -0
  99. package/dist/hooks/contacts/index.js +3 -0
  100. package/dist/hooks/contacts/useContactsContent.d.ts +2 -1
  101. package/dist/hooks/contacts/useContactsContent.js +28 -2
  102. package/dist/hooks/contacts/useShareContactBy.d.ts +15 -0
  103. package/dist/hooks/contacts/useShareContactBy.js +33 -0
  104. package/dist/hooks/contacts/useShareContactByHomefile.d.ts +16 -0
  105. package/dist/hooks/contacts/useShareContactByHomefile.js +25 -0
  106. package/dist/hooks/contacts/useShareContactsContent.d.ts +8 -0
  107. package/dist/hooks/contacts/useShareContactsContent.js +26 -0
  108. package/dist/hooks/useAssignableList.d.ts +2 -0
  109. package/dist/hooks/useAssignableList.js +10 -1
  110. package/dist/index.d.ts +1 -1
  111. package/dist/index.js +1 -1
  112. package/dist/interfaces/contacts/ContactCard.interface.d.ts +4 -3
  113. package/dist/interfaces/contacts/ContactCardHeader.interface.d.ts +3 -3
  114. package/dist/interfaces/contacts/ContactCardInfo.interface.d.ts +1 -0
  115. package/dist/interfaces/contacts/ContactsContent.interface.d.ts +12 -2
  116. package/dist/interfaces/contacts/SelectedContacts.interface.d.ts +5 -0
  117. package/dist/interfaces/contacts/ShareContactBy.interface.d.ts +21 -0
  118. package/dist/interfaces/contacts/ShareContactSection.interface.d.ts +4 -0
  119. package/dist/interfaces/contacts/ShareContactSection.interface.js +1 -0
  120. package/dist/interfaces/contacts/ShareContactsContent.interface.d.ts +17 -0
  121. package/dist/interfaces/contacts/ShareContactsContent.interface.js +1 -0
  122. package/dist/interfaces/contacts/ViewContactPanel.interface.d.ts +2 -2
  123. package/dist/interfaces/contacts/index.d.ts +4 -2
  124. package/dist/interfaces/contacts/index.js +4 -2
  125. package/dist/interfaces/homeAssistant/BaseAlertCard.interface.d.ts +8 -0
  126. package/dist/interfaces/homeAssistant/BaseAlertCard.interface.js +1 -0
  127. package/dist/interfaces/homeAssistant/HomeMonitorSteps.interface.d.ts +13 -0
  128. package/dist/interfaces/homeAssistant/HomeMonitorSteps.interface.js +1 -0
  129. package/dist/interfaces/homeAssistant/MonitorAlerts.interface.d.ts +4 -0
  130. package/dist/interfaces/homeAssistant/MonitorAlerts.interface.js +1 -0
  131. package/dist/interfaces/homeAssistant/index.d.ts +3 -0
  132. package/dist/interfaces/homeAssistant/index.js +3 -0
  133. package/dist/interfaces/partner/PartnerFooter.interface.d.ts +1 -0
  134. package/dist/mocks/contacts/contacts.mock.d.ts +1 -0
  135. package/dist/mocks/contacts/contacts.mock.js +86 -2
  136. package/dist/stories/animations/HomieAnimation.stories.d.ts +4 -0
  137. package/dist/stories/animations/HomieAnimation.stories.js +11 -0
  138. package/dist/stories/assets/Illustrations.stories.js +2 -2
  139. package/dist/stories/contacts/ContactsContent.stories.d.ts +1 -10
  140. package/dist/stories/contacts/ContactsContent.stories.js +40 -13
  141. package/dist/stories/homeAssistant/HomeMonitor.stories.d.ts +4 -0
  142. package/dist/stories/homeAssistant/HomeMonitor.stories.js +18 -0
  143. package/dist/stories/homeAssistant/monitorAlerts/HomeAssistant.stories.d.ts +5 -0
  144. package/dist/stories/homeAssistant/monitorAlerts/HomeAssistant.stories.js +22 -0
  145. package/dist/theme/colors.d.ts +4 -0
  146. package/dist/theme/colors.js +4 -0
  147. package/package.json +2 -1
  148. package/src/assets/images/alerts/index.ts +3 -0
  149. package/src/assets/images/alerts/smoke-detector-expired.jpg +0 -0
  150. package/src/assets/images/battery.svg +9 -0
  151. package/src/assets/images/index.ts +5 -0
  152. package/src/assets/images/wind-white.svg +7 -0
  153. package/src/assets/locales/en/index.json +69 -1
  154. package/src/components/animations/HomieAnimation.tsx +12 -0
  155. package/src/components/animations/index.ts +1 -0
  156. package/src/components/badge/CustomBadge.tsx +22 -0
  157. package/src/components/badge/index.ts +5 -4
  158. package/src/components/contacts/ContactCard.tsx +10 -11
  159. package/src/components/contacts/ContactCardHeader.tsx +12 -4
  160. package/src/components/contacts/ContactCardInfo.tsx +11 -8
  161. package/src/components/contacts/ContactHeaderMenu.tsx +3 -15
  162. package/src/components/contacts/ContactsContent.tsx +143 -17
  163. package/src/components/contacts/LetterDivider.tsx +15 -0
  164. package/src/components/contacts/ShareContactSection.tsx +58 -0
  165. package/src/components/contacts/index.ts +3 -1
  166. package/src/components/contacts/shareContactForms/AddReceiverButton.tsx +20 -0
  167. package/src/components/contacts/shareContactForms/SendToList.tsx +47 -0
  168. package/src/components/contacts/shareContactForms/ShareContactByEmail.tsx +40 -41
  169. package/src/components/contacts/shareContactForms/ShareContactByHomefile.tsx +88 -0
  170. package/src/components/contacts/shareContactForms/ShareContactBySMS.tsx +49 -0
  171. package/src/components/contacts/shareContactForms/index.ts +4 -0
  172. package/src/components/contacts/sharePanel/SelectedContacts.tsx +37 -0
  173. package/src/components/contacts/sharePanel/ShareContactsContent.tsx +68 -0
  174. package/src/components/contacts/sharePanel/index.ts +2 -0
  175. package/src/components/homeAssistant/HomeAssistant.tsx +5 -1
  176. package/src/components/homeAssistant/HomeAssistantWrapper.tsx +3 -1
  177. package/src/components/homeAssistant/HomeMonitor.tsx +11 -0
  178. package/src/components/homeAssistant/HomeMonitorButton.tsx +96 -0
  179. package/src/components/homeAssistant/HomeMonitorSteps.tsx +31 -0
  180. package/src/components/homeAssistant/index.ts +4 -0
  181. package/src/components/homeAssistant/monitorAlerts/AlertHeader.tsx +30 -0
  182. package/src/components/homeAssistant/monitorAlerts/AlertTemplate.tsx +25 -0
  183. package/src/components/homeAssistant/monitorAlerts/AlertTitle.tsx +16 -0
  184. package/src/components/homeAssistant/monitorAlerts/BaseAlertCard.tsx +60 -0
  185. package/src/components/homeAssistant/monitorAlerts/HomefileMonitoring.tsx +16 -0
  186. package/src/components/homeAssistant/monitorAlerts/MonitorAlerts.tsx +47 -0
  187. package/src/components/homeAssistant/monitorAlerts/Notifications.tsx +32 -0
  188. package/src/components/homeAssistant/monitorAlerts/alertDetails/ChangeAirFilter.tsx +54 -0
  189. package/src/components/homeAssistant/monitorAlerts/alertDetails/CustomDivider.tsx +5 -0
  190. package/src/components/homeAssistant/monitorAlerts/alertDetails/SmokeDetectorBattery.tsx +54 -0
  191. package/src/components/homeAssistant/monitorAlerts/alertDetails/SmokeDetectorExpired.tsx +43 -0
  192. package/src/components/homeAssistant/monitorAlerts/alertDetails/index.ts +4 -0
  193. package/src/components/homeAssistant/monitorAlerts/index.ts +8 -0
  194. package/src/components/homeAssistant/panel/HomeAssistantPanel.tsx +1 -1
  195. package/src/components/homeBoard/HomeBoard.tsx +2 -1
  196. package/src/components/inputs/TextInput.tsx +2 -1
  197. package/src/components/partner/PartnerFooter.tsx +2 -2
  198. package/src/components/partner/ShortPartnerTile.tsx +2 -1
  199. package/src/helpers/homeAssistant/HomeAssistant.helper.tsx +4 -4
  200. package/src/hooks/contacts/index.ts +4 -1
  201. package/src/hooks/contacts/useContactsContent.ts +38 -4
  202. package/src/hooks/contacts/useShareContactBy.ts +45 -0
  203. package/src/hooks/contacts/useShareContactByHomefile.ts +46 -0
  204. package/src/hooks/contacts/useShareContactsContent.ts +38 -0
  205. package/src/hooks/useAssignableList.ts +11 -1
  206. package/src/index.ts +6 -0
  207. package/src/interfaces/contacts/ContactCard.interface.ts +4 -7
  208. package/src/interfaces/contacts/ContactCardHeader.interface.ts +3 -3
  209. package/src/interfaces/contacts/ContactCardInfo.interface.ts +1 -0
  210. package/src/interfaces/contacts/ContactsContent.interface.ts +13 -2
  211. package/src/interfaces/contacts/SelectedContacts.interface.ts +6 -0
  212. package/src/interfaces/contacts/ShareContactBy.interface.ts +25 -0
  213. package/src/interfaces/contacts/ShareContactSection.interface.ts +6 -0
  214. package/src/interfaces/contacts/ShareContactsContent.interface.ts +24 -0
  215. package/src/interfaces/contacts/ViewContactPanel.interface.ts +2 -2
  216. package/src/interfaces/contacts/index.ts +4 -2
  217. package/src/interfaces/homeAssistant/BaseAlertCard.interface.ts +8 -0
  218. package/src/interfaces/homeAssistant/HomeMonitorSteps.interface.ts +15 -0
  219. package/src/interfaces/homeAssistant/MonitorAlerts.interface.ts +8 -0
  220. package/src/interfaces/homeAssistant/index.ts +3 -0
  221. package/src/interfaces/partner/PartnerFooter.interface.ts +1 -0
  222. package/src/mocks/contacts/contacts.mock.ts +87 -2
  223. package/src/stories/animations/HomieAnimation.stories.tsx +17 -0
  224. package/src/stories/assets/Illustrations.stories.tsx +2 -0
  225. package/src/stories/contacts/ContactsContent.stories.tsx +73 -16
  226. package/src/stories/homeAssistant/HomeMonitor.stories.tsx +43 -0
  227. package/src/stories/homeAssistant/monitorAlerts/HomeAssistant.stories.tsx +30 -0
  228. package/src/theme/colors.ts +4 -0
  229. package/dist/components/contacts/ShareContactPopover.d.ts +0 -2
  230. package/dist/components/contacts/ShareContactPopover.js +0 -32
  231. package/dist/interfaces/contacts/ShareContactByEmail.interface.d.ts +0 -11
  232. package/dist/interfaces/contacts/ShareContactPopover.interface.d.ts +0 -8
  233. package/src/components/contacts/ShareContactPopover.tsx +0 -106
  234. package/src/interfaces/contacts/ShareContactByEmail.interface.ts +0 -12
  235. package/src/interfaces/contacts/ShareContactPopover.interface.ts +0 -9
  236. /package/dist/interfaces/contacts/{ShareContactByEmail.interface.js → SelectedContacts.interface.js} +0 -0
  237. /package/dist/interfaces/contacts/{ShareContactPopover.interface.js → ShareContactBy.interface.js} +0 -0
@@ -0,0 +1,2 @@
1
+ import SmokeDetectroExpiredImage from './smoke-detector-expired.jpg';
2
+ export { SmokeDetectroExpiredImage };
@@ -0,0 +1,2 @@
1
+ import SmokeDetectroExpiredImage from './smoke-detector-expired.jpg';
2
+ export { SmokeDetectroExpiredImage };
@@ -0,0 +1,3 @@
1
+ import SmokeDetectroExpiredImage from './smoke-detector-expired.jpg'
2
+
3
+ export { SmokeDetectroExpiredImage }
@@ -0,0 +1,9 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="26.027" height="44.459" viewBox="0 0 26.027 44.459">
2
+ <g id="Group_22444" data-name="Group 22444" transform="translate(-6573.237 14695.079)">
3
+ <g id="Group_22328" data-name="Group 22328" transform="translate(-838.979)">
4
+ <rect id="Rectangle_25697" data-name="Rectangle 25697" width="4.116" height="16.135" transform="translate(7417.163 -14690.963) rotate(-90)" fill="#969696"/>
5
+ <path id="Path_16018" data-name="Path 16018" d="M0,0V26.027H40.343V0Z" transform="translate(7412.217 -14650.62) rotate(-90)" fill="#696969"/>
6
+ </g>
7
+ <path id="Path_16020" data-name="Path 16020" d="M0,16.366H8.761L4.507,28.283,16.514,11.9H7.757L12.516,0Z" transform="translate(6577.994 -14685.009)" fill="#ffbd27"/>
8
+ </g>
9
+ </svg>
@@ -3,6 +3,7 @@ import AlertDeletePurple from './alert-delete-purple.svg';
3
3
  import Arrow from './arrow.svg';
4
4
  import Batery from './batery.svg';
5
5
  import Bathroom from './bathroom.svg';
6
+ import Battery from './battery.svg';
6
7
  import Battery2 from './battery2.svg';
7
8
  import Bedroom from './bedroom.svg';
8
9
  import BgBlue from './bg-blue.png';
@@ -146,12 +147,14 @@ import Warranty from './warranty.svg';
146
147
  import WellDone from './well-done.png';
147
148
  import WholeHome from './whole-home.svg';
148
149
  import Wind from './wind.svg';
150
+ import WindWhite from './wind-white.svg';
149
151
  import Wizard from './wizard.svg';
150
152
  import WizardDetailed from './wizard-detailed.svg';
151
153
  import WizardQuick from './wizard-quick.svg';
152
154
  import YellowFolder from './yellow-folder.svg';
153
155
  import YellowFolderUnshared from './yellow-folder-unshared.svg';
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, };
156
+ export { AlertDelete, AlertDeletePurple, Arrow, Batery, Bathroom, Battery, 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, WindWhite, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, };
157
+ export * from './alerts';
155
158
  export * from './appliances';
156
159
  export * from './clouds-animation';
157
160
  export * from './form';
@@ -3,6 +3,7 @@ import AlertDeletePurple from './alert-delete-purple.svg';
3
3
  import Arrow from './arrow.svg';
4
4
  import Batery from './batery.svg';
5
5
  import Bathroom from './bathroom.svg';
6
+ import Battery from './battery.svg';
6
7
  import Battery2 from './battery2.svg';
7
8
  import Bedroom from './bedroom.svg';
8
9
  import BgBlue from './bg-blue.png';
@@ -146,12 +147,14 @@ import Warranty from './warranty.svg';
146
147
  import WellDone from './well-done.png';
147
148
  import WholeHome from './whole-home.svg';
148
149
  import Wind from './wind.svg';
150
+ import WindWhite from './wind-white.svg';
149
151
  import Wizard from './wizard.svg';
150
152
  import WizardDetailed from './wizard-detailed.svg';
151
153
  import WizardQuick from './wizard-quick.svg';
152
154
  import YellowFolder from './yellow-folder.svg';
153
155
  import YellowFolderUnshared from './yellow-folder-unshared.svg';
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, };
156
+ export { AlertDelete, AlertDeletePurple, Arrow, Batery, Bathroom, Battery, 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, WindWhite, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, };
157
+ export * from './alerts';
155
158
  export * from './appliances';
156
159
  export * from './clouds-animation';
157
160
  export * from './form';
@@ -3,6 +3,7 @@ import AlertDeletePurple from './alert-delete-purple.svg'
3
3
  import Arrow from './arrow.svg'
4
4
  import Batery from './batery.svg'
5
5
  import Bathroom from './bathroom.svg'
6
+ import Battery from './battery.svg'
6
7
  import Battery2 from './battery2.svg'
7
8
  import Bedroom from './bedroom.svg'
8
9
  import BgBlue from './bg-blue.png'
@@ -146,6 +147,7 @@ import Warranty from './warranty.svg'
146
147
  import WellDone from './well-done.png'
147
148
  import WholeHome from './whole-home.svg'
148
149
  import Wind from './wind.svg'
150
+ import WindWhite from './wind-white.svg'
149
151
  import Wizard from './wizard.svg'
150
152
  import WizardDetailed from './wizard-detailed.svg'
151
153
  import WizardQuick from './wizard-quick.svg'
@@ -158,6 +160,7 @@ export {
158
160
  Arrow,
159
161
  Batery,
160
162
  Bathroom,
163
+ Battery,
161
164
  Battery2,
162
165
  Bedroom,
163
166
  BgBlue,
@@ -301,6 +304,7 @@ export {
301
304
  WellDone,
302
305
  WholeHome,
303
306
  Wind,
307
+ WindWhite,
304
308
  Wizard,
305
309
  WizardDetailed,
306
310
  WizardQuick,
@@ -308,6 +312,7 @@ export {
308
312
  YellowFolderUnshared,
309
313
  }
310
314
 
315
+ export * from './alerts'
311
316
  export * from './appliances'
312
317
  export * from './clouds-animation'
313
318
  export * from './form'
@@ -0,0 +1,7 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="28.666" height="29.146" viewBox="0 0 28.666 29.146">
2
+ <g id="Group_21361" data-name="Group 21361" transform="translate(-2367.248 -359.109)">
3
+ <path id="Path_15541" data-name="Path 15541" d="M13.425,10.969H4.109V8.278h9.316a2.794,2.794,0,1,0-2.794-2.794H7.941a5.484,5.484,0,1,1,5.484,5.484" transform="translate(2365.205 359.109)" fill="#fff"/>
4
+ <path id="Path_15542" data-name="Path 15542" d="M20.261,45.125a5.49,5.49,0,0,1-5.484-5.484h2.691a2.794,2.794,0,1,0,2.794-2.794H4.116v-2.69H20.261a5.484,5.484,0,0,1,0,10.969" transform="translate(2365.202 343.13)" fill="#fff"/>
5
+ <path id="Path_15543" data-name="Path 15543" d="M23.182,21.257H0V18.566H23.182a2.794,2.794,0,1,0-2.794-2.794H17.7a5.484,5.484,0,1,1,5.484,5.484" transform="translate(2367.248 353.995)" fill="#fff"/>
6
+ </g>
7
+ </svg>
@@ -104,11 +104,13 @@
104
104
  "continue": "Continue",
105
105
  "close": "Close",
106
106
  "done": "Done",
107
+ "delete": "Delete",
107
108
  "forward": "Forward",
108
109
  "next": "Next",
109
110
  "previous": "Previous",
110
111
  "save": "Save",
111
112
  "send": "Send",
113
+ "share": "Share",
112
114
  "skip": "Skip for now",
113
115
  "saveStep": "Save Step"
114
116
  },
@@ -148,12 +150,20 @@
148
150
  "error": "Email should be from a valid Homefile account",
149
151
  "homeAddress": "Home Address",
150
152
  "notes": "Notes",
153
+ "sendContact": "You’ve selected to send contact information to",
151
154
  "shareContact": "Share Contact",
155
+ "shareWithEmail": "Share with someone via email",
156
+ "shareWithSMS": "Share with someone via text/SMS",
157
+ "shareWithSocial": "Share with your social account",
158
+ "shareWithHomefile": "Shared with a Homefile user(s)",
152
159
  "permissions": "Permissions",
153
160
  "placeholders": {
154
- "email": "Enter Email"
161
+ "searchContact": "Search for a contact by email",
162
+ "email": "Enter Email",
163
+ "sms": "Enter Area Code + Number"
155
164
  },
156
165
  "rating": "Homeowner Rating",
166
+ "recipient": "recipient",
157
167
  "title": "Contacts"
158
168
  },
159
169
  "daysOfWeek": {
@@ -340,7 +350,65 @@
340
350
  "updated": "Updated"
341
351
  },
342
352
  "homeAssistant": {
353
+ "alerts": {
354
+ "airFilter": {
355
+ "description": "HEPA stands for High-Efficiency Particulate Air. HEPA filters catch really tiny particles, as small as 0.3 micrometers. They’re used in air purifiers, vacuum cleaners, and HVAC systems to get rid of things like allergens, dust, and pet dander, making the air cleaner and healthier.",
356
+ "main": {
357
+ "description": "Changing your air filter every 30 days ensures efficient system performance and improves indoor air quality by trapping dust and allergens.",
358
+ "title": "Time to change your heating & cooling air filter."
359
+ },
360
+ "bestBadge": "Best",
361
+ "betterBadge": "Better",
362
+ "title": "Homefile recommends 2 HEPA filter grades:",
363
+ "best": {
364
+ "description": "Standard in many places, these filters capture 99.97% of tiny particles. They are the go-to choice for homes and businesses, ensuring the air is clean and healthy. True HEPA filters are like the dependable players in the indoor air quality game.",
365
+ "title": "HEPA (Grade H)"
366
+ },
367
+ "better": {
368
+ "description": "These filters catch about 99% of particles. They are cost-effective and work well for everyday use, like in affordable air purifiers and vacuum cleaners. Think of them as the reliable team members suitable for common spaces.",
369
+ "title": "HEPA Type (Grade E)"
370
+ }
371
+ },
372
+ "smokeDetectorBattery": {
373
+ "main": {
374
+ "description": "Checking your smoke detector batteries monthly ensures they function properly and keep your home safe from fire hazards.",
375
+ "title": "Check the batteries in your Smoke detectors."
376
+ },
377
+ "bestBadge": "Best",
378
+ "betterBadge": "Better",
379
+ "title": "Which batteries are best to use?",
380
+ "best": {
381
+ "description": "Lithium batteries last around 5 years (some lithium cells are also rechargeable, and when used in a mains-powered alarm may last for the entire functional lifespan of the alarm).",
382
+ "title": "Lithium Batteries"
383
+ },
384
+ "better": {
385
+ "description": "9V alkaline batteries last 12-18 months.",
386
+ "title": "9 Volt Batteries"
387
+ }
388
+ },
389
+ "smokeDetectorExpired": {
390
+ "description": "After about 5 years, alarm sensors can become less sensitive to smoke particles. If your alarm is older than 5 years and appears to be working, we still recommend replacing it so you have the best possible protection for your home.",
391
+ "main": {
392
+ "description": "Checking your smoke detector batteries monthly ensures they function properly and keep your home safe from fire hazards.",
393
+ "title": "Your smoke detectors could be expired."
394
+ },
395
+ "title": "How to check if your detectors are expired?",
396
+ "check1": "Remove the alarm from the wall or ceiling.",
397
+ "check2": "Look at the back of the alarm for the date of manufacture.",
398
+ "check3": "If older than 5 years, replace."
399
+ }
400
+ },
343
401
  "details": "Provide details about your home’s",
402
+ "homeMonitor": "Home Monitor",
403
+ "homeMonitoring": "Homefile is monitoring your home.",
404
+ "monitorAlerts": {
405
+ "collapse": "Collapse Alert",
406
+ "homeAction": "Home Action",
407
+ "maintenance": "Maintenance Monitor",
408
+ "protection": "Protection Monitor",
409
+ "review": "Review Alert"
410
+ },
411
+ "notifications": "Notification coming",
344
412
  "selectAppliances": "Select the appliances you have in your home:",
345
413
  "steps": {
346
414
  "appliances": "Appliances",
@@ -0,0 +1 @@
1
+ export declare const HomieAnimation: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useRive } from '@rive-app/react-canvas';
3
+ const url = process.env.REACT_APP_RIVE_ASSETS;
4
+ export const HomieAnimation = () => {
5
+ const { RiveComponent } = useRive({
6
+ src: `${url}/homie-v2.riv`,
7
+ stateMachines: 'State Machine 1',
8
+ autoplay: true,
9
+ });
10
+ return _jsx(RiveComponent, {});
11
+ };
@@ -1 +1,2 @@
1
1
  export * from './CloudsAnimation';
2
+ export * from './HomieAnimation';
@@ -1 +1,2 @@
1
1
  export * from './CloudsAnimation';
2
+ export * from './HomieAnimation';
@@ -0,0 +1,5 @@
1
+ export declare const CustomBadge: ({ bg, color, label, }: {
2
+ bg?: string | undefined;
3
+ color?: string | undefined;
4
+ label?: string | undefined;
5
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Center } from '@chakra-ui/react';
3
+ export const CustomBadge = ({ bg = 'neutral.white', color = 'neutral.white', label = '', }) => {
4
+ return (_jsx(Center, { bg: bg, fontSize: "xxs", color: color, fontWeight: "bold", py: "1", px: "2", rounded: "md", textTransform: "uppercase", children: label }));
5
+ };
@@ -1,4 +1,5 @@
1
- export * from "./LetterBadge";
2
- export * from "./NewBadge";
3
- export * from "./NumberBadge";
4
- export * from "./TextBadge";
1
+ export * from './CustomBadge';
2
+ export * from './LetterBadge';
3
+ export * from './NewBadge';
4
+ export * from './NumberBadge';
5
+ export * from './TextBadge';
@@ -1,4 +1,5 @@
1
- export * from "./LetterBadge";
2
- export * from "./NewBadge";
3
- export * from "./NumberBadge";
4
- export * from "./TextBadge";
1
+ export * from './CustomBadge';
2
+ export * from './LetterBadge';
3
+ export * from './NewBadge';
4
+ export * from './NumberBadge';
5
+ export * from './TextBadge';
@@ -1,2 +1,2 @@
1
1
  import { ContactCardI } from '../../interfaces';
2
- export declare const ContactCard: ({ apiError, contact, index, menuItems, onClick, onShare, }: ContactCardI) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ContactCard: ({ apiError, contact, index, menuItems, onClick, showAvatar, showHeader, }: ContactCardI) => import("react/jsx-runtime").JSX.Element;
@@ -2,12 +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, onClick, onShare, }) => {
5
+ export const ContactCard = ({ apiError, contact, index, menuItems, onClick, showAvatar, showHeader = true, }) => {
6
6
  const hasOnClick = typeof onClick === 'function';
7
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 })] }) }));
8
+ bg: hasOnClick ? 'lightGreen.1' : 'neutral.white',
9
+ }, cursor: hasOnClick ? 'pointer' : 'default', children: _jsxs(Stack, { pb: "base", pt: "1", px: "base", spacing: "base", children: [showHeader && (_jsx(ContactCardHeader, { apiError: apiError, contact: contact })), _jsx(CardBody, { contact, index, showAvatar })] }) }));
10
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)) })] }));
11
+ const CardBody = ({ contact, index, showAvatar, }) => {
12
+ return (_jsxs(Flex, { justify: "space-between", align: "stretch", gap: "base", children: [_jsx(ContactCardInfo, Object.assign({}, contact, { index, showAvatar })), _jsx(Box, { borderLeft: `1px solid ${colors.lightBlue[1]}`, w: "45%", pl: "base", children: _jsx(ContactCardAddress, Object.assign({}, contact)) })] }));
13
13
  };
@@ -1,2 +1,2 @@
1
1
  import { ContactCardHeaderI } from '../../interfaces';
2
- export declare const ContactCardHeader: (props: ContactCardHeaderI) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ContactCardHeader: ({ contact, menuItems, }: ContactCardHeaderI) => import("react/jsx-runtime").JSX.Element;
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { t } from 'i18next';
3
3
  import { Flex, Image, Text } from '@chakra-ui/react';
4
4
  import { Contacts } from '../../assets/images';
5
- import { ContactHeaderMenu } from '..';
6
- export const ContactCardHeader = (props) => {
5
+ import { IconMenu, MoreHorizontal } from '..';
6
+ export const ContactCardHeader = ({ contact, menuItems = [], }) => {
7
7
  var _a;
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))] }));
8
+ const { category, title } = 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(IconMenu, { icon: _jsx(MoreHorizontal, { size: 32 }), itemForm: contact, menuItems: menuItems, disabled: menuItems.length < 1 })] }));
10
10
  };
@@ -1,2 +1,2 @@
1
1
  import { ContactCardInfoI } from '../../interfaces';
2
- export declare const ContactCardInfo: ({ company, email, firstName, index, lastName, phone, }: ContactCardInfoI) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ContactCardInfo: ({ company, email, firstName, index, lastName, phone, showAvatar, }: ContactCardInfoI) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Avatar, Box, Flex, Stack, Text } from '@chakra-ui/react';
3
3
  import { randomColor } from '../../utils';
4
- export const ContactCardInfo = ({ company, email, firstName, index, lastName, phone, }) => {
4
+ export const ContactCardInfo = ({ company, email, firstName, index, lastName, phone, showAvatar = true, }) => {
5
5
  const name = `${firstName} ${lastName}`.trim() || company;
6
- return (_jsxs(Flex, { gap: "base", minH: "50px", align: "center", children: [_jsx(Avatar, { w: "40px", h: "40px", bg: randomColor(index), fontWeight: "bold", color: "neutral.white", name: name }), _jsxs(Stack, { w: "full", spacing: "0.5", children: [_jsx(Text, { fontWeight: "bold", children: name }), _jsxs(Box, { children: [_jsx(Text, { fontSize: "xs", children: phone }), _jsx(Text, { variant: "email", lineHeight: "0.8", children: email })] })] })] }));
6
+ return (_jsxs(Flex, { gap: "base", minH: "50px", align: "center", children: [showAvatar && (_jsx(Avatar, { w: "40px", h: "40px", bg: randomColor(index), fontWeight: "bold", color: "neutral.white", name: name })), _jsxs(Stack, { w: "full", spacing: "0.5", children: [_jsx(Text, { fontWeight: "bold", children: name }), _jsxs(Box, { children: [_jsx(Text, { fontSize: "xs", children: phone }), _jsx(Text, { variant: "email", lineHeight: "0.8", children: email })] })] })] }));
7
7
  };
@@ -1,7 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Flex, IconButton, useDisclosure } from '@chakra-ui/react';
3
- import { ShareIcon, MoreHorizontal, IconMenu, ShareContactPopover, } from '..';
4
- export const ContactHeaderMenu = ({ apiError, contact, menuItems, onShare, }) => {
3
+ import { ShareIcon, MoreHorizontal, IconMenu } from '..';
4
+ export const ContactHeaderMenu = ({ apiError, contact, menuItems, onShare = () => null, }) => {
5
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 })] }));
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(IconMenu, { icon: _jsx(MoreHorizontal, { size: 32 }), itemForm: contact, menuItems: menuItems, disabled: Number(menuItems === null || menuItems === void 0 ? void 0 : menuItems.length) < 1 })] }));
7
7
  };
@@ -1,2 +1,2 @@
1
1
  import { ContactsContentI } from '../../interfaces';
2
- export declare const ContactsContent: ({ apiError, contacts, menuItems, handleClose, children, handleAdd, disabled, onClick, onShare, }: ContactsContentI) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ContactsContent: ({ apiError, contacts, menuItems, handleClose, children, handleAdd, disabled, onClick, onDeleteContacts, onShareContacts, }: ContactsContentI) => import("react/jsx-runtime").JSX.Element;
@@ -1,12 +1,37 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { t } from 'i18next';
3
- import { DrawerContent, DrawerHeader, DrawerBody, Flex, Stack, } from '@chakra-ui/react';
3
+ import { DrawerContent, DrawerHeader, DrawerBody, Flex, Stack, Checkbox, Box, Text, DrawerFooter, } from '@chakra-ui/react';
4
4
  import { Contacts } from '../../assets/images';
5
- import { ContactCard, LeftButtonAnimated, PanelHeader, SearchInput, } from '..';
6
- import { useContactsContent, useWindowDimensions } from '../../hooks';
7
- export const ContactsContent = ({ apiError, contacts, menuItems, handleClose, children, handleAdd, disabled, onClick, onShare, }) => {
8
- const { filteredContacts, handleChange, search } = useContactsContent(contacts);
5
+ import { ContactCard, FooterButtons, FooterDrawer, LeftButtonAnimated, LetterDivider, PanelHeader, SearchInput, } from '..';
6
+ import { useAssignableList, useContactsContent, useWindowDimensions, } from '../../hooks';
7
+ export const ContactsContent = ({ apiError, contacts, menuItems, handleClose, children, handleAdd, disabled, onClick, onDeleteContacts, onShareContacts, }) => {
8
+ const { contactsWithoutFirstOrLastName, handleChange, search, splittedContacts, } = useContactsContent(contacts);
9
+ const { getContactByIds, handleItemSelect, handleSelectAll, isItemSelected, itemsSelected, } = useAssignableList({
10
+ onItemSelectedChange: () => null,
11
+ items: contacts,
12
+ });
9
13
  const { windowDimensions: { width }, } = useWindowDimensions();
10
14
  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", 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] })] }));
15
+ 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: [_jsxs(Stack, { spacing: "base", pt: "base", pb: "120px", pr: "base", bg: "lightBlue.5", minHeight: "full", children: [_jsxs(Flex, { gap: "3", pl: "base", children: [_jsx(Checkbox, { onChange: handleSelectAll }), _jsx(Text, { fontFamily: "secondary", fontSize: "xs", children: t('subscription.select') })] }), _jsx(Box, { children: Object.keys(splittedContacts).map((letter, idx) => {
16
+ const showLetterDivider = idx !== 0;
17
+ return (_jsxs(Stack, { spacing: "0", children: [showLetterDivider && _jsx(LetterDivider, { letter: letter }), _jsx(Stack, { spacing: "2px", children: splittedContacts[letter].map((contact, idx) => {
18
+ const selected = isItemSelected(contact._id);
19
+ return (_jsx(Card, { apiError: apiError, contact: contact, onClick: onClick, index: idx, menuItems: menuItems, selected: selected, onChange: handleItemSelect }, contact._id));
20
+ }) })] }, letter));
21
+ }) }), Number(contactsWithoutFirstOrLastName.length) > 0 && (_jsx(LetterDivider, { letter: "Others" })), _jsx(Box, { children: contactsWithoutFirstOrLastName.map((contact, idx) => {
22
+ const selected = isItemSelected(contact._id);
23
+ return (_jsx(Card, { apiError: apiError, contact: contact, onClick: onClick, index: idx, menuItems: menuItems, selected: selected, onChange: handleItemSelect }, contact._id));
24
+ }) })] }), children] }), _jsx(DrawerFooter, { p: "0", children: _jsx(FooterDrawer, { isOpen: true, children: _jsx(FooterButtons, { button1: {
25
+ buttonStyle: 'primaryFooter',
26
+ label: t('buttons.share'),
27
+ isDisabled: Number(itemsSelected.length) === 0,
28
+ onClick: () => onShareContacts(getContactByIds(itemsSelected)),
29
+ }, button2: {
30
+ buttonStyle: 'secondaryFooter',
31
+ label: t('buttons.delete'),
32
+ onClick: () => onDeleteContacts(itemsSelected),
33
+ } }) }) })] }));
34
+ };
35
+ const Card = ({ apiError, contact, onClick, index, menuItems, selected, onChange, }) => {
36
+ return (_jsxs(Flex, { gap: "3", pl: "base", bg: selected ? 'lightBlue.6' : 'transparent', children: [_jsx(Checkbox, { isChecked: selected, onChange: () => onChange(contact._id) }), _jsx(ContactCard, { apiError: apiError, contact: contact, menuItems: menuItems, onClick: onClick, index: index }, contact._id)] }, contact._id));
12
37
  };
@@ -0,0 +1,3 @@
1
+ export declare const LetterDivider: ({ letter }: {
2
+ letter?: string | undefined;
3
+ }) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,5 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Flex, Text } from '@chakra-ui/react';
3
+ export const LetterDivider = ({ letter = '' }) => {
4
+ return (_jsxs(Flex, { align: "center", children: [_jsx(Box, { flex: "1", border: "1px dashed", borderColor: "lightBlue.11", h: "2px" }), _jsx(Box, { px: "4", py: "2", children: _jsx(Text, { fontWeight: "bold", fontSize: "xs", color: "lightBlue.11", children: letter }) }), _jsx(Box, { flex: "1", border: "1px dashed", borderColor: "lightBlue.11", h: "2px" })] }));
5
+ };
@@ -0,0 +1,2 @@
1
+ import { ShareContactSectionI } from '../../interfaces';
2
+ export declare const ShareContactSection: (props: ShareContactSectionI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { calc, Grid, Stack } from '@chakra-ui/react';
4
+ import { HiddenField, ShareContactByEmail, ShareContactByHomefile, ShareContactBySMS, } from '..';
5
+ import { Feedback, ShareWith, SMS } from '../../assets/images';
6
+ export const ShareContactSection = (props) => {
7
+ const [activeField, setActiveField] = useState('email');
8
+ const forms = {
9
+ email: _jsx(ShareContactByEmail, Object.assign({}, props)),
10
+ sms: _jsx(ShareContactBySMS, Object.assign({}, props)),
11
+ homefile: _jsx(ShareContactByHomefile, Object.assign({}, props)),
12
+ };
13
+ return (_jsxs(Stack, { align: "center", bg: "lightBlue.1", children: [_jsx(Grid, { templateColumns: "repeat(auto-fill, minmax(80px, 1fr))", gap: "base", p: "base", minW: `${calc(Number(fields.length) * 80)}px`, children: fields.map(({ disabled, icon = 'email', id, name = '' }) => {
14
+ return (_jsx(HiddenField, { disabled: disabled, id: id, name: name, icon: fieldIcons[icon], onClick: () => setActiveField(id), isActive: id === activeField }, id));
15
+ }) }), forms[activeField]] }));
16
+ };
17
+ const fields = [
18
+ { disabled: false, icon: 'email', id: 'email', name: 'Email' },
19
+ { disabled: false, icon: 'sms', id: 'sms', name: 'SMS' },
20
+ { disabled: false, icon: 'homefile', id: 'homefile', name: 'Homefile' },
21
+ ];
22
+ const fieldIcons = {
23
+ homefile: ShareWith,
24
+ sms: SMS,
25
+ email: Feedback,
26
+ };
@@ -1,5 +1,6 @@
1
1
  export * from './addEditPanel';
2
2
  export * from './shareContactForms';
3
+ export * from './sharePanel';
3
4
  export * from './viewPanel';
4
5
  export * from './ContactCard';
5
6
  export * from './ContactCardAddress';
@@ -7,4 +8,5 @@ export * from './ContactCardHeader';
7
8
  export * from './ContactCardInfo';
8
9
  export * from './ContactHeaderMenu';
9
10
  export * from './ContactsContent';
10
- export * from './ShareContactPopover';
11
+ export * from './LetterDivider';
12
+ export * from './ShareContactSection';
@@ -1,5 +1,6 @@
1
1
  export * from './addEditPanel';
2
2
  export * from './shareContactForms';
3
+ export * from './sharePanel';
3
4
  export * from './viewPanel';
4
5
  export * from './ContactCard';
5
6
  export * from './ContactCardAddress';
@@ -7,4 +8,5 @@ export * from './ContactCardHeader';
7
8
  export * from './ContactCardInfo';
8
9
  export * from './ContactHeaderMenu';
9
10
  export * from './ContactsContent';
10
- export * from './ShareContactPopover';
11
+ export * from './LetterDivider';
12
+ export * from './ShareContactSection';
@@ -0,0 +1,2 @@
1
+ import { AddReceiverButtonI } from '../../../interfaces';
2
+ export declare const AddReceiverButton: ({ onClick, isDisabled, }: AddReceiverButtonI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { IconButton } from '@chakra-ui/react';
3
+ import { Plus } from '../..';
4
+ import { colors } from '../../../theme/colors';
5
+ export const AddReceiverButton = ({ onClick, isDisabled, }) => {
6
+ return (_jsx(IconButton, { "aria-label": "Add new receiver", variant: "iconOutlined", icon: _jsx(Plus, { size: 28, stroke: colors.blue[3] }), onClick: onClick, isDisabled: isDisabled, maxH: "input.md" }));
7
+ };
@@ -0,0 +1,2 @@
1
+ import { SendToListI } from '../../../interfaces';
2
+ export declare const SendToList: ({ sendTo, onDelete }: SendToListI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { t } from 'i18next';
3
+ import { Stack, Flex, Container, IconButton, Text } from '@chakra-ui/react';
4
+ import { TrashIcon } from '../..';
5
+ import { pluralize } from '../../../utils';
6
+ export const SendToList = ({ sendTo, onDelete }) => {
7
+ const totalReceivers = sendTo.length;
8
+ return (_jsxs(Stack, { spacing: "base", h: "full", p: "base", bg: "lightBlue.2", children: [_jsx(Text, { fontFamily: "secondary", fontSize: "sm", children: `${t('contacts.sendContact')} ${totalReceivers} ${pluralize(totalReceivers, t('contacts.recipient'))}` }), _jsx(Stack, { spacing: "1", children: sendTo.map((receiver) => (_jsxs(Flex, { align: "center", justify: "space-between", borderBottom: "1px solid", borderColor: "lightBlue.2", children: [_jsx(Container, { p: "base", children: _jsx(Text, { fontFamily: "secondary", children: receiver }) }), _jsx(IconButton, { "aria-label": "Remove item", variant: "unstyled", icon: _jsx(TrashIcon, {}), size: "md", position: "relative", right: "-16px", transition: "all 0.2s ease-in-out", _hover: {
9
+ filter: 'brightness(0.7)',
10
+ }, onClick: () => onDelete(receiver) })] }, receiver))) })] }));
11
+ };
@@ -1,2 +1,2 @@
1
- import { ShareContactByEmailI } from '../../../interfaces';
2
- export declare const ShareContactByEmail: ({ apiError, contact, onShare, }: ShareContactByEmailI) => import("react/jsx-runtime").JSX.Element;
1
+ import { ShareContactByI } from '../../../interfaces';
2
+ export declare const ShareContactByEmail: ({ apiErrorMessage, onShare, }: ShareContactByI) => import("react/jsx-runtime").JSX.Element;
@@ -1,21 +1,11 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from 'react';
3
2
  import { t } from 'i18next';
4
- import { Box, Button, Flex } from '@chakra-ui/react';
5
- import { TextInput } from '../..';
3
+ import { Box, Flex, Stack, Text } from '@chakra-ui/react';
4
+ import { AddReceiverButton, SendToList, TextInput } from '../..';
6
5
  import { isValidEmail } from '../../../utils';
7
- export const ShareContactByEmail = ({ apiError, contact, onShare, }) => {
8
- const [value, setValue] = useState('');
9
- const [isDirty, setIsDirty] = useState(apiError !== null && apiError !== void 0 ? apiError : false);
10
- const errorMessage = apiError
11
- ? t('contacts.error')
12
- : `${t('forms.email')} ${t('forms.required')}`;
13
- return (_jsx(Box, { bg: "lightBlue.2", p: "base", w: "100%", children: _jsxs(Flex, { gap: "base", children: [_jsx(TextInput, { errorMessage: errorMessage, hasError: !isValidEmail(value) && isDirty, id: "shareContactByEmail", handleChange: (e) => setValue(e.target.value), placeholder: t('contacts.placeholders.email'), value: value, onBlur: () => setIsDirty(true) }), _jsx(Button, { variant: "secondary", maxW: "fit-content", maxH: "input.md", onClick: () => {
14
- onShare({
15
- contact,
16
- emailTo: value,
17
- });
18
- setValue('');
19
- setIsDirty(false);
20
- }, disabled: !isValidEmail(value), children: t('buttons.send') })] }) }));
6
+ import { useShareContactBy } from '../../../hooks';
7
+ export const ShareContactByEmail = ({ apiErrorMessage, onShare, }) => {
8
+ const { sendTo, handleAdd, handleChangeValue, handleDelete, handleSetIsDirtyToTrue, isDirty, value, } = useShareContactBy({ onShare, sendBy: 'email' });
9
+ const errorMessage = apiErrorMessage !== null && apiErrorMessage !== void 0 ? apiErrorMessage : `${t('forms.email')} ${t('forms.required')}`;
10
+ return (_jsxs(Box, { w: "100%", children: [_jsxs(Stack, { p: "base", w: "100%", spacing: "base", children: [_jsx(Text, { fontFamily: "secondary", fontSize: "sm", children: t('contacts.shareWithEmail') }), _jsxs(Flex, { gap: "base", children: [_jsx(TextInput, { errorMessage: errorMessage, hasError: !isValidEmail(value) && isDirty, id: "shareContactByEmail", handleChange: handleChangeValue, placeholder: t('contacts.placeholders.email'), value: value, onBlur: handleSetIsDirtyToTrue, type: "email" }), _jsx(AddReceiverButton, { onClick: handleAdd, isDisabled: !isValidEmail(value) })] })] }), _jsx(SendToList, { sendTo: sendTo, onDelete: handleDelete })] }));
21
11
  };
@@ -0,0 +1,2 @@
1
+ import { ShareContactByHomefileI } from '../../../interfaces';
2
+ export declare const ShareContactByHomefile: ({ apiErrorMessage, homefileContacts, isLoading, onShare, onDropdownSelect, onContactSearch, onRemoveContact, shareWithList, }: ShareContactByHomefileI) => import("react/jsx-runtime").JSX.Element;