@homefile/components-v2 2.1.1 → 2.2.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.
- package/dist/assets/images/index.d.ts +2 -1
- package/dist/assets/images/index.js +2 -1
- package/dist/assets/images/index.ts +2 -0
- package/dist/assets/images/pressure-washer.svg +16 -0
- package/dist/components/animations/HomieAnimation.d.ts +3 -1
- package/dist/components/animations/HomieAnimation.js +2 -2
- package/dist/components/forms/dynamicForm/DynamicForm.js +3 -1
- package/dist/components/forms/dynamicForm/fields/CheckboxGroupField.d.ts +2 -0
- package/dist/components/forms/dynamicForm/fields/CheckboxGroupField.js +18 -0
- package/dist/components/forms/dynamicForm/fields/SingleFields.js +3 -3
- package/dist/components/forms/dynamicForm/fields/index.d.ts +1 -0
- package/dist/components/forms/dynamicForm/fields/index.js +1 -0
- package/dist/components/forms/dynamicForm/fields/uiFields/TileBodyAction.d.ts +1 -1
- package/dist/components/forms/dynamicForm/fields/uiFields/TileBodyAction.js +2 -2
- package/dist/components/forms/dynamicForm/fields/uiFields/TileBodyAction.tsx +2 -2
- package/dist/components/forms/dynamicForm/fields/uiFields/TileCta.d.ts +1 -1
- package/dist/components/forms/dynamicForm/fields/uiFields/TileCta.js +15 -2
- package/dist/components/forms/dynamicForm/fields/uiFields/TileCta.tsx +3 -2
- package/dist/components/homeAssistant/HomeMonitorSteps.js +2 -6
- package/dist/components/homeAssistant/monitorAlerts/HomefileMonitoring.js +1 -1
- package/dist/components/homeBoard/HomeBoard.js +6 -1
- package/dist/helpers/forms/dynamicForm.helper.js +2 -1
- package/dist/interfaces/forms/dynamicForm/DynamicForm.interface.d.ts +2 -2
- package/dist/interfaces/forms/dynamicForm/fields/UIFields.interface.d.ts +14 -3
- package/dist/mocks/forms/dynamicForm.mock.js +66 -0
- package/dist/stories/animations/HomieAnimation.stories.d.ts +1 -0
- package/dist/stories/animations/HomieAnimation.stories.js +1 -0
- package/dist/stories/assets/Illustrations.stories.js +2 -2
- package/dist/stories/forms/dynamicForm/DynamicForm.stories.js +1 -3
- package/package.json +1 -1
- package/src/assets/images/index.ts +2 -0
- package/src/assets/images/pressure-washer.svg +16 -0
- package/src/components/animations/HomieAnimation.tsx +2 -2
- package/src/components/forms/dynamicForm/DynamicForm.tsx +11 -0
- package/src/components/forms/dynamicForm/fields/CheckboxGroupField.tsx +65 -0
- package/src/components/forms/dynamicForm/fields/SingleFields.tsx +12 -2
- package/src/components/forms/dynamicForm/fields/index.ts +1 -0
- package/src/components/forms/dynamicForm/fields/uiFields/TileBodyAction.tsx +2 -2
- package/src/components/forms/dynamicForm/fields/uiFields/TileCta.tsx +3 -2
- package/src/components/homeAssistant/HomeMonitorSteps.tsx +2 -6
- package/src/components/homeAssistant/monitorAlerts/HomefileMonitoring.tsx +1 -1
- package/src/components/homeBoard/HomeBoard.tsx +7 -2
- package/src/helpers/forms/dynamicForm.helper.ts +2 -0
- package/src/interfaces/forms/dynamicForm/DynamicForm.interface.ts +2 -0
- package/src/interfaces/forms/dynamicForm/fields/UIFields.interface.ts +18 -3
- package/src/mocks/forms/dynamicForm.mock.ts +67 -0
- package/src/stories/animations/HomieAnimation.stories.tsx +1 -0
- package/src/stories/assets/Illustrations.stories.tsx +2 -0
- package/src/stories/forms/dynamicForm/DynamicForm.stories.tsx +6 -3
|
@@ -102,6 +102,7 @@ import Play from './play.svg';
|
|
|
102
102
|
import Plus from './plus.svg';
|
|
103
103
|
import Pool from './pool.svg';
|
|
104
104
|
import Pool2 from './pool2.svg';
|
|
105
|
+
import PressureWasher from './pressure-washer.svg';
|
|
105
106
|
import Price from './price.svg';
|
|
106
107
|
import Profile from './profile.svg';
|
|
107
108
|
import ProgressReport from './progress-report.svg';
|
|
@@ -153,7 +154,7 @@ import WizardDetailed from './wizard-detailed.svg';
|
|
|
153
154
|
import WizardQuick from './wizard-quick.svg';
|
|
154
155
|
import YellowFolder from './yellow-folder.svg';
|
|
155
156
|
import YellowFolderUnshared from './yellow-folder-unshared.svg';
|
|
156
|
-
export { AlertDelete, AlertDeletePurple, Arrow, Batery, Bathroom, Battery, Battery2, Bedroom, BgBlue, BgLogo, Billing, BillingAddress, BlueFolder, BlueFolderShared, Box, Building, Calc, Calendar2, Catalog, Check, CheckInCircle, CheckPen, Chemistry, CircleFace, Cleaning, Closet, Clouds, Co2, Company, ComputerReport, Confirmation, Construction, Contacts, Contacts2, Contributor, CreditCard, Detector, Diamond, DiningRoom, DocIcon, Document, Drop, DropCalendar, Electricity, Entryway, Exclamation, Face, Feedback, FileUploading, Finance, Fire, Flag, FormSent, Foundation, Garage, GearPencil, GearTime, GenericField, GlassWater, GreenFolder, Group, Groups, GuestBedroom, Hallway, HandPencil, Heater, Help, HomeAddress, Homeowner, House, HouseHands, IA, ImageDefault, ImgIcon, Inbox, Insect, Kitchen, Laundry, Light, LivingRoom, Loading, Location, LogoCompany, LogoSmall, MagnifyingGlassReport, Manager, MasterBedroom, Member, Message, MobileDrop, Money, Mudroom, NeedHelp, Office, Painting, PartnerGeneric, Patio, PdfIcon, PersonMail, Plate, Play, Plus, Pool, Pool2, Price, Profile, ProgressReport, Proposal, RealEstate, Receipt, ReceiptBg, ReceiptHouse, Receipts, Recipient, Records, Register, RelationshipHome, ResendPassword, Rocket, Roof2, Security, Send, ShareHome, ShareWith, SixtyEight, SMS, Social, SolarPanel, Sprinkler, Structure, Subscription, Target, Temperature, Theatre, Thumbnail, ThumbnailSmall, ThumbUp, Trash, Trees, TreesCrop, TreesCrop2, VideoIcon, VideoPlay, VioletFolder, Warning, Warranty, WellDone, WholeHome, Wind, WindWhite, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, };
|
|
157
|
+
export { AlertDelete, AlertDeletePurple, Arrow, Batery, Bathroom, Battery, Battery2, Bedroom, BgBlue, BgLogo, Billing, BillingAddress, BlueFolder, BlueFolderShared, Box, Building, Calc, Calendar2, Catalog, Check, CheckInCircle, CheckPen, Chemistry, CircleFace, Cleaning, Closet, Clouds, Co2, Company, ComputerReport, Confirmation, Construction, Contacts, Contacts2, Contributor, CreditCard, Detector, Diamond, DiningRoom, DocIcon, Document, Drop, DropCalendar, Electricity, Entryway, Exclamation, Face, Feedback, FileUploading, Finance, Fire, Flag, FormSent, Foundation, Garage, GearPencil, GearTime, GenericField, GlassWater, GreenFolder, Group, Groups, GuestBedroom, Hallway, HandPencil, Heater, Help, HomeAddress, Homeowner, House, HouseHands, IA, ImageDefault, ImgIcon, Inbox, Insect, Kitchen, Laundry, Light, LivingRoom, Loading, Location, LogoCompany, LogoSmall, MagnifyingGlassReport, Manager, MasterBedroom, Member, Message, MobileDrop, Money, Mudroom, NeedHelp, Office, Painting, PartnerGeneric, Patio, PdfIcon, PersonMail, Plate, Play, Plus, Pool, Pool2, PressureWasher, Price, Profile, ProgressReport, Proposal, RealEstate, Receipt, ReceiptBg, ReceiptHouse, Receipts, Recipient, Records, Register, RelationshipHome, ResendPassword, Rocket, Roof2, Security, Send, ShareHome, ShareWith, SixtyEight, SMS, Social, SolarPanel, Sprinkler, Structure, Subscription, Target, Temperature, Theatre, Thumbnail, ThumbnailSmall, ThumbUp, Trash, Trees, TreesCrop, TreesCrop2, VideoIcon, VideoPlay, VioletFolder, Warning, Warranty, WellDone, WholeHome, Wind, WindWhite, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, };
|
|
157
158
|
export * from './alerts';
|
|
158
159
|
export * from './appliances';
|
|
159
160
|
export * from './clouds-animation';
|
|
@@ -102,6 +102,7 @@ import Play from './play.svg';
|
|
|
102
102
|
import Plus from './plus.svg';
|
|
103
103
|
import Pool from './pool.svg';
|
|
104
104
|
import Pool2 from './pool2.svg';
|
|
105
|
+
import PressureWasher from './pressure-washer.svg';
|
|
105
106
|
import Price from './price.svg';
|
|
106
107
|
import Profile from './profile.svg';
|
|
107
108
|
import ProgressReport from './progress-report.svg';
|
|
@@ -153,7 +154,7 @@ import WizardDetailed from './wizard-detailed.svg';
|
|
|
153
154
|
import WizardQuick from './wizard-quick.svg';
|
|
154
155
|
import YellowFolder from './yellow-folder.svg';
|
|
155
156
|
import YellowFolderUnshared from './yellow-folder-unshared.svg';
|
|
156
|
-
export { AlertDelete, AlertDeletePurple, Arrow, Batery, Bathroom, Battery, Battery2, Bedroom, BgBlue, BgLogo, Billing, BillingAddress, BlueFolder, BlueFolderShared, Box, Building, Calc, Calendar2, Catalog, Check, CheckInCircle, CheckPen, Chemistry, CircleFace, Cleaning, Closet, Clouds, Co2, Company, ComputerReport, Confirmation, Construction, Contacts, Contacts2, Contributor, CreditCard, Detector, Diamond, DiningRoom, DocIcon, Document, Drop, DropCalendar, Electricity, Entryway, Exclamation, Face, Feedback, FileUploading, Finance, Fire, Flag, FormSent, Foundation, Garage, GearPencil, GearTime, GenericField, GlassWater, GreenFolder, Group, Groups, GuestBedroom, Hallway, HandPencil, Heater, Help, HomeAddress, Homeowner, House, HouseHands, IA, ImageDefault, ImgIcon, Inbox, Insect, Kitchen, Laundry, Light, LivingRoom, Loading, Location, LogoCompany, LogoSmall, MagnifyingGlassReport, Manager, MasterBedroom, Member, Message, MobileDrop, Money, Mudroom, NeedHelp, Office, Painting, PartnerGeneric, Patio, PdfIcon, PersonMail, Plate, Play, Plus, Pool, Pool2, Price, Profile, ProgressReport, Proposal, RealEstate, Receipt, ReceiptBg, ReceiptHouse, Receipts, Recipient, Records, Register, RelationshipHome, ResendPassword, Rocket, Roof2, Security, Send, ShareHome, ShareWith, SixtyEight, SMS, Social, SolarPanel, Sprinkler, Structure, Subscription, Target, Temperature, Theatre, Thumbnail, ThumbnailSmall, ThumbUp, Trash, Trees, TreesCrop, TreesCrop2, VideoIcon, VideoPlay, VioletFolder, Warning, Warranty, WellDone, WholeHome, Wind, WindWhite, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, };
|
|
157
|
+
export { AlertDelete, AlertDeletePurple, Arrow, Batery, Bathroom, Battery, Battery2, Bedroom, BgBlue, BgLogo, Billing, BillingAddress, BlueFolder, BlueFolderShared, Box, Building, Calc, Calendar2, Catalog, Check, CheckInCircle, CheckPen, Chemistry, CircleFace, Cleaning, Closet, Clouds, Co2, Company, ComputerReport, Confirmation, Construction, Contacts, Contacts2, Contributor, CreditCard, Detector, Diamond, DiningRoom, DocIcon, Document, Drop, DropCalendar, Electricity, Entryway, Exclamation, Face, Feedback, FileUploading, Finance, Fire, Flag, FormSent, Foundation, Garage, GearPencil, GearTime, GenericField, GlassWater, GreenFolder, Group, Groups, GuestBedroom, Hallway, HandPencil, Heater, Help, HomeAddress, Homeowner, House, HouseHands, IA, ImageDefault, ImgIcon, Inbox, Insect, Kitchen, Laundry, Light, LivingRoom, Loading, Location, LogoCompany, LogoSmall, MagnifyingGlassReport, Manager, MasterBedroom, Member, Message, MobileDrop, Money, Mudroom, NeedHelp, Office, Painting, PartnerGeneric, Patio, PdfIcon, PersonMail, Plate, Play, Plus, Pool, Pool2, PressureWasher, Price, Profile, ProgressReport, Proposal, RealEstate, Receipt, ReceiptBg, ReceiptHouse, Receipts, Recipient, Records, Register, RelationshipHome, ResendPassword, Rocket, Roof2, Security, Send, ShareHome, ShareWith, SixtyEight, SMS, Social, SolarPanel, Sprinkler, Structure, Subscription, Target, Temperature, Theatre, Thumbnail, ThumbnailSmall, ThumbUp, Trash, Trees, TreesCrop, TreesCrop2, VideoIcon, VideoPlay, VioletFolder, Warning, Warranty, WellDone, WholeHome, Wind, WindWhite, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, };
|
|
157
158
|
export * from './alerts';
|
|
158
159
|
export * from './appliances';
|
|
159
160
|
export * from './clouds-animation';
|
|
@@ -102,6 +102,7 @@ import Play from './play.svg'
|
|
|
102
102
|
import Plus from './plus.svg'
|
|
103
103
|
import Pool from './pool.svg'
|
|
104
104
|
import Pool2 from './pool2.svg'
|
|
105
|
+
import PressureWasher from './pressure-washer.svg'
|
|
105
106
|
import Price from './price.svg'
|
|
106
107
|
import Profile from './profile.svg'
|
|
107
108
|
import ProgressReport from './progress-report.svg'
|
|
@@ -259,6 +260,7 @@ export {
|
|
|
259
260
|
Plus,
|
|
260
261
|
Pool,
|
|
261
262
|
Pool2,
|
|
263
|
+
PressureWasher,
|
|
262
264
|
Price,
|
|
263
265
|
Profile,
|
|
264
266
|
ProgressReport,
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<svg id="Group_22267" data-name="Group 22267" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28.455" height="30.766" viewBox="0 0 28.455 30.766">
|
|
2
|
+
<defs>
|
|
3
|
+
<clipPath id="clip-path">
|
|
4
|
+
<rect id="Rectangle_25649" data-name="Rectangle 25649" width="28.455" height="30.766" fill="none"/>
|
|
5
|
+
</clipPath>
|
|
6
|
+
</defs>
|
|
7
|
+
<g id="Group_22266" data-name="Group 22266" clip-path="url(#clip-path)">
|
|
8
|
+
<path id="Path_17637" data-name="Path 17637" d="M2.623,97.179a2.624,2.624,0,1,1,2.392-3.7c.033.074.062.148.088.222l-.786.276c-.019-.054-.04-.107-.063-.158a1.79,1.79,0,1,0-.009,1.5,1.44,1.44,0,0,0,.067-.172c.014-.038.02-.052.024-.068s.011-.041.016-.057a.37.37,0,0,0,.014-.054c.01-.043.014-.064.018-.088l.821.14c-.007.043-.015.083-.025.126s-.021.09-.035.133-.026.087-.042.131A2.377,2.377,0,0,1,5,95.674a2.641,2.641,0,0,1-2.373,1.5" transform="translate(0 -66.413)" fill="#00c0b7"/>
|
|
9
|
+
<path id="Path_17638" data-name="Path 17638" d="M74.807,0V1.516H71.726V0Z" transform="translate(-51.817 0)" fill="#40566b"/>
|
|
10
|
+
<path id="Path_17639" data-name="Path 17639" d="M30.728,16.7v3.794h-2V16.7Z" transform="translate(-20.753 -12.064)" fill="#40566b"/>
|
|
11
|
+
<path id="Path_17640" data-name="Path 17640" d="M26.768,35.665a4,4,0,0,1,0,8.008H10.422V41.827H26.768a2.157,2.157,0,1,0,0-4.313H7.21a4.008,4.008,0,0,1-4.005-4V24.2A4.011,4.011,0,0,1,7.21,20.2h3.079v1.849H7.21A2.159,2.159,0,0,0,5.054,24.2v9.307A2.157,2.157,0,0,0,7.21,35.665Z" transform="translate(-2.315 -14.592)" fill="#00c0b7"/>
|
|
12
|
+
<path id="Path_17641" data-name="Path 17641" d="M18.926,98.119v1.846h-3.95a1.872,1.872,0,0,0,.086-.219.869.869,0,0,0,.036-.114.881.881,0,0,0,.031-.117c.009-.033.014-.064.02-.1a2.066,2.066,0,0,0,.036-.394,2.188,2.188,0,0,0-.12-.716c-.022-.064-.047-.128-.075-.189Z" transform="translate(-10.819 -70.884)" fill="#e24c5d"/>
|
|
13
|
+
<path id="Path_17642" data-name="Path 17642" d="M53.8,10.734V16.8a5.273,5.273,0,0,1-5.274,5.274H39.055a3.118,3.118,0,0,1-3.12-3.117V8.58a3.119,3.119,0,0,1,3.12-3.12h9.471A5.273,5.273,0,0,1,53.8,10.734m-4.158,7.594V9.4a.616.616,0,0,0-.616-.616H45.791a.618.618,0,0,0-.616.616v8.932a.617.617,0,0,0,.616.616h3.234a.615.615,0,0,0,.616-.616" transform="translate(-25.961 -3.944)" fill="#e24c5d"/>
|
|
14
|
+
<path id="Path_17643" data-name="Path 17643" d="M73.69,26.969a.615.615,0,0,1-.616.616H69.84a.617.617,0,0,1-.616-.616V18.037a.618.618,0,0,1,.616-.616h3.234a.616.616,0,0,1,.616.616Z" transform="translate(-50.01 -12.586)" fill="#ddeff2"/>
|
|
15
|
+
</g>
|
|
16
|
+
</svg>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useRive } from '@rive-app/react-canvas';
|
|
3
3
|
const url = import.meta.env.VITE_RIVE_ASSETS;
|
|
4
|
-
export const HomieAnimation = () => {
|
|
4
|
+
export const HomieAnimation = ({ animation = 'homie-v2' }) => {
|
|
5
5
|
const { RiveComponent } = useRive({
|
|
6
|
-
src: `${url}
|
|
6
|
+
src: `${url}/${animation}.riv`,
|
|
7
7
|
stateMachines: 'State Machine 1',
|
|
8
8
|
autoplay: true,
|
|
9
9
|
});
|
|
@@ -13,7 +13,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
|
13
13
|
import { FormProvider } from 'react-hook-form';
|
|
14
14
|
import { t } from 'i18next';
|
|
15
15
|
import { Stack, Text } from '@chakra-ui/react';
|
|
16
|
-
import { HiddenFieldSection, GroupField, TextField, TextAreaField, SelectField, RatingField, GridField, FieldWithDelete, FileField, SwitchField, DateField, NumberField, CurrencyField, TileBody, } from '../..';
|
|
16
|
+
import { HiddenFieldSection, GroupField, TextField, TextAreaField, SelectField, RatingField, GridField, FieldWithDelete, FileField, SwitchField, DateField, NumberField, CurrencyField, TileBody, CheckboxGroupField, } from '../..';
|
|
17
17
|
import { useDynamicForm } from '../../../hooks';
|
|
18
18
|
import { fieldIcons } from '../../../helpers';
|
|
19
19
|
export const DynamicForm = (_a) => {
|
|
@@ -61,6 +61,8 @@ export const DynamicForm = (_a) => {
|
|
|
61
61
|
return (_jsx(FieldWithDelete, Object.assign({}, fieldWithDeleteBaseProps, { children: _jsx(FileField, { icon: baseProps.icon, description: description, onUpload: (files) => handleFilesUpload({ id, files }), uploading: uploadingFieldId === id }) })));
|
|
62
62
|
case 'group':
|
|
63
63
|
return (_jsx(GroupField, { id: id, fields: children, onRemove: handleRemove, canBeHidden: canBeHidden }, id));
|
|
64
|
+
case 'checkbox-group':
|
|
65
|
+
return (_jsx(CheckboxGroupField, { id: id, children: children, value: value, icon: baseProps.icon }, id));
|
|
64
66
|
case 'tile-body':
|
|
65
67
|
return (_jsx(TileBody, Object.assign({ callback: callback, fields: children, menuItems: menuItems }, props), id));
|
|
66
68
|
default:
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box, Checkbox, CheckboxGroup, Flex, SimpleGrid, Text, } from '@chakra-ui/react';
|
|
3
|
+
import { FormIcon } from '../../..';
|
|
4
|
+
import { Controller, useFormContext } from 'react-hook-form';
|
|
5
|
+
export const CheckboxGroupField = ({ children, icon, id, value, }) => {
|
|
6
|
+
const { control } = useFormContext();
|
|
7
|
+
const defaultValues = children === null || children === void 0 ? void 0 : children.map((child) => {
|
|
8
|
+
if (child.value) {
|
|
9
|
+
return child.id;
|
|
10
|
+
}
|
|
11
|
+
}).filter((value) => value);
|
|
12
|
+
return (_jsxs(Box, { children: [_jsx(Box, { p: "base", borderBottom: "1px dashed", borderColor: "lightBlue.6", children: _jsx(Text, { fontFamily: "secondary", fontSize: "sm", children: value }) }), _jsxs(Flex, { p: "base", gap: "base", children: [_jsx(FormIcon, { icon: icon }), _jsx(Controller, { control: control, name: id, defaultValue: defaultValues, render: ({ field: { onChange } }) => {
|
|
13
|
+
return (_jsx(CheckboxGroup, { defaultValue: defaultValues, onChange: onChange, children: _jsx(SimpleGrid, { columns: 2, spacing: "base", w: "full", children: children === null || children === void 0 ? void 0 : children.map((child) => {
|
|
14
|
+
const { id, name, value } = child;
|
|
15
|
+
return (_jsx(Checkbox, { value: String(id), isChecked: Boolean(value), children: _jsx(Text, { fontSize: "sm", children: name }) }, id));
|
|
16
|
+
}) }) }));
|
|
17
|
+
} })] })] }));
|
|
18
|
+
};
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
|
2
2
|
import { fieldIcons } from '../../../../helpers';
|
|
3
3
|
import { GridField, RatingField, TextAreaField, TextField, SelectField, SwitchField, NumberField, DateField, CurrencyField, TileBodyHeader, TileBodyLogo, VerticalIcon, TileBodySectionGrid, TileBodyAction, TileCta, } from '../../..';
|
|
4
4
|
export const SingleFields = ({ callback, fields, menuItems }) => {
|
|
5
|
-
return (_jsx(_Fragment, { children: fields === null || fields === void 0 ? void 0 : fields.map(({ children, description, id, name, type, value, icon, options = [], }) => {
|
|
5
|
+
return (_jsx(_Fragment, { children: fields === null || fields === void 0 ? void 0 : fields.map(({ children, description, id, name, type, value, icon, link, options = [], }) => {
|
|
6
6
|
const baseProps = {
|
|
7
7
|
key: id,
|
|
8
8
|
id,
|
|
@@ -45,9 +45,9 @@ export const SingleFields = ({ callback, fields, menuItems }) => {
|
|
|
45
45
|
case 'tile-body-action':
|
|
46
46
|
return (_jsx(TileBodyAction, { fields: children, callback: callback }, id));
|
|
47
47
|
case 'primary-cta':
|
|
48
|
-
return (_jsx(TileCta, { type: type, value: String(baseProps.value)
|
|
48
|
+
return (_jsx(TileCta, { callback: callback, description: description, icon: icon, id: id, name: name, type: type, link: link, value: String(baseProps.value) }, id));
|
|
49
49
|
case 'secondary-cta':
|
|
50
|
-
return (_jsx(TileCta, { type: type, value: String(baseProps.value)
|
|
50
|
+
return (_jsx(TileCta, { callback: callback, description: description, icon: icon, id: id, name: name, type: type, value: String(baseProps.value) }, id));
|
|
51
51
|
default:
|
|
52
52
|
return null;
|
|
53
53
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TileBodyI } from '../../../../../interfaces';
|
|
2
|
-
export declare const TileBodyAction: ({ fields }: TileBodyI) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const TileBodyAction: ({ callback, fields }: TileBodyI) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Flex } from '@chakra-ui/react';
|
|
3
3
|
import { SingleFields } from '../../../..';
|
|
4
|
-
export const TileBodyAction = ({ fields }) => {
|
|
5
|
-
return (_jsx(Flex, { p: "base", align: "center", gap: "base", children: _jsx(SingleFields, { fields: fields }) }));
|
|
4
|
+
export const TileBodyAction = ({ callback, fields }) => {
|
|
5
|
+
return (_jsx(Flex, { p: "base", align: "center", gap: "base", children: _jsx(SingleFields, { fields: fields, callback: callback }) }));
|
|
6
6
|
};
|
|
@@ -2,10 +2,10 @@ import { Flex } from '@chakra-ui/react'
|
|
|
2
2
|
import { SingleFields } from '@/components'
|
|
3
3
|
import { TileBodyI } from '@/interfaces'
|
|
4
4
|
|
|
5
|
-
export const TileBodyAction = ({ fields }: TileBodyI) => {
|
|
5
|
+
export const TileBodyAction = ({ callback, fields }: TileBodyI) => {
|
|
6
6
|
return (
|
|
7
7
|
<Flex p="base" align="center" gap="base">
|
|
8
|
-
<SingleFields fields={fields} />
|
|
8
|
+
<SingleFields fields={fields} callback={callback} />
|
|
9
9
|
</Flex>
|
|
10
10
|
)
|
|
11
11
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import { TileCtaI } from '../../../../../interfaces';
|
|
2
|
-
export declare const TileCta: ({ callback,
|
|
2
|
+
export declare const TileCta: ({ callback, ...props }: TileCtaI) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
1
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
13
|
import { Button } from '@chakra-ui/react';
|
|
3
|
-
export const TileCta = (
|
|
4
|
-
|
|
14
|
+
export const TileCta = (_a) => {
|
|
15
|
+
var { callback } = _a, props = __rest(_a, ["callback"]);
|
|
16
|
+
const { type, value } = props;
|
|
17
|
+
return (_jsx(Button, { onClick: () => callback === null || callback === void 0 ? void 0 : callback(Object.assign({}, props)), variant: type === 'primary-cta' ? 'tertiaryFooter' : 'secondaryFooter', fontSize: "sm", children: value }));
|
|
5
18
|
};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Button } from '@chakra-ui/react'
|
|
2
2
|
import { TileCtaI } from '@/interfaces'
|
|
3
3
|
|
|
4
|
-
export const TileCta = ({ callback,
|
|
4
|
+
export const TileCta = ({ callback, ...props }: TileCtaI) => {
|
|
5
|
+
const { type, value } = props
|
|
5
6
|
return (
|
|
6
7
|
<Button
|
|
7
|
-
onClick={() => callback?.(
|
|
8
|
+
onClick={() => callback?.({ ...props })}
|
|
8
9
|
variant={type === 'primary-cta' ? 'tertiaryFooter' : 'secondaryFooter'}
|
|
9
10
|
fontSize="sm"
|
|
10
11
|
>
|
|
@@ -12,16 +12,12 @@ export const HomeMonitorSteps = ({ menuItems = [], onStepClick, stepsWithAlerts,
|
|
|
12
12
|
'homeMonitorButton-4',
|
|
13
13
|
'homeMonitorButton-5',
|
|
14
14
|
'homeMonitorButton-6',
|
|
15
|
-
'menuItems',
|
|
16
15
|
];
|
|
17
16
|
const [selectedId, setSelectedId] = useState('');
|
|
18
17
|
const isDisabled = menuItems.length === 0;
|
|
19
18
|
useComponentStyles({ ids, selectedId, zIndex: '2' });
|
|
20
|
-
const handleStepClick = (step) =>
|
|
21
|
-
|
|
22
|
-
setSelectedId(`homeMonitorButton-${step}`);
|
|
23
|
-
};
|
|
24
|
-
return (_jsx(Flex, { gap: "base", children: homeAssistantSteps.map((step, index) => (_jsx(Box, { position: "relative", children: _jsxs(Box, { flex: "auto", children: [_jsx(HomeMonitorButton, { currentStep: index + 1, onStepClick: handleStepClick, status: getStatus(index + 1, stepsWithAlerts), step: step }), _jsx(Box, { position: "absolute", top: "-2px", right: "4px", zIndex: "1400", children: _jsx(IconMenu, { zIndex: "2", icon: _jsx(MoreHorizontal, { size: 26 }), itemForm: index + 1, menuItems: menuItems, disabled: isDisabled, onClick: () => setSelectedId('menuItems') }) })] }) }, step === null || step === void 0 ? void 0 : step.title))) }));
|
|
19
|
+
const handleStepClick = (step) => onStepClick(step);
|
|
20
|
+
return (_jsx(Flex, { gap: "base", children: homeAssistantSteps.map((step, index) => (_jsx(Box, { position: "relative", children: _jsxs(Box, { flex: "auto", children: [_jsx(HomeMonitorButton, { currentStep: index + 1, onStepClick: handleStepClick, status: getStatus(index + 1, stepsWithAlerts), step: step }), _jsx(Box, { position: "absolute", top: "-2px", right: "4px", zIndex: "1400", children: _jsx(IconMenu, { zIndex: "2", icon: _jsx(MoreHorizontal, { size: 26 }), itemForm: index + 1, menuItems: menuItems, disabled: isDisabled, onClick: () => setSelectedId(`homeMonitorButton-${index + 1}`) }) })] }) }, step === null || step === void 0 ? void 0 : step.title))) }));
|
|
25
21
|
};
|
|
26
22
|
const getStatus = (index, stepsWithAlerts) => {
|
|
27
23
|
const hasAlert = stepsWithAlerts.includes(index);
|
|
@@ -3,5 +3,5 @@ import { t } from 'i18next';
|
|
|
3
3
|
import { Box, Flex, Text } from '@chakra-ui/react';
|
|
4
4
|
import { HomieAnimation } from '../..';
|
|
5
5
|
export const HomefileMonitoring = () => {
|
|
6
|
-
return (_jsx(Box, { p: "base", borderRadius: "lg", bg: "#C5E9F4", h: "66px", zIndex: "2", flex: "1", children: _jsxs(Flex, { align: "center", children: [_jsx(Box, { boxSize: "47px", children: _jsx(HomieAnimation, {}) }), _jsx(Text, { children: t('homeAssistant.homeMonitoring') })] }) }));
|
|
6
|
+
return (_jsx(Box, { p: "base", borderRadius: "lg", bg: "#C5E9F4", h: "66px", zIndex: "2", flex: "1", children: _jsxs(Flex, { align: "center", children: [_jsx(Box, { boxSize: "47px", children: _jsx(HomieAnimation, { animation: "homie-v3" }) }), _jsx(Text, { children: t('homeAssistant.homeMonitoring') })] }) }));
|
|
7
7
|
};
|
|
@@ -51,7 +51,12 @@ export const HomeBoard = () => {
|
|
|
51
51
|
HomeAssistant: (_jsx(HomeAssistantPanel, { currentStep: homeAssistantCurrentStep, currentForm: currentHomeAssistantForm, onNext: handleHomeAssistantFormChange, onBack: handleHomeAssistantBack, onApplianceClick: () => null, onClose: onRightClose, onSave: () => { }, backDisabled: false, nextDisabled: false })),
|
|
52
52
|
};
|
|
53
53
|
const panelSize = currentComponent === 'PartnerCatalog' ? 'lg' : 'md';
|
|
54
|
-
return (_jsxs(Box, { overflowX: "hidden", children: [_jsx(RightPanel, { overlay: showOverlay, isOpen: isRightOpen, onClose: onRightClose, size: panelSize, children: rightPanelComponents[currentComponent] }), _jsxs(Flex, { w: "full", minH: "100dvh", children: [_jsx(RoomsMenu, { activeRoom: "homeboard", handleAddRoom: (id) => __awaiter(void 0, void 0, void 0, function* () { return console.log(id); }), handleClick: () => null, handleHomeClick: () => null, rooms: RoomsList, roomsToAdd: RoomsToAdd }), _jsxs(Box, { w: "full", children: [_jsx(AppBarComponent, { setActiveTour: setActiveTour }), _jsxs(Stack, { spacing: "base", p: "base", children: [_jsx(HomeHeader, { buttonLabel: "Partner catalog", onBack: () => null, homeName: homeName, onAdd: () => null }), _jsxs(HomeBoardGrid, { children: [_jsx(HomeCardWithRecipent, { address: HomeCards[0].address, handleEdit: handleEditHomeClick, handleDeleteAccountType: (email) => email, handleSubmitAccountType: (form) => form, _id: HomeCards[0]._id, image: HomeCards[0].image, loading: false, name: HomeCards[0].name, menu: menuMock, addImage: () => null, recipients: recipientsDb, records: homeBoardRecorsMock }), _jsx(HomeAssistant, { currentPanel: homeAssistantCurrentStep, currentStep: 6, onStepClick: handleHomeAssistantClick }), _jsx(PropertyTaxes, { estimatedTaxValue: 1000, menuItems: menuMock, taxes: taxesMock, title: "Travis County Property Taxes" }), _jsx(HomeMonitor, { children: _jsxs(Stack, { spacing: "base", children: [_jsxs(Flex, { gap: "base", children: [_jsx(HomefileMonitoring, {}), _jsx(Notifications, { date: "10-10-24", local: "TX - Houston" })] }), _jsx(HomeMonitorSteps, { menuItems:
|
|
54
|
+
return (_jsxs(Box, { overflowX: "hidden", children: [_jsx(RightPanel, { overlay: showOverlay, isOpen: isRightOpen, onClose: onRightClose, size: panelSize, children: rightPanelComponents[currentComponent] }), _jsxs(Flex, { w: "full", minH: "100dvh", children: [_jsx(RoomsMenu, { activeRoom: "homeboard", handleAddRoom: (id) => __awaiter(void 0, void 0, void 0, function* () { return console.log(id); }), handleClick: () => null, handleHomeClick: () => null, rooms: RoomsList, roomsToAdd: RoomsToAdd }), _jsxs(Box, { w: "full", children: [_jsx(AppBarComponent, { setActiveTour: setActiveTour }), _jsxs(Stack, { spacing: "base", p: "base", children: [_jsx(HomeHeader, { buttonLabel: "Partner catalog", onBack: () => null, homeName: homeName, onAdd: () => null }), _jsxs(HomeBoardGrid, { children: [_jsx(HomeCardWithRecipent, { address: HomeCards[0].address, handleEdit: handleEditHomeClick, handleDeleteAccountType: (email) => email, handleSubmitAccountType: (form) => form, _id: HomeCards[0]._id, image: HomeCards[0].image, loading: false, name: HomeCards[0].name, menu: menuMock, addImage: () => null, recipients: recipientsDb, records: homeBoardRecorsMock }), _jsx(HomeAssistant, { currentPanel: homeAssistantCurrentStep, currentStep: 6, onStepClick: handleHomeAssistantClick }), _jsx(PropertyTaxes, { estimatedTaxValue: 1000, menuItems: menuMock, taxes: taxesMock, title: "Travis County Property Taxes" }), _jsx(HomeMonitor, { children: _jsxs(Stack, { spacing: "base", children: [_jsxs(Flex, { gap: "base", children: [_jsx(HomefileMonitoring, {}), _jsx(Notifications, { date: "10-10-24", local: "TX - Houston" })] }), _jsx(HomeMonitorSteps, { menuItems: [
|
|
55
|
+
{
|
|
56
|
+
label: 'Details',
|
|
57
|
+
handleClick: handleHomeAssistantClick,
|
|
58
|
+
},
|
|
59
|
+
], stepsWithAlerts: [], onStepClick: () => null })] }) }), _jsxs(Stack, { spacing: "base", children: [_jsx(ReceiptAutofiler, { onClick: () => null, totalReceipts: 36, totalTitle: "Receipts Received", forwardTo: "reciepts@homefile.cloud", onFilter: () => null, children: _jsx(ReceiptsFiled, { incidentalItemsNumber: 0, incidentalSpent: 0, inventoryItemsNumber: 0, inventorySpent: 0, total: 0 }) }), _jsx(ValueMonitor, { menuItems: menuMock, balance: "+3%", totalValue: 323421, year: "2023", yearValue: 5684 })] }), _jsx(ShortPartnerTile, { _id: "1", buttonText: "Contact Audrey Scheck", description: "Full-service design firm focusing on residential remodels, furnishing, and styling.", onClick: () => null, socialLinks: socialLinksMock2, logo: "https://static.wixstatic.com/media/258105_8e04439070694f278e4787a310ea9f4b~mv2.png", partnerName: "Audrey Scheck", websiteUrl: "" }), _jsx(TrendingValue, { chartData: lineChartData, marketValue: 894000, menuItems: menuMock, mortgageBalance: 220532, purchasePrice: 220532, roi: "+234%" }), _jsx(ShortPartnerTile, { _id: "2", buttonText: "Contact Audrey Scheck", description: "Full-service design firm focusing on residential remodels, furnishing, and styling.", onClick: () => null, socialLinks: socialLinksMock2, logo: "https://static.wixstatic.com/media/258105_8e04439070694f278e4787a310ea9f4b~mv2.png", partnerName: "Audrey Scheck", websiteUrl: "" }), _jsx(FolderSharing, { folders: FoldersDB, handleAddNewFolder: handleNewFolder, handleFolderClick: handleFolderClick, handleSelect: () => null, initialSelectItem: selectOptions[0], menuItems: menuMock, selectItems: selectOptions }), _jsxs(Stack, { spacing: "base", children: [_jsx(AddHomeItem, { handleClick: () => null }), _jsx(SendCommunication, { documentList: [] })] }), _jsx(ShortPartnerTile, { _id: "3", buttonText: "Contact Audrey Scheck", description: "Full-service design firm focusing on residential remodels, furnishing, and styling.", onClick: () => null, socialLinks: socialLinksMock2, logo: "https://static.wixstatic.com/media/258105_8e04439070694f278e4787a310ea9f4b~mv2.png", partnerName: "Audrey Scheck", websiteUrl: "" })] })] })] })] }), _jsx(HomeBoardTour, { currentStep: currentStep, handleClose: handleClose, handleStep: handleStep, meetStepUrl: videoMock, isActive: activeTour })] }));
|
|
55
60
|
};
|
|
56
61
|
export const AppBarComponent = ({ setActiveTour = (value) => { } }) => {
|
|
57
62
|
const handleTour = () => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Paint, Receipt, Barcode, GoldenBars, Heart, Rating, Notes, Book, ImgIcon, Registry, ShareWith, Calendar, Tools2, Billing, Calc, CheckPen, GenericField, Price, Battery2, Co2, Detector, Electricity, Sprinkler, SixtyEight, DropCalendar, MobileDrop, SolarPanel, Calendar2, Drop, Wind, Foundation, Heater, Light, Plate, Pool2, Closet, Structure, GlassWater, Roof2, Target, CircleFace, Company, Pressure, WindowCleaning, RoofCleaning, HolidayLights, GutterCleaning, HomeCleaning, } from '../../assets/images';
|
|
1
|
+
import { Paint, Receipt, Barcode, GoldenBars, Heart, Rating, Notes, Book, ImgIcon, Registry, ShareWith, Calendar, Tools2, Billing, Calc, CheckPen, GenericField, Price, Battery2, Co2, Detector, Electricity, Sprinkler, SixtyEight, DropCalendar, MobileDrop, SolarPanel, Calendar2, Drop, Wind, Foundation, Heater, Light, Plate, Pool2, Closet, Structure, GlassWater, Roof2, Target, CircleFace, Company, Pressure, WindowCleaning, RoofCleaning, HolidayLights, GutterCleaning, HomeCleaning, PressureWasher, } from '../../assets/images';
|
|
2
2
|
export const fieldIcons = {
|
|
3
3
|
barcode: Barcode,
|
|
4
4
|
billing: Billing,
|
|
@@ -35,6 +35,7 @@ export const fieldIcons = {
|
|
|
35
35
|
heater: Heater,
|
|
36
36
|
light: Light,
|
|
37
37
|
plate: Plate,
|
|
38
|
+
'pressure-washer': PressureWasher,
|
|
38
39
|
pool: Pool2,
|
|
39
40
|
roof: Roof2,
|
|
40
41
|
umbrella: Closet,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FolderFileI, MenuItemI, PartnerFooterI, TileCtaI } from '../..';
|
|
2
|
-
type KindTypes = 'checkbox' | 'currency' | 'date' | 'email' | 'file' | 'grid' | 'group' | 'hidden' | 'number' | 'radio' | 'rating' | 'select' | 'string' | 'switch' | 'telephone' | 'text' | 'textarea' | 'default' | UIKindTypes;
|
|
2
|
+
type KindTypes = 'checkbox' | 'checkbox-group' | 'currency' | 'date' | 'email' | 'file' | 'grid' | 'group' | 'hidden' | 'number' | 'radio' | 'rating' | 'select' | 'string' | 'switch' | 'telephone' | 'text' | 'textarea' | 'default' | UIKindTypes;
|
|
3
3
|
type UIKindTypes = 'tile-body' | 'tile-body-logo' | 'tile-body-header' | 'tile-body-section' | 'tile-body-section-grid' | 'tile-form' | 'tile-body-action' | 'vertical-icon' | 'primary-cta' | 'secondary-cta';
|
|
4
|
-
export type IconTypes = 'barcode' | 'battery' | 'billing' | 'book' | 'calc' | 'calendar' | 'check' | 'co2' | 'date' | 'default' | 'detector' | 'electricity' | 'goldbars' | 'heart' | 'image' | 'notes' | 'palette' | 'people' | 'price' | 'rating' | 'receipt' | 'registry' | 'sprinkler' | 'tools' | 'wind' | '68' | 'calendar2' | 'water' | 'calendar-drop' | 'umbrella' | 'heater' | 'roof' | 'foundation' | 'solar-panel' | 'pool' | 'drop' | 'mobile-drop' | 'light' | 'plate' | 'house' | 'target' | 'title' | 'company' | UIIconTypes;
|
|
4
|
+
export type IconTypes = 'barcode' | 'battery' | 'billing' | 'book' | 'calc' | 'calendar' | 'check' | 'co2' | 'date' | 'default' | 'detector' | 'electricity' | 'goldbars' | 'heart' | 'image' | 'notes' | 'palette' | 'people' | 'price' | 'rating' | 'receipt' | 'registry' | 'sprinkler' | 'tools' | 'wind' | '68' | 'calendar2' | 'water' | 'calendar-drop' | 'umbrella' | 'heater' | 'roof' | 'foundation' | 'solar-panel' | 'pool' | 'drop' | 'mobile-drop' | 'light' | 'plate' | 'pressure-washer' | 'house' | 'target' | 'title' | 'company' | UIIconTypes;
|
|
5
5
|
export type UIIconTypes = 'sh-pressure' | 'sh-window' | 'sh-roof' | 'sh-lights' | 'sh-gutter' | 'sh-home';
|
|
6
6
|
export type ValueTypes = string | string[] | number | boolean;
|
|
7
7
|
export type OptionsTypes = string[] | number[] | null;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DynamicFormI, MenuItemI, PartnerFooterI } from '../../..';
|
|
1
|
+
import { DynamicFormI, MenuItemI, PartnerFooterI, ReportI } from '../../..';
|
|
2
2
|
export interface TileBodyLogoI {
|
|
3
3
|
menuItems?: MenuItemI[];
|
|
4
4
|
name?: string;
|
|
@@ -13,8 +13,19 @@ export interface VerticalIconI {
|
|
|
13
13
|
icon?: string;
|
|
14
14
|
value: string;
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
interface TileCtaCallbackI {
|
|
17
|
+
id: string;
|
|
18
|
+
value: string;
|
|
19
|
+
name?: string;
|
|
20
|
+
link?: string;
|
|
21
|
+
icon?: string;
|
|
22
|
+
description?: string;
|
|
23
|
+
canBeHidden?: boolean;
|
|
24
|
+
visible?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export interface TileCtaI extends Pick<ReportI, 'id' | 'name' | 'link' | 'icon' | 'description' | 'canBeHidden' | 'visible'> {
|
|
27
|
+
callback?: (form: TileCtaCallbackI) => void;
|
|
18
28
|
type: 'primary-cta' | 'secondary-cta';
|
|
19
29
|
value: string;
|
|
20
30
|
}
|
|
31
|
+
export {};
|
|
@@ -189,6 +189,72 @@ export const formFieldsMock = [
|
|
|
189
189
|
visible: false,
|
|
190
190
|
icon: 'book',
|
|
191
191
|
},
|
|
192
|
+
{
|
|
193
|
+
id: faker.database.mongodbObjectId(),
|
|
194
|
+
name: 'Services',
|
|
195
|
+
description: faker.lorem.sentence(),
|
|
196
|
+
comments: faker.lorem.sentence(),
|
|
197
|
+
value: 'Select the services you are requesting support for?',
|
|
198
|
+
type: 'checkbox-group',
|
|
199
|
+
visible: true,
|
|
200
|
+
icon: 'pressure-washer',
|
|
201
|
+
children: [
|
|
202
|
+
{
|
|
203
|
+
id: faker.database.mongodbObjectId(),
|
|
204
|
+
name: 'Pressure Washing',
|
|
205
|
+
description: faker.lorem.sentence(),
|
|
206
|
+
comments: faker.lorem.sentence(),
|
|
207
|
+
value: true,
|
|
208
|
+
type: 'checkbox',
|
|
209
|
+
visible: true,
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
id: faker.database.mongodbObjectId(),
|
|
213
|
+
name: 'Window Cleaning',
|
|
214
|
+
description: faker.lorem.sentence(),
|
|
215
|
+
comments: faker.lorem.sentence(),
|
|
216
|
+
value: false,
|
|
217
|
+
type: 'checkbox',
|
|
218
|
+
visible: true,
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
id: faker.database.mongodbObjectId(),
|
|
222
|
+
name: 'Roof Cleaning',
|
|
223
|
+
description: faker.lorem.sentence(),
|
|
224
|
+
comments: faker.lorem.sentence(),
|
|
225
|
+
value: false,
|
|
226
|
+
type: 'checkbox',
|
|
227
|
+
visible: true,
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
id: faker.database.mongodbObjectId(),
|
|
231
|
+
name: 'Holiday Lights',
|
|
232
|
+
description: faker.lorem.sentence(),
|
|
233
|
+
comments: faker.lorem.sentence(),
|
|
234
|
+
value: true,
|
|
235
|
+
type: 'checkbox',
|
|
236
|
+
visible: true,
|
|
237
|
+
},
|
|
238
|
+
{
|
|
239
|
+
id: faker.database.mongodbObjectId(),
|
|
240
|
+
name: 'Gutter Cleaning',
|
|
241
|
+
description: faker.lorem.sentence(),
|
|
242
|
+
comments: faker.lorem.sentence(),
|
|
243
|
+
value: true,
|
|
244
|
+
type: 'checkbox',
|
|
245
|
+
visible: true,
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
id: faker.database.mongodbObjectId(),
|
|
249
|
+
name: 'Exterior Cleaning',
|
|
250
|
+
description: faker.lorem.sentence(),
|
|
251
|
+
comments: faker.lorem.sentence(),
|
|
252
|
+
value: true,
|
|
253
|
+
type: 'checkbox',
|
|
254
|
+
visible: false,
|
|
255
|
+
},
|
|
256
|
+
],
|
|
257
|
+
},
|
|
192
258
|
];
|
|
193
259
|
export const contactFieldsMock = [
|
|
194
260
|
{
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Center, Grid, Image, Text } from '@chakra-ui/react';
|
|
3
|
-
import { AlertDelete, AlertDeletePurple, Arrow, Balustrades, Barcode, Batery, Bathroom, Battery, Battery2, Bedding, Bedroom, Billing, BillingAddress, BlueFolder, BlueFolderShared, Book, Box as BoxIcon, Building, Calc, Calendar, Calendar2, Catalog, Check, CheckInCircle, CheckPen, Chemistry, CircleFace, Cleaning, Closet, Co2, Company, ComputerReport, Confirmation, Construction, Contacts, Contacts2, Contributor, Cookware, Countertops, CreditCard, Detector, Diamond, DiningRoom, DocIcon, Document, Doors, Drop, DropCalendar, Electricity, Electronics, Entryway, Equipment, Exclamation, Exterior, Face, Feedback, FileUploading, Finance, Fire, Flag, Flooring, FormSent, Foundation, Furniture, Garage, GearPencil, GearTime, GenericField, GlassWater, GoldenBars, GreenFolder, Group, Groups, GuestBedroom, Hallway, HandPencil, Hardware, Heart, Heater, Help, HomeAddress, Homeowner, House, HouseHands, IA, ImageDefault, ImgIcon, Inbox, Insect, Kitchen, LargeAppliances, Laundry, Light, Lighting, LivingRoom, LogoSmall, MagnifyingGlassReport, Manager, MasterBedroom, Mattress, Member, Message, MobileDrop, Money, Mudroom, NeedHelp, Notes, Office, Paint, Painting, PartnerGeneric, Patio, PdfIcon, PersonMail, Plants, Plate, Play, Plus, Pool, Pool2, Porch, Price, Profile, ProgressReport, Proposal, Rating, RealEstate, Receipt, ReceiptBg, ReceiptHouse, Receipts, Recipient, Records, Register, Registry, RelationshipHome, ResendPassword, Rocket, Roof, Roof2, Security, Send, ShareHome, ShareWith, SixtyEight, SMS, Social, SmallAppliances, SolarPanel, Sprinkler, Steps, Structure, Structures, Subscription, Supplies, Table, Target, Temperature, Theatre, Thumbnail, ThumbnailSmall, ThumbUp, Tile, Tools, Tools2, Trash, Utensils, VideoIcon, VideoPlay, VioletFolder, WallDecor, Warning, Warranty, Water, WellDone, WholeHome, Wind, Window, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, } from '../../assets/images';
|
|
3
|
+
import { AlertDelete, AlertDeletePurple, Arrow, Balustrades, Barcode, Batery, Bathroom, Battery, Battery2, Bedding, Bedroom, Billing, BillingAddress, BlueFolder, BlueFolderShared, Book, Box as BoxIcon, Building, Calc, Calendar, Calendar2, Catalog, Check, CheckInCircle, CheckPen, Chemistry, CircleFace, Cleaning, Closet, Co2, Company, ComputerReport, Confirmation, Construction, Contacts, Contacts2, Contributor, Cookware, Countertops, CreditCard, Detector, Diamond, DiningRoom, DocIcon, Document, Doors, Drop, DropCalendar, Electricity, Electronics, Entryway, Equipment, Exclamation, Exterior, Face, Feedback, FileUploading, Finance, Fire, Flag, Flooring, FormSent, Foundation, Furniture, Garage, GearPencil, GearTime, GenericField, GlassWater, GoldenBars, GreenFolder, Group, Groups, GuestBedroom, Hallway, HandPencil, Hardware, Heart, Heater, Help, HomeAddress, Homeowner, House, HouseHands, IA, ImageDefault, ImgIcon, Inbox, Insect, Kitchen, LargeAppliances, Laundry, Light, Lighting, LivingRoom, LogoSmall, MagnifyingGlassReport, Manager, MasterBedroom, Mattress, Member, Message, MobileDrop, Money, Mudroom, NeedHelp, Notes, Office, Paint, Painting, PartnerGeneric, Patio, PdfIcon, PersonMail, Plants, Plate, Play, Plus, Pool, Pool2, PressureWasher, Porch, Price, Profile, ProgressReport, Proposal, Rating, RealEstate, Receipt, ReceiptBg, ReceiptHouse, Receipts, Recipient, Records, Register, Registry, RelationshipHome, ResendPassword, Rocket, Roof, Roof2, Security, Send, ShareHome, ShareWith, SixtyEight, SMS, Social, SmallAppliances, SolarPanel, Sprinkler, Steps, Structure, Structures, Subscription, Supplies, Table, Target, Temperature, Theatre, Thumbnail, ThumbnailSmall, ThumbUp, Tile, Tools, Tools2, Trash, Utensils, VideoIcon, VideoPlay, VioletFolder, WallDecor, Warning, Warranty, Water, WellDone, WholeHome, Wind, Window, Wizard, WizardDetailed, WizardQuick, YellowFolder, YellowFolderUnshared, } from '../../assets/images';
|
|
4
4
|
import { CookTop, Dishwasher, Dryer, Freezer, Fridge, Microwave, Oven, Range, Washer, } from '../../assets/images/appliances';
|
|
5
5
|
export default {
|
|
6
6
|
title: 'Assets/Illustrations',
|
|
7
7
|
};
|
|
8
8
|
export const Illustrations = () => {
|
|
9
|
-
return (_jsxs(Grid, { maxW: "600px", templateColumns: "repeat(auto-fill, minmax(75px, 1fr))", p: "base", gap: "8", children: [_jsx(IconWrapper, { icon: CookTop, name: "CookTop" }), _jsx(IconWrapper, { icon: Dishwasher, name: "Dishwasher" }), _jsx(IconWrapper, { icon: Dryer, name: "Dryer" }), _jsx(IconWrapper, { icon: Freezer, name: "Freezer" }), _jsx(IconWrapper, { icon: Fridge, name: "Fridge" }), _jsx(IconWrapper, { icon: Microwave, name: "Microwave" }), _jsx(IconWrapper, { icon: Oven, name: "Oven" }), _jsx(IconWrapper, { icon: Range, name: "Range" }), _jsx(IconWrapper, { icon: Washer, name: "Washer" }), _jsx(IconWrapper, { icon: Barcode, name: "Barcode" }), _jsx(IconWrapper, { icon: Book, name: "Book" }), _jsx(IconWrapper, { icon: Calendar, name: "Calendar" }), _jsx(IconWrapper, { icon: GoldenBars, name: "GoldenBars" }), _jsx(IconWrapper, { icon: Heart, name: "Heart" }), _jsx(IconWrapper, { icon: Notes, name: "Notes" }), _jsx(IconWrapper, { icon: Rating, name: "Rating" }), _jsx(IconWrapper, { icon: Registry, name: "Registry" }), _jsx(IconWrapper, { icon: Tools2, name: "Tools2" }), _jsx(IconWrapper, { icon: Balustrades, name: "Balustrades" }), _jsx(IconWrapper, { icon: Bedding, name: "Bedding" }), _jsx(IconWrapper, { icon: Cookware, name: "Cookware" }), _jsx(IconWrapper, { icon: Countertops, name: "Countertops" }), _jsx(IconWrapper, { icon: Doors, name: "Doors" }), _jsx(IconWrapper, { icon: Electronics, name: "Electronics" }), _jsx(IconWrapper, { icon: Equipment, name: "Equipment" }), _jsx(IconWrapper, { icon: Exterior, name: "Exterior" }), _jsx(IconWrapper, { icon: Fire, name: "Fire" }), _jsx(IconWrapper, { icon: Flooring, name: "Flooring" }), _jsx(IconWrapper, { icon: Furniture, name: "Furniture" }), _jsx(IconWrapper, { icon: Hardware, name: "Hardware" }), _jsx(IconWrapper, { icon: IA, name: "IA" }), _jsx(IconWrapper, { icon: LargeAppliances, name: "LargeAppliances" }), _jsx(IconWrapper, { icon: Lighting, name: "Lighting" }), _jsx(IconWrapper, { icon: Mattress, name: "Mattress" }), _jsx(IconWrapper, { icon: Paint, name: "Paint" }), _jsx(IconWrapper, { icon: Plants, name: "Plants" }), _jsx(IconWrapper, { icon: Porch, name: "Porch" }), _jsx(IconWrapper, { icon: Roof, name: "Roof" }), _jsx(IconWrapper, { icon: SmallAppliances, name: "SmallAppliances" }), _jsx(IconWrapper, { icon: Steps, name: "Steps" }), _jsx(IconWrapper, { icon: Structures, name: "Structures" }), _jsx(IconWrapper, { icon: Supplies, name: "Supplies" }), _jsx(IconWrapper, { icon: Table, name: "Table" }), _jsx(IconWrapper, { icon: Temperature, name: "Temperature" }), _jsx(IconWrapper, { icon: Tile, name: "Tile" }), _jsx(IconWrapper, { icon: Tools, name: "Tools" }), _jsx(IconWrapper, { icon: Utensils, name: "Utensils" }), _jsx(IconWrapper, { icon: WallDecor, name: "WallDecor" }), _jsx(IconWrapper, { icon: Water, name: "Water" }), _jsx(IconWrapper, { icon: Window, name: "Window" }), _jsx(IconWrapper, { icon: AlertDelete, name: "AlertDelete" }), _jsx(IconWrapper, { icon: AlertDeletePurple, name: "AlertDeletePurple" }), _jsx(IconWrapper, { icon: Arrow, name: "Arrow" }), _jsx(IconWrapper, { icon: Batery, name: "Batery" }), _jsx(IconWrapper, { icon: Bathroom, name: "Bathroom" }), _jsx(IconWrapper, { icon: Battery, name: "Battery" }), _jsx(IconWrapper, { icon: Battery2, name: "Battery2" }), _jsx(IconWrapper, { icon: Bedroom, name: "Bedroom" }), _jsx(IconWrapper, { icon: Billing, name: "Billing" }), _jsx(IconWrapper, { icon: BillingAddress, name: "BillingAddress" }), _jsx(IconWrapper, { icon: BlueFolder, name: "BlueFolder" }), _jsx(IconWrapper, { icon: BlueFolderShared, name: "BlueFolderShared" }), _jsx(IconWrapper, { icon: BoxIcon, name: "Box" }), _jsx(IconWrapper, { icon: Building, name: "Building" }), _jsx(IconWrapper, { icon: Calc, name: "Calc" }), _jsx(IconWrapper, { icon: Calendar2, name: "Calendar2" }), _jsx(IconWrapper, { icon: Catalog, name: "Catalog" }), _jsx(IconWrapper, { icon: Check, name: "Check" }), _jsx(IconWrapper, { icon: CheckInCircle, name: "CheckInCircle" }), _jsx(IconWrapper, { icon: CheckPen, name: "CheckPen" }), _jsx(IconWrapper, { icon: Chemistry, name: "Chemistry" }), _jsx(IconWrapper, { icon: CircleFace, name: "CircleFace" }), _jsx(IconWrapper, { icon: Cleaning, name: "Cleaning" }), _jsx(IconWrapper, { icon: Closet, name: "Closet" }), _jsx(IconWrapper, { icon: Co2, name: "Co2" }), _jsx(IconWrapper, { icon: Company, name: "Company" }), _jsx(IconWrapper, { icon: ComputerReport, name: "ComputerReport" }), _jsx(IconWrapper, { icon: Confirmation, name: "Confirmation" }), _jsx(IconWrapper, { icon: Construction, name: "Construction" }), _jsx(IconWrapper, { icon: Contacts, name: "Contacts" }), _jsx(IconWrapper, { icon: Contacts2, name: "Contacts2" }), _jsx(IconWrapper, { icon: Contributor, name: "Contributor" }), _jsx(IconWrapper, { icon: CreditCard, name: "CreditCard" }), _jsx(IconWrapper, { icon: Detector, name: "Detector" }), _jsx(IconWrapper, { icon: Diamond, name: "Diamond" }), _jsx(IconWrapper, { icon: DiningRoom, name: "DiningRoom" }), _jsx(IconWrapper, { icon: DocIcon, name: "DocIcon" }), _jsx(IconWrapper, { icon: Document, name: "Document" }), _jsx(IconWrapper, { icon: Drop, name: "Drop" }), _jsx(IconWrapper, { icon: DropCalendar, name: "DropCalendar" }), _jsx(IconWrapper, { icon: Electricity, name: "Electricity" }), _jsx(IconWrapper, { icon: Entryway, name: "Entryway" }), _jsx(IconWrapper, { icon: Exclamation, name: "Exclamation" }), _jsx(IconWrapper, { icon: Face, name: "Face" }), _jsx(IconWrapper, { icon: Feedback, name: "Feedback" }), _jsx(IconWrapper, { icon: FileUploading, name: "FileUploading" }), _jsx(IconWrapper, { icon: Finance, name: "Finance" }), _jsx(IconWrapper, { icon: Flag, name: "Flag" }), _jsx(IconWrapper, { icon: FormSent, name: "FormSent" }), _jsx(IconWrapper, { icon: Foundation, name: "Foundation" }), _jsx(IconWrapper, { icon: Garage, name: "Garage" }), _jsx(IconWrapper, { icon: GearPencil, name: "GearPencil" }), _jsx(IconWrapper, { icon: GearTime, name: "GearTime" }), _jsx(IconWrapper, { icon: GenericField, name: "GenericField" }), _jsx(IconWrapper, { icon: GlassWater, name: "GlassWater" }), _jsx(IconWrapper, { icon: GreenFolder, name: "GreenFolder" }), _jsx(IconWrapper, { icon: Group, name: "Group" }), _jsx(IconWrapper, { icon: Groups, name: "Groups" }), _jsx(IconWrapper, { icon: GuestBedroom, name: "GuestBedroom" }), _jsx(IconWrapper, { icon: Hallway, name: "Hallway" }), _jsx(IconWrapper, { icon: HandPencil, name: "HandPencil" }), _jsx(IconWrapper, { icon: Heater, name: "Heater" }), _jsx(IconWrapper, { icon: Help, name: "Help" }), _jsx(IconWrapper, { icon: HomeAddress, name: "HomeAddress" }), _jsx(IconWrapper, { icon: Homeowner, name: "Homeowner" }), _jsx(IconWrapper, { icon: House, name: "House" }), _jsx(IconWrapper, { icon: HouseHands, name: "HouseHands" }), _jsx(IconWrapper, { icon: ImageDefault, name: "ImageDefault" }), _jsx(IconWrapper, { icon: ImgIcon, name: "ImgIcon" }), _jsx(IconWrapper, { icon: Inbox, name: "Inbox" }), _jsx(IconWrapper, { icon: Insect, name: "Insect" }), _jsx(IconWrapper, { icon: Kitchen, name: "Kitchen" }), _jsx(IconWrapper, { icon: Laundry, name: "Laundry" }), _jsx(IconWrapper, { icon: Light, name: "Light" }), _jsx(IconWrapper, { icon: LivingRoom, name: "LivingRoom" }), _jsx(IconWrapper, { icon: LogoSmall, name: "LogoSmall" }), _jsx(IconWrapper, { icon: MagnifyingGlassReport, name: "MagnifyingGlassReport" }), _jsx(IconWrapper, { icon: Manager, name: "Manager" }), _jsx(IconWrapper, { icon: MasterBedroom, name: "MasterBedroom" }), _jsx(IconWrapper, { icon: Member, name: "Member" }), _jsx(IconWrapper, { icon: Message, name: "Message" }), _jsx(IconWrapper, { icon: MobileDrop, name: "MobileDrop" }), _jsx(IconWrapper, { icon: Money, name: "Money" }), _jsx(IconWrapper, { icon: Mudroom, name: "Mudroom" }), _jsx(IconWrapper, { icon: NeedHelp, name: "NeedHelp" }), _jsx(IconWrapper, { icon: Office, name: "Office" }), _jsx(IconWrapper, { icon: Painting, name: "Painting" }), _jsx(IconWrapper, { icon: PartnerGeneric, name: "PartnerGeneric" }), _jsx(IconWrapper, { icon: Patio, name: "Patio" }), _jsx(IconWrapper, { icon: PdfIcon, name: "PdfIcon" }), _jsx(IconWrapper, { icon: PersonMail, name: "PersonMail" }), _jsx(IconWrapper, { icon: Plate, name: "Plate" }), _jsx(IconWrapper, { icon: Play, name: "Play" }), _jsx(IconWrapper, { icon: Plus, name: "Plus" }), _jsx(IconWrapper, { icon: Pool, name: "Pool" }), _jsx(IconWrapper, { icon: Pool2, name: "Pool2" }), _jsx(IconWrapper, { icon: Price, name: "Price" }), _jsx(IconWrapper, { icon: Profile, name: "Profile" }), _jsx(IconWrapper, { icon: ProgressReport, name: "ProgressReport" }), _jsx(IconWrapper, { icon: Proposal, name: "Proposal" }), _jsx(IconWrapper, { icon: RealEstate, name: "RealEstate" }), _jsx(IconWrapper, { icon: Receipt, name: "Receipt" }), _jsx(IconWrapper, { icon: ReceiptBg, name: "ReceiptBg" }), _jsx(IconWrapper, { icon: ReceiptHouse, name: "ReceiptHouse" }), _jsx(IconWrapper, { icon: Receipts, name: "Receipts" }), _jsx(IconWrapper, { icon: Recipient, name: "Recipient" }), _jsx(IconWrapper, { icon: Records, name: "Records" }), _jsx(IconWrapper, { icon: Register, name: "Register" }), _jsx(IconWrapper, { icon: RelationshipHome, name: "RelationshipHome" }), _jsx(IconWrapper, { icon: ResendPassword, name: "ResendPassword" }), _jsx(IconWrapper, { icon: Rocket, name: "Rocket" }), _jsx(IconWrapper, { icon: Roof2, name: "Roof2" }), _jsx(IconWrapper, { icon: Security, name: "Security" }), _jsx(IconWrapper, { icon: Send, name: "Send" }), _jsx(IconWrapper, { icon: ShareHome, name: "ShareHome" }), _jsx(IconWrapper, { icon: ShareWith, name: "ShareWith" }), _jsx(IconWrapper, { icon: SixtyEight, name: "SixtyEight" }), _jsx(IconWrapper, { icon: SMS, name: "SMS" }), _jsx(IconWrapper, { icon: Social, name: "Social" }), _jsx(IconWrapper, { icon: SolarPanel, name: "SolarPanel" }), _jsx(IconWrapper, { icon: Sprinkler, name: "Sprinkler" }), _jsx(IconWrapper, { icon: Structure, name: "Structure" }), _jsx(IconWrapper, { icon: Subscription, name: "Subscription" }), _jsx(IconWrapper, { icon: Target, name: "Target" }), _jsx(IconWrapper, { icon: Theatre, name: "Theatre" }), _jsx(IconWrapper, { icon: Thumbnail, name: "Thumbnail" }), _jsx(IconWrapper, { icon: ThumbnailSmall, name: "ThumbnailSmall" }), _jsx(IconWrapper, { icon: ThumbUp, name: "ThumbUp" }), _jsx(IconWrapper, { icon: Trash, name: "Trash" }), _jsx(IconWrapper, { icon: VideoIcon, name: "VideoIcon" }), _jsx(IconWrapper, { icon: VideoPlay, name: "VideoPlay" }), _jsx(IconWrapper, { icon: VioletFolder, name: "VioletFolder" }), _jsx(IconWrapper, { icon: Warning, name: "Warning" }), _jsx(IconWrapper, { icon: Warranty, name: "Warranty" }), _jsx(IconWrapper, { icon: WellDone, name: "WellDone" }), _jsx(IconWrapper, { icon: WholeHome, name: "WholeHome" }), _jsx(IconWrapper, { icon: Wind, name: "Wind" }), _jsx(IconWrapper, { icon: Wizard, name: "Wizard" }), _jsx(IconWrapper, { icon: WizardDetailed, name: "WizardDetailed" }), _jsx(IconWrapper, { icon: WizardQuick, name: "WizardQuick" }), _jsx(IconWrapper, { icon: YellowFolder, name: "YellowFolder" }), _jsx(IconWrapper, { icon: YellowFolderUnshared, name: "YellowFolderUnshared" })] }));
|
|
9
|
+
return (_jsxs(Grid, { maxW: "600px", templateColumns: "repeat(auto-fill, minmax(75px, 1fr))", p: "base", gap: "8", children: [_jsx(IconWrapper, { icon: CookTop, name: "CookTop" }), _jsx(IconWrapper, { icon: Dishwasher, name: "Dishwasher" }), _jsx(IconWrapper, { icon: Dryer, name: "Dryer" }), _jsx(IconWrapper, { icon: Freezer, name: "Freezer" }), _jsx(IconWrapper, { icon: Fridge, name: "Fridge" }), _jsx(IconWrapper, { icon: Microwave, name: "Microwave" }), _jsx(IconWrapper, { icon: Oven, name: "Oven" }), _jsx(IconWrapper, { icon: Range, name: "Range" }), _jsx(IconWrapper, { icon: Washer, name: "Washer" }), _jsx(IconWrapper, { icon: Barcode, name: "Barcode" }), _jsx(IconWrapper, { icon: Book, name: "Book" }), _jsx(IconWrapper, { icon: Calendar, name: "Calendar" }), _jsx(IconWrapper, { icon: GoldenBars, name: "GoldenBars" }), _jsx(IconWrapper, { icon: Heart, name: "Heart" }), _jsx(IconWrapper, { icon: Notes, name: "Notes" }), _jsx(IconWrapper, { icon: Rating, name: "Rating" }), _jsx(IconWrapper, { icon: Registry, name: "Registry" }), _jsx(IconWrapper, { icon: Tools2, name: "Tools2" }), _jsx(IconWrapper, { icon: Balustrades, name: "Balustrades" }), _jsx(IconWrapper, { icon: Bedding, name: "Bedding" }), _jsx(IconWrapper, { icon: Cookware, name: "Cookware" }), _jsx(IconWrapper, { icon: Countertops, name: "Countertops" }), _jsx(IconWrapper, { icon: Doors, name: "Doors" }), _jsx(IconWrapper, { icon: Electronics, name: "Electronics" }), _jsx(IconWrapper, { icon: Equipment, name: "Equipment" }), _jsx(IconWrapper, { icon: Exterior, name: "Exterior" }), _jsx(IconWrapper, { icon: Fire, name: "Fire" }), _jsx(IconWrapper, { icon: Flooring, name: "Flooring" }), _jsx(IconWrapper, { icon: Furniture, name: "Furniture" }), _jsx(IconWrapper, { icon: Hardware, name: "Hardware" }), _jsx(IconWrapper, { icon: IA, name: "IA" }), _jsx(IconWrapper, { icon: LargeAppliances, name: "LargeAppliances" }), _jsx(IconWrapper, { icon: Lighting, name: "Lighting" }), _jsx(IconWrapper, { icon: Mattress, name: "Mattress" }), _jsx(IconWrapper, { icon: Paint, name: "Paint" }), _jsx(IconWrapper, { icon: Plants, name: "Plants" }), _jsx(IconWrapper, { icon: Porch, name: "Porch" }), _jsx(IconWrapper, { icon: Roof, name: "Roof" }), _jsx(IconWrapper, { icon: SmallAppliances, name: "SmallAppliances" }), _jsx(IconWrapper, { icon: Steps, name: "Steps" }), _jsx(IconWrapper, { icon: Structures, name: "Structures" }), _jsx(IconWrapper, { icon: Supplies, name: "Supplies" }), _jsx(IconWrapper, { icon: Table, name: "Table" }), _jsx(IconWrapper, { icon: Temperature, name: "Temperature" }), _jsx(IconWrapper, { icon: Tile, name: "Tile" }), _jsx(IconWrapper, { icon: Tools, name: "Tools" }), _jsx(IconWrapper, { icon: Utensils, name: "Utensils" }), _jsx(IconWrapper, { icon: WallDecor, name: "WallDecor" }), _jsx(IconWrapper, { icon: Water, name: "Water" }), _jsx(IconWrapper, { icon: Window, name: "Window" }), _jsx(IconWrapper, { icon: AlertDelete, name: "AlertDelete" }), _jsx(IconWrapper, { icon: AlertDeletePurple, name: "AlertDeletePurple" }), _jsx(IconWrapper, { icon: Arrow, name: "Arrow" }), _jsx(IconWrapper, { icon: Batery, name: "Batery" }), _jsx(IconWrapper, { icon: Bathroom, name: "Bathroom" }), _jsx(IconWrapper, { icon: Battery, name: "Battery" }), _jsx(IconWrapper, { icon: Battery2, name: "Battery2" }), _jsx(IconWrapper, { icon: Bedroom, name: "Bedroom" }), _jsx(IconWrapper, { icon: Billing, name: "Billing" }), _jsx(IconWrapper, { icon: BillingAddress, name: "BillingAddress" }), _jsx(IconWrapper, { icon: BlueFolder, name: "BlueFolder" }), _jsx(IconWrapper, { icon: BlueFolderShared, name: "BlueFolderShared" }), _jsx(IconWrapper, { icon: BoxIcon, name: "Box" }), _jsx(IconWrapper, { icon: Building, name: "Building" }), _jsx(IconWrapper, { icon: Calc, name: "Calc" }), _jsx(IconWrapper, { icon: Calendar2, name: "Calendar2" }), _jsx(IconWrapper, { icon: Catalog, name: "Catalog" }), _jsx(IconWrapper, { icon: Check, name: "Check" }), _jsx(IconWrapper, { icon: CheckInCircle, name: "CheckInCircle" }), _jsx(IconWrapper, { icon: CheckPen, name: "CheckPen" }), _jsx(IconWrapper, { icon: Chemistry, name: "Chemistry" }), _jsx(IconWrapper, { icon: CircleFace, name: "CircleFace" }), _jsx(IconWrapper, { icon: Cleaning, name: "Cleaning" }), _jsx(IconWrapper, { icon: Closet, name: "Closet" }), _jsx(IconWrapper, { icon: Co2, name: "Co2" }), _jsx(IconWrapper, { icon: Company, name: "Company" }), _jsx(IconWrapper, { icon: ComputerReport, name: "ComputerReport" }), _jsx(IconWrapper, { icon: Confirmation, name: "Confirmation" }), _jsx(IconWrapper, { icon: Construction, name: "Construction" }), _jsx(IconWrapper, { icon: Contacts, name: "Contacts" }), _jsx(IconWrapper, { icon: Contacts2, name: "Contacts2" }), _jsx(IconWrapper, { icon: Contributor, name: "Contributor" }), _jsx(IconWrapper, { icon: CreditCard, name: "CreditCard" }), _jsx(IconWrapper, { icon: Detector, name: "Detector" }), _jsx(IconWrapper, { icon: Diamond, name: "Diamond" }), _jsx(IconWrapper, { icon: DiningRoom, name: "DiningRoom" }), _jsx(IconWrapper, { icon: DocIcon, name: "DocIcon" }), _jsx(IconWrapper, { icon: Document, name: "Document" }), _jsx(IconWrapper, { icon: Drop, name: "Drop" }), _jsx(IconWrapper, { icon: DropCalendar, name: "DropCalendar" }), _jsx(IconWrapper, { icon: Electricity, name: "Electricity" }), _jsx(IconWrapper, { icon: Entryway, name: "Entryway" }), _jsx(IconWrapper, { icon: Exclamation, name: "Exclamation" }), _jsx(IconWrapper, { icon: Face, name: "Face" }), _jsx(IconWrapper, { icon: Feedback, name: "Feedback" }), _jsx(IconWrapper, { icon: FileUploading, name: "FileUploading" }), _jsx(IconWrapper, { icon: Finance, name: "Finance" }), _jsx(IconWrapper, { icon: Flag, name: "Flag" }), _jsx(IconWrapper, { icon: FormSent, name: "FormSent" }), _jsx(IconWrapper, { icon: Foundation, name: "Foundation" }), _jsx(IconWrapper, { icon: Garage, name: "Garage" }), _jsx(IconWrapper, { icon: GearPencil, name: "GearPencil" }), _jsx(IconWrapper, { icon: GearTime, name: "GearTime" }), _jsx(IconWrapper, { icon: GenericField, name: "GenericField" }), _jsx(IconWrapper, { icon: GlassWater, name: "GlassWater" }), _jsx(IconWrapper, { icon: GreenFolder, name: "GreenFolder" }), _jsx(IconWrapper, { icon: Group, name: "Group" }), _jsx(IconWrapper, { icon: Groups, name: "Groups" }), _jsx(IconWrapper, { icon: GuestBedroom, name: "GuestBedroom" }), _jsx(IconWrapper, { icon: Hallway, name: "Hallway" }), _jsx(IconWrapper, { icon: HandPencil, name: "HandPencil" }), _jsx(IconWrapper, { icon: Heater, name: "Heater" }), _jsx(IconWrapper, { icon: Help, name: "Help" }), _jsx(IconWrapper, { icon: HomeAddress, name: "HomeAddress" }), _jsx(IconWrapper, { icon: Homeowner, name: "Homeowner" }), _jsx(IconWrapper, { icon: House, name: "House" }), _jsx(IconWrapper, { icon: HouseHands, name: "HouseHands" }), _jsx(IconWrapper, { icon: ImageDefault, name: "ImageDefault" }), _jsx(IconWrapper, { icon: ImgIcon, name: "ImgIcon" }), _jsx(IconWrapper, { icon: Inbox, name: "Inbox" }), _jsx(IconWrapper, { icon: Insect, name: "Insect" }), _jsx(IconWrapper, { icon: Kitchen, name: "Kitchen" }), _jsx(IconWrapper, { icon: Laundry, name: "Laundry" }), _jsx(IconWrapper, { icon: Light, name: "Light" }), _jsx(IconWrapper, { icon: LivingRoom, name: "LivingRoom" }), _jsx(IconWrapper, { icon: LogoSmall, name: "LogoSmall" }), _jsx(IconWrapper, { icon: MagnifyingGlassReport, name: "MagnifyingGlassReport" }), _jsx(IconWrapper, { icon: Manager, name: "Manager" }), _jsx(IconWrapper, { icon: MasterBedroom, name: "MasterBedroom" }), _jsx(IconWrapper, { icon: Member, name: "Member" }), _jsx(IconWrapper, { icon: Message, name: "Message" }), _jsx(IconWrapper, { icon: MobileDrop, name: "MobileDrop" }), _jsx(IconWrapper, { icon: Money, name: "Money" }), _jsx(IconWrapper, { icon: Mudroom, name: "Mudroom" }), _jsx(IconWrapper, { icon: NeedHelp, name: "NeedHelp" }), _jsx(IconWrapper, { icon: Office, name: "Office" }), _jsx(IconWrapper, { icon: Painting, name: "Painting" }), _jsx(IconWrapper, { icon: PartnerGeneric, name: "PartnerGeneric" }), _jsx(IconWrapper, { icon: Patio, name: "Patio" }), _jsx(IconWrapper, { icon: PdfIcon, name: "PdfIcon" }), _jsx(IconWrapper, { icon: PersonMail, name: "PersonMail" }), _jsx(IconWrapper, { icon: Plate, name: "Plate" }), _jsx(IconWrapper, { icon: Play, name: "Play" }), _jsx(IconWrapper, { icon: Plus, name: "Plus" }), _jsx(IconWrapper, { icon: Pool, name: "Pool" }), _jsx(IconWrapper, { icon: Pool2, name: "Pool2" }), _jsx(IconWrapper, { icon: PressureWasher, name: "PressureWasher" }), _jsx(IconWrapper, { icon: Price, name: "Price" }), _jsx(IconWrapper, { icon: Profile, name: "Profile" }), _jsx(IconWrapper, { icon: ProgressReport, name: "ProgressReport" }), _jsx(IconWrapper, { icon: Proposal, name: "Proposal" }), _jsx(IconWrapper, { icon: RealEstate, name: "RealEstate" }), _jsx(IconWrapper, { icon: Receipt, name: "Receipt" }), _jsx(IconWrapper, { icon: ReceiptBg, name: "ReceiptBg" }), _jsx(IconWrapper, { icon: ReceiptHouse, name: "ReceiptHouse" }), _jsx(IconWrapper, { icon: Receipts, name: "Receipts" }), _jsx(IconWrapper, { icon: Recipient, name: "Recipient" }), _jsx(IconWrapper, { icon: Records, name: "Records" }), _jsx(IconWrapper, { icon: Register, name: "Register" }), _jsx(IconWrapper, { icon: RelationshipHome, name: "RelationshipHome" }), _jsx(IconWrapper, { icon: ResendPassword, name: "ResendPassword" }), _jsx(IconWrapper, { icon: Rocket, name: "Rocket" }), _jsx(IconWrapper, { icon: Roof2, name: "Roof2" }), _jsx(IconWrapper, { icon: Security, name: "Security" }), _jsx(IconWrapper, { icon: Send, name: "Send" }), _jsx(IconWrapper, { icon: ShareHome, name: "ShareHome" }), _jsx(IconWrapper, { icon: ShareWith, name: "ShareWith" }), _jsx(IconWrapper, { icon: SixtyEight, name: "SixtyEight" }), _jsx(IconWrapper, { icon: SMS, name: "SMS" }), _jsx(IconWrapper, { icon: Social, name: "Social" }), _jsx(IconWrapper, { icon: SolarPanel, name: "SolarPanel" }), _jsx(IconWrapper, { icon: Sprinkler, name: "Sprinkler" }), _jsx(IconWrapper, { icon: Structure, name: "Structure" }), _jsx(IconWrapper, { icon: Subscription, name: "Subscription" }), _jsx(IconWrapper, { icon: Target, name: "Target" }), _jsx(IconWrapper, { icon: Theatre, name: "Theatre" }), _jsx(IconWrapper, { icon: Thumbnail, name: "Thumbnail" }), _jsx(IconWrapper, { icon: ThumbnailSmall, name: "ThumbnailSmall" }), _jsx(IconWrapper, { icon: ThumbUp, name: "ThumbUp" }), _jsx(IconWrapper, { icon: Trash, name: "Trash" }), _jsx(IconWrapper, { icon: VideoIcon, name: "VideoIcon" }), _jsx(IconWrapper, { icon: VideoPlay, name: "VideoPlay" }), _jsx(IconWrapper, { icon: VioletFolder, name: "VioletFolder" }), _jsx(IconWrapper, { icon: Warning, name: "Warning" }), _jsx(IconWrapper, { icon: Warranty, name: "Warranty" }), _jsx(IconWrapper, { icon: WellDone, name: "WellDone" }), _jsx(IconWrapper, { icon: WholeHome, name: "WholeHome" }), _jsx(IconWrapper, { icon: Wind, name: "Wind" }), _jsx(IconWrapper, { icon: Wizard, name: "Wizard" }), _jsx(IconWrapper, { icon: WizardDetailed, name: "WizardDetailed" }), _jsx(IconWrapper, { icon: WizardQuick, name: "WizardQuick" }), _jsx(IconWrapper, { icon: YellowFolder, name: "YellowFolder" }), _jsx(IconWrapper, { icon: YellowFolderUnshared, name: "YellowFolderUnshared" })] }));
|
|
10
10
|
};
|
|
11
11
|
const IconWrapper = ({ icon, name }) => {
|
|
12
12
|
return (_jsxs(Center, { flexDirection: "column", children: [_jsx(Image, { src: icon, boxSize: "30px", mb: "2" }), _jsx(Text, { variant: "home", children: name })] }));
|
|
@@ -7,8 +7,6 @@ export default {
|
|
|
7
7
|
title: 'Components/Forms/DynamicForm',
|
|
8
8
|
component: DynamicForm,
|
|
9
9
|
args: {
|
|
10
|
-
callback: action('callback'),
|
|
11
|
-
onUpload: action('onUpload'),
|
|
12
10
|
menuItems: menuMock,
|
|
13
11
|
socialLinks: socialLinksMock,
|
|
14
12
|
websiteUrl: 'http://www.audreyscheckdesign.com',
|
|
@@ -18,5 +16,5 @@ export const DynamicFormComponent = (args) => {
|
|
|
18
16
|
return (_jsx(Box, { p: "base", bg: "neutral.white", w: ['full', '500px'], children: _jsx(DynamicForm, Object.assign({}, args, { form: formFieldsMock })) }));
|
|
19
17
|
};
|
|
20
18
|
export const DynamicUIFormComponent = (args) => {
|
|
21
|
-
return (_jsx(Box, { m: "base", w: ['full', '320px'], children: _jsx(DynamicForm, Object.assign({}, args, { form: tileUIMock, showTitle: false })) }));
|
|
19
|
+
return (_jsx(Box, { m: "base", w: ['full', '320px'], children: _jsx(DynamicForm, Object.assign({}, args, { form: tileUIMock, showTitle: false, callback: action('callback') })) }));
|
|
22
20
|
};
|
package/package.json
CHANGED
|
@@ -102,6 +102,7 @@ import Play from './play.svg'
|
|
|
102
102
|
import Plus from './plus.svg'
|
|
103
103
|
import Pool from './pool.svg'
|
|
104
104
|
import Pool2 from './pool2.svg'
|
|
105
|
+
import PressureWasher from './pressure-washer.svg'
|
|
105
106
|
import Price from './price.svg'
|
|
106
107
|
import Profile from './profile.svg'
|
|
107
108
|
import ProgressReport from './progress-report.svg'
|
|
@@ -259,6 +260,7 @@ export {
|
|
|
259
260
|
Plus,
|
|
260
261
|
Pool,
|
|
261
262
|
Pool2,
|
|
263
|
+
PressureWasher,
|
|
262
264
|
Price,
|
|
263
265
|
Profile,
|
|
264
266
|
ProgressReport,
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<svg id="Group_22267" data-name="Group 22267" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="28.455" height="30.766" viewBox="0 0 28.455 30.766">
|
|
2
|
+
<defs>
|
|
3
|
+
<clipPath id="clip-path">
|
|
4
|
+
<rect id="Rectangle_25649" data-name="Rectangle 25649" width="28.455" height="30.766" fill="none"/>
|
|
5
|
+
</clipPath>
|
|
6
|
+
</defs>
|
|
7
|
+
<g id="Group_22266" data-name="Group 22266" clip-path="url(#clip-path)">
|
|
8
|
+
<path id="Path_17637" data-name="Path 17637" d="M2.623,97.179a2.624,2.624,0,1,1,2.392-3.7c.033.074.062.148.088.222l-.786.276c-.019-.054-.04-.107-.063-.158a1.79,1.79,0,1,0-.009,1.5,1.44,1.44,0,0,0,.067-.172c.014-.038.02-.052.024-.068s.011-.041.016-.057a.37.37,0,0,0,.014-.054c.01-.043.014-.064.018-.088l.821.14c-.007.043-.015.083-.025.126s-.021.09-.035.133-.026.087-.042.131A2.377,2.377,0,0,1,5,95.674a2.641,2.641,0,0,1-2.373,1.5" transform="translate(0 -66.413)" fill="#00c0b7"/>
|
|
9
|
+
<path id="Path_17638" data-name="Path 17638" d="M74.807,0V1.516H71.726V0Z" transform="translate(-51.817 0)" fill="#40566b"/>
|
|
10
|
+
<path id="Path_17639" data-name="Path 17639" d="M30.728,16.7v3.794h-2V16.7Z" transform="translate(-20.753 -12.064)" fill="#40566b"/>
|
|
11
|
+
<path id="Path_17640" data-name="Path 17640" d="M26.768,35.665a4,4,0,0,1,0,8.008H10.422V41.827H26.768a2.157,2.157,0,1,0,0-4.313H7.21a4.008,4.008,0,0,1-4.005-4V24.2A4.011,4.011,0,0,1,7.21,20.2h3.079v1.849H7.21A2.159,2.159,0,0,0,5.054,24.2v9.307A2.157,2.157,0,0,0,7.21,35.665Z" transform="translate(-2.315 -14.592)" fill="#00c0b7"/>
|
|
12
|
+
<path id="Path_17641" data-name="Path 17641" d="M18.926,98.119v1.846h-3.95a1.872,1.872,0,0,0,.086-.219.869.869,0,0,0,.036-.114.881.881,0,0,0,.031-.117c.009-.033.014-.064.02-.1a2.066,2.066,0,0,0,.036-.394,2.188,2.188,0,0,0-.12-.716c-.022-.064-.047-.128-.075-.189Z" transform="translate(-10.819 -70.884)" fill="#e24c5d"/>
|
|
13
|
+
<path id="Path_17642" data-name="Path 17642" d="M53.8,10.734V16.8a5.273,5.273,0,0,1-5.274,5.274H39.055a3.118,3.118,0,0,1-3.12-3.117V8.58a3.119,3.119,0,0,1,3.12-3.12h9.471A5.273,5.273,0,0,1,53.8,10.734m-4.158,7.594V9.4a.616.616,0,0,0-.616-.616H45.791a.618.618,0,0,0-.616.616v8.932a.617.617,0,0,0,.616.616h3.234a.615.615,0,0,0,.616-.616" transform="translate(-25.961 -3.944)" fill="#e24c5d"/>
|
|
14
|
+
<path id="Path_17643" data-name="Path 17643" d="M73.69,26.969a.615.615,0,0,1-.616.616H69.84a.617.617,0,0,1-.616-.616V18.037a.618.618,0,0,1,.616-.616h3.234a.616.616,0,0,1,.616.616Z" transform="translate(-50.01 -12.586)" fill="#ddeff2"/>
|
|
15
|
+
</g>
|
|
16
|
+
</svg>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useRive } from '@rive-app/react-canvas'
|
|
2
2
|
const url = import.meta.env.VITE_RIVE_ASSETS
|
|
3
3
|
|
|
4
|
-
export const HomieAnimation = () => {
|
|
4
|
+
export const HomieAnimation = ({ animation = 'homie-v2' }) => {
|
|
5
5
|
const { RiveComponent } = useRive({
|
|
6
|
-
src: `${url}
|
|
6
|
+
src: `${url}/${animation}.riv`,
|
|
7
7
|
stateMachines: 'State Machine 1',
|
|
8
8
|
autoplay: true,
|
|
9
9
|
})
|
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
NumberField,
|
|
18
18
|
CurrencyField,
|
|
19
19
|
TileBody,
|
|
20
|
+
CheckboxGroupField,
|
|
20
21
|
} from '@/components'
|
|
21
22
|
import { useDynamicForm } from '@/hooks'
|
|
22
23
|
import { fieldIcons } from '@/helpers'
|
|
@@ -163,6 +164,16 @@ export const DynamicForm = ({
|
|
|
163
164
|
canBeHidden={canBeHidden}
|
|
164
165
|
/>
|
|
165
166
|
)
|
|
167
|
+
case 'checkbox-group':
|
|
168
|
+
return (
|
|
169
|
+
<CheckboxGroupField
|
|
170
|
+
key={id}
|
|
171
|
+
id={id}
|
|
172
|
+
children={children}
|
|
173
|
+
value={value}
|
|
174
|
+
icon={baseProps.icon}
|
|
175
|
+
/>
|
|
176
|
+
)
|
|
166
177
|
case 'tile-body':
|
|
167
178
|
return (
|
|
168
179
|
<TileBody
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Box,
|
|
3
|
+
Checkbox,
|
|
4
|
+
CheckboxGroup,
|
|
5
|
+
Flex,
|
|
6
|
+
SimpleGrid,
|
|
7
|
+
Text,
|
|
8
|
+
} from '@chakra-ui/react'
|
|
9
|
+
import { ReportI } from '@/interfaces'
|
|
10
|
+
import { FormIcon } from '@/components'
|
|
11
|
+
import { Controller, useFormContext } from 'react-hook-form'
|
|
12
|
+
|
|
13
|
+
export const CheckboxGroupField = ({
|
|
14
|
+
children,
|
|
15
|
+
icon,
|
|
16
|
+
id,
|
|
17
|
+
value,
|
|
18
|
+
}: Pick<ReportI, 'children' | 'icon' | 'id' | 'value'>) => {
|
|
19
|
+
const { control } = useFormContext()
|
|
20
|
+
const defaultValues = children
|
|
21
|
+
?.map((child) => {
|
|
22
|
+
if (child.value) {
|
|
23
|
+
return child.id
|
|
24
|
+
}
|
|
25
|
+
})
|
|
26
|
+
.filter((value) => value) as string[]
|
|
27
|
+
|
|
28
|
+
return (
|
|
29
|
+
<Box>
|
|
30
|
+
<Box p="base" borderBottom="1px dashed" borderColor="lightBlue.6">
|
|
31
|
+
<Text fontFamily="secondary" fontSize="sm">
|
|
32
|
+
{value}
|
|
33
|
+
</Text>
|
|
34
|
+
</Box>
|
|
35
|
+
<Flex p="base" gap="base">
|
|
36
|
+
<FormIcon icon={icon} />
|
|
37
|
+
<Controller
|
|
38
|
+
control={control}
|
|
39
|
+
name={id}
|
|
40
|
+
defaultValue={defaultValues}
|
|
41
|
+
render={({ field: { onChange } }) => {
|
|
42
|
+
return (
|
|
43
|
+
<CheckboxGroup defaultValue={defaultValues} onChange={onChange}>
|
|
44
|
+
<SimpleGrid columns={2} spacing="base" w="full">
|
|
45
|
+
{children?.map((child) => {
|
|
46
|
+
const { id, name, value } = child
|
|
47
|
+
return (
|
|
48
|
+
<Checkbox
|
|
49
|
+
key={id}
|
|
50
|
+
value={String(id)}
|
|
51
|
+
isChecked={Boolean(value)}
|
|
52
|
+
>
|
|
53
|
+
<Text fontSize="sm">{name}</Text>
|
|
54
|
+
</Checkbox>
|
|
55
|
+
)
|
|
56
|
+
})}
|
|
57
|
+
</SimpleGrid>
|
|
58
|
+
</CheckboxGroup>
|
|
59
|
+
)
|
|
60
|
+
}}
|
|
61
|
+
/>
|
|
62
|
+
</Flex>
|
|
63
|
+
</Box>
|
|
64
|
+
)
|
|
65
|
+
}
|
|
@@ -30,6 +30,7 @@ export const SingleFields = ({ callback, fields, menuItems }: FieldTypesI) => {
|
|
|
30
30
|
type,
|
|
31
31
|
value,
|
|
32
32
|
icon,
|
|
33
|
+
link,
|
|
33
34
|
options = [],
|
|
34
35
|
}) => {
|
|
35
36
|
const baseProps = {
|
|
@@ -102,18 +103,27 @@ export const SingleFields = ({ callback, fields, menuItems }: FieldTypesI) => {
|
|
|
102
103
|
return (
|
|
103
104
|
<TileCta
|
|
104
105
|
key={id}
|
|
106
|
+
callback={callback}
|
|
107
|
+
description={description}
|
|
108
|
+
icon={icon}
|
|
109
|
+
id={id}
|
|
110
|
+
name={name}
|
|
105
111
|
type={type}
|
|
112
|
+
link={link}
|
|
106
113
|
value={String(baseProps.value)}
|
|
107
|
-
callback={callback}
|
|
108
114
|
/>
|
|
109
115
|
)
|
|
110
116
|
case 'secondary-cta':
|
|
111
117
|
return (
|
|
112
118
|
<TileCta
|
|
113
119
|
key={id}
|
|
120
|
+
callback={callback}
|
|
121
|
+
description={description}
|
|
122
|
+
icon={icon}
|
|
123
|
+
id={id}
|
|
124
|
+
name={name}
|
|
114
125
|
type={type}
|
|
115
126
|
value={String(baseProps.value)}
|
|
116
|
-
callback={callback}
|
|
117
127
|
/>
|
|
118
128
|
)
|
|
119
129
|
|
|
@@ -2,10 +2,10 @@ import { Flex } from '@chakra-ui/react'
|
|
|
2
2
|
import { SingleFields } from '@/components'
|
|
3
3
|
import { TileBodyI } from '@/interfaces'
|
|
4
4
|
|
|
5
|
-
export const TileBodyAction = ({ fields }: TileBodyI) => {
|
|
5
|
+
export const TileBodyAction = ({ callback, fields }: TileBodyI) => {
|
|
6
6
|
return (
|
|
7
7
|
<Flex p="base" align="center" gap="base">
|
|
8
|
-
<SingleFields fields={fields} />
|
|
8
|
+
<SingleFields fields={fields} callback={callback} />
|
|
9
9
|
</Flex>
|
|
10
10
|
)
|
|
11
11
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { Button } from '@chakra-ui/react'
|
|
2
2
|
import { TileCtaI } from '@/interfaces'
|
|
3
3
|
|
|
4
|
-
export const TileCta = ({ callback,
|
|
4
|
+
export const TileCta = ({ callback, ...props }: TileCtaI) => {
|
|
5
|
+
const { type, value } = props
|
|
5
6
|
return (
|
|
6
7
|
<Button
|
|
7
|
-
onClick={() => callback?.(
|
|
8
|
+
onClick={() => callback?.({ ...props })}
|
|
8
9
|
variant={type === 'primary-cta' ? 'tertiaryFooter' : 'secondaryFooter'}
|
|
9
10
|
fontSize="sm"
|
|
10
11
|
>
|
|
@@ -17,16 +17,12 @@ export const HomeMonitorSteps = ({
|
|
|
17
17
|
'homeMonitorButton-4',
|
|
18
18
|
'homeMonitorButton-5',
|
|
19
19
|
'homeMonitorButton-6',
|
|
20
|
-
'menuItems',
|
|
21
20
|
]
|
|
22
21
|
const [selectedId, setSelectedId] = useState<string>('')
|
|
23
22
|
const isDisabled = menuItems.length === 0
|
|
24
23
|
|
|
25
24
|
useComponentStyles({ ids, selectedId, zIndex: '2' })
|
|
26
|
-
const handleStepClick = (step: number) =>
|
|
27
|
-
onStepClick(step)
|
|
28
|
-
setSelectedId(`homeMonitorButton-${step}`)
|
|
29
|
-
}
|
|
25
|
+
const handleStepClick = (step: number) => onStepClick(step)
|
|
30
26
|
return (
|
|
31
27
|
<Flex gap="base">
|
|
32
28
|
{homeAssistantSteps.map((step, index) => (
|
|
@@ -45,7 +41,7 @@ export const HomeMonitorSteps = ({
|
|
|
45
41
|
itemForm={index + 1}
|
|
46
42
|
menuItems={menuItems}
|
|
47
43
|
disabled={isDisabled}
|
|
48
|
-
onClick={() => setSelectedId(
|
|
44
|
+
onClick={() => setSelectedId(`homeMonitorButton-${index + 1}`)}
|
|
49
45
|
/>
|
|
50
46
|
</Box>
|
|
51
47
|
</Box>
|
|
@@ -7,7 +7,7 @@ export const HomefileMonitoring = () => {
|
|
|
7
7
|
<Box p="base" borderRadius="lg" bg="#C5E9F4" h="66px" zIndex="2" flex="1">
|
|
8
8
|
<Flex align="center">
|
|
9
9
|
<Box boxSize="47px">
|
|
10
|
-
<HomieAnimation />
|
|
10
|
+
<HomieAnimation animation="homie-v3" />
|
|
11
11
|
</Box>
|
|
12
12
|
<Text>{t('homeAssistant.homeMonitoring')}</Text>
|
|
13
13
|
</Flex>
|
|
@@ -340,9 +340,14 @@ export const HomeBoard = () => {
|
|
|
340
340
|
<Notifications date="10-10-24" local="TX - Houston" />
|
|
341
341
|
</Flex>
|
|
342
342
|
<HomeMonitorSteps
|
|
343
|
-
menuItems={
|
|
343
|
+
menuItems={[
|
|
344
|
+
{
|
|
345
|
+
label: 'Details',
|
|
346
|
+
handleClick: handleHomeAssistantClick,
|
|
347
|
+
},
|
|
348
|
+
]}
|
|
344
349
|
stepsWithAlerts={[]}
|
|
345
|
-
onStepClick={
|
|
350
|
+
onStepClick={() => null}
|
|
346
351
|
/>
|
|
347
352
|
</Stack>
|
|
348
353
|
</HomeMonitor>
|
|
@@ -47,6 +47,7 @@ import {
|
|
|
47
47
|
HolidayLights,
|
|
48
48
|
GutterCleaning,
|
|
49
49
|
HomeCleaning,
|
|
50
|
+
PressureWasher,
|
|
50
51
|
} from '@/assets/images'
|
|
51
52
|
import { IconTypes } from '@/interfaces'
|
|
52
53
|
|
|
@@ -86,6 +87,7 @@ export const fieldIcons: Record<IconTypes, string> = {
|
|
|
86
87
|
heater: Heater,
|
|
87
88
|
light: Light,
|
|
88
89
|
plate: Plate,
|
|
90
|
+
'pressure-washer': PressureWasher,
|
|
89
91
|
pool: Pool2,
|
|
90
92
|
roof: Roof2,
|
|
91
93
|
umbrella: Closet,
|
|
@@ -2,6 +2,7 @@ import { FolderFileI, MenuItemI, PartnerFooterI, TileCtaI } from '@/interfaces'
|
|
|
2
2
|
|
|
3
3
|
type KindTypes =
|
|
4
4
|
| 'checkbox'
|
|
5
|
+
| 'checkbox-group'
|
|
5
6
|
| 'currency'
|
|
6
7
|
| 'date'
|
|
7
8
|
| 'email'
|
|
@@ -73,6 +74,7 @@ export type IconTypes =
|
|
|
73
74
|
| 'mobile-drop'
|
|
74
75
|
| 'light'
|
|
75
76
|
| 'plate'
|
|
77
|
+
| 'pressure-washer'
|
|
76
78
|
| 'house'
|
|
77
79
|
| 'target'
|
|
78
80
|
| 'title'
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DynamicFormI, MenuItemI, PartnerFooterI } from '@/interfaces'
|
|
1
|
+
import { DynamicFormI, MenuItemI, PartnerFooterI, ReportI } from '@/interfaces'
|
|
2
2
|
|
|
3
3
|
export interface TileBodyLogoI {
|
|
4
4
|
menuItems?: MenuItemI[]
|
|
@@ -17,8 +17,23 @@ export interface VerticalIconI {
|
|
|
17
17
|
value: string
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
interface TileCtaCallbackI {
|
|
21
|
+
id: string
|
|
22
|
+
value: string
|
|
23
|
+
name?: string
|
|
24
|
+
link?: string
|
|
25
|
+
icon?: string
|
|
26
|
+
description?: string
|
|
27
|
+
canBeHidden?: boolean
|
|
28
|
+
visible?: boolean
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export interface TileCtaI
|
|
32
|
+
extends Pick<
|
|
33
|
+
ReportI,
|
|
34
|
+
'id' | 'name' | 'link' | 'icon' | 'description' | 'canBeHidden' | 'visible'
|
|
35
|
+
> {
|
|
36
|
+
callback?: (form: TileCtaCallbackI) => void
|
|
22
37
|
type: 'primary-cta' | 'secondary-cta'
|
|
23
38
|
value: string
|
|
24
39
|
}
|
|
@@ -13,6 +13,7 @@ export const formFieldsMock: ReportI[] = [
|
|
|
13
13
|
visible: false,
|
|
14
14
|
icon: 'barcode',
|
|
15
15
|
},
|
|
16
|
+
|
|
16
17
|
{
|
|
17
18
|
id: faker.database.mongodbObjectId(),
|
|
18
19
|
name: 'Receipt',
|
|
@@ -191,6 +192,72 @@ export const formFieldsMock: ReportI[] = [
|
|
|
191
192
|
visible: false,
|
|
192
193
|
icon: 'book',
|
|
193
194
|
},
|
|
195
|
+
{
|
|
196
|
+
id: faker.database.mongodbObjectId(),
|
|
197
|
+
name: 'Services',
|
|
198
|
+
description: faker.lorem.sentence(),
|
|
199
|
+
comments: faker.lorem.sentence(),
|
|
200
|
+
value: 'Select the services you are requesting support for?',
|
|
201
|
+
type: 'checkbox-group',
|
|
202
|
+
visible: true,
|
|
203
|
+
icon: 'pressure-washer',
|
|
204
|
+
children: [
|
|
205
|
+
{
|
|
206
|
+
id: faker.database.mongodbObjectId(),
|
|
207
|
+
name: 'Pressure Washing',
|
|
208
|
+
description: faker.lorem.sentence(),
|
|
209
|
+
comments: faker.lorem.sentence(),
|
|
210
|
+
value: true,
|
|
211
|
+
type: 'checkbox',
|
|
212
|
+
visible: true,
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
id: faker.database.mongodbObjectId(),
|
|
216
|
+
name: 'Window Cleaning',
|
|
217
|
+
description: faker.lorem.sentence(),
|
|
218
|
+
comments: faker.lorem.sentence(),
|
|
219
|
+
value: false,
|
|
220
|
+
type: 'checkbox',
|
|
221
|
+
visible: true,
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
id: faker.database.mongodbObjectId(),
|
|
225
|
+
name: 'Roof Cleaning',
|
|
226
|
+
description: faker.lorem.sentence(),
|
|
227
|
+
comments: faker.lorem.sentence(),
|
|
228
|
+
value: false,
|
|
229
|
+
type: 'checkbox',
|
|
230
|
+
visible: true,
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
id: faker.database.mongodbObjectId(),
|
|
234
|
+
name: 'Holiday Lights',
|
|
235
|
+
description: faker.lorem.sentence(),
|
|
236
|
+
comments: faker.lorem.sentence(),
|
|
237
|
+
value: true,
|
|
238
|
+
type: 'checkbox',
|
|
239
|
+
visible: true,
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
id: faker.database.mongodbObjectId(),
|
|
243
|
+
name: 'Gutter Cleaning',
|
|
244
|
+
description: faker.lorem.sentence(),
|
|
245
|
+
comments: faker.lorem.sentence(),
|
|
246
|
+
value: true,
|
|
247
|
+
type: 'checkbox',
|
|
248
|
+
visible: true,
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
id: faker.database.mongodbObjectId(),
|
|
252
|
+
name: 'Exterior Cleaning',
|
|
253
|
+
description: faker.lorem.sentence(),
|
|
254
|
+
comments: faker.lorem.sentence(),
|
|
255
|
+
value: true,
|
|
256
|
+
type: 'checkbox',
|
|
257
|
+
visible: false,
|
|
258
|
+
},
|
|
259
|
+
],
|
|
260
|
+
},
|
|
194
261
|
]
|
|
195
262
|
|
|
196
263
|
export const contactFieldsMock: ReportI[] = [
|
|
@@ -121,6 +121,7 @@ import {
|
|
|
121
121
|
Plus,
|
|
122
122
|
Pool,
|
|
123
123
|
Pool2,
|
|
124
|
+
PressureWasher,
|
|
124
125
|
Porch,
|
|
125
126
|
Price,
|
|
126
127
|
Profile,
|
|
@@ -360,6 +361,7 @@ export const Illustrations = () => {
|
|
|
360
361
|
<IconWrapper icon={Plus} name="Plus" />
|
|
361
362
|
<IconWrapper icon={Pool} name="Pool" />
|
|
362
363
|
<IconWrapper icon={Pool2} name="Pool2" />
|
|
364
|
+
<IconWrapper icon={PressureWasher} name="PressureWasher" />
|
|
363
365
|
<IconWrapper icon={Price} name="Price" />
|
|
364
366
|
<IconWrapper icon={Profile} name="Profile" />
|
|
365
367
|
<IconWrapper icon={ProgressReport} name="ProgressReport" />
|
|
@@ -9,8 +9,6 @@ export default {
|
|
|
9
9
|
title: 'Components/Forms/DynamicForm',
|
|
10
10
|
component: DynamicForm,
|
|
11
11
|
args: {
|
|
12
|
-
callback: action('callback'),
|
|
13
|
-
onUpload: action('onUpload'),
|
|
14
12
|
menuItems: menuMock,
|
|
15
13
|
socialLinks: socialLinksMock,
|
|
16
14
|
websiteUrl: 'http://www.audreyscheckdesign.com',
|
|
@@ -28,7 +26,12 @@ export const DynamicFormComponent = (args: DynamicFormI) => {
|
|
|
28
26
|
export const DynamicUIFormComponent = (args: DynamicFormI) => {
|
|
29
27
|
return (
|
|
30
28
|
<Box m="base" w={['full', '320px']}>
|
|
31
|
-
<DynamicForm
|
|
29
|
+
<DynamicForm
|
|
30
|
+
{...args}
|
|
31
|
+
form={tileUIMock}
|
|
32
|
+
showTitle={false}
|
|
33
|
+
callback={action('callback')}
|
|
34
|
+
/>
|
|
32
35
|
</Box>
|
|
33
36
|
)
|
|
34
37
|
}
|