@nocios/crudify-ui 1.3.2 → 1.3.6

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 CHANGED
@@ -29,7 +29,7 @@ npm install @mui/material @mui/icons-material react react-dom
29
29
  ### 1. Configurar SessionProvider
30
30
 
31
31
  ```tsx
32
- import { SessionProvider } from '@nocios/crudify-ui';
32
+ import { SessionProvider } from "@nocios/crudify-ui";
33
33
 
34
34
  function App() {
35
35
  return (
@@ -53,13 +53,13 @@ REACT_APP_CRUDIFY_ENV=dev
53
53
  ### useAuth - Autenticación
54
54
 
55
55
  ```tsx
56
- import { useAuth } from '@nocios/crudify-ui';
56
+ import { useAuth } from "@nocios/crudify-ui";
57
57
 
58
58
  function LoginComponent() {
59
59
  const { login, logout, isAuthenticated, isLoading } = useAuth();
60
60
 
61
61
  const handleLogin = async () => {
62
- const result = await login('user@example.com', 'password');
62
+ const result = await login("user@example.com", "password");
63
63
  };
64
64
 
65
65
  return isAuthenticated ? (
@@ -75,7 +75,7 @@ function LoginComponent() {
75
75
  ### useUserData - Datos del Usuario
76
76
 
77
77
  ```tsx
78
- import { useUserData } from '@nocios/crudify-ui';
78
+ import { useUserData } from "@nocios/crudify-ui";
79
79
 
80
80
  function UserProfile() {
81
81
  const { userData, sessionData, isLoading } = useUserData();
@@ -95,22 +95,20 @@ function UserProfile() {
95
95
  ### useData - Operaciones CRUD
96
96
 
97
97
  ```tsx
98
- import { useData } from '@nocios/crudify-ui';
98
+ import { useData } from "@nocios/crudify-ui";
99
99
 
100
100
  function ProductManager() {
101
101
  const { create, read, update, remove } = useData();
102
102
 
103
103
  const createProduct = async () => {
104
- await create('products', { name: 'Nuevo Producto', price: 99.99 });
104
+ await create("products", { name: "Nuevo Producto", price: 99.99 });
105
105
  };
106
106
 
107
107
  const getProducts = async () => {
108
- const products = await read('products', { limit: 10 });
108
+ const products = await read("products", { limit: 10 });
109
109
  };
110
110
 
111
- return (
112
- <button onClick={createProduct}>Crear Producto</button>
113
- );
111
+ return <button onClick={createProduct}>Crear Producto</button>;
114
112
  }
115
113
  ```
116
114
 
@@ -119,7 +117,7 @@ function ProductManager() {
119
117
  ### CrudifyLogin - Login Completo
120
118
 
121
119
  ```tsx
122
- import { CrudifyLogin } from '@nocios/crudify-ui';
120
+ import { CrudifyLogin } from "@nocios/crudify-ui";
123
121
 
124
122
  function AuthPage() {
125
123
  return (
@@ -127,10 +125,10 @@ function AuthPage() {
127
125
  config={{
128
126
  appName: "Mi App",
129
127
  logo: "/logo.png",
130
- colors: { primaryColor: "#1976d2" }
128
+ colors: { primaryColor: "#1976d2" },
131
129
  }}
132
130
  onLoginSuccess={(userData) => {
133
- console.log('Login exitoso:', userData);
131
+ console.log("Login exitoso:", userData);
134
132
  }}
135
133
  language="es"
136
134
  />
@@ -141,7 +139,7 @@ function AuthPage() {
141
139
  ### ProtectedRoute - Protección de Rutas
142
140
 
143
141
  ```tsx
144
- import { ProtectedRoute } from '@nocios/crudify-ui';
142
+ import { ProtectedRoute } from "@nocios/crudify-ui";
145
143
 
146
144
  function App() {
147
145
  return (
@@ -152,16 +150,29 @@ function App() {
152
150
  }
153
151
  ```
154
152
 
153
+ ### Policies - Gestión de Políticas Públicas
154
+
155
+ ```tsx
156
+ import { Policies, POLICY_ACTIONS, PolicyAction } from "@nocios/crudify-ui";
157
+
158
+ function ModuleConfiguration() {
159
+ const [policies, setPolicies] = useState([]);
160
+ const availableFields = ["name", "email", "description", "status"];
161
+
162
+ return <Policies policies={policies} onChange={setPolicies} availableFields={availableFields} errors={null} isSubmitting={false} />;
163
+ }
164
+ ```
165
+
155
166
  ## 🔄 API de Crudify Browser
156
167
 
157
168
  Re-exporta completamente `@nocios/crudify-browser`:
158
169
 
159
170
  ```tsx
160
- import { crudify } from '@nocios/crudify-ui';
171
+ import { crudify } from "@nocios/crudify-ui";
161
172
 
162
173
  // Usar directamente la API de crudify
163
- const result = await crudify.create('users', userData);
164
- const users = await crudify.read('users');
174
+ const result = await crudify.create("users", userData);
175
+ const users = await crudify.read("users");
165
176
  ```
166
177
 
167
178
  ## 🛠️ Utilidades
@@ -169,7 +180,7 @@ const users = await crudify.read('users');
169
180
  ### JWT Utils
170
181
 
171
182
  ```tsx
172
- import { decodeJwtSafely, getCurrentUserEmail } from '@nocios/crudify-ui';
183
+ import { decodeJwtSafely, getCurrentUserEmail } from "@nocios/crudify-ui";
173
184
 
174
185
  const payload = decodeJwtSafely(token);
175
186
  const email = getCurrentUserEmail();
@@ -178,7 +189,7 @@ const email = getCurrentUserEmail();
178
189
  ### Error Handler
179
190
 
180
191
  ```tsx
181
- import { handleCrudifyError, getErrorMessage } from '@nocios/crudify-ui';
192
+ import { handleCrudifyError, getErrorMessage } from "@nocios/crudify-ui";
182
193
 
183
194
  try {
184
195
  // operación
@@ -191,14 +202,9 @@ try {
191
202
  ## 🚀 Ejemplo Completo
192
203
 
193
204
  ```tsx
194
- import React from 'react';
195
- import { BrowserRouter, Routes, Route } from 'react-router-dom';
196
- import {
197
- SessionProvider,
198
- ProtectedRoute,
199
- CrudifyLogin,
200
- useSessionContext
201
- } from '@nocios/crudify-ui';
205
+ import React from "react";
206
+ import { BrowserRouter, Routes, Route } from "react-router-dom";
207
+ import { SessionProvider, ProtectedRoute, CrudifyLogin, useSessionContext } from "@nocios/crudify-ui";
202
208
 
203
209
  function Dashboard() {
204
210
  const { sessionData, logout } = useSessionContext();
@@ -214,11 +220,8 @@ function Dashboard() {
214
220
 
215
221
  function LoginPage() {
216
222
  return (
217
- <div style={{ maxWidth: '400px', margin: '0 auto' }}>
218
- <CrudifyLogin
219
- config={{ appName: "Mi App" }}
220
- onLoginSuccess={(userData) => console.log('Login:', userData)}
221
- />
223
+ <div style={{ maxWidth: "400px", margin: "0 auto" }}>
224
+ <CrudifyLogin config={{ appName: "Mi App" }} onLoginSuccess={(userData) => console.log("Login:", userData)} />
222
225
  </div>
223
226
  );
224
227
  }
@@ -249,12 +252,7 @@ function App() {
249
252
  Tipos completos incluidos:
250
253
 
251
254
  ```tsx
252
- import type {
253
- CrudifyLoginProps,
254
- UseAuthReturn,
255
- UserProfile,
256
- TokenData
257
- } from '@nocios/crudify-ui';
255
+ import type { CrudifyLoginProps, UseAuthReturn, UserProfile, TokenData } from "@nocios/crudify-ui";
258
256
  ```
259
257
 
260
258
  ## 🌐 Internacionalización
@@ -288,4 +286,4 @@ MIT © [Nocios](https://github.com/nocios)
288
286
 
289
287
  ---
290
288
 
291
- **¿Necesitas ayuda?** Consulta [README_DEPTH.md](./README_DEPTH.md) para documentación completa.
289
+ **¿Necesitas ayuda?** Consulta [README_DEPTH.md](./README_DEPTH.md) para documentación completa.