@homefile/components-v2 2.59.2 → 2.60.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 (169) hide show
  1. package/dist/assets/locales/en/index.json +5 -2
  2. package/dist/components/folderPanel/displayFiles/GridFile.js +9 -1
  3. package/dist/components/folderPanel/displayFiles/ListFile.js +9 -1
  4. package/dist/components/forms/dynamicForm/DynamicForm.js +1 -1
  5. package/dist/components/forms/dynamicForm/HiddenField.js +2 -2
  6. package/dist/components/forms/dynamicForm/fields/HomeInitialSetup.js +3 -1
  7. package/dist/components/forms/readOnly/ReadOnlyDynamicForm.js +10 -2
  8. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyAppliances.js +21 -22
  9. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyGuidelines.js +6 -3
  10. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyHistory.d.ts +2 -0
  11. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyHistory.js +35 -0
  12. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyItemRelated.js +8 -3
  13. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyOverview.d.ts +2 -0
  14. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyOverview.js +16 -0
  15. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyPurchaseDetails.d.ts +2 -0
  16. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyPurchaseDetails.js +30 -0
  17. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyWarrantyBanner.d.ts +2 -0
  18. package/dist/components/forms/readOnly/fields/homeItem/ReadOnlyWarrantyBanner.js +42 -0
  19. package/dist/components/forms/readOnly/fields/homeItem/index.d.ts +4 -0
  20. package/dist/components/forms/readOnly/fields/homeItem/index.js +4 -0
  21. package/dist/components/headers/TabsHeader.js +1 -1
  22. package/dist/components/history/AddDocuments.d.ts +7 -0
  23. package/dist/components/history/AddDocuments.js +8 -0
  24. package/dist/components/history/DatePennant.d.ts +7 -0
  25. package/dist/components/history/DatePennant.js +6 -0
  26. package/dist/components/history/HistoryCard.d.ts +19 -0
  27. package/dist/components/history/HistoryCard.js +13 -0
  28. package/dist/components/history/index.d.ts +3 -0
  29. package/dist/components/history/index.js +3 -0
  30. package/dist/components/homeBoard/AddToHomefile.js +1 -1
  31. package/dist/components/homeBoard/HomeCard.js +1 -1
  32. package/dist/components/homeItems/ViewingHomeItemBody.d.ts +2 -0
  33. package/dist/components/homeItems/ViewingHomeItemBody.js +41 -0
  34. package/dist/components/homeItems/ViewingHomeItemPanel.js +17 -19
  35. package/dist/components/homeItems/index.d.ts +1 -0
  36. package/dist/components/homeItems/index.js +1 -0
  37. package/dist/components/homi/HomiPresence.d.ts +2 -0
  38. package/dist/components/homi/HomiPresence.js +31 -0
  39. package/dist/components/homi/HomiVoice.d.ts +2 -0
  40. package/dist/components/homi/HomiVoice.js +6 -0
  41. package/dist/components/homi/ProgressBar.d.ts +2 -0
  42. package/dist/components/homi/ProgressBar.js +9 -0
  43. package/dist/components/homi/RevealValueCard.d.ts +2 -0
  44. package/dist/components/homi/RevealValueCard.js +23 -0
  45. package/dist/components/homi/StaggerReveal.d.ts +2 -0
  46. package/dist/components/homi/StaggerReveal.js +29 -0
  47. package/dist/components/homi/index.d.ts +5 -0
  48. package/dist/components/homi/index.js +5 -0
  49. package/dist/components/inboxTile/InboxForwardBanner.js +1 -1
  50. package/dist/components/index.d.ts +2 -0
  51. package/dist/components/index.js +2 -0
  52. package/dist/components/inputs/InlineEditField.d.ts +2 -0
  53. package/dist/components/inputs/InlineEditField.js +15 -0
  54. package/dist/components/inputs/RadioCard.d.ts +3 -1
  55. package/dist/components/inputs/RadioCard.js +3 -3
  56. package/dist/components/inputs/TextInput.d.ts +1 -1
  57. package/dist/components/inputs/TextInput.js +11 -4
  58. package/dist/components/inputs/index.d.ts +1 -0
  59. package/dist/components/inputs/index.js +1 -0
  60. package/dist/components/myHomes/HomeDetailsContent.js +1 -1
  61. package/dist/components/myHomes/IncludePublicRecords.d.ts +13 -1
  62. package/dist/components/myHomes/IncludePublicRecords.js +16 -6
  63. package/dist/components/myHomes/edithome/EditHomeDetails.js +12 -3
  64. package/dist/components/myHomes/steps/NewHomeDetails.d.ts +1 -1
  65. package/dist/components/myHomes/steps/NewHomeDetails.js +3 -3
  66. package/dist/components/myProfile/MyProfileBody.d.ts +1 -1
  67. package/dist/components/myProfile/MyProfileBody.js +2 -2
  68. package/dist/components/myProfile/details/HomiSms.d.ts +1 -1
  69. package/dist/components/myProfile/details/HomiSms.js +53 -23
  70. package/dist/components/myProfile/details/TwoFactorSetting.js +2 -1
  71. package/dist/components/rooms/RoomHeader.d.ts +1 -1
  72. package/dist/components/rooms/RoomHeader.js +3 -3
  73. package/dist/components/wizard/ControlledWizard.d.ts +1 -1
  74. package/dist/components/wizard/ControlledWizard.js +42 -3
  75. package/dist/components/wizard/WizardInitialOptions.js +3 -3
  76. package/dist/components/wizard/WizardSelectCard.d.ts +14 -0
  77. package/dist/components/wizard/WizardSelectCard.js +32 -0
  78. package/dist/components/wizard/WizardStepPrompt.d.ts +11 -0
  79. package/dist/components/wizard/WizardStepPrompt.js +20 -0
  80. package/dist/components/wizard/WizardSuccessHeader.d.ts +1 -1
  81. package/dist/components/wizard/WizardSuccessHeader.js +2 -2
  82. package/dist/components/wizard/index.d.ts +2 -0
  83. package/dist/components/wizard/index.js +2 -0
  84. package/dist/helpers/forms/dynamicForm.helper.js +4 -0
  85. package/dist/hooks/folderPanel/useDisplayFiles.js +11 -2
  86. package/dist/hooks/forms/useAddressStored.js +8 -2
  87. package/dist/hooks/index.d.ts +2 -0
  88. package/dist/hooks/index.js +2 -0
  89. package/dist/hooks/motion/index.d.ts +2 -0
  90. package/dist/hooks/motion/index.js +2 -0
  91. package/dist/hooks/motion/useCountUp.d.ts +10 -0
  92. package/dist/hooks/motion/useCountUp.js +39 -0
  93. package/dist/hooks/motion/usePrefersReducedMotion.d.ts +14 -0
  94. package/dist/hooks/motion/usePrefersReducedMotion.js +15 -0
  95. package/dist/hooks/rooms/useRoomHeader.d.ts +4 -1
  96. package/dist/hooks/rooms/useRoomHeader.js +9 -1
  97. package/dist/hooks/useDirtySave.d.ts +14 -0
  98. package/dist/hooks/useDirtySave.js +33 -0
  99. package/dist/index.d.ts +3 -3
  100. package/dist/index.js +3 -3
  101. package/dist/interfaces/forms/dynamicForm/DynamicForm.interface.d.ts +7 -3
  102. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyOverview.interface.d.ts +2 -0
  103. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyOverview.interface.js +1 -0
  104. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyPurchaseDetails.interface.d.ts +5 -0
  105. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyPurchaseDetails.interface.js +1 -0
  106. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyWarrantyBanner.interface.d.ts +27 -0
  107. package/dist/interfaces/forms/readOnly/homeItem/ReadOnlyWarrantyBanner.interface.js +1 -0
  108. package/dist/interfaces/forms/readOnly/homeItem/index.d.ts +3 -0
  109. package/dist/interfaces/forms/readOnly/homeItem/index.js +3 -0
  110. package/dist/interfaces/homeItems/ViewingHomeItemPanel.interface.d.ts +1 -0
  111. package/dist/interfaces/homi/HomiPresence.interface.d.ts +9 -0
  112. package/dist/interfaces/homi/HomiPresence.interface.js +1 -0
  113. package/dist/interfaces/homi/ProgressBar.interface.d.ts +8 -0
  114. package/dist/interfaces/homi/ProgressBar.interface.js +1 -0
  115. package/dist/interfaces/homi/RevealValueCard.interface.d.ts +16 -0
  116. package/dist/interfaces/homi/RevealValueCard.interface.js +1 -0
  117. package/dist/interfaces/homi/StaggerReveal.interface.d.ts +9 -0
  118. package/dist/interfaces/homi/StaggerReveal.interface.js +1 -0
  119. package/dist/interfaces/homi/index.d.ts +4 -0
  120. package/dist/interfaces/homi/index.js +4 -0
  121. package/dist/interfaces/index.d.ts +1 -0
  122. package/dist/interfaces/index.js +1 -0
  123. package/dist/interfaces/inputs/InlineEditField.interface.d.ts +7 -0
  124. package/dist/interfaces/inputs/InlineEditField.interface.js +1 -0
  125. package/dist/interfaces/inputs/Input.interface.d.ts +6 -1
  126. package/dist/interfaces/inputs/index.d.ts +1 -0
  127. package/dist/interfaces/inputs/index.js +1 -0
  128. package/dist/interfaces/myHomes/AddHomeContent.interface.d.ts +3 -0
  129. package/dist/interfaces/myProfile/MyProfileBody.interface.d.ts +1 -0
  130. package/dist/interfaces/myProfile/details/HomiSms.interface.d.ts +11 -2
  131. package/dist/interfaces/rooms/RoomHeader.interface.d.ts +5 -0
  132. package/dist/interfaces/wizard/ControlledWizard.interface.d.ts +6 -0
  133. package/dist/interfaces/wizard/WizardStepPrompt.interface.d.ts +9 -0
  134. package/dist/interfaces/wizard/WizardStepPrompt.interface.js +1 -0
  135. package/dist/interfaces/wizard/index.d.ts +1 -0
  136. package/dist/interfaces/wizard/index.js +1 -0
  137. package/dist/stories/forms/readOnly/ReadOnlyAppliances.stories.d.ts +4 -0
  138. package/dist/stories/forms/readOnly/ReadOnlyAppliances.stories.js +33 -0
  139. package/dist/stories/forms/readOnly/ReadOnlyWarrantyBanner.stories.d.ts +4 -0
  140. package/dist/stories/forms/readOnly/ReadOnlyWarrantyBanner.stories.js +10 -0
  141. package/dist/stories/homeItems/ReadOnlyHistory.stories.d.ts +4 -0
  142. package/dist/stories/homeItems/ReadOnlyHistory.stories.js +46 -0
  143. package/dist/stories/homeItems/ReadOnlyOverview.stories.d.ts +5 -0
  144. package/dist/stories/homeItems/ReadOnlyOverview.stories.js +69 -0
  145. package/dist/stories/homeItems/ViewingHomeItemPanel.stories.d.ts +4 -0
  146. package/dist/stories/homeItems/ViewingHomeItemPanel.stories.js +204 -0
  147. package/dist/stories/homi/HomiPresence.stories.d.ts +18 -0
  148. package/dist/stories/homi/HomiPresence.stories.js +11 -0
  149. package/dist/stories/homi/HomiVoice.stories.d.ts +4 -0
  150. package/dist/stories/homi/HomiVoice.stories.js +8 -0
  151. package/dist/stories/homi/ProgressBar.stories.d.ts +10 -0
  152. package/dist/stories/homi/ProgressBar.stories.js +9 -0
  153. package/dist/stories/homi/RevealValueCard.stories.d.ts +19 -0
  154. package/dist/stories/homi/RevealValueCard.stories.js +22 -0
  155. package/dist/stories/homi/StaggerReveal.stories.d.ts +5 -0
  156. package/dist/stories/homi/StaggerReveal.stories.js +8 -0
  157. package/dist/stories/inputs/InlineEditField.stories.d.ts +10 -0
  158. package/dist/stories/inputs/InlineEditField.stories.js +11 -0
  159. package/dist/stories/myProfile/MyProfilePanel.stories.js +1 -1
  160. package/dist/stories/myProfile/details/HomiSms.stories.d.ts +3 -2
  161. package/dist/stories/myProfile/details/HomiSms.stories.js +3 -2
  162. package/dist/stories/wizard/ControlledWizard.stories.d.ts +9 -0
  163. package/dist/stories/wizard/ControlledWizard.stories.js +41 -60
  164. package/dist/theme/index.d.ts +3 -0
  165. package/dist/theme/index.js +7 -4
  166. package/dist/utils/Formaters.utils.d.ts +2 -0
  167. package/dist/utils/Formaters.utils.js +14 -0
  168. package/dist/utils/Weather.utils.js +11 -4
  169. package/package.json +1 -1
@@ -0,0 +1,69 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Stack } from '@chakra-ui/react';
3
+ import { ReadOnlyOverview } from '../../components';
4
+ // Bullets are the XD "Care Card Expanded" (Overview) content.
5
+ const field = {
6
+ id: 'overview',
7
+ type: 'overview',
8
+ name: 'Overview',
9
+ value: '',
10
+ children: [
11
+ {
12
+ id: 'b1',
13
+ type: 'text',
14
+ value: 'ExtendFresh™ Temperature Management System - Separately monitors the temperatures in the refrigerator and freezer through a sensor, to help ensure fresh fruit juices don’t become frozen and prawns avoid freezer burn.',
15
+ },
16
+ {
17
+ id: 'b2',
18
+ type: 'text',
19
+ value: 'Interior water dispenser provides easy access to filtered water inside the refrigerator',
20
+ },
21
+ {
22
+ id: 'b3',
23
+ type: 'text',
24
+ value: 'Produce preserver - absorbs ethylene gas emitted by many fruits and vegetables, causing them to over ripen',
25
+ },
26
+ {
27
+ id: 'b4',
28
+ type: 'text',
29
+ value: 'Humidity-controlled crispers provide a dedicated storage option with adjustable humidity levels',
30
+ },
31
+ {
32
+ id: 'b5',
33
+ type: 'text',
34
+ value: 'SatinGlide® System allows shelves to extend smoothly, even when fully loaded, so your items are easily accessible',
35
+ },
36
+ {
37
+ id: 'b6',
38
+ type: 'text',
39
+ value: 'LED lighting illuminates the inside of the refrigerator and freezer giving for better visibility',
40
+ },
41
+ ],
42
+ };
43
+ export default {
44
+ title: 'Components/HomeItems/ReadOnlyOverview',
45
+ component: ReadOnlyOverview,
46
+ };
47
+ export const Overview = () => (_jsx(Box, { maxW: "500px", bg: "lightBlue.1", p: "base", children: _jsx(ReadOnlyOverview, Object.assign({}, field)) }));
48
+ // The Specs tab: collapsible section cards inset 13px, 6.5px apart.
49
+ const care = {
50
+ id: 'care',
51
+ type: 'overview',
52
+ name: 'Care Instructions',
53
+ value: '',
54
+ children: [
55
+ { id: 'c1', type: 'text', value: 'Clean the condenser coils twice a year.' },
56
+ { id: 'c2', type: 'text', value: 'Replace the water filter every 6 months.' },
57
+ ],
58
+ };
59
+ const dimensions = {
60
+ id: 'dimensions',
61
+ type: 'overview',
62
+ name: 'Dimensions',
63
+ value: '',
64
+ children: [
65
+ { id: 'd1', type: 'text', value: 'Width: 35 3/4 in' },
66
+ { id: 'd2', type: 'text', value: 'Height: 70 1/8 in' },
67
+ ],
68
+ };
69
+ export const SpecsTab = () => (_jsx(Box, { maxW: "500px", bg: "lightBlue.1", children: _jsxs(Stack, { px: "base", pt: "base", pb: "base", spacing: "base", align: "stretch", children: [_jsx(ReadOnlyOverview, Object.assign({}, care)), _jsx(ReadOnlyOverview, Object.assign({}, field)), _jsx(ReadOnlyOverview, Object.assign({}, dimensions))] }) }));
@@ -0,0 +1,4 @@
1
+ import { Meta } from '@storybook/react';
2
+ declare const _default: Meta;
3
+ export default _default;
4
+ export declare const Assembled: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,204 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Drawer, DrawerOverlay } from '@chakra-ui/react';
3
+ import { ViewingHomeItemPanel } from '../../components';
4
+ import { faker } from '@faker-js/faker';
5
+ const images = [
6
+ faker.image.urlPicsumPhotos(),
7
+ faker.image.urlPicsumPhotos(),
8
+ faker.image.urlPicsumPhotos(),
9
+ faker.image.urlPicsumPhotos(),
10
+ ];
11
+ // The read-only item is its report[] schema. The Details tab renders it via
12
+ // ReadOnlyDynamicForm — here: warranty banner + appliance card + notes. (Care &
13
+ // Guidelines / Parts / Purchase-details block are the next components to build.)
14
+ const report = [
15
+ {
16
+ id: 'warranty',
17
+ type: 'warranty',
18
+ value: "This item is under the manufacturer's warranty till 2030.",
19
+ },
20
+ {
21
+ id: 'appliance',
22
+ type: 'appliances',
23
+ name: 'Appliances',
24
+ value: 'Refrigerator',
25
+ icon: 'fridge',
26
+ description: 'KitchenAid Counter-depth 20-cu ft French Door Refrigerator with Ice Maker and Water dispenser (Stainless Steel) ENERGY STAR',
27
+ children: [
28
+ { id: 'imgs', type: 'images', value: images },
29
+ { id: 'brand', type: 'text', name: 'Brand', value: 'Kitchen Aid' },
30
+ { id: 'model', type: 'text', name: 'Model#', value: 'KRFC300ESS' },
31
+ { id: 'serial', type: 'text', name: 'Serial #', value: '' },
32
+ { id: 'retail', type: 'currency', name: 'Retail Price', value: '3125.12' },
33
+ {
34
+ id: 'est',
35
+ type: 'currency',
36
+ name: 'Est Replacement Cost',
37
+ value: '1895.03',
38
+ },
39
+ ],
40
+ },
41
+ {
42
+ id: 'careParts',
43
+ type: 'grid',
44
+ value: '',
45
+ children: [
46
+ {
47
+ id: 'careGuidelines',
48
+ type: 'guidelines',
49
+ name: 'Care & Guidelines',
50
+ value: '',
51
+ children: [
52
+ { id: 'warranty', type: 'text', icon: 'warranty', value: 'Warranty' },
53
+ { id: 'manual', type: 'text', icon: 'book-opened', value: 'Manual' },
54
+ ],
55
+ },
56
+ {
57
+ id: 'parts',
58
+ type: 'item-related',
59
+ name: 'Parts & Accessories',
60
+ value: '',
61
+ // Parts icons are data-driven: they use the item's appliance icon
62
+ // (here 'fridge') so the tiles reflect the specific appliance.
63
+ children: [
64
+ { id: 'filter', type: 'text', icon: 'fridge', value: 'Filter' },
65
+ { id: 'icetray', type: 'text', icon: 'fridge', value: 'Ice Tray' },
66
+ { id: 'drawer', type: 'text', icon: 'fridge', value: 'Drawer' },
67
+ { id: 'shelf', type: 'text', icon: 'fridge', value: 'Shelf' },
68
+ { id: 'gasket', type: 'text', icon: 'fridge', value: 'Gasket' },
69
+ ],
70
+ },
71
+ ],
72
+ },
73
+ {
74
+ id: 'purchase',
75
+ type: 'purchase',
76
+ name: 'Purchase Details',
77
+ value: '',
78
+ link: 'https://example.com/receipt.pdf',
79
+ children: [
80
+ {
81
+ id: 'logo',
82
+ type: 'images',
83
+ // Placeholder logo (real value comes from the retailer logo-lookup API).
84
+ value: "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='128' height='128'><rect width='128' height='128' fill='%23F96302'/><text x='64' y='82' font-family='Arial, sans-serif' font-size='52' font-weight='bold' fill='white' text-anchor='middle'>THD</text></svg>",
85
+ },
86
+ { id: 'retailer', type: 'text', name: 'Retailer', value: 'Home Depot' },
87
+ { id: 'purchased', type: 'date', name: 'Purchased', value: '02-25-2021' },
88
+ { id: 'payment', type: 'text', name: 'Payment', value: 'Visa' },
89
+ { id: 'price', type: 'currency', name: 'Price', value: '2876.25' },
90
+ { id: 'tax', type: 'currency', name: 'Tax', value: '1253.44' },
91
+ { id: 'total', type: 'currency', name: 'Total', value: '3125.12' },
92
+ ],
93
+ },
94
+ {
95
+ id: 'notes',
96
+ type: 'notes',
97
+ name: 'Notes',
98
+ value: 'If there are any notes about this item, they go here. These are notes added either by Homi or by the user.',
99
+ },
100
+ // Specs tab (tab: 'specs') — a stack of collapsible sections.
101
+ {
102
+ id: 'care',
103
+ type: 'overview',
104
+ name: 'Care Instructions',
105
+ value: '',
106
+ tab: 'specs',
107
+ children: [
108
+ { id: 'c1', type: 'text', value: 'Clean the condenser coils twice a year.' },
109
+ { id: 'c2', type: 'text', value: 'Replace the water filter every 6 months.' },
110
+ { id: 'c3', type: 'text', value: 'Wipe door gaskets monthly to keep the seal clean.' },
111
+ ],
112
+ },
113
+ {
114
+ id: 'overview',
115
+ type: 'overview',
116
+ name: 'Overview',
117
+ value: '',
118
+ tab: 'specs',
119
+ children: [
120
+ {
121
+ id: 'b1',
122
+ type: 'text',
123
+ value: 'ExtendFresh™ Temperature Management System - Separately monitors the temperatures in the refrigerator and freezer through a sensor, to help ensure fresh fruit juices don’t become frozen and prawns avoid freezer burn.',
124
+ },
125
+ {
126
+ id: 'b2',
127
+ type: 'text',
128
+ value: 'Interior water dispenser provides easy access to filtered water inside the refrigerator',
129
+ },
130
+ {
131
+ id: 'b3',
132
+ type: 'text',
133
+ value: 'Humidity-controlled crispers provide a dedicated storage option with adjustable humidity levels',
134
+ },
135
+ ],
136
+ },
137
+ {
138
+ id: 'dimensions',
139
+ type: 'overview',
140
+ name: 'Dimensions',
141
+ value: '',
142
+ tab: 'specs',
143
+ children: [
144
+ { id: 'd1', type: 'text', value: 'Width: 35 3/4 in' },
145
+ { id: 'd2', type: 'text', value: 'Height: 70 1/8 in' },
146
+ { id: 'd3', type: 'text', value: 'Depth: 28 3/4 in' },
147
+ { id: 'd4', type: 'text', value: 'Weight: 320 lb' },
148
+ ],
149
+ },
150
+ {
151
+ id: 'features',
152
+ type: 'overview',
153
+ name: 'Features',
154
+ value: '',
155
+ tab: 'specs',
156
+ children: [
157
+ { id: 'f1', type: 'text', value: 'ENERGY STAR® certified' },
158
+ { id: 'f2', type: 'text', value: 'PrintShield™ finish resists fingerprints and smudges' },
159
+ { id: 'f3', type: 'text', value: 'Interior LED lighting' },
160
+ ],
161
+ },
162
+ // History tab (tab: 'history') — event timeline; each event is a history card.
163
+ {
164
+ id: 'hist-added',
165
+ type: 'history',
166
+ name: 'Added Refrigerator',
167
+ value: '',
168
+ tab: 'history',
169
+ label: '01 23 2017',
170
+ accentColor: '#1E6388',
171
+ children: [
172
+ { id: 'ha-img', type: 'images', value: images[0] },
173
+ { id: 'ha-brand', type: 'text', name: 'Brand', value: 'Kitchen Aid' },
174
+ { id: 'ha-model', type: 'text', name: 'Model#', value: 'KRFC300ESS' },
175
+ { id: 'ha-rcpt', type: 'currency', name: 'Receipt', icon: 'pdf', value: '3125.12' },
176
+ ],
177
+ },
178
+ {
179
+ id: 'hist-service',
180
+ type: 'history',
181
+ name: 'Service Record',
182
+ value: 'Acme Appliance Repair',
183
+ tab: 'history',
184
+ label: '01 15 2017',
185
+ accentColor: '#4E8A6B',
186
+ children: [
187
+ {
188
+ id: 'hs-logo',
189
+ type: 'images',
190
+ value: "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='48' height='48'><rect width='48' height='48' fill='%23E4E4E4'/><text x='24' y='28' font-family='Arial, sans-serif' font-size='9' fill='%23525458' text-anchor='middle'>Logo</text></svg>",
191
+ },
192
+ { id: 'hs-a1', type: 'text', value: '123 South First Avenue' },
193
+ { id: 'hs-a2', type: 'text', value: 'Suite 431' },
194
+ { id: 'hs-a3', type: 'text', value: 'Austin, TX 78732' },
195
+ { id: 'hs-a4', type: 'text', value: '512 365 5541' },
196
+ { id: 'hs-inv', type: 'currency', name: 'Invoice', icon: 'pdf', value: '345.12' },
197
+ ],
198
+ },
199
+ ];
200
+ export default {
201
+ title: 'Components/HomeItems/ViewingHomeItemPanel',
202
+ component: ViewingHomeItemPanel,
203
+ };
204
+ export const Assembled = () => (_jsxs(Drawer, { isOpen: true, onClose: () => undefined, placement: "right", size: "md", children: [_jsx(DrawerOverlay, {}), _jsx(ViewingHomeItemPanel, { form: report, onClick: () => undefined, onClose: () => undefined, onEdit: () => undefined })] }));
@@ -0,0 +1,18 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { HomiPresenceI } from '../../interfaces';
3
+ declare const _default: Meta<HomiPresenceI>;
4
+ export default _default;
5
+ export declare const Guiding: {
6
+ (args: HomiPresenceI): import("react/jsx-runtime").JSX.Element;
7
+ args: {
8
+ state: string;
9
+ label: string;
10
+ };
11
+ };
12
+ export declare const Working: {
13
+ (args: HomiPresenceI): import("react/jsx-runtime").JSX.Element;
14
+ args: {
15
+ state: string;
16
+ label: string;
17
+ };
18
+ };
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from '@chakra-ui/react';
3
+ import { HomiPresence } from '../../components';
4
+ export default {
5
+ title: 'Components/Homi/HomiPresence',
6
+ component: HomiPresence,
7
+ };
8
+ export const Guiding = (args) => (_jsx(Box, { p: "base", children: _jsx(HomiPresence, Object.assign({}, args)) }));
9
+ Guiding.args = { state: 'guiding', label: 'Homi' };
10
+ export const Working = (args) => (_jsx(Box, { p: "base", children: _jsx(HomiPresence, Object.assign({}, args)) }));
11
+ Working.args = { state: 'working', label: 'Homi' };
@@ -0,0 +1,4 @@
1
+ import { Meta } from '@storybook/react';
2
+ declare const _default: Meta;
3
+ export default _default;
4
+ export declare const Default: () => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from '@chakra-ui/react';
3
+ import { HomiVoice } from '../../components';
4
+ export default {
5
+ title: 'Components/Homi/HomiVoice',
6
+ component: HomiVoice,
7
+ };
8
+ export const Default = () => (_jsx(Box, { p: "base", maxW: "360px", children: _jsxs(Text, { fontSize: "lg", children: ["Hi John \u2014 ", _jsx(HomiVoice, { fontWeight: "600", children: "let's set up your Homefile." })] }) }));
@@ -0,0 +1,10 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { ProgressBarI } from '../../interfaces';
3
+ declare const _default: Meta<ProgressBarI>;
4
+ export default _default;
5
+ export declare const Default: {
6
+ (args: ProgressBarI): import("react/jsx-runtime").JSX.Element;
7
+ args: {
8
+ value: number;
9
+ };
10
+ };
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from '@chakra-ui/react';
3
+ import { ProgressBar } from '../../components';
4
+ export default {
5
+ title: 'Components/Homi/ProgressBar',
6
+ component: ProgressBar,
7
+ };
8
+ export const Default = (args) => (_jsx(Box, { p: "base", w: "360px", children: _jsx(ProgressBar, Object.assign({}, args)) }));
9
+ Default.args = { value: 0.4 };
@@ -0,0 +1,19 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { RevealValueCardI } from '../../interfaces';
3
+ declare const _default: Meta<RevealValueCardI>;
4
+ export default _default;
5
+ export declare const Reveal: {
6
+ (args: RevealValueCardI): import("react/jsx-runtime").JSX.Element;
7
+ args: {
8
+ value: number;
9
+ valuePrefix: string;
10
+ facts: {
11
+ label: string;
12
+ value: string;
13
+ }[];
14
+ subvals: {
15
+ label: string;
16
+ value: string;
17
+ }[];
18
+ };
19
+ };
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from '@chakra-ui/react';
3
+ import { RevealValueCard } from '../../components';
4
+ export default {
5
+ title: 'Components/Homi/RevealValueCard',
6
+ component: RevealValueCard,
7
+ };
8
+ export const Reveal = (args) => (_jsx(Box, { p: "base", maxW: "480px", children: _jsx(RevealValueCard, Object.assign({}, args)) }));
9
+ Reveal.args = {
10
+ value: 512000,
11
+ valuePrefix: '$',
12
+ facts: [
13
+ { label: 'Year built', value: '1998' },
14
+ { label: 'Sq ft', value: '2,340' },
15
+ { label: 'Beds', value: '4' },
16
+ { label: 'Baths', value: '3' },
17
+ ],
18
+ subvals: [
19
+ { label: 'Land', value: '$180,000' },
20
+ { label: 'Improvements', value: '$332,000' },
21
+ ],
22
+ };
@@ -0,0 +1,5 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { StaggerRevealI } from '../../interfaces';
3
+ declare const _default: Meta<StaggerRevealI>;
4
+ export default _default;
5
+ export declare const Default: (args: StaggerRevealI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box, Stack, Text } from '@chakra-ui/react';
3
+ import { StaggerReveal } from '../../components';
4
+ export default {
5
+ title: 'Components/Homi/StaggerReveal',
6
+ component: StaggerReveal,
7
+ };
8
+ export const Default = (args) => (_jsx(Box, { p: "base", maxW: "360px", children: _jsx(StaggerReveal, Object.assign({}, args, { children: _jsx(Stack, { spacing: "3", children: ['First fact', 'Second fact', 'Third fact', 'Fourth fact'].map((f) => (_jsx(Box, { bg: "lightBlue.1", p: "3", borderRadius: "8px", children: _jsx(Text, { children: f }) }, f))) }) })) }));
@@ -0,0 +1,10 @@
1
+ import { Meta } from '@storybook/react';
2
+ import { InlineEditFieldI } from '../../interfaces';
3
+ declare const _default: Meta<InlineEditFieldI>;
4
+ export default _default;
5
+ export declare const Default: {
6
+ (args: InlineEditFieldI): import("react/jsx-runtime").JSX.Element;
7
+ args: {
8
+ value: string;
9
+ };
10
+ };
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Box } from '@chakra-ui/react';
3
+ import { action } from '@storybook/addon-actions';
4
+ import { InlineEditField } from '../../components';
5
+ export default {
6
+ title: 'Components/Inputs/InlineEditField',
7
+ component: InlineEditField,
8
+ args: { onSave: (value) => action('onSave')(value) },
9
+ };
10
+ export const Default = (args) => (_jsx(Box, { p: "base", maxW: "360px", children: _jsx(InlineEditField, Object.assign({}, args)) }));
11
+ Default.args = { value: 'The Edmunds' };
@@ -14,5 +14,5 @@ export const MyProfilePanelComponent = () => {
14
14
  const handleCloseNewCreditCardPanel = () => setIsNewCreditCardPanelOpen(false);
15
15
  const handleOpenNewCreditCardPanel = () => setIsNewCreditCardPanelOpen(true);
16
16
  const handleError = () => setHasError(true);
17
- return (_jsxs(_Fragment, { children: [_jsx(RightPanel, { isOpen: true, onClose: action('onCloseClick'), children: _jsxs(MyProfilePanel, { children: [_jsx(MyProfileHeader, { onClose: action('onCloseClick') }), _jsx(MyProfileBody, { isLoading: false, account: _jsxs(_Fragment, { children: [_jsx(ActiveSubscription, { nextCharge: "2024-12-01", subscriptionPrice: 36, totalStorage: 2, totalUsed: 1, availableStorage: 200, state: 'trial' }), _jsx(Divider, { width: "calc(100% - 26px)", mx: "auto" }), _jsx(MonthlyCharge, { additionalPrice: 36, monthlyCharge: 36, monthDate: "03/01/2023", nextCharge: "01/12/2024", taxPercentage: 8.5, taxValue: 3.06, subtotal: 36.0 }), _jsx(CancelAccount, { label: "Contact Homefile", onClick: action('onCancelAccountClick') })] }), details: _jsxs(_Fragment, { children: [_jsx(UserDetails, { email: "gary.edmunds@gmail.com", firstName: "Gary", lastName: "Edmunds", onSave: action('onSaveClick'), bg: "#4CC35A" }), _jsx(TwoFactorSetting, { email: "gary.edmunds@gmail.com", sms: "2032409108", onChange: action('on2FAChangeClick'), onSave: action('onSaveClick'), defaultValue: "email", twoFactor: 'active' }), _jsx(HomiSms, { sms: "2032409108", onChange: action('onHomiSmsChange'), onSave: action('onHomiSmsSave') })] }), payment: _jsxs(Box, { bg: "lightBlue.2", h: "inherit", children: [_jsx(CreditCardContainer, { cardNumber: "1234 5678 9012 3456", brand: "visa", onAddCard: action('onAddCard'), onDeleteCard: handleOpenNewCreditCardPanel, onSubmit: (data) => action('onDeleteCard')(data), cardHolder: "Gary Edmunds", cvv: "123", expirationMonth: "12", expirationYear: "2024" }), _jsx(PaymentReceipts, { receipts: receiptsMock, menuItems: menuMock })] }), rolePermissions: _jsx(RolePermissionsTab, { selected: featuresSelectedMock, onSelect: action('onSelect') }) })] }) }), _jsx(RightPanel, { isOpen: isNewCreditCardPanelOpen, onClose: handleCloseNewCreditCardPanel, children: _jsxs(MyProfilePanel, { children: [_jsx(MyProfileHeader, { onClose: handleCloseNewCreditCardPanel }), _jsxs(DrawerBody, { p: "0", children: [_jsx(NewCreditCardHeader, { onClick: handleCloseNewCreditCardPanel }), hasError && _jsx(CreditCardError, {}), _jsx(NewCreditCard, { hasError: hasError, onSubmit: handleError })] })] }) })] }));
17
+ return (_jsxs(_Fragment, { children: [_jsx(RightPanel, { isOpen: true, onClose: action('onCloseClick'), children: _jsxs(MyProfilePanel, { children: [_jsx(MyProfileHeader, { onClose: action('onCloseClick') }), _jsx(MyProfileBody, { isLoading: false, account: _jsxs(_Fragment, { children: [_jsx(ActiveSubscription, { nextCharge: "2024-12-01", subscriptionPrice: 36, totalStorage: 2, totalUsed: 1, availableStorage: 200, state: 'trial' }), _jsx(Divider, { width: "calc(100% - 26px)", mx: "auto" }), _jsx(MonthlyCharge, { additionalPrice: 36, monthlyCharge: 36, monthDate: "03/01/2023", nextCharge: "01/12/2024", taxPercentage: 8.5, taxValue: 3.06, subtotal: 36.0 }), _jsx(CancelAccount, { label: "Contact Homefile", onClick: action('onCancelAccountClick') })] }), details: _jsxs(_Fragment, { children: [_jsx(UserDetails, { email: "gary.edmunds@gmail.com", firstName: "Gary", lastName: "Edmunds", onSave: action('onSaveClick'), bg: "#4CC35A" }), _jsx(TwoFactorSetting, { email: "gary.edmunds@gmail.com", sms: "2032409108", onChange: action('on2FAChangeClick'), onSave: action('onSaveClick'), defaultValue: "email", twoFactor: 'active' }), _jsx(HomiSms, { phone: "2032409108", onChange: action('onHomiSmsChange'), onSave: action('onHomiSmsSave') })] }), payment: _jsxs(Box, { bg: "lightBlue.2", h: "inherit", children: [_jsx(CreditCardContainer, { cardNumber: "1234 5678 9012 3456", brand: "visa", onAddCard: action('onAddCard'), onDeleteCard: handleOpenNewCreditCardPanel, onSubmit: (data) => action('onDeleteCard')(data), cardHolder: "Gary Edmunds", cvv: "123", expirationMonth: "12", expirationYear: "2024" }), _jsx(PaymentReceipts, { receipts: receiptsMock, menuItems: menuMock })] }), rolePermissions: _jsx(RolePermissionsTab, { selected: featuresSelectedMock, onSelect: action('onSelect') }) })] }) }), _jsx(RightPanel, { isOpen: isNewCreditCardPanelOpen, onClose: handleCloseNewCreditCardPanel, children: _jsxs(MyProfilePanel, { children: [_jsx(MyProfileHeader, { onClose: handleCloseNewCreditCardPanel }), _jsxs(DrawerBody, { p: "0", children: [_jsx(NewCreditCardHeader, { onClick: handleCloseNewCreditCardPanel }), hasError && _jsx(CreditCardError, {}), _jsx(NewCreditCard, { hasError: hasError, onSubmit: handleError })] })] }) })] }));
18
18
  };
@@ -5,12 +5,13 @@ export default _default;
5
5
  export declare const HomiSmsEnabledComponent: {
6
6
  (args: HomiSmsI): import("react/jsx-runtime").JSX.Element;
7
7
  args: {
8
- sms: string;
8
+ enabled: boolean;
9
+ phone: string;
9
10
  };
10
11
  };
11
12
  export declare const HomiSmsDisabledComponent: {
12
13
  (args: HomiSmsI): import("react/jsx-runtime").JSX.Element;
13
14
  args: {
14
- sms: string;
15
+ phone: string;
15
16
  };
16
17
  };
@@ -12,9 +12,10 @@ export default {
12
12
  };
13
13
  export const HomiSmsEnabledComponent = (args) => (_jsx(Box, { w: ['full', 'md'], p: "base", children: _jsx(HomiSms, Object.assign({}, args)) }));
14
14
  HomiSmsEnabledComponent.args = {
15
- sms: '512.806.5011',
15
+ enabled: true,
16
+ phone: '5128065011',
16
17
  };
17
18
  export const HomiSmsDisabledComponent = (args) => (_jsx(HomiSmsEnabledComponent, Object.assign({}, args)));
18
19
  HomiSmsDisabledComponent.args = {
19
- sms: '512.806.5011',
20
+ phone: '5128065011',
20
21
  };
@@ -2,4 +2,13 @@ import { Meta } from '@storybook/react';
2
2
  import { ControlledWizardI } from '../../interfaces';
3
3
  declare const _default: Meta<ControlledWizardI>;
4
4
  export default _default;
5
+ /**
6
+ * Conversational New-Home setup flow, composed from existing components:
7
+ * 1 Address (+ trimmed consent) → conversational TextInput + Checkbox/Collapse
8
+ * 2 Searching → SearchRecords
9
+ * 3 Confirm the record → ConfirmPropertyBody
10
+ * 4 Reveal + name (editable) → TextInput + WizardValueSummaryBody
11
+ * 5 Success / hand-off → conversational, "Help me learn the basics →"
12
+ * Bold left headlines, white throughout, directional (Typeform) transition.
13
+ */
5
14
  export declare const ControlledWizardComponent: () => import("react/jsx-runtime").JSX.Element;