@homefile/components-v2 2.59.2 → 2.60.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 (169) hide show
  1. package/dist/assets/locales/en/index.json +5 -2
  2. package/dist/components/folderPanel/displayFiles/GridFile.js +9 -1
  3. package/dist/components/folderPanel/displayFiles/ListFile.js +9 -1
  4. package/dist/components/forms/dynamicForm/DynamicForm.js +1 -1
  5. package/dist/components/forms/dynamicForm/HiddenField.js +2 -2
  6. package/dist/components/forms/dynamicForm/fields/HomeInitialSetup.js +3 -1
  7. package/dist/components/forms/readOnly/ReadOnlyDynamicForm.js +21 -3
  8. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyAppliances.js +65 -22
  9. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyGuidelines.js +6 -3
  10. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyHistory.d.ts +2 -0
  11. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyHistory.js +35 -0
  12. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyItemRelated.js +8 -3
  13. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyOverview.d.ts +2 -0
  14. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyOverview.js +16 -0
  15. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyPurchaseDetails.d.ts +2 -0
  16. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyPurchaseDetails.js +30 -0
  17. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyWarrantyBanner.d.ts +2 -0
  18. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyWarrantyBanner.js +69 -0
  19. package/dist/components/forms/readOnly/fields/homeItem/index.d.ts +4 -0
  20. package/dist/components/forms/readOnly/fields/homeItem/index.js +4 -0
  21. package/dist/components/headers/TabsHeader.js +1 -1
  22. package/dist/components/history/AddDocuments.d.ts +7 -0
  23. package/dist/components/history/AddDocuments.js +8 -0
  24. package/dist/components/history/DatePennant.d.ts +7 -0
  25. package/dist/components/history/DatePennant.js +6 -0
  26. package/dist/components/history/HistoryCard.d.ts +19 -0
  27. package/dist/components/history/HistoryCard.js +13 -0
  28. package/dist/components/history/index.d.ts +3 -0
  29. package/dist/components/history/index.js +3 -0
  30. package/dist/components/homeBoard/AddToHomefile.js +1 -1
  31. package/dist/components/homeBoard/HomeCard.js +1 -1
  32. package/dist/components/homeItems/ViewingHomeItemBody.d.ts +2 -0
  33. package/dist/components/homeItems/ViewingHomeItemBody.js +41 -0
  34. package/dist/components/homeItems/ViewingHomeItemPanel.js +17 -19
  35. package/dist/components/homeItems/index.d.ts +1 -0
  36. package/dist/components/homeItems/index.js +1 -0
  37. package/dist/components/homi/HomiPresence.d.ts +2 -0
  38. package/dist/components/homi/HomiPresence.js +31 -0
  39. package/dist/components/homi/HomiVoice.d.ts +2 -0
  40. package/dist/components/homi/HomiVoice.js +6 -0
  41. package/dist/components/homi/ProgressBar.d.ts +2 -0
  42. package/dist/components/homi/ProgressBar.js +9 -0
  43. package/dist/components/homi/RevealValueCard.d.ts +2 -0
  44. package/dist/components/homi/RevealValueCard.js +23 -0
  45. package/dist/components/homi/StaggerReveal.d.ts +2 -0
  46. package/dist/components/homi/StaggerReveal.js +29 -0
  47. package/dist/components/homi/index.d.ts +5 -0
  48. package/dist/components/homi/index.js +5 -0
  49. package/dist/components/inboxTile/InboxForwardBanner.js +1 -1
  50. package/dist/components/index.d.ts +2 -0
  51. package/dist/components/index.js +2 -0
  52. package/dist/components/inputs/InlineEditField.d.ts +2 -0
  53. package/dist/components/inputs/InlineEditField.js +15 -0
  54. package/dist/components/inputs/RadioCard.d.ts +3 -1
  55. package/dist/components/inputs/RadioCard.js +3 -3
  56. package/dist/components/inputs/TextInput.d.ts +1 -1
  57. package/dist/components/inputs/TextInput.js +11 -4
  58. package/dist/components/inputs/index.d.ts +1 -0
  59. package/dist/components/inputs/index.js +1 -0
  60. package/dist/components/myHomes/HomeDetailsContent.js +1 -1
  61. package/dist/components/myHomes/IncludePublicRecords.d.ts +13 -1
  62. package/dist/components/myHomes/IncludePublicRecords.js +16 -6
  63. package/dist/components/myHomes/edithome/EditHomeDetails.js +12 -3
  64. package/dist/components/myHomes/steps/NewHomeDetails.d.ts +1 -1
  65. package/dist/components/myHomes/steps/NewHomeDetails.js +3 -3
  66. package/dist/components/myProfile/MyProfileBody.d.ts +1 -1
  67. package/dist/components/myProfile/MyProfileBody.js +2 -2
  68. package/dist/components/myProfile/details/HomiSms.d.ts +1 -1
  69. package/dist/components/myProfile/details/HomiSms.js +53 -23
  70. package/dist/components/myProfile/details/TwoFactorSetting.js +2 -1
  71. package/dist/components/rooms/RoomHeader.d.ts +1 -1
  72. package/dist/components/rooms/RoomHeader.js +3 -3
  73. package/dist/components/wizard/ControlledWizard.d.ts +1 -1
  74. package/dist/components/wizard/ControlledWizard.js +42 -3
  75. package/dist/components/wizard/WizardInitialOptions.js +3 -3
  76. package/dist/components/wizard/WizardSelectCard.d.ts +14 -0
  77. package/dist/components/wizard/WizardSelectCard.js +32 -0
  78. package/dist/components/wizard/WizardStepPrompt.d.ts +11 -0
  79. package/dist/components/wizard/WizardStepPrompt.js +20 -0
  80. package/dist/components/wizard/WizardSuccessHeader.d.ts +1 -1
  81. package/dist/components/wizard/WizardSuccessHeader.js +2 -2
  82. package/dist/components/wizard/index.d.ts +2 -0
  83. package/dist/components/wizard/index.js +2 -0
  84. package/dist/helpers/forms/dynamicForm.helper.js +4 -0
  85. package/dist/hooks/folderPanel/useDisplayFiles.js +11 -2
  86. package/dist/hooks/forms/useAddressStored.js +8 -2
  87. package/dist/hooks/index.d.ts +2 -0
  88. package/dist/hooks/index.js +2 -0
  89. package/dist/hooks/motion/index.d.ts +2 -0
  90. package/dist/hooks/motion/index.js +2 -0
  91. package/dist/hooks/motion/useCountUp.d.ts +10 -0
  92. package/dist/hooks/motion/useCountUp.js +39 -0
  93. package/dist/hooks/motion/usePrefersReducedMotion.d.ts +14 -0
  94. package/dist/hooks/motion/usePrefersReducedMotion.js +15 -0
  95. package/dist/hooks/rooms/useRoomHeader.d.ts +4 -1
  96. package/dist/hooks/rooms/useRoomHeader.js +9 -1
  97. package/dist/hooks/useDirtySave.d.ts +14 -0
  98. package/dist/hooks/useDirtySave.js +33 -0
  99. package/dist/index.d.ts +3 -3
  100. package/dist/index.js +3 -3
  101. package/dist/interfaces/forms/dynamicForm/DynamicForm.interface.d.ts +7 -3
  102. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyOverview.interface.d.ts +2 -0
  103. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyOverview.interface.js +1 -0
  104. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyPurchaseDetails.interface.d.ts +5 -0
  105. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyPurchaseDetails.interface.js +1 -0
  106. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyWarrantyBanner.interface.d.ts +54 -0
  107. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyWarrantyBanner.interface.js +1 -0
  108. package/dist/interfaces/forms/readOnly/homeItem/index.d.ts +3 -0
  109. package/dist/interfaces/forms/readOnly/homeItem/index.js +3 -0
  110. package/dist/interfaces/homeItems/ViewingHomeItemPanel.interface.d.ts +1 -0
  111. package/dist/interfaces/homi/HomiPresence.interface.d.ts +9 -0
  112. package/dist/interfaces/homi/HomiPresence.interface.js +1 -0
  113. package/dist/interfaces/homi/ProgressBar.interface.d.ts +8 -0
  114. package/dist/interfaces/homi/ProgressBar.interface.js +1 -0
  115. package/dist/interfaces/homi/RevealValueCard.interface.d.ts +16 -0
  116. package/dist/interfaces/homi/RevealValueCard.interface.js +1 -0
  117. package/dist/interfaces/homi/StaggerReveal.interface.d.ts +9 -0
  118. package/dist/interfaces/homi/StaggerReveal.interface.js +1 -0
  119. package/dist/interfaces/homi/index.d.ts +4 -0
  120. package/dist/interfaces/homi/index.js +4 -0
  121. package/dist/interfaces/index.d.ts +1 -0
  122. package/dist/interfaces/index.js +1 -0
  123. package/dist/interfaces/inputs/InlineEditField.interface.d.ts +7 -0
  124. package/dist/interfaces/inputs/InlineEditField.interface.js +1 -0
  125. package/dist/interfaces/inputs/Input.interface.d.ts +6 -1
  126. package/dist/interfaces/inputs/index.d.ts +1 -0
  127. package/dist/interfaces/inputs/index.js +1 -0
  128. package/dist/interfaces/myHomes/AddHomeContent.interface.d.ts +3 -0
  129. package/dist/interfaces/myProfile/MyProfileBody.interface.d.ts +1 -0
  130. package/dist/interfaces/myProfile/details/HomiSms.interface.d.ts +11 -2
  131. package/dist/interfaces/rooms/RoomHeader.interface.d.ts +5 -0
  132. package/dist/interfaces/wizard/ControlledWizard.interface.d.ts +6 -0
  133. package/dist/interfaces/wizard/WizardStepPrompt.interface.d.ts +9 -0
  134. package/dist/interfaces/wizard/WizardStepPrompt.interface.js +1 -0
  135. package/dist/interfaces/wizard/index.d.ts +1 -0
  136. package/dist/interfaces/wizard/index.js +1 -0
  137. package/dist/stories/forms/readOnly/ReadOnlyAppliances.stories.d.ts +4 -0
  138. package/dist/stories/forms/readOnly/ReadOnlyAppliances.stories.js +33 -0
  139. package/dist/stories/forms/readOnly/ReadOnlyWarrantyBanner.stories.d.ts +4 -0
  140. package/dist/stories/forms/readOnly/ReadOnlyWarrantyBanner.stories.js +10 -0
  141. package/dist/stories/homeItems/ReadOnlyHistory.stories.d.ts +4 -0
  142. package/dist/stories/homeItems/ReadOnlyHistory.stories.js +46 -0
  143. package/dist/stories/homeItems/ReadOnlyOverview.stories.d.ts +5 -0
  144. package/dist/stories/homeItems/ReadOnlyOverview.stories.js +69 -0
  145. package/dist/stories/homeItems/ViewingHomeItemPanel.stories.d.ts +4 -0
  146. package/dist/stories/homeItems/ViewingHomeItemPanel.stories.js +204 -0
  147. package/dist/stories/homi/HomiPresence.stories.d.ts +18 -0
  148. package/dist/stories/homi/HomiPresence.stories.js +11 -0
  149. package/dist/stories/homi/HomiVoice.stories.d.ts +4 -0
  150. package/dist/stories/homi/HomiVoice.stories.js +8 -0
  151. package/dist/stories/homi/ProgressBar.stories.d.ts +10 -0
  152. package/dist/stories/homi/ProgressBar.stories.js +9 -0
  153. package/dist/stories/homi/RevealValueCard.stories.d.ts +19 -0
  154. package/dist/stories/homi/RevealValueCard.stories.js +22 -0
  155. package/dist/stories/homi/StaggerReveal.stories.d.ts +5 -0
  156. package/dist/stories/homi/StaggerReveal.stories.js +8 -0
  157. package/dist/stories/inputs/InlineEditField.stories.d.ts +10 -0
  158. package/dist/stories/inputs/InlineEditField.stories.js +11 -0
  159. package/dist/stories/myProfile/MyProfilePanel.stories.js +1 -1
  160. package/dist/stories/myProfile/details/HomiSms.stories.d.ts +3 -2
  161. package/dist/stories/myProfile/details/HomiSms.stories.js +3 -2
  162. package/dist/stories/wizard/ControlledWizard.stories.d.ts +9 -0
  163. package/dist/stories/wizard/ControlledWizard.stories.js +41 -60
  164. package/dist/theme/index.d.ts +3 -0
  165. package/dist/theme/index.js +7 -4
  166. package/dist/utils/Formaters.utils.d.ts +2 -0
  167. package/dist/utils/Formaters.utils.js +14 -0
  168. package/dist/utils/Weather.utils.js +11 -4
  169. package/package.json +1 -1
@@ -1,9 +1,15 @@
1
1
  import { useState, useEffect } from 'react';
2
2
  import { formatCurrency } from '../../utils';
3
- export const useRoomHeader = ({ onSubmit, room: { _id, name, type, active, home }, roomAmount, }) => {
3
+ export const useRoomHeader = ({ onSubmit, room: { _id, name, type, active, home }, roomAmount, roomEstimatedAmount, }) => {
4
4
  const [isEditing, setIsEditing] = useState(false);
5
5
  const [inputValue, setInputValue] = useState(null);
6
6
  const formattedAmount = formatCurrency({ value: roomAmount });
7
+ // Estimated value renders only when there is a real (non-zero) estimate —
8
+ // honest-empty until the enrichment side emits the est-value-field tag.
9
+ const hasEstimate = Number(roomEstimatedAmount) > 0;
10
+ const formattedEstimatedAmount = formatCurrency({
11
+ value: roomEstimatedAmount !== null && roomEstimatedAmount !== void 0 ? roomEstimatedAmount : 0,
12
+ });
7
13
  useEffect(() => {
8
14
  setInputValue(name);
9
15
  }, [name]);
@@ -19,6 +25,8 @@ export const useRoomHeader = ({ onSubmit, room: { _id, name, type, active, home
19
25
  };
20
26
  return {
21
27
  formattedAmount,
28
+ formattedEstimatedAmount,
29
+ hasEstimate,
22
30
  handleChange,
23
31
  handleClick,
24
32
  inputValue,
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Scalar dirty-tracking + save — the proven `TwoFactorSetting` pattern
3
+ * (`showButtons = value !== initial` → a conditional Save), extracted. On save
4
+ * the current value becomes the new baseline (so the Save affordance hides) and
5
+ * a transient `justSaved` flag fires for 1200ms (the "Saved ✓" flash). Scope: a
6
+ * single scalar value — no arbitrary-field abstraction (YAGNI, per Eli).
7
+ */
8
+ export declare const useDirtySave: (initial: string, onSave?: (value: string) => void) => {
9
+ value: string;
10
+ setValue: import("react").Dispatch<import("react").SetStateAction<string>>;
11
+ isDirty: boolean;
12
+ justSaved: boolean;
13
+ save: () => void;
14
+ };
@@ -0,0 +1,33 @@
1
+ import { useEffect, useRef, useState } from 'react';
2
+ /**
3
+ * Scalar dirty-tracking + save — the proven `TwoFactorSetting` pattern
4
+ * (`showButtons = value !== initial` → a conditional Save), extracted. On save
5
+ * the current value becomes the new baseline (so the Save affordance hides) and
6
+ * a transient `justSaved` flag fires for 1200ms (the "Saved ✓" flash). Scope: a
7
+ * single scalar value — no arbitrary-field abstraction (YAGNI, per Eli).
8
+ */
9
+ export const useDirtySave = (initial, onSave) => {
10
+ const [value, setValue] = useState(initial);
11
+ const [baseline, setBaseline] = useState(initial);
12
+ const [justSaved, setJustSaved] = useState(false);
13
+ const flashTimer = useRef(undefined);
14
+ // Re-sync when the source value changes (e.g. a freshly prepopulated name).
15
+ useEffect(() => {
16
+ setValue(initial);
17
+ setBaseline(initial);
18
+ }, [initial]);
19
+ useEffect(() => () => {
20
+ if (flashTimer.current)
21
+ clearTimeout(flashTimer.current);
22
+ }, []);
23
+ const isDirty = value !== baseline;
24
+ const save = () => {
25
+ onSave === null || onSave === void 0 ? void 0 : onSave(value);
26
+ setBaseline(value);
27
+ setJustSaved(true);
28
+ if (flashTimer.current)
29
+ clearTimeout(flashTimer.current);
30
+ flashTimer.current = window.setTimeout(() => setJustSaved(false), 1200);
31
+ };
32
+ return { value, setValue, isDirty, justSaved, save };
33
+ };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPopup, AddPropertyRecords, Address, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AppliancesReceived, AssignableReceipts, BackendAlert, BackHeader, BarDivider, CalendarWidget, CancelAccount, CatalogPopup, CloudsAnimation, ConfirmHomeDetails, ConfirmProperty, ConfirmPropertyBody, ConfirmPropertyFooter, ConfirmPropertyRecords, ContactList, ContactsContent, ContainerHeader, ControlledWizard, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DragDropArea, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EditItemName, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeAssistantTutorial, HomeAssistantWizardPanel, HomeAssistantWizardSteps, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomeItemList, HomeItemManualInfo, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, HomieAddItems, HomiSms, InboxForwardBanner, InboxTile, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadApplianceAutofiler, LaunchpadAppliancePanel, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessageChatPanel, MessagePanel, MinimizedTile, MinimizedTiles, MonthlyCharge, MortgageInfo, MortgageInfoReadOnly, MoveModal, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewHomeDetails, NewParterDetails, NewPassword, NotBeChargedBanner, NotificationCard, Notifications, NotificationsPanel, NotificationsReminder, NpsScore, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCard, PartnerCustomerCode, PartnerCustomersToolbar, PartnerCustomersWrapper, PartnerDetails, PartnerHomeHeader, PartnerImages, PartnerPanel, PartnerServiceCard, PartnerServiceTicketCard, PartnerServiceTicketsToolbar, PartnerServiceTicketsWrapper, PartnerSidebarMenu, PartnerWizardStepBrand, PartnerWizardStepServices, PartnerWizardStepServicesSelect, PartnerWizardStepServiceZones, PartnerWizardStepCta, PartnerWizardStepSocial, PartnerWizardStepHeader, PartnerWizardStepLayout, PartnerWizardSuccessHeader, PartnerWizardSuccessBody, PartnerWizardSteps, PasswordInput, PaymentBanner, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RolePermissionsTab, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SearchItemLoader, SearchRecords, SectionHeader, SendCommunication, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StartHomiSetup, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorDialog, TwoFactorSetting, UpdateList, UploadTile, UserDetails, ValueMonitor, VideoPlayer, VideoPlayerModal, ViewContactPanel, WeatherWidget, WidgetCarousel, WellDone, WizardBodyPadding, WizardStepGoal, WizardSuccessHeader, WizardTextHeader, WizardValueSummary, WizardValueSummaryBody, WizardValueSummaryFooter, YtdTile, } from './components';
2
- export { useCustomToast, useConfirmPropertyModel } from './hooks';
1
+ export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPopup, AddPropertyRecords, Address, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AppliancesReceived, AssignableReceipts, BackendAlert, BackHeader, BarDivider, BrandLogo, CalendarWidget, CancelAccount, CatalogPopup, CloudsAnimation, Close, ConfirmHomeDetails, ConfirmProperty, ConfirmPropertyBody, ConfirmPropertyFooter, ConfirmPropertyRecords, ContactList, ContactsContent, ContainerHeader, ControlledWizard, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DragDropArea, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EditItemName, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeAssistantTutorial, HomeAssistantWizardPanel, HomeAssistantWizardSteps, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomiPresence, HomiVoice, InlineEditField, ProgressBar, RevealValueCard, StaggerReveal, HomeItemList, HomeItemManualInfo, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, HomieAddItems, HomiSms, InboxForwardBanner, InboxTile, IncludePublicRecords, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadApplianceAutofiler, LaunchpadAppliancePanel, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessageChatPanel, MessagePanel, MinimizedTile, MinimizedTiles, MonthlyCharge, MortgageInfo, MortgageInfoReadOnly, MoveModal, MyHomeCard, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewHomeDetails, NewParterDetails, NewPassword, NotBeChargedBanner, NotificationCard, Notifications, NotificationsPanel, NotificationsReminder, NpsScore, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCard, PartnerCustomerCode, PartnerCustomersToolbar, PartnerCustomersWrapper, PartnerDetails, PartnerHomeHeader, PartnerImages, PartnerPanel, PartnerServiceCard, PartnerServiceTicketCard, PartnerServiceTicketsToolbar, PartnerServiceTicketsWrapper, PartnerSidebarMenu, PartnerWizardStepBrand, PartnerWizardStepServices, PartnerWizardStepServicesSelect, PartnerWizardStepServiceZones, PartnerWizardStepCta, PartnerWizardStepSocial, PartnerWizardStepHeader, PartnerWizardStepLayout, PartnerWizardSuccessHeader, PartnerWizardSuccessBody, PartnerWizardSteps, PasswordInput, PaymentBanner, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RolePermissionsTab, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SearchItemLoader, SearchRecords, SectionHeader, SendCommunication, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StartHomiSetup, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorDialog, TwoFactorSetting, UpdateList, UploadTile, UserDetails, ValueMonitor, VideoPlayer, VideoPlayerModal, ViewContactPanel, WeatherWidget, WidgetCarousel, WellDone, WizardBodyPadding, WizardStepGoal, WizardStepPrompt, WizardSuccessHeader, WizardTextHeader, WizardValueSummary, WizardValueSummaryBody, WizardValueSummaryFooter, YtdTile, } from './components';
2
+ export { useCustomToast, useConfirmPropertyModel, usePrefersReducedMotion, useCountUp, useDirtySave, } from './hooks';
3
3
  export { useFilesUploader } from './hooks/folderPanel/useFilesUploader';
4
4
  export { randomColor, mapApiObjectToFormFields, mapForecastToWidget, } from './utils';
5
- export { Ambulance, CookTop, Contacts, GuestBedroom, MagnifyingGlassReport, Message, Messages, Register, Receipts, Price, BlueFolderShared, Calendar, Create, Notes, WallDecor, YellowFolder, EstValue, Billing, Inbox, Plus, } from './assets/images';
5
+ export { Ambulance, CookTop, Contacts, GuestBedroom, MagnifyingGlassReport, Message, Messages, Register, Receipts, Price, BlueFolderShared, Calendar, Create, Notes, WallDecor, YellowFolder, EstValue, Billing, Inbox, Plus, VideoIcon, } from './assets/images';
6
6
  export { homeAssistantWizardSteps, partnerWizardSteps } from './helpers';
7
7
  export { billingProxy, dynamicFormProxy, homeCardProxy, partnerContentProxy, partnerDetailsProxy, paymentMethodProxy, recordsInputsProxy, recordsInputsToDBProxy, userDetailsProxy, confirmAddressProxy, addressProxy, } from './proxies';
8
8
  import theme from './theme';
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
- export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPopup, AddPropertyRecords, Address, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AppliancesReceived, AssignableReceipts, BackendAlert, BackHeader, BarDivider, CalendarWidget, CancelAccount, CatalogPopup, CloudsAnimation, ConfirmHomeDetails, ConfirmProperty, ConfirmPropertyBody, ConfirmPropertyFooter, ConfirmPropertyRecords, ContactList, ContactsContent, ContainerHeader, ControlledWizard, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DragDropArea, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EditItemName, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeAssistantTutorial, HomeAssistantWizardPanel, HomeAssistantWizardSteps, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomeItemList, HomeItemManualInfo, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, HomieAddItems, HomiSms, InboxForwardBanner, InboxTile, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadApplianceAutofiler, LaunchpadAppliancePanel, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessageChatPanel, MessagePanel, MinimizedTile, MinimizedTiles, MonthlyCharge, MortgageInfo, MortgageInfoReadOnly, MoveModal, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewHomeDetails, NewParterDetails, NewPassword, NotBeChargedBanner, NotificationCard, Notifications, NotificationsPanel, NotificationsReminder, NpsScore, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCard, PartnerCustomerCode, PartnerCustomersToolbar, PartnerCustomersWrapper, PartnerDetails, PartnerHomeHeader, PartnerImages, PartnerPanel, PartnerServiceCard, PartnerServiceTicketCard, PartnerServiceTicketsToolbar, PartnerServiceTicketsWrapper, PartnerSidebarMenu, PartnerWizardStepBrand, PartnerWizardStepServices, PartnerWizardStepServicesSelect, PartnerWizardStepServiceZones, PartnerWizardStepCta, PartnerWizardStepSocial, PartnerWizardStepHeader, PartnerWizardStepLayout, PartnerWizardSuccessHeader, PartnerWizardSuccessBody, PartnerWizardSteps, PasswordInput, PaymentBanner, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RolePermissionsTab, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SearchItemLoader, SearchRecords, SectionHeader, SendCommunication, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StartHomiSetup, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorDialog, TwoFactorSetting, UpdateList, UploadTile, UserDetails, ValueMonitor, VideoPlayer, VideoPlayerModal, ViewContactPanel, WeatherWidget, WidgetCarousel, WellDone, WizardBodyPadding, WizardStepGoal, WizardSuccessHeader, WizardTextHeader, WizardValueSummary, WizardValueSummaryBody, WizardValueSummaryFooter, YtdTile, } from './components';
2
- export { useCustomToast, useConfirmPropertyModel } from './hooks';
1
+ export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPopup, AddPropertyRecords, Address, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AppliancesReceived, AssignableReceipts, BackendAlert, BackHeader, BarDivider, BrandLogo, CalendarWidget, CancelAccount, CatalogPopup, CloudsAnimation, Close, ConfirmHomeDetails, ConfirmProperty, ConfirmPropertyBody, ConfirmPropertyFooter, ConfirmPropertyRecords, ContactList, ContactsContent, ContainerHeader, ControlledWizard, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DragDropArea, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EditItemName, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeAssistantTutorial, HomeAssistantWizardPanel, HomeAssistantWizardSteps, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomiPresence, HomiVoice, InlineEditField, ProgressBar, RevealValueCard, StaggerReveal, HomeItemList, HomeItemManualInfo, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, HomieAddItems, HomiSms, InboxForwardBanner, InboxTile, IncludePublicRecords, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadApplianceAutofiler, LaunchpadAppliancePanel, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessageChatPanel, MessagePanel, MinimizedTile, MinimizedTiles, MonthlyCharge, MortgageInfo, MortgageInfoReadOnly, MoveModal, MyHomeCard, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewHomeDetails, NewParterDetails, NewPassword, NotBeChargedBanner, NotificationCard, Notifications, NotificationsPanel, NotificationsReminder, NpsScore, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCard, PartnerCustomerCode, PartnerCustomersToolbar, PartnerCustomersWrapper, PartnerDetails, PartnerHomeHeader, PartnerImages, PartnerPanel, PartnerServiceCard, PartnerServiceTicketCard, PartnerServiceTicketsToolbar, PartnerServiceTicketsWrapper, PartnerSidebarMenu, PartnerWizardStepBrand, PartnerWizardStepServices, PartnerWizardStepServicesSelect, PartnerWizardStepServiceZones, PartnerWizardStepCta, PartnerWizardStepSocial, PartnerWizardStepHeader, PartnerWizardStepLayout, PartnerWizardSuccessHeader, PartnerWizardSuccessBody, PartnerWizardSteps, PasswordInput, PaymentBanner, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RolePermissionsTab, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SearchItemLoader, SearchRecords, SectionHeader, SendCommunication, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StartHomiSetup, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorDialog, TwoFactorSetting, UpdateList, UploadTile, UserDetails, ValueMonitor, VideoPlayer, VideoPlayerModal, ViewContactPanel, WeatherWidget, WidgetCarousel, WellDone, WizardBodyPadding, WizardStepGoal, WizardStepPrompt, WizardSuccessHeader, WizardTextHeader, WizardValueSummary, WizardValueSummaryBody, WizardValueSummaryFooter, YtdTile, } from './components';
2
+ export { useCustomToast, useConfirmPropertyModel, usePrefersReducedMotion, useCountUp, useDirtySave, } from './hooks';
3
3
  export { useFilesUploader } from './hooks/folderPanel/useFilesUploader';
4
4
  export { randomColor, mapApiObjectToFormFields, mapForecastToWidget, } from './utils';
5
- export { Ambulance, CookTop, Contacts, GuestBedroom, MagnifyingGlassReport, Message, Messages, Register, Receipts, Price, BlueFolderShared, Calendar, Create, Notes, WallDecor, YellowFolder, EstValue, Billing, Inbox, Plus, } from './assets/images';
5
+ export { Ambulance, CookTop, Contacts, GuestBedroom, MagnifyingGlassReport, Message, Messages, Register, Receipts, Price, BlueFolderShared, Calendar, Create, Notes, WallDecor, YellowFolder, EstValue, Billing, Inbox, Plus, VideoIcon, } from './assets/images';
6
6
  export { homeAssistantWizardSteps, partnerWizardSteps } from './helpers';
7
7
  export { billingProxy, dynamicFormProxy, homeCardProxy, partnerContentProxy, partnerDetailsProxy, paymentMethodProxy, recordsInputsProxy, recordsInputsToDBProxy, userDetailsProxy, confirmAddressProxy, addressProxy, } from './proxies';
8
8
  import theme from './theme';
@@ -1,13 +1,16 @@
1
1
  import { AIGridFieldI, AlertFieldType, AlertTabType, FolderFileI, MenuItemI, PartnerFooterI, TileCtaI } from '../../../interfaces';
2
2
  export type KindTypes = 'ai-image' | 'ai-grid' | 'checkbox' | 'checkbox-agreement' | 'checkbox-group' | 'collapsible' | 'currency' | 'date' | 'email' | 'file' | 'grid' | 'group' | 'hidden' | 'notes' | 'number' | 'radio' | 'rating' | 'select' | 'string' | 'switch' | 'telephone' | 'text' | 'textarea' | 'default' | 'video' | UIKindTypes | HomeItemTypes | AlertTabType | AlertFieldType | WizardTypes;
3
3
  export type UIKindTypes = 'tile-body' | 'tile-body-logo' | 'tile-body-header' | 'tile-body-section' | 'tile-body-section-grid' | 'tile-body-partner-image' | 'tile-body-description' | 'tile-form' | 'tile-body-action' | 'vertical-icon' | 'primary-cta' | 'secondary-cta';
4
- export type HomeItemTypes = 'appliances' | 'images' | 'guidelines' | 'item-related' | 'item-icon-btn';
5
- export type IconTypes = '68' | 'barcode' | 'battery' | 'billing' | 'book-opened' | 'book' | 'calc' | 'calendar-drop' | 'calendar' | 'calendar2' | 'check' | 'co2' | 'company' | 'contact' | 'date' | 'default' | 'detector' | 'drop' | 'electricity' | 'fire' | 'flower' | 'folder' | 'foundation' | 'gear' | 'goldbars' | 'heart' | 'heater' | 'house' | 'image' | 'life-preserver' | 'light' | 'mobile-drop' | 'notes' | 'palette' | 'people' | 'plant' | 'plate' | 'pool' | 'pressure-washer' | 'price' | 'rating' | 'receipt' | 'registry' | 'roof' | 'search-person' | 'solar-panel' | 'sprinkler' | 'target' | 'title' | 'tools' | 'umbrella' | 'wallet' | 'warranty' | 'water' | 'wind' | 'battery-smoke-detector' | 'cooktop' | 'dish-washer' | 'dryer' | 'filter-size' | 'fire-extinguisher' | 'freezer' | 'fridge' | 'furnace' | 'hood' | 'in-wall' | 'jacuzzi' | 'landscape-lights' | 'microwave' | 'mr-boxes' | 'mr-clock' | 'mr-couch' | 'mr-hand' | 'mr-make-ready' | 'mr-rental' | 'other' | 'oven' | 'range' | 'sprinkler-system' | 'sprinkler-system2' | 'tank-water' | 'tankless-water' | 'washer' | 'wired-smoke-detector' | UIIconTypes;
4
+ export type HomeItemTypes = 'appliances' | 'images' | 'guidelines' | 'item-related' | 'item-icon-btn' | 'warranty' | 'purchase' | 'overview' | 'history';
5
+ export type IconTypes = '68' | 'barcode' | 'battery' | 'billing' | 'book-opened' | 'book' | 'calc' | 'calendar-drop' | 'calendar' | 'calendar2' | 'check' | 'co2' | 'company' | 'contact' | 'date' | 'default' | 'detector' | 'drop' | 'electricity' | 'fire' | 'flower' | 'folder' | 'foundation' | 'gear' | 'goldbars' | 'heart' | 'heater' | 'house' | 'image' | 'life-preserver' | 'light' | 'mobile-drop' | 'notes' | 'palette' | 'people' | 'plant' | 'plate' | 'pool' | 'pdf' | 'pressure-washer' | 'price' | 'rating' | 'receipt' | 'registry' | 'roof' | 'search-person' | 'solar-panel' | 'sprinkler' | 'target' | 'title' | 'tools' | 'umbrella' | 'wallet' | 'warranty' | 'water' | 'wind' | 'battery-smoke-detector' | 'cooktop' | 'dish-washer' | 'dryer' | 'filter-size' | 'fire-extinguisher' | 'freezer' | 'fridge' | 'furnace' | 'hood' | 'in-wall' | 'jacuzzi' | 'landscape-lights' | 'microwave' | 'mr-boxes' | 'mr-clock' | 'mr-couch' | 'mr-hand' | 'mr-make-ready' | 'mr-rental' | 'other' | 'oven' | 'range' | 'sprinkler-system' | 'sprinkler-system2' | 'tank-water' | 'tankless-water' | 'washer' | 'wired-smoke-detector' | UIIconTypes;
6
6
  export type UIIconTypes = 'sh-pressure' | 'sh-window' | 'sh-roof' | 'sh-lights' | 'sh-gutter' | 'sh-home' | 'sh-house' | 'aa-mowing' | 'aa-fertilization' | 'aa-disease' | 'aa-weed' | 'aa-dressing' | 'aa-pest' | 'boc-service' | 'boc-filter' | 'boc-repair' | 'boc-renovation' | 'boc-green' | 'boc-warranty' | 'filter-size' | string;
7
- export type WizardTypes = 'home-wizard' | 'home-wizard-header' | 'home-wizard-initial-setup' | 'home-wizard-step-options';
7
+ export type WizardTypes = 'home-wizard' | 'home-wizard-header' | 'home-wizard-initial-setup' | 'home-wizard-step-options' | 'home-wizard-select-card';
8
8
  export type ValueTypes = string | string[] | number | boolean;
9
9
  export type OptionsTypes = string[] | number[] | null;
10
+ export type PanelTab = 'details' | 'specs' | 'history';
10
11
  export interface ReportI {
12
+ /** Optional accent color (e.g. a history event's date-pennant color). */
13
+ accentColor?: string;
11
14
  canBeHidden?: boolean;
12
15
  children?: ReportI[];
13
16
  comments?: string;
@@ -18,6 +21,7 @@ export interface ReportI {
18
21
  link?: string;
19
22
  name?: string;
20
23
  options?: OptionsTypes;
24
+ tab?: PanelTab;
21
25
  type: KindTypes;
22
26
  value: ValueTypes;
23
27
  visible?: boolean;
@@ -0,0 +1,2 @@
1
+ import { ReportI } from '../../../../interfaces';
2
+ export type ReadOnlyOverviewI = ReportI;
@@ -0,0 +1,5 @@
1
+ import { ReportI } from '../../../../interfaces';
2
+ export interface ReadOnlyPurchaseDetailsI extends ReportI {
3
+ onEdit?: (id: string) => void;
4
+ onClick?: (id: string) => void;
5
+ }
@@ -0,0 +1,54 @@
1
+ import { IconTypes, ValueTypes } from '../../../../interfaces';
2
+ /**
3
+ * The warranty states the banner can render. Derived upstream from the item's
4
+ * purchase date + parsed warranty term (see tickets #356/#357):
5
+ * - `underWarranty` — still covered
6
+ * - `expired` — warranty term has lapsed
7
+ * - `unverified` — the TERM is known but the purchase DATE is not, so no
8
+ * expiry can be computed and neither "covered" nor "lapsed" is knowable
9
+ * - `recall` — an active manufacturer recall
10
+ *
11
+ * HONESTY: `recall` must ONLY be passed with REAL recall data. There is no
12
+ * recall data source in the platform today (#357), so callers must not pass
13
+ * state="recall" until one exists — the banner never fabricates an alert.
14
+ *
15
+ * HONESTY: `unverified` is the DEFAULT-CORRECT state for catalog warranty
16
+ * data, and callers should reach for it rather than dressing the gap up as a
17
+ * status. We hold the term on most products (warranty_parts is populated on
18
+ * 68/91) but an item carries only `createdAt` — when WE first saw it, not when
19
+ * the owner bought it. Passing `underWarranty` there would assert coverage the
20
+ * user may not have, which is the most damaging thing this banner can do;
21
+ * passing `expired` borrows a lapsed-looking palette for something we simply
22
+ * do not know. `unverified` claims only what is true: this is the term, and
23
+ * the start date is missing.
24
+ */
25
+ export type WarrantyBannerState = 'underWarranty' | 'expired' | 'unverified' | 'recall';
26
+ export interface ReadOnlyWarrantyBannerI {
27
+ /** Status message, e.g. "This item is under the manufacturer's warranty till 2030." */
28
+ value?: ValueTypes;
29
+ /** `fieldIcons` key for the badge glyph (e.g. 'boc-warranty'). */
30
+ icon?: IconTypes;
31
+ /**
32
+ * Which state to render. Defaults to `unverified`, and an unrecognised
33
+ * value falls back to it too — the banner degrades to "we don't know",
34
+ * never to "you are covered". Pass `underWarranty` explicitly when coverage
35
+ * is actually known.
36
+ */
37
+ state?: WarrantyBannerState;
38
+ /**
39
+ * Optional destination for the banner. Down the road: a recall notice on
40
+ * `recall`, or a "purchase a warranty" link on `expired`. When present the
41
+ * message becomes a link.
42
+ */
43
+ link?: string;
44
+ /**
45
+ * In-app action for the banner, rendered as the circular arrow button at the
46
+ * right edge (unknown-warranty XD). Distinct from `link`, which is an
47
+ * external href — "add your receipt" opens a panel, it does not navigate
48
+ * away. The button renders ONLY when this is supplied, so states and callers
49
+ * without an action are unchanged.
50
+ */
51
+ onAction?: () => void;
52
+ /** Accessible label for that button. Defaults to a generic action label. */
53
+ actionLabel?: string;
54
+ }
@@ -1,2 +1,5 @@
1
1
  export * from './ReadOnlyAppliances.interface';
2
2
  export * from './ReadOnlyGuidelines.interface';
3
+ export * from './ReadOnlyOverview.interface';
4
+ export * from './ReadOnlyPurchaseDetails.interface';
5
+ export * from './ReadOnlyWarrantyBanner.interface';
@@ -1,2 +1,5 @@
1
1
  export * from './ReadOnlyAppliances.interface';
2
2
  export * from './ReadOnlyGuidelines.interface';
3
+ export * from './ReadOnlyOverview.interface';
4
+ export * from './ReadOnlyPurchaseDetails.interface';
5
+ export * from './ReadOnlyWarrantyBanner.interface';
@@ -5,3 +5,4 @@ export interface ViewingHomeItemPanelI {
5
5
  onEdit: (id: string) => void;
6
6
  onClick?: (id: string) => void;
7
7
  }
8
+ export type ViewingHomeItemBodyI = Omit<ViewingHomeItemPanelI, 'onClose'>;
@@ -0,0 +1,9 @@
1
+ export interface HomiPresenceI {
2
+ /**
3
+ * v1 presence states (presentation-only, no authority/meaning). `ambient` and
4
+ * `tap-to-talk` are future — do NOT build them here.
5
+ */
6
+ state?: 'guiding' | 'working';
7
+ /** Label shown beside the presence chip. */
8
+ label?: string;
9
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ export interface ProgressBarI {
2
+ /** Progress as a fraction complete (0–1). */
3
+ value: number;
4
+ /** Fill color token. */
5
+ color?: string;
6
+ /** Track color token. */
7
+ trackColor?: string;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ export interface RevealFactI {
2
+ label: string;
3
+ value: string;
4
+ }
5
+ export interface RevealValueCardI {
6
+ /** Hero value (e.g. estimated home value) — animates via count-up on reveal. */
7
+ value: number;
8
+ /** Prefix for the hero value (e.g. '$'). */
9
+ valuePrefix?: string;
10
+ /** 2-column facts grid (year built / sqft / beds / …). */
11
+ facts?: RevealFactI[];
12
+ /** Secondary values row shown below the facts grid. */
13
+ subvals?: RevealFactI[];
14
+ /** Optional 30×30 thumbnails (e.g. comps / photos). */
15
+ thumbs?: string[];
16
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export interface StaggerRevealI extends PropsWithChildren {
3
+ /** Delay between each child's entrance, in seconds (POC ≈ 0.07). */
4
+ stagger?: number;
5
+ /** Initial delay before the first child, in seconds. */
6
+ delay?: number;
7
+ /** Column gap between children (Chakra spacing token), so it can replace a Stack. */
8
+ spacing?: string | number;
9
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export * from './HomiPresence.interface';
2
+ export * from './ProgressBar.interface';
3
+ export * from './RevealValueCard.interface';
4
+ export * from './StaggerReveal.interface';
@@ -0,0 +1,4 @@
1
+ export * from './HomiPresence.interface';
2
+ export * from './ProgressBar.interface';
3
+ export * from './RevealValueCard.interface';
4
+ export * from './StaggerReveal.interface';
@@ -1,5 +1,6 @@
1
1
  export * from './AddItemWizard';
2
2
  export * from './appliances';
3
+ export * from './homi';
3
4
  export * from './apis';
4
5
  export * from './appBar';
5
6
  export * from './badge';
@@ -1,5 +1,6 @@
1
1
  export * from './AddItemWizard';
2
2
  export * from './appliances';
3
+ export * from './homi';
3
4
  export * from './apis';
4
5
  export * from './appBar';
5
6
  export * from './badge';
@@ -0,0 +1,7 @@
1
+ export interface InlineEditFieldI {
2
+ /** Prepopulated value, edited in place. */
3
+ value: string;
4
+ /** Called with the new value when the user saves. */
5
+ onSave?: (value: string) => void;
6
+ placeholder?: string;
7
+ }
@@ -1,5 +1,5 @@
1
1
  import { InputProps } from '@chakra-ui/react';
2
- export interface InputI extends InputProps {
2
+ export interface InputI extends Omit<InputProps, 'variant'> {
3
3
  autoCapitalize?: string;
4
4
  autoCorrect?: string;
5
5
  errorMessage?: string;
@@ -12,4 +12,9 @@ export interface InputI extends InputProps {
12
12
  value: string;
13
13
  showLabel?: boolean;
14
14
  hint?: string;
15
+ /**
16
+ * `'default'` (floating LabeledField) or `'conversational'` — a bare
17
+ * bottom-border input (no LabeledField) for the Typeform-style wizard.
18
+ */
19
+ variant?: 'default' | 'conversational';
15
20
  }
@@ -1,4 +1,5 @@
1
1
  export * from './ControlledInput.interface';
2
+ export * from './InlineEditField.interface';
2
3
  export * from './DatePicker.interface';
3
4
  export * from './EditFileUploader.interface';
4
5
  export * from './Input.interface';
@@ -1,4 +1,5 @@
1
1
  export * from './ControlledInput.interface';
2
+ export * from './InlineEditField.interface';
2
3
  export * from './DatePicker.interface';
3
4
  export * from './EditFileUploader.interface';
4
5
  export * from './Input.interface';
@@ -23,4 +23,7 @@ export interface AddHomeContentI {
23
23
  userFirstName?: string;
24
24
  values?: HomeFormI;
25
25
  isWizard?: boolean;
26
+ /** Show the home-name field. Off in the simplified wizard, where the home is
27
+ * named at the reveal step instead. Defaults on to preserve add-home flow. */
28
+ showName?: boolean;
26
29
  }
@@ -2,6 +2,7 @@ import { ReactNode } from 'react';
2
2
  export interface MyProfileBodyI {
3
3
  account?: ReactNode;
4
4
  details?: ReactNode;
5
+ defaultIndex?: number;
5
6
  email?: ReactNode;
6
7
  isLoading: boolean;
7
8
  payment?: ReactNode;
@@ -1,9 +1,18 @@
1
1
  export interface HomiSmsFormI {
2
- sms?: string;
2
+ enabled?: boolean;
3
+ phone?: string;
3
4
  }
4
5
  export interface HomiSmsI {
5
6
  mode?: 'full' | 'phone-only';
6
- sms?: string;
7
+ /** Initial toggle state — whether Homi SMS messaging is enabled. */
8
+ enabled?: boolean;
9
+ /**
10
+ * Initial phone number. The app pre-fills this from the user's number when
11
+ * 2FA is set to SMS/mobile, so the same number carries over automatically.
12
+ */
13
+ phone?: string;
14
+ /** Link to the SMS messaging consent language (content owned by legal). */
15
+ consentUrl?: string;
7
16
  loading?: boolean;
8
17
  onChange?: (value: HomiSmsFormI) => void;
9
18
  onSave?: (value: HomiSmsFormI) => void;
@@ -5,5 +5,10 @@ export interface RoomHeaderI {
5
5
  onSubmit: (room: RoomItemI) => void;
6
6
  room: RoomItemI;
7
7
  roomAmount: string;
8
+ /**
9
+ * Sum of item ESTIMATED values (est-value-field), shown as a separate "est."
10
+ * line — never blended with roomAmount (amount paid). Hidden when 0/absent.
11
+ */
12
+ roomEstimatedAmount?: string;
8
13
  disabled?: boolean;
9
14
  }
@@ -25,5 +25,11 @@ export type ControlledWizardI<Key extends string = string> = {
25
25
  height?: string;
26
26
  headerBlink?: boolean;
27
27
  footerBlink?: boolean;
28
+ /**
29
+ * Body step-transition idiom. `'crossfade'` (default) = the existing
30
+ * opacity/y/blur; `'directional'` = the wizard's horizontal slide + a subtle
31
+ * enter-flip (POC). Both are reduced-motion gated.
32
+ */
33
+ transition?: 'crossfade' | 'directional';
28
34
  } & (ControlledWizardLegacyProps | ControlledWizardKeyedProps<Key>);
29
35
  export {};
@@ -0,0 +1,9 @@
1
+ import { ReactNode } from 'react';
2
+ export interface WizardStepPromptI {
3
+ /** Step marker, e.g. "1 →". Omit on the success / hand-off step. */
4
+ marker?: ReactNode;
5
+ /** Homi's prompt — the bold headline. Authored by the mind, not hardcoded. */
6
+ title: string;
7
+ /** Optional supporting line under the prompt. */
8
+ subtitle?: string;
9
+ }
@@ -1,4 +1,5 @@
1
1
  export * from './ControlledWizard.interface';
2
2
  export * from './WizardTextHeader.interface';
3
+ export * from './WizardStepPrompt.interface';
3
4
  export * from './WizardSuccessHeader.interface';
4
5
  export * from './WizardValueSummary.interface';
@@ -1,4 +1,5 @@
1
1
  export * from './ControlledWizard.interface';
2
2
  export * from './WizardTextHeader.interface';
3
+ export * from './WizardStepPrompt.interface';
3
4
  export * from './WizardSuccessHeader.interface';
4
5
  export * from './WizardValueSummary.interface';
@@ -0,0 +1,4 @@
1
+ import { Meta } from '@storybook/react';
2
+ declare const _default: Meta;
3
+ export default _default;
4
+ export declare const ApplianceCard: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,33 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from '@chakra-ui/react';
3
+ import { ReadOnlyAppliances } from '../../../components';
4
+ import { faker } from '@faker-js/faker';
5
+ export default {
6
+ title: 'Components/Forms/ReadOnlyDynamicForm',
7
+ component: ReadOnlyAppliances,
8
+ };
9
+ const images = [
10
+ faker.image.urlPicsumPhotos(),
11
+ faker.image.urlPicsumPhotos(),
12
+ faker.image.urlPicsumPhotos(),
13
+ faker.image.urlPicsumPhotos(),
14
+ ];
15
+ // Renders the appliance card the way the ReadOnlyDynamicForm switch does:
16
+ // name = "APPLIANCES" header, value = the item name, description, and typed
17
+ // children (images gallery, rating, and text field rows Brand/Model/Serial).
18
+ export const ApplianceCard = () => (_jsx(Box, { w: ['full', '500px'], children: _jsx(ReadOnlyAppliances, { id: "appliance", name: "Appliances", value: "Refrigerator", description: "KitchenAid Counter-depth 20-cu ft French Door Refrigerator with Ice Maker and Water dispenser (Stainless Steel) ENERGY STAR", onEdit: () => undefined, type: "appliances",
19
+ // eslint-disable-next-line react/no-children-prop
20
+ children: [
21
+ { id: 'imgs', type: 'images', value: images },
22
+ { id: 'rating', type: 'rating', value: 4 },
23
+ { id: 'brand', type: 'text', name: 'Brand', value: 'Kitchen Aid' },
24
+ { id: 'model', type: 'text', name: 'Model#', value: 'KRFC300ESS' },
25
+ { id: 'serial', type: 'text', name: 'Serial #', value: '' },
26
+ { id: 'retail', type: 'currency', name: 'Retail Price', value: '3125.12' },
27
+ {
28
+ id: 'replacement',
29
+ type: 'currency',
30
+ name: 'Est Replacement Cost',
31
+ value: '1895.03',
32
+ },
33
+ ] }) }));
@@ -0,0 +1,4 @@
1
+ import { Meta } from '@storybook/react';
2
+ declare const _default: Meta;
3
+ export default _default;
4
+ export declare const WarrantyBannerStates: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Stack, Text } from '@chakra-ui/react';
3
+ import { ReadOnlyWarrantyBanner } from '../../../components';
4
+ export default {
5
+ title: 'Components/Forms/ReadOnlyDynamicForm',
6
+ component: ReadOnlyWarrantyBanner,
7
+ };
8
+ // All three warranty states. `recall` is shown here for design review only —
9
+ // in production it stays dark until a real recall data source exists (#357).
10
+ export const WarrantyBannerStates = () => (_jsx(Box, { p: "base", bg: "neutral.white", w: ['full', '540px'], children: _jsxs(Stack, { spacing: "4", children: [_jsxs(Box, { children: [_jsx(Text, { fontSize: "xs", textTransform: "uppercase", color: "gray.2", mb: "1", children: "Under warranty" }), _jsx(ReadOnlyWarrantyBanner, { state: "underWarranty", icon: "warranty", value: "This item is under the manufacturer's warranty till 2030." })] }), _jsxs(Box, { children: [_jsx(Text, { fontSize: "xs", textTransform: "uppercase", color: "gray.2", mb: "1", children: "Expired" }), _jsx(ReadOnlyWarrantyBanner, { state: "expired", icon: "warranty", value: "This item's manufacturer warranty expired in 2022." })] }), _jsxs(Box, { children: [_jsx(Text, { fontSize: "xs", textTransform: "uppercase", color: "gray.2", mb: "1", children: "Recall (design-review only \u2014 dark in prod until #357)" }), _jsx(ReadOnlyWarrantyBanner, { state: "recall", icon: "warranty", value: "This item has an active manufacturer recall." })] })] }) }));
@@ -0,0 +1,4 @@
1
+ import { Meta } from '@storybook/react';
2
+ declare const _default: Meta;
3
+ export default _default;
4
+ export declare const Timeline: () => import("react/jsx-runtime").JSX.Element;