@nestledjs/data-browser 0.1.13 → 0.1.16

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.
@@ -39,7 +39,6 @@ const validateId = (id) => {
39
39
  const sanitized = sanitizeInput(id);
40
40
  if (!sanitized) return null;
41
41
  if (!/^[a-zA-Z0-9_-]+$/.test(sanitized)) {
42
- console.warn(`[Security] Invalid ID format attempted: ${id}`);
43
42
  return null;
44
43
  }
45
44
  return sanitized;
@@ -64,7 +63,6 @@ function AdminDataEditPage() {
64
63
  const properCaseDataType = sanitized.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase()).join("");
65
64
  const model2 = databaseModels.find((m) => m.name === properCaseDataType);
66
65
  if (!model2) {
67
- console.warn(`[Security] Invalid dataType attempted: ${dataType2}`);
68
66
  return null;
69
67
  }
70
68
  return properCaseDataType;
@@ -77,84 +75,84 @@ function AdminDataEditPage() {
77
75
  if (shouldShowUnauthorized) {
78
76
  return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col justify-center py-12", __self: this, __source: {
79
77
  fileName: _jsxFileName,
80
- lineNumber: 118,
78
+ lineNumber: 116,
81
79
  columnNumber: 7
82
80
  } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 mx-auto w-full max-w-md", __self: this, __source: {
83
81
  fileName: _jsxFileName,
84
- lineNumber: 119,
82
+ lineNumber: 117,
85
83
  columnNumber: 9
86
84
  } }, /* @__PURE__ */ React.createElement("div", { className: "bg-white dark:bg-gray-800 py-8 px-4 shadow sm:rounded-lg sm:px-10", __self: this, __source: {
87
85
  fileName: _jsxFileName,
88
- lineNumber: 120,
86
+ lineNumber: 118,
89
87
  columnNumber: 11
90
88
  } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
91
89
  fileName: _jsxFileName,
92
- lineNumber: 121,
90
+ lineNumber: 119,
93
91
  columnNumber: 13
94
92
  } }, /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-red-400", __self: this, __source: {
95
93
  fileName: _jsxFileName,
96
- lineNumber: 122,
94
+ lineNumber: 120,
97
95
  columnNumber: 15
98
96
  } }), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", __self: this, __source: {
99
97
  fileName: _jsxFileName,
100
- lineNumber: 123,
98
+ lineNumber: 121,
101
99
  columnNumber: 15
102
100
  } }, "Unauthorized"), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", __self: this, __source: {
103
101
  fileName: _jsxFileName,
104
- lineNumber: 124,
102
+ lineNumber: 122,
105
103
  columnNumber: 15
106
104
  } }, "Invalid data type, ID, or insufficient permissions."), /* @__PURE__ */ React.createElement("div", { className: "mt-6", __self: this, __source: {
107
105
  fileName: _jsxFileName,
108
- lineNumber: 127,
106
+ lineNumber: 125,
109
107
  columnNumber: 15
110
108
  } }, /* @__PURE__ */ React.createElement(Link, { to: basePath, className: "w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-green-web hover:bg-green-web-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web", __self: this, __source: {
111
109
  fileName: _jsxFileName,
112
- lineNumber: 128,
110
+ lineNumber: 126,
113
111
  columnNumber: 17
114
112
  } }, "Return to Data Browser"))))));
115
113
  }
116
114
  if (shouldShowModelNotFound) {
117
115
  return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col justify-center py-12", __self: this, __source: {
118
116
  fileName: _jsxFileName,
119
- lineNumber: 144,
117
+ lineNumber: 142,
120
118
  columnNumber: 7
121
119
  } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 mx-auto w-full max-w-md", __self: this, __source: {
122
120
  fileName: _jsxFileName,
123
- lineNumber: 145,
121
+ lineNumber: 143,
124
122
  columnNumber: 9
125
123
  } }, /* @__PURE__ */ React.createElement("div", { className: "bg-white dark:bg-gray-800 py-8 px-4 shadow sm:rounded-lg sm:px-10", __self: this, __source: {
126
124
  fileName: _jsxFileName,
127
- lineNumber: 146,
125
+ lineNumber: 144,
128
126
  columnNumber: 11
129
127
  } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
130
128
  fileName: _jsxFileName,
131
- lineNumber: 147,
129
+ lineNumber: 145,
132
130
  columnNumber: 13
133
131
  } }, /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-yellow-400", __self: this, __source: {
134
132
  fileName: _jsxFileName,
135
- lineNumber: 148,
133
+ lineNumber: 146,
136
134
  columnNumber: 15
137
135
  } }), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", __self: this, __source: {
138
136
  fileName: _jsxFileName,
139
- lineNumber: 149,
137
+ lineNumber: 147,
140
138
  columnNumber: 15
141
139
  } }, "Model Not Found"), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", __self: this, __source: {
142
140
  fileName: _jsxFileName,
143
- lineNumber: 150,
141
+ lineNumber: 148,
144
142
  columnNumber: 15
145
143
  } }, 'The data model for "', validatedDataType, '" could not be found.'), /* @__PURE__ */ React.createElement("div", { className: "mt-6", __self: this, __source: {
146
144
  fileName: _jsxFileName,
147
- lineNumber: 153,
145
+ lineNumber: 151,
148
146
  columnNumber: 15
149
147
  } }, /* @__PURE__ */ React.createElement(Link, { to: basePath, className: "w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-green-web hover:bg-green-web-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web", __self: this, __source: {
150
148
  fileName: _jsxFileName,
151
- lineNumber: 154,
149
+ lineNumber: 152,
152
150
  columnNumber: 17
153
151
  } }, "Return to Data Browser"))))));
154
152
  }
155
153
  return /* @__PURE__ */ React.createElement(AdminDataEditPageContent, { model, id: validatedId, basePath, formTheme, __self: this, __source: {
156
154
  fileName: _jsxFileName,
157
- lineNumber: 169,
155
+ lineNumber: 167,
158
156
  columnNumber: 10
159
157
  } });
160
158
  }
@@ -166,7 +164,8 @@ function AdminDataEditPageContent({
166
164
  }) {
167
165
  const navigate = useNavigate();
168
166
  const {
169
- sdk
167
+ sdk,
168
+ databaseModels
170
169
  } = useAdminDataContext();
171
170
  const [submissionState, setSubmissionState] = useState({
172
171
  status: "idle"
@@ -179,7 +178,6 @@ function AdminDataEditPageContent({
179
178
  try {
180
179
  return getAdminDocuments(sdk, model);
181
180
  } catch (error2) {
182
- console.error("[AdminDataEditPage] Error getting documents:", error2);
183
181
  return null;
184
182
  }
185
183
  }, [sdk, model]);
@@ -192,7 +190,6 @@ function AdminDataEditPageContent({
192
190
  }
193
191
  return gql(documents.query);
194
192
  } catch (error2) {
195
- console.error("[AdminDataEditPage] Error parsing QUERY:", error2);
196
193
  return null;
197
194
  }
198
195
  }, [documents]);
@@ -205,7 +202,6 @@ function AdminDataEditPageContent({
205
202
  }
206
203
  return gql(documents.update);
207
204
  } catch (error2) {
208
- console.error("[AdminDataEditPage] Error parsing UPDATE mutation:", error2);
209
205
  return null;
210
206
  }
211
207
  }, [documents]);
@@ -218,7 +214,6 @@ function AdminDataEditPageContent({
218
214
  }
219
215
  return gql(documents.delete);
220
216
  } catch (error2) {
221
- console.error("[AdminDataEditPage] Error parsing DELETE mutation:", error2);
222
217
  return null;
223
218
  }
224
219
  }, [documents]);
@@ -273,113 +268,113 @@ function AdminDataEditPageContent({
273
268
  if (!documents || !QUERY || !UPDATE_MUTATION || !DELETE_MUTATION) {
274
269
  return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col justify-center py-12", __self: this, __source: {
275
270
  fileName: _jsxFileName,
276
- lineNumber: 305,
271
+ lineNumber: 299,
277
272
  columnNumber: 7
278
273
  } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 mx-auto w-full max-w-2xl", __self: this, __source: {
279
274
  fileName: _jsxFileName,
280
- lineNumber: 306,
275
+ lineNumber: 300,
281
276
  columnNumber: 9
282
277
  } }, /* @__PURE__ */ React.createElement("div", { className: "bg-white dark:bg-gray-800 py-8 px-4 shadow sm:rounded-lg sm:px-10", __self: this, __source: {
283
278
  fileName: _jsxFileName,
284
- lineNumber: 307,
279
+ lineNumber: 301,
285
280
  columnNumber: 11
286
281
  } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
287
282
  fileName: _jsxFileName,
288
- lineNumber: 308,
283
+ lineNumber: 302,
289
284
  columnNumber: 13
290
285
  } }, /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-red-400", __self: this, __source: {
291
286
  fileName: _jsxFileName,
292
- lineNumber: 309,
287
+ lineNumber: 303,
293
288
  columnNumber: 15
294
289
  } }), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", __self: this, __source: {
295
290
  fileName: _jsxFileName,
296
- lineNumber: 310,
291
+ lineNumber: 304,
297
292
  columnNumber: 15
298
293
  } }, "GraphQL Schema Error"), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", __self: this, __source: {
299
294
  fileName: _jsxFileName,
300
- lineNumber: 311,
295
+ lineNumber: 305,
301
296
  columnNumber: 15
302
297
  } }, "Unable to load GraphQL documents for this model. Please ensure the API server is running and the GraphQL schema is up to date."), /* @__PURE__ */ React.createElement("div", { className: "mt-6", __self: this, __source: {
303
298
  fileName: _jsxFileName,
304
- lineNumber: 315,
299
+ lineNumber: 309,
305
300
  columnNumber: 15
306
301
  } }, /* @__PURE__ */ React.createElement(Link, { to: basePath, className: "w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-green-web hover:bg-green-web-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web", __self: this, __source: {
307
302
  fileName: _jsxFileName,
308
- lineNumber: 316,
303
+ lineNumber: 310,
309
304
  columnNumber: 17
310
305
  } }, "Return to Data Browser"))))));
311
306
  }
312
307
  if (error) {
313
308
  return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col justify-center py-12", __self: this, __source: {
314
309
  fileName: _jsxFileName,
315
- lineNumber: 333,
310
+ lineNumber: 327,
316
311
  columnNumber: 7
317
312
  } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 mx-auto w-full max-w-md", __self: this, __source: {
318
313
  fileName: _jsxFileName,
319
- lineNumber: 334,
314
+ lineNumber: 328,
320
315
  columnNumber: 9
321
316
  } }, /* @__PURE__ */ React.createElement("div", { className: "bg-white dark:bg-gray-800 py-8 px-4 shadow sm:rounded-lg sm:px-10", __self: this, __source: {
322
317
  fileName: _jsxFileName,
323
- lineNumber: 335,
318
+ lineNumber: 329,
324
319
  columnNumber: 11
325
320
  } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
326
321
  fileName: _jsxFileName,
327
- lineNumber: 336,
322
+ lineNumber: 330,
328
323
  columnNumber: 13
329
324
  } }, /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-red-400", __self: this, __source: {
330
325
  fileName: _jsxFileName,
331
- lineNumber: 337,
326
+ lineNumber: 331,
332
327
  columnNumber: 15
333
328
  } }), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", __self: this, __source: {
334
329
  fileName: _jsxFileName,
335
- lineNumber: 338,
330
+ lineNumber: 332,
336
331
  columnNumber: 15
337
332
  } }, "Error Loading Data"), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", __self: this, __source: {
338
333
  fileName: _jsxFileName,
339
- lineNumber: 339,
334
+ lineNumber: 333,
340
335
  columnNumber: 15
341
336
  } }, error.message), /* @__PURE__ */ React.createElement("div", { className: "mt-6 space-y-3", __self: this, __source: {
342
337
  fileName: _jsxFileName,
343
- lineNumber: 340,
338
+ lineNumber: 334,
344
339
  columnNumber: 15
345
340
  } }, /* @__PURE__ */ React.createElement("button", { onClick: () => refetch(), className: "w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-green-web hover:bg-green-web-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web", __self: this, __source: {
346
341
  fileName: _jsxFileName,
347
- lineNumber: 341,
342
+ lineNumber: 335,
348
343
  columnNumber: 17
349
344
  } }, "Try Again"), /* @__PURE__ */ React.createElement(Link, { to: `${basePath}/${toKebabCase(model.pluralName)}`, className: "w-full flex justify-center py-2 px-4 border border-gray-300 rounded-md shadow-sm text-sm font-medium text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web", __self: this, __source: {
350
345
  fileName: _jsxFileName,
351
- lineNumber: 347,
346
+ lineNumber: 341,
352
347
  columnNumber: 17
353
348
  } }, "Back to List"))))));
354
349
  }
355
350
  if (loading) {
356
351
  return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col justify-center py-12", __self: this, __source: {
357
352
  fileName: _jsxFileName,
358
- lineNumber: 364,
353
+ lineNumber: 358,
359
354
  columnNumber: 7
360
355
  } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 mx-auto w-full max-w-md", __self: this, __source: {
361
356
  fileName: _jsxFileName,
362
- lineNumber: 365,
357
+ lineNumber: 359,
363
358
  columnNumber: 9
364
359
  } }, /* @__PURE__ */ React.createElement("div", { className: "bg-white dark:bg-gray-800 py-8 px-4 shadow sm:rounded-lg sm:px-10", __self: this, __source: {
365
360
  fileName: _jsxFileName,
366
- lineNumber: 366,
361
+ lineNumber: 360,
367
362
  columnNumber: 11
368
363
  } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
369
364
  fileName: _jsxFileName,
370
- lineNumber: 367,
365
+ lineNumber: 361,
371
366
  columnNumber: 13
372
367
  } }, /* @__PURE__ */ React.createElement("div", { className: "mx-auto h-12 w-12 border-4 border-green-web border-t-transparent rounded-full animate-spin", __self: this, __source: {
373
368
  fileName: _jsxFileName,
374
- lineNumber: 368,
369
+ lineNumber: 362,
375
370
  columnNumber: 15
376
371
  } }), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", __self: this, __source: {
377
372
  fileName: _jsxFileName,
378
- lineNumber: 369,
373
+ lineNumber: 363,
379
374
  columnNumber: 15
380
375
  } }, "Loading..."), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", __self: this, __source: {
381
376
  fileName: _jsxFileName,
382
- lineNumber: 370,
377
+ lineNumber: 364,
383
378
  columnNumber: 15
384
379
  } }, "Loading ", toReadableText(model.name), " data...")))));
385
380
  }
@@ -387,43 +382,43 @@ function AdminDataEditPageContent({
387
382
  if (!item) {
388
383
  return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col justify-center py-12", __self: this, __source: {
389
384
  fileName: _jsxFileName,
390
- lineNumber: 385,
385
+ lineNumber: 379,
391
386
  columnNumber: 7
392
387
  } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 mx-auto w-full max-w-md", __self: this, __source: {
393
388
  fileName: _jsxFileName,
394
- lineNumber: 386,
389
+ lineNumber: 380,
395
390
  columnNumber: 9
396
391
  } }, /* @__PURE__ */ React.createElement("div", { className: "bg-white dark:bg-gray-800 py-8 px-4 shadow sm:rounded-lg sm:px-10", __self: this, __source: {
397
392
  fileName: _jsxFileName,
398
- lineNumber: 387,
393
+ lineNumber: 381,
399
394
  columnNumber: 11
400
395
  } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
401
396
  fileName: _jsxFileName,
402
- lineNumber: 388,
397
+ lineNumber: 382,
403
398
  columnNumber: 13
404
399
  } }, /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-yellow-400", __self: this, __source: {
405
400
  fileName: _jsxFileName,
406
- lineNumber: 389,
401
+ lineNumber: 383,
407
402
  columnNumber: 15
408
403
  } }), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", __self: this, __source: {
409
404
  fileName: _jsxFileName,
410
- lineNumber: 390,
405
+ lineNumber: 384,
411
406
  columnNumber: 15
412
407
  } }, "Not Found"), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", __self: this, __source: {
413
408
  fileName: _jsxFileName,
414
- lineNumber: 391,
409
+ lineNumber: 385,
415
410
  columnNumber: 15
416
411
  } }, "The ", toReadableText(model.name), " you're looking for doesn't exist or has been deleted."), /* @__PURE__ */ React.createElement("div", { className: "mt-6", __self: this, __source: {
417
412
  fileName: _jsxFileName,
418
- lineNumber: 395,
413
+ lineNumber: 389,
419
414
  columnNumber: 15
420
415
  } }, /* @__PURE__ */ React.createElement(Link, { to: `${basePath}/${toKebabCase(model.pluralName)}`, className: "w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white bg-green-web hover:bg-green-web-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web", __self: this, __source: {
421
416
  fileName: _jsxFileName,
422
- lineNumber: 396,
417
+ lineNumber: 390,
423
418
  columnNumber: 17
424
419
  } }, "Back to List"))))));
425
420
  }
426
- const formFields = buildFormFields(sdk, model, "update", item, submissionState.status === "loading", basePath);
421
+ const formFields = buildFormFields(sdk, model, "update", item, submissionState.status === "loading", basePath, databaseModels);
427
422
  const initialValues = {};
428
423
  if (item) {
429
424
  const editableFields = model.fields.filter((field) => {
@@ -455,7 +450,6 @@ function AdminDataEditPageContent({
455
450
  value = isoString.substring(0, 16);
456
451
  }
457
452
  } catch (e) {
458
- console.warn(`Failed to convert date value for field ${field.name}:`, e);
459
453
  value = "";
460
454
  }
461
455
  } else {
@@ -469,7 +463,6 @@ function AdminDataEditPageContent({
469
463
  value = Boolean(value);
470
464
  }
471
465
  if (value !== null && typeof value === "object") {
472
- console.warn(`Field ${field.name} has object value, converting to string:`, value);
473
466
  if (typeof value === "object" && "id" in value) {
474
467
  value = value.id;
475
468
  } else {
@@ -481,7 +474,6 @@ function AdminDataEditPageContent({
481
474
  });
482
475
  for (const [key, value] of Object.entries(initialValues)) {
483
476
  if (value === void 0) {
484
- console.warn(`[AdminDataEditPage] Found undefined value for field ${key}, converting to empty string`);
485
477
  initialValues[key] = "";
486
478
  continue;
487
479
  }
@@ -491,7 +483,6 @@ function AdminDataEditPageContent({
491
483
  if (typeof value !== "object") {
492
484
  continue;
493
485
  }
494
- console.warn(`[AdminDataEditPage] Found non-primitive value for field ${key}, converting:`, value);
495
486
  if ("id" in value && typeof value.id === "string") {
496
487
  initialValues[key] = value.id;
497
488
  } else if (value instanceof Date) {
@@ -501,13 +492,6 @@ function AdminDataEditPageContent({
501
492
  initialValues[key] = "";
502
493
  }
503
494
  }
504
- console.log("[AdminDataEditPage] Final initialValues:", initialValues);
505
- console.log("[AdminDataEditPage] Value types:", Object.entries(initialValues).map(([key, val]) => ({
506
- key,
507
- type: typeof val,
508
- isDate: val instanceof Date,
509
- value: val
510
- })));
511
495
  }
512
496
  const handleSubmit = async (formData) => {
513
497
  try {
@@ -522,7 +506,6 @@ function AdminDataEditPageContent({
522
506
  }
523
507
  });
524
508
  if (result.errors) {
525
- console.error("GraphQL errors:", result.errors);
526
509
  setSubmissionState({
527
510
  status: "error",
528
511
  message: result.errors.map((err) => err.message).join(", ")
@@ -535,7 +518,6 @@ function AdminDataEditPageContent({
535
518
  });
536
519
  await refetch();
537
520
  } catch (error2) {
538
- console.error("Error updating record:", error2);
539
521
  setSubmissionState({
540
522
  status: "error",
541
523
  message: error2 instanceof Error ? error2.message : "An unexpected error occurred"
@@ -553,7 +535,6 @@ function AdminDataEditPageContent({
553
535
  }
554
536
  });
555
537
  if (result.errors) {
556
- console.error("GraphQL errors:", result.errors);
557
538
  setDeleteState({
558
539
  status: "error",
559
540
  message: result.errors.map((err) => err.message).join(", ")
@@ -568,7 +549,6 @@ function AdminDataEditPageContent({
568
549
  navigate(`${basePath}/${toKebabCase(model.pluralName)}`);
569
550
  }, 1500);
570
551
  } catch (error2) {
571
- console.error("Error deleting record:", error2);
572
552
  setDeleteState({
573
553
  status: "error",
574
554
  message: error2 instanceof Error ? error2.message : "An unexpected error occurred"
@@ -577,175 +557,175 @@ function AdminDataEditPageContent({
577
557
  };
578
558
  return /* @__PURE__ */ React.createElement("div", { className: "space-y-6", __self: this, __source: {
579
559
  fileName: _jsxFileName,
580
- lineNumber: 614,
560
+ lineNumber: 591,
581
561
  columnNumber: 5
582
562
  } }, /* @__PURE__ */ React.createElement("div", { className: "mb-8", __self: this, __source: {
583
563
  fileName: _jsxFileName,
584
- lineNumber: 616,
564
+ lineNumber: 593,
585
565
  columnNumber: 7
586
566
  } }, /* @__PURE__ */ React.createElement("nav", { className: "flex mb-6", "aria-label": "Breadcrumb", __self: this, __source: {
587
567
  fileName: _jsxFileName,
588
- lineNumber: 617,
568
+ lineNumber: 594,
589
569
  columnNumber: 11
590
570
  } }, /* @__PURE__ */ React.createElement("ol", { className: "flex items-center space-x-4", __self: this, __source: {
591
571
  fileName: _jsxFileName,
592
- lineNumber: 618,
572
+ lineNumber: 595,
593
573
  columnNumber: 13
594
574
  } }, /* @__PURE__ */ React.createElement("li", { __self: this, __source: {
595
575
  fileName: _jsxFileName,
596
- lineNumber: 619,
576
+ lineNumber: 596,
597
577
  columnNumber: 15
598
578
  } }, /* @__PURE__ */ React.createElement(Link, { to: basePath, className: "text-gray-400 dark:text-gray-500 hover:text-gray-500 dark:hover:text-gray-400", __self: this, __source: {
599
579
  fileName: _jsxFileName,
600
- lineNumber: 620,
580
+ lineNumber: 597,
601
581
  columnNumber: 17
602
582
  } }, "Data Browser")), /* @__PURE__ */ React.createElement("li", { __self: this, __source: {
603
583
  fileName: _jsxFileName,
604
- lineNumber: 624,
584
+ lineNumber: 601,
605
585
  columnNumber: 15
606
586
  } }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center", __self: this, __source: {
607
587
  fileName: _jsxFileName,
608
- lineNumber: 625,
588
+ lineNumber: 602,
609
589
  columnNumber: 17
610
590
  } }, /* @__PURE__ */ React.createElement("svg", { className: "flex-shrink-0 h-5 w-5 text-gray-300 dark:text-gray-600", fill: "currentColor", viewBox: "0 0 20 20", __self: this, __source: {
611
591
  fileName: _jsxFileName,
612
- lineNumber: 626,
592
+ lineNumber: 603,
613
593
  columnNumber: 19
614
594
  } }, /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 111.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z", clipRule: "evenodd", __self: this, __source: {
615
595
  fileName: _jsxFileName,
616
- lineNumber: 631,
596
+ lineNumber: 608,
617
597
  columnNumber: 21
618
598
  } })), /* @__PURE__ */ React.createElement(Link, { to: `${basePath}/${toKebabCase(model.pluralName)}`, className: "ml-4 text-gray-400 dark:text-gray-500 hover:text-gray-500 dark:hover:text-gray-400", __self: this, __source: {
619
599
  fileName: _jsxFileName,
620
- lineNumber: 637,
600
+ lineNumber: 614,
621
601
  columnNumber: 19
622
602
  } }, toReadableText(model.pluralName)))), /* @__PURE__ */ React.createElement("li", { __self: this, __source: {
623
603
  fileName: _jsxFileName,
624
- lineNumber: 645,
604
+ lineNumber: 622,
625
605
  columnNumber: 15
626
606
  } }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center", __self: this, __source: {
627
607
  fileName: _jsxFileName,
628
- lineNumber: 646,
608
+ lineNumber: 623,
629
609
  columnNumber: 17
630
610
  } }, /* @__PURE__ */ React.createElement("svg", { className: "flex-shrink-0 h-5 w-5 text-gray-300 dark:text-gray-600", fill: "currentColor", viewBox: "0 0 20 20", __self: this, __source: {
631
611
  fileName: _jsxFileName,
632
- lineNumber: 647,
612
+ lineNumber: 624,
633
613
  columnNumber: 19
634
614
  } }, /* @__PURE__ */ React.createElement("path", { fillRule: "evenodd", d: "M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 111.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z", clipRule: "evenodd", __self: this, __source: {
635
615
  fileName: _jsxFileName,
636
- lineNumber: 652,
616
+ lineNumber: 629,
637
617
  columnNumber: 21
638
618
  } })), /* @__PURE__ */ React.createElement("span", { className: "ml-4 text-gray-500 dark:text-gray-400", __self: this, __source: {
639
619
  fileName: _jsxFileName,
640
- lineNumber: 658,
620
+ lineNumber: 635,
641
621
  columnNumber: 19
642
622
  } }, "Edit"))))), /* @__PURE__ */ React.createElement("div", { className: "flex items-center justify-between", __self: this, __source: {
643
623
  fileName: _jsxFileName,
644
- lineNumber: 663,
624
+ lineNumber: 640,
645
625
  columnNumber: 11
646
626
  } }, /* @__PURE__ */ React.createElement("h1", { className: "text-3xl font-bold text-gray-900 dark:text-gray-100", __self: this, __source: {
647
627
  fileName: _jsxFileName,
648
- lineNumber: 664,
628
+ lineNumber: 641,
649
629
  columnNumber: 13
650
630
  } }, "Edit ", toReadableText(model.name)), /* @__PURE__ */ React.createElement("button", { onClick: () => setShowDeleteConfirm(true), disabled: deleteState.status === "loading", className: "inline-flex items-center px-3 py-2 border border-red-300 shadow-sm text-sm leading-4 font-medium rounded-md text-red-700 bg-white hover:bg-red-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 disabled:opacity-50 disabled:cursor-not-allowed", __self: this, __source: {
651
631
  fileName: _jsxFileName,
652
- lineNumber: 665,
632
+ lineNumber: 642,
653
633
  columnNumber: 13
654
634
  } }, /* @__PURE__ */ React.createElement(TrashIcon, { className: "h-4 w-4 mr-2", __self: this, __source: {
655
635
  fileName: _jsxFileName,
656
- lineNumber: 670,
636
+ lineNumber: 647,
657
637
  columnNumber: 15
658
638
  } }), "Delete"))), showDeleteConfirm && /* @__PURE__ */ React.createElement("div", { className: "fixed inset-0 bg-gray-600 dark:bg-gray-900 bg-opacity-50 dark:bg-opacity-75 overflow-y-auto h-full w-full z-50 flex items-center justify-center", __self: this, __source: {
659
639
  fileName: _jsxFileName,
660
- lineNumber: 678,
640
+ lineNumber: 655,
661
641
  columnNumber: 11
662
642
  } }, /* @__PURE__ */ React.createElement("div", { className: "bg-white dark:bg-gray-800 p-6 rounded-lg shadow-xl max-w-md w-full mx-4", __self: this, __source: {
663
643
  fileName: _jsxFileName,
664
- lineNumber: 679,
644
+ lineNumber: 656,
665
645
  columnNumber: 13
666
646
  } }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center", __self: this, __source: {
667
647
  fileName: _jsxFileName,
668
- lineNumber: 680,
648
+ lineNumber: 657,
669
649
  columnNumber: 15
670
650
  } }, /* @__PURE__ */ React.createElement("div", { className: "flex-shrink-0", __self: this, __source: {
671
651
  fileName: _jsxFileName,
672
- lineNumber: 681,
652
+ lineNumber: 658,
673
653
  columnNumber: 17
674
654
  } }, /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "h-6 w-6 text-red-600", __self: this, __source: {
675
655
  fileName: _jsxFileName,
676
- lineNumber: 682,
656
+ lineNumber: 659,
677
657
  columnNumber: 19
678
658
  } })), /* @__PURE__ */ React.createElement("div", { className: "ml-3", __self: this, __source: {
679
659
  fileName: _jsxFileName,
680
- lineNumber: 684,
660
+ lineNumber: 661,
681
661
  columnNumber: 17
682
662
  } }, /* @__PURE__ */ React.createElement("h3", { className: "text-lg font-medium text-gray-900 dark:text-gray-100", __self: this, __source: {
683
663
  fileName: _jsxFileName,
684
- lineNumber: 685,
664
+ lineNumber: 662,
685
665
  columnNumber: 19
686
666
  } }, "Delete ", toReadableText(model.name)), /* @__PURE__ */ React.createElement("div", { className: "mt-2", __self: this, __source: {
687
667
  fileName: _jsxFileName,
688
- lineNumber: 688,
668
+ lineNumber: 665,
689
669
  columnNumber: 19
690
670
  } }, /* @__PURE__ */ React.createElement("p", { className: "text-sm text-gray-500 dark:text-gray-400", __self: this, __source: {
691
671
  fileName: _jsxFileName,
692
- lineNumber: 689,
672
+ lineNumber: 666,
693
673
  columnNumber: 21
694
674
  } }, "Are you sure you want to delete this", " ", toReadableText(model.name).toLowerCase(), "? This action cannot be undone.")))), /* @__PURE__ */ React.createElement("div", { className: "mt-5 sm:mt-4 sm:flex sm:flex-row-reverse", __self: this, __source: {
695
675
  fileName: _jsxFileName,
696
- lineNumber: 696,
676
+ lineNumber: 673,
697
677
  columnNumber: 15
698
678
  } }, /* @__PURE__ */ React.createElement("button", { onClick: handleDelete, disabled: deleteState.status === "loading", className: "w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed", __self: this, __source: {
699
679
  fileName: _jsxFileName,
700
- lineNumber: 697,
680
+ lineNumber: 674,
701
681
  columnNumber: 17
702
682
  } }, deleteState.status === "loading" ? "Deleting..." : "Delete"), /* @__PURE__ */ React.createElement("button", { onClick: () => setShowDeleteConfirm(false), disabled: deleteState.status === "loading", className: "mt-3 w-full inline-flex justify-center rounded-md border border-gray-300 shadow-sm px-4 py-2 bg-white text-base font-medium text-gray-700 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-green-web sm:mt-0 sm:w-auto sm:text-sm disabled:opacity-50 disabled:cursor-not-allowed", __self: this, __source: {
703
683
  fileName: _jsxFileName,
704
- lineNumber: 704,
684
+ lineNumber: 681,
705
685
  columnNumber: 17
706
686
  } }, "Cancel")))), (submissionState.status !== "idle" || deleteState.status !== "idle") && /* @__PURE__ */ React.createElement("div", { className: `mb-6 rounded-md p-4 ${submissionState.status === "success" || deleteState.status === "success" ? "bg-green-50 border border-green-200" : submissionState.status === "error" || deleteState.status === "error" ? "bg-red-50 border border-red-200" : "bg-blue-50 border border-blue-200"}`, __self: this, __source: {
707
687
  fileName: _jsxFileName,
708
- lineNumber: 718,
688
+ lineNumber: 695,
709
689
  columnNumber: 11
710
690
  } }, /* @__PURE__ */ React.createElement("div", { className: "flex", __self: this, __source: {
711
691
  fileName: _jsxFileName,
712
- lineNumber: 727,
692
+ lineNumber: 704,
713
693
  columnNumber: 13
714
694
  } }, /* @__PURE__ */ React.createElement("div", { className: "flex-shrink-0", __self: this, __source: {
715
695
  fileName: _jsxFileName,
716
- lineNumber: 728,
696
+ lineNumber: 705,
717
697
  columnNumber: 15
718
698
  } }, submissionState.status === "success" || deleteState.status === "success" ? /* @__PURE__ */ React.createElement(CheckCircleIcon, { className: "h-5 w-5 text-green-400", __self: this, __source: {
719
699
  fileName: _jsxFileName,
720
- lineNumber: 730,
700
+ lineNumber: 707,
721
701
  columnNumber: 19
722
702
  } }) : submissionState.status === "error" || deleteState.status === "error" ? /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "h-5 w-5 text-red-400", __self: this, __source: {
723
703
  fileName: _jsxFileName,
724
- lineNumber: 732,
704
+ lineNumber: 709,
725
705
  columnNumber: 19
726
706
  } }) : /* @__PURE__ */ React.createElement("div", { className: "h-5 w-5 border-2 border-blue-400 border-t-transparent rounded-full animate-spin", __self: this, __source: {
727
707
  fileName: _jsxFileName,
728
- lineNumber: 734,
708
+ lineNumber: 711,
729
709
  columnNumber: 19
730
710
  } })), /* @__PURE__ */ React.createElement("div", { className: "ml-3", __self: this, __source: {
731
711
  fileName: _jsxFileName,
732
- lineNumber: 737,
712
+ lineNumber: 714,
733
713
  columnNumber: 15
734
714
  } }, /* @__PURE__ */ React.createElement("p", { className: `text-sm font-medium ${submissionState.status === "success" || deleteState.status === "success" ? "text-green-800" : submissionState.status === "error" || deleteState.status === "error" ? "text-red-800" : "text-blue-800"}`, __self: this, __source: {
735
715
  fileName: _jsxFileName,
736
- lineNumber: 738,
716
+ lineNumber: 715,
737
717
  columnNumber: 17
738
718
  } }, submissionState.status === "loading" ? `Updating ${toReadableText(model.name)}...` : deleteState.status === "loading" ? `Deleting ${toReadableText(model.name)}...` : submissionState.message || deleteState.message)))), /* @__PURE__ */ React.createElement("div", { className: "bg-white dark:bg-gray-800 shadow-sm rounded-lg", __self: this, __source: {
739
719
  fileName: _jsxFileName,
740
- lineNumber: 759,
720
+ lineNumber: 736,
741
721
  columnNumber: 9
742
722
  } }, /* @__PURE__ */ React.createElement("div", { className: "px-6 py-8", __self: this, __source: {
743
723
  fileName: _jsxFileName,
744
- lineNumber: 760,
724
+ lineNumber: 737,
745
725
  columnNumber: 11
746
726
  } }, /* @__PURE__ */ React.createElement(Form, { id: `edit-${model.name.toLowerCase()}-form`, fields: formFields, submit: handleSubmit, disabled: submissionState.status === "loading" || deleteState.status === "loading", defaultValues: initialValues, theme: formTheme, __self: this, __source: {
747
727
  fileName: _jsxFileName,
748
- lineNumber: 761,
728
+ lineNumber: 738,
749
729
  columnNumber: 13
750
730
  } }))));
751
731
  }
@@ -754,7 +734,7 @@ function AdminDataEditErrorBoundary({
754
734
  }) {
755
735
  return /* @__PURE__ */ React.createElement(ErrorBoundary, { error, __self: this, __source: {
756
736
  fileName: _jsxFileName,
757
- lineNumber: 776,
737
+ lineNumber: 753,
758
738
  columnNumber: 10
759
739
  } });
760
740
  }