@nomos-ui/uanela-redux-next 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/apis/auth.api.d.ts +2 -0
- package/dist/apis/auth.api.d.ts.map +1 -0
- package/dist/apis/auth.api.js +108 -0
- package/dist/apis/auth.api.js.map +1 -0
- package/dist/components/api-provider.d.ts +51 -0
- package/dist/components/api-provider.d.ts.map +1 -0
- package/dist/components/api-provider.js +60 -0
- package/dist/components/api-provider.js.map +1 -0
- package/dist/components/data-manipulation/create-data-wrapper.d.ts +69 -0
- package/dist/components/data-manipulation/create-data-wrapper.d.ts.map +1 -0
- package/dist/components/data-manipulation/create-data-wrapper.js +65 -0
- package/dist/components/data-manipulation/create-data-wrapper.js.map +1 -0
- package/dist/components/data-manipulation/update-data-wrapper.d.ts +91 -0
- package/dist/components/data-manipulation/update-data-wrapper.d.ts.map +1 -0
- package/dist/components/data-manipulation/update-data-wrapper.js +85 -0
- package/dist/components/data-manipulation/update-data-wrapper.js.map +1 -0
- package/dist/components/modals/create.modal.d.ts +71 -0
- package/dist/components/modals/create.modal.d.ts.map +1 -0
- package/dist/components/modals/create.modal.js +51 -0
- package/dist/components/modals/create.modal.js.map +1 -0
- package/dist/components/modals/update.modal.d.ts +71 -0
- package/dist/components/modals/update.modal.d.ts.map +1 -0
- package/dist/components/modals/update.modal.js +51 -0
- package/dist/components/modals/update.modal.js.map +1 -0
- package/dist/components/pages/components/page-title-and-description.d.ts +6 -0
- package/dist/components/pages/components/page-title-and-description.d.ts.map +1 -0
- package/dist/components/pages/components/page-title-and-description.js +8 -0
- package/dist/components/pages/components/page-title-and-description.js.map +1 -0
- package/dist/components/pages/create-data-page/index.d.ts +25 -0
- package/dist/components/pages/create-data-page/index.d.ts.map +1 -0
- package/dist/components/pages/create-data-page/index.js +22 -0
- package/dist/components/pages/create-data-page/index.js.map +1 -0
- package/dist/components/pages/list-page/header-action-buttons.d.ts +7 -0
- package/dist/components/pages/list-page/header-action-buttons.d.ts.map +1 -0
- package/dist/components/pages/list-page/header-action-buttons.js +20 -0
- package/dist/components/pages/list-page/header-action-buttons.js.map +1 -0
- package/dist/components/pages/list-page/list-page.d.ts +19 -0
- package/dist/components/pages/list-page/list-page.d.ts.map +1 -0
- package/dist/components/pages/list-page/list-page.js +17 -0
- package/dist/components/pages/list-page/list-page.js.map +1 -0
- package/dist/components/pages/list-page/table/action-button.d.ts +12 -0
- package/dist/components/pages/list-page/table/action-button.d.ts.map +1 -0
- package/dist/components/pages/list-page/table/action-button.js +15 -0
- package/dist/components/pages/list-page/table/action-button.js.map +1 -0
- package/dist/components/pages/list-page/table/confirm-delete.modal.d.ts +6 -0
- package/dist/components/pages/list-page/table/confirm-delete.modal.d.ts.map +1 -0
- package/dist/components/pages/list-page/table/confirm-delete.modal.js +16 -0
- package/dist/components/pages/list-page/table/confirm-delete.modal.js.map +1 -0
- package/dist/components/pages/list-page/table/table-data.d.ts +27 -0
- package/dist/components/pages/list-page/table/table-data.d.ts.map +1 -0
- package/dist/components/pages/list-page/table/table-data.js +57 -0
- package/dist/components/pages/list-page/table/table-data.js.map +1 -0
- package/dist/components/pages/list-page/table/table.d.ts +43 -0
- package/dist/components/pages/list-page/table/table.d.ts.map +1 -0
- package/dist/components/pages/list-page/table/table.js +99 -0
- package/dist/components/pages/list-page/table/table.js.map +1 -0
- package/dist/components/pages/list-page/table/types/index.d.ts +54 -0
- package/dist/components/pages/list-page/table/types/index.d.ts.map +1 -0
- package/dist/components/pages/list-page/table/types/index.js +3 -0
- package/dist/components/pages/list-page/table/types/index.js.map +1 -0
- package/dist/components/pages/list-page/template.d.ts +31 -0
- package/dist/components/pages/list-page/template.d.ts.map +1 -0
- package/dist/components/pages/list-page/template.js +174 -0
- package/dist/components/pages/list-page/template.js.map +1 -0
- package/dist/components/pages/update-data-page/index.d.ts +25 -0
- package/dist/components/pages/update-data-page/index.d.ts.map +1 -0
- package/dist/components/pages/update-data-page/index.js +24 -0
- package/dist/components/pages/update-data-page/index.js.map +1 -0
- package/dist/components/query-boundary.d.ts +81 -0
- package/dist/components/query-boundary.d.ts.map +1 -0
- package/dist/components/query-boundary.js +121 -0
- package/dist/components/query-boundary.js.map +1 -0
- package/dist/components/server/server-query-boundary.d.ts +23 -0
- package/dist/components/server/server-query-boundary.d.ts.map +1 -0
- package/dist/components/server/server-query-boundary.js +36 -0
- package/dist/components/server/server-query-boundary.js.map +1 -0
- package/dist/exports/index.d.ts +11 -0
- package/dist/exports/index.d.ts.map +1 -0
- package/dist/exports/index.js +55 -0
- package/dist/exports/index.js.map +1 -0
- package/dist/hooks/use-update-search-params.d.ts +5 -0
- package/dist/hooks/use-update-search-params.d.ts.map +1 -0
- package/dist/hooks/use-update-search-params.js +13 -0
- package/dist/hooks/use-update-search-params.js.map +1 -0
- package/dist/types/index.d.ts +26 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/package.json +76 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.default = QueryBoundary;
|
|
8
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
9
|
+
const react_1 = require("react");
|
|
10
|
+
const lucide_react_1 = require("lucide-react");
|
|
11
|
+
const tailwind_merge_1 = require("tailwind-merge");
|
|
12
|
+
const deep_equal_1 = __importDefault(require("deep-equal"));
|
|
13
|
+
const form_1 = require("@nomos-ui/form");
|
|
14
|
+
const api_provider_1 = require("./api-provider");
|
|
15
|
+
/**
|
|
16
|
+
* A component that handles data fetching, loading states, pagination, and error handling
|
|
17
|
+
*
|
|
18
|
+
* @template DataType The type of data being queried
|
|
19
|
+
* @template PassedSuccessComponentProps Additional props for the success component
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* // Basic usage with a UserList component
|
|
24
|
+
* <QueryBoundary
|
|
25
|
+
* query="useGetUsersQuery"
|
|
26
|
+
* SuccessComponent={UserList}
|
|
27
|
+
* errorMessage="Erro ao carregar usuários"
|
|
28
|
+
* />
|
|
29
|
+
*
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
function QueryBoundary({ name, errorMessage = "Ocorreu um erro carregando o dado!", noResourcesMessage = "Ainda não existe nenhum dado!", notFoundMessage = "Não foi encontrado nenhum dado!", SuccessComponent, LoadingComponent = ((0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(lucide_react_1.Loader, { className: "animate-spin" }) })), query, params = {}, showReloadAgainButton = true, successComponentWrapperClassName, successComponentProps, loadMoreOnEndReach = true, loadingComponentClassName, reloadAgainAfter = 0, }) {
|
|
33
|
+
// State management
|
|
34
|
+
const api = (0, api_provider_1.useApi)();
|
|
35
|
+
const [page, setPage] = (0, react_1.useState)(1);
|
|
36
|
+
const [queryParams, setQueryParams] = (0, react_1.useState)();
|
|
37
|
+
const [isRefetch, setIsRefetch] = (0, react_1.useState)(false);
|
|
38
|
+
const [isLoadingMore, setIsLoadingMore] = (0, react_1.useState)(false);
|
|
39
|
+
// Normalize params to include pagination
|
|
40
|
+
const normalizedParams = typeof params === "object" ? { page, ...params } : params;
|
|
41
|
+
// RTK Query hook
|
|
42
|
+
const { data, isLoading, isError, isSuccess, error, refetch, isFetching, } = api[name][query](queryParams, {
|
|
43
|
+
skip: !(0, deep_equal_1.default)(normalizedParams, queryParams) && !isRefetch,
|
|
44
|
+
});
|
|
45
|
+
/**
|
|
46
|
+
* Handles loading more data when reaching the end of the content
|
|
47
|
+
*/
|
|
48
|
+
const handleEndReached = () => {
|
|
49
|
+
const limit = normalizedParams.limit || 30;
|
|
50
|
+
const canLoadMore = data?.data && Array.isArray(data.data) && data.data.length % limit === 0;
|
|
51
|
+
if (!isLoading && !isFetching && canLoadMore && loadMoreOnEndReach) {
|
|
52
|
+
setPage((prev) => prev + 1);
|
|
53
|
+
setIsLoadingMore(true);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
// Reset loading states after fetch completion
|
|
57
|
+
(0, react_1.useEffect)(() => {
|
|
58
|
+
if (!isFetching && !isLoading && (isSuccess || isError)) {
|
|
59
|
+
setIsRefetch(false);
|
|
60
|
+
setIsLoadingMore(false);
|
|
61
|
+
}
|
|
62
|
+
}, [isFetching, isLoading, isSuccess, isError]);
|
|
63
|
+
// Setup automatic reload interval
|
|
64
|
+
(0, react_1.useEffect)(() => {
|
|
65
|
+
if (reloadAgainAfter > 0) {
|
|
66
|
+
const interval = setInterval(refetch, reloadAgainAfter);
|
|
67
|
+
return () => clearInterval(interval);
|
|
68
|
+
}
|
|
69
|
+
}, [reloadAgainAfter, refetch]);
|
|
70
|
+
// Update query params when normalized params change
|
|
71
|
+
(0, react_1.useEffect)(() => {
|
|
72
|
+
if (!(0, deep_equal_1.default)(normalizedParams, queryParams)) {
|
|
73
|
+
setQueryParams(normalizedParams);
|
|
74
|
+
setIsRefetch(true);
|
|
75
|
+
}
|
|
76
|
+
}, [normalizedParams]);
|
|
77
|
+
// Handle loading states
|
|
78
|
+
if (isLoading || (isRefetch && isFetching)) {
|
|
79
|
+
return (
|
|
80
|
+
// <LoadingComponent className={twMerge("", loadingComponentClassName)} />
|
|
81
|
+
(0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, {}));
|
|
82
|
+
}
|
|
83
|
+
// Handle error states
|
|
84
|
+
if (isError) {
|
|
85
|
+
const errorStates = {
|
|
86
|
+
FETCH_ERROR: {
|
|
87
|
+
Icon: lucide_react_1.CloudOffIcon,
|
|
88
|
+
message: "Não é Possível Conectar ao Servidor Ou Tente Verificar Sua Conexão a Internet!",
|
|
89
|
+
},
|
|
90
|
+
"404": {
|
|
91
|
+
Icon: lucide_react_1.MehIcon,
|
|
92
|
+
message: notFoundMessage,
|
|
93
|
+
},
|
|
94
|
+
default: {
|
|
95
|
+
Icon: lucide_react_1.FrownIcon,
|
|
96
|
+
message: errorMessage,
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
const errorConfig = error?.status
|
|
100
|
+
? errorStates[error.status] || errorStates.default
|
|
101
|
+
: errorStates.default;
|
|
102
|
+
return (0, jsx_runtime_1.jsx)(ErrorComponent, { ...errorConfig, triggerRefetch: refetch });
|
|
103
|
+
}
|
|
104
|
+
// Handle success state
|
|
105
|
+
if (isSuccess && data?.data) {
|
|
106
|
+
const hasData = Array.isArray(data.data) ? data.data.length > 0 : true;
|
|
107
|
+
if (hasData) {
|
|
108
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { className: (0, tailwind_merge_1.twMerge)("", successComponentWrapperClassName), children: [(0, jsx_runtime_1.jsx)(SuccessComponent, { data: data, ...successComponentProps, handleEndReached: handleEndReached, triggerRefetch: refetch }), Array.isArray(data.data) && showReloadAgainButton && ((0, jsx_runtime_1.jsx)(form_1.Button, { isLoading: isLoading, onClick: refetch, className: "self-center justify-self-center p-2 mt-4", children: (0, jsx_runtime_1.jsx)(lucide_react_1.RotateCcwIcon, { className: "size-4", strokeWidth: 3 }) }))] }), isLoadingMore && ((0, jsx_runtime_1.jsx)("div", { className: "block w-full items-center", children: (0, jsx_runtime_1.jsx)("span", { className: "mt-4", children: "Carregando mais..." }) }))] }));
|
|
109
|
+
}
|
|
110
|
+
// No data state
|
|
111
|
+
return ((0, jsx_runtime_1.jsx)(ErrorComponent, { Icon: lucide_react_1.ScanSearchIcon, message: noResourcesMessage, buttonLabel: "Carregar Novamente", triggerRefetch: refetch, error: error }));
|
|
112
|
+
}
|
|
113
|
+
return null;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Component to display error states with an icon and retry button
|
|
117
|
+
*/
|
|
118
|
+
function ErrorComponent({ Icon, message, triggerRefetch, buttonLabel = "Tentar Novamente", error, }) {
|
|
119
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "w-full flex flex-col gap-4 flex-1 max-w-[320px] mx-auto", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex-1 flex items-center justify-center flex-col rounded-md overflow-hidden", children: [(0, jsx_runtime_1.jsxs)("div", { className: "bg-red-500 md:p-6 p-4 w-full items-center flex justify-center rounded-t-md flex-col text-white gap-4", children: [Icon && ((0, jsx_runtime_1.jsx)(Icon, { strokeWidth: 1.5, className: "md:size-24 size-16 text-white" })), (0, jsx_runtime_1.jsx)("p", { className: "text-center text-[0.95rem]", children: message })] }), (0, jsx_runtime_1.jsxs)("div", { className: "rounded-b-md border-2 border-t-0 w-full md:p-6 p-4 flex items-center justify-center flex-col gap-4", children: [error?.data?.message && ((0, jsx_runtime_1.jsx)("p", { className: "text-center py-2", children: error.data.message })), (0, jsx_runtime_1.jsxs)(form_1.Button, { className: "px-4", variant: "destructive", onClick: triggerRefetch, children: [(0, jsx_runtime_1.jsx)(lucide_react_1.RotateCcwIcon, { className: "size-4" }), " ", buttonLabel] })] })] }) }));
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=query-boundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-boundary.js","sourceRoot":"","sources":["../../src/components/query-boundary.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
interface ApiDataResponse<T> {
|
|
2
|
+
data: T;
|
|
3
|
+
total?: number;
|
|
4
|
+
results?: number;
|
|
5
|
+
}
|
|
6
|
+
type SuccessComponentProps<DataType, AdditionalProps = Record<string, any>> = AdditionalProps & {
|
|
7
|
+
data: ApiDataResponse<DataType>;
|
|
8
|
+
hasMoreData?: boolean;
|
|
9
|
+
};
|
|
10
|
+
interface ServerQueryBoundaryProps<DataType, PassedSuccessComponentProps> {
|
|
11
|
+
fetcher: (params: any) => Promise<ApiDataResponse<DataType> | null>;
|
|
12
|
+
params?: Record<string, any>;
|
|
13
|
+
errorMessage?: string;
|
|
14
|
+
noResourcesMessage?: string;
|
|
15
|
+
notFoundMessage?: string;
|
|
16
|
+
SuccessComponent: React.FC<SuccessComponentProps<DataType, PassedSuccessComponentProps>>;
|
|
17
|
+
LoadingComponent?: React.ReactNode;
|
|
18
|
+
successComponentWrapperClassName?: string;
|
|
19
|
+
successComponentProps?: Partial<PassedSuccessComponentProps>;
|
|
20
|
+
}
|
|
21
|
+
export default function ServerQueryBoundary<DataType, PassedSuccessComponentProps>({ fetcher, params, errorMessage, noResourcesMessage, notFoundMessage, SuccessComponent, LoadingComponent, successComponentWrapperClassName, successComponentProps, }: ServerQueryBoundaryProps<DataType, PassedSuccessComponentProps>): Promise<import("react/jsx-runtime").JSX.Element>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=server-query-boundary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-query-boundary.d.ts","sourceRoot":"","sources":["../../../src/components/server/server-query-boundary.tsx"],"names":[],"mappings":"AAKA,UAAU,eAAe,CAAC,CAAC;IACzB,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,KAAK,qBAAqB,CACxB,QAAQ,EACR,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,IACnC,eAAe,GAAG;IACpB,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAQF,UAAU,wBAAwB,CAAC,QAAQ,EAAE,2BAA2B;IACtE,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,KAAK,CAAC,EAAE,CACxB,qBAAqB,CAAC,QAAQ,EAAE,2BAA2B,CAAC,CAC7D,CAAC;IACF,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC,gCAAgC,CAAC,EAAE,MAAM,CAAC;IAC1C,qBAAqB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;CAC9D;AAED,wBAA8B,mBAAmB,CAC/C,QAAQ,EACR,2BAA2B,EAC3B,EACA,OAAO,EACP,MAAW,EACX,YAAoD,EACpD,kBAA0C,EAC1C,eAAsC,EACtC,gBAAgB,EAChB,gBAIC,EACD,gCAAgC,EAChC,qBAAqB,GACtB,EAAE,wBAAwB,CAAC,QAAQ,EAAE,2BAA2B,CAAC,oDA6DjE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = ServerQueryBoundary;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const lucide_react_1 = require("lucide-react");
|
|
6
|
+
const form_1 = require("@nomos-ui/form");
|
|
7
|
+
const tailwind_merge_1 = require("tailwind-merge");
|
|
8
|
+
async function ServerQueryBoundary({ fetcher, params = {}, errorMessage = "An error occurred loading the data!", noResourcesMessage = "No data exists yet!", notFoundMessage = "No data was found!", SuccessComponent, LoadingComponent = ((0, jsx_runtime_1.jsx)("div", { className: "flex justify-center items-center p-8", children: (0, jsx_runtime_1.jsx)("div", { className: "animate-pulse", children: "Loading..." }) })), successComponentWrapperClassName, successComponentProps, }) {
|
|
9
|
+
try {
|
|
10
|
+
const data = await fetcher(params);
|
|
11
|
+
if (data === null) {
|
|
12
|
+
return ((0, jsx_runtime_1.jsx)(ErrorComponent, { Icon: lucide_react_1.MehIcon, message: notFoundMessage, buttonLabel: "Go Back" }));
|
|
13
|
+
}
|
|
14
|
+
const hasData = Array.isArray(data.data)
|
|
15
|
+
? data.data.length > 0
|
|
16
|
+
: data.data !== undefined && data.data !== null;
|
|
17
|
+
if (!hasData) {
|
|
18
|
+
return ((0, jsx_runtime_1.jsx)(ErrorComponent, { Icon: lucide_react_1.ScanSearchIcon, message: noResourcesMessage, buttonLabel: "Reload Page" }));
|
|
19
|
+
}
|
|
20
|
+
const limit = params.limit || 30;
|
|
21
|
+
const hasMoreData = Array.isArray(data.data)
|
|
22
|
+
? data.data.length >= limit && (data.total || 0) > data.data.length
|
|
23
|
+
: false;
|
|
24
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: (0, tailwind_merge_1.twMerge)("", successComponentWrapperClassName), children: (0, jsx_runtime_1.jsx)(SuccessComponent, { data: data, hasMoreData: hasMoreData, ...successComponentProps }) }));
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
if (error.name === "TypeError" && error.message.includes("fetch")) {
|
|
28
|
+
return ((0, jsx_runtime_1.jsx)(ErrorComponent, { Icon: lucide_react_1.CloudOffIcon, message: "Cannot connect to server. Please check your internet connection!", buttonLabel: "Try Again" }));
|
|
29
|
+
}
|
|
30
|
+
return ((0, jsx_runtime_1.jsx)(ErrorComponent, { Icon: lucide_react_1.FrownIcon, message: errorMessage, buttonLabel: "Try Again" }));
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function ErrorComponent({ Icon, message, buttonLabel = "Try Again", }) {
|
|
34
|
+
return ((0, jsx_runtime_1.jsx)("div", { className: "w-full flex flex-col gap-4 flex-1 max-w-[320px] mx-auto", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex-1 flex items-center justify-center flex-col rounded-md overflow-hidden", children: [(0, jsx_runtime_1.jsxs)("div", { className: "bg-red-500 md:p-6 p-4 w-full items-center flex justify-center rounded-t-md flex-col text-white gap-4", children: [(0, jsx_runtime_1.jsx)(Icon, { strokeWidth: 1.5, className: "md:size-24 size-16 text-white" }), (0, jsx_runtime_1.jsx)("p", { className: "text-center text-[0.95rem]", children: message })] }), (0, jsx_runtime_1.jsx)("div", { className: "rounded-b-md border-2 border-t-0 w-full md:p-6 p-4 flex items-center justify-center flex-col gap-4", children: (0, jsx_runtime_1.jsxs)("form", { action: "/refresh", method: "post", children: [(0, jsx_runtime_1.jsx)("input", { type: "hidden", name: "retry", value: "true" }), (0, jsx_runtime_1.jsx)(form_1.Button, { type: "submit", className: "px-4", variant: "destructive", children: buttonLabel })] }) })] }) }));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=server-query-boundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-query-boundary.js","sourceRoot":"","sources":["../../../src/components/server/server-query-boundary.tsx"],"names":[],"mappings":";;AAuCA,sCA8EC;;AApHD,+CAAgF;AAChF,yCAAwC;AACxC,mDAAyC;AAoC1B,KAAK,UAAU,mBAAmB,CAG/C,EACA,OAAO,EACP,MAAM,GAAG,EAAE,EACX,YAAY,GAAG,qCAAqC,EACpD,kBAAkB,GAAG,qBAAqB,EAC1C,eAAe,GAAG,oBAAoB,EACtC,gBAAgB,EAChB,gBAAgB,GAAG,CACjB,gCAAK,SAAS,EAAC,sCAAsC,YACnD,gCAAK,SAAS,EAAC,eAAe,2BAAiB,GAC3C,CACP,EACD,gCAAgC,EAChC,qBAAqB,GAC2C;IAChE,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,CACL,uBAAC,cAAc,IACb,IAAI,EAAE,sBAAO,EACb,OAAO,EAAE,eAAe,EACxB,WAAW,EAAC,SAAS,GACrB,CACH,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YACtB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;QAElD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CACL,uBAAC,cAAc,IACb,IAAI,EAAE,6BAAc,EACpB,OAAO,EAAE,kBAAkB,EAC3B,WAAW,EAAC,aAAa,GACzB,CACH,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAI,MAA8B,CAAC,KAAK,IAAI,EAAE,CAAC;QAC1D,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM;YACnE,CAAC,CAAC,KAAK,CAAC;QAEV,OAAO,CACL,gCAAK,SAAS,EAAE,IAAA,wBAAO,EAAC,EAAE,EAAE,gCAAgC,CAAC,YAC3D,uBAAC,gBAAgB,IACf,IAAI,EAAE,IAAI,EACV,WAAW,EAAE,WAAW,KACnB,qBAA6B,GAClC,GACE,CACP,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAClE,OAAO,CACL,uBAAC,cAAc,IACb,IAAI,EAAE,2BAAY,EAClB,OAAO,EAAC,kEAAkE,EAC1E,WAAW,EAAC,WAAW,GACvB,CACH,CAAC;QACJ,CAAC;QAED,OAAO,CACL,uBAAC,cAAc,IACb,IAAI,EAAE,wBAAS,EACf,OAAO,EAAE,YAAY,EACrB,WAAW,EAAC,WAAW,GACvB,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,IAAI,EACJ,OAAO,EACP,WAAW,GAAG,WAAW,GACN;IACnB,OAAO,CACL,gCAAK,SAAS,EAAC,yDAAyD,YACtE,iCAAK,SAAS,EAAC,6EAA6E,aAC1F,iCAAK,SAAS,EAAC,sGAAsG,aACnH,uBAAC,IAAI,IAAC,WAAW,EAAE,GAAG,EAAE,SAAS,EAAC,+BAA+B,GAAG,EACpE,8BAAG,SAAS,EAAC,4BAA4B,YAAE,OAAO,GAAK,IACnD,EACN,gCAAK,SAAS,EAAC,oGAAoG,YACjH,kCAAM,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,MAAM,aACnC,kCAAO,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,KAAK,EAAC,MAAM,GAAG,EACjD,uBAAC,aAAM,IAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,OAAO,EAAC,aAAa,YACzD,WAAW,GACL,IACJ,GACH,IACF,GACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import ListPage from "../components/pages/list-page/list-page";
|
|
2
|
+
import ListPageTemplate from "../components/pages/list-page/template";
|
|
3
|
+
import ApiProvider, { useApi } from "../components/api-provider";
|
|
4
|
+
import CreateDataModal from "../components/modals/create.modal";
|
|
5
|
+
import UpdateDataModal from "../components/modals/update.modal";
|
|
6
|
+
import CreateDataPage from "../components/pages/create-data-page";
|
|
7
|
+
import UpdateDataPage from "../components/pages/update-data-page";
|
|
8
|
+
import { TableField, TableFieldInputType } from "../components/pages/list-page/table/types";
|
|
9
|
+
export { ListPage, ListPageTemplate, ApiProvider, useApi, CreateDataPage, UpdateDataPage, CreateDataModal, UpdateDataModal, };
|
|
10
|
+
export type { TableField, TableFieldInputType };
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,yCAAyC,CAAC;AAC/D,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,WAAW,EAAE,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,eAAe,MAAM,mCAAmC,CAAC;AAChE,OAAO,eAAe,MAAM,mCAAmC,CAAC;AAChE,OAAO,cAAc,MAAM,sCAAsC,CAAC;AAClE,OAAO,cAAc,MAAM,sCAAsC,CAAC;AAClE,OAAO,EACL,UAAU,EACV,mBAAmB,EACpB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,WAAW,EACX,MAAM,EACN,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,GAChB,CAAC;AAEF,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.UpdateDataModal = exports.CreateDataModal = exports.UpdateDataPage = exports.CreateDataPage = exports.useApi = exports.ApiProvider = exports.ListPageTemplate = exports.ListPage = void 0;
|
|
40
|
+
const list_page_1 = __importDefault(require("../components/pages/list-page/list-page"));
|
|
41
|
+
exports.ListPage = list_page_1.default;
|
|
42
|
+
const template_1 = __importDefault(require("../components/pages/list-page/template"));
|
|
43
|
+
exports.ListPageTemplate = template_1.default;
|
|
44
|
+
const api_provider_1 = __importStar(require("../components/api-provider"));
|
|
45
|
+
exports.ApiProvider = api_provider_1.default;
|
|
46
|
+
Object.defineProperty(exports, "useApi", { enumerable: true, get: function () { return api_provider_1.useApi; } });
|
|
47
|
+
const create_modal_1 = __importDefault(require("../components/modals/create.modal"));
|
|
48
|
+
exports.CreateDataModal = create_modal_1.default;
|
|
49
|
+
const update_modal_1 = __importDefault(require("../components/modals/update.modal"));
|
|
50
|
+
exports.UpdateDataModal = update_modal_1.default;
|
|
51
|
+
const create_data_page_1 = __importDefault(require("../components/pages/create-data-page"));
|
|
52
|
+
exports.CreateDataPage = create_data_page_1.default;
|
|
53
|
+
const update_data_page_1 = __importDefault(require("../components/pages/update-data-page"));
|
|
54
|
+
exports.UpdateDataPage = update_data_page_1.default;
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/exports/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wFAA+D;AAa7D,mBAbK,mBAAQ,CAaL;AAZV,sFAAsE;AAapE,2BAbK,kBAAgB,CAaL;AAZlB,2EAAiE;AAa/D,sBAbK,sBAAW,CAaL;AACX,uFAdoB,qBAAM,OAcpB;AAbR,qFAAgE;AAgB9D,0BAhBK,sBAAe,CAgBL;AAfjB,qFAAgE;AAgB9D,0BAhBK,sBAAe,CAgBL;AAfjB,4FAAkE;AAYhE,yBAZK,0BAAc,CAYL;AAXhB,4FAAkE;AAYhE,yBAZK,0BAAc,CAYL"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-update-search-params.d.ts","sourceRoot":"","sources":["../../src/hooks/use-update-search-params.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,qBAAqB,KAG1B,QAAQ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,UAK3D"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = useUpdateSearchParams;
|
|
4
|
+
const navigation_1 = require("next/navigation");
|
|
5
|
+
function useUpdateSearchParams() {
|
|
6
|
+
const router = (0, navigation_1.useRouter)();
|
|
7
|
+
return function (fields) {
|
|
8
|
+
const url = new URL(location.href);
|
|
9
|
+
fields.forEach((field) => url.searchParams.set(field.name, field.value));
|
|
10
|
+
router.push(url.href);
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=use-update-search-params.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-update-search-params.js","sourceRoot":"","sources":["../../src/hooks/use-update-search-params.ts"],"names":[],"mappings":";;AAEA,wCAQC;AAVD,gDAA4C;AAE5C,SAAwB,qBAAqB;IAC3C,MAAM,MAAM,GAAG,IAAA,sBAAS,GAAE,CAAC;IAE3B,OAAO,UAAU,MAAyC;QACxD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACzE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Api, BaseQueryFn, coreModuleName, EndpointBuilder, EndpointDefinition, FetchArgs, FetchBaseQueryError, FetchBaseQueryMeta, MutationDefinition } from "@reduxjs/toolkit/query";
|
|
2
|
+
import { reactHooksModuleName } from "@reduxjs/toolkit/query/react";
|
|
3
|
+
export type ApiDataResponse<T> = {
|
|
4
|
+
data: T;
|
|
5
|
+
total?: number;
|
|
6
|
+
results?: number;
|
|
7
|
+
};
|
|
8
|
+
export type ListTag = {
|
|
9
|
+
type: string;
|
|
10
|
+
id: string;
|
|
11
|
+
};
|
|
12
|
+
export type TagType = string | {
|
|
13
|
+
name: string;
|
|
14
|
+
url: string;
|
|
15
|
+
tagType: string;
|
|
16
|
+
listTag: ListTag | ListTag[];
|
|
17
|
+
getAdditionalTagsFromResult?: (result: Record<string, any>) => ListTag[];
|
|
18
|
+
};
|
|
19
|
+
export type Mutation = MutationDefinition<any, BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, string, any, "api">;
|
|
20
|
+
type EndpointHooks = {
|
|
21
|
+
[x: string]: EndpointDefinition<any, any, any, any, string>;
|
|
22
|
+
};
|
|
23
|
+
export type BaseApi = Api<BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, EndpointHooks, "api", string, typeof coreModuleName | typeof reactHooksModuleName>;
|
|
24
|
+
export type ApiEndpoitBuilder = EndpointBuilder<BaseQueryFn<string | FetchArgs, unknown, FetchBaseQueryError, {}, FetchBaseQueryMeta>, string, "api">;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,WAAW,EACX,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,SAAS,EACT,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAEpE,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAC/B,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,MAAM,MAAM,OAAO,GACf,MAAM,GACN;IACE,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC7B,2BAA2B,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC;CAC1E,CAAC;AAEN,MAAM,MAAM,QAAQ,GAAG,kBAAkB,CACvC,GAAG,EACH,WAAW,CACT,MAAM,GAAG,SAAS,EAClB,OAAO,EACP,mBAAmB,EACnB,EAAE,EACF,kBAAkB,CACnB,EACD,MAAM,EACN,GAAG,EACH,KAAK,CACN,CAAC;AAEF,KAAK,aAAa,GAAG;IACnB,CAAC,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,GAAG,CACvB,WAAW,CACT,MAAM,GAAG,SAAS,EAClB,OAAO,EACP,mBAAmB,EACnB,EAAE,EACF,kBAAkB,CACnB,EACD,aAAa,EACb,KAAK,EACL,MAAM,EACN,OAAO,cAAc,GAAG,OAAO,oBAAoB,CACpD,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,eAAe,CAC7C,WAAW,CACT,MAAM,GAAG,SAAS,EAClB,OAAO,EACP,mBAAmB,EACnB,EAAE,EACF,kBAAkB,CACnB,EACD,MAAM,EACN,KAAK,CACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nomos-ui/uanela-redux-next",
|
|
3
|
+
"version": "0.0.2",
|
|
4
|
+
"description": "Uanela Como Redux & Next ToolKit",
|
|
5
|
+
"module": "dist/exports/index.js",
|
|
6
|
+
"types": "dist/exports/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/exports/index.d.ts",
|
|
10
|
+
"import": "./dist/exports/index.js"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"typesVersions": {
|
|
14
|
+
"*": {
|
|
15
|
+
"components": ["./dist/components/index.d.ts"],
|
|
16
|
+
"hooks": ["./dist/hooks/index.d.ts"],
|
|
17
|
+
"utils": ["./dist/exports/utils/index.d.ts"],
|
|
18
|
+
"types": ["./dist/types/index.d.ts"]
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"scripts": {
|
|
22
|
+
"build": "trash dist && tsc",
|
|
23
|
+
"dev": "tsc --watch",
|
|
24
|
+
"clean": "rm -rf dist",
|
|
25
|
+
"lint": "eslint src --ext .ts,.tsx",
|
|
26
|
+
"type-check": "tsc --noEmit",
|
|
27
|
+
"test": "jest",
|
|
28
|
+
"test:watch": "jest --watch",
|
|
29
|
+
"test:ui": "jest --ui",
|
|
30
|
+
"test:coverage": "jest --coverage",
|
|
31
|
+
"prepublishOnly": "pnpm run build"
|
|
32
|
+
},
|
|
33
|
+
"keywords": [],
|
|
34
|
+
"author": "Uanela Como",
|
|
35
|
+
"files": ["dist", "README.md", "LICENSE"],
|
|
36
|
+
"license": "MIT",
|
|
37
|
+
"packageManager": "pnpm@10.13.1",
|
|
38
|
+
"devDependencies": {
|
|
39
|
+
"@reduxjs/toolkit": "^2.11.2",
|
|
40
|
+
"@types/deep-equal": "^1.0.4",
|
|
41
|
+
"@types/node": "^25.0.6",
|
|
42
|
+
"@types/pluralize": "^0.0.33",
|
|
43
|
+
"@types/react": "^19.2.8",
|
|
44
|
+
"@types/react-redux": "^7.1.34",
|
|
45
|
+
"@types/uuid4": "^2.0.3",
|
|
46
|
+
"change-case-all": "^2.1.0",
|
|
47
|
+
"deep-equal": "^2.2.3",
|
|
48
|
+
"lucide-react": "^0.562.0",
|
|
49
|
+
"next": "15.5.9",
|
|
50
|
+
"pluralize": "^8.0.0",
|
|
51
|
+
"react": "^19.2.3",
|
|
52
|
+
"react-hook-form": "^7.70.0",
|
|
53
|
+
"react-redux": "^9.2.0",
|
|
54
|
+
"tailwind-merge": "^3.4.0",
|
|
55
|
+
"typescript": "^5.9.3",
|
|
56
|
+
"zod": "^4.3.5"
|
|
57
|
+
},
|
|
58
|
+
"peerDependencies": {
|
|
59
|
+
"@nomos-ui/common": "^0.2.5",
|
|
60
|
+
"@nomos-ui/form": "^0.0.10",
|
|
61
|
+
"@reduxjs/toolkit": "^2.11.2",
|
|
62
|
+
"change-case-all": "^2.1.0",
|
|
63
|
+
"deep-equal": "^2.2.3",
|
|
64
|
+
"lucide-react": "^0.562.0",
|
|
65
|
+
"next": "15.5.9",
|
|
66
|
+
"pluralize": "^8.0.0",
|
|
67
|
+
"react": "^19.2.3",
|
|
68
|
+
"react-hook-form": "^7.70.0",
|
|
69
|
+
"react-redux": "^9.2.0",
|
|
70
|
+
"tailwind-merge": "^3.4.0",
|
|
71
|
+
"zod": "^4.3.5"
|
|
72
|
+
},
|
|
73
|
+
"dependencies": {
|
|
74
|
+
"uuid4": "^2.0.3"
|
|
75
|
+
}
|
|
76
|
+
}
|