dn-react-router-toolkit 0.6.10 → 0.7.1

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.
Files changed (39) hide show
  1. package/dist/client/editor.d.mts +12 -0
  2. package/dist/client/editor.d.ts +12 -0
  3. package/dist/client/editor.js +57 -0
  4. package/dist/client/editor.mjs +32 -0
  5. package/dist/client/index.d.mts +3 -0
  6. package/dist/client/index.d.ts +3 -0
  7. package/dist/client/index.js +32 -0
  8. package/dist/client/index.mjs +31 -0
  9. package/dist/crud/crud_form.js +4 -10
  10. package/dist/crud/crud_form.mjs +4 -10
  11. package/dist/crud/crud_form_provider.d.mts +4 -3
  12. package/dist/crud/crud_form_provider.d.ts +4 -3
  13. package/dist/crud/crud_form_provider.js +14 -12
  14. package/dist/crud/crud_form_provider.mjs +14 -12
  15. package/dist/crud/crud_page.d.mts +4 -2
  16. package/dist/crud/crud_page.d.ts +4 -2
  17. package/dist/crud/crud_page.js +25 -23
  18. package/dist/crud/crud_page.mjs +25 -23
  19. package/dist/crud/index.d.mts +1 -1
  20. package/dist/crud/index.d.ts +1 -1
  21. package/dist/crud/index.js +25 -23
  22. package/dist/crud/index.mjs +25 -23
  23. package/dist/post/editor_toolbar.d.mts +9 -0
  24. package/dist/post/editor_toolbar.d.ts +9 -0
  25. package/dist/post/editor_toolbar.js +343 -0
  26. package/dist/post/editor_toolbar.mjs +310 -0
  27. package/dist/post/index.d.mts +7 -2
  28. package/dist/post/index.d.ts +7 -2
  29. package/dist/post/index.js +8248 -0
  30. package/dist/post/index.mjs +8282 -0
  31. package/dist/post/post_form_page.d.mts +29 -0
  32. package/dist/post/post_form_page.d.ts +29 -0
  33. package/dist/post/post_form_page.js +8277 -0
  34. package/dist/post/post_form_page.mjs +8286 -0
  35. package/dist/post/thumbnail_picker.d.mts +3 -9
  36. package/dist/post/thumbnail_picker.d.ts +3 -9
  37. package/dist/post/thumbnail_picker.js +14 -11
  38. package/dist/post/thumbnail_picker.mjs +10 -11
  39. package/package.json +92 -92
@@ -0,0 +1,12 @@
1
+ import { FileUploader } from 'dn-react-toolkit/file/client';
2
+ import { AttachFileOptions } from 'dn-react-text-editor';
3
+ import { CDN } from 'dn-react-toolkit/file';
4
+
5
+ declare function createAttachFileOptions<TFile extends {
6
+ key: string;
7
+ }>({ cdn, fileUploader, }: {
8
+ cdn: CDN;
9
+ fileUploader: FileUploader<TFile>;
10
+ }): Omit<AttachFileOptions, "schema">;
11
+
12
+ export { createAttachFileOptions };
@@ -0,0 +1,12 @@
1
+ import { FileUploader } from 'dn-react-toolkit/file/client';
2
+ import { AttachFileOptions } from 'dn-react-text-editor';
3
+ import { CDN } from 'dn-react-toolkit/file';
4
+
5
+ declare function createAttachFileOptions<TFile extends {
6
+ key: string;
7
+ }>({ cdn, fileUploader, }: {
8
+ cdn: CDN;
9
+ fileUploader: FileUploader<TFile>;
10
+ }): Omit<AttachFileOptions, "schema">;
11
+
12
+ export { createAttachFileOptions };
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/client/editor.tsx
21
+ var editor_exports = {};
22
+ __export(editor_exports, {
23
+ createAttachFileOptions: () => createAttachFileOptions
24
+ });
25
+ module.exports = __toCommonJS(editor_exports);
26
+ var import_client = require("dn-react-toolkit/file/client");
27
+ function createAttachFileOptions({
28
+ cdn,
29
+ fileUploader
30
+ }) {
31
+ return {
32
+ uploadFile: async (file) => {
33
+ const result = await fileUploader.uploadFile(file, {
34
+ convertToWebp: true
35
+ });
36
+ return {
37
+ alt: file.name,
38
+ src: cdn(result.key)
39
+ };
40
+ },
41
+ generateMetadata: (file) => (0, import_client.generateMetadata)(file, {
42
+ uploadBlob: async (blob) => {
43
+ const result = await fileUploader.uploadBlob(blob, "file", {
44
+ convertToWebp: true
45
+ });
46
+ return {
47
+ alt: file.name,
48
+ src: cdn(result.key)
49
+ };
50
+ }
51
+ })
52
+ };
53
+ }
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ createAttachFileOptions
57
+ });
@@ -0,0 +1,32 @@
1
+ // src/client/editor.tsx
2
+ import { generateMetadata } from "dn-react-toolkit/file/client";
3
+ function createAttachFileOptions({
4
+ cdn,
5
+ fileUploader
6
+ }) {
7
+ return {
8
+ uploadFile: async (file) => {
9
+ const result = await fileUploader.uploadFile(file, {
10
+ convertToWebp: true
11
+ });
12
+ return {
13
+ alt: file.name,
14
+ src: cdn(result.key)
15
+ };
16
+ },
17
+ generateMetadata: (file) => generateMetadata(file, {
18
+ uploadBlob: async (blob) => {
19
+ const result = await fileUploader.uploadBlob(blob, "file", {
20
+ convertToWebp: true
21
+ });
22
+ return {
23
+ alt: file.name,
24
+ src: cdn(result.key)
25
+ };
26
+ }
27
+ })
28
+ };
29
+ }
30
+ export {
31
+ createAttachFileOptions
32
+ };
@@ -3,6 +3,9 @@ export { EnvLoader } from './env_loader.mjs';
3
3
  export { FileInput } from './file_input.mjs';
4
4
  export { useUserAgent } from './use_user_agent.mjs';
5
5
  export { StoreTextEditor } from './store_text_editor.mjs';
6
+ export { createAttachFileOptions } from './editor.mjs';
6
7
  import 'react';
7
8
  import 'dn-react-text-editor';
8
9
  import 'react-store-input';
10
+ import 'dn-react-toolkit/file/client';
11
+ import 'dn-react-toolkit/file';
@@ -3,6 +3,9 @@ export { EnvLoader } from './env_loader.js';
3
3
  export { FileInput } from './file_input.js';
4
4
  export { useUserAgent } from './use_user_agent.js';
5
5
  export { StoreTextEditor } from './store_text_editor.js';
6
+ export { createAttachFileOptions } from './editor.js';
6
7
  import 'react';
7
8
  import 'dn-react-text-editor';
8
9
  import 'react-store-input';
10
+ import 'dn-react-toolkit/file/client';
11
+ import 'dn-react-toolkit/file';
@@ -33,6 +33,7 @@ __export(client_exports, {
33
33
  EnvLoader: () => EnvLoader,
34
34
  FileInput: () => FileInput,
35
35
  StoreTextEditor: () => StoreTextEditor,
36
+ createAttachFileOptions: () => createAttachFileOptions,
36
37
  env: () => env,
37
38
  useUserAgent: () => useUserAgent
38
39
  });
@@ -193,11 +194,42 @@ function StoreTextEditor({
193
194
  }
194
195
  );
195
196
  }
197
+
198
+ // src/client/editor.tsx
199
+ var import_client = require("dn-react-toolkit/file/client");
200
+ function createAttachFileOptions({
201
+ cdn,
202
+ fileUploader
203
+ }) {
204
+ return {
205
+ uploadFile: async (file) => {
206
+ const result = await fileUploader.uploadFile(file, {
207
+ convertToWebp: true
208
+ });
209
+ return {
210
+ alt: file.name,
211
+ src: cdn(result.key)
212
+ };
213
+ },
214
+ generateMetadata: (file) => (0, import_client.generateMetadata)(file, {
215
+ uploadBlob: async (blob) => {
216
+ const result = await fileUploader.uploadBlob(blob, "file", {
217
+ convertToWebp: true
218
+ });
219
+ return {
220
+ alt: file.name,
221
+ src: cdn(result.key)
222
+ };
223
+ }
224
+ })
225
+ };
226
+ }
196
227
  // Annotate the CommonJS export names for ESM import in node:
197
228
  0 && (module.exports = {
198
229
  EnvLoader,
199
230
  FileInput,
200
231
  StoreTextEditor,
232
+ createAttachFileOptions,
201
233
  env,
202
234
  useUserAgent
203
235
  });
@@ -155,10 +155,41 @@ function StoreTextEditor({
155
155
  }
156
156
  );
157
157
  }
158
+
159
+ // src/client/editor.tsx
160
+ import { generateMetadata } from "dn-react-toolkit/file/client";
161
+ function createAttachFileOptions({
162
+ cdn,
163
+ fileUploader
164
+ }) {
165
+ return {
166
+ uploadFile: async (file) => {
167
+ const result = await fileUploader.uploadFile(file, {
168
+ convertToWebp: true
169
+ });
170
+ return {
171
+ alt: file.name,
172
+ src: cdn(result.key)
173
+ };
174
+ },
175
+ generateMetadata: (file) => generateMetadata(file, {
176
+ uploadBlob: async (blob) => {
177
+ const result = await fileUploader.uploadBlob(blob, "file", {
178
+ convertToWebp: true
179
+ });
180
+ return {
181
+ alt: file.name,
182
+ src: cdn(result.key)
183
+ };
184
+ }
185
+ })
186
+ };
187
+ }
158
188
  export {
159
189
  EnvLoader,
160
190
  FileInput,
161
191
  StoreTextEditor,
192
+ createAttachFileOptions,
162
193
  env,
163
194
  useUserAgent
164
195
  };
@@ -158,6 +158,9 @@ function StoreTextEditor({
158
158
  );
159
159
  }
160
160
 
161
+ // src/client/editor.tsx
162
+ var import_client = require("dn-react-toolkit/file/client");
163
+
161
164
  // src/crud/crud_form.tsx
162
165
  function CrudForm({
163
166
  AdminHeader
@@ -219,14 +222,5 @@ function CrudForm({
219
222
  }
220
223
  return /* @__PURE__ */ import_react8.default.createElement(FormRow, null, /* @__PURE__ */ import_react8.default.createElement(FormEntry, null, /* @__PURE__ */ import_react8.default.createElement(FormLabel, { key: name }, value.label), /* @__PURE__ */ import_react8.default.createElement(InputComponent, null)));
221
224
  }
222
- )), form.item && /* @__PURE__ */ import_react8.default.createElement(
223
- "button",
224
- {
225
- className: "button-dangerous mt-8",
226
- onClick: () => {
227
- form.delete();
228
- }
229
- },
230
- "\uC0AD\uC81C\uD558\uAE30"
231
- )));
225
+ ))));
232
226
  }
@@ -124,6 +124,9 @@ function StoreTextEditor({
124
124
  );
125
125
  }
126
126
 
127
+ // src/client/editor.tsx
128
+ import { generateMetadata } from "dn-react-toolkit/file/client";
129
+
127
130
  // src/crud/crud_form.tsx
128
131
  function CrudForm({
129
132
  AdminHeader
@@ -185,16 +188,7 @@ function CrudForm({
185
188
  }
186
189
  return /* @__PURE__ */ React6.createElement(FormRow, null, /* @__PURE__ */ React6.createElement(FormEntry, null, /* @__PURE__ */ React6.createElement(FormLabel, { key: name }, value.label), /* @__PURE__ */ React6.createElement(InputComponent, null)));
187
190
  }
188
- )), form.item && /* @__PURE__ */ React6.createElement(
189
- "button",
190
- {
191
- className: "button-dangerous mt-8",
192
- onClick: () => {
193
- form.delete();
194
- }
195
- },
196
- "\uC0AD\uC81C\uD558\uAE30"
197
- )));
191
+ ))));
198
192
  }
199
193
  export {
200
194
  CrudForm as default
@@ -14,8 +14,7 @@ type FormColumnValue<TModel> = {
14
14
  type FormColumns<TModel> = Partial<{
15
15
  [K in keyof TModel]: FormColumnValue<TModel>;
16
16
  }>;
17
- declare const FormContext: React__default.Context<{}>;
18
- declare function useFormContext<TModel>(): {
17
+ type FormContextProps<TModel> = {
19
18
  name: string;
20
19
  item?: TModel;
21
20
  store: Store<TModel>;
@@ -23,6 +22,8 @@ declare function useFormContext<TModel>(): {
23
22
  delete: () => Promise<void>;
24
23
  columns: FormColumns<TModel>;
25
24
  };
25
+ declare const FormContext: React__default.Context<{}>;
26
+ declare function useFormContext<TModel>(): FormContextProps<TModel>;
26
27
  type CrudFormProps<TModel> = {
27
28
  primaryKey: keyof TModel;
28
29
  name: string;
@@ -33,4 +34,4 @@ type CrudFormProps<TModel> = {
33
34
  };
34
35
  declare function CrudFormProvider<TModel>({ primaryKey, name, prefix, item, columns, children, }: CrudFormProps<TModel>): React__default.JSX.Element;
35
36
 
36
- export { type CrudFormProps, type FormColumnValue, type FormColumns, FormContext, CrudFormProvider as default, useFormContext };
37
+ export { type CrudFormProps, type FormColumnValue, type FormColumns, FormContext, type FormContextProps, CrudFormProvider as default, useFormContext };
@@ -14,8 +14,7 @@ type FormColumnValue<TModel> = {
14
14
  type FormColumns<TModel> = Partial<{
15
15
  [K in keyof TModel]: FormColumnValue<TModel>;
16
16
  }>;
17
- declare const FormContext: React__default.Context<{}>;
18
- declare function useFormContext<TModel>(): {
17
+ type FormContextProps<TModel> = {
19
18
  name: string;
20
19
  item?: TModel;
21
20
  store: Store<TModel>;
@@ -23,6 +22,8 @@ declare function useFormContext<TModel>(): {
23
22
  delete: () => Promise<void>;
24
23
  columns: FormColumns<TModel>;
25
24
  };
25
+ declare const FormContext: React__default.Context<{}>;
26
+ declare function useFormContext<TModel>(): FormContextProps<TModel>;
26
27
  type CrudFormProps<TModel> = {
27
28
  primaryKey: keyof TModel;
28
29
  name: string;
@@ -33,4 +34,4 @@ type CrudFormProps<TModel> = {
33
34
  };
34
35
  declare function CrudFormProvider<TModel>({ primaryKey, name, prefix, item, columns, children, }: CrudFormProps<TModel>): React__default.JSX.Element;
35
36
 
36
- export { type CrudFormProps, type FormColumnValue, type FormColumns, FormContext, CrudFormProvider as default, useFormContext };
37
+ export { type CrudFormProps, type FormColumnValue, type FormColumns, FormContext, type FormContextProps, CrudFormProvider as default, useFormContext };
@@ -114,22 +114,22 @@ function CrudFormProvider({
114
114
  const apiPrefix = `/api${prefix}`;
115
115
  const createInitialState = () => {
116
116
  return Object.keys(item || columns).reduce((acc, key) => {
117
- const value = item ? item[key] : void 0;
117
+ const value2 = item ? item[key] : void 0;
118
118
  if (columns[key]?.defaultValue !== void 0) {
119
- if (typeof value === "number") {
119
+ if (typeof value2 === "number") {
120
120
  return {
121
121
  ...acc,
122
- [key]: value ?? columns[key]?.defaultValue
122
+ [key]: value2 ?? columns[key]?.defaultValue
123
123
  };
124
124
  }
125
125
  return {
126
126
  ...acc,
127
- [key]: value || columns[key]?.defaultValue
127
+ [key]: value2 || columns[key]?.defaultValue
128
128
  };
129
129
  }
130
130
  return {
131
131
  ...acc,
132
- [key]: value
132
+ [key]: value2
133
133
  };
134
134
  }, {});
135
135
  };
@@ -171,13 +171,15 @@ function CrudFormProvider({
171
171
  alert(`${name}\uB97C \uC0AD\uC81C\uD588\uC2B5\uB2C8\uB2E4.`);
172
172
  navigate(`${prefix}`);
173
173
  };
174
- return /* @__PURE__ */ import_react2.default.createElement(
175
- FormContext.Provider,
176
- {
177
- value: { name, item, store, submit, delete: deleteItem, columns }
178
- },
179
- children
180
- );
174
+ const value = {
175
+ name,
176
+ item,
177
+ store,
178
+ submit,
179
+ delete: deleteItem,
180
+ columns
181
+ };
182
+ return /* @__PURE__ */ import_react2.default.createElement(FormContext.Provider, { value }, children);
181
183
  }
182
184
  // Annotate the CommonJS export names for ESM import in node:
183
185
  0 && (module.exports = {
@@ -78,22 +78,22 @@ function CrudFormProvider({
78
78
  const apiPrefix = `/api${prefix}`;
79
79
  const createInitialState = () => {
80
80
  return Object.keys(item || columns).reduce((acc, key) => {
81
- const value = item ? item[key] : void 0;
81
+ const value2 = item ? item[key] : void 0;
82
82
  if (columns[key]?.defaultValue !== void 0) {
83
- if (typeof value === "number") {
83
+ if (typeof value2 === "number") {
84
84
  return {
85
85
  ...acc,
86
- [key]: value ?? columns[key]?.defaultValue
86
+ [key]: value2 ?? columns[key]?.defaultValue
87
87
  };
88
88
  }
89
89
  return {
90
90
  ...acc,
91
- [key]: value || columns[key]?.defaultValue
91
+ [key]: value2 || columns[key]?.defaultValue
92
92
  };
93
93
  }
94
94
  return {
95
95
  ...acc,
96
- [key]: value
96
+ [key]: value2
97
97
  };
98
98
  }, {});
99
99
  };
@@ -135,13 +135,15 @@ function CrudFormProvider({
135
135
  alert(`${name}\uB97C \uC0AD\uC81C\uD588\uC2B5\uB2C8\uB2E4.`);
136
136
  navigate(`${prefix}`);
137
137
  };
138
- return /* @__PURE__ */ React.createElement(
139
- FormContext.Provider,
140
- {
141
- value: { name, item, store, submit, delete: deleteItem, columns }
142
- },
143
- children
144
- );
138
+ const value = {
139
+ name,
140
+ item,
141
+ store,
142
+ submit,
143
+ delete: deleteItem,
144
+ columns
145
+ };
146
+ return /* @__PURE__ */ React.createElement(FormContext.Provider, { value }, children);
145
147
  }
146
148
  export {
147
149
  FormContext,
@@ -1,4 +1,4 @@
1
- import { CrudFormProps } from './crud_form_provider.mjs';
1
+ import { FormContextProps, CrudFormProps } from './crud_form_provider.mjs';
2
2
  import { TablePageOptions } from '../table/page.mjs';
3
3
  import React__default from 'react';
4
4
  import 'react-store-input';
@@ -9,7 +9,9 @@ type CrudPageOptions<TModel> = {
9
9
  primaryKey: keyof TModel;
10
10
  tablePageOptions: Omit<TablePageOptions<TModel>, "name">;
11
11
  formOptions: {
12
- form?: React__default.FC;
12
+ form?: React__default.FC<{
13
+ form: FormContextProps<TModel>;
14
+ }>;
13
15
  columns: CrudFormProps<TModel>["columns"];
14
16
  };
15
17
  header: React__default.FC<{
@@ -1,4 +1,4 @@
1
- import { CrudFormProps } from './crud_form_provider.js';
1
+ import { FormContextProps, CrudFormProps } from './crud_form_provider.js';
2
2
  import { TablePageOptions } from '../table/page.js';
3
3
  import React__default from 'react';
4
4
  import 'react-store-input';
@@ -9,7 +9,9 @@ type CrudPageOptions<TModel> = {
9
9
  primaryKey: keyof TModel;
10
10
  tablePageOptions: Omit<TablePageOptions<TModel>, "name">;
11
11
  formOptions: {
12
- form?: React__default.FC;
12
+ form?: React__default.FC<{
13
+ form: FormContextProps<TModel>;
14
+ }>;
13
15
  columns: CrudFormProps<TModel>["columns"];
14
16
  };
15
17
  header: React__default.FC<{
@@ -115,22 +115,22 @@ function CrudFormProvider({
115
115
  const apiPrefix = `/api${prefix}`;
116
116
  const createInitialState = () => {
117
117
  return Object.keys(item || columns).reduce((acc, key) => {
118
- const value = item ? item[key] : void 0;
118
+ const value2 = item ? item[key] : void 0;
119
119
  if (columns[key]?.defaultValue !== void 0) {
120
- if (typeof value === "number") {
120
+ if (typeof value2 === "number") {
121
121
  return {
122
122
  ...acc,
123
- [key]: value ?? columns[key]?.defaultValue
123
+ [key]: value2 ?? columns[key]?.defaultValue
124
124
  };
125
125
  }
126
126
  return {
127
127
  ...acc,
128
- [key]: value || columns[key]?.defaultValue
128
+ [key]: value2 || columns[key]?.defaultValue
129
129
  };
130
130
  }
131
131
  return {
132
132
  ...acc,
133
- [key]: value
133
+ [key]: value2
134
134
  };
135
135
  }, {});
136
136
  };
@@ -172,13 +172,15 @@ function CrudFormProvider({
172
172
  alert(`${name}\uB97C \uC0AD\uC81C\uD588\uC2B5\uB2C8\uB2E4.`);
173
173
  navigate(`${prefix}`);
174
174
  };
175
- return /* @__PURE__ */ import_react2.default.createElement(
176
- FormContext.Provider,
177
- {
178
- value: { name, item, store, submit, delete: deleteItem, columns }
179
- },
180
- children
181
- );
175
+ const value = {
176
+ name,
177
+ item,
178
+ store,
179
+ submit,
180
+ delete: deleteItem,
181
+ columns
182
+ };
183
+ return /* @__PURE__ */ import_react2.default.createElement(FormContext.Provider, { value }, children);
182
184
  }
183
185
 
184
186
  // src/table/page.tsx
@@ -699,6 +701,9 @@ function StoreTextEditor({
699
701
  );
700
702
  }
701
703
 
704
+ // src/client/editor.tsx
705
+ var import_client = require("dn-react-toolkit/file/client");
706
+
702
707
  // src/crud/crud_form.tsx
703
708
  function CrudForm({
704
709
  AdminHeader
@@ -760,16 +765,7 @@ function CrudForm({
760
765
  }
761
766
  return /* @__PURE__ */ import_react13.default.createElement(FormRow, null, /* @__PURE__ */ import_react13.default.createElement(FormEntry, null, /* @__PURE__ */ import_react13.default.createElement(FormLabel, { key: name }, value.label), /* @__PURE__ */ import_react13.default.createElement(InputComponent, null)));
762
767
  }
763
- )), form.item && /* @__PURE__ */ import_react13.default.createElement(
764
- "button",
765
- {
766
- className: "button-dangerous mt-8",
767
- onClick: () => {
768
- form.delete();
769
- }
770
- },
771
- "\uC0AD\uC81C\uD558\uAE30"
772
- )));
768
+ ))));
773
769
  }
774
770
 
775
771
  // src/crud/crud_page.tsx
@@ -802,12 +798,18 @@ function crudPage({
802
798
  columns: formOptions.columns,
803
799
  primaryKey
804
800
  },
805
- formOptions.form ? /* @__PURE__ */ import_react14.default.createElement(formOptions.form, null) : /* @__PURE__ */ import_react14.default.createElement(CrudForm, { AdminHeader: header })
801
+ formOptions.form ? /* @__PURE__ */ import_react14.default.createElement(FormDelegate, { component: formOptions.form }) : /* @__PURE__ */ import_react14.default.createElement(CrudForm, { AdminHeader: header })
806
802
  );
807
803
  }
808
804
  };
809
805
  };
810
806
  }
807
+ function FormDelegate({
808
+ component: Component
809
+ }) {
810
+ const form = useFormContext();
811
+ return /* @__PURE__ */ import_react14.default.createElement(Component, { form });
812
+ }
811
813
  // Annotate the CommonJS export names for ESM import in node:
812
814
  0 && (module.exports = {
813
815
  crudPage
@@ -81,22 +81,22 @@ function CrudFormProvider({
81
81
  const apiPrefix = `/api${prefix}`;
82
82
  const createInitialState = () => {
83
83
  return Object.keys(item || columns).reduce((acc, key) => {
84
- const value = item ? item[key] : void 0;
84
+ const value2 = item ? item[key] : void 0;
85
85
  if (columns[key]?.defaultValue !== void 0) {
86
- if (typeof value === "number") {
86
+ if (typeof value2 === "number") {
87
87
  return {
88
88
  ...acc,
89
- [key]: value ?? columns[key]?.defaultValue
89
+ [key]: value2 ?? columns[key]?.defaultValue
90
90
  };
91
91
  }
92
92
  return {
93
93
  ...acc,
94
- [key]: value || columns[key]?.defaultValue
94
+ [key]: value2 || columns[key]?.defaultValue
95
95
  };
96
96
  }
97
97
  return {
98
98
  ...acc,
99
- [key]: value
99
+ [key]: value2
100
100
  };
101
101
  }, {});
102
102
  };
@@ -138,13 +138,15 @@ function CrudFormProvider({
138
138
  alert(`${name}\uB97C \uC0AD\uC81C\uD588\uC2B5\uB2C8\uB2E4.`);
139
139
  navigate(`${prefix}`);
140
140
  };
141
- return /* @__PURE__ */ React.createElement(
142
- FormContext.Provider,
143
- {
144
- value: { name, item, store, submit, delete: deleteItem, columns }
145
- },
146
- children
147
- );
141
+ const value = {
142
+ name,
143
+ item,
144
+ store,
145
+ submit,
146
+ delete: deleteItem,
147
+ columns
148
+ };
149
+ return /* @__PURE__ */ React.createElement(FormContext.Provider, { value }, children);
148
150
  }
149
151
 
150
152
  // src/table/page.tsx
@@ -673,6 +675,9 @@ function StoreTextEditor({
673
675
  );
674
676
  }
675
677
 
678
+ // src/client/editor.tsx
679
+ import { generateMetadata } from "dn-react-toolkit/file/client";
680
+
676
681
  // src/crud/crud_form.tsx
677
682
  function CrudForm({
678
683
  AdminHeader
@@ -734,16 +739,7 @@ function CrudForm({
734
739
  }
735
740
  return /* @__PURE__ */ React11.createElement(FormRow, null, /* @__PURE__ */ React11.createElement(FormEntry, null, /* @__PURE__ */ React11.createElement(FormLabel, { key: name }, value.label), /* @__PURE__ */ React11.createElement(InputComponent, null)));
736
741
  }
737
- )), form.item && /* @__PURE__ */ React11.createElement(
738
- "button",
739
- {
740
- className: "button-dangerous mt-8",
741
- onClick: () => {
742
- form.delete();
743
- }
744
- },
745
- "\uC0AD\uC81C\uD558\uAE30"
746
- )));
742
+ ))));
747
743
  }
748
744
 
749
745
  // src/crud/crud_page.tsx
@@ -776,12 +772,18 @@ function crudPage({
776
772
  columns: formOptions.columns,
777
773
  primaryKey
778
774
  },
779
- formOptions.form ? /* @__PURE__ */ React12.createElement(formOptions.form, null) : /* @__PURE__ */ React12.createElement(CrudForm, { AdminHeader: header })
775
+ formOptions.form ? /* @__PURE__ */ React12.createElement(FormDelegate, { component: formOptions.form }) : /* @__PURE__ */ React12.createElement(CrudForm, { AdminHeader: header })
780
776
  );
781
777
  }
782
778
  };
783
779
  };
784
780
  }
781
+ function FormDelegate({
782
+ component: Component
783
+ }) {
784
+ const form = useFormContext();
785
+ return /* @__PURE__ */ React12.createElement(Component, { form });
786
+ }
785
787
  export {
786
788
  crudPage
787
789
  };
@@ -1,4 +1,4 @@
1
- export { CrudFormProps, FormColumnValue, FormColumns, FormContext, useFormContext } from './crud_form_provider.mjs';
1
+ export { CrudFormProps, FormColumnValue, FormColumns, FormContext, FormContextProps, useFormContext } from './crud_form_provider.mjs';
2
2
  export { CrudHandler, CrudHandlerOptions, crudHandler } from './crud_loader.mjs';
3
3
  export { CrudPage, CrudPageOptions, crudPage } from './crud_page.mjs';
4
4
  export { generateHandlers } from './generate_handlers.mjs';