@homefile/components-v2 2.26.6 → 2.27.0

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 (37) hide show
  1. package/dist/assets/locales/en/index.json +2 -0
  2. package/dist/components/forms/dynamicForm/SimpleDynamicForm.d.ts +1 -1
  3. package/dist/components/forms/dynamicForm/SimpleDynamicForm.js +6 -6
  4. package/dist/components/forms/dynamicForm/fields/FieldDivider.d.ts +3 -1
  5. package/dist/components/forms/dynamicForm/fields/FieldDivider.js +2 -2
  6. package/dist/components/homeItems/HomeItemList.js +7 -8
  7. package/dist/components/homeItems/HomeItemListHeader.d.ts +2 -0
  8. package/dist/components/homeItems/HomeItemListHeader.js +3 -0
  9. package/dist/components/homeItems/HomeItemManualInfo.d.ts +2 -0
  10. package/dist/components/homeItems/HomeItemManualInfo.js +7 -0
  11. package/dist/components/homeItems/index.d.ts +3 -0
  12. package/dist/components/homeItems/index.js +3 -0
  13. package/dist/index.d.ts +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/interfaces/forms/dynamicForm/SimpleDynamicForm.interface.d.ts +4 -0
  16. package/dist/interfaces/homeItems/HomeItemListHeader.interface.d.ts +5 -0
  17. package/dist/interfaces/homeItems/HomeItemListHeader.interface.js +1 -0
  18. package/dist/interfaces/homeItems/index.d.ts +1 -0
  19. package/dist/interfaces/homeItems/index.js +1 -0
  20. package/dist/mocks/forms/dynamicForm.mock.d.ts +1 -0
  21. package/dist/mocks/forms/dynamicForm.mock.js +22 -0
  22. package/dist/stories/homeItems/HomeItemManualInfo.stories.d.ts +5 -0
  23. package/dist/stories/homeItems/HomeItemManualInfo.stories.js +20 -0
  24. package/package.json +1 -1
  25. package/src/assets/locales/en/index.json +2 -0
  26. package/src/components/forms/dynamicForm/SimpleDynamicForm.tsx +13 -7
  27. package/src/components/forms/dynamicForm/fields/FieldDivider.tsx +6 -2
  28. package/src/components/homeItems/HomeItemList.tsx +18 -19
  29. package/src/components/homeItems/HomeItemListHeader.tsx +22 -0
  30. package/src/components/homeItems/HomeItemManualInfo.tsx +24 -0
  31. package/src/components/homeItems/index.ts +3 -0
  32. package/src/index.ts +2 -0
  33. package/src/interfaces/forms/dynamicForm/SimpleDynamicForm.interface.ts +4 -0
  34. package/src/interfaces/homeItems/HomeItemListHeader.interface.ts +5 -0
  35. package/src/interfaces/homeItems/index.ts +1 -0
  36. package/src/mocks/forms/dynamicForm.mock.ts +23 -0
  37. package/src/stories/homeItems/HomeItemManualInfo.stories.tsx +33 -0
@@ -456,6 +456,8 @@
456
456
  "addDetail": "Add more detail",
457
457
  "addDetailsManually": "You can enter item detail manually",
458
458
  "itemsFound": "We’ve found {{ count }} items with that serial number.",
459
+ "moreInfo": "We need a bit more information to find your item.",
460
+ "moreDetails": "To find your specific item, we need a few more details.",
459
461
  "noneAbove": "None of the above, add more detail",
460
462
  "noItemsFound": "We didn’t find your item, but don’t worry!",
461
463
  "pleaseSelect": "Please select your item from the list below. This also double confirms your selection.",
@@ -1,2 +1,2 @@
1
1
  import { SimpleDynamicFormI } from '../../../interfaces';
2
- export declare const SimpleDynamicForm: ({ fields }: SimpleDynamicFormI) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const SimpleDynamicForm: ({ dividerStyle, fields, showIcon, height, boxShadow, }: SimpleDynamicFormI) => import("react/jsx-runtime").JSX.Element;
@@ -2,8 +2,8 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Stack } from '@chakra-ui/react';
3
3
  import { TextField, SelectField, SwitchField, NumberField, FieldDivider, } from '../..';
4
4
  import { fieldIcons } from '../../../helpers';
5
- export const SimpleDynamicForm = ({ fields }) => {
6
- return (_jsx(Stack, { bg: "neutral.white", spacing: "0", h: "full", boxShadow: "md", children: fields === null || fields === void 0 ? void 0 : fields.map((field) => {
5
+ export const SimpleDynamicForm = ({ dividerStyle, fields, showIcon = false, height = 'full', boxShadow = 'md', }) => {
6
+ return (_jsx(Stack, { bg: "neutral.white", spacing: "0", h: height, boxShadow: boxShadow, children: fields === null || fields === void 0 ? void 0 : fields.map((field) => {
7
7
  const { description, icon, id, name, options, type, value } = field;
8
8
  const baseProps = {
9
9
  description,
@@ -14,14 +14,14 @@ export const SimpleDynamicForm = ({ fields }) => {
14
14
  };
15
15
  switch (type) {
16
16
  case 'number':
17
- return (_jsx(FieldDivider, { children: _jsx(NumberField, Object.assign({}, baseProps)) }, id));
17
+ return (_jsx(FieldDivider, { style: dividerStyle, children: _jsx(NumberField, Object.assign({}, baseProps)) }, id));
18
18
  case 'text':
19
19
  case 'string':
20
- return (_jsx(FieldDivider, { children: _jsx(TextField, Object.assign({}, baseProps)) }, id));
20
+ return (_jsx(FieldDivider, { style: dividerStyle, children: _jsx(TextField, Object.assign({}, baseProps, { showIcon: showIcon })) }, id));
21
21
  case 'select':
22
- return (_jsx(FieldDivider, { children: _jsx(SelectField, Object.assign({}, baseProps, { options: options })) }, id));
22
+ return (_jsx(FieldDivider, { style: dividerStyle, children: _jsx(SelectField, Object.assign({}, baseProps, { options: options })) }, id));
23
23
  case 'switch':
24
- return (_jsx(FieldDivider, { children: _jsx(SwitchField, Object.assign({}, baseProps)) }, id));
24
+ return (_jsx(FieldDivider, { style: dividerStyle, children: _jsx(SwitchField, Object.assign({}, baseProps)) }, id));
25
25
  default:
26
26
  return null;
27
27
  }
@@ -1,2 +1,4 @@
1
1
  import { PropsWithChildren } from 'react';
2
- export declare const FieldDivider: ({ children }: PropsWithChildren<{}>) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const FieldDivider: ({ children, style, }: PropsWithChildren<{
3
+ style?: string;
4
+ }>) => import("react/jsx-runtime").JSX.Element;
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Flex } from '@chakra-ui/react';
3
- export const FieldDivider = ({ children }) => {
4
- return (_jsx(Flex, { align: "center", borderBottom: "1px solid", borderColor: "lightBlue.6", p: "base", children: children }));
3
+ export const FieldDivider = ({ children, style = 'solid', }) => {
4
+ return (_jsx(Flex, { align: "center", borderBottom: "1px", borderStyle: style, borderColor: "lightBlue.6", p: "base", children: children }));
5
5
  };
@@ -1,8 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { t } from 'i18next';
3
- import { Container, Stack, Text, useRadioGroup } from '@chakra-ui/react';
4
- import { RadioCard, BaseCounter } from '..';
5
- import { ProductRadioCardContent } from './ProductRadioCardContent';
3
+ import { Container, Stack, useRadioGroup } from '@chakra-ui/react';
4
+ import { RadioCard, BaseCounter, ProductRadioCardContent, HomeItemListHeader, } from '..';
6
5
  export const HomeItemList = ({ items, onChange }) => {
7
6
  const hasItems = items.length > 0;
8
7
  const firstItemId = items[0].id;
@@ -18,11 +17,11 @@ export const HomeItemList = ({ items, onChange }) => {
18
17
  name: hasItems ? t('homeItems.noneAbove') : t('homeItems.addDetail'),
19
18
  },
20
19
  ];
21
- return (_jsxs(Container, { h: "full", children: [_jsxs(Stack, { align: "center", spacing: "base", px: "20", py: "8", children: [_jsx(Text, { fontSize: "24px", lineHeight: "28px", textAlign: "center", children: hasItems
22
- ? t('homeItems.itemsFound', { count: items.length })
23
- : t('homeItems.noItemsFound') }), _jsx(Text, { fontFamily: "secondary", fontSize: "16px", lineHeight: "20px", textAlign: "center", children: hasItems
24
- ? t('homeItems.pleaseSelect')
25
- : t('homeItems.addDetailsManually') })] }), _jsxs(Stack, { bg: "lightViolet.1", p: "base", spacing: "base", h: "full", children: [_jsx(BaseCounter, { text: t('homeItems.showing', {
20
+ return (_jsxs(Container, { h: "full", children: [_jsx(HomeItemListHeader, { title: hasItems
21
+ ? t('homeItems.itemsFound', { count: items.length })
22
+ : t('homeItems.noItemsFound'), subtitle: hasItems
23
+ ? t('homeItems.pleaseSelect')
24
+ : t('homeItems.addDetailsManually') }), _jsxs(Stack, { bg: "lightViolet.1", p: "base", spacing: "base", h: "full", boxShadow: "xl", children: [_jsx(BaseCounter, { text: t('homeItems.showing', {
26
25
  count: items.length,
27
26
  total: items.length,
28
27
  }) }), itemsWithNone.map((item) => {
@@ -0,0 +1,2 @@
1
+ import { HomeItemListHeaderI } from '../../interfaces';
2
+ export declare const HomeItemListHeader: ({ title, subtitle, px, }: HomeItemListHeaderI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Stack, Text } from '@chakra-ui/react';
3
+ export const HomeItemListHeader = ({ title, subtitle, px = '20', }) => (_jsxs(Stack, { align: "center", spacing: "base", px: px, py: "8", boxShadow: "xl", children: [_jsx(Text, { fontSize: "24px", lineHeight: "28px", textAlign: "center", children: title }), _jsx(Text, { fontFamily: "secondary", fontSize: "16px", lineHeight: "20px", textAlign: "center", children: subtitle })] }));
@@ -0,0 +1,2 @@
1
+ import { SimpleDynamicFormI } from '../../interfaces';
2
+ export declare const HomeItemManualInfo: ({ fields }: SimpleDynamicFormI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { t } from 'i18next';
3
+ import { Container, Divider } from '@chakra-ui/react';
4
+ import { HomeItemListHeader, SimpleDynamicForm } from '..';
5
+ export const HomeItemManualInfo = ({ fields }) => {
6
+ return (_jsxs(Container, { children: [_jsx(HomeItemListHeader, { title: t('homeItems.moreInfo'), subtitle: t('homeItems.moreDetails'), px: "12" }), _jsx(Divider, { borderStyle: "dashed" }), _jsx(SimpleDynamicForm, { fields: fields, dividerStyle: "dashed", showIcon: true, height: "fit-content", boxShadow: "none" })] }));
7
+ };
@@ -1,2 +1,5 @@
1
1
  export * from './HomeItemList';
2
+ export * from './HomeItemListHeader';
3
+ export * from './HomeItemManualInfo';
4
+ export * from './ProductRadioCardContent';
2
5
  export * from './ViewingHomeItemPanel';
@@ -1,2 +1,5 @@
1
1
  export * from './HomeItemList';
2
+ export * from './HomeItemListHeader';
3
+ export * from './HomeItemManualInfo';
4
+ export * from './ProductRadioCardContent';
2
5
  export * from './ViewingHomeItemPanel';
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BackendAlert, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, 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, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, InboxForwardBanner, InboxTile, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessagePanel, MessageChatPanel, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Notifications, NotificationsReminder, NotificationsPanel, NotificationCard, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, 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, SectionHeader, SendCommunication, SearchItemLoader, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, ViewContactPanel, VideoPlayer, VideoPlayerModal, WeatherWidget, WellDone, YtdTile, } from './components';
1
+ export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BackendAlert, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, 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, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomeItemList, HomeItemManualInfo, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, InboxForwardBanner, InboxTile, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessagePanel, MessageChatPanel, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Notifications, NotificationsReminder, NotificationsPanel, NotificationCard, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, 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, SectionHeader, SendCommunication, SearchItemLoader, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, ViewContactPanel, VideoPlayer, VideoPlayerModal, WeatherWidget, WellDone, YtdTile, } from './components';
2
2
  export { useCustomToast } from './hooks';
3
3
  export { randomColor, mapApiObjectToFormFields, mapForecastToWidget, } from './utils';
4
4
  export { Contacts, MagnifyingGlassReport, Message, Register, Receipts, Price, BlueFolderShared, Calendar, Create, Notes, } from './assets/images';
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BackendAlert, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, 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, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, InboxForwardBanner, InboxTile, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessagePanel, MessageChatPanel, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Notifications, NotificationsReminder, NotificationsPanel, NotificationCard, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, 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, SectionHeader, SendCommunication, SearchItemLoader, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, ViewContactPanel, VideoPlayer, VideoPlayerModal, WeatherWidget, WellDone, YtdTile, } from './components';
1
+ export { ActivateAccount, ActiveSubscription, AddCardBanner, AddEditContactPanel, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AddToHomefile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BackendAlert, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, Dialog, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, 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, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeDetailsContent, HomefileMonitoring, HomeHeader, HomeItemList, HomeItemManualInfo, HomeMonitor, HomeMonitorPanel, HomeMonitorSteps, HomeSharedWith, InboxForwardBanner, InboxTile, ItemFormPanel, ItemFormTabs, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadReceiptPanel, LaunchpadTour, LeftPanel, Loading, MediaDetailsStep, MessagePanel, MessageChatPanel, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileBody, MyProfileContent, MyProfileFooter, MyProfileHeader, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Notifications, NotificationsReminder, NotificationsPanel, NotificationCard, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, 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, SectionHeader, SendCommunication, SearchItemLoader, ShareContactsContent, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShineTile, ShortPartnerTile, SignIn, SignUp, SkeletonBox, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, ViewContactPanel, VideoPlayer, VideoPlayerModal, WeatherWidget, WellDone, YtdTile, } from './components';
2
2
  export { useCustomToast } from './hooks';
3
3
  export { randomColor, mapApiObjectToFormFields, mapForecastToWidget, } from './utils';
4
4
  export { Contacts, MagnifyingGlassReport, Message, Register, Receipts, Price, BlueFolderShared, Calendar, Create, Notes, } from './assets/images';
@@ -1,4 +1,8 @@
1
1
  import { ReportI } from '../..';
2
2
  export interface SimpleDynamicFormI {
3
+ boxShadow?: string;
4
+ dividerStyle?: string;
5
+ height?: string;
3
6
  fields: ReportI[];
7
+ showIcon?: boolean;
4
8
  }
@@ -0,0 +1,5 @@
1
+ export interface HomeItemListHeaderI {
2
+ title: string;
3
+ subtitle: string;
4
+ px?: string;
5
+ }
@@ -1,3 +1,4 @@
1
1
  export * from './ViewingHomeItemPanel.interface';
2
+ export * from './HomeItemListHeader.interface';
2
3
  export * from './ProductRadioCardContent.interface';
3
4
  export * from './HomeItemList.interface';
@@ -1,3 +1,4 @@
1
1
  export * from './ViewingHomeItemPanel.interface';
2
+ export * from './HomeItemListHeader.interface';
2
3
  export * from './ProductRadioCardContent.interface';
3
4
  export * from './HomeItemList.interface';
@@ -8,3 +8,4 @@ export declare const alertFieldsMock: ReportI[];
8
8
  export declare const alertFieldsMock2: ReportI[];
9
9
  export declare const alertFieldsMock3: ReportI[];
10
10
  export declare const receiptFieldsMock: ReportI[];
11
+ export declare const homeItemDetails: ReportI[];
@@ -1259,3 +1259,25 @@ export const receiptFieldsMock = [
1259
1259
  icon: 'notes',
1260
1260
  },
1261
1261
  ];
1262
+ export const homeItemDetails = [
1263
+ {
1264
+ id: faker.database.mongodbObjectId(),
1265
+ name: 'Brand and or Manufacturer',
1266
+ description: faker.lorem.sentence(),
1267
+ comments: faker.lorem.sentence(),
1268
+ value: '',
1269
+ type: 'text',
1270
+ visible: true,
1271
+ icon: 'company',
1272
+ },
1273
+ {
1274
+ id: faker.database.mongodbObjectId(),
1275
+ name: 'Serial Number',
1276
+ description: faker.lorem.sentence(),
1277
+ comments: faker.lorem.sentence(),
1278
+ value: '',
1279
+ type: 'text',
1280
+ visible: true,
1281
+ icon: 'barcode',
1282
+ },
1283
+ ];
@@ -0,0 +1,5 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { SimpleDynamicFormI } from '../../interfaces';
3
+ declare const _default: Meta<SimpleDynamicFormI>;
4
+ export default _default;
5
+ export declare const HomeItemManualInfoComponent: (args: SimpleDynamicFormI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { FormProvider, useForm } from 'react-hook-form';
3
+ import { action } from '@storybook/addon-actions';
4
+ import { DrawerContent } from '@chakra-ui/react';
5
+ import { RightPanel, HomeItemManualInfo } from '../../components';
6
+ import { homeItemDetails } from '../../mocks';
7
+ export default {
8
+ title: 'Components/HomeItems',
9
+ component: HomeItemManualInfo,
10
+ args: {
11
+ fields: homeItemDetails,
12
+ },
13
+ decorators: [
14
+ (Story) => (_jsx(RightPanel, { isOpen: true, onClose: action('onClose'), children: _jsx(DrawerContent, { bg: "lightBlue.1", p: "base", children: _jsx(Story, {}) }) })),
15
+ ],
16
+ };
17
+ export const HomeItemManualInfoComponent = (args) => {
18
+ const form = useForm();
19
+ return (_jsx(FormProvider, Object.assign({}, form, { children: _jsx(HomeItemManualInfo, Object.assign({}, args)) })));
20
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@homefile/components-v2",
3
- "version": "2.26.6",
3
+ "version": "2.27.0",
4
4
  "author": "Homefile",
5
5
  "license": "UNLICENSED",
6
6
  "typings": "dist/index.d.ts",
@@ -456,6 +456,8 @@
456
456
  "addDetail": "Add more detail",
457
457
  "addDetailsManually": "You can enter item detail manually",
458
458
  "itemsFound": "We’ve found {{ count }} items with that serial number.",
459
+ "moreInfo": "We need a bit more information to find your item.",
460
+ "moreDetails": "To find your specific item, we need a few more details.",
459
461
  "noneAbove": "None of the above, add more detail",
460
462
  "noItemsFound": "We didn’t find your item, but don’t worry!",
461
463
  "pleaseSelect": "Please select your item from the list below. This also double confirms your selection.",
@@ -9,9 +9,15 @@ import {
9
9
  } from '@/components'
10
10
  import { fieldIcons } from '@/helpers'
11
11
 
12
- export const SimpleDynamicForm = ({ fields }: SimpleDynamicFormI) => {
12
+ export const SimpleDynamicForm = ({
13
+ dividerStyle,
14
+ fields,
15
+ showIcon = false,
16
+ height = 'full',
17
+ boxShadow = 'md',
18
+ }: SimpleDynamicFormI) => {
13
19
  return (
14
- <Stack bg="neutral.white" spacing="0" h="full" boxShadow="md">
20
+ <Stack bg="neutral.white" spacing="0" h={height} boxShadow={boxShadow}>
15
21
  {fields?.map((field) => {
16
22
  const { description, icon, id, name, options, type, value } = field
17
23
 
@@ -25,26 +31,26 @@ export const SimpleDynamicForm = ({ fields }: SimpleDynamicFormI) => {
25
31
  switch (type) {
26
32
  case 'number':
27
33
  return (
28
- <FieldDivider key={id}>
34
+ <FieldDivider key={id} style={dividerStyle}>
29
35
  <NumberField {...baseProps} />
30
36
  </FieldDivider>
31
37
  )
32
38
  case 'text':
33
39
  case 'string':
34
40
  return (
35
- <FieldDivider key={id}>
36
- <TextField {...baseProps} />
41
+ <FieldDivider key={id} style={dividerStyle}>
42
+ <TextField {...baseProps} showIcon={showIcon} />
37
43
  </FieldDivider>
38
44
  )
39
45
  case 'select':
40
46
  return (
41
- <FieldDivider key={id}>
47
+ <FieldDivider key={id} style={dividerStyle}>
42
48
  <SelectField {...baseProps} options={options} />
43
49
  </FieldDivider>
44
50
  )
45
51
  case 'switch':
46
52
  return (
47
- <FieldDivider key={id}>
53
+ <FieldDivider key={id} style={dividerStyle}>
48
54
  <SwitchField {...baseProps} />
49
55
  </FieldDivider>
50
56
  )
@@ -1,11 +1,15 @@
1
1
  import { PropsWithChildren } from 'react'
2
2
  import { Flex } from '@chakra-ui/react'
3
3
 
4
- export const FieldDivider = ({ children }: PropsWithChildren<{}>) => {
4
+ export const FieldDivider = ({
5
+ children,
6
+ style = 'solid',
7
+ }: PropsWithChildren<{ style?: string }>) => {
5
8
  return (
6
9
  <Flex
7
10
  align="center"
8
- borderBottom="1px solid"
11
+ borderBottom="1px"
12
+ borderStyle={style}
9
13
  borderColor="lightBlue.6"
10
14
  p="base"
11
15
  >
@@ -1,7 +1,11 @@
1
1
  import { t } from 'i18next'
2
- import { Container, Stack, Text, useRadioGroup } from '@chakra-ui/react'
3
- import { RadioCard, BaseCounter } from '@/components'
4
- import { ProductRadioCardContent } from './ProductRadioCardContent'
2
+ import { Container, Stack, useRadioGroup } from '@chakra-ui/react'
3
+ import {
4
+ RadioCard,
5
+ BaseCounter,
6
+ ProductRadioCardContent,
7
+ HomeItemListHeader,
8
+ } from '@/components'
5
9
  import { HomeItemListI } from '@/interfaces'
6
10
 
7
11
  export const HomeItemList = ({ items, onChange }: HomeItemListI) => {
@@ -23,24 +27,19 @@ export const HomeItemList = ({ items, onChange }: HomeItemListI) => {
23
27
 
24
28
  return (
25
29
  <Container h="full">
26
- <Stack align="center" spacing="base" px="20" py="8">
27
- <Text fontSize="24px" lineHeight="28px" textAlign="center">
28
- {hasItems
30
+ <HomeItemListHeader
31
+ title={
32
+ hasItems
29
33
  ? t('homeItems.itemsFound', { count: items.length })
30
- : t('homeItems.noItemsFound')}
31
- </Text>
32
- <Text
33
- fontFamily="secondary"
34
- fontSize="16px"
35
- lineHeight="20px"
36
- textAlign="center"
37
- >
38
- {hasItems
34
+ : t('homeItems.noItemsFound')
35
+ }
36
+ subtitle={
37
+ hasItems
39
38
  ? t('homeItems.pleaseSelect')
40
- : t('homeItems.addDetailsManually')}
41
- </Text>
42
- </Stack>
43
- <Stack bg="lightViolet.1" p="base" spacing="base" h="full">
39
+ : t('homeItems.addDetailsManually')
40
+ }
41
+ />
42
+ <Stack bg="lightViolet.1" p="base" spacing="base" h="full" boxShadow="xl">
44
43
  <BaseCounter
45
44
  text={t('homeItems.showing', {
46
45
  count: items.length,
@@ -0,0 +1,22 @@
1
+ import { Stack, Text } from '@chakra-ui/react'
2
+ import { HomeItemListHeaderI } from '@/interfaces'
3
+
4
+ export const HomeItemListHeader = ({
5
+ title,
6
+ subtitle,
7
+ px = '20',
8
+ }: HomeItemListHeaderI) => (
9
+ <Stack align="center" spacing="base" px={px} py="8" boxShadow="xl">
10
+ <Text fontSize="24px" lineHeight="28px" textAlign="center">
11
+ {title}
12
+ </Text>
13
+ <Text
14
+ fontFamily="secondary"
15
+ fontSize="16px"
16
+ lineHeight="20px"
17
+ textAlign="center"
18
+ >
19
+ {subtitle}
20
+ </Text>
21
+ </Stack>
22
+ )
@@ -0,0 +1,24 @@
1
+ import { t } from 'i18next'
2
+ import { Container, Divider } from '@chakra-ui/react'
3
+ import { HomeItemListHeader, SimpleDynamicForm } from '@/components'
4
+ import { SimpleDynamicFormI } from '@/interfaces'
5
+
6
+ export const HomeItemManualInfo = ({ fields }: SimpleDynamicFormI) => {
7
+ return (
8
+ <Container>
9
+ <HomeItemListHeader
10
+ title={t('homeItems.moreInfo')}
11
+ subtitle={t('homeItems.moreDetails')}
12
+ px="12"
13
+ />
14
+ <Divider borderStyle="dashed" />
15
+ <SimpleDynamicForm
16
+ fields={fields}
17
+ dividerStyle="dashed"
18
+ showIcon
19
+ height="fit-content"
20
+ boxShadow="none"
21
+ />
22
+ </Container>
23
+ )
24
+ }
@@ -1,2 +1,5 @@
1
1
  export * from './HomeItemList'
2
+ export * from './HomeItemListHeader'
3
+ export * from './HomeItemManualInfo'
4
+ export * from './ProductRadioCardContent'
2
5
  export * from './ViewingHomeItemPanel'
package/src/index.ts CHANGED
@@ -78,6 +78,8 @@ export {
78
78
  HomeDetailsContent,
79
79
  HomefileMonitoring,
80
80
  HomeHeader,
81
+ HomeItemList,
82
+ HomeItemManualInfo,
81
83
  HomeMonitor,
82
84
  HomeMonitorPanel,
83
85
  HomeMonitorSteps,
@@ -1,5 +1,9 @@
1
1
  import { ReportI } from '@/interfaces'
2
2
 
3
3
  export interface SimpleDynamicFormI {
4
+ boxShadow?: string
5
+ dividerStyle?: string
6
+ height?: string
4
7
  fields: ReportI[]
8
+ showIcon?: boolean
5
9
  }
@@ -0,0 +1,5 @@
1
+ export interface HomeItemListHeaderI {
2
+ title: string
3
+ subtitle: string
4
+ px?: string
5
+ }
@@ -1,3 +1,4 @@
1
1
  export * from './ViewingHomeItemPanel.interface'
2
+ export * from './HomeItemListHeader.interface'
2
3
  export * from './ProductRadioCardContent.interface'
3
4
  export * from './HomeItemList.interface'
@@ -1286,3 +1286,26 @@ export const receiptFieldsMock: ReportI[] = [
1286
1286
  icon: 'notes',
1287
1287
  },
1288
1288
  ]
1289
+
1290
+ export const homeItemDetails: ReportI[] = [
1291
+ {
1292
+ id: faker.database.mongodbObjectId(),
1293
+ name: 'Brand and or Manufacturer',
1294
+ description: faker.lorem.sentence(),
1295
+ comments: faker.lorem.sentence(),
1296
+ value: '',
1297
+ type: 'text',
1298
+ visible: true,
1299
+ icon: 'company',
1300
+ },
1301
+ {
1302
+ id: faker.database.mongodbObjectId(),
1303
+ name: 'Serial Number',
1304
+ description: faker.lorem.sentence(),
1305
+ comments: faker.lorem.sentence(),
1306
+ value: '',
1307
+ type: 'text',
1308
+ visible: true,
1309
+ icon: 'barcode',
1310
+ },
1311
+ ]
@@ -0,0 +1,33 @@
1
+ import { FormProvider, useForm } from 'react-hook-form'
2
+ import { Meta } from '@storybook/react'
3
+ import { action } from '@storybook/addon-actions'
4
+ import { DrawerContent } from '@chakra-ui/react'
5
+ import { RightPanel, HomeItemManualInfo } from '@/components'
6
+ import { SimpleDynamicFormI } from '@/interfaces'
7
+ import { homeItemDetails } from '@/mocks'
8
+
9
+ export default {
10
+ title: 'Components/HomeItems',
11
+ component: HomeItemManualInfo,
12
+ args: {
13
+ fields: homeItemDetails,
14
+ },
15
+ decorators: [
16
+ (Story) => (
17
+ <RightPanel isOpen onClose={action('onClose')}>
18
+ <DrawerContent bg="lightBlue.1" p="base">
19
+ <Story />
20
+ </DrawerContent>
21
+ </RightPanel>
22
+ ),
23
+ ],
24
+ } as Meta<SimpleDynamicFormI>
25
+
26
+ export const HomeItemManualInfoComponent = (args: SimpleDynamicFormI) => {
27
+ const form = useForm()
28
+ return (
29
+ <FormProvider {...form}>
30
+ <HomeItemManualInfo {...args} />
31
+ </FormProvider>
32
+ )
33
+ }