@rulab/adminjs-components 0.0.8 → 0.0.10

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