@nestledjs/data-browser 0.1.16 → 0.1.18

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.
@@ -1,4 +1,5 @@
1
- import React, { useState, useMemo, useEffect } from "react";
1
+ import { jsxDEV } from "react/jsx-dev-runtime";
2
+ import { useState, useMemo, useEffect } from "react";
2
3
  import { gql } from "@apollo/client";
3
4
  import { useMutation } from "@apollo/client/react";
4
5
  import { ExclamationCircleIcon, CheckCircleIcon } from "@heroicons/react/24/outline";
@@ -7,7 +8,6 @@ import { Form } from "@nestledjs/forms";
7
8
  import { useAdminDataContext } from "../context/AdminDataContext.js";
8
9
  import { useParams, Link, useNavigate } from "react-router";
9
10
  import { getAdminDocuments, buildFormFields, cleanFormInput } from "../utils/graphql-utils.js";
10
- var _jsxFileName = "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx";
11
11
  function toReadableText(text) {
12
12
  return text.replace(/([a-z])([A-Z])/g, "$1 $2").replace(/^./, (str) => str.toUpperCase());
13
13
  }
@@ -19,14 +19,8 @@ const toKebabCase = (str) => {
19
19
  return str.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
20
20
  };
21
21
  function AdminDataCreatePage() {
22
- const {
23
- dataType
24
- } = useParams();
25
- const {
26
- databaseModels,
27
- basePath = "/admin/data",
28
- formTheme
29
- } = useAdminDataContext();
22
+ const { dataType } = useParams();
23
+ const { databaseModels, basePath = "/admin/data", formTheme } = useAdminDataContext();
30
24
  const findModelByName = (name) => {
31
25
  return databaseModels.find((model2) => model2.name === name);
32
26
  };
@@ -42,102 +36,129 @@ function AdminDataCreatePage() {
42
36
  const model = validatedDataType ? findModelByName(validatedDataType) : null;
43
37
  const shouldShowModelNotFound = validatedDataType && true && !model;
44
38
  if (shouldShowUnauthorized) {
45
- return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col justify-center py-12", __self: this, __source: {
46
- fileName: _jsxFileName,
47
- lineNumber: 90,
48
- columnNumber: 7
49
- } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 mx-auto w-full max-w-md", __self: this, __source: {
50
- fileName: _jsxFileName,
51
- lineNumber: 91,
52
- columnNumber: 9
53
- } }, /* @__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: {
54
- fileName: _jsxFileName,
55
- lineNumber: 92,
56
- columnNumber: 11
57
- } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
58
- fileName: _jsxFileName,
39
+ return /* @__PURE__ */ jsxDEV("div", { className: "flex flex-col justify-center py-12", children: /* @__PURE__ */ jsxDEV("div", { className: "mt-8 mx-auto w-full max-w-md", children: /* @__PURE__ */ jsxDEV("div", { className: "bg-white dark:bg-gray-800 py-8 px-4 shadow sm:rounded-lg sm:px-10", children: /* @__PURE__ */ jsxDEV("div", { className: "text-center", children: [
40
+ /* @__PURE__ */ jsxDEV(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-red-400" }, void 0, false, {
41
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
42
+ lineNumber: 94,
43
+ columnNumber: 15
44
+ }, this),
45
+ /* @__PURE__ */ jsxDEV("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", children: "Unauthorized" }, void 0, false, {
46
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
47
+ lineNumber: 95,
48
+ columnNumber: 15
49
+ }, this),
50
+ /* @__PURE__ */ jsxDEV("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", children: "Invalid data type or insufficient permissions." }, void 0, false, {
51
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
52
+ lineNumber: 96,
53
+ columnNumber: 15
54
+ }, this),
55
+ /* @__PURE__ */ jsxDEV("div", { className: "mt-6", children: /* @__PURE__ */ jsxDEV(
56
+ Link,
57
+ {
58
+ to: basePath,
59
+ 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",
60
+ children: "Return to Data Browser"
61
+ },
62
+ void 0,
63
+ false,
64
+ {
65
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
66
+ lineNumber: 100,
67
+ columnNumber: 17
68
+ },
69
+ this
70
+ ) }, void 0, false, {
71
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
72
+ lineNumber: 99,
73
+ columnNumber: 15
74
+ }, this)
75
+ ] }, void 0, true, {
76
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
59
77
  lineNumber: 93,
60
78
  columnNumber: 13
61
- } }, /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-red-400", __self: this, __source: {
62
- fileName: _jsxFileName,
63
- lineNumber: 94,
64
- columnNumber: 15
65
- } }), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", __self: this, __source: {
66
- fileName: _jsxFileName,
67
- lineNumber: 95,
68
- columnNumber: 15
69
- } }, "Unauthorized"), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", __self: this, __source: {
70
- fileName: _jsxFileName,
71
- lineNumber: 96,
72
- columnNumber: 15
73
- } }, "Invalid data type or insufficient permissions."), /* @__PURE__ */ React.createElement("div", { className: "mt-6", __self: this, __source: {
74
- fileName: _jsxFileName,
75
- lineNumber: 99,
76
- columnNumber: 15
77
- } }, /* @__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: {
78
- fileName: _jsxFileName,
79
- lineNumber: 100,
80
- columnNumber: 17
81
- } }, "Return to Data Browser"))))));
79
+ }, this) }, void 0, false, {
80
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
81
+ lineNumber: 92,
82
+ columnNumber: 11
83
+ }, this) }, void 0, false, {
84
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
85
+ lineNumber: 91,
86
+ columnNumber: 9
87
+ }, this) }, void 0, false, {
88
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
89
+ lineNumber: 90,
90
+ columnNumber: 7
91
+ }, this);
82
92
  }
83
93
  if (shouldShowModelNotFound) {
84
- return /* @__PURE__ */ React.createElement("div", { className: "flex flex-col justify-center py-12", __self: this, __source: {
85
- fileName: _jsxFileName,
86
- lineNumber: 142,
87
- columnNumber: 7
88
- } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 mx-auto w-full max-w-md", __self: this, __source: {
89
- fileName: _jsxFileName,
90
- lineNumber: 143,
91
- columnNumber: 9
92
- } }, /* @__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: {
93
- fileName: _jsxFileName,
94
- lineNumber: 144,
95
- columnNumber: 11
96
- } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
97
- fileName: _jsxFileName,
94
+ return /* @__PURE__ */ jsxDEV("div", { className: "flex flex-col justify-center py-12", children: /* @__PURE__ */ jsxDEV("div", { className: "mt-8 mx-auto w-full max-w-md", children: /* @__PURE__ */ jsxDEV("div", { className: "bg-white dark:bg-gray-800 py-8 px-4 shadow sm:rounded-lg sm:px-10", children: /* @__PURE__ */ jsxDEV("div", { className: "text-center", children: [
95
+ /* @__PURE__ */ jsxDEV(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-yellow-400" }, void 0, false, {
96
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
97
+ lineNumber: 146,
98
+ columnNumber: 15
99
+ }, this),
100
+ /* @__PURE__ */ jsxDEV("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", children: "Model Not Found" }, void 0, false, {
101
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
102
+ lineNumber: 147,
103
+ columnNumber: 15
104
+ }, this),
105
+ /* @__PURE__ */ jsxDEV("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", children: [
106
+ 'The data model for "',
107
+ validatedDataType,
108
+ '" could not be found.'
109
+ ] }, void 0, true, {
110
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
111
+ lineNumber: 148,
112
+ columnNumber: 15
113
+ }, this),
114
+ /* @__PURE__ */ jsxDEV("div", { className: "mt-6", children: /* @__PURE__ */ jsxDEV(
115
+ Link,
116
+ {
117
+ to: basePath,
118
+ 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",
119
+ children: "Return to Data Browser"
120
+ },
121
+ void 0,
122
+ false,
123
+ {
124
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
125
+ lineNumber: 152,
126
+ columnNumber: 17
127
+ },
128
+ this
129
+ ) }, void 0, false, {
130
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
131
+ lineNumber: 151,
132
+ columnNumber: 15
133
+ }, this)
134
+ ] }, void 0, true, {
135
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
98
136
  lineNumber: 145,
99
137
  columnNumber: 13
100
- } }, /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-yellow-400", __self: this, __source: {
101
- fileName: _jsxFileName,
102
- lineNumber: 146,
103
- columnNumber: 15
104
- } }), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", __self: this, __source: {
105
- fileName: _jsxFileName,
106
- lineNumber: 147,
107
- columnNumber: 15
108
- } }, "Model Not Found"), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", __self: this, __source: {
109
- fileName: _jsxFileName,
110
- lineNumber: 148,
111
- columnNumber: 15
112
- } }, 'The data model for "', validatedDataType, '" could not be found.'), /* @__PURE__ */ React.createElement("div", { className: "mt-6", __self: this, __source: {
113
- fileName: _jsxFileName,
114
- lineNumber: 151,
115
- columnNumber: 15
116
- } }, /* @__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: {
117
- fileName: _jsxFileName,
118
- lineNumber: 152,
119
- columnNumber: 17
120
- } }, "Return to Data Browser"))))));
138
+ }, this) }, void 0, false, {
139
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
140
+ lineNumber: 144,
141
+ columnNumber: 11
142
+ }, this) }, void 0, false, {
143
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
144
+ lineNumber: 143,
145
+ columnNumber: 9
146
+ }, this) }, void 0, false, {
147
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
148
+ lineNumber: 142,
149
+ columnNumber: 7
150
+ }, this);
121
151
  }
122
- return /* @__PURE__ */ React.createElement(AdminDataCreatePageContent, { model, basePath, formTheme, __self: this, __source: {
123
- fileName: _jsxFileName,
152
+ return /* @__PURE__ */ jsxDEV(AdminDataCreatePageContent, { model, basePath, formTheme }, void 0, false, {
153
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
124
154
  lineNumber: 167,
125
155
  columnNumber: 10
126
- } });
156
+ }, this);
127
157
  }
128
- function AdminDataCreatePageContent({
129
- model,
130
- basePath,
131
- formTheme
132
- }) {
158
+ function AdminDataCreatePageContent({ model, basePath, formTheme }) {
133
159
  const navigate = useNavigate();
134
- const {
135
- sdk,
136
- databaseModels
137
- } = useAdminDataContext();
138
- const [submissionState, setSubmissionState] = useState({
139
- status: "idle"
140
- });
160
+ const { sdk, databaseModels } = useAdminDataContext();
161
+ const [submissionState, setSubmissionState] = useState({ status: "idle" });
141
162
  const documents = useMemo(() => {
142
163
  try {
143
164
  return getAdminDocuments(sdk, model);
@@ -157,56 +178,72 @@ function AdminDataCreatePageContent({
157
178
  return null;
158
179
  }
159
180
  }, [documents]);
160
- const [createMutation] = useMutation(CREATE_MUTATION || gql`
181
+ const [createMutation] = useMutation(
182
+ CREATE_MUTATION || gql`
161
183
  mutation PlaceholderCreate {
162
184
  __typename
163
185
  }
164
- `);
186
+ `
187
+ );
165
188
  if (!documents || !CREATE_MUTATION) {
166
- return /* @__PURE__ */ React.createElement("div", { className: "min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col justify-center py-12 sm:px-6 lg:px-8", __self: this, __source: {
167
- fileName: _jsxFileName,
168
- lineNumber: 220,
169
- columnNumber: 7
170
- } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 sm:mx-auto sm:w-full sm:max-w-2xl", __self: this, __source: {
171
- fileName: _jsxFileName,
172
- lineNumber: 221,
173
- columnNumber: 9
174
- } }, /* @__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: {
175
- fileName: _jsxFileName,
176
- lineNumber: 222,
177
- columnNumber: 11
178
- } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
179
- fileName: _jsxFileName,
189
+ return /* @__PURE__ */ jsxDEV("div", { className: "min-h-screen bg-gray-50 dark:bg-gray-900 flex flex-col justify-center py-12 sm:px-6 lg:px-8", children: /* @__PURE__ */ jsxDEV("div", { className: "mt-8 sm:mx-auto sm:w-full sm:max-w-2xl", children: /* @__PURE__ */ jsxDEV("div", { className: "bg-white dark:bg-gray-800 py-8 px-4 shadow sm:rounded-lg sm:px-10", children: /* @__PURE__ */ jsxDEV("div", { className: "text-center", children: [
190
+ /* @__PURE__ */ jsxDEV(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-red-400" }, void 0, false, {
191
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
192
+ lineNumber: 224,
193
+ columnNumber: 15
194
+ }, this),
195
+ /* @__PURE__ */ jsxDEV("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", children: "GraphQL Schema Error" }, void 0, false, {
196
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
197
+ lineNumber: 225,
198
+ columnNumber: 15
199
+ }, this),
200
+ /* @__PURE__ */ jsxDEV("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", children: "Unable to load GraphQL documents for this model. Please ensure the API server is running and the GraphQL schema is up to date." }, void 0, false, {
201
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
202
+ lineNumber: 226,
203
+ columnNumber: 15
204
+ }, this),
205
+ /* @__PURE__ */ jsxDEV("div", { className: "mt-6", children: /* @__PURE__ */ jsxDEV(
206
+ Link,
207
+ {
208
+ to: basePath,
209
+ 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",
210
+ children: "Return to Data Browser"
211
+ },
212
+ void 0,
213
+ false,
214
+ {
215
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
216
+ lineNumber: 231,
217
+ columnNumber: 17
218
+ },
219
+ this
220
+ ) }, void 0, false, {
221
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
222
+ lineNumber: 230,
223
+ columnNumber: 15
224
+ }, this)
225
+ ] }, void 0, true, {
226
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
180
227
  lineNumber: 223,
181
228
  columnNumber: 13
182
- } }, /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-red-400", __self: this, __source: {
183
- fileName: _jsxFileName,
184
- lineNumber: 224,
185
- columnNumber: 15
186
- } }), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", __self: this, __source: {
187
- fileName: _jsxFileName,
188
- lineNumber: 225,
189
- columnNumber: 15
190
- } }, "GraphQL Schema Error"), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", __self: this, __source: {
191
- fileName: _jsxFileName,
192
- lineNumber: 226,
193
- columnNumber: 15
194
- } }, "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: {
195
- fileName: _jsxFileName,
196
- lineNumber: 230,
197
- columnNumber: 15
198
- } }, /* @__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: {
199
- fileName: _jsxFileName,
200
- lineNumber: 231,
201
- columnNumber: 17
202
- } }, "Return to Data Browser"))))));
229
+ }, this) }, void 0, false, {
230
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
231
+ lineNumber: 222,
232
+ columnNumber: 11
233
+ }, this) }, void 0, false, {
234
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
235
+ lineNumber: 221,
236
+ columnNumber: 9
237
+ }, this) }, void 0, false, {
238
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
239
+ lineNumber: 220,
240
+ columnNumber: 7
241
+ }, this);
203
242
  }
204
243
  const formFields = buildFormFields(sdk, model, "create", void 0, submissionState.status === "loading", basePath, databaseModels);
205
244
  const handleSubmit = async (formData) => {
206
245
  try {
207
- setSubmissionState({
208
- status: "loading"
209
- });
246
+ setSubmissionState({ status: "loading" });
210
247
  const cleanedInput = cleanFormInput(formData, model);
211
248
  const result = await createMutation({
212
249
  variables: {
@@ -237,135 +274,244 @@ function AdminDataCreatePageContent({
237
274
  useEffect(() => {
238
275
  if (submissionState.status === "error") {
239
276
  const timer = setTimeout(() => {
240
- setSubmissionState({
241
- status: "idle"
242
- });
277
+ setSubmissionState({ status: "idle" });
243
278
  }, 5e3);
244
279
  return () => clearTimeout(timer);
245
280
  }
246
281
  }, [submissionState.status]);
247
- return /* @__PURE__ */ React.createElement("div", { className: "space-y-6", __self: this, __source: {
248
- fileName: _jsxFileName,
282
+ return /* @__PURE__ */ jsxDEV("div", { className: "space-y-6", children: [
283
+ /* @__PURE__ */ jsxDEV("div", { className: "mb-8", children: [
284
+ /* @__PURE__ */ jsxDEV("nav", { className: "flex mb-6", "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsxDEV("ol", { className: "flex items-center space-x-4", children: [
285
+ /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV(Link, { to: basePath, className: "text-gray-400 dark:text-gray-500 hover:text-gray-500 dark:hover:text-gray-400", children: "Data Browser" }, void 0, false, {
286
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
287
+ lineNumber: 305,
288
+ columnNumber: 17
289
+ }, this) }, void 0, false, {
290
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
291
+ lineNumber: 304,
292
+ columnNumber: 15
293
+ }, this),
294
+ /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("div", { className: "flex items-center", children: [
295
+ /* @__PURE__ */ jsxDEV(
296
+ "svg",
297
+ {
298
+ className: "flex-shrink-0 h-5 w-5 text-gray-300 dark:text-gray-600",
299
+ fill: "currentColor",
300
+ viewBox: "0 0 20 20",
301
+ children: /* @__PURE__ */ jsxDEV(
302
+ "path",
303
+ {
304
+ fillRule: "evenodd",
305
+ 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",
306
+ clipRule: "evenodd"
307
+ },
308
+ void 0,
309
+ false,
310
+ {
311
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
312
+ lineNumber: 316,
313
+ columnNumber: 21
314
+ },
315
+ this
316
+ )
317
+ },
318
+ void 0,
319
+ false,
320
+ {
321
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
322
+ lineNumber: 311,
323
+ columnNumber: 19
324
+ },
325
+ this
326
+ ),
327
+ /* @__PURE__ */ jsxDEV(
328
+ Link,
329
+ {
330
+ to: `${basePath}/${toKebabCase(model.pluralName)}`,
331
+ className: "ml-4 text-gray-400 dark:text-gray-500 hover:text-gray-500 dark:hover:text-gray-400",
332
+ children: toReadableText(model.pluralName)
333
+ },
334
+ void 0,
335
+ false,
336
+ {
337
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
338
+ lineNumber: 322,
339
+ columnNumber: 19
340
+ },
341
+ this
342
+ )
343
+ ] }, void 0, true, {
344
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
345
+ lineNumber: 310,
346
+ columnNumber: 17
347
+ }, this) }, void 0, false, {
348
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
349
+ lineNumber: 309,
350
+ columnNumber: 15
351
+ }, this),
352
+ /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("div", { className: "flex items-center", children: [
353
+ /* @__PURE__ */ jsxDEV(
354
+ "svg",
355
+ {
356
+ className: "flex-shrink-0 h-5 w-5 text-gray-300 dark:text-gray-600",
357
+ fill: "currentColor",
358
+ viewBox: "0 0 20 20",
359
+ children: /* @__PURE__ */ jsxDEV(
360
+ "path",
361
+ {
362
+ fillRule: "evenodd",
363
+ 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",
364
+ clipRule: "evenodd"
365
+ },
366
+ void 0,
367
+ false,
368
+ {
369
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
370
+ lineNumber: 337,
371
+ columnNumber: 21
372
+ },
373
+ this
374
+ )
375
+ },
376
+ void 0,
377
+ false,
378
+ {
379
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
380
+ lineNumber: 332,
381
+ columnNumber: 19
382
+ },
383
+ this
384
+ ),
385
+ /* @__PURE__ */ jsxDEV("span", { className: "ml-4 text-gray-500 dark:text-gray-400", children: "Create New" }, void 0, false, {
386
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
387
+ lineNumber: 343,
388
+ columnNumber: 19
389
+ }, this)
390
+ ] }, void 0, true, {
391
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
392
+ lineNumber: 331,
393
+ columnNumber: 17
394
+ }, this) }, void 0, false, {
395
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
396
+ lineNumber: 330,
397
+ columnNumber: 15
398
+ }, this)
399
+ ] }, void 0, true, {
400
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
401
+ lineNumber: 303,
402
+ columnNumber: 13
403
+ }, this) }, void 0, false, {
404
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
405
+ lineNumber: 302,
406
+ columnNumber: 11
407
+ }, this),
408
+ /* @__PURE__ */ jsxDEV("h1", { className: "mt-4 text-3xl font-bold text-gray-900 dark:text-gray-100", children: [
409
+ "Create ",
410
+ toReadableText(model.name)
411
+ ] }, void 0, true, {
412
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
413
+ lineNumber: 348,
414
+ columnNumber: 11
415
+ }, this)
416
+ ] }, void 0, true, {
417
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
418
+ lineNumber: 301,
419
+ columnNumber: 7
420
+ }, this),
421
+ submissionState.status !== "idle" && /* @__PURE__ */ jsxDEV(
422
+ "div",
423
+ {
424
+ className: `mb-6 rounded-md p-4 ${submissionState.status === "success" ? "bg-green-50 border border-green-200" : submissionState.status === "error" ? "bg-red-50 border border-red-200" : "bg-blue-50 border border-blue-200"}`,
425
+ children: /* @__PURE__ */ jsxDEV("div", { className: "flex", children: [
426
+ /* @__PURE__ */ jsxDEV("div", { className: "flex-shrink-0", children: submissionState.status === "success" ? /* @__PURE__ */ jsxDEV(CheckCircleIcon, { className: "h-5 w-5 text-green-400" }, void 0, false, {
427
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
428
+ lineNumber: 367,
429
+ columnNumber: 19
430
+ }, this) : submissionState.status === "error" ? /* @__PURE__ */ jsxDEV(ExclamationCircleIcon, { className: "h-5 w-5 text-red-400" }, void 0, false, {
431
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
432
+ lineNumber: 369,
433
+ columnNumber: 19
434
+ }, this) : /* @__PURE__ */ jsxDEV("div", { className: "h-5 w-5 border-2 border-blue-400 border-t-transparent rounded-full animate-spin" }, void 0, false, {
435
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
436
+ lineNumber: 371,
437
+ columnNumber: 19
438
+ }, this) }, void 0, false, {
439
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
440
+ lineNumber: 365,
441
+ columnNumber: 15
442
+ }, this),
443
+ /* @__PURE__ */ jsxDEV("div", { className: "ml-3", children: /* @__PURE__ */ jsxDEV(
444
+ "p",
445
+ {
446
+ className: `text-sm font-medium ${submissionState.status === "success" ? "text-green-800" : submissionState.status === "error" ? "text-red-800" : "text-blue-800"}`,
447
+ children: submissionState.status === "loading" ? `Creating ${toReadableText(model.name)}...` : submissionState.message
448
+ },
449
+ void 0,
450
+ false,
451
+ {
452
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
453
+ lineNumber: 375,
454
+ columnNumber: 17
455
+ },
456
+ this
457
+ ) }, void 0, false, {
458
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
459
+ lineNumber: 374,
460
+ columnNumber: 15
461
+ }, this)
462
+ ] }, void 0, true, {
463
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
464
+ lineNumber: 364,
465
+ columnNumber: 13
466
+ }, this)
467
+ },
468
+ void 0,
469
+ false,
470
+ {
471
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
472
+ lineNumber: 355,
473
+ columnNumber: 11
474
+ },
475
+ this
476
+ ),
477
+ /* @__PURE__ */ jsxDEV("div", { className: "bg-white dark:bg-gray-800 shadow-sm rounded-lg", children: /* @__PURE__ */ jsxDEV("div", { className: "px-6 py-8", children: /* @__PURE__ */ jsxDEV(
478
+ Form,
479
+ {
480
+ id: `create-${model.name.toLowerCase()}-form`,
481
+ fields: formFields,
482
+ submit: handleSubmit,
483
+ disabled: submissionState.status === "loading",
484
+ theme: formTheme
485
+ },
486
+ void 0,
487
+ false,
488
+ {
489
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
490
+ lineNumber: 396,
491
+ columnNumber: 13
492
+ },
493
+ this
494
+ ) }, void 0, false, {
495
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
496
+ lineNumber: 395,
497
+ columnNumber: 11
498
+ }, this) }, void 0, false, {
499
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
500
+ lineNumber: 394,
501
+ columnNumber: 9
502
+ }, this)
503
+ ] }, void 0, true, {
504
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
249
505
  lineNumber: 299,
250
506
  columnNumber: 5
251
- } }, /* @__PURE__ */ React.createElement("div", { className: "mb-8", __self: this, __source: {
252
- fileName: _jsxFileName,
253
- lineNumber: 301,
254
- columnNumber: 7
255
- } }, /* @__PURE__ */ React.createElement("nav", { className: "flex mb-6", "aria-label": "Breadcrumb", __self: this, __source: {
256
- fileName: _jsxFileName,
257
- lineNumber: 302,
258
- columnNumber: 11
259
- } }, /* @__PURE__ */ React.createElement("ol", { className: "flex items-center space-x-4", __self: this, __source: {
260
- fileName: _jsxFileName,
261
- lineNumber: 303,
262
- columnNumber: 13
263
- } }, /* @__PURE__ */ React.createElement("li", { __self: this, __source: {
264
- fileName: _jsxFileName,
265
- lineNumber: 304,
266
- columnNumber: 15
267
- } }, /* @__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: {
268
- fileName: _jsxFileName,
269
- lineNumber: 305,
270
- columnNumber: 17
271
- } }, "Data Browser")), /* @__PURE__ */ React.createElement("li", { __self: this, __source: {
272
- fileName: _jsxFileName,
273
- lineNumber: 309,
274
- columnNumber: 15
275
- } }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center", __self: this, __source: {
276
- fileName: _jsxFileName,
277
- lineNumber: 310,
278
- columnNumber: 17
279
- } }, /* @__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: {
280
- fileName: _jsxFileName,
281
- lineNumber: 311,
282
- columnNumber: 19
283
- } }, /* @__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: {
284
- fileName: _jsxFileName,
285
- lineNumber: 316,
286
- columnNumber: 21
287
- } })), /* @__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: {
288
- fileName: _jsxFileName,
289
- lineNumber: 322,
290
- columnNumber: 19
291
- } }, toReadableText(model.pluralName)))), /* @__PURE__ */ React.createElement("li", { __self: this, __source: {
292
- fileName: _jsxFileName,
293
- lineNumber: 330,
294
- columnNumber: 15
295
- } }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center", __self: this, __source: {
296
- fileName: _jsxFileName,
297
- lineNumber: 331,
298
- columnNumber: 17
299
- } }, /* @__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: {
300
- fileName: _jsxFileName,
301
- lineNumber: 332,
302
- columnNumber: 19
303
- } }, /* @__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: {
304
- fileName: _jsxFileName,
305
- lineNumber: 337,
306
- columnNumber: 21
307
- } })), /* @__PURE__ */ React.createElement("span", { className: "ml-4 text-gray-500 dark:text-gray-400", __self: this, __source: {
308
- fileName: _jsxFileName,
309
- lineNumber: 343,
310
- columnNumber: 19
311
- } }, "Create New"))))), /* @__PURE__ */ React.createElement("h1", { className: "mt-4 text-3xl font-bold text-gray-900 dark:text-gray-100", __self: this, __source: {
312
- fileName: _jsxFileName,
313
- lineNumber: 348,
314
- columnNumber: 11
315
- } }, "Create ", toReadableText(model.name))), submissionState.status !== "idle" && /* @__PURE__ */ React.createElement("div", { className: `mb-6 rounded-md p-4 ${submissionState.status === "success" ? "bg-green-50 border border-green-200" : submissionState.status === "error" ? "bg-red-50 border border-red-200" : "bg-blue-50 border border-blue-200"}`, __self: this, __source: {
316
- fileName: _jsxFileName,
317
- lineNumber: 355,
318
- columnNumber: 11
319
- } }, /* @__PURE__ */ React.createElement("div", { className: "flex", __self: this, __source: {
320
- fileName: _jsxFileName,
321
- lineNumber: 364,
322
- columnNumber: 13
323
- } }, /* @__PURE__ */ React.createElement("div", { className: "flex-shrink-0", __self: this, __source: {
324
- fileName: _jsxFileName,
325
- lineNumber: 365,
326
- columnNumber: 15
327
- } }, submissionState.status === "success" ? /* @__PURE__ */ React.createElement(CheckCircleIcon, { className: "h-5 w-5 text-green-400", __self: this, __source: {
328
- fileName: _jsxFileName,
329
- lineNumber: 367,
330
- columnNumber: 19
331
- } }) : submissionState.status === "error" ? /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "h-5 w-5 text-red-400", __self: this, __source: {
332
- fileName: _jsxFileName,
333
- lineNumber: 369,
334
- columnNumber: 19
335
- } }) : /* @__PURE__ */ React.createElement("div", { className: "h-5 w-5 border-2 border-blue-400 border-t-transparent rounded-full animate-spin", __self: this, __source: {
336
- fileName: _jsxFileName,
337
- lineNumber: 371,
338
- columnNumber: 19
339
- } })), /* @__PURE__ */ React.createElement("div", { className: "ml-3", __self: this, __source: {
340
- fileName: _jsxFileName,
341
- lineNumber: 374,
342
- columnNumber: 15
343
- } }, /* @__PURE__ */ React.createElement("p", { className: `text-sm font-medium ${submissionState.status === "success" ? "text-green-800" : submissionState.status === "error" ? "text-red-800" : "text-blue-800"}`, __self: this, __source: {
344
- fileName: _jsxFileName,
345
- lineNumber: 375,
346
- columnNumber: 17
347
- } }, submissionState.status === "loading" ? `Creating ${toReadableText(model.name)}...` : submissionState.message)))), /* @__PURE__ */ React.createElement("div", { className: "bg-white dark:bg-gray-800 shadow-sm rounded-lg", __self: this, __source: {
348
- fileName: _jsxFileName,
349
- lineNumber: 394,
350
- columnNumber: 9
351
- } }, /* @__PURE__ */ React.createElement("div", { className: "px-6 py-8", __self: this, __source: {
352
- fileName: _jsxFileName,
353
- lineNumber: 395,
354
- columnNumber: 11
355
- } }, /* @__PURE__ */ React.createElement(Form, { id: `create-${model.name.toLowerCase()}-form`, fields: formFields, submit: handleSubmit, disabled: submissionState.status === "loading", theme: formTheme, __self: this, __source: {
356
- fileName: _jsxFileName,
357
- lineNumber: 396,
358
- columnNumber: 13
359
- } }))));
507
+ }, this);
360
508
  }
361
- function AdminDataCreateErrorBoundary({
362
- error
363
- }) {
364
- return /* @__PURE__ */ React.createElement(ErrorBoundary, { error, __self: this, __source: {
365
- fileName: _jsxFileName,
509
+ function AdminDataCreateErrorBoundary({ error }) {
510
+ return /* @__PURE__ */ jsxDEV(ErrorBoundary, { error }, void 0, false, {
511
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/data-browser/src/lib/pages/AdminDataCreatePage.tsx",
366
512
  lineNumber: 410,
367
513
  columnNumber: 10
368
- } });
514
+ }, this);
369
515
  }
370
516
  export {
371
517
  AdminDataCreateErrorBoundary,