@homefile/components-v2 1.0.15 → 1.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.
Files changed (176) hide show
  1. package/dist/assets/images/index.d.ts +3 -1
  2. package/dist/assets/images/index.js +3 -1
  3. package/dist/assets/images/index.ts +4 -0
  4. package/dist/assets/images/sms.svg +21 -0
  5. package/dist/assets/images/social.svg +10 -0
  6. package/dist/assets/locales/en/index.json +29 -1
  7. package/dist/components/contacts/ContactCard.d.ts +1 -1
  8. package/dist/components/contacts/ContactCard.js +2 -2
  9. package/dist/components/contacts/ContactCardHeader.d.ts +1 -1
  10. package/dist/components/contacts/ContactCardHeader.js +5 -4
  11. package/dist/components/contacts/ContactsContent.d.ts +1 -1
  12. package/dist/components/contacts/ContactsContent.js +2 -2
  13. package/dist/components/contacts/ShareContactPopover.d.ts +2 -0
  14. package/dist/components/contacts/ShareContactPopover.js +32 -0
  15. package/dist/components/contacts/index.d.ts +2 -0
  16. package/dist/components/contacts/index.js +2 -0
  17. package/dist/components/contacts/shareContactForms/ShareContactByEmail.d.ts +2 -0
  18. package/dist/components/contacts/shareContactForms/ShareContactByEmail.js +21 -0
  19. package/dist/components/contacts/shareContactForms/index.d.ts +1 -0
  20. package/dist/components/contacts/shareContactForms/index.js +1 -0
  21. package/dist/components/folderPanel/displayFiles/GridFile.js +1 -1
  22. package/dist/components/folderPanel/displayFiles/IconMenuWithMove.js +1 -1
  23. package/dist/components/folderPanel/displayFiles/ListFile.js +1 -1
  24. package/dist/components/folderPanel/displayFiles/MoveModal.js +1 -1
  25. package/dist/components/forms/dynamicForm/HiddenField.d.ts +1 -1
  26. package/dist/components/forms/dynamicForm/HiddenField.js +7 -2
  27. package/dist/components/headers/TabsHeader.js +1 -1
  28. package/dist/components/homeBoard/HomeBoard.js +1 -1
  29. package/dist/components/homeBoard/HomeCard.js +1 -1
  30. package/dist/components/homeSummary/DocumentMenu.js +1 -1
  31. package/dist/components/icons/ShareIcon.d.ts +4 -0
  32. package/dist/components/icons/ShareIcon.js +5 -0
  33. package/dist/components/icons/index.d.ts +1 -0
  34. package/dist/components/icons/index.js +1 -0
  35. package/dist/components/launchpad/IconMenu.js +1 -1
  36. package/dist/components/myHomes/MyHomeCard.js +1 -1
  37. package/dist/components/myHomes/MyHomes.js +1 -1
  38. package/dist/components/myProfile/MyProfileBody.d.ts +1 -1
  39. package/dist/components/myProfile/MyProfileBody.js +6 -2
  40. package/dist/components/myProfile/index.d.ts +1 -0
  41. package/dist/components/myProfile/index.js +1 -0
  42. package/dist/components/myProfile/permissions/ActionCheckbox.d.ts +2 -0
  43. package/dist/components/myProfile/permissions/ActionCheckbox.js +6 -0
  44. package/dist/components/myProfile/permissions/ActionLabel.d.ts +5 -0
  45. package/dist/components/myProfile/permissions/ActionLabel.js +17 -0
  46. package/dist/components/myProfile/permissions/PermissionsBanner.d.ts +5 -0
  47. package/dist/components/myProfile/permissions/PermissionsBanner.js +23 -0
  48. package/dist/components/myProfile/permissions/RoleButton.d.ts +2 -0
  49. package/dist/components/myProfile/permissions/RoleButton.js +11 -0
  50. package/dist/components/myProfile/permissions/RolePermissionsTab.d.ts +2 -0
  51. package/dist/components/myProfile/permissions/RolePermissionsTab.js +19 -0
  52. package/dist/components/myProfile/permissions/index.d.ts +5 -0
  53. package/dist/components/myProfile/permissions/index.js +5 -0
  54. package/dist/components/overlay/Overlay.d.ts +1 -1
  55. package/dist/components/overlay/Overlay.js +2 -2
  56. package/dist/components/rooms/GroupCard.d.ts +1 -1
  57. package/dist/components/rooms/GroupCard.js +3 -3
  58. package/dist/components/rooms/ItemCard.d.ts +1 -1
  59. package/dist/components/rooms/ItemCard.js +2 -2
  60. package/dist/components/sendDocument/RecipientCard.js +1 -1
  61. package/dist/components/sharedHomePanel/ShareHomeContactList.js +1 -1
  62. package/dist/helpers/HomeRoles.helper.d.ts +3 -1
  63. package/dist/helpers/HomeRoles.helper.js +6 -1
  64. package/dist/helpers/homeAssistant/HomeAssistant.helper.js +6 -7
  65. package/dist/helpers/myProfile/RolePermissions.helper.d.ts +2 -0
  66. package/dist/helpers/myProfile/RolePermissions.helper.js +72 -0
  67. package/dist/helpers/myProfile/index.d.ts +1 -0
  68. package/dist/helpers/myProfile/index.js +1 -0
  69. package/dist/hooks/myProfile/index.d.ts +1 -0
  70. package/dist/hooks/myProfile/index.js +1 -0
  71. package/dist/hooks/myProfile/useRolePermissionsTab.d.ts +11 -0
  72. package/dist/hooks/myProfile/useRolePermissionsTab.js +68 -0
  73. package/dist/index.d.ts +2 -2
  74. package/dist/index.js +2 -2
  75. package/dist/interfaces/contacts/ContactCard.interface.d.ts +3 -1
  76. package/dist/interfaces/contacts/ContactCardHeader.interface.d.ts +3 -1
  77. package/dist/interfaces/contacts/ContactsContent.interface.d.ts +4 -2
  78. package/dist/interfaces/contacts/ShareContactByEmail.interface.d.ts +11 -0
  79. package/dist/interfaces/contacts/ShareContactByEmail.interface.js +1 -0
  80. package/dist/interfaces/contacts/ShareContactPopover.interface.d.ts +8 -0
  81. package/dist/interfaces/contacts/ShareContactPopover.interface.js +1 -0
  82. package/dist/interfaces/contacts/index.d.ts +2 -0
  83. package/dist/interfaces/contacts/index.js +2 -0
  84. package/dist/interfaces/forms/dynamicForm/HiddenField.interface.d.ts +2 -0
  85. package/dist/interfaces/myProfile/MyProfileBody.interface.d.ts +5 -4
  86. package/dist/interfaces/myProfile/index.d.ts +1 -0
  87. package/dist/interfaces/myProfile/index.js +1 -0
  88. package/dist/interfaces/myProfile/permissions/ActionCheckbox.interface.d.ts +8 -0
  89. package/dist/interfaces/myProfile/permissions/ActionCheckbox.interface.js +1 -0
  90. package/dist/interfaces/myProfile/permissions/RoleButton.interface.d.ts +7 -0
  91. package/dist/interfaces/myProfile/permissions/RoleButton.interface.js +1 -0
  92. package/dist/interfaces/myProfile/permissions/RolePermissionsTab.interface.d.ts +12 -0
  93. package/dist/interfaces/myProfile/permissions/RolePermissionsTab.interface.js +1 -0
  94. package/dist/interfaces/myProfile/permissions/index.d.ts +3 -0
  95. package/dist/interfaces/myProfile/permissions/index.js +3 -0
  96. package/dist/interfaces/overlay/Overlay.interface.d.ts +2 -1
  97. package/dist/interfaces/rooms/GroupCard.interface.d.ts +1 -0
  98. package/dist/interfaces/rooms/ItemCard.interface.d.ts +1 -0
  99. package/dist/mocks/myProfile/Permissions.mock.d.ts +2 -0
  100. package/dist/mocks/myProfile/Permissions.mock.js +66 -0
  101. package/dist/mocks/myProfile/index.d.ts +1 -0
  102. package/dist/mocks/myProfile/index.js +1 -0
  103. package/dist/stories/assets/Illustrations.stories.js +2 -2
  104. package/dist/stories/myProfile/MyProfilePanel.stories.js +3 -4
  105. package/dist/stories/myProfile/permissions/RolePermissionsTab.stories.d.ts +5 -0
  106. package/dist/stories/myProfile/permissions/RolePermissionsTab.stories.js +16 -0
  107. package/dist/theme/colors.d.ts +1 -0
  108. package/dist/theme/colors.js +1 -0
  109. package/package.json +1 -1
  110. package/src/assets/images/index.ts +4 -0
  111. package/src/assets/images/sms.svg +21 -0
  112. package/src/assets/images/social.svg +10 -0
  113. package/src/assets/locales/en/index.json +29 -1
  114. package/src/components/contacts/ContactCard.tsx +13 -2
  115. package/src/components/contacts/ContactCardHeader.tsx +33 -8
  116. package/src/components/contacts/ContactsContent.tsx +4 -0
  117. package/src/components/contacts/ShareContactPopover.tsx +106 -0
  118. package/src/components/contacts/index.ts +3 -1
  119. package/src/components/contacts/shareContactForms/ShareContactByEmail.tsx +50 -0
  120. package/src/components/contacts/shareContactForms/index.ts +1 -0
  121. package/src/components/folderPanel/displayFiles/GridFile.tsx +1 -0
  122. package/src/components/folderPanel/displayFiles/IconMenuWithMove.tsx +1 -1
  123. package/src/components/folderPanel/displayFiles/ListFile.tsx +1 -0
  124. package/src/components/folderPanel/displayFiles/MoveModal.tsx +1 -1
  125. package/src/components/forms/dynamicForm/HiddenField.tsx +16 -2
  126. package/src/components/headers/TabsHeader.tsx +1 -0
  127. package/src/components/homeBoard/HomeBoard.tsx +1 -0
  128. package/src/components/homeBoard/HomeCard.tsx +1 -0
  129. package/src/components/homeSummary/DocumentMenu.tsx +1 -1
  130. package/src/components/icons/ShareIcon.tsx +74 -0
  131. package/src/components/icons/index.ts +1 -0
  132. package/src/components/launchpad/IconMenu.tsx +1 -1
  133. package/src/components/myHomes/MyHomeCard.tsx +12 -8
  134. package/src/components/myHomes/MyHomes.tsx +1 -1
  135. package/src/components/myProfile/MyProfileBody.tsx +6 -1
  136. package/src/components/myProfile/index.ts +1 -0
  137. package/src/components/myProfile/permissions/ActionCheckbox.tsx +22 -0
  138. package/src/components/myProfile/permissions/ActionLabel.tsx +18 -0
  139. package/src/components/myProfile/permissions/PermissionsBanner.tsx +35 -0
  140. package/src/components/myProfile/permissions/RoleButton.tsx +39 -0
  141. package/src/components/myProfile/permissions/RolePermissionsTab.tsx +111 -0
  142. package/src/components/myProfile/permissions/index.ts +5 -0
  143. package/src/components/overlay/Overlay.tsx +2 -0
  144. package/src/components/rooms/GroupCard.tsx +3 -1
  145. package/src/components/rooms/ItemCard.tsx +2 -0
  146. package/src/components/sendDocument/RecipientCard.tsx +1 -0
  147. package/src/components/sharedHomePanel/ShareHomeContactList.tsx +1 -1
  148. package/src/helpers/HomeRoles.helper.ts +16 -1
  149. package/src/helpers/homeAssistant/HomeAssistant.helper.tsx +6 -7
  150. package/src/helpers/myProfile/RolePermissions.helper.ts +74 -0
  151. package/src/helpers/myProfile/index.ts +1 -0
  152. package/src/hooks/myProfile/index.ts +2 -1
  153. package/src/hooks/myProfile/useRolePermissionsTab.ts +112 -0
  154. package/src/index.ts +2 -1
  155. package/src/interfaces/contacts/ContactCard.interface.ts +3 -1
  156. package/src/interfaces/contacts/ContactCardHeader.interface.ts +4 -2
  157. package/src/interfaces/contacts/ContactsContent.interface.ts +5 -3
  158. package/src/interfaces/contacts/ShareContactByEmail.interface.ts +12 -0
  159. package/src/interfaces/contacts/ShareContactPopover.interface.ts +9 -0
  160. package/src/interfaces/contacts/index.ts +3 -1
  161. package/src/interfaces/forms/dynamicForm/HiddenField.interface.ts +2 -0
  162. package/src/interfaces/myProfile/MyProfileBody.interface.ts +5 -4
  163. package/src/interfaces/myProfile/index.ts +1 -0
  164. package/src/interfaces/myProfile/permissions/ActionCheckbox.interface.ts +9 -0
  165. package/src/interfaces/myProfile/permissions/RoleButton.interface.ts +8 -0
  166. package/src/interfaces/myProfile/permissions/RolePermissionsTab.interface.ts +19 -0
  167. package/src/interfaces/myProfile/permissions/index.ts +3 -0
  168. package/src/interfaces/overlay/Overlay.interface.ts +2 -1
  169. package/src/interfaces/rooms/GroupCard.interface.ts +1 -0
  170. package/src/interfaces/rooms/ItemCard.interface.ts +1 -0
  171. package/src/mocks/myProfile/Permissions.mock.ts +68 -0
  172. package/src/mocks/myProfile/index.ts +2 -1
  173. package/src/stories/assets/Illustrations.stories.tsx +4 -0
  174. package/src/stories/myProfile/MyProfilePanel.stories.tsx +8 -8
  175. package/src/stories/myProfile/permissions/RolePermissionsTab.stories.tsx +23 -0
  176. package/src/theme/colors.ts +1 -0
@@ -0,0 +1,17 @@
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
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import { Text } from '@chakra-ui/react';
14
+ export const ActionLabel = (_a) => {
15
+ var { label } = _a, props = __rest(_a, ["label"]);
16
+ return (_jsx(Text, Object.assign({ fontSize: "10px", fontWeight: "semibold", textTransform: "uppercase" }, props, { children: label })));
17
+ };
@@ -0,0 +1,5 @@
1
+ import { RoleType } from '../../../helpers';
2
+ export interface PermissionsBannerI {
3
+ role: RoleType;
4
+ }
5
+ export declare const PermissionsBanner: ({ role }: PermissionsBannerI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { t } from 'i18next';
3
+ import { homeRoles } from '../../../helpers';
4
+ import { Stack, Text } from '@chakra-ui/react';
5
+ export const PermissionsBanner = ({ role }) => {
6
+ const bgColor = homeRoles[role].bg;
7
+ const { title, description } = textsByRole[role];
8
+ return (_jsxs(Stack, { spacing: "1", bg: bgColor, px: "base", py: "6", children: [_jsx(Text, { fontWeight: "semibold", color: "neutral.white", children: title }), _jsx(Text, { color: "neutral.white", children: description })] }));
9
+ };
10
+ const textsByRole = {
11
+ member: {
12
+ title: t('myProfile.permissions.member.title'),
13
+ description: t('myProfile.permissions.member.description'),
14
+ },
15
+ contributor: {
16
+ title: t('myProfile.permissions.contributor.title'),
17
+ description: t('myProfile.permissions.contributor.description'),
18
+ },
19
+ manager: {
20
+ title: t('myProfile.permissions.manager.title'),
21
+ description: t('myProfile.permissions.manager.description'),
22
+ },
23
+ };
@@ -0,0 +1,2 @@
1
+ import { RoleButtonI } from '../../../interfaces';
2
+ export declare const RoleButton: ({ role, onClick, isSelected, showBorder, }: RoleButtonI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,11 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { homeRoles } from '../../../helpers';
3
+ import { Center, Text } from '@chakra-ui/react';
4
+ export const RoleButton = ({ role, onClick, isSelected, showBorder, }) => {
5
+ const bgColor = homeRoles[role].bg;
6
+ const borderColor = showBorder ? 'lightBlue.2' : 'transparent';
7
+ return (_jsx(Center, { as: "button", w: "62px", bg: isSelected ? 'lightGreen.1' : 'neutral.white', transition: "all 0.4s", _hover: {
8
+ bg: 'lightGreen.1',
9
+ cursor: 'pointer',
10
+ }, onClick: onClick, children: _jsx(Center, { py: "base", w: "40px", borderY: "1px solid", borderColor: borderColor, children: _jsx(Center, { bg: bgColor, borderRadius: "4px", h: "26px", w: "26px", children: _jsx(Text, { fontWeight: "semibold", color: 'neutral.white', fontSize: "md", textTransform: "uppercase", children: role.charAt(0).toUpperCase() }) }) }) }));
11
+ };
@@ -0,0 +1,2 @@
1
+ import { RolePermissionsTabI } from '../../../interfaces';
2
+ export declare const RolePermissionsTab: ({ selected, onSelect, }: RolePermissionsTabI) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { t } from 'i18next';
3
+ import { Box, Center, Flex, Stack, Text } from '@chakra-ui/react';
4
+ import { RoleButton, PermissionsBanner, ActionLabel, ActionCheckbox, } from '../..';
5
+ import { rolePermissions } from '../../../helpers';
6
+ import { useRolePermissionsTab } from '../../../hooks';
7
+ export const RolePermissionsTab = ({ selected, onSelect, }) => {
8
+ const { actions, callback, selectedRole, selectedActions, handleRoleChange, handleFeatureChange, handleActionChange, } = useRolePermissionsTab({ selected, onSelect });
9
+ return (_jsxs(Flex, { h: "100%", children: [_jsxs(Box, { bg: "neutral.white", children: [_jsx(RoleButton, { role: "member", isSelected: selectedRole === 'member', onClick: () => handleRoleChange('member'), showBorder: true }), _jsx(RoleButton, { role: "contributor", isSelected: selectedRole === 'contributor', onClick: () => handleRoleChange('contributor') }), _jsx(RoleButton, { role: "manager", isSelected: selectedRole === 'manager', onClick: () => handleRoleChange('manager'), showBorder: true })] }), _jsxs(Box, { width: "100%", children: [_jsx(PermissionsBanner, { role: selectedRole }), _jsx(Center, { bg: "lightBlue.6", py: "base", children: _jsxs(Flex, { w: "100%", children: [_jsxs(Flex, { flex: "1", gap: "base", justify: "flex-end", align: "start", children: [_jsx(ActionLabel, { label: t('myProfile.actions.can'), color: "neutral.white" }), _jsx(Box, { w: "1px", bg: "neutral.white", h: "100%" })] }), _jsx(Flex, { flex: "1", justify: "space-evenly", children: actions.map((action) => {
10
+ const disabledAllCheckbox = selectedRole === 'member' && action !== 'view';
11
+ return (_jsx(ActionCheckbox, { label: action, action: action, isChecked: selectedActions.includes(action), isDisabled: disabledAllCheckbox, onChange: handleActionChange }, action));
12
+ }) })] }) }), _jsx(Stack, { spacing: "base", py: "base", children: rolePermissions.map(({ id, label, permissions }) => {
13
+ return (_jsxs(Flex, { w: "100%", children: [_jsx(Flex, { flex: "1", children: _jsx(Text, { fontFamily: "secondary", ml: "base", children: label }) }), _jsx(Flex, { flex: "1", justify: "space-evenly", children: actions.map((action) => {
14
+ const isDisabled = !permissions[action].includes(selectedRole);
15
+ const isChecked = callback[selectedRole][action].includes(id);
16
+ return (_jsx(ActionCheckbox, { action: action, isChecked: isChecked, isDisabled: isDisabled, onChange: () => handleFeatureChange(action, id) }, action));
17
+ }) })] }, id));
18
+ }) })] })] }));
19
+ };
@@ -0,0 +1,5 @@
1
+ export * from './ActionLabel';
2
+ export * from './ActionCheckbox';
3
+ export * from './PermissionsBanner';
4
+ export * from './RoleButton';
5
+ export * from './RolePermissionsTab';
@@ -0,0 +1,5 @@
1
+ export * from './ActionLabel';
2
+ export * from './ActionCheckbox';
3
+ export * from './PermissionsBanner';
4
+ export * from './RoleButton';
5
+ export * from './RolePermissionsTab';
@@ -1,2 +1,2 @@
1
1
  import { OverlayI } from '../../interfaces';
2
- export declare const Overlay: ({ bg, showOverlay, ...props }: OverlayI) => import("react/jsx-runtime").JSX.Element | null;
2
+ export declare const Overlay: ({ bg, showOverlay, onClick, ...props }: OverlayI) => import("react/jsx-runtime").JSX.Element | null;
@@ -12,7 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import { Box, keyframes } from '@chakra-ui/react';
14
14
  export const Overlay = (_a) => {
15
- var { bg = '#fdfdfdca', showOverlay = true } = _a, props = __rest(_a, ["bg", "showOverlay"]);
15
+ var { bg = '#fdfdfdca', showOverlay = true, onClick } = _a, props = __rest(_a, ["bg", "showOverlay", "onClick"]);
16
16
  if (!showOverlay)
17
17
  return null;
18
18
  const fadeIn = keyframes({
@@ -20,5 +20,5 @@ export const Overlay = (_a) => {
20
20
  '100%': { opacity: 1 },
21
21
  });
22
22
  const animation = showOverlay && `${fadeIn} 0.2s ease-in-out`;
23
- return (_jsx(Box, Object.assign({ bg: bg, top: "0", left: "0", right: "0", bottom: "0", animation: animation }, props)));
23
+ return (_jsx(Box, Object.assign({ onClick: onClick, bg: bg, top: "0", left: "0", right: "0", bottom: "0", animation: animation }, props)));
24
24
  };
@@ -1,2 +1,2 @@
1
1
  import { GroupCardI } from '../../interfaces';
2
- export declare const GroupCard: ({ items, menuItems, onAddItem, onAddImage, onClickDelete, onClickDetails, title, totalAmount, disabled, ...props }: GroupCardI) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const GroupCard: ({ items, menuItems, onAddItem, onAddImage, onClickDelete, onClickDetails, title, totalAmount, disabled, itemsDisabled, ...props }: GroupCardI) => import("react/jsx-runtime").JSX.Element;
@@ -18,9 +18,9 @@ import { useGroupCard } from '../../hooks';
18
18
  import { receiptOrigins } from '../../helpers';
19
19
  const storageUrl = import.meta.env.VITE_STORAGE_URL;
20
20
  export const GroupCard = (_a) => {
21
- var { items, menuItems, onAddItem, onAddImage, onClickDelete, onClickDetails, title, totalAmount, disabled } = _a, props = __rest(_a, ["items", "menuItems", "onAddItem", "onAddImage", "onClickDelete", "onClickDetails", "title", "totalAmount", "disabled"]);
21
+ var { items, menuItems, onAddItem, onAddImage, onClickDelete, onClickDetails, title, totalAmount, disabled, itemsDisabled } = _a, props = __rest(_a, ["items", "menuItems", "onAddItem", "onAddImage", "onClickDelete", "onClickDetails", "title", "totalAmount", "disabled", "itemsDisabled"]);
22
22
  const { filteredResults, handleAddItem, handleChange, isItemsEmpty, searchValue, totalAmountFormatted, } = useGroupCard({ items, onAddItem, title, totalAmount });
23
- return (_jsx(TileTooltip, { label: title, children: _jsxs(Box, { backgroundColor: "lightBlue.1", boxShadow: "base", w: "100%", children: [_jsx(GroupCardHeader, { menuItems: menuItems, title: title, totalAmount: totalAmountFormatted }), _jsxs(Flex, { justify: items.length >= 10 ? 'space-between' : 'flex-end', pl: "base", my: "base", align: "center", gap: "base", children: [items.length >= 10 && (_jsx(SearchInput, { value: searchValue, onChange: handleChange })), _jsx(LeftButtonAnimated, { onClick: handleAddItem, label: t('addHomeItem.btnLabel'), disabled: disabled, id: "addingItems" })] }), _jsxs(Box, { pb: "10", px: "base", children: [isItemsEmpty && _jsx(AddItemCard, { onClick: handleAddItem }), !isItemsEmpty && (_jsx(Wrap, { spacing: "base", children: filteredResults.map(({ _id, title, report, images, receipt, metadata, type, subType, room, }) => {
23
+ return (_jsx(TileTooltip, { label: title, children: _jsxs(Box, { backgroundColor: "lightBlue.1", boxShadow: "base", w: "100%", children: [_jsx(GroupCardHeader, { menuItems: menuItems, title: title, totalAmount: totalAmountFormatted }), _jsxs(Flex, { justify: items.length >= 10 ? 'space-between' : 'flex-end', pl: "base", my: "base", align: "center", gap: "base", children: [items.length >= 10 && (_jsx(SearchInput, { value: searchValue, onChange: handleChange })), _jsx(LeftButtonAnimated, { onClick: handleAddItem, label: t('addHomeItem.btnLabel'), disabled: disabled, id: "addingItems" })] }), _jsxs(Box, { pb: "10", px: "base", children: [isItemsEmpty && _jsx(AddItemCard, { disabled: itemsDisabled, onClick: handleAddItem }), !isItemsEmpty && (_jsx(Wrap, { spacing: "base", children: filteredResults.map(({ _id, title, report, images, receipt, metadata, type, subType, room, }) => {
24
24
  var _a, _b, _c, _d;
25
25
  const reportData = {
26
26
  _id,
@@ -47,6 +47,6 @@ export const GroupCard = (_a) => {
47
47
  onAddImage(fileMapped);
48
48
  }
49
49
  };
50
- return (_jsx(ItemCard, Object.assign({ brandLabel: brand, imageUrl: hasImage ? imageUrl : storeImage, onAddImage: handleImage, onClickDelete: onClickDelete, onClickDetails: onClickDetails }, props, reportData), _id));
50
+ return (_jsx(ItemCard, Object.assign({ brandLabel: brand, imageUrl: hasImage ? imageUrl : storeImage, onAddImage: handleImage, onClickDelete: onClickDelete, onClickDetails: onClickDetails, disabled: itemsDisabled }, props, reportData), _id));
51
51
  }) }))] })] }) }));
52
52
  };
@@ -1,2 +1,2 @@
1
1
  import { ItemCardI } from '../../interfaces';
2
- export declare const ItemCard: ({ brandLabel, imageUrl, onAddImage, onClickDelete, onClickDetails, onMove, _id, title, subType, room, report, type, onSave, ...props }: ItemCardI) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const ItemCard: ({ brandLabel, imageUrl, onAddImage, onClickDelete, onClickDetails, onMove, _id, title, subType, room, report, type, disabled, onSave, ...props }: ItemCardI) => import("react/jsx-runtime").JSX.Element;
@@ -16,7 +16,7 @@ import { AddItemImage, MoreHorizontal, MoveModal, IconMenuWithMove, } from '..';
16
16
  import { getImageAltText } from '../../utils';
17
17
  import { useState } from 'react';
18
18
  export const ItemCard = (_a) => {
19
- var { brandLabel, imageUrl, onAddImage, onClickDelete, onClickDetails, onMove, _id = '', title, subType, room, report, type, onSave } = _a, props = __rest(_a, ["brandLabel", "imageUrl", "onAddImage", "onClickDelete", "onClickDetails", "onMove", "_id", "title", "subType", "room", "report", "type", "onSave"]);
19
+ var { brandLabel, imageUrl, onAddImage, onClickDelete, onClickDetails, onMove, _id = '', title, subType, room, report, type, disabled, onSave } = _a, props = __rest(_a, ["brandLabel", "imageUrl", "onAddImage", "onClickDelete", "onClickDetails", "onMove", "_id", "title", "subType", "room", "report", "type", "disabled", "onSave"]);
20
20
  const alt = getImageAltText(imageUrl);
21
21
  const handleAddImage = (event) => {
22
22
  const files = event.target.files;
@@ -44,5 +44,5 @@ export const ItemCard = (_a) => {
44
44
  }, children: [_jsx(Box, { textAlign: "right", w: "full", pr: "2", children: _jsx(IconMenuWithMove, { icon: _jsx(MoreHorizontal, { size: 26 }), itemForm: _id, menuItems: [
45
45
  { label: t('groups.menu.details'), handleClick: onClickDetails },
46
46
  { label: t('groups.menu.delete'), handleClick: onClickDelete },
47
- ], onMove: () => handleMove(reportData) }) }), _jsxs(Stack, { px: "base", align: "center", w: "8.75rem", h: "8.75rem", cursor: "pointer", pos: "relative", children: [_jsx(Box, { onClick: () => onClickDetails(_id), pos: "absolute", top: "0", right: "0", bottom: "0", left: "0" }), _jsx(Text, { fontSize: "xs", fontWeight: "medium", noOfLines: 1, textOverflow: "ellipsis", children: title === null || title === void 0 ? void 0 : title.toUpperCase() }), imageUrl ? (_jsx(Image, { src: imageUrl, alt: alt, boxSize: "4.2rem", objectFit: "cover" })) : (_jsx(AddItemImage, { onClick: handleAddImage })), brandLabel && (_jsx(Text, { textAlign: "center", noOfLines: 1, textOverflow: "ellipsis", fontSize: "xs", children: brandLabel }))] }), showMoveModal && (_jsx(MoveModal, Object.assign({}, props, { onSave: handleSave, onClose: () => setShowMoveModal(false), top: "100", left: "260" })))] }));
47
+ ], onMove: () => handleMove(reportData), disabled: disabled }) }), _jsxs(Stack, { px: "base", align: "center", w: "8.75rem", h: "8.75rem", cursor: "pointer", pos: "relative", children: [_jsx(Box, { onClick: () => onClickDetails(_id), pos: "absolute", top: "0", right: "0", bottom: "0", left: "0" }), _jsx(Text, { fontSize: "xs", fontWeight: "medium", noOfLines: 1, textOverflow: "ellipsis", children: title === null || title === void 0 ? void 0 : title.toUpperCase() }), imageUrl ? (_jsx(Image, { src: imageUrl, alt: alt, boxSize: "4.2rem", objectFit: "cover" })) : (_jsx(AddItemImage, { onClick: handleAddImage })), brandLabel && (_jsx(Text, { textAlign: "center", noOfLines: 1, textOverflow: "ellipsis", fontSize: "xs", children: brandLabel }))] }), showMoveModal && (_jsx(MoveModal, Object.assign({}, props, { onSave: handleSave, onClose: () => setShowMoveModal(false), top: "100", left: "260" })))] }));
48
48
  };
@@ -5,7 +5,7 @@ import { RecipientContent, RecipientHeader, IconMenu, MoreHorizontal, SelectInpu
5
5
  export const RecipientCard = ({ hasTitle = true, header, index, isDocument = false, isEditDisabled, menu, onEdit, recipient: { accountTypes, user }, }) => {
6
6
  var _a;
7
7
  const types = t('shareHome.accountTypes').split(',');
8
- return (_jsx(Container, { p: "2", position: "relative", children: _jsxs(Stack, { spacing: "4", children: [_jsxs(Flex, { justify: "space-between", align: "center", children: [hasTitle && (_jsx(Header, { header: header, recipient: { accountTypes, user }, isDocument: isDocument })), _jsxs(Flex, { gap: "1", align: "center", children: [!isEditDisabled && (_jsx(SelectInput, { handleClick: (accountType) => onEdit === null || onEdit === void 0 ? void 0 : onEdit({ accountType: accountType, user }), initialValue: accountTypes[0], variant: "accountType", items: types })), !!menu && (_jsx(IconMenu, { icon: _jsx(MoreHorizontal, { size: 32 }), menuItems: menu, itemForm: {
8
+ return (_jsx(Container, { p: "2", position: "relative", children: _jsxs(Stack, { spacing: "4", children: [_jsxs(Flex, { justify: "space-between", align: "center", children: [hasTitle && (_jsx(Header, { header: header, recipient: { accountTypes, user }, isDocument: isDocument })), _jsxs(Flex, { gap: "1", align: "center", children: [!isEditDisabled && (_jsx(SelectInput, { handleClick: (accountType) => onEdit === null || onEdit === void 0 ? void 0 : onEdit({ accountType: accountType, user }), initialValue: accountTypes[0], variant: "accountType", items: types })), !!menu && (_jsx(IconMenu, { icon: _jsx(MoreHorizontal, { size: 32 }), menuItems: menu, disabled: menu.length < 1, itemForm: {
9
9
  _id: user.email,
10
10
  name: (_a = user.firstName) !== null && _a !== void 0 ? _a : '',
11
11
  } }))] })] }), user && _jsx(RecipientContent, Object.assign({ index: index }, user))] }) }));
@@ -11,7 +11,7 @@ export const ShareHomeContactList = ({ contacts, onChange, onClick, onDone, onSa
11
11
  ? listButton1(onDone)
12
12
  : addEmailButton1(() => onSave(selectedContact), selectedContact.email === '');
13
13
  const button2 = isAddListSlide ? null : addEmailButton2(onDone);
14
- return (_jsxs(_Fragment, { children: [_jsxs(Container, { position: "absolute", top: "60px", left: "0", overflow: "hidden", zIndex: "6", w: ['full', '300px'], children: [_jsx(Box, { p: "base", children: _jsx(Text, { children: t('shareHome.contactList') }) }), _jsxs(Flex, { transition: "all 400ms", transform: `translateX(${isAddListSlide ? '0' : '-100%'})`, children: [_jsx(Box, { minW: ['full', '300px'], children: _jsx(ShareHomeAddedContacts, { contacts: filteredContacts, onClick: onClick, showingText: text, search: search, onAddEmail: handleAddEmail, onChange: handleSearch, onSelect: handleFilterByCategory, items: categories }) }), _jsx(Box, { minW: ['full', '300px'], children: _jsx(ShareHomeAddEmail, { contact: selectedContact, onBack: handleBack, onChange: onChange }) })] }), _jsx(Box, { boxShadow: `0 0 10px ${colors.gray['1']}`, py: "base", children: _jsx(FooterButtons, { button1: button1, button2: button2 }) })] }), _jsx(Overlay, { bg: "#00000040", showOverlay: true, position: "fixed", zIndex: "4" })] }));
14
+ return (_jsxs(_Fragment, { children: [_jsxs(Container, { position: "absolute", top: "60px", left: "0", overflow: "hidden", zIndex: "6", w: ['full', '300px'], children: [_jsx(Box, { p: "base", children: _jsx(Text, { children: t('shareHome.contactList') }) }), _jsxs(Flex, { transition: "all 400ms", transform: `translateX(${isAddListSlide ? '0' : '-100%'})`, children: [_jsx(Box, { minW: ['full', '300px'], children: _jsx(ShareHomeAddedContacts, { contacts: filteredContacts, onClick: onClick, showingText: text, search: search, onAddEmail: handleAddEmail, onChange: handleSearch, onSelect: handleFilterByCategory, items: categories }) }), _jsx(Box, { minW: ['full', '300px'], children: _jsx(ShareHomeAddEmail, { contact: selectedContact, onBack: handleBack, onChange: onChange }) })] }), _jsx(Box, { boxShadow: `0 0 10px ${colors.gray['1']}`, py: "base", children: _jsx(FooterButtons, { button1: button1, button2: button2 }) })] }), _jsx(Overlay, { bg: "overlay", showOverlay: true, position: "fixed", zIndex: "4" })] }));
15
15
  };
16
16
  const listButton1 = (onClick) => ({
17
17
  buttonStyle: 'secondaryFooter',
@@ -1,4 +1,6 @@
1
- export declare const homeRoleTypes: string[];
1
+ export type RoleType = 'guest' | 'member' | 'partner' | 'contributor' | 'manager' | 'homeowner';
2
+ export type ReducedRoleType = 'member' | 'contributor' | 'manager';
3
+ export declare const homeRoleTypes: RoleType[];
2
4
  export declare const homeRoles: {
3
5
  [key: string]: {
4
6
  [key: string]: string;
@@ -1,4 +1,9 @@
1
- export const homeRoleTypes = ['member', 'contributor', 'manager', 'homeowner'];
1
+ export const homeRoleTypes = [
2
+ 'member',
3
+ 'contributor',
4
+ 'manager',
5
+ 'homeowner',
6
+ ];
2
7
  export const homeRoles = {
3
8
  guest: {
4
9
  bg: 'teal.4',
@@ -1,28 +1,27 @@
1
- import { t } from 'i18next';
2
1
  import { Fire, House, LargeAppliances, Target, Temperature, Water, } from '../../assets/images';
3
2
  export const homeAssistantSteps = [
4
3
  {
5
- title: t('homeAssistant.steps.smoke'),
4
+ title: 'Smoke & CO2 detectors',
6
5
  icon: Fire,
7
6
  },
8
7
  {
9
- title: t('homeAssistant.steps.heating'),
8
+ title: 'Heating & Cooling',
10
9
  icon: Temperature,
11
10
  },
12
11
  {
13
- title: t('homeAssistant.steps.appliances'),
12
+ title: 'Appliances',
14
13
  icon: LargeAppliances,
15
14
  },
16
15
  {
17
- title: t('homeAssistant.steps.structure'),
16
+ title: 'Structure',
18
17
  icon: House,
19
18
  },
20
19
  {
21
- title: t('homeAssistant.steps.landscape'),
20
+ title: 'Landscape',
22
21
  icon: Water,
23
22
  },
24
23
  {
25
- title: t('homeAssistant.steps.goals'),
24
+ title: 'Goals',
26
25
  icon: Target,
27
26
  },
28
27
  ];
@@ -0,0 +1,2 @@
1
+ import { RolePermissionI } from '../../interfaces';
2
+ export declare const rolePermissions: RolePermissionI[];
@@ -0,0 +1,72 @@
1
+ export const rolePermissions = [
2
+ {
3
+ id: 'property-data',
4
+ label: 'Property Data',
5
+ permissions: {
6
+ view: ['member', 'contributor', 'manager'],
7
+ add: ['manager'],
8
+ edit: ['manager'],
9
+ delete: [],
10
+ },
11
+ },
12
+ // {
13
+ // id: 'financial-data',
14
+ // label: 'Financial Data',
15
+ // permissions: {
16
+ // view: ['member', 'contributor', 'manager'],
17
+ // add: ['contributor', 'manager'],
18
+ // edit: ['manager'],
19
+ // delete: ['manager'],
20
+ // },
21
+ // },
22
+ {
23
+ id: 'partners',
24
+ label: 'Partners',
25
+ permissions: {
26
+ view: ['member', 'contributor', 'manager'],
27
+ add: ['contributor', 'manager'],
28
+ edit: [],
29
+ delete: ['manager'],
30
+ },
31
+ },
32
+ // {
33
+ // id: 'folders',
34
+ // label: 'Folders',
35
+ // permissions: {
36
+ // view: ['member', 'contributor', 'manager'],
37
+ // add: ['manager'],
38
+ // edit: ['contributor', 'manager'],
39
+ // delete: ['manager'],
40
+ // },
41
+ // },
42
+ {
43
+ id: 'home-items',
44
+ label: 'Home items',
45
+ permissions: {
46
+ view: ['member', 'contributor', 'manager'],
47
+ add: ['contributor', 'manager'],
48
+ edit: ['manager'],
49
+ delete: ['manager'],
50
+ },
51
+ },
52
+ {
53
+ id: 'rooms',
54
+ label: 'Rooms',
55
+ permissions: {
56
+ view: ['member', 'contributor', 'manager'],
57
+ add: ['contributor', 'manager'],
58
+ edit: ['contributor', 'manager'],
59
+ delete: ['manager'],
60
+ },
61
+ },
62
+ {
63
+ id: 'rooms-categories',
64
+ label: 'Room Categories',
65
+ permissions: {
66
+ view: [],
67
+ add: ['contributor', 'manager'],
68
+ edit: ['contributor', 'manager'],
69
+ delete: ['contributor', 'manager'],
70
+ },
71
+ },
72
+ ];
@@ -1,2 +1,3 @@
1
1
  export * from './CreditCardBrands.helper';
2
2
  export * from './PlanOptions.helper';
3
+ export * from './RolePermissions.helper';
@@ -1,2 +1,3 @@
1
1
  export * from './CreditCardBrands.helper';
2
2
  export * from './PlanOptions.helper';
3
+ export * from './RolePermissions.helper';
@@ -3,4 +3,5 @@ export * from './usePaymentFormProvider';
3
3
  export * from './useMyProfileContent';
4
4
  export * from './usePaymentMethod';
5
5
  export * from './useProfileDetail';
6
+ export * from './useRolePermissionsTab';
6
7
  export * from './useTwoFactorSetting';
@@ -3,4 +3,5 @@ export * from './usePaymentFormProvider';
3
3
  export * from './useMyProfileContent';
4
4
  export * from './usePaymentMethod';
5
5
  export * from './useProfileDetail';
6
+ export * from './useRolePermissionsTab';
6
7
  export * from './useTwoFactorSetting';
@@ -0,0 +1,11 @@
1
+ import { ReducedRoleType } from '../../helpers';
2
+ import { ActionsPermitted, RolePermissionObject, RolePermissionsTabI } from '../../interfaces';
3
+ export declare const useRolePermissionsTab: ({ selected, onSelect, }: RolePermissionsTabI) => {
4
+ actions: ActionsPermitted[];
5
+ callback: RolePermissionObject;
6
+ selectedRole: ReducedRoleType;
7
+ selectedActions: ActionsPermitted[];
8
+ handleRoleChange: (role: ReducedRoleType) => void;
9
+ handleFeatureChange: (action: ActionsPermitted, feature: string) => void;
10
+ handleActionChange: (action: ActionsPermitted) => void;
11
+ };
@@ -0,0 +1,68 @@
1
+ import { useState, useEffect } from 'react';
2
+ import { rolePermissions } from '../../helpers';
3
+ export const useRolePermissionsTab = ({ selected, onSelect, }) => {
4
+ const actions = ['view', 'add', 'edit', 'delete'];
5
+ const selectedActionsFromSelected = () => {
6
+ const selectedActions = [];
7
+ actions.forEach((action) => {
8
+ const featuresByRoleByAction = selected[selectedRole][action];
9
+ if (featuresByRoleByAction.length === rolePermissions.length) {
10
+ selectedActions.push(action);
11
+ }
12
+ });
13
+ return selectedActions;
14
+ };
15
+ const [callback, setCallback] = useState(selected);
16
+ const [selectedRole, setSelectedRole] = useState('member');
17
+ const [selectedActions, setSelectedActions] = useState(selectedActionsFromSelected);
18
+ const handleRoleChange = (role) => setSelectedRole(role);
19
+ const checkIfHasFeature = (action, feature) => {
20
+ const features = callback[selectedRole][action];
21
+ const hasFeature = features.includes(feature);
22
+ if (hasFeature) {
23
+ return features.filter((f) => f !== feature);
24
+ }
25
+ return [...features, feature];
26
+ };
27
+ const handleFeatureChange = (action, feature) => {
28
+ const newCallback = Object.assign(Object.assign({}, callback), { [selectedRole]: Object.assign(Object.assign({}, callback[selectedRole]), { [action]: checkIfHasFeature(action, feature) }) });
29
+ setCallback(newCallback);
30
+ onSelect(newCallback);
31
+ };
32
+ const handleActionChange = (action) => {
33
+ if (selectedActions.includes(action)) {
34
+ const newCallback = Object.assign(Object.assign({}, callback), { [selectedRole]: Object.assign(Object.assign({}, callback[selectedRole]), { [action]: [] }) });
35
+ setCallback(newCallback);
36
+ onSelect(newCallback);
37
+ const filteredActions = selectedActions.filter((a) => a !== action);
38
+ return setSelectedActions(filteredActions);
39
+ }
40
+ const newCallback = Object.assign(Object.assign({}, callback), { [selectedRole]: Object.assign(Object.assign({}, callback[selectedRole]), { [action]: rolePermissions
41
+ .map(({ id, permissions }) => {
42
+ if (permissions[action].includes(selectedRole)) {
43
+ return id;
44
+ }
45
+ return '';
46
+ })
47
+ .filter((id) => id) }) });
48
+ setCallback(newCallback);
49
+ onSelect(newCallback);
50
+ setSelectedActions([...selectedActions, action]);
51
+ };
52
+ useEffect(() => {
53
+ setSelectedActions(selectedActionsFromSelected);
54
+ }, [selectedRole]);
55
+ useEffect(() => {
56
+ setSelectedActions(selectedActionsFromSelected);
57
+ setCallback(selected);
58
+ }, [selected]);
59
+ return {
60
+ actions,
61
+ callback,
62
+ selectedRole,
63
+ selectedActions,
64
+ handleRoleChange,
65
+ handleFeatureChange,
66
+ handleActionChange,
67
+ };
68
+ };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { ActivateAccount, ActiveSubscription, AddCardBanner, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeHeader, HomeSharedWith, InboxTile, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadTour, LeftPanel, MediaDetailsStep, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileContent, MyProfileFooter, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SectionHeader, SendCommunication, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShortPartnerTile, SignIn, SignUp, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, VideoPlayer, VideoPlayerModal, WellDone, YtdTile, } from './components';
1
+ export { ActivateAccount, ActiveSubscription, AddCardBanner, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeHeader, HomeSharedWith, InboxTile, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadTour, LeftPanel, MediaDetailsStep, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileContent, MyProfileFooter, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RolePermissionsTab, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SectionHeader, SendCommunication, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShortPartnerTile, SignIn, SignUp, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, VideoPlayer, VideoPlayerModal, WellDone, YtdTile, } from './components';
2
2
  export { useCustomToast } from './hooks';
3
- export { billingProxy, dynamicFormProxy, homeCardProxy, partnerContentProxy, partnerDetailsProxy, paymentMethodProxy, recordsInputsProxy, recordsInputsToDBProxy, userDetailsProxy, confirmAddressProxy } from './proxies';
3
+ export { billingProxy, dynamicFormProxy, homeCardProxy, partnerContentProxy, partnerDetailsProxy, paymentMethodProxy, recordsInputsProxy, recordsInputsToDBProxy, userDetailsProxy, confirmAddressProxy, } from './proxies';
4
4
  import theme from './theme';
5
5
  export { theme };
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
- export { ActivateAccount, ActiveSubscription, AddCardBanner, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeHeader, HomeSharedWith, InboxTile, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadTour, LeftPanel, MediaDetailsStep, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileContent, MyProfileFooter, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SectionHeader, SendCommunication, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShortPartnerTile, SignIn, SignUp, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, VideoPlayer, VideoPlayerModal, WellDone, YtdTile, } from './components';
1
+ export { ActivateAccount, ActiveSubscription, AddCardBanner, AddFolder, AddHomeContent, AddHomeItem, AddHomeItemHeader, AddMedia, AddPropertyRecords, Address, AddPopup, AddTile, AlertBanner, AphwTile, AppBar, AssignableReceipts, BackHeader, BarDivider, CancelAccount, CatalogPopup, CloudsAnimation, ContactList, ContactsContent, ContainerHeader, CreateDocumentHeader, CreateHouseholdItemHeader, CreditCardContainer, CreditCardError, CustomerTile, DeleteBanner, DisplayFiles, DisplayFilesDetail, DisplayOptions, DisplayReceipts, DocumentMenu, DocumentNameHeader, DocumentPreview, DynamicForm, EditAccountType, EditHomeBody, EditHomeFooter, EditHomeHeader, EditHomePanel, EmailPermissions, EmailValidation, Feedback, FileDetail, FilesUploader, FlowStep, FolderDetail, FolderDetailBody, FolderDetailContent, FolderDetailFooter, FolderDetailHeader, FolderInfo, FolderSharing, FolderTypeSelection, FooterButtons, FooterDrawer, GenericBackHeader, GroupCard, GroupsContainer, GroupsHeader, Header, HelpContent, HomeAssistant, HomeAssistantPanel, HomeBoardGrid, HomeBoardTour, HomeCard, HomeCardWithRecipent, HomeHeader, HomeSharedWith, InboxTile, ItemNameHeader, ItemsReviewBanner, ItemSubTypeSelect, Launchpad, LaunchpadAutofilerBanner, LaunchpadReceiptAutofiler, LaunchpadTour, LeftPanel, MediaDetailsStep, MonthlyCharge, MortgageInfo, MoveModal, MyHomes, MyProfileContent, MyProfileFooter, MyProfilePanel, NewCreditCard, NewCreditCardHeader, NewPassword, NotBeChargedBanner, Overlay, PanelHeader, PartnerActiveSubscription, PartnerCatalogPanel, PartnerContent, PartnerCustomerCode, PartnerDetails, PartnerImages, PartnerPanel, PasswordInput, PaymentReceipts, PdfButton, PeopleConnected, ProfileDetailsTab, ProfilePaymentTab, ProjectList, PropertyRecords, PropertyTaxes, ReadOnlyDynamicForm, ReadOnlyImage, ReadOnlyToggle, ReceiptAutofiler, ReceiptBody, ReceiptContent, ReceiptDetails, ReceiptFilters, ReceiptFooter, ReceiptHeader, ReceiptInfos, ReceiptItem, ReceiptItems, ReceiptPDF, ReceiptsDisplayOptions, ReceiptsFiled, ReceiptsHeader, ReceiptsInfo, ReceiptsReceivedContent, RecipientForm, RecipientsToShare, RecipientTab, RecordsInputs, ResendResetPassword, ResetPassword, ReviewBanner, RightPanel, RolePermissionsTab, RoomHeader, RoomsBoardTour, RoomsMenu, RoomsMenuMobile, RoomStep, RoomVideo, SalesTax, SatisfactionTile, SectionHeader, SendCommunication, SharedAccounts, SharedHomeContent, SharedHomeHeader, ShareHome, ShareHomeConnections, ShareHomeForm, ShortPartnerTile, SignIn, SignUp, StepHeader, StorageUsed, Subscription, SubscriptionCard, SubscriptionTable, Summary, TabsHeader, TextInput, ToBeDeletedBody, ToBeDeletedContent, ToBeDeletedFooter, ToBeDeletedHeader, TourButton, Trash, TrendingValue, TrialBanner, TutorialsButton, TwoFactor, TwoFactorSetting, UpdateList, UserDetails, ValueMonitor, VideoPlayer, VideoPlayerModal, WellDone, YtdTile, } from './components';
2
2
  export { useCustomToast } from './hooks';
3
- export { billingProxy, dynamicFormProxy, homeCardProxy, partnerContentProxy, partnerDetailsProxy, paymentMethodProxy, recordsInputsProxy, recordsInputsToDBProxy, userDetailsProxy, confirmAddressProxy } from './proxies';
3
+ export { billingProxy, dynamicFormProxy, homeCardProxy, partnerContentProxy, partnerDetailsProxy, paymentMethodProxy, recordsInputsProxy, recordsInputsToDBProxy, userDetailsProxy, confirmAddressProxy, } from './proxies';
4
4
  import theme from './theme';
5
5
  export { theme };
@@ -1,4 +1,4 @@
1
- import { MenuItemI } from "..";
1
+ import { MenuItemI, ShareContactPopoverI } from '..';
2
2
  export interface InfoContactCardI {
3
3
  address: string;
4
4
  category: string;
@@ -14,7 +14,9 @@ export interface InfoContactCardI {
14
14
  zip: string;
15
15
  }
16
16
  export interface ContactCardI {
17
+ apiError?: boolean;
17
18
  contact: InfoContactCardI;
18
19
  index: number;
19
20
  menuItems: MenuItemI[];
21
+ onShare: ShareContactPopoverI['onShare'];
20
22
  }
@@ -1,5 +1,7 @@
1
- import { InfoContactCardI, MenuItemI } from "..";
1
+ import { InfoContactCardI, MenuItemI, ShareContactPopoverI } from '..';
2
2
  export interface ContactCardHeaderI {
3
+ apiError?: boolean;
3
4
  contact: InfoContactCardI;
4
5
  menuItems: MenuItemI[];
6
+ onShare: ShareContactPopoverI['onShare'];
5
7
  }
@@ -1,10 +1,12 @@
1
- import { InfoContactCardI, MenuItemI } from '..';
2
- import { ReactNode } from "react";
1
+ import { InfoContactCardI, MenuItemI, ShareContactPopoverI } from '..';
2
+ import { ReactNode } from 'react';
3
3
  export interface ContactsContentI {
4
+ apiError?: boolean;
4
5
  contacts: InfoContactCardI[];
5
6
  handleClose: () => void;
6
7
  handleAdd: () => void;
7
8
  menuItems: MenuItemI[];
8
9
  children?: ReactNode;
9
10
  disabled?: boolean;
11
+ onShare: ShareContactPopoverI['onShare'];
10
12
  }
@@ -0,0 +1,11 @@
1
+ import { InfoContactCardI } from '..';
2
+ interface ShareFormI {
3
+ contact: InfoContactCardI;
4
+ emailTo: string;
5
+ }
6
+ export interface ShareContactByEmailI {
7
+ apiError?: boolean;
8
+ contact: InfoContactCardI;
9
+ onShare: (form: ShareFormI) => void;
10
+ }
11
+ export {};
@@ -0,0 +1,8 @@
1
+ import { InfoContactCardI } from '..';
2
+ export interface ShareContactPopoverI {
3
+ apiError?: boolean;
4
+ contact: InfoContactCardI;
5
+ isOpen: boolean;
6
+ onClose: () => void;
7
+ onShare: (form: unknown) => void;
8
+ }
@@ -3,3 +3,5 @@ export * from './ContactCardAddress.interface';
3
3
  export * from './ContactCardHeader.interface';
4
4
  export * from './ContactCardInfo.interface';
5
5
  export * from './ContactsContent.interface';
6
+ export * from './ShareContactByEmail.interface';
7
+ export * from './ShareContactPopover.interface';
@@ -3,3 +3,5 @@ export * from './ContactCardAddress.interface';
3
3
  export * from './ContactCardHeader.interface';
4
4
  export * from './ContactCardInfo.interface';
5
5
  export * from './ContactsContent.interface';
6
+ export * from './ShareContactByEmail.interface';
7
+ export * from './ShareContactPopover.interface';
@@ -1,6 +1,8 @@
1
1
  export interface HiddenFieldI {
2
+ disabled?: boolean;
2
3
  name: string;
3
4
  icon: string;
4
5
  id: string;
6
+ isActive?: boolean;
5
7
  onClick: (id: string) => void;
6
8
  }
@@ -1,8 +1,9 @@
1
1
  import { ReactNode } from 'react';
2
2
  export interface MyProfileBodyI {
3
- account: ReactNode;
4
- details: ReactNode;
5
- email: ReactNode;
3
+ account?: ReactNode;
4
+ details?: ReactNode;
5
+ email?: ReactNode;
6
6
  isLoading: boolean;
7
- payment: ReactNode;
7
+ payment?: ReactNode;
8
+ rolePermissions?: ReactNode;
8
9
  }
@@ -1,6 +1,7 @@
1
1
  export * from './email';
2
2
  export * from './details';
3
3
  export * from './payment';
4
+ export * from './permissions';
4
5
  export * from './CancelAccount.interface';
5
6
  export * from './ContextButtons.interface';
6
7
  export * from './MyProfileBody.interface';