@rulab/adminjs-components 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -30,17 +30,133 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // src/index.ts
31
31
  var src_exports = {};
32
32
  __export(src_exports, {
33
+ ColorStatusEdit: () => ColorStatusEdit_default,
34
+ ColorStatusList: () => ColorStatusList_default,
35
+ ColorStatusShow: () => ColorStatusShow_default,
33
36
  CustomSlug: () => CustomSlug_default,
34
37
  Editor: () => Editor_default,
38
+ EditorList: () => EditorList_default,
35
39
  EditorShow: () => EditorShow_default,
36
40
  StringList: () => StringList_default,
37
41
  StringListShow: () => StringListShow_default
38
42
  });
39
43
  module.exports = __toCommonJS(src_exports);
40
44
 
41
- // src/components/CustomSlug/CustomSlug.tsx
45
+ // src/components/ColorStatus/ColorStatusEdit.tsx
42
46
  var import_react = __toESM(require("react"), 1);
43
- var import_styled_components2 = require("styled-components");
47
+ var import_react_select = __toESM(require("react-select"), 1);
48
+ var import_chroma_js = __toESM(require("chroma-js"), 1);
49
+
50
+ // src/components/ColorStatus/styles.ts
51
+ var import_styled_components = require("@adminjs/design-system/styled-components");
52
+ var ColorStatusWrapper = import_styled_components.styled.div`
53
+ margin-bottom: 24px;
54
+ `;
55
+ var Label = import_styled_components.styled.div`
56
+ font-size: 12px;
57
+ margin-bottom: 8px;
58
+ `;
59
+ var ShowLabel = import_styled_components.styled.div`
60
+ font-size: 12px;
61
+ margin-bottom: 8px;
62
+ color: rgb(137, 138, 154);
63
+ `;
64
+ var ColorStatusBadgeWrapper = import_styled_components.styled.div`
65
+ margin-bottom: 20px;
66
+ `;
67
+ var ColorStatusBadge = import_styled_components.styled.div`
68
+ background-color: ${(props) => props.color};
69
+ width: fit-content;
70
+ padding: 5px 10px;
71
+ border-radius: 20px;
72
+ font-size: 12px;
73
+ color: white;
74
+ white-space: nowrap;
75
+ `;
76
+
77
+ // src/components/ColorStatus/ColorStatusEdit.tsx
78
+ var dot = (color = "transparent") => ({
79
+ alignItems: "center",
80
+ display: "flex",
81
+ ":before": {
82
+ backgroundColor: color,
83
+ borderRadius: 10,
84
+ content: '" "',
85
+ display: "block",
86
+ marginRight: 8,
87
+ height: 10,
88
+ width: 10
89
+ }
90
+ });
91
+ var colorStyles = {
92
+ control: (styles) => ({ ...styles, backgroundColor: "white" }),
93
+ option: (styles, { data, isDisabled, isFocused, isSelected }) => {
94
+ const color = (0, import_chroma_js.default)(data.color);
95
+ return {
96
+ ...styles,
97
+ backgroundColor: isSelected ? data.color : isFocused ? color.alpha(0.1).css() : void 0,
98
+ color: isSelected ? import_chroma_js.default.contrast(color, "white") > 2 ? "white" : "black" : data.color,
99
+ ":active": {
100
+ ...styles[":active"],
101
+ backgroundColor: isSelected ? data.color : color.alpha(0.3).css()
102
+ }
103
+ };
104
+ },
105
+ input: (styles) => ({ ...styles, ...dot() }),
106
+ placeholder: (styles) => ({ ...styles, ...dot("#ccc") }),
107
+ singleValue: (styles, { data }) => ({ ...styles, ...dot(data.color) })
108
+ };
109
+ var ColorStatus = ({ property, record, onChange }) => {
110
+ const availableValues = property.availableValues;
111
+ const currentOption = availableValues.find(
112
+ (item) => item.value === record.params.colorStatus
113
+ );
114
+ const [selectOption, setCurrentOption] = (0, import_react.useState)(currentOption);
115
+ const handleSelectChange = (option) => {
116
+ setCurrentOption(option);
117
+ };
118
+ (0, import_react.useEffect)(() => {
119
+ onChange(property.path, selectOption?.value);
120
+ }, [selectOption]);
121
+ return /* @__PURE__ */ import_react.default.createElement(ColorStatusWrapper, null, /* @__PURE__ */ import_react.default.createElement(Label, null, property.path), /* @__PURE__ */ import_react.default.createElement(
122
+ import_react_select.default,
123
+ {
124
+ className: "basic-single",
125
+ classNamePrefix: "select",
126
+ defaultValue: selectOption ?? availableValues[0],
127
+ onChange: handleSelectChange,
128
+ isClearable: true,
129
+ name: "color",
130
+ options: availableValues,
131
+ styles: colorStyles
132
+ }
133
+ ));
134
+ };
135
+ var ColorStatusEdit_default = ColorStatus;
136
+
137
+ // src/components/ColorStatus/ColorStatusShow.tsx
138
+ var import_react2 = __toESM(require("react"), 1);
139
+ var ColorStatusShow = ({ property, record }) => {
140
+ const currentOption = property.availableValues?.find(
141
+ (item) => item.value === record.params.colorStatus
142
+ );
143
+ return /* @__PURE__ */ import_react2.default.createElement(ColorStatusBadgeWrapper, null, /* @__PURE__ */ import_react2.default.createElement(ShowLabel, null, property.path), /* @__PURE__ */ import_react2.default.createElement(ColorStatusBadge, { color: currentOption.color }, record.params.colorStatus));
144
+ };
145
+ var ColorStatusShow_default = ColorStatusShow;
146
+
147
+ // src/components/ColorStatus/ColorStatusList.tsx
148
+ var import_react3 = __toESM(require("react"), 1);
149
+ var ColorStatusList = ({ property, record }) => {
150
+ const currentOption = property.availableValues?.find(
151
+ (item) => item.value === record.params.colorStatus
152
+ );
153
+ return /* @__PURE__ */ import_react3.default.createElement(ColorStatusBadge, { color: currentOption.color }, record.params.colorStatus);
154
+ };
155
+ var ColorStatusList_default = ColorStatusList;
156
+
157
+ // src/components/CustomSlug/CustomSlug.tsx
158
+ var import_react4 = __toESM(require("react"), 1);
159
+ var import_styled_components3 = require("styled-components");
44
160
  var import_design_system2 = require("@adminjs/design-system");
45
161
 
46
162
  // src/utils/slugifyImport.ts
@@ -59,20 +175,20 @@ var slugifyTitle = (title) => {
59
175
  };
60
176
 
61
177
  // src/components/CustomSlug/styles.ts
62
- var import_styled_components = require("@adminjs/design-system/styled-components");
178
+ var import_styled_components2 = require("@adminjs/design-system/styled-components");
63
179
  var import_design_system = require("@adminjs/design-system");
64
- var StyledInputWrapper = (0, import_styled_components.styled)(import_design_system.Box)`
180
+ var StyledInputWrapper = (0, import_styled_components2.styled)(import_design_system.Box)`
65
181
  display: flex;
66
182
  margin-bottom: 40px;
67
183
  `;
68
- var StyledCustomInput = (0, import_styled_components.styled)(import_design_system.Input)`
184
+ var StyledCustomInput = (0, import_styled_components2.styled)(import_design_system.Input)`
69
185
  width: 100%;
70
186
  margin-right: 10px;
71
187
  `;
72
- var StyledGenerateButton = (0, import_styled_components.styled)(import_design_system.Button)`
188
+ var StyledGenerateButton = (0, import_styled_components2.styled)(import_design_system.Button)`
73
189
  white-space: nowrap;
74
190
  `;
75
- var StyledLabel = import_styled_components.styled.div`
191
+ var StyledLabel = import_styled_components2.styled.div`
76
192
  font-size: 12px;
77
193
  margin-bottom: 8px;
78
194
  text-transform: capitalize;
@@ -80,11 +196,11 @@ var StyledLabel = import_styled_components.styled.div`
80
196
 
81
197
  // src/components/CustomSlug/CustomSlug.tsx
82
198
  var CustomSlug = ({ property, record, onChange }) => {
83
- const [inputValue, setInputValue] = (0, import_react.useState)(record.params.slug);
84
- (0, import_react.useEffect)(() => {
199
+ const [inputValue, setInputValue] = (0, import_react4.useState)(record.params.slug);
200
+ (0, import_react4.useEffect)(() => {
85
201
  onChange(property.path, inputValue);
86
202
  }, [inputValue]);
87
- return /* @__PURE__ */ import_react.default.createElement(import_styled_components2.ThemeProvider, { theme: import_design_system2.theme }, /* @__PURE__ */ import_react.default.createElement(StyledLabel, { htmlFor: "customSlug" }, property.path), /* @__PURE__ */ import_react.default.createElement(StyledInputWrapper, null, /* @__PURE__ */ import_react.default.createElement(
203
+ return /* @__PURE__ */ import_react4.default.createElement(import_styled_components3.ThemeProvider, { theme: import_design_system2.theme }, /* @__PURE__ */ import_react4.default.createElement(StyledLabel, { htmlFor: "customSlug" }, property.path), /* @__PURE__ */ import_react4.default.createElement(StyledInputWrapper, null, /* @__PURE__ */ import_react4.default.createElement(
88
204
  StyledCustomInput,
89
205
  {
90
206
  id: property.path,
@@ -92,7 +208,7 @@ var CustomSlug = ({ property, record, onChange }) => {
92
208
  value: inputValue,
93
209
  onChange: handleInput
94
210
  }
95
- ), /* @__PURE__ */ import_react.default.createElement(StyledGenerateButton, { variant: "outlined", onClick: generateSlug }, "Generate Slug")));
211
+ ), /* @__PURE__ */ import_react4.default.createElement(StyledGenerateButton, { variant: "outlined", onClick: generateSlug }, "Generate Slug")));
96
212
  function handleInput(e) {
97
213
  setInputValue(e.target.value);
98
214
  }
@@ -106,62 +222,257 @@ var CustomSlug = ({ property, record, onChange }) => {
106
222
  };
107
223
  var CustomSlug_default = CustomSlug;
108
224
 
109
- // src/components/StringList/StringList.tsx
110
- var import_design_system5 = require("@adminjs/design-system");
225
+ // src/components/Editor/Editor.jsx
111
226
  var import_react5 = __toESM(require("react"), 1);
227
+ var import_styled_components5 = require("styled-components");
228
+ var import_editorjs = __toESM(require("@editorjs/editorjs"), 1);
229
+ var import_design_system4 = require("@adminjs/design-system");
230
+
231
+ // src/components/Editor/styles.ts
232
+ var import_design_system3 = require("@adminjs/design-system");
233
+ var import_styled_components4 = require("@adminjs/design-system/styled-components");
234
+ var StyledLabel2 = import_styled_components4.styled.div`
235
+ font-size: 12px;
236
+ margin-bottom: 8px;
237
+ text-transform: capitalize;
238
+ `;
239
+ var StyledShowLabel = (0, import_styled_components4.styled)(StyledLabel2)`
240
+ color: rgb(137, 138, 154);
241
+ font-weight: 300;
242
+ `;
243
+ var StyledEditorWrapper = (0, import_styled_components4.styled)(import_design_system3.Box)`
244
+ padding: 12px;
245
+ margin-bottom: 24px;
246
+ border: 1px solid rgb(187, 195, 203);
247
+ `;
248
+ var StyledEditorViewWrapper = (0, import_styled_components4.styled)(import_design_system3.Box)`
249
+ h1,
250
+ h2,
251
+ h3 {
252
+ margin-bottom: 5px;
253
+ font-weight: bold;
254
+ }
255
+
256
+ h1 {
257
+ font-size: 18px;
258
+ }
259
+
260
+ h2 {
261
+ font-size: 16px;
262
+ }
263
+
264
+ h3 {
265
+ font-size: 14px;
266
+ }
267
+
268
+ p {
269
+ margin-bottom: 8px;
270
+ }
271
+
272
+ ol,
273
+ ul {
274
+ margin-left: 20px;
275
+ margin-bottom: 8px;
276
+ }
277
+
278
+ ol {
279
+ list-style: auto;
280
+ }
281
+
282
+ ul {
283
+ list-style: inherit;
284
+ }
285
+ `;
286
+ var StyledEditorShowWrapper = (0, import_styled_components4.styled)(StyledEditorViewWrapper)`
287
+ margin-bottom: 24px;
288
+ `;
289
+ var StyledEditor = import_styled_components4.styled.div`
290
+ .cdx-block,
291
+ .ce-header {
292
+ padding-left: 58px;
293
+ }
294
+
295
+ .cdx-list {
296
+ padding-left: 85px;
297
+ }
298
+
299
+ .ce-block__content {
300
+ width: 100%;
301
+ max-width: none;
302
+ }
303
+
304
+ .ce-toolbar__content {
305
+ max-width: none;
306
+ left: 0;
307
+ }
308
+
309
+ .ce-toolbar__actions {
310
+ left: 0;
311
+ }
312
+
313
+ h1.ce-header {
314
+ font-size: 22px;
315
+ font-weight: bold;
316
+ }
317
+
318
+ h2.ce-header {
319
+ font-size: 20px;
320
+ font-weight: bold;
321
+ }
322
+
323
+ h3.ce-header {
324
+ font-size: 18px;
325
+ font-weight: bold;
326
+ }
327
+
328
+ h4.ce-header {
329
+ font-size: 16px;
330
+ font-weight: bold;
331
+ }
332
+
333
+ h5.ce-header {
334
+ font-size: 15px;
335
+ font-weight: bold;
336
+ }
337
+
338
+ h6.ce-header {
339
+ font-size: 14px;
340
+ font-weight: bold;
341
+ }
342
+ `;
343
+
344
+ // src/components/Editor/config.ts
345
+ var import_header = __toESM(require("@editorjs/header"), 1);
346
+ var import_paragraph = __toESM(require("@editorjs/paragraph"), 1);
347
+ var import_list = __toESM(require("@editorjs/list"), 1);
348
+ var EDITOR_TOOLS = {
349
+ paragraph: {
350
+ class: import_paragraph.default,
351
+ inlineToolbar: true
352
+ },
353
+ list: import_list.default,
354
+ header: import_header.default
355
+ };
356
+
357
+ // src/components/Editor/Editor.jsx
358
+ var Editor = ({ property, record, onChangeAdmin, editorId }) => {
359
+ const [jsonData, setJsonData] = (0, import_react5.useState)();
360
+ const isSavedData = Boolean(record.params[property.path]);
361
+ const ref = (0, import_react5.useRef)();
362
+ (0, import_react5.useEffect)(() => {
363
+ onChangeAdmin(property.path, jsonData);
364
+ }, [jsonData]);
365
+ (0, import_react5.useEffect)(() => {
366
+ if (!ref.current) {
367
+ const editor = new import_editorjs.default({
368
+ holder: editorId,
369
+ tools: EDITOR_TOOLS,
370
+ data: isSavedData ? JSON.parse(record.params[property.path]) : "",
371
+ async onChange(api, event) {
372
+ const data = await api.saver.save();
373
+ setJsonData(JSON.stringify(data));
374
+ }
375
+ });
376
+ ref.current = editor;
377
+ }
378
+ return () => {
379
+ ref?.current?.destroy?.();
380
+ };
381
+ }, []);
382
+ return /* @__PURE__ */ import_react5.default.createElement(import_styled_components5.ThemeProvider, { theme: import_design_system4.theme }, /* @__PURE__ */ import_react5.default.createElement(StyledLabel2, null, property.path), /* @__PURE__ */ import_react5.default.createElement(StyledEditorWrapper, null, /* @__PURE__ */ import_react5.default.createElement(StyledEditor, { id: editorId })));
383
+ };
384
+ var Editor_default = Editor;
385
+
386
+ // src/components/Editor/EditorList.jsx
387
+ var import_react6 = __toESM(require("react"), 1);
112
388
  var import_styled_components6 = require("styled-components");
389
+ var import_design_system5 = require("@adminjs/design-system");
390
+
391
+ // src/utils/parseHtml.ts
392
+ var import_editorjs_html = __toESM(require("editorjs-html"), 1);
393
+ var parseHtml = (jsonData) => {
394
+ const edjsParser = (0, import_editorjs_html.default)();
395
+ try {
396
+ const data = edjsParser.parse(JSON.parse(String(jsonData)));
397
+ return String(data).replace(/>,</g, "><");
398
+ } catch (e) {
399
+ return;
400
+ }
401
+ };
402
+
403
+ // src/components/Editor/EditorList.jsx
404
+ var EditorList = ({ property, record }) => {
405
+ const htmlContent = parseHtml(record.params[property.path]);
406
+ return /* @__PURE__ */ import_react6.default.createElement(import_styled_components6.ThemeProvider, { theme: import_design_system5.theme }, /* @__PURE__ */ import_react6.default.createElement(StyledEditorViewWrapper, null, htmlContent && /* @__PURE__ */ import_react6.default.createElement("div", { dangerouslySetInnerHTML: { __html: htmlContent } })));
407
+ };
408
+ var EditorList_default = EditorList;
409
+
410
+ // src/components/Editor/EditorShow.jsx
411
+ var import_react7 = __toESM(require("react"), 1);
412
+ var import_styled_components7 = require("styled-components");
413
+ var import_design_system6 = require("@adminjs/design-system");
414
+ var EditorShow = ({ property, record }) => {
415
+ const htmlContent = parseHtml(record.params[property.path]);
416
+ return /* @__PURE__ */ import_react7.default.createElement(import_styled_components7.ThemeProvider, { theme: import_design_system6.theme }, /* @__PURE__ */ import_react7.default.createElement(StyledEditorShowWrapper, null, /* @__PURE__ */ import_react7.default.createElement(StyledShowLabel, null, property.path), htmlContent && /* @__PURE__ */ import_react7.default.createElement("div", { dangerouslySetInnerHTML: { __html: htmlContent } })));
417
+ };
418
+ var EditorShow_default = EditorShow;
419
+
420
+ // src/components/StringList/StringList.tsx
421
+ var import_design_system9 = require("@adminjs/design-system");
422
+ var import_react11 = __toESM(require("react"), 1);
423
+ var import_styled_components11 = require("styled-components");
113
424
 
114
425
  // src/components/StringList/styles.ts
115
- var import_design_system3 = require("@adminjs/design-system");
116
- var import_styled_components3 = require("@adminjs/design-system/styled-components");
117
- var StyledWrapper = (0, import_styled_components3.styled)(import_design_system3.Box)`
426
+ var import_design_system7 = require("@adminjs/design-system");
427
+ var import_styled_components8 = require("@adminjs/design-system/styled-components");
428
+ var StyledWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
118
429
  display: flex;
119
430
  flex-direction: column;
120
431
  margin-bottom: 45px;
121
432
  `;
122
- var StyledCustomInput2 = (0, import_styled_components3.styled)(import_design_system3.Input)`
433
+ var StyledCustomInput2 = (0, import_styled_components8.styled)(import_design_system7.Input)`
123
434
  width: 100%;
124
435
  margin-right: 10px;
125
436
  `;
126
- var StyledInputWrapper2 = (0, import_styled_components3.styled)(import_design_system3.Box)`
437
+ var StyledInputWrapper2 = (0, import_styled_components8.styled)(import_design_system7.Box)`
127
438
  display: flex;
128
439
  `;
129
- var StyledListWrapper = (0, import_styled_components3.styled)(import_design_system3.Box)`
440
+ var StyledListWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
130
441
  margin-bottom: 15px;
131
442
  `;
132
- var StyledLabel2 = import_styled_components3.styled.div`
443
+ var StyledLabel3 = import_styled_components8.styled.div`
133
444
  font-size: 12px;
134
445
  margin-bottom: 8px;
135
446
  text-transform: capitalize;
136
447
  `;
137
- var StyledShowLabel = (0, import_styled_components3.styled)(StyledLabel2)`
448
+ var StyledShowLabel2 = (0, import_styled_components8.styled)(StyledLabel3)`
138
449
  line-height: 16px;
139
450
  color: rgb(137, 138, 154);
140
451
  font-weight: 300;
141
452
  `;
142
- var StyledShowWrapper = (0, import_styled_components3.styled)(import_design_system3.Box)`
453
+ var StyledShowWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
143
454
  margin-bottom: 35px;
144
455
  `;
145
- var StyledListItem = import_styled_components3.styled.li`
456
+ var StyledListItem = import_styled_components8.styled.li`
146
457
  margin-bottom: 5px;
147
458
  `;
148
459
 
149
460
  // src/components/StringList/SortableList/SortableList.tsx
150
- var import_react4 = __toESM(require("react"), 1);
461
+ var import_react10 = __toESM(require("react"), 1);
151
462
  var import_core = require("@dnd-kit/core");
152
463
  var import_sortable2 = require("@dnd-kit/sortable");
153
464
 
154
465
  // src/components/StringList/SortableList/components/SortableItem/SortableItem.tsx
155
- var import_react3 = __toESM(require("react"), 1);
466
+ var import_react9 = __toESM(require("react"), 1);
156
467
  var import_sortable = require("@dnd-kit/sortable");
157
- var import_design_system4 = require("@adminjs/design-system");
468
+ var import_design_system8 = require("@adminjs/design-system");
158
469
 
159
470
  // src/components/StringList/SortableList/components/SortableItem/DragHandle.tsx
160
- var import_react2 = __toESM(require("react"), 1);
471
+ var import_react8 = __toESM(require("react"), 1);
161
472
 
162
473
  // src/components/StringList/SortableList/components/SortableItem/styles.ts
163
- var import_styled_components4 = require("@adminjs/design-system/styled-components");
164
- var StyledListItem2 = import_styled_components4.styled.li`
474
+ var import_styled_components9 = require("@adminjs/design-system/styled-components");
475
+ var StyledListItem2 = import_styled_components9.styled.li`
165
476
  display: flex;
166
477
  justify-content: space-between;
167
478
  align-items: center;
@@ -173,7 +484,7 @@ var StyledListItem2 = import_styled_components4.styled.li`
173
484
  border-radius: 5px;
174
485
  list-style: none;
175
486
  `;
176
- var StyledDragButton = import_styled_components4.styled.button`
487
+ var StyledDragButton = import_styled_components9.styled.button`
177
488
  padding: 3px;
178
489
  margin-right: 15px;
179
490
  cursor: move;
@@ -183,12 +494,12 @@ var StyledDragButton = import_styled_components4.styled.button`
183
494
 
184
495
  // src/components/StringList/SortableList/components/SortableItem/DragHandle.tsx
185
496
  var DragHandle = ({ context }) => {
186
- const { attributes, listeners, ref } = (0, import_react2.useContext)(context);
187
- return /* @__PURE__ */ import_react2.default.createElement(StyledDragButton, { ...attributes, ...listeners, ref }, /* @__PURE__ */ import_react2.default.createElement("svg", { viewBox: "0 0 20 20", width: "13" }, /* @__PURE__ */ import_react2.default.createElement("path", { d: "M7 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 2zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 14zm6-8a2 2 0 1 0-.001-4.001A2 2 0 0 0 13 6zm0 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 14z" })));
497
+ const { attributes, listeners, ref } = (0, import_react8.useContext)(context);
498
+ return /* @__PURE__ */ import_react8.default.createElement(StyledDragButton, { ...attributes, ...listeners, ref }, /* @__PURE__ */ import_react8.default.createElement("svg", { viewBox: "0 0 20 20", width: "13" }, /* @__PURE__ */ import_react8.default.createElement("path", { d: "M7 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 2zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 7 14zm6-8a2 2 0 1 0-.001-4.001A2 2 0 0 0 13 6zm0 2a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 8zm0 6a2 2 0 1 0 .001 4.001A2 2 0 0 0 13 14z" })));
188
499
  };
189
500
 
190
501
  // src/components/StringList/SortableList/components/SortableItem/SortableItem.tsx
191
- var SortableItemContext = (0, import_react3.createContext)({
502
+ var SortableItemContext = (0, import_react9.createContext)({
192
503
  attributes: {},
193
504
  listeners: void 0,
194
505
  ref() {
@@ -200,7 +511,7 @@ function SortableItem({
200
511
  onDelete
201
512
  }) {
202
513
  const { attributes, isDragging, listeners, setNodeRef, setActivatorNodeRef } = (0, import_sortable.useSortable)({ id });
203
- const context = (0, import_react3.useMemo)(
514
+ const context = (0, import_react9.useMemo)(
204
515
  () => ({
205
516
  attributes,
206
517
  listeners,
@@ -211,21 +522,21 @@ function SortableItem({
211
522
  const style = {
212
523
  opacity: isDragging ? 0.4 : void 0
213
524
  };
214
- return /* @__PURE__ */ import_react3.default.createElement(SortableItemContext.Provider, { value: context }, /* @__PURE__ */ import_react3.default.createElement(StyledListItem2, { ref: setNodeRef, style }, /* @__PURE__ */ import_react3.default.createElement("div", null, /* @__PURE__ */ import_react3.default.createElement(DragHandle, { context: SortableItemContext }), children), /* @__PURE__ */ import_react3.default.createElement(
215
- import_design_system4.Button,
525
+ return /* @__PURE__ */ import_react9.default.createElement(SortableItemContext.Provider, { value: context }, /* @__PURE__ */ import_react9.default.createElement(StyledListItem2, { ref: setNodeRef, style }, /* @__PURE__ */ import_react9.default.createElement("div", null, /* @__PURE__ */ import_react9.default.createElement(DragHandle, { context: SortableItemContext }), children), /* @__PURE__ */ import_react9.default.createElement(
526
+ import_design_system8.Button,
216
527
  {
217
528
  variant: "outlined",
218
529
  color: "danger",
219
530
  size: "icon",
220
531
  onClick: (e) => onDelete(e, id)
221
532
  },
222
- /* @__PURE__ */ import_react3.default.createElement(import_design_system4.Icon, { icon: "X", color: "red" })
533
+ /* @__PURE__ */ import_react9.default.createElement(import_design_system8.Icon, { icon: "X", color: "red" })
223
534
  )));
224
535
  }
225
536
 
226
537
  // src/components/StringList/SortableList/styles.ts
227
- var import_styled_components5 = require("@adminjs/design-system/styled-components");
228
- var StyledListWrapper2 = import_styled_components5.styled.ul`
538
+ var import_styled_components10 = require("@adminjs/design-system/styled-components");
539
+ var StyledListWrapper2 = import_styled_components10.styled.ul`
229
540
  display: flex;
230
541
  flex-direction: column;
231
542
  gap: 12px;
@@ -248,8 +559,8 @@ function SortableList({
248
559
  onChange,
249
560
  renderItem
250
561
  }) {
251
- const [active, setActive] = (0, import_react4.useState)(null);
252
- const activeItem = (0, import_react4.useMemo)(
562
+ const [active, setActive] = (0, import_react10.useState)(null);
563
+ const activeItem = (0, import_react10.useMemo)(
253
564
  () => items.find((item) => item.id === active?.id),
254
565
  [active, items]
255
566
  );
@@ -259,7 +570,7 @@ function SortableList({
259
570
  coordinateGetter: import_sortable2.sortableKeyboardCoordinates
260
571
  })
261
572
  );
262
- return /* @__PURE__ */ import_react4.default.createElement(
573
+ return /* @__PURE__ */ import_react10.default.createElement(
263
574
  import_core.DndContext,
264
575
  {
265
576
  sensors,
@@ -278,8 +589,8 @@ function SortableList({
278
589
  setActive(null);
279
590
  }
280
591
  },
281
- /* @__PURE__ */ import_react4.default.createElement(import_sortable2.SortableContext, { items, strategy: import_sortable2.verticalListSortingStrategy }, /* @__PURE__ */ import_react4.default.createElement(StyledListWrapper2, { role: "application" }, items.map((item, index) => /* @__PURE__ */ import_react4.default.createElement(import_react4.Fragment, { key: index }, renderItem(item))))),
282
- /* @__PURE__ */ import_react4.default.createElement(import_core.DragOverlay, { dropAnimation: dropAnimationConfig }, activeItem ? renderItem(activeItem) : null)
592
+ /* @__PURE__ */ import_react10.default.createElement(import_sortable2.SortableContext, { items, strategy: import_sortable2.verticalListSortingStrategy }, /* @__PURE__ */ import_react10.default.createElement(StyledListWrapper2, { role: "application" }, items.map((item, index) => /* @__PURE__ */ import_react10.default.createElement(import_react10.Fragment, { key: index }, renderItem(item))))),
593
+ /* @__PURE__ */ import_react10.default.createElement(import_core.DragOverlay, { dropAnimation: dropAnimationConfig }, activeItem ? renderItem(activeItem) : null)
283
594
  );
284
595
  }
285
596
  SortableList.Item = SortableItem;
@@ -296,28 +607,28 @@ var StringList = ({
296
607
  }) => {
297
608
  const stringListValue = record.params?.[property.path] ?? property.props.value ?? "";
298
609
  const initialList = stringListValue ? prepareDataForList(stringListValue) : [];
299
- const [inputValue, setInputValue] = (0, import_react5.useState)("");
300
- const [list, setList] = (0, import_react5.useState)(initialList);
610
+ const [inputValue, setInputValue] = (0, import_react11.useState)("");
611
+ const [list, setList] = (0, import_react11.useState)(initialList);
301
612
  const serializedData = prepareDataForDatabase(list);
302
- (0, import_react5.useEffect)(() => {
613
+ (0, import_react11.useEffect)(() => {
303
614
  onChange(property.path, serializedData);
304
615
  }, [serializedData]);
305
- return /* @__PURE__ */ import_react5.default.createElement(import_styled_components6.ThemeProvider, { theme: import_design_system5.theme }, /* @__PURE__ */ import_react5.default.createElement(StyledLabel2, { htmlFor: "custom" }, property.path), /* @__PURE__ */ import_react5.default.createElement(StyledWrapper, null, /* @__PURE__ */ import_react5.default.createElement(StyledListWrapper, null, /* @__PURE__ */ import_react5.default.createElement(
616
+ return /* @__PURE__ */ import_react11.default.createElement(import_styled_components11.ThemeProvider, { theme: import_design_system9.theme }, /* @__PURE__ */ import_react11.default.createElement(StyledLabel3, { htmlFor: "custom" }, property.path), /* @__PURE__ */ import_react11.default.createElement(StyledWrapper, null, /* @__PURE__ */ import_react11.default.createElement(StyledListWrapper, null, /* @__PURE__ */ import_react11.default.createElement(
306
617
  SortableList,
307
618
  {
308
619
  items: list,
309
620
  onChange: setList,
310
- renderItem: (item) => /* @__PURE__ */ import_react5.default.createElement(SortableList.Item, { id: item.id, onDelete: handleDeleteButton }, item.value)
621
+ renderItem: (item) => /* @__PURE__ */ import_react11.default.createElement(SortableList.Item, { id: item.id, onDelete: handleDeleteButton }, item.value)
311
622
  }
312
- )), /* @__PURE__ */ import_react5.default.createElement(StyledInputWrapper2, null, /* @__PURE__ */ import_react5.default.createElement(
313
- import_design_system5.Input,
623
+ )), /* @__PURE__ */ import_react11.default.createElement(StyledInputWrapper2, null, /* @__PURE__ */ import_react11.default.createElement(
624
+ import_design_system9.Input,
314
625
  {
315
626
  id: "stringList",
316
627
  name: property.path,
317
628
  value: serializedData,
318
629
  hidden: true
319
630
  }
320
- ), /* @__PURE__ */ import_react5.default.createElement(
631
+ ), /* @__PURE__ */ import_react11.default.createElement(
321
632
  StyledCustomInput2,
322
633
  {
323
634
  id: "custom",
@@ -326,7 +637,7 @@ var StringList = ({
326
637
  onChange: handleInput,
327
638
  onKeyPress: handleEnterPress
328
639
  }
329
- ), /* @__PURE__ */ import_react5.default.createElement(import_design_system5.Button, { variant: "outlined", onClick: handleAddButton }, "Add"))));
640
+ ), /* @__PURE__ */ import_react11.default.createElement(import_design_system9.Button, { variant: "outlined", onClick: handleAddButton }, "Add"))));
330
641
  function handleInput(e) {
331
642
  setInputValue(e.target.value);
332
643
  }
@@ -363,205 +674,25 @@ var StringList = ({
363
674
  var StringList_default = StringList;
364
675
 
365
676
  // src/components/StringList/StringListShow.tsx
366
- var import_react6 = __toESM(require("react"), 1);
367
- var import_styled_components7 = require("styled-components");
368
- var import_design_system6 = require("@adminjs/design-system");
677
+ var import_react12 = __toESM(require("react"), 1);
678
+ var import_styled_components12 = require("styled-components");
679
+ var import_design_system10 = require("@adminjs/design-system");
369
680
  var StringListShow = ({
370
681
  property,
371
682
  record,
372
683
  stringListSeparator = separator
373
684
  }) => {
374
- return /* @__PURE__ */ import_react6.default.createElement(import_styled_components7.ThemeProvider, { theme: import_design_system6.theme }, /* @__PURE__ */ import_react6.default.createElement(StyledShowWrapper, null, /* @__PURE__ */ import_react6.default.createElement(StyledShowLabel, null, property.path), record.params.facts && /* @__PURE__ */ import_react6.default.createElement("ul", null, record.params.facts.split(stringListSeparator).map((item, index) => /* @__PURE__ */ import_react6.default.createElement(StyledListItem, { key: index }, `- ${item}`)))));
685
+ return /* @__PURE__ */ import_react12.default.createElement(import_styled_components12.ThemeProvider, { theme: import_design_system10.theme }, /* @__PURE__ */ import_react12.default.createElement(StyledShowWrapper, null, /* @__PURE__ */ import_react12.default.createElement(StyledShowLabel2, null, property.path), record.params.facts && /* @__PURE__ */ import_react12.default.createElement("ul", null, record.params.facts.split(stringListSeparator).map((item, index) => /* @__PURE__ */ import_react12.default.createElement(StyledListItem, { key: index }, `- ${item}`)))));
375
686
  };
376
687
  var StringListShow_default = StringListShow;
377
-
378
- // src/components/Editor/Editor.jsx
379
- var import_react7 = __toESM(require("react"), 1);
380
- var import_styled_components9 = require("styled-components");
381
- var import_editorjs = __toESM(require("@editorjs/editorjs"), 1);
382
- var import_design_system8 = require("@adminjs/design-system");
383
-
384
- // src/components/Editor/styles.ts
385
- var import_design_system7 = require("@adminjs/design-system");
386
- var import_styled_components8 = require("@adminjs/design-system/styled-components");
387
- var StyledLabel3 = import_styled_components8.styled.div`
388
- font-size: 12px;
389
- margin-bottom: 8px;
390
- text-transform: capitalize;
391
- `;
392
- var StyledShowLabel2 = (0, import_styled_components8.styled)(StyledLabel3)`
393
- color: rgb(137, 138, 154);
394
- font-weight: 300;
395
- `;
396
- var StyledEditorWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
397
- padding: 12px;
398
- margin-bottom: 24px;
399
- border: 1px solid rgb(187, 195, 203);
400
- `;
401
- var StyledEditorShowWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
402
- margin-bottom: 24px;
403
-
404
- h1,
405
- h2,
406
- h3 {
407
- margin-bottom: 5px;
408
- font-weight: bold;
409
- }
410
-
411
- h1 {
412
- font-size: 18px;
413
- }
414
-
415
- h2 {
416
- font-size: 16px;
417
- }
418
-
419
- h3 {
420
- font-size: 14px;
421
- }
422
-
423
- p {
424
- margin-bottom: 8px;
425
- }
426
-
427
- ol,
428
- ul {
429
- margin-left: 20px;
430
- margin-bottom: 8px;
431
- }
432
-
433
- ol {
434
- list-style: auto;
435
- }
436
-
437
- ul {
438
- list-style: inherit;
439
- }
440
- `;
441
- var StyledEditor = import_styled_components8.styled.div`
442
- .cdx-block,
443
- .ce-header {
444
- padding-left: 58px;
445
- }
446
-
447
- .cdx-list {
448
- padding-left: 85px;
449
- }
450
-
451
- .ce-block__content {
452
- width: 100%;
453
- max-width: none;
454
- }
455
-
456
- .ce-toolbar__content {
457
- max-width: none;
458
- left: 0;
459
- }
460
-
461
- .ce-toolbar__actions {
462
- left: 0;
463
- }
464
-
465
- h1.ce-header {
466
- font-size: 22px;
467
- font-weight: bold;
468
- }
469
-
470
- h2.ce-header {
471
- font-size: 20px;
472
- font-weight: bold;
473
- }
474
-
475
- h3.ce-header {
476
- font-size: 18px;
477
- font-weight: bold;
478
- }
479
-
480
- h4.ce-header {
481
- font-size: 16px;
482
- font-weight: bold;
483
- }
484
-
485
- h5.ce-header {
486
- font-size: 15px;
487
- font-weight: bold;
488
- }
489
-
490
- h6.ce-header {
491
- font-size: 14px;
492
- font-weight: bold;
493
- }
494
- `;
495
-
496
- // src/components/Editor/config.ts
497
- var import_header = __toESM(require("@editorjs/header"), 1);
498
- var import_paragraph = __toESM(require("@editorjs/paragraph"), 1);
499
- var import_list = __toESM(require("@editorjs/list"), 1);
500
- var EDITOR_TOOLS = {
501
- paragraph: {
502
- class: import_paragraph.default,
503
- inlineToolbar: true
504
- },
505
- list: import_list.default,
506
- header: import_header.default
507
- };
508
-
509
- // src/components/Editor/Editor.jsx
510
- var Editor = ({ property, record, onChangeAdmin, editorId }) => {
511
- const [jsonData, setJsonData] = (0, import_react7.useState)();
512
- const isSavedData = Boolean(record.params[property.path]);
513
- const ref = (0, import_react7.useRef)();
514
- (0, import_react7.useEffect)(() => {
515
- onChangeAdmin(property.path, jsonData);
516
- }, [jsonData]);
517
- (0, import_react7.useEffect)(() => {
518
- if (!ref.current) {
519
- const editor = new import_editorjs.default({
520
- holder: editorId,
521
- tools: EDITOR_TOOLS,
522
- data: isSavedData ? JSON.parse(record.params[property.path]) : "",
523
- async onChange(api, event) {
524
- const data = await api.saver.save();
525
- setJsonData(JSON.stringify(data));
526
- }
527
- });
528
- ref.current = editor;
529
- }
530
- return () => {
531
- ref?.current?.destroy?.();
532
- };
533
- }, []);
534
- return /* @__PURE__ */ import_react7.default.createElement(import_styled_components9.ThemeProvider, { theme: import_design_system8.theme }, /* @__PURE__ */ import_react7.default.createElement(StyledLabel3, null, property.path), /* @__PURE__ */ import_react7.default.createElement(StyledEditorWrapper, null, /* @__PURE__ */ import_react7.default.createElement(StyledEditor, { id: editorId })));
535
- };
536
- var Editor_default = Editor;
537
-
538
- // src/components/Editor/EditorShow.jsx
539
- var import_react8 = __toESM(require("react"), 1);
540
- var import_styled_components10 = require("styled-components");
541
- var import_design_system9 = require("@adminjs/design-system");
542
-
543
- // src/utils/parseHtml.ts
544
- var import_editorjs_html = __toESM(require("editorjs-html"), 1);
545
- var parseHtml = (jsonData) => {
546
- const edjsParser = (0, import_editorjs_html.default)();
547
- try {
548
- const data = edjsParser.parse(JSON.parse(String(jsonData)));
549
- return String(data).replace(/>,</g, "><");
550
- } catch (e) {
551
- return;
552
- }
553
- };
554
-
555
- // src/components/Editor/EditorShow.jsx
556
- var EditorShow = ({ property, record }) => {
557
- const htmlContent = parseHtml(record.params[property.path]);
558
- return /* @__PURE__ */ import_react8.default.createElement(import_styled_components10.ThemeProvider, { theme: import_design_system9.theme }, /* @__PURE__ */ import_react8.default.createElement(StyledEditorShowWrapper, null, /* @__PURE__ */ import_react8.default.createElement(StyledShowLabel2, null, property.path), htmlContent && /* @__PURE__ */ import_react8.default.createElement("div", { dangerouslySetInnerHTML: { __html: htmlContent } })));
559
- };
560
- var EditorShow_default = EditorShow;
561
688
  // Annotate the CommonJS export names for ESM import in node:
562
689
  0 && (module.exports = {
690
+ ColorStatusEdit,
691
+ ColorStatusList,
692
+ ColorStatusShow,
563
693
  CustomSlug,
564
694
  Editor,
695
+ EditorList,
565
696
  EditorShow,
566
697
  StringList,
567
698
  StringListShow