@appcorp/fusion-storybook 0.1.4

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 (131) hide show
  1. package/README.md +147 -0
  2. package/base-modules/admission/cache.d.ts +14 -0
  3. package/base-modules/admission/cache.js +31 -0
  4. package/base-modules/admission/constants.d.ts +32 -0
  5. package/base-modules/admission/constants.js +37 -0
  6. package/base-modules/admission/context.d.ts +369 -0
  7. package/base-modules/admission/context.js +755 -0
  8. package/base-modules/admission/filter.d.ts +1 -0
  9. package/base-modules/admission/filter.js +31 -0
  10. package/base-modules/admission/form.d.ts +1 -0
  11. package/base-modules/admission/form.js +86 -0
  12. package/base-modules/admission/more-actions.d.ts +1 -0
  13. package/base-modules/admission/more-actions.js +5 -0
  14. package/base-modules/admission/page.d.ts +16 -0
  15. package/base-modules/admission/page.js +128 -0
  16. package/base-modules/admission/validate.d.ts +38 -0
  17. package/base-modules/admission/validate.js +70 -0
  18. package/base-modules/admission/view.d.ts +1 -0
  19. package/base-modules/admission/view.js +40 -0
  20. package/base-modules/discount-code/cache.d.ts +27 -0
  21. package/base-modules/discount-code/cache.js +46 -0
  22. package/base-modules/discount-code/constants.d.ts +19 -0
  23. package/base-modules/discount-code/constants.js +26 -0
  24. package/base-modules/discount-code/context.d.ts +154 -0
  25. package/base-modules/discount-code/context.js +416 -0
  26. package/base-modules/discount-code/filter.d.ts +9 -0
  27. package/base-modules/discount-code/filter.js +14 -0
  28. package/base-modules/discount-code/form.d.ts +1 -0
  29. package/base-modules/discount-code/form.js +44 -0
  30. package/base-modules/discount-code/more-actions.d.ts +9 -0
  31. package/base-modules/discount-code/more-actions.js +13 -0
  32. package/base-modules/discount-code/page.d.ts +16 -0
  33. package/base-modules/discount-code/page.js +120 -0
  34. package/base-modules/discount-code/validate.d.ts +19 -0
  35. package/base-modules/discount-code/validate.js +38 -0
  36. package/base-modules/discount-code/view.d.ts +1 -0
  37. package/base-modules/discount-code/view.js +26 -0
  38. package/base-modules/family/cache.d.ts +14 -0
  39. package/base-modules/family/cache.js +31 -0
  40. package/base-modules/family/constants.d.ts +22 -0
  41. package/base-modules/family/constants.js +26 -0
  42. package/base-modules/family/context.d.ts +173 -0
  43. package/base-modules/family/context.js +441 -0
  44. package/base-modules/family/filter.d.ts +1 -0
  45. package/base-modules/family/filter.js +28 -0
  46. package/base-modules/family/form.d.ts +1 -0
  47. package/base-modules/family/form.js +12 -0
  48. package/base-modules/family/more-actions.d.ts +1 -0
  49. package/base-modules/family/more-actions.js +5 -0
  50. package/base-modules/family/page.d.ts +16 -0
  51. package/base-modules/family/page.js +120 -0
  52. package/base-modules/family/validate.d.ts +15 -0
  53. package/base-modules/family/validate.js +18 -0
  54. package/base-modules/family/view.d.ts +1 -0
  55. package/base-modules/family/view.js +18 -0
  56. package/base-modules/family-member/cache.d.ts +14 -0
  57. package/base-modules/family-member/cache.js +31 -0
  58. package/base-modules/family-member/constants.d.ts +22 -0
  59. package/base-modules/family-member/constants.js +26 -0
  60. package/base-modules/family-member/context.d.ts +215 -0
  61. package/base-modules/family-member/context.js +486 -0
  62. package/base-modules/family-member/filter.d.ts +1 -0
  63. package/base-modules/family-member/filter.js +28 -0
  64. package/base-modules/family-member/form.d.ts +1 -0
  65. package/base-modules/family-member/form.js +17 -0
  66. package/base-modules/family-member/more-actions.d.ts +1 -0
  67. package/base-modules/family-member/more-actions.js +5 -0
  68. package/base-modules/family-member/page.d.ts +16 -0
  69. package/base-modules/family-member/page.js +122 -0
  70. package/base-modules/family-member/validate.d.ts +24 -0
  71. package/base-modules/family-member/validate.js +27 -0
  72. package/base-modules/family-member/view.d.ts +1 -0
  73. package/base-modules/family-member/view.js +40 -0
  74. package/base-modules/student-profile/cache.d.ts +14 -0
  75. package/base-modules/student-profile/cache.js +31 -0
  76. package/base-modules/student-profile/constants.d.ts +105 -0
  77. package/base-modules/student-profile/constants.js +132 -0
  78. package/base-modules/student-profile/context.d.ts +290 -0
  79. package/base-modules/student-profile/context.js +583 -0
  80. package/base-modules/student-profile/filter.d.ts +1 -0
  81. package/base-modules/student-profile/filter.js +26 -0
  82. package/base-modules/student-profile/form.d.ts +1 -0
  83. package/base-modules/student-profile/form.js +19 -0
  84. package/base-modules/student-profile/more-actions.d.ts +1 -0
  85. package/base-modules/student-profile/more-actions.js +5 -0
  86. package/base-modules/student-profile/page.d.ts +9 -0
  87. package/base-modules/student-profile/page.js +86 -0
  88. package/base-modules/student-profile/validate.d.ts +23 -0
  89. package/base-modules/student-profile/validate.js +34 -0
  90. package/base-modules/student-profile/view.d.ts +1 -0
  91. package/base-modules/student-profile/view.js +29 -0
  92. package/base-modules/workspace/cache.d.ts +9 -0
  93. package/base-modules/workspace/cache.js +28 -0
  94. package/base-modules/workspace/constants.d.ts +10 -0
  95. package/base-modules/workspace/constants.js +18 -0
  96. package/base-modules/workspace/context.d.ts +187 -0
  97. package/base-modules/workspace/context.js +293 -0
  98. package/base-modules/workspace/drawer.d.ts +1 -0
  99. package/base-modules/workspace/drawer.js +24 -0
  100. package/base-modules/workspace/filter.d.ts +1 -0
  101. package/base-modules/workspace/filter.js +13 -0
  102. package/base-modules/workspace/form.d.ts +1 -0
  103. package/base-modules/workspace/form.js +40 -0
  104. package/base-modules/workspace/more-actions.d.ts +1 -0
  105. package/base-modules/workspace/more-actions.js +13 -0
  106. package/base-modules/workspace/page.d.ts +1 -0
  107. package/base-modules/workspace/page.js +31 -0
  108. package/base-modules/workspace/validate.d.ts +9 -0
  109. package/base-modules/workspace/validate.js +8 -0
  110. package/base-modules/workspace/view.d.ts +1 -0
  111. package/base-modules/workspace/view.js +52 -0
  112. package/components/rbac-no-access.d.ts +6 -0
  113. package/components/rbac-no-access.js +4 -0
  114. package/constants.d.ts +81 -0
  115. package/constants.js +81 -0
  116. package/lib/utils.d.ts +2 -0
  117. package/lib/utils.js +5 -0
  118. package/package.json +104 -0
  119. package/tsconfig.build.tsbuildinfo +1 -0
  120. package/type.d.ts +1141 -0
  121. package/type.js +427 -0
  122. package/utils/admission-pdf.d.ts +78 -0
  123. package/utils/admission-pdf.js +73 -0
  124. package/utils/clear-cache.d.ts +1 -0
  125. package/utils/clear-cache.js +8 -0
  126. package/utils/format-value.d.ts +1 -0
  127. package/utils/format-value.js +1 -0
  128. package/utils/pdf-generator.d.ts +41 -0
  129. package/utils/pdf-generator.js +107 -0
  130. package/utils/resolve-rbac-permissions.d.ts +11 -0
  131. package/utils/resolve-rbac-permissions.js +251 -0
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { Badge } from "@appcorp/shadcn/components/ui/badge";
4
+ import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@appcorp/shadcn/components/ui/card";
5
+ import { Separator } from "@appcorp/shadcn/components/ui/separator";
6
+ import { CheckCircle2, Home, MapPin, Users, XCircle } from "lucide-react";
7
+ import { useFamilyModule } from "./context";
8
+ import { useTranslations } from "next-intl";
9
+ import { formatValue } from "@/utils/format-value";
10
+ export const FamilyView = () => {
11
+ const { state } = useFamilyModule();
12
+ const { address, city, country, enabled, familyCode, postalCode, stateProvince, } = state;
13
+ const t = useTranslations("family");
14
+ const fullAddress = [address, city, stateProvince, country, postalCode]
15
+ .filter(Boolean)
16
+ .join(", ");
17
+ return (_jsxs("div", { className: "space-y-4", children: [_jsx(Card, { children: _jsx(CardContent, { className: "pt-6", children: _jsxs("div", { className: "flex items-center gap-6", children: [_jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-primary/10", children: _jsx(Home, { className: "h-8 w-8 text-primary" }) }), _jsxs("div", { className: "flex-1", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("h2", { className: "text-2xl font-bold", children: familyCode }), enabled ? (_jsxs(Badge, { variant: "default", className: "gap-1", children: [_jsx(CheckCircle2, { className: "h-3 w-3" }), t("active")] })) : (_jsxs(Badge, { variant: "secondary", className: "gap-1", children: [_jsx(XCircle, { className: "h-3 w-3" }), t("inactive")] }))] }), _jsx("p", { className: "text-sm text-muted-foreground mt-1", children: t("familyProfile") })] })] }) }) }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "pb-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(MapPin, { className: "h-5 w-5 text-primary" }), _jsx(CardTitle, { className: "text-lg", children: t("addressInformation") })] }), _jsx(CardDescription, { children: t("familyResidenceDetails") })] }), _jsx(Separator, {}), _jsx(CardContent, { className: "pt-6", children: _jsxs("div", { className: "space-y-4", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-sm font-medium text-muted-foreground", children: t("fullAddress") }), _jsx("p", { className: "text-base", children: fullAddress || t("noAddressProvided") })] }), _jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-6", children: [_jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-sm font-medium text-muted-foreground", children: t("streetAddress") }), _jsx("p", { className: "text-base", children: formatValue(address) })] }), _jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-sm font-medium text-muted-foreground", children: t("city") }), _jsx("p", { className: "text-base", children: formatValue(city) })] }), _jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-sm font-medium text-muted-foreground", children: t("stateProvince") }), _jsx("p", { className: "text-base", children: formatValue(stateProvince) })] }), _jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-sm font-medium text-muted-foreground", children: t("country") }), _jsx("p", { className: "text-base", children: formatValue(country) })] }), _jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-sm font-medium text-muted-foreground", children: t("postalCode") }), _jsx("p", { className: "text-base", children: formatValue(postalCode) })] })] })] }) })] }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "pb-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Users, { className: "h-5 w-5 text-primary" }), _jsx(CardTitle, { className: "text-lg", children: t("familyStatus") })] }), _jsx(CardDescription, { children: t("currentStatusInformation") })] }), _jsx(Separator, {}), _jsx(CardContent, { className: "pt-6", children: _jsx("div", { className: "flex items-center gap-3", children: enabled ? (_jsxs(_Fragment, { children: [_jsx(CheckCircle2, { className: "h-5 w-5 text-green-500" }), _jsxs("div", { children: [_jsx("p", { className: "font-medium", children: t("active") }), _jsx("p", { className: "text-sm text-muted-foreground", children: t("thisAccountIsCurrentlyActive") })] })] })) : (_jsxs(_Fragment, { children: [_jsx(XCircle, { className: "h-5 w-5 text-red-500" }), _jsxs("div", { children: [_jsx("p", { className: "font-medium", children: t("inactive") }), _jsx("p", { className: "text-sm text-muted-foreground", children: t("thisAccountIsCurrentlyInactive") })] })] })) }) })] })] }));
18
+ };
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Family Member Module Cache Utilities
3
+ *
4
+ * Provides localStorage-based caching for family members using generic cache system.
5
+ */
6
+ import { FamilyMemberBE } from "@/type";
7
+ export declare const getCachedFamilyMembersSync: () => import("@react-pakistan/util-functions").ListResponse<FamilyMemberBE>;
8
+ export declare const getCachedFamilyMembers: ({ params, }: {
9
+ params?: Record<string, unknown>;
10
+ }) => Promise<import("@react-pakistan/util-functions").ListResponse<FamilyMemberBE>>;
11
+ export declare const getCachedFamilyMemberById: (familyMemberId: string) => FamilyMemberBE | null;
12
+ export declare const invalidateFamilyMembersCache: () => void;
13
+ export declare const preloadFamilyMembers: () => Promise<import("@react-pakistan/util-functions").ListResponse<FamilyMemberBE>>;
14
+ export declare const isFamilyMembersCacheStale: () => boolean;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Family Member Module Cache Utilities
3
+ *
4
+ * Provides localStorage-based caching for family members using generic cache system.
5
+ */
6
+ import { LS_KEYS } from "@/constants";
7
+ import { FAMILY_MEMBER_API_ROUTES } from "./constants";
8
+ import { getCachedData, getCachedDataSync, getCachedItemById, invalidateCache, isCacheStale, preloadCache, } from "@react-pakistan/util-functions";
9
+ // ============================================================================
10
+ // CACHE CONFIGURATION
11
+ // ============================================================================
12
+ const FAMILY_MEMBER_CACHE_CONFIG = {
13
+ cacheKey: LS_KEYS.FAMILY_MEMBERS,
14
+ apiUrl: FAMILY_MEMBER_API_ROUTES.UNIT,
15
+ };
16
+ // ============================================================================
17
+ // FAMILY_MEMBER-SPECIFIC CACHE FUNCTIONS
18
+ // ============================================================================
19
+ export const getCachedFamilyMembersSync = () => getCachedDataSync(LS_KEYS.FAMILY_MEMBERS);
20
+ export const getCachedFamilyMembers = ({ params, }) => getCachedData({
21
+ config: FAMILY_MEMBER_CACHE_CONFIG,
22
+ params,
23
+ headers: {
24
+ "Content-Type": "application/json",
25
+ "x-api-token": process.env.NEXT_PUBLIC_API_KEY,
26
+ },
27
+ });
28
+ export const getCachedFamilyMemberById = (familyMemberId) => getCachedItemById(LS_KEYS.FAMILY_MEMBERS, familyMemberId);
29
+ export const invalidateFamilyMembersCache = () => invalidateCache(LS_KEYS.FAMILY_MEMBERS);
30
+ export const preloadFamilyMembers = () => preloadCache(FAMILY_MEMBER_CACHE_CONFIG);
31
+ export const isFamilyMembersCacheStale = () => isCacheStale(LS_KEYS.FAMILY_MEMBERS);
@@ -0,0 +1,22 @@
1
+ /**
2
+ * FamilyMember Constants
3
+ *
4
+ * Organization:
5
+ * - Page Configuration
6
+ * - API Routes
7
+ * - Table Configuration
8
+ */
9
+ export declare const pageLimit: number;
10
+ export declare const FAMILY_MEMBER_API_ROUTES: {
11
+ readonly UNIT: "/api/v1/family-member";
12
+ };
13
+ export declare const ENABLED_OPTIONS: readonly [{
14
+ readonly label: "All";
15
+ readonly value: "";
16
+ }, {
17
+ readonly label: "Enabled";
18
+ readonly value: "true";
19
+ }, {
20
+ readonly label: "Disabled";
21
+ readonly value: "false";
22
+ }];
@@ -0,0 +1,26 @@
1
+ /**
2
+ * FamilyMember Constants
3
+ *
4
+ * Organization:
5
+ * - Page Configuration
6
+ * - API Routes
7
+ * - Table Configuration
8
+ */
9
+ // ============================================================================
10
+ // PAGE CONFIGURATION
11
+ // ============================================================================
12
+ export const pageLimit = Number(process.env.NEXT_PUBLIC_PAGE_LIMIT) || 10;
13
+ // ============================================================================
14
+ // API ROUTES
15
+ // ============================================================================
16
+ export const FAMILY_MEMBER_API_ROUTES = {
17
+ UNIT: "/api/v1/family-member",
18
+ };
19
+ // ============================================================================
20
+ // ENABLED OPTIONS
21
+ // ============================================================================
22
+ export const ENABLED_OPTIONS = [
23
+ { label: "All", value: "" },
24
+ { label: "Enabled", value: "true" },
25
+ { label: "Disabled", value: "false" },
26
+ ];
@@ -0,0 +1,215 @@
1
+ import { FamilyMemberBE } from "@/type";
2
+ import { type RowAction } from "@appcorp/shadcn/components/enhanced-table";
3
+ export declare const FAMILY_MEMBER_DRAWER: {
4
+ readonly FILTER_DRAWER: string;
5
+ readonly FORM_DRAWER: string;
6
+ readonly MORE_ACTIONS_DRAWER: string;
7
+ readonly VIEW_DRAWER: string;
8
+ };
9
+ export declare const FAMILY_MEMBER_ACTION_TYPES: {
10
+ readonly RESET_FORM: "RESET_FORM";
11
+ readonly SET_CURRENT_PAGE: "SET_CURRENT_PAGE";
12
+ readonly SET_PAGE_LIMIT: "SET_PAGE_LIMIT";
13
+ readonly SET_SEARCH_QUERY: "SET_SEARCH_QUERY";
14
+ readonly SET_DRAWER: "SET_DRAWER";
15
+ readonly SET_ITEMS: "SET_ITEMS";
16
+ readonly SET_FORM_DATA: "SET_FORM_DATA";
17
+ readonly SET_DISABLE_SAVE_BUTTON: "SET_DISABLE_SAVE_BUTTON";
18
+ readonly SET_INPUT_FIELD: "SET_INPUT_FIELD";
19
+ readonly SET_ERRORS: "SET_ERRORS";
20
+ readonly SET_FILTERS: "SET_FILTERS";
21
+ }, familyMemberModuleConfig: import("@react-pakistan/util-functions/factory/generic-module-factory").ModuleConfig<{
22
+ items: FamilyMemberBE[];
23
+ count: number;
24
+ currentPage: number;
25
+ pageLimit: number;
26
+ searchQuery: string;
27
+ familyId: string;
28
+ filterEnabled: boolean | undefined;
29
+ disableSaveButton: boolean;
30
+ drawer: string | null;
31
+ avatar: string;
32
+ bloodGroup: string;
33
+ dateOfBirth: string;
34
+ email: string;
35
+ emergencyPhone: string;
36
+ enabled: boolean;
37
+ errors: Record<string, string>;
38
+ firstName: string;
39
+ gender: string;
40
+ id: string;
41
+ idNumber: string;
42
+ isPrimary: boolean;
43
+ lastName: string;
44
+ occupation: string;
45
+ phone: string;
46
+ relationship: string;
47
+ role: string;
48
+ }>, initialFamilyMemberState: {
49
+ items: FamilyMemberBE[];
50
+ count: number;
51
+ currentPage: number;
52
+ pageLimit: number;
53
+ searchQuery: string;
54
+ familyId: string;
55
+ filterEnabled: boolean | undefined;
56
+ disableSaveButton: boolean;
57
+ drawer: string | null;
58
+ avatar: string;
59
+ bloodGroup: string;
60
+ dateOfBirth: string;
61
+ email: string;
62
+ emergencyPhone: string;
63
+ enabled: boolean;
64
+ errors: Record<string, string>;
65
+ firstName: string;
66
+ gender: string;
67
+ id: string;
68
+ idNumber: string;
69
+ isPrimary: boolean;
70
+ lastName: string;
71
+ occupation: string;
72
+ phone: string;
73
+ relationship: string;
74
+ role: string;
75
+ }, FamilyMemberProvider: import("react").FC<{
76
+ children: React.ReactNode;
77
+ }>, familyMemberReducer: (state: {
78
+ items: FamilyMemberBE[];
79
+ count: number;
80
+ currentPage: number;
81
+ pageLimit: number;
82
+ searchQuery: string;
83
+ familyId: string;
84
+ filterEnabled: boolean | undefined;
85
+ disableSaveButton: boolean;
86
+ drawer: string | null;
87
+ avatar: string;
88
+ bloodGroup: string;
89
+ dateOfBirth: string;
90
+ email: string;
91
+ emergencyPhone: string;
92
+ enabled: boolean;
93
+ errors: Record<string, string>;
94
+ firstName: string;
95
+ gender: string;
96
+ id: string;
97
+ idNumber: string;
98
+ isPrimary: boolean;
99
+ lastName: string;
100
+ occupation: string;
101
+ phone: string;
102
+ relationship: string;
103
+ role: string;
104
+ }, action: any) => {
105
+ items: FamilyMemberBE[];
106
+ count: number;
107
+ currentPage: number;
108
+ pageLimit: number;
109
+ searchQuery: string;
110
+ familyId: string;
111
+ filterEnabled: boolean | undefined;
112
+ disableSaveButton: boolean;
113
+ drawer: string | null;
114
+ avatar: string;
115
+ bloodGroup: string;
116
+ dateOfBirth: string;
117
+ email: string;
118
+ emergencyPhone: string;
119
+ enabled: boolean;
120
+ errors: Record<string, string>;
121
+ firstName: string;
122
+ gender: string;
123
+ id: string;
124
+ idNumber: string;
125
+ isPrimary: boolean;
126
+ lastName: string;
127
+ occupation: string;
128
+ phone: string;
129
+ relationship: string;
130
+ role: string;
131
+ }, useFamilyMemberContext: () => import("@react-pakistan/util-functions/factory/generic-module-factory").GenericModuleContext<{
132
+ items: FamilyMemberBE[];
133
+ count: number;
134
+ currentPage: number;
135
+ pageLimit: number;
136
+ searchQuery: string;
137
+ familyId: string;
138
+ filterEnabled: boolean | undefined;
139
+ disableSaveButton: boolean;
140
+ drawer: string | null;
141
+ avatar: string;
142
+ bloodGroup: string;
143
+ dateOfBirth: string;
144
+ email: string;
145
+ emergencyPhone: string;
146
+ enabled: boolean;
147
+ errors: Record<string, string>;
148
+ firstName: string;
149
+ gender: string;
150
+ id: string;
151
+ idNumber: string;
152
+ isPrimary: boolean;
153
+ lastName: string;
154
+ occupation: string;
155
+ phone: string;
156
+ relationship: string;
157
+ role: string;
158
+ }>;
159
+ export declare const useFamilyMemberModule: () => {
160
+ applyFilters: () => void;
161
+ byIdLoading: boolean;
162
+ clearFilters: () => void;
163
+ deleteLoading: boolean;
164
+ handleChange: (key: string, value: string | number | boolean | Date | undefined | null) => void;
165
+ handleCloseDrawer: () => void;
166
+ handleCreate: () => void;
167
+ handleDelete: (row?: unknown) => void;
168
+ handleEdit: (row?: unknown) => void;
169
+ handleFilters: () => void;
170
+ handleMoreActions: () => void;
171
+ handlePageChange: (page: number) => void;
172
+ handlePageLimitChange: (limit: number) => void;
173
+ handleSearch: (query: string) => void;
174
+ handleSubmit: () => void;
175
+ handleView: (row?: unknown) => void;
176
+ headerActions: {
177
+ enabled: boolean;
178
+ handleOnClick: () => void;
179
+ label: string;
180
+ order: number;
181
+ icon: import("react").ForwardRefExoticComponent<Omit<import("lucide-react").LucideProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
182
+ }[];
183
+ listLoading: boolean;
184
+ rowActions: RowAction[];
185
+ updateLoading: boolean;
186
+ state: {
187
+ items: FamilyMemberBE[];
188
+ count: number;
189
+ currentPage: number;
190
+ pageLimit: number;
191
+ searchQuery: string;
192
+ familyId: string;
193
+ filterEnabled: boolean | undefined;
194
+ disableSaveButton: boolean;
195
+ drawer: string | null;
196
+ avatar: string;
197
+ bloodGroup: string;
198
+ dateOfBirth: string;
199
+ email: string;
200
+ emergencyPhone: string;
201
+ enabled: boolean;
202
+ errors: Record<string, string>;
203
+ firstName: string;
204
+ gender: string;
205
+ id: string;
206
+ idNumber: string;
207
+ isPrimary: boolean;
208
+ lastName: string;
209
+ occupation: string;
210
+ phone: string;
211
+ relationship: string;
212
+ role: string;
213
+ };
214
+ dispatch: React.Dispatch<any>;
215
+ };