@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.
- package/dist/assets/locales/en/index.json +5 -2
- package/dist/components/folderPanel/displayFiles/GridFile.js +9 -1
- package/dist/components/folderPanel/displayFiles/ListFile.js +9 -1
- package/dist/components/forms/dynamicForm/DynamicForm.js +1 -1
- package/dist/components/forms/dynamicForm/HiddenField.js +2 -2
- package/dist/components/forms/dynamicForm/fields/HomeInitialSetup.js +3 -1
- package/dist/components/forms/readOnly/ReadOnlyDynamicForm.js +21 -3
- package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyAppliances.js +65 -22
- package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyGuidelines.js +6 -3
- package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyHistory.d.ts +2 -0
- package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyHistory.js +35 -0
- package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyItemRelated.js +8 -3
- package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyOverview.d.ts +2 -0
- package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyOverview.js +16 -0
- package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyPurchaseDetails.d.ts +2 -0
- package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyPurchaseDetails.js +30 -0
- package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyWarrantyBanner.d.ts +2 -0
- package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyWarrantyBanner.js +69 -0
- package/dist/components/forms/readOnly/fields/homeItem/index.d.ts +4 -0
- package/dist/components/forms/readOnly/fields/homeItem/index.js +4 -0
- package/dist/components/headers/TabsHeader.js +1 -1
- package/dist/components/history/AddDocuments.d.ts +7 -0
- package/dist/components/history/AddDocuments.js +8 -0
- package/dist/components/history/DatePennant.d.ts +7 -0
- package/dist/components/history/DatePennant.js +6 -0
- package/dist/components/history/HistoryCard.d.ts +19 -0
- package/dist/components/history/HistoryCard.js +13 -0
- package/dist/components/history/index.d.ts +3 -0
- package/dist/components/history/index.js +3 -0
- package/dist/components/homeBoard/AddToHomefile.js +1 -1
- package/dist/components/homeBoard/HomeCard.js +1 -1
- package/dist/components/homeItems/ViewingHomeItemBody.d.ts +2 -0
- package/dist/components/homeItems/ViewingHomeItemBody.js +41 -0
- package/dist/components/homeItems/ViewingHomeItemPanel.js +17 -19
- package/dist/components/homeItems/index.d.ts +1 -0
- package/dist/components/homeItems/index.js +1 -0
- package/dist/components/homi/HomiPresence.d.ts +2 -0
- package/dist/components/homi/HomiPresence.js +31 -0
- package/dist/components/homi/HomiVoice.d.ts +2 -0
- package/dist/components/homi/HomiVoice.js +6 -0
- package/dist/components/homi/ProgressBar.d.ts +2 -0
- package/dist/components/homi/ProgressBar.js +9 -0
- package/dist/components/homi/RevealValueCard.d.ts +2 -0
- package/dist/components/homi/RevealValueCard.js +23 -0
- package/dist/components/homi/StaggerReveal.d.ts +2 -0
- package/dist/components/homi/StaggerReveal.js +29 -0
- package/dist/components/homi/index.d.ts +5 -0
- package/dist/components/homi/index.js +5 -0
- package/dist/components/inboxTile/InboxForwardBanner.js +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -0
- package/dist/components/inputs/InlineEditField.d.ts +2 -0
- package/dist/components/inputs/InlineEditField.js +15 -0
- package/dist/components/inputs/RadioCard.d.ts +3 -1
- package/dist/components/inputs/RadioCard.js +3 -3
- package/dist/components/inputs/TextInput.d.ts +1 -1
- package/dist/components/inputs/TextInput.js +11 -4
- package/dist/components/inputs/index.d.ts +1 -0
- package/dist/components/inputs/index.js +1 -0
- package/dist/components/myHomes/HomeDetailsContent.js +1 -1
- package/dist/components/myHomes/IncludePublicRecords.d.ts +13 -1
- package/dist/components/myHomes/IncludePublicRecords.js +16 -6
- package/dist/components/myHomes/edithome/EditHomeDetails.js +12 -3
- package/dist/components/myHomes/steps/NewHomeDetails.d.ts +1 -1
- package/dist/components/myHomes/steps/NewHomeDetails.js +3 -3
- package/dist/components/myProfile/MyProfileBody.d.ts +1 -1
- package/dist/components/myProfile/MyProfileBody.js +2 -2
- package/dist/components/myProfile/details/HomiSms.d.ts +1 -1
- package/dist/components/myProfile/details/HomiSms.js +53 -23
- package/dist/components/myProfile/details/TwoFactorSetting.js +2 -1
- package/dist/components/rooms/RoomHeader.d.ts +1 -1
- package/dist/components/rooms/RoomHeader.js +3 -3
- package/dist/components/wizard/ControlledWizard.d.ts +1 -1
- package/dist/components/wizard/ControlledWizard.js +42 -3
- package/dist/components/wizard/WizardInitialOptions.js +3 -3
- package/dist/components/wizard/WizardSelectCard.d.ts +14 -0
- package/dist/components/wizard/WizardSelectCard.js +32 -0
- package/dist/components/wizard/WizardStepPrompt.d.ts +11 -0
- package/dist/components/wizard/WizardStepPrompt.js +20 -0
- package/dist/components/wizard/WizardSuccessHeader.d.ts +1 -1
- package/dist/components/wizard/WizardSuccessHeader.js +2 -2
- package/dist/components/wizard/index.d.ts +2 -0
- package/dist/components/wizard/index.js +2 -0
- package/dist/helpers/forms/dynamicForm.helper.js +4 -0
- package/dist/hooks/folderPanel/useDisplayFiles.js +11 -2
- package/dist/hooks/forms/useAddressStored.js +8 -2
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/motion/index.d.ts +2 -0
- package/dist/hooks/motion/index.js +2 -0
- package/dist/hooks/motion/useCountUp.d.ts +10 -0
- package/dist/hooks/motion/useCountUp.js +39 -0
- package/dist/hooks/motion/usePrefersReducedMotion.d.ts +14 -0
- package/dist/hooks/motion/usePrefersReducedMotion.js +15 -0
- package/dist/hooks/rooms/useRoomHeader.d.ts +4 -1
- package/dist/hooks/rooms/useRoomHeader.js +9 -1
- package/dist/hooks/useDirtySave.d.ts +14 -0
- package/dist/hooks/useDirtySave.js +33 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/interfaces/forms/dynamicForm/DynamicForm.interface.d.ts +7 -3
- package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyOverview.interface.d.ts +2 -0
- package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyOverview.interface.js +1 -0
- package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyPurchaseDetails.interface.d.ts +5 -0
- package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyPurchaseDetails.interface.js +1 -0
- package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyWarrantyBanner.interface.d.ts +54 -0
- package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyWarrantyBanner.interface.js +1 -0
- package/dist/interfaces/forms/readOnly/homeItem/index.d.ts +3 -0
- package/dist/interfaces/forms/readOnly/homeItem/index.js +3 -0
- package/dist/interfaces/homeItems/ViewingHomeItemPanel.interface.d.ts +1 -0
- package/dist/interfaces/homi/HomiPresence.interface.d.ts +9 -0
- package/dist/interfaces/homi/HomiPresence.interface.js +1 -0
- package/dist/interfaces/homi/ProgressBar.interface.d.ts +8 -0
- package/dist/interfaces/homi/ProgressBar.interface.js +1 -0
- package/dist/interfaces/homi/RevealValueCard.interface.d.ts +16 -0
- package/dist/interfaces/homi/RevealValueCard.interface.js +1 -0
- package/dist/interfaces/homi/StaggerReveal.interface.d.ts +9 -0
- package/dist/interfaces/homi/StaggerReveal.interface.js +1 -0
- package/dist/interfaces/homi/index.d.ts +4 -0
- package/dist/interfaces/homi/index.js +4 -0
- package/dist/interfaces/index.d.ts +1 -0
- package/dist/interfaces/index.js +1 -0
- package/dist/interfaces/inputs/InlineEditField.interface.d.ts +7 -0
- package/dist/interfaces/inputs/InlineEditField.interface.js +1 -0
- package/dist/interfaces/inputs/Input.interface.d.ts +6 -1
- package/dist/interfaces/inputs/index.d.ts +1 -0
- package/dist/interfaces/inputs/index.js +1 -0
- package/dist/interfaces/myHomes/AddHomeContent.interface.d.ts +3 -0
- package/dist/interfaces/myProfile/MyProfileBody.interface.d.ts +1 -0
- package/dist/interfaces/myProfile/details/HomiSms.interface.d.ts +11 -2
- package/dist/interfaces/rooms/RoomHeader.interface.d.ts +5 -0
- package/dist/interfaces/wizard/ControlledWizard.interface.d.ts +6 -0
- package/dist/interfaces/wizard/WizardStepPrompt.interface.d.ts +9 -0
- package/dist/interfaces/wizard/WizardStepPrompt.interface.js +1 -0
- package/dist/interfaces/wizard/index.d.ts +1 -0
- package/dist/interfaces/wizard/index.js +1 -0
- package/dist/stories/forms/readOnly/ReadOnlyAppliances.stories.d.ts +4 -0
- package/dist/stories/forms/readOnly/ReadOnlyAppliances.stories.js +33 -0
- package/dist/stories/forms/readOnly/ReadOnlyWarrantyBanner.stories.d.ts +4 -0
- package/dist/stories/forms/readOnly/ReadOnlyWarrantyBanner.stories.js +10 -0
- package/dist/stories/homeItems/ReadOnlyHistory.stories.d.ts +4 -0
- package/dist/stories/homeItems/ReadOnlyHistory.stories.js +46 -0
- package/dist/stories/homeItems/ReadOnlyOverview.stories.d.ts +5 -0
- package/dist/stories/homeItems/ReadOnlyOverview.stories.js +69 -0
- package/dist/stories/homeItems/ViewingHomeItemPanel.stories.d.ts +4 -0
- package/dist/stories/homeItems/ViewingHomeItemPanel.stories.js +204 -0
- package/dist/stories/homi/HomiPresence.stories.d.ts +18 -0
- package/dist/stories/homi/HomiPresence.stories.js +11 -0
- package/dist/stories/homi/HomiVoice.stories.d.ts +4 -0
- package/dist/stories/homi/HomiVoice.stories.js +8 -0
- package/dist/stories/homi/ProgressBar.stories.d.ts +10 -0
- package/dist/stories/homi/ProgressBar.stories.js +9 -0
- package/dist/stories/homi/RevealValueCard.stories.d.ts +19 -0
- package/dist/stories/homi/RevealValueCard.stories.js +22 -0
- package/dist/stories/homi/StaggerReveal.stories.d.ts +5 -0
- package/dist/stories/homi/StaggerReveal.stories.js +8 -0
- package/dist/stories/inputs/InlineEditField.stories.d.ts +10 -0
- package/dist/stories/inputs/InlineEditField.stories.js +11 -0
- package/dist/stories/myProfile/MyProfilePanel.stories.js +1 -1
- package/dist/stories/myProfile/details/HomiSms.stories.d.ts +3 -2
- package/dist/stories/myProfile/details/HomiSms.stories.js +3 -2
- package/dist/stories/wizard/ControlledWizard.stories.d.ts +9 -0
- package/dist/stories/wizard/ControlledWizard.stories.js +41 -60
- package/dist/theme/index.d.ts +3 -0
- package/dist/theme/index.js +7 -4
- package/dist/utils/Formaters.utils.d.ts +2 -0
- package/dist/utils/Formaters.utils.js +14 -0
- package/dist/utils/Weather.utils.js +11 -4
- 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 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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 @@
|
|
|
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 {};
|
package/dist/interfaces/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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
|
}
|
|
@@ -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
|
}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
export interface HomiSmsFormI {
|
|
2
|
-
|
|
2
|
+
enabled?: boolean;
|
|
3
|
+
phone?: string;
|
|
3
4
|
}
|
|
4
5
|
export interface HomiSmsI {
|
|
5
6
|
mode?: 'full' | 'phone-only';
|
|
6
|
-
|
|
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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -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,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." })] })] }) }));
|