@rulab/adminjs-components 0.0.8 → 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,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,121 @@ __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.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");
45
160
  var import_design_system2 = require("@adminjs/design-system");
46
161
 
47
162
  // src/utils/slugifyImport.ts
@@ -60,20 +175,20 @@ var slugifyTitle = (title) => {
60
175
  };
61
176
 
62
177
  // src/components/CustomSlug/styles.ts
63
- var import_styled_components = require("@adminjs/design-system/styled-components");
178
+ var import_styled_components2 = require("@adminjs/design-system/styled-components");
64
179
  var import_design_system = require("@adminjs/design-system");
65
- var StyledInputWrapper = (0, import_styled_components.styled)(import_design_system.Box)`
180
+ var StyledInputWrapper = (0, import_styled_components2.styled)(import_design_system.Box)`
66
181
  display: flex;
67
182
  margin-bottom: 40px;
68
183
  `;
69
- var StyledCustomInput = (0, import_styled_components.styled)(import_design_system.Input)`
184
+ var StyledCustomInput = (0, import_styled_components2.styled)(import_design_system.Input)`
70
185
  width: 100%;
71
186
  margin-right: 10px;
72
187
  `;
73
- var StyledGenerateButton = (0, import_styled_components.styled)(import_design_system.Button)`
188
+ var StyledGenerateButton = (0, import_styled_components2.styled)(import_design_system.Button)`
74
189
  white-space: nowrap;
75
190
  `;
76
- var StyledLabel = import_styled_components.styled.div`
191
+ var StyledLabel = import_styled_components2.styled.div`
77
192
  font-size: 12px;
78
193
  margin-bottom: 8px;
79
194
  text-transform: capitalize;
@@ -81,11 +196,11 @@ var StyledLabel = import_styled_components.styled.div`
81
196
 
82
197
  // src/components/CustomSlug/CustomSlug.tsx
83
198
  var CustomSlug = ({ property, record, onChange }) => {
84
- const [inputValue, setInputValue] = (0, import_react.useState)(record.params.slug);
85
- (0, import_react.useEffect)(() => {
199
+ const [inputValue, setInputValue] = (0, import_react4.useState)(record.params.slug);
200
+ (0, import_react4.useEffect)(() => {
86
201
  onChange(property.path, inputValue);
87
202
  }, [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(
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(
89
204
  StyledCustomInput,
90
205
  {
91
206
  id: property.path,
@@ -93,7 +208,7 @@ var CustomSlug = ({ property, record, onChange }) => {
93
208
  value: inputValue,
94
209
  onChange: handleInput
95
210
  }
96
- ), /* @__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")));
97
212
  function handleInput(e) {
98
213
  setInputValue(e.target.value);
99
214
  }
@@ -107,62 +222,257 @@ var CustomSlug = ({ property, record, onChange }) => {
107
222
  };
108
223
  var CustomSlug_default = CustomSlug;
109
224
 
110
- // src/components/StringList/StringList.tsx
111
- var import_design_system5 = require("@adminjs/design-system");
225
+ // src/components/Editor/Editor.jsx
112
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);
113
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");
114
424
 
115
425
  // 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)`
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)`
119
429
  display: flex;
120
430
  flex-direction: column;
121
431
  margin-bottom: 45px;
122
432
  `;
123
- var StyledCustomInput2 = (0, import_styled_components3.styled)(import_design_system3.Input)`
433
+ var StyledCustomInput2 = (0, import_styled_components8.styled)(import_design_system7.Input)`
124
434
  width: 100%;
125
435
  margin-right: 10px;
126
436
  `;
127
- var StyledInputWrapper2 = (0, import_styled_components3.styled)(import_design_system3.Box)`
437
+ var StyledInputWrapper2 = (0, import_styled_components8.styled)(import_design_system7.Box)`
128
438
  display: flex;
129
439
  `;
130
- var StyledListWrapper = (0, import_styled_components3.styled)(import_design_system3.Box)`
440
+ var StyledListWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
131
441
  margin-bottom: 15px;
132
442
  `;
133
- var StyledLabel2 = import_styled_components3.styled.div`
443
+ var StyledLabel3 = import_styled_components8.styled.div`
134
444
  font-size: 12px;
135
445
  margin-bottom: 8px;
136
446
  text-transform: capitalize;
137
447
  `;
138
- var StyledShowLabel = (0, import_styled_components3.styled)(StyledLabel2)`
448
+ var StyledShowLabel2 = (0, import_styled_components8.styled)(StyledLabel3)`
139
449
  line-height: 16px;
140
450
  color: rgb(137, 138, 154);
141
451
  font-weight: 300;
142
452
  `;
143
- var StyledShowWrapper = (0, import_styled_components3.styled)(import_design_system3.Box)`
453
+ var StyledShowWrapper = (0, import_styled_components8.styled)(import_design_system7.Box)`
144
454
  margin-bottom: 35px;
145
455
  `;
146
- var StyledListItem = import_styled_components3.styled.li`
456
+ var StyledListItem = import_styled_components8.styled.li`
147
457
  margin-bottom: 5px;
148
458
  `;
149
459
 
150
460
  // src/components/StringList/SortableList/SortableList.tsx
151
- var import_react4 = __toESM(require("react"), 1);
461
+ var import_react10 = __toESM(require("react"), 1);
152
462
  var import_core = require("@dnd-kit/core");
153
463
  var import_sortable2 = require("@dnd-kit/sortable");
154
464
 
155
465
  // src/components/StringList/SortableList/components/SortableItem/SortableItem.tsx
156
- var import_react3 = __toESM(require("react"), 1);
466
+ var import_react9 = __toESM(require("react"), 1);
157
467
  var import_sortable = require("@dnd-kit/sortable");
158
- var import_design_system4 = require("@adminjs/design-system");
468
+ var import_design_system8 = require("@adminjs/design-system");
159
469
 
160
470
  // src/components/StringList/SortableList/components/SortableItem/DragHandle.tsx
161
- var import_react2 = __toESM(require("react"), 1);
471
+ var import_react8 = __toESM(require("react"), 1);
162
472
 
163
473
  // 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`
474
+ var import_styled_components9 = require("@adminjs/design-system/styled-components");
475
+ var StyledListItem2 = import_styled_components9.styled.li`
166
476
  display: flex;
167
477
  justify-content: space-between;
168
478
  align-items: center;
@@ -174,7 +484,7 @@ var StyledListItem2 = import_styled_components4.styled.li`
174
484
  border-radius: 5px;
175
485
  list-style: none;
176
486
  `;
177
- var StyledDragButton = import_styled_components4.styled.button`
487
+ var StyledDragButton = import_styled_components9.styled.button`
178
488
  padding: 3px;
179
489
  margin-right: 15px;
180
490
  cursor: move;
@@ -184,12 +494,12 @@ var StyledDragButton = import_styled_components4.styled.button`
184
494
 
185
495
  // src/components/StringList/SortableList/components/SortableItem/DragHandle.tsx
186
496
  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" })));
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" })));
189
499
  };
190
500
 
191
501
  // src/components/StringList/SortableList/components/SortableItem/SortableItem.tsx
192
- var SortableItemContext = (0, import_react3.createContext)({
502
+ var SortableItemContext = (0, import_react9.createContext)({
193
503
  attributes: {},
194
504
  listeners: void 0,
195
505
  ref() {
@@ -201,7 +511,7 @@ function SortableItem({
201
511
  onDelete
202
512
  }) {
203
513
  const { attributes, isDragging, listeners, setNodeRef, setActivatorNodeRef } = (0, import_sortable.useSortable)({ id });
204
- const context = (0, import_react3.useMemo)(
514
+ const context = (0, import_react9.useMemo)(
205
515
  () => ({
206
516
  attributes,
207
517
  listeners,
@@ -212,21 +522,21 @@ function SortableItem({
212
522
  const style = {
213
523
  opacity: isDragging ? 0.4 : void 0
214
524
  };
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,
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,
217
527
  {
218
528
  variant: "outlined",
219
529
  color: "danger",
220
530
  size: "icon",
221
531
  onClick: (e) => onDelete(e, id)
222
532
  },
223
- /* @__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" })
224
534
  )));
225
535
  }
226
536
 
227
537
  // 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`
538
+ var import_styled_components10 = require("@adminjs/design-system/styled-components");
539
+ var StyledListWrapper2 = import_styled_components10.styled.ul`
230
540
  display: flex;
231
541
  flex-direction: column;
232
542
  gap: 12px;
@@ -249,8 +559,8 @@ function SortableList({
249
559
  onChange,
250
560
  renderItem
251
561
  }) {
252
- const [active, setActive] = (0, import_react4.useState)(null);
253
- const activeItem = (0, import_react4.useMemo)(
562
+ const [active, setActive] = (0, import_react10.useState)(null);
563
+ const activeItem = (0, import_react10.useMemo)(
254
564
  () => items.find((item) => item.id === active?.id),
255
565
  [active, items]
256
566
  );
@@ -260,7 +570,7 @@ function SortableList({
260
570
  coordinateGetter: import_sortable2.sortableKeyboardCoordinates
261
571
  })
262
572
  );
263
- return /* @__PURE__ */ import_react4.default.createElement(
573
+ return /* @__PURE__ */ import_react10.default.createElement(
264
574
  import_core.DndContext,
265
575
  {
266
576
  sensors,
@@ -279,8 +589,8 @@ function SortableList({
279
589
  setActive(null);
280
590
  }
281
591
  },
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)
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)
284
594
  );
285
595
  }
286
596
  SortableList.Item = SortableItem;
@@ -297,28 +607,28 @@ var StringList = ({
297
607
  }) => {
298
608
  const stringListValue = record.params?.[property.path] ?? property.props.value ?? "";
299
609
  const initialList = stringListValue ? prepareDataForList(stringListValue) : [];
300
- const [inputValue, setInputValue] = (0, import_react5.useState)("");
301
- 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);
302
612
  const serializedData = prepareDataForDatabase(list);
303
- (0, import_react5.useEffect)(() => {
613
+ (0, import_react11.useEffect)(() => {
304
614
  onChange(property.path, serializedData);
305
615
  }, [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(
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(
307
617
  SortableList,
308
618
  {
309
619
  items: list,
310
620
  onChange: setList,
311
- 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)
312
622
  }
313
- )), /* @__PURE__ */ import_react5.default.createElement(StyledInputWrapper2, null, /* @__PURE__ */ import_react5.default.createElement(
314
- import_design_system5.Input,
623
+ )), /* @__PURE__ */ import_react11.default.createElement(StyledInputWrapper2, null, /* @__PURE__ */ import_react11.default.createElement(
624
+ import_design_system9.Input,
315
625
  {
316
626
  id: "stringList",
317
627
  name: property.path,
318
628
  value: serializedData,
319
629
  hidden: true
320
630
  }
321
- ), /* @__PURE__ */ import_react5.default.createElement(
631
+ ), /* @__PURE__ */ import_react11.default.createElement(
322
632
  StyledCustomInput2,
323
633
  {
324
634
  id: "custom",
@@ -327,7 +637,7 @@ var StringList = ({
327
637
  onChange: handleInput,
328
638
  onKeyPress: handleEnterPress
329
639
  }
330
- ), /* @__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"))));
331
641
  function handleInput(e) {
332
642
  setInputValue(e.target.value);
333
643
  }
@@ -364,214 +674,22 @@ var StringList = ({
364
674
  var StringList_default = StringList;
365
675
 
366
676
  // 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");
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");
370
680
  var StringListShow = ({
371
681
  property,
372
682
  record,
373
683
  stringListSeparator = separator
374
684
  }) => {
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}`)))));
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}`)))));
376
686
  };
377
687
  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
688
  // Annotate the CommonJS export names for ESM import in node:
574
689
  0 && (module.exports = {
690
+ ColorStatusEdit,
691
+ ColorStatusList,
692
+ ColorStatusShow,
575
693
  CustomSlug,
576
694
  Editor,
577
695
  EditorList,