@sealcode/jdd-editor 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/.nyc_output/29e7bb87-9f10-462e-84d8-ec620cfa9e6b.json +1 -0
  2. package/.nyc_output/7d7104e8-f179-427b-b4bd-30f78397e4f1.json +1 -0
  3. package/.nyc_output/9bfa248d-4f8e-4d29-9c47-d1a3961c5254.json +1 -0
  4. package/.nyc_output/processinfo/29e7bb87-9f10-462e-84d8-ec620cfa9e6b.json +1 -0
  5. package/.nyc_output/processinfo/7d7104e8-f179-427b-b4bd-30f78397e4f1.json +1 -0
  6. package/.nyc_output/processinfo/9bfa248d-4f8e-4d29-9c47-d1a3961c5254.json +1 -0
  7. package/.nyc_output/processinfo/index.json +1 -0
  8. package/.xunit +2 -0
  9. package/assets/styles/components.jdd-page.css +3 -2
  10. package/coverage/clover.xml +846 -0
  11. package/dist/src/inputs/component-input-image.js +2 -1
  12. package/dist/src/inputs/component-input-image.js.map +2 -2
  13. package/lib/src/component-preview-actions.js +439 -0
  14. package/lib/src/component-preview-actions.js.map +7 -0
  15. package/lib/src/components.sreact.js +93 -0
  16. package/lib/src/components.sreact.js.map +7 -0
  17. package/{dist/src → lib/src/controllers}/autogrow-textarea.stimulus.js.map +1 -1
  18. package/{dist/src → lib/src/controllers}/component-debugger.stimulus.js +3 -0
  19. package/lib/src/controllers/component-debugger.stimulus.js.map +7 -0
  20. package/{dist/src → lib/src/controllers}/exportable-textarea.stimulus.js.map +1 -1
  21. package/{dist/src → lib/src/controllers}/input-image-preview.stimulus.js.map +1 -1
  22. package/{dist/src → lib/src/controllers}/jdd-table-paste.stimulus.js.map +1 -1
  23. package/{dist/src → lib/src/controllers}/json-editor.stimulus.js.map +1 -1
  24. package/{dist/src → lib/src/controllers}/markdown-textarea.stimulus.js.map +1 -1
  25. package/lib/src/controllers/refresh-on-ts-changes.stimulus.js +90 -0
  26. package/lib/src/controllers/refresh-on-ts-changes.stimulus.js.map +7 -0
  27. package/lib/src/controllers/refresh-styles.stimulus.js +67 -0
  28. package/lib/src/controllers/refresh-styles.stimulus.js.map +7 -0
  29. package/{dist/src → lib/src/controllers}/submit-on-input.stimulus.js.map +1 -1
  30. package/{dist/src → lib/src/controllers}/toast.stimulus.js.map +1 -1
  31. package/lib/src/edit-jdd-field.js +94 -0
  32. package/lib/src/edit-jdd-field.js.map +7 -0
  33. package/lib/src/index.js +3 -0
  34. package/lib/src/index.js.map +7 -0
  35. package/lib/src/inputs/component-input-enum.js +30 -0
  36. package/lib/src/inputs/component-input-enum.js.map +7 -0
  37. package/lib/src/inputs/component-input-image.js +63 -0
  38. package/lib/src/inputs/component-input-image.js.map +7 -0
  39. package/lib/src/inputs/component-input-list.js +74 -0
  40. package/lib/src/inputs/component-input-list.js.map +7 -0
  41. package/lib/src/inputs/component-input-single-reference.js +31 -0
  42. package/lib/src/inputs/component-input-single-reference.js.map +7 -0
  43. package/lib/src/inputs/component-input-structured.js +36 -0
  44. package/lib/src/inputs/component-input-structured.js.map +7 -0
  45. package/lib/src/inputs/component-input-table.js +228 -0
  46. package/lib/src/inputs/component-input-table.js.map +7 -0
  47. package/lib/src/inputs/component-input.js +164 -0
  48. package/lib/src/inputs/component-input.js.map +7 -0
  49. package/lib/src/inputs/print-arg-path.js +7 -0
  50. package/lib/src/inputs/print-arg-path.js.map +7 -0
  51. package/lib/src/jdd-creator.js +131 -0
  52. package/lib/src/jdd-creator.js.map +7 -0
  53. package/lib/src/jdd-page.js +339 -0
  54. package/lib/src/jdd-page.js.map +7 -0
  55. package/lib/src/test.test.js +5 -0
  56. package/lib/src/test.test.js.map +7 -0
  57. package/package.json +1 -1
  58. package/src/inputs/component-input-image.ts +2 -1
  59. package/dist/src/component-debugger.stimulus.js.map +0 -7
  60. package/lib/component-preview-actions.js +0 -286
  61. package/lib/component-preview-actions.js.map +0 -1
  62. package/lib/components.sreact.js +0 -102
  63. package/lib/components.sreact.js.map +0 -1
  64. package/lib/controllers/autogrow-textarea.stimulus.js +0 -15
  65. package/lib/controllers/autogrow-textarea.stimulus.js.map +0 -1
  66. package/lib/controllers/component-debugger.stimulus.js +0 -188
  67. package/lib/controllers/component-debugger.stimulus.js.map +0 -1
  68. package/lib/controllers/exportable-textarea.stimulus.js +0 -79
  69. package/lib/controllers/exportable-textarea.stimulus.js.map +0 -1
  70. package/lib/controllers/input-image-preview.stimulus.js +0 -28
  71. package/lib/controllers/input-image-preview.stimulus.js.map +0 -1
  72. package/lib/controllers/jdd-table-paste.stimulus.js +0 -84
  73. package/lib/controllers/jdd-table-paste.stimulus.js.map +0 -1
  74. package/lib/controllers/json-editor.stimulus.js +0 -134
  75. package/lib/controllers/json-editor.stimulus.js.map +0 -1
  76. package/lib/controllers/markdown-textarea.stimulus.js +0 -186
  77. package/lib/controllers/markdown-textarea.stimulus.js.map +0 -1
  78. package/lib/controllers/refresh-on-ts-changes.stimulus.js +0 -123
  79. package/lib/controllers/refresh-on-ts-changes.stimulus.js.map +0 -1
  80. package/lib/controllers/refresh-styles.stimulus.js +0 -66
  81. package/lib/controllers/refresh-styles.stimulus.js.map +0 -1
  82. package/lib/controllers/submit-on-input.stimulus.js +0 -48
  83. package/lib/controllers/submit-on-input.stimulus.js.map +0 -1
  84. package/lib/controllers/toast.stimulus.js +0 -16
  85. package/lib/controllers/toast.stimulus.js.map +0 -1
  86. package/lib/edit-jdd-field.js +0 -102
  87. package/lib/edit-jdd-field.js.map +0 -1
  88. package/lib/index.js +0 -19
  89. package/lib/index.js.map +0 -1
  90. package/lib/inputs/component-input-enum.js +0 -25
  91. package/lib/inputs/component-input-enum.js.map +0 -1
  92. package/lib/inputs/component-input-image.js +0 -47
  93. package/lib/inputs/component-input-image.js.map +0 -1
  94. package/lib/inputs/component-input-list.js +0 -61
  95. package/lib/inputs/component-input-list.js.map +0 -1
  96. package/lib/inputs/component-input-single-reference.js +0 -36
  97. package/lib/inputs/component-input-single-reference.js.map +0 -1
  98. package/lib/inputs/component-input-structured.js +0 -42
  99. package/lib/inputs/component-input-structured.js.map +0 -1
  100. package/lib/inputs/component-input-table.js +0 -184
  101. package/lib/inputs/component-input-table.js.map +0 -1
  102. package/lib/inputs/component-input.js +0 -133
  103. package/lib/inputs/component-input.js.map +0 -1
  104. package/lib/inputs/print-arg-path.js +0 -7
  105. package/lib/inputs/print-arg-path.js.map +0 -1
  106. package/lib/jdd-creator.js +0 -113
  107. package/lib/jdd-creator.js.map +0 -1
  108. package/lib/jdd-page.js +0 -310
  109. package/lib/jdd-page.js.map +0 -1
  110. /package/{dist/src → lib/src/controllers}/autogrow-textarea.stimulus.js +0 -0
  111. /package/{dist/src → lib/src/controllers}/exportable-textarea.stimulus.js +0 -0
  112. /package/{dist/src → lib/src/controllers}/input-image-preview.stimulus.js +0 -0
  113. /package/{dist/src → lib/src/controllers}/jdd-table-paste.stimulus.js +0 -0
  114. /package/{dist/src → lib/src/controllers}/json-editor.stimulus.js +0 -0
  115. /package/{dist/src → lib/src/controllers}/markdown-textarea.stimulus.js +0 -0
  116. /package/{dist/src → lib/src/controllers}/submit-on-input.stimulus.js +0 -0
  117. /package/{dist/src → lib/src/controllers}/toast.stimulus.js +0 -0
package/lib/jdd-page.js DELETED
@@ -1,310 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.actionName = void 0;
13
- const jdd_1 = require("@sealcode/jdd");
14
- const jdd_2 = require("@sealcode/jdd");
15
- const sealgen_1 = require("@sealcode/sealgen");
16
- const ts_predicates_1 = require("@sealcode/ts-predicates");
17
- const tempstream_1 = require("tempstream");
18
- const component_input_js_1 = require("./inputs/component-input.js");
19
- const component_preview_actions_js_1 = require("./component-preview-actions.js");
20
- exports.actionName = "Components";
21
- class JDDPage extends sealgen_1.StatefulPage {
22
- constructor(args) {
23
- super();
24
- this.actions = component_preview_actions_js_1.ComponentPreviewActions;
25
- this.previewSizes = ["320", "600", "800", "1024", "1300", "1920"];
26
- this.classes = [];
27
- this.registry = args.registry;
28
- this.makeJDDContext = args.makeJDDContext;
29
- this.defaultHead = args.defaultHead;
30
- this.html = args.html;
31
- this.makeAssetURL =
32
- args.makeAssetURL ||
33
- ((str) => `/dist/jdd-page/${str.startsWith("/") ? str.slice(1) : str}`);
34
- }
35
- getRegistryComponents() {
36
- return this.registry.getAll();
37
- }
38
- getInitialState(ctx) {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- const all_components = Object.entries(this.getRegistryComponents());
41
- const first_component = all_components[0];
42
- if (!first_component) {
43
- throw new Error("No defined components!");
44
- }
45
- const [component_name, component] = first_component;
46
- const initial_state = {
47
- components: [
48
- {
49
- component_name: component_name,
50
- args: yield component.getExampleValues(this.makeJDDContext(ctx)),
51
- },
52
- ],
53
- };
54
- return initial_state;
55
- });
56
- }
57
- wrapInLayout(ctx, content, state) {
58
- const jdd = new jdd_2.JDD(this.registry, this.makeJDDContext(ctx), (0, jdd_1.documentContainerFromParsed)(state.components));
59
- return this.html({
60
- ctx,
61
- title: "Components",
62
- body: content,
63
- description: "",
64
- css_clumps: ["jdd-page", ...jdd.getAllCSSClumps()],
65
- htmlOptions: {
66
- morphing: true,
67
- preserveScroll: true,
68
- autoRefreshCSS: false,
69
- navbar: () => ``,
70
- bodyClasses: ["jdd-editor"],
71
- showBottomNavbar: false,
72
- showBanner: false,
73
- showFooter: false,
74
- loadHamburgerMenu: false,
75
- loadSearchModal: false,
76
- },
77
- makeHead: (...args) => (0, tempstream_1.tempstream /* HTML */) `${this.defaultHead(...args)}
78
- <link
79
- href="/dist/jdd-page.entrypoint.css"
80
- rel="stylesheet"
81
- type="text/css"
82
- />
83
- ${jdd.renderEarlyAssets()}`,
84
- });
85
- }
86
- preprocessOverrides(_ctx, state, overrides) {
87
- return __awaiter(this, void 0, void 0, function* () {
88
- const jdd_context = this.makeJDDContext(_ctx);
89
- if (!(0, ts_predicates_1.hasFieldOfType)("components", overrides, ts_predicates_1.predicates.array(ts_predicates_1.predicates.shape({
90
- args: ts_predicates_1.predicates.object,
91
- })))) {
92
- return {};
93
- }
94
- for (const [component_index, { component_name }] of Object.entries(state.components)) {
95
- const component = this.registry.get(component_name);
96
- if (!component) {
97
- throw new Error(`Unknown component: ${component_name}`);
98
- }
99
- const overrides_for_component = overrides.components[parseInt(component_index)] || { args: {} };
100
- const promises = Object.entries(component.getArguments()).map((_a) => __awaiter(this, [_a], void 0, function* ([arg_name, arg]) {
101
- const value = overrides_for_component.args[arg_name];
102
- if (value) {
103
- const new_value = yield arg.receivedToParsed(jdd_context, value);
104
- overrides_for_component.args[arg_name] = new_value;
105
- }
106
- }));
107
- // eslint-disable-next-line no-await-in-loop
108
- yield Promise.all(promises);
109
- }
110
- // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
111
- return overrides;
112
- });
113
- }
114
- renderComponentArgs(ctx, state, component, args, index) {
115
- const jdd_context = this.makeJDDContext(ctx);
116
- return (0, tempstream_1.tempstream /* HTML */) `<div
117
- class="component-preview-parameters"
118
- id="${`component-preview-parameters--${index}`}"
119
- >
120
- ${Object.entries(component.getArguments()).map((_a) => __awaiter(this, [_a], void 0, function* ([arg_name, arg]) {
121
- return (0, component_input_js_1.ComponentInput)({
122
- state,
123
- arg_path: [
124
- "components",
125
- index.toString(),
126
- "args",
127
- arg_name,
128
- ],
129
- ctx,
130
- arg,
131
- value: args[arg_name] === undefined
132
- ? arg.getExampleValue(jdd_context)
133
- : args[arg_name],
134
- page: this,
135
- makeJDDContext: this.makeJDDContext,
136
- makeAssetURL: this.makeAssetURL,
137
- });
138
- }))}
139
- </div>`;
140
- }
141
- renderComponentBlock(ctx, state, { component_name, args: component_args, }, component_index) {
142
- const component = this.registry.get(component_name);
143
- if (!component) {
144
- return null;
145
- }
146
- return this.renderComponentArgs(ctx, state, component, component_args, component_index);
147
- }
148
- serializeState(ctx_1, state_1) {
149
- return __awaiter(this, arguments, void 0, function* (ctx, state, pretty = false) {
150
- console.time("serializing state");
151
- const serialized_components = yield Promise.all(state.components.map((_a) => __awaiter(this, [_a], void 0, function* ({ component_name, args }) {
152
- const component = this.registry.get(component_name);
153
- const single_result = {
154
- component_name,
155
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
156
- args: component
157
- ? yield component.convertParsedToStorage(this.makeJDDContext(ctx), args)
158
- : {},
159
- };
160
- return single_result;
161
- })));
162
- const serialized_state = JSON.stringify({ components: serialized_components }, null, pretty ? 4 : "");
163
- console.timeEnd("serializing state");
164
- return serialized_state;
165
- });
166
- }
167
- deserializeState(ctx, state_string) {
168
- return __awaiter(this, void 0, void 0, function* () {
169
- const jdd_context = this.makeJDDContext(ctx);
170
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
171
- const raw = JSON.parse(state_string);
172
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access
173
- const components_storage = raw.components;
174
- if (!Array.isArray(components_storage)) {
175
- throw new Error("'components' key is not an array, got ${components_storage}");
176
- }
177
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
178
- const components_parsed = yield Promise.all(components_storage.map((entry) => __awaiter(this, void 0, void 0, function* () {
179
- if (!(0, ts_predicates_1.hasShape)({
180
- component_name: ts_predicates_1.predicates.string,
181
- args: ts_predicates_1.predicates.object,
182
- }, entry)) {
183
- throw new Error(`Expected components[] items to be objects with 'component_name' and 'args' keys, got ${entry}`);
184
- }
185
- const { component_name, args } = entry;
186
- const component = this.registry.get(component_name);
187
- if (!component) {
188
- throw new Error("Unknown component: ${component_name}");
189
- }
190
- return {
191
- component_name,
192
- args: yield component.convertStorageToParsed(jdd_context, args),
193
- };
194
- })));
195
- const result = { components: components_parsed };
196
- return result;
197
- });
198
- }
199
- renderPreParameterButtons(
200
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
201
- _ctx,
202
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
203
- _state) {
204
- return "";
205
- }
206
- renderMessages(_ctx, state) {
207
- return /* HTML */ `<ul
208
- class="jdd-editor__messages"
209
- data-controller="toast"
210
- >
211
- ${(state.messages || []).map((e) => `<li class="jdd-editor__message">${e}</li>`)}
212
- </ul>`;
213
- }
214
- render(ctx, state) {
215
- return __awaiter(this, void 0, void 0, function* () {
216
- return (0, tempstream_1.tempstream /* HTML */) `<div
217
- class="${["two-column", "component-debugger", ...this.classes].join(" ")}"
218
- id="component-debugger"
219
- style="${`--resizable-column-width: ${state.preview_size ? state.preview_size + "px" : "50vw"}`}"
220
- data-controller="component-debugger"
221
- >
222
- <div class="component-arguments" id="component-arguments">
223
- ${this.renderPreParameterButtons(ctx, state)}
224
- ${this.renderParameterButtons(state)}
225
- ${this.renderMessages(ctx, state)}
226
- ${state.components.map((component, component_index) => this.renderComponentBlock(ctx, state, component, component_index))}
227
- <details
228
- class="component-debugger__json"
229
- data-controller="exportable-textarea"
230
- id="exportable-textarea"
231
- open
232
- >
233
- <summary>Edit/Export raw JSON</summary>
234
- <textarea
235
- name="state_override"
236
- rows="40"
237
- cols="40"
238
- data-controller="json-editor"
239
- id="component-debugger-json-textarea"
240
- autocomplete="off"
241
- >
242
- ${(yield this.serializeState(ctx, state, true)).replaceAll("<", "&lt;")}
243
- </textarea
244
- >
245
- ${this.makeActionButton(state, {
246
- action: "replace_state",
247
- label: "Apply",
248
- })}
249
- <button data-action="exportable-textarea#copy">Copy</button>
250
- <button data-action="exportable-textarea#download">
251
- Download
252
- </button>
253
- <input type="file" />${" "}
254
- <button data-action="exportable-textarea#import">
255
- Import
256
- </button>
257
- </details>
258
- </div>
259
- <div
260
- id="resize-gutter"
261
- class="resize-gutter"
262
- data-component-debugger-target="gutter"
263
- ></div>
264
- <div
265
- id="component-preview"
266
- class="component-preview"
267
- data-component-debugger-target="preview"
268
- >
269
- <div
270
- id="component-preview__header"
271
- class="component-preview__header"
272
- >
273
- <span>Preview</span>
274
- <select
275
- name="$[preview_size]"
276
- autocomplete="off"
277
- class="component-preview-size-select"
278
- data-component-debugger-target="sizeSelect"
279
- data-action="change->component-debugger#handleWidthDropdown"
280
- data-turbo-data-turbo-permanent
281
- >
282
- ${state.preview_size
283
- ? /* HTML */ `<option
284
- class="dynamic"
285
- value="${state.preview_size}"
286
- selected
287
- >
288
- ${state.preview_size} px
289
- </option>`
290
- : ""}
291
- ${this.previewSizes.map((size) => /* HTML */ `<option value="${size}">
292
- ${`${size} px`}
293
- </option>`)}
294
- </select>
295
- <noscript>
296
- ${this.makeActionButton(state, "change_size")}
297
- </noscript>
298
- </div>
299
- <div class="jdd-outer-container">
300
- <div class="jdd-container">
301
- ${jdd_2.JDD.render(this.registry, (0, jdd_1.documentContainerFromParsed)(state.components), this.makeJDDContext(ctx))}
302
- </div>
303
- </div>
304
- </div>
305
- </div>`;
306
- });
307
- }
308
- }
309
- exports.default = JDDPage;
310
- //# sourceMappingURL=jdd-page.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jdd-page.js","sourceRoot":"","sources":["../src/jdd-page.ts"],"names":[],"mappings":"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"}