@nestledjs/data-browser 0.1.9 → 0.1.11

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,3 +1,4 @@
1
+ import { jsxDEV } from "react/jsx-dev-runtime";
1
2
  import { gql } from "@apollo/client";
2
3
  import { useMutation } from "@apollo/client/react";
3
4
  import { ExclamationCircleIcon, CheckCircleIcon } from "@heroicons/react/24/outline";
@@ -7,7 +8,6 @@ import { Form } from "@nestledjs/forms";
7
8
  import { useState, useMemo, useEffect } from "react";
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/admin-data/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,101 +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/admin-data/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/admin-data/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/admin-data/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/admin-data/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/admin-data/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/admin-data/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/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
81
+ lineNumber: 92,
82
+ columnNumber: 11
83
+ }, this) }, void 0, false, {
84
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
85
+ lineNumber: 91,
86
+ columnNumber: 9
87
+ }, this) }, void 0, false, {
88
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/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/admin-data/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/admin-data/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/admin-data/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/admin-data/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/admin-data/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/admin-data/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/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
140
+ lineNumber: 144,
141
+ columnNumber: 11
142
+ }, this) }, void 0, false, {
143
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
144
+ lineNumber: 143,
145
+ columnNumber: 9
146
+ }, this) }, void 0, false, {
147
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/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/admin-data/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
- } = useAdminDataContext();
137
- const [submissionState, setSubmissionState] = useState({
138
- status: "idle"
139
- });
160
+ const { sdk } = useAdminDataContext();
161
+ const [submissionState, setSubmissionState] = useState({ status: "idle" });
140
162
  const documents = useMemo(() => {
141
163
  try {
142
164
  return getAdminDocuments(sdk, model);
@@ -158,56 +180,72 @@ function AdminDataCreatePageContent({
158
180
  return null;
159
181
  }
160
182
  }, [documents]);
161
- const [createMutation] = useMutation(CREATE_MUTATION || gql`
183
+ const [createMutation] = useMutation(
184
+ CREATE_MUTATION || gql`
162
185
  mutation PlaceholderCreate {
163
186
  __typename
164
187
  }
165
- `);
188
+ `
189
+ );
166
190
  if (!documents || !CREATE_MUTATION) {
167
- 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: {
168
- fileName: _jsxFileName,
169
- lineNumber: 222,
170
- columnNumber: 7
171
- } }, /* @__PURE__ */ React.createElement("div", { className: "mt-8 sm:mx-auto sm:w-full sm:max-w-2xl", __self: this, __source: {
172
- fileName: _jsxFileName,
173
- lineNumber: 223,
174
- columnNumber: 9
175
- } }, /* @__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: {
176
- fileName: _jsxFileName,
177
- lineNumber: 224,
178
- columnNumber: 11
179
- } }, /* @__PURE__ */ React.createElement("div", { className: "text-center", __self: this, __source: {
180
- fileName: _jsxFileName,
191
+ 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: [
192
+ /* @__PURE__ */ jsxDEV(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-red-400" }, void 0, false, {
193
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
194
+ lineNumber: 226,
195
+ columnNumber: 15
196
+ }, this),
197
+ /* @__PURE__ */ jsxDEV("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", children: "GraphQL Schema Error" }, void 0, false, {
198
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
199
+ lineNumber: 227,
200
+ columnNumber: 15
201
+ }, this),
202
+ /* @__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, {
203
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
204
+ lineNumber: 228,
205
+ columnNumber: 15
206
+ }, this),
207
+ /* @__PURE__ */ jsxDEV("div", { className: "mt-6", children: /* @__PURE__ */ jsxDEV(
208
+ Link,
209
+ {
210
+ to: basePath,
211
+ 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",
212
+ children: "Return to Data Browser"
213
+ },
214
+ void 0,
215
+ false,
216
+ {
217
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
218
+ lineNumber: 233,
219
+ columnNumber: 17
220
+ },
221
+ this
222
+ ) }, void 0, false, {
223
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
224
+ lineNumber: 232,
225
+ columnNumber: 15
226
+ }, this)
227
+ ] }, void 0, true, {
228
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
181
229
  lineNumber: 225,
182
230
  columnNumber: 13
183
- } }, /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "mx-auto h-12 w-12 text-red-400", __self: this, __source: {
184
- fileName: _jsxFileName,
185
- lineNumber: 226,
186
- columnNumber: 15
187
- } }), /* @__PURE__ */ React.createElement("h2", { className: "mt-4 text-lg font-medium text-gray-900 dark:text-gray-100", __self: this, __source: {
188
- fileName: _jsxFileName,
189
- lineNumber: 227,
190
- columnNumber: 15
191
- } }, "GraphQL Schema Error"), /* @__PURE__ */ React.createElement("p", { className: "mt-2 text-sm text-gray-600 dark:text-gray-400", __self: this, __source: {
192
- fileName: _jsxFileName,
193
- lineNumber: 228,
194
- columnNumber: 15
195
- } }, "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: {
196
- fileName: _jsxFileName,
197
- lineNumber: 232,
198
- columnNumber: 15
199
- } }, /* @__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: {
200
- fileName: _jsxFileName,
201
- lineNumber: 233,
202
- columnNumber: 17
203
- } }, "Return to Data Browser"))))));
231
+ }, this) }, void 0, false, {
232
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
233
+ lineNumber: 224,
234
+ columnNumber: 11
235
+ }, this) }, void 0, false, {
236
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
237
+ lineNumber: 223,
238
+ columnNumber: 9
239
+ }, this) }, void 0, false, {
240
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
241
+ lineNumber: 222,
242
+ columnNumber: 7
243
+ }, this);
204
244
  }
205
245
  const formFields = buildFormFields(sdk, model, "create");
206
246
  const handleSubmit = async (formData) => {
207
247
  try {
208
- setSubmissionState({
209
- status: "loading"
210
- });
248
+ setSubmissionState({ status: "loading" });
211
249
  const cleanedInput = cleanFormInput(formData, model);
212
250
  const result = await createMutation({
213
251
  variables: {
@@ -240,135 +278,244 @@ function AdminDataCreatePageContent({
240
278
  useEffect(() => {
241
279
  if (submissionState.status === "error") {
242
280
  const timer = setTimeout(() => {
243
- setSubmissionState({
244
- status: "idle"
245
- });
281
+ setSubmissionState({ status: "idle" });
246
282
  }, 5e3);
247
283
  return () => clearTimeout(timer);
248
284
  }
249
285
  }, [submissionState.status]);
250
- return /* @__PURE__ */ React.createElement("div", { className: "space-y-6", __self: this, __source: {
251
- fileName: _jsxFileName,
286
+ return /* @__PURE__ */ jsxDEV("div", { className: "space-y-6", children: [
287
+ /* @__PURE__ */ jsxDEV("div", { className: "mb-8", children: [
288
+ /* @__PURE__ */ jsxDEV("nav", { className: "flex mb-6", "aria-label": "Breadcrumb", children: /* @__PURE__ */ jsxDEV("ol", { className: "flex items-center space-x-4", children: [
289
+ /* @__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, {
290
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
291
+ lineNumber: 309,
292
+ columnNumber: 17
293
+ }, this) }, void 0, false, {
294
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
295
+ lineNumber: 308,
296
+ columnNumber: 15
297
+ }, this),
298
+ /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("div", { className: "flex items-center", children: [
299
+ /* @__PURE__ */ jsxDEV(
300
+ "svg",
301
+ {
302
+ className: "flex-shrink-0 h-5 w-5 text-gray-300 dark:text-gray-600",
303
+ fill: "currentColor",
304
+ viewBox: "0 0 20 20",
305
+ children: /* @__PURE__ */ jsxDEV(
306
+ "path",
307
+ {
308
+ fillRule: "evenodd",
309
+ 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",
310
+ clipRule: "evenodd"
311
+ },
312
+ void 0,
313
+ false,
314
+ {
315
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
316
+ lineNumber: 320,
317
+ columnNumber: 21
318
+ },
319
+ this
320
+ )
321
+ },
322
+ void 0,
323
+ false,
324
+ {
325
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
326
+ lineNumber: 315,
327
+ columnNumber: 19
328
+ },
329
+ this
330
+ ),
331
+ /* @__PURE__ */ jsxDEV(
332
+ Link,
333
+ {
334
+ to: `${basePath}/${toKebabCase(model.pluralName)}`,
335
+ className: "ml-4 text-gray-400 dark:text-gray-500 hover:text-gray-500 dark:hover:text-gray-400",
336
+ children: toReadableText(model.pluralName)
337
+ },
338
+ void 0,
339
+ false,
340
+ {
341
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
342
+ lineNumber: 326,
343
+ columnNumber: 19
344
+ },
345
+ this
346
+ )
347
+ ] }, void 0, true, {
348
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
349
+ lineNumber: 314,
350
+ columnNumber: 17
351
+ }, this) }, void 0, false, {
352
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
353
+ lineNumber: 313,
354
+ columnNumber: 15
355
+ }, this),
356
+ /* @__PURE__ */ jsxDEV("li", { children: /* @__PURE__ */ jsxDEV("div", { className: "flex items-center", children: [
357
+ /* @__PURE__ */ jsxDEV(
358
+ "svg",
359
+ {
360
+ className: "flex-shrink-0 h-5 w-5 text-gray-300 dark:text-gray-600",
361
+ fill: "currentColor",
362
+ viewBox: "0 0 20 20",
363
+ children: /* @__PURE__ */ jsxDEV(
364
+ "path",
365
+ {
366
+ fillRule: "evenodd",
367
+ 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",
368
+ clipRule: "evenodd"
369
+ },
370
+ void 0,
371
+ false,
372
+ {
373
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
374
+ lineNumber: 341,
375
+ columnNumber: 21
376
+ },
377
+ this
378
+ )
379
+ },
380
+ void 0,
381
+ false,
382
+ {
383
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
384
+ lineNumber: 336,
385
+ columnNumber: 19
386
+ },
387
+ this
388
+ ),
389
+ /* @__PURE__ */ jsxDEV("span", { className: "ml-4 text-gray-500 dark:text-gray-400", children: "Create New" }, void 0, false, {
390
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
391
+ lineNumber: 347,
392
+ columnNumber: 19
393
+ }, this)
394
+ ] }, void 0, true, {
395
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
396
+ lineNumber: 335,
397
+ columnNumber: 17
398
+ }, this) }, void 0, false, {
399
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
400
+ lineNumber: 334,
401
+ columnNumber: 15
402
+ }, this)
403
+ ] }, void 0, true, {
404
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
405
+ lineNumber: 307,
406
+ columnNumber: 13
407
+ }, this) }, void 0, false, {
408
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
409
+ lineNumber: 306,
410
+ columnNumber: 11
411
+ }, this),
412
+ /* @__PURE__ */ jsxDEV("h1", { className: "mt-4 text-3xl font-bold text-gray-900 dark:text-gray-100", children: [
413
+ "Create ",
414
+ toReadableText(model.name)
415
+ ] }, void 0, true, {
416
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
417
+ lineNumber: 352,
418
+ columnNumber: 11
419
+ }, this)
420
+ ] }, void 0, true, {
421
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
422
+ lineNumber: 305,
423
+ columnNumber: 7
424
+ }, this),
425
+ submissionState.status !== "idle" && /* @__PURE__ */ jsxDEV(
426
+ "div",
427
+ {
428
+ 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"}`,
429
+ children: /* @__PURE__ */ jsxDEV("div", { className: "flex", children: [
430
+ /* @__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, {
431
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
432
+ lineNumber: 371,
433
+ columnNumber: 19
434
+ }, this) : submissionState.status === "error" ? /* @__PURE__ */ jsxDEV(ExclamationCircleIcon, { className: "h-5 w-5 text-red-400" }, void 0, false, {
435
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
436
+ lineNumber: 373,
437
+ columnNumber: 19
438
+ }, this) : /* @__PURE__ */ jsxDEV("div", { className: "h-5 w-5 border-2 border-blue-400 border-t-transparent rounded-full animate-spin" }, void 0, false, {
439
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
440
+ lineNumber: 375,
441
+ columnNumber: 19
442
+ }, this) }, void 0, false, {
443
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
444
+ lineNumber: 369,
445
+ columnNumber: 15
446
+ }, this),
447
+ /* @__PURE__ */ jsxDEV("div", { className: "ml-3", children: /* @__PURE__ */ jsxDEV(
448
+ "p",
449
+ {
450
+ className: `text-sm font-medium ${submissionState.status === "success" ? "text-green-800" : submissionState.status === "error" ? "text-red-800" : "text-blue-800"}`,
451
+ children: submissionState.status === "loading" ? `Creating ${toReadableText(model.name)}...` : submissionState.message
452
+ },
453
+ void 0,
454
+ false,
455
+ {
456
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
457
+ lineNumber: 379,
458
+ columnNumber: 17
459
+ },
460
+ this
461
+ ) }, void 0, false, {
462
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
463
+ lineNumber: 378,
464
+ columnNumber: 15
465
+ }, this)
466
+ ] }, void 0, true, {
467
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
468
+ lineNumber: 368,
469
+ columnNumber: 13
470
+ }, this)
471
+ },
472
+ void 0,
473
+ false,
474
+ {
475
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
476
+ lineNumber: 359,
477
+ columnNumber: 11
478
+ },
479
+ this
480
+ ),
481
+ /* @__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(
482
+ Form,
483
+ {
484
+ id: `create-${model.name.toLowerCase()}-form`,
485
+ fields: formFields,
486
+ submit: handleSubmit,
487
+ disabled: submissionState.status === "loading",
488
+ theme: formTheme
489
+ },
490
+ void 0,
491
+ false,
492
+ {
493
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
494
+ lineNumber: 400,
495
+ columnNumber: 13
496
+ },
497
+ this
498
+ ) }, void 0, false, {
499
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
500
+ lineNumber: 399,
501
+ columnNumber: 11
502
+ }, this) }, void 0, false, {
503
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
504
+ lineNumber: 398,
505
+ columnNumber: 9
506
+ }, this)
507
+ ] }, void 0, true, {
508
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
252
509
  lineNumber: 303,
253
510
  columnNumber: 5
254
- } }, /* @__PURE__ */ React.createElement("div", { className: "mb-8", __self: this, __source: {
255
- fileName: _jsxFileName,
256
- lineNumber: 305,
257
- columnNumber: 7
258
- } }, /* @__PURE__ */ React.createElement("nav", { className: "flex mb-6", "aria-label": "Breadcrumb", __self: this, __source: {
259
- fileName: _jsxFileName,
260
- lineNumber: 306,
261
- columnNumber: 11
262
- } }, /* @__PURE__ */ React.createElement("ol", { className: "flex items-center space-x-4", __self: this, __source: {
263
- fileName: _jsxFileName,
264
- lineNumber: 307,
265
- columnNumber: 13
266
- } }, /* @__PURE__ */ React.createElement("li", { __self: this, __source: {
267
- fileName: _jsxFileName,
268
- lineNumber: 308,
269
- columnNumber: 15
270
- } }, /* @__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: {
271
- fileName: _jsxFileName,
272
- lineNumber: 309,
273
- columnNumber: 17
274
- } }, "Data Browser")), /* @__PURE__ */ React.createElement("li", { __self: this, __source: {
275
- fileName: _jsxFileName,
276
- lineNumber: 313,
277
- columnNumber: 15
278
- } }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center", __self: this, __source: {
279
- fileName: _jsxFileName,
280
- lineNumber: 314,
281
- columnNumber: 17
282
- } }, /* @__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: {
283
- fileName: _jsxFileName,
284
- lineNumber: 315,
285
- columnNumber: 19
286
- } }, /* @__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: {
287
- fileName: _jsxFileName,
288
- lineNumber: 320,
289
- columnNumber: 21
290
- } })), /* @__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: {
291
- fileName: _jsxFileName,
292
- lineNumber: 326,
293
- columnNumber: 19
294
- } }, toReadableText(model.pluralName)))), /* @__PURE__ */ React.createElement("li", { __self: this, __source: {
295
- fileName: _jsxFileName,
296
- lineNumber: 334,
297
- columnNumber: 15
298
- } }, /* @__PURE__ */ React.createElement("div", { className: "flex items-center", __self: this, __source: {
299
- fileName: _jsxFileName,
300
- lineNumber: 335,
301
- columnNumber: 17
302
- } }, /* @__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: {
303
- fileName: _jsxFileName,
304
- lineNumber: 336,
305
- columnNumber: 19
306
- } }, /* @__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: {
307
- fileName: _jsxFileName,
308
- lineNumber: 341,
309
- columnNumber: 21
310
- } })), /* @__PURE__ */ React.createElement("span", { className: "ml-4 text-gray-500 dark:text-gray-400", __self: this, __source: {
311
- fileName: _jsxFileName,
312
- lineNumber: 347,
313
- columnNumber: 19
314
- } }, "Create New"))))), /* @__PURE__ */ React.createElement("h1", { className: "mt-4 text-3xl font-bold text-gray-900 dark:text-gray-100", __self: this, __source: {
315
- fileName: _jsxFileName,
316
- lineNumber: 352,
317
- columnNumber: 11
318
- } }, "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: {
319
- fileName: _jsxFileName,
320
- lineNumber: 359,
321
- columnNumber: 11
322
- } }, /* @__PURE__ */ React.createElement("div", { className: "flex", __self: this, __source: {
323
- fileName: _jsxFileName,
324
- lineNumber: 368,
325
- columnNumber: 13
326
- } }, /* @__PURE__ */ React.createElement("div", { className: "flex-shrink-0", __self: this, __source: {
327
- fileName: _jsxFileName,
328
- lineNumber: 369,
329
- columnNumber: 15
330
- } }, submissionState.status === "success" ? /* @__PURE__ */ React.createElement(CheckCircleIcon, { className: "h-5 w-5 text-green-400", __self: this, __source: {
331
- fileName: _jsxFileName,
332
- lineNumber: 371,
333
- columnNumber: 19
334
- } }) : submissionState.status === "error" ? /* @__PURE__ */ React.createElement(ExclamationCircleIcon, { className: "h-5 w-5 text-red-400", __self: this, __source: {
335
- fileName: _jsxFileName,
336
- lineNumber: 373,
337
- columnNumber: 19
338
- } }) : /* @__PURE__ */ React.createElement("div", { className: "h-5 w-5 border-2 border-blue-400 border-t-transparent rounded-full animate-spin", __self: this, __source: {
339
- fileName: _jsxFileName,
340
- lineNumber: 375,
341
- columnNumber: 19
342
- } })), /* @__PURE__ */ React.createElement("div", { className: "ml-3", __self: this, __source: {
343
- fileName: _jsxFileName,
344
- lineNumber: 378,
345
- columnNumber: 15
346
- } }, /* @__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: {
347
- fileName: _jsxFileName,
348
- lineNumber: 379,
349
- columnNumber: 17
350
- } }, 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: {
351
- fileName: _jsxFileName,
352
- lineNumber: 398,
353
- columnNumber: 9
354
- } }, /* @__PURE__ */ React.createElement("div", { className: "px-6 py-8", __self: this, __source: {
355
- fileName: _jsxFileName,
356
- lineNumber: 399,
357
- columnNumber: 11
358
- } }, /* @__PURE__ */ React.createElement(Form, { id: `create-${model.name.toLowerCase()}-form`, fields: formFields, submit: handleSubmit, disabled: submissionState.status === "loading", theme: formTheme, __self: this, __source: {
359
- fileName: _jsxFileName,
360
- lineNumber: 400,
361
- columnNumber: 13
362
- } }))));
511
+ }, this);
363
512
  }
364
- function AdminDataCreateErrorBoundary({
365
- error
366
- }) {
367
- return /* @__PURE__ */ React.createElement(ErrorBoundary, { error, __self: this, __source: {
368
- fileName: _jsxFileName,
513
+ function AdminDataCreateErrorBoundary({ error }) {
514
+ return /* @__PURE__ */ jsxDEV(ErrorBoundary, { error }, void 0, false, {
515
+ fileName: "/Users/justinhandley/IdeaProjects/nestled_template/libs/admin-data/src/lib/pages/AdminDataCreatePage.tsx",
369
516
  lineNumber: 414,
370
517
  columnNumber: 10
371
- } });
518
+ }, this);
372
519
  }
373
520
  export {
374
521
  AdminDataCreateErrorBoundary,