@sealcode/jdd-editor 0.1.20 → 0.1.22

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 (96) hide show
  1. package/.nyc_output/cfebf13d-f940-426b-a4d3-af28d17bb6b8.json +1 -0
  2. package/.nyc_output/processinfo/2ad4e34c-cebb-4299-9698-08eccbbe71f7.json +1 -0
  3. package/.nyc_output/processinfo/71f2685b-e2c9-4db2-9f31-0dbdcacfcea1.json +1 -0
  4. package/.nyc_output/processinfo/cfebf13d-f940-426b-a4d3-af28d17bb6b8.json +1 -0
  5. package/.nyc_output/processinfo/index.json +1 -1
  6. package/.xunit +1 -1
  7. package/@types/test.test.d.ts +0 -0
  8. package/coverage/clover.xml +279 -259
  9. package/dist/src/components.sreact.js +1 -1
  10. package/dist/src/components.sreact.js.map +2 -2
  11. package/dist/src/controllers/autogrow-textarea.stimulus.js.map +2 -2
  12. package/dist/src/controllers/markdown-textarea.stimulus.js +1 -1
  13. package/dist/src/controllers/markdown-textarea.stimulus.js.map +2 -2
  14. package/dist/src/controllers/refresh-styles.stimulus.js +1 -1
  15. package/dist/src/controllers/refresh-styles.stimulus.js.map +2 -2
  16. package/dist/src/inputs/component-input-single-reference.js +1 -1
  17. package/dist/src/inputs/component-input-single-reference.js.map +2 -2
  18. package/dist/src/inputs/component-input-structured.js +1 -1
  19. package/dist/src/inputs/component-input-structured.js.map +2 -2
  20. package/dist/src/inputs/component-input.js +30 -7
  21. package/dist/src/inputs/component-input.js.map +2 -2
  22. package/dist/src/jdd-page.js +1 -1
  23. package/dist/src/jdd-page.js.map +2 -2
  24. package/{lib → dist}/src/test.test.js +1 -1
  25. package/dist/src/test.test.js.map +7 -0
  26. package/package.json +6 -5
  27. package/src/components.sreact.ts +1 -1
  28. package/src/controllers/autogrow-textarea.stimulus.ts +2 -1
  29. package/src/controllers/markdown-textarea.stimulus.ts +1 -1
  30. package/src/controllers/refresh-styles.stimulus.ts +3 -1
  31. package/src/inputs/component-input-single-reference.ts +1 -1
  32. package/src/inputs/component-input-structured.ts +1 -1
  33. package/src/inputs/component-input.ts +31 -9
  34. package/src/jdd-page.ts +1 -1
  35. package/src/test.test.ts +3 -0
  36. package/test.cjs +53 -0
  37. package/.mocharc.js +0 -6
  38. package/.nyc_output/9bfa248d-4f8e-4d29-9c47-d1a3961c5254.json +0 -1
  39. package/.nyc_output/processinfo/29e7bb87-9f10-462e-84d8-ec620cfa9e6b.json +0 -1
  40. package/.nyc_output/processinfo/7d7104e8-f179-427b-b4bd-30f78397e4f1.json +0 -1
  41. package/.nyc_output/processinfo/9bfa248d-4f8e-4d29-9c47-d1a3961c5254.json +0 -1
  42. package/esbuild.js +0 -23
  43. package/lib/src/component-preview-actions.js +0 -377
  44. package/lib/src/component-preview-actions.js.map +0 -7
  45. package/lib/src/components.sreact.js +0 -93
  46. package/lib/src/components.sreact.js.map +0 -7
  47. package/lib/src/controllers/autogrow-textarea.stimulus.js +0 -13
  48. package/lib/src/controllers/autogrow-textarea.stimulus.js.map +0 -7
  49. package/lib/src/controllers/component-debugger.stimulus.js +0 -193
  50. package/lib/src/controllers/component-debugger.stimulus.js.map +0 -7
  51. package/lib/src/controllers/exportable-textarea.stimulus.js +0 -71
  52. package/lib/src/controllers/exportable-textarea.stimulus.js.map +0 -7
  53. package/lib/src/controllers/input-image-preview.stimulus.js +0 -30
  54. package/lib/src/controllers/input-image-preview.stimulus.js.map +0 -7
  55. package/lib/src/controllers/jdd-table-paste.stimulus.js +0 -78
  56. package/lib/src/controllers/jdd-table-paste.stimulus.js.map +0 -7
  57. package/lib/src/controllers/json-editor.stimulus.js +0 -114
  58. package/lib/src/controllers/json-editor.stimulus.js.map +0 -7
  59. package/lib/src/controllers/markdown-textarea.stimulus.js +0 -174
  60. package/lib/src/controllers/markdown-textarea.stimulus.js.map +0 -7
  61. package/lib/src/controllers/refresh-on-ts-changes.stimulus.js +0 -90
  62. package/lib/src/controllers/refresh-on-ts-changes.stimulus.js.map +0 -7
  63. package/lib/src/controllers/refresh-styles.stimulus.js +0 -67
  64. package/lib/src/controllers/refresh-styles.stimulus.js.map +0 -7
  65. package/lib/src/controllers/submit-on-input.stimulus.js +0 -55
  66. package/lib/src/controllers/submit-on-input.stimulus.js.map +0 -7
  67. package/lib/src/controllers/toast.stimulus.js +0 -19
  68. package/lib/src/controllers/toast.stimulus.js.map +0 -7
  69. package/lib/src/edit-jdd-field.js +0 -94
  70. package/lib/src/edit-jdd-field.js.map +0 -7
  71. package/lib/src/index.js +0 -3
  72. package/lib/src/index.js.map +0 -7
  73. package/lib/src/inputs/component-input-enum.js +0 -30
  74. package/lib/src/inputs/component-input-enum.js.map +0 -7
  75. package/lib/src/inputs/component-input-image.js +0 -63
  76. package/lib/src/inputs/component-input-image.js.map +0 -7
  77. package/lib/src/inputs/component-input-list.js +0 -74
  78. package/lib/src/inputs/component-input-list.js.map +0 -7
  79. package/lib/src/inputs/component-input-single-reference.js +0 -31
  80. package/lib/src/inputs/component-input-single-reference.js.map +0 -7
  81. package/lib/src/inputs/component-input-structured.js +0 -36
  82. package/lib/src/inputs/component-input-structured.js.map +0 -7
  83. package/lib/src/inputs/component-input-table.js +0 -228
  84. package/lib/src/inputs/component-input-table.js.map +0 -7
  85. package/lib/src/inputs/component-input.js +0 -164
  86. package/lib/src/inputs/component-input.js.map +0 -7
  87. package/lib/src/inputs/print-arg-path.js +0 -7
  88. package/lib/src/inputs/print-arg-path.js.map +0 -7
  89. package/lib/src/jdd-creator.js +0 -131
  90. package/lib/src/jdd-creator.js.map +0 -7
  91. package/lib/src/jdd-page.js +0 -339
  92. package/lib/src/jdd-page.js.map +0 -7
  93. package/lib/src/test.test.js.map +0 -7
  94. /package/{.eslintrc.js → .eslintrc.cjs} +0 -0
  95. /package/.nyc_output/{29e7bb87-9f10-462e-84d8-ec620cfa9e6b.json → 2ad4e34c-cebb-4299-9698-08eccbbe71f7.json} +0 -0
  96. /package/.nyc_output/{7d7104e8-f179-427b-b4bd-30f78397e4f1.json → 71f2685b-e2c9-4db2-9f31-0dbdcacfcea1.json} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/inputs/component-input.ts"],
4
- "sourcesContent": ["import { printArgPath } from \"./print-arg-path.js\";\nimport type { Context } from \"koa\";\nimport type {\n\tComponentArgument,\n\tJDDContext,\n\tTableData,\n\tNumber,\n} from \"@sealcode/jdd\";\nimport { SingleReference } from \"@sealcode/jdd\";\nimport {\n\tComponentArguments,\n\tEnum,\n\tImage,\n\tList,\n\tStructured,\n\tTable,\n} from \"@sealcode/jdd\";\nimport { ComponentInputStructured } from \"./component-input-structured.js\";\nimport type { StatefulPage } from \"@sealcode/sealgen\";\nimport type { ComponentPreviewActions } from \"../component-preview-actions.js\";\nimport { ComponentInputList } from \"./component-input-list.js\";\nimport type { JDDPageState } from \"../jdd-page.js\";\nimport { ComponentInputEnum } from \"./component-input-enum.js\";\nimport { ComponentInputImage } from \"./component-input-image.js\";\nimport { ComponentInputTable } from \"./component-input-table.js\";\nimport type { FilePointer } from \"@sealcode/file-manager\";\nimport { ComponentInputSingleReference } from \"./component-input-single-reference.js\";\nimport { is, predicates } from \"@sealcode/ts-predicates\";\nimport { tempstream } from \"tempstream\";\n\nexport const actionName = \"Components\";\nconst absoluteUrlPattern = \"http(s?)(://)((www.)?)(([^.]+).)?([a-zA-z0-9-_]+)\";\n\nexport async function ComponentInput<State extends JDDPageState, T>({\n\tctx,\n\tstate,\n\targ_path,\n\targ,\n\tvalue,\n\tpage,\n\tmakeJDDContext,\n\tmakeAssetURL,\n}: {\n\tstate: State;\n\tctx: Context;\n\targ_path: string[];\n\targ: ComponentArgument<T>;\n\tvalue: T;\n\tpage: StatefulPage<JDDPageState, typeof ComponentPreviewActions>;\n\tmakeJDDContext: (ctx: Context) => JDDContext;\n\tmakeAssetURL: (asset: string) => string;\n}): Promise<string> {\n\tif (value === undefined) {\n\t\tvalue = await arg.getEmptyValue(makeJDDContext(ctx));\n\t}\n\tif (arg instanceof List) {\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\treturn ComponentInputList({\n\t\t\tctx,\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as T[],\n\t\t\tpage,\n\t\t\tmakeJDDContext,\n\t\t\tmakeAssetURL,\n\t\t});\n\t}\n\n\tconst argType = arg.getTypeName();\n\tconst isUrlAbsolute =\n\t\targ instanceof ComponentArguments.URL && arg.urlType === \"absolute\";\n\tconst inputType = isUrlAbsolute ? \"url\" : \"text\";\n\n\tif (arg instanceof Structured) {\n\t\treturn ComponentInputStructured({\n\t\t\tctx,\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as Record<string, unknown>,\n\t\t\tpage,\n\t\t\tmakeJDDContext,\n\t\t\tmakeAssetURL,\n\t\t});\n\t}\n\n\tif (arg instanceof SingleReference) {\n\t\treturn ComponentInputSingleReference({\n\t\t\tctx,\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as string,\n\t\t\tonchange: page.rerender(),\n\t\t\tmakeJDDContext,\n\t\t});\n\t}\n\n\tif (arg instanceof Enum) {\n\t\treturn ComponentInputEnum({\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as string,\n\t\t\tonchange: page.rerender(),\n\t\t});\n\t}\n\n\tif (arg instanceof Image) {\n\t\treturn ComponentInputImage({\n\t\t\tctx,\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as FilePointer,\n\t\t\tpage,\n\t\t\tmakeJDDContext,\n\t\t});\n\t}\n\n\tif (arg instanceof Table) {\n\t\treturn ComponentInputTable({\n\t\t\tctx,\n\t\t\tstate,\n\t\t\targ_path,\n\t\t\targ,\n\t\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t\tvalue: value as TableData<unknown, unknown>,\n\t\t\tpage,\n\t\t\tmakeJDDContext,\n\t\t\tmakeAssetURL,\n\t\t});\n\t}\n\n\tconst inputElement = () => {\n\t\tswitch (argType) {\n\t\t\tcase \"url\":\n\t\t\t\treturn tempstream/* HTML */ `\n\t\t\t\t\t<input\n\t\t\t\t\t\ttype=\"url\"\n\t\t\t\t\t\tname=\"{$.component_args${printArgPath(arg_path)}}\"\n\t\t\t\t\t\tvalue=\"{value\"\n\t\t\t\t\t\tas\n\t\t\t\t\t\tstring}\n\t\t\t\t\t\tsize=\"40\"\n\t\t\t\t\t\tpattern=\"{isUrlAbsolute\"\n\t\t\t\t\t\t?\n\t\t\t\t\t\tabsoluteUrlPattern\n\t\t\t\t\t\t:\n\t\t\t\t\t\tundefined}\n\t\t\t\t\t/>\n\t\t\t\t`;\n\t\t\tcase \"number\":\n\t\t\t\treturn tempstream/* HTML */ `\n\t\t\t\t\t<input type=\"number\"\n\t\t\t\t\tname={$.component_args${printArgPath(arg_path)}}\n\t\t\t\t\tvalue={(value || \"\").toString()} min={ arg instanceof Number\n\t\t\t\t\t? arg.min.toString() : undefined } max={ arg instanceof\n\t\t\t\t\tNumber ? arg.max.toString() : undefined } step={ arg\n\t\t\t\t\tinstanceof Number ? arg.step.toString() : undefined } />\n\t\t\t\t`;\n\t\t\tdefault:\n\t\t\t\treturn tempstream/* HTML */ `\n\t\t\t\t\t<input type=\"${inputType}\"\n\t\t\t\t\tname=\"${`$${printArgPath(arg_path)}`}\"\n\t\t\t\t\tvalue=\"${is(value, predicates.string) ? value : \"\"}\"\n\t\t\t\t\tsize=\"40\"\n\t\t\t\t\t${isUrlAbsolute ? `pattern=\"${absoluteUrlPattern}\"` : \"\"}\"\n\t\t\t\t\t/>\n\t\t\t\t`;\n\t\t}\n\t};\n\n\treturn /* HTML */ `<div>\n\t\t<label>\n\t\t\t${arg_path.at(-1) || \"\"}\n\t\t\t${argType == \"markdown\"\n\t\t\t\t? /* HTML */ `<div class=\"grow-wrap\">\n\t\t\t\t\t\t<textarea\n\t\t\t\t\t\t\tname=\"${`$${printArgPath(arg_path)}`}\"\n\t\t\t\t\t\t\tonblur=\"${page.rerender()}\"\n\t\t\t\t\t\t\tcols=\"40\"\n\t\t\t\t\t\t\tdata-controller=\"markdown-textarea submit-on-input\"\n\t\t\t\t\t\t\tdata-action=\"autogrow-textarea#autogrow blur->autogrow-textarea#autogrow resize->autogrow-textarea#autogrow submit-on-input#sendValues focus->submit-on-input#makePermanent blur->submit-on-input#makeNotPermanent\"\n\t\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\t>\n${is(value, predicates.string) ? value : \"\"}</textarea\n\t\t\t\t\t\t>\n\t\t\t\t </div>`\n\t\t\t\t: inputElement()}\n\t\t</label>\n\t</div>`;\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- function printArgPath(path) {
2
- return path.map((e) => `[${e}]`).join("");
3
- }
4
- export {
5
- printArgPath
6
- };
7
- //# sourceMappingURL=print-arg-path.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/inputs/print-arg-path.ts"],
4
- "sourcesContent": ["export function printArgPath(path: string[]): string {\n\treturn path.map((e) => `[${e}]`).join(\"\");\n}\n"],
5
- "mappings": "AAAO,SAAS,aAAa,MAAwB;AACpD,SAAO,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,EAAE;AACzC;",
6
- "names": []
7
- }
@@ -1,131 +0,0 @@
1
- import { ComponentPreviewActions } from "./component-preview-actions.js";
2
- import JDDPage from "./jdd-page.js";
3
- import { htmlEscape } from "escape-goat";
4
- import { tempstream } from "tempstream";
5
- class JDDCreator extends JDDPage {
6
- constructor() {
7
- super(...arguments);
8
- this.actions = ComponentPreviewActions;
9
- }
10
- getAllowedComponents() {
11
- return [];
12
- }
13
- getRegistryComponents() {
14
- const all_components = super.getRegistryComponents();
15
- const allowed_components = this.getAllowedComponents();
16
- if (allowed_components.length > 0) {
17
- return Object.fromEntries(
18
- Object.entries(all_components).filter(
19
- ([name]) => allowed_components.includes(name)
20
- )
21
- );
22
- }
23
- return all_components;
24
- }
25
- renderParameterButtons(state) {
26
- {
27
- }
28
- return `<div class="jdd-editor__toolbar">
29
- <input type="submit" value="Preview" />
30
- <select name="component">
31
- ${Object.keys(this.getRegistryComponents()).map((cmp) => `<option value="${cmp}">${cmp}</option>`).join("")}
32
- </select>
33
- ${this.makeActionButton(state, {
34
- action: "add_component",
35
- label: "Add component"
36
- })}
37
- </div>`;
38
- }
39
- renderComponentBlock(ctx, state, component_data, component_index) {
40
- const component = this.getRegistryComponents()[component_data.component_name];
41
- const checkbox_id = `component_${component_index}_open`;
42
- return tempstream`<div
43
- class="jdd-editor__component-block jdd-editor__component-block--number-${component_index}"
44
- id="${`jdd-editor__component-block--${component_data.component_name}-${component_index}`}"
45
- data-component-debugger-target="componentBlock"
46
- data-component-index="${component_index.toString()}"
47
- >
48
- <summary class="jdd-editor__component-block__top_bar">
49
- ${this.makeActionButton(
50
- state,
51
- { action: "remove_component", label: "\u274C" },
52
- component_index
53
- )}
54
- ${this.makeActionButton(
55
- state,
56
- {
57
- action: "move_component_up",
58
- label: "Move this row up",
59
- content: `<img
60
- width="20"
61
- height="20"
62
- src="${this.makeAssetURL(
63
- "icons/table-move-row-up.svg"
64
- )}"
65
- />`
66
- },
67
- component_index
68
- )}
69
- ${this.makeActionButton(
70
- state,
71
- {
72
- action: "move_component_down",
73
- label: "Move this row down",
74
- content: `<img
75
- width="20"
76
- height="20"
77
- src="${this.makeAssetURL(
78
- "icons/table-move-row-down.svg"
79
- )}"
80
- />`
81
- },
82
- component_index
83
- )}
84
- <span class="jdd-editor__component-block__title">
85
- <div class="jdd-editor__component-block__title__main">
86
- ${htmlEscape(
87
- (component == null ? void 0 : component.getTitle(
88
- this.makeJDDContext(ctx),
89
- component_data.args
90
- )) || ""
91
- )}
92
- </div>
93
- <div class="jdd-editor__component-block__title__secondary">
94
- ${component_data.component_name}
95
- </div>
96
- </span>
97
- <label
98
- class="component-block__handle"
99
- for="${checkbox_id}"
100
- style="flex-grow: 1"
101
- data-action="click->component-debugger#labelClicked"
102
- >
103
- <span class="jdd-editor__component-block__chevron">
104
- ${" "} &gt;${" "}
105
- </span>
106
- </label>
107
- </summary>
108
- <input
109
- type="checkbox"
110
- class="component-collapse-toggle"
111
- name="${`$[components][${component_index}][open]`}"
112
- data-turbo-permanent
113
- id="${checkbox_id}"
114
- style="display:none"
115
- data-component-debugger-target="checkbox"
116
- />
117
- <div class="jdd-editor__component-block__inner">
118
- ${super.renderComponentBlock(
119
- ctx,
120
- state,
121
- component_data,
122
- component_index
123
- )}
124
- </div>
125
- </div>`;
126
- }
127
- }
128
- export {
129
- JDDCreator as default
130
- };
131
- //# sourceMappingURL=jdd-creator.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/jdd-creator.ts"],
4
- "sourcesContent": ["import type { Context } from \"koa\";\nimport { ComponentPreviewActions } from \"./component-preview-actions.js\";\nimport type { JDDPageState } from \"./jdd-page.js\";\nimport JDDPage from \"./jdd-page.js\";\nimport { htmlEscape } from \"escape-goat\";\nimport { tempstream } from \"tempstream\";\n\nexport default abstract class JDDCreator extends JDDPage {\n\tactions = ComponentPreviewActions;\n\n\t/**\n\t * This method returns list of components allowed in JDD Editor instance.\n\t * If list is empty it will allow all of the components in registry,\n\t * if you overide this function you can decide on what components should\n\t * available.\n\t */\n\tgetAllowedComponents(): string[] {\n\t\treturn [];\n\t}\n\n\tgetRegistryComponents() {\n\t\tconst all_components = super.getRegistryComponents();\n\t\tconst allowed_components = this.getAllowedComponents();\n\n\t\tif (allowed_components.length > 0) {\n\t\t\treturn Object.fromEntries(\n\t\t\t\tObject.entries(all_components).filter(([name]) =>\n\t\t\t\t\tallowed_components.includes(name)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\n\t\treturn all_components;\n\t}\n\n\trenderParameterButtons(state: JDDPageState) {\n\t\t{\n\t\t\t/*The below button has to be here in order for it to be the default behavior */\n\t\t}\n\t\treturn `<div class=\"jdd-editor__toolbar\">\n\t\t\t\t<input type=\"submit\" value=\"Preview\" />\n\t\t\t\t<select name=\"component\">\n\t\t\t\t\t${Object.keys(this.getRegistryComponents())\n\t\t\t\t\t\t.map((cmp) => `<option value=\"${cmp}\">${cmp}</option>`)\n\t\t\t\t\t\t.join(\"\")}\n\t\t\t\t</select>\n\t\t\t\t${this.makeActionButton(state, {\n\t\t\t\t\taction: \"add_component\",\n\t\t\t\t\tlabel: \"Add component\",\n\t\t\t\t})}\n\t\t\t</div>`;\n\t}\n\n\trenderComponentBlock(\n\t\tctx: Context,\n\t\tstate: JDDPageState,\n\t\tcomponent_data: {\n\t\t\tcomponent_name: string;\n\t\t\targs: Record<string, unknown>;\n\t\t},\n\t\tcomponent_index: number\n\t) {\n\t\tconst component =\n\t\t\tthis.getRegistryComponents()[component_data.component_name];\n\t\tconst checkbox_id = `component_${component_index}_open`;\n\t\treturn tempstream/* HTML */ `<div\n\t\t\tclass=\"jdd-editor__component-block jdd-editor__component-block--number-${component_index}\"\n\t\t\tid=\"${`jdd-editor__component-block--${component_data.component_name}-${component_index}`}\"\n\t\t\tdata-component-debugger-target=\"componentBlock\"\n\t\t\tdata-component-index=\"${component_index.toString()}\"\n\t\t>\n\t\t\t<summary class=\"jdd-editor__component-block__top_bar\">\n\t\t\t\t${this.makeActionButton(\n\t\t\t\t\tstate,\n\t\t\t\t\t{ action: \"remove_component\", label: \"\u274C\" },\n\t\t\t\t\tcomponent_index\n\t\t\t\t)}\n\t\t\t\t${this.makeActionButton(\n\t\t\t\t\tstate,\n\t\t\t\t\t{\n\t\t\t\t\t\taction: \"move_component_up\",\n\t\t\t\t\t\tlabel: \"Move this row up\",\n\t\t\t\t\t\tcontent: /* HTML */ `<img\n\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\tsrc=\"${this.makeAssetURL(\n\t\t\t\t\t\t\t\t\"icons/table-move-row-up.svg\"\n\t\t\t\t\t\t\t)}\"\n\t\t\t\t\t\t/>`,\n\t\t\t\t\t},\n\t\t\t\t\tcomponent_index\n\t\t\t\t)}\n\t\t\t\t${this.makeActionButton(\n\t\t\t\t\tstate,\n\t\t\t\t\t{\n\t\t\t\t\t\taction: \"move_component_down\",\n\t\t\t\t\t\tlabel: \"Move this row down\",\n\t\t\t\t\t\tcontent: /* HTML */ `<img\n\t\t\t\t\t\t\twidth=\"20\"\n\t\t\t\t\t\t\theight=\"20\"\n\t\t\t\t\t\t\tsrc=\"${this.makeAssetURL(\n\t\t\t\t\t\t\t\t\"icons/table-move-row-down.svg\"\n\t\t\t\t\t\t\t)}\"\n\t\t\t\t\t\t/>`,\n\t\t\t\t\t},\n\t\t\t\t\tcomponent_index\n\t\t\t\t)}\n\t\t\t\t<span class=\"jdd-editor__component-block__title\">\n\t\t\t\t\t<div class=\"jdd-editor__component-block__title__main\">\n\t\t\t\t\t\t${htmlEscape(\n\t\t\t\t\t\t\tcomponent?.getTitle(\n\t\t\t\t\t\t\t\tthis.makeJDDContext(ctx),\n\t\t\t\t\t\t\t\tcomponent_data.args\n\t\t\t\t\t\t\t) || \"\"\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"jdd-editor__component-block__title__secondary\">\n\t\t\t\t\t\t${component_data.component_name}\n\t\t\t\t\t</div>\n\t\t\t\t</span>\n\t\t\t\t<label\n\t\t\t\t\tclass=\"component-block__handle\"\n\t\t\t\t\tfor=\"${checkbox_id}\"\n\t\t\t\t\tstyle=\"flex-grow: 1\"\n\t\t\t\t\tdata-action=\"click->component-debugger#labelClicked\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"jdd-editor__component-block__chevron\">\n\t\t\t\t\t\t${\" \"} &gt;${\" \"}\n\t\t\t\t\t</span>\n\t\t\t\t</label>\n\t\t\t</summary>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tclass=\"component-collapse-toggle\"\n\t\t\t\tname=\"${`$[components][${component_index}][open]`}\"\n\t\t\t\tdata-turbo-permanent\n\t\t\t\tid=\"${checkbox_id}\"\n\t\t\t\tstyle=\"display:none\"\n\t\t\t\tdata-component-debugger-target=\"checkbox\"\n\t\t\t/>\n\t\t\t<div class=\"jdd-editor__component-block__inner\">\n\t\t\t\t${super.renderComponentBlock(\n\t\t\t\t\tctx,\n\t\t\t\t\tstate,\n\t\t\t\t\tcomponent_data,\n\t\t\t\t\tcomponent_index\n\t\t\t\t)}\n\t\t\t</div>\n\t\t</div>`;\n\t}\n}\n"],
5
- "mappings": "AACA,SAAS,+BAA+B;AAExC,OAAO,aAAa;AACpB,SAAS,kBAAkB;AAC3B,SAAS,kBAAkB;AAE3B,MAAO,mBAA0C,QAAQ;AAAA,EAAzD;AAAA;AACC,mBAAU;AAAA;AAAA,EAQV,uBAAiC;AAChC,WAAO,CAAC;AAAA,EACT;AAAA,EAEA,wBAAwB;AACvB,UAAM,iBAAiB,MAAM,sBAAsB;AACnD,UAAM,qBAAqB,KAAK,qBAAqB;AAErD,QAAI,mBAAmB,SAAS,GAAG;AAClC,aAAO,OAAO;AAAA,QACb,OAAO,QAAQ,cAAc,EAAE;AAAA,UAAO,CAAC,CAAC,IAAI,MAC3C,mBAAmB,SAAS,IAAI;AAAA,QACjC;AAAA,MACD;AAAA,IACD;AAEA,WAAO;AAAA,EACR;AAAA,EAEA,uBAAuB,OAAqB;AAC3C;AAAA,IAEA;AACA,WAAO;AAAA;AAAA;AAAA,OAGF,OAAO,KAAK,KAAK,sBAAsB,CAAC,EACxC,IAAI,CAAC,QAAQ,kBAAkB,QAAQ,cAAc,EACrD,KAAK,EAAE;AAAA;AAAA,MAER,KAAK,iBAAiB,OAAO;AAAA,MAC9B,QAAQ;AAAA,MACR,OAAO;AAAA,IACR,CAAC;AAAA;AAAA,EAEJ;AAAA,EAEA,qBACC,KACA,OACA,gBAIA,iBACC;AACD,UAAM,YACL,KAAK,sBAAsB,EAAE,eAAe;AAC7C,UAAM,cAAc,aAAa;AACjC,WAAO;AAAA,4EACmE;AAAA,SACnE,gCAAgC,eAAe,kBAAkB;AAAA;AAAA,2BAE/C,gBAAgB,SAAS;AAAA;AAAA;AAAA,MAG9C,KAAK;AAAA,MACN;AAAA,MACA,EAAE,QAAQ,oBAAoB,OAAO,SAAI;AAAA,MACzC;AAAA,IACD;AAAA,MACE,KAAK;AAAA,MACN;AAAA,MACA;AAAA,QACC,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAoB;AAAA;AAAA;AAAA,cAGZ,KAAK;AAAA,UACX;AAAA,QACD;AAAA;AAAA,MAEF;AAAA,MACA;AAAA,IACD;AAAA,MACE,KAAK;AAAA,MACN;AAAA,MACA;AAAA,QACC,QAAQ;AAAA,QACR,OAAO;AAAA,QACP,SAAoB;AAAA;AAAA;AAAA,cAGZ,KAAK;AAAA,UACX;AAAA,QACD;AAAA;AAAA,MAEF;AAAA,MACA;AAAA,IACD;AAAA;AAAA;AAAA,QAGI;AAAA,OACD,uCAAW;AAAA,QACV,KAAK,eAAe,GAAG;AAAA,QACvB,eAAe;AAAA,YACX;AAAA,IACN;AAAA;AAAA;AAAA,QAGE,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,YAKX;AAAA;AAAA;AAAA;AAAA;AAAA,QAKJ,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAOP,iBAAiB;AAAA;AAAA,UAEnB;AAAA;AAAA;AAAA;AAAA;AAAA,MAKJ,MAAM;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA;AAAA;AAAA,EAGH;AACD;",
6
- "names": []
7
- }
@@ -1,339 +0,0 @@
1
- import { documentContainerFromParsed } from "@sealcode/jdd";
2
- import { JDD } from "@sealcode/jdd";
3
- import { StatefulPage } from "@sealcode/sealgen";
4
- import { hasFieldOfType, hasShape, predicates } from "@sealcode/ts-predicates";
5
- import { tempstream } from "tempstream";
6
- import { ComponentInput } from "./inputs/component-input.js";
7
- import { ComponentPreviewActions } from "./component-preview-actions.js";
8
- const actionName = "Components";
9
- class JDDPage extends StatefulPage {
10
- constructor(args) {
11
- super();
12
- this.actions = ComponentPreviewActions;
13
- this.previewSizes = ["320", "600", "800", "1024", "1300", "1920"];
14
- this.classes = [];
15
- this.registry = args.registry;
16
- this.makeJDDContext = args.makeJDDContext;
17
- this.defaultHead = args.defaultHead;
18
- this.html = args.html;
19
- this.makeAssetURL = args.makeAssetURL || ((str) => `/dist/jdd-page/${str.startsWith("/") ? str.slice(1) : str}`);
20
- }
21
- getRegistryComponents() {
22
- return this.registry.getAll();
23
- }
24
- async getInitialState(ctx) {
25
- const all_components = Object.entries(this.getRegistryComponents());
26
- const first_component = all_components[0];
27
- if (!first_component) {
28
- throw new Error("No defined components!");
29
- }
30
- const [component_name, component] = first_component;
31
- const initial_state = {
32
- components: [
33
- {
34
- component_name,
35
- args: await component.getExampleValues(
36
- this.makeJDDContext(ctx)
37
- )
38
- }
39
- ]
40
- };
41
- return initial_state;
42
- }
43
- wrapInLayout(ctx, content, state) {
44
- const jdd = new JDD(
45
- this.registry,
46
- this.makeJDDContext(ctx),
47
- documentContainerFromParsed(state.components)
48
- );
49
- return this.html({
50
- ctx,
51
- title: "Components",
52
- body: content,
53
- description: "",
54
- css_clumps: ["jdd-page", ...jdd.getAllCSSClumps()],
55
- htmlOptions: {
56
- morphing: true,
57
- preserveScroll: true,
58
- autoRefreshCSS: false,
59
- navbar: () => ``,
60
- bodyClasses: ["jdd-editor"],
61
- showBottomNavbar: false,
62
- showBanner: false,
63
- showFooter: false,
64
- loadHamburgerMenu: false,
65
- loadSearchModal: false
66
- },
67
- makeHead: (...args) => tempstream`${this.defaultHead(...args)}
68
- <link
69
- href="/dist/jdd-page.entrypoint.css"
70
- rel="stylesheet"
71
- type="text/css"
72
- />
73
- ${jdd.renderEarlyAssets()}`
74
- });
75
- }
76
- async preprocessOverrides(_ctx, state, overrides) {
77
- const jdd_context = this.makeJDDContext(_ctx);
78
- if (!hasFieldOfType(
79
- "components",
80
- overrides,
81
- predicates.array(
82
- predicates.shape({
83
- args: predicates.object
84
- })
85
- )
86
- )) {
87
- return {};
88
- }
89
- for (const [component_index, { component_name }] of Object.entries(
90
- state.components
91
- )) {
92
- const component = this.registry.get(component_name);
93
- if (!component) {
94
- throw new Error(`Unknown component: ${component_name}`);
95
- }
96
- const overrides_for_component = overrides.components[parseInt(component_index)] || { args: {} };
97
- const promises = Object.entries(component.getArguments()).map(
98
- async ([arg_name, arg]) => {
99
- const value = overrides_for_component.args[arg_name];
100
- if (value) {
101
- const new_value = await arg.receivedToParsed(
102
- jdd_context,
103
- value
104
- );
105
- overrides_for_component.args[arg_name] = new_value;
106
- }
107
- }
108
- );
109
- await Promise.all(promises);
110
- }
111
- return overrides;
112
- }
113
- renderComponentArgs(ctx, state, component, args, index) {
114
- const jdd_context = this.makeJDDContext(ctx);
115
- return tempstream`<div
116
- class="component-preview-parameters"
117
- id="${`component-preview-parameters--${index}`}"
118
- >
119
- ${Object.entries(component.getArguments()).map(
120
- async ([arg_name, arg]) => ComponentInput({
121
- state,
122
- arg_path: [
123
- "components",
124
- index.toString(),
125
- "args",
126
- arg_name
127
- ],
128
- ctx,
129
- arg,
130
- value: args[arg_name] === void 0 ? arg.getExampleValue(jdd_context) : args[arg_name],
131
- page: this,
132
- makeJDDContext: this.makeJDDContext,
133
- makeAssetURL: this.makeAssetURL
134
- })
135
- )}
136
- </div>`;
137
- }
138
- renderComponentBlock(ctx, state, {
139
- component_name,
140
- args: component_args
141
- }, component_index) {
142
- const component = this.registry.get(component_name);
143
- if (!component) {
144
- return null;
145
- }
146
- return this.renderComponentArgs(
147
- ctx,
148
- state,
149
- component,
150
- component_args,
151
- component_index
152
- );
153
- }
154
- async serializeState(ctx, state, pretty = false) {
155
- console.time("serializing state");
156
- const serialized_components = await Promise.all(
157
- state.components.map(async ({ component_name, args }) => {
158
- const component = this.registry.get(component_name);
159
- const single_result = {
160
- component_name,
161
- args: component ? await component.convertParsedToStorage(
162
- this.makeJDDContext(ctx),
163
- args
164
- ) : {}
165
- };
166
- return single_result;
167
- })
168
- );
169
- const serialized_state = JSON.stringify(
170
- { components: serialized_components },
171
- null,
172
- pretty ? 4 : ""
173
- );
174
- console.timeEnd("serializing state");
175
- return serialized_state;
176
- }
177
- async deserializeState(ctx, state_string) {
178
- const jdd_context = this.makeJDDContext(ctx);
179
- const raw = JSON.parse(state_string);
180
- const components_storage = raw.components;
181
- if (!Array.isArray(components_storage)) {
182
- throw new Error(
183
- "'components' key is not an array, got ${components_storage}"
184
- );
185
- }
186
- const components_parsed = await Promise.all(
187
- components_storage.map(async (entry) => {
188
- if (!hasShape(
189
- {
190
- component_name: predicates.string,
191
- args: predicates.object
192
- },
193
- entry
194
- )) {
195
- throw new Error(
196
- `Expected components[] items to be objects with 'component_name' and 'args' keys, got ${entry}`
197
- );
198
- }
199
- const { component_name, args } = entry;
200
- const component = this.registry.get(component_name);
201
- if (!component) {
202
- throw new Error("Unknown component: ${component_name}");
203
- }
204
- return {
205
- component_name,
206
- args: await component.convertStorageToParsed(
207
- jdd_context,
208
- args
209
- )
210
- };
211
- })
212
- );
213
- const result = { components: components_parsed };
214
- return result;
215
- }
216
- renderPreParameterButtons(_ctx, _state) {
217
- return "";
218
- }
219
- renderMessages(_ctx, state) {
220
- return `<ul
221
- class="jdd-editor__messages"
222
- data-controller="toast"
223
- >
224
- ${(state.messages || []).map(
225
- (e) => `<li class="jdd-editor__message">${e}</li>`
226
- )}
227
- </ul>`;
228
- }
229
- async render(ctx, state) {
230
- return tempstream`<div
231
- class="${["two-column", "component-debugger", ...this.classes].join(
232
- " "
233
- )}"
234
- id="component-debugger"
235
- style="${`--resizable-column-width: ${state.preview_size ? state.preview_size + "px" : "50vw"}`}"
236
- data-controller="component-debugger"
237
- >
238
- <div class="component-arguments" id="component-arguments">
239
- ${this.renderPreParameterButtons(ctx, state)}
240
- ${this.renderParameterButtons(state)}
241
- ${this.renderMessages(ctx, state)}
242
- ${state.components.map(
243
- (component, component_index) => this.renderComponentBlock(
244
- ctx,
245
- state,
246
- component,
247
- component_index
248
- )
249
- )}
250
- <details
251
- class="component-debugger__json"
252
- data-controller="exportable-textarea"
253
- id="exportable-textarea"
254
- open
255
- >
256
- <summary>Edit/Export raw JSON</summary>
257
- <textarea
258
- name="state_override"
259
- rows="40"
260
- cols="40"
261
- data-controller="json-editor"
262
- id="component-debugger-json-textarea"
263
- autocomplete="off"
264
- >
265
- ${(await this.serializeState(ctx, state, true)).replaceAll("<", "&lt;")}
266
- </textarea
267
- >
268
- ${this.makeActionButton(state, {
269
- action: "replace_state",
270
- label: "Apply"
271
- })}
272
- <button data-action="exportable-textarea#copy">Copy</button>
273
- <button data-action="exportable-textarea#download">
274
- Download
275
- </button>
276
- <input type="file" />${" "}
277
- <button data-action="exportable-textarea#import">
278
- Import
279
- </button>
280
- </details>
281
- </div>
282
- <div
283
- id="resize-gutter"
284
- class="resize-gutter"
285
- data-component-debugger-target="gutter"
286
- ></div>
287
- <div
288
- id="component-preview"
289
- class="component-preview"
290
- data-component-debugger-target="preview"
291
- >
292
- <div
293
- id="component-preview__header"
294
- class="component-preview__header"
295
- >
296
- <span>Preview</span>
297
- <select
298
- name="$[preview_size]"
299
- autocomplete="off"
300
- class="component-preview-size-select"
301
- data-component-debugger-target="sizeSelect"
302
- data-action="change->component-debugger#handleWidthDropdown"
303
- data-turbo-data-turbo-permanent
304
- >
305
- ${state.preview_size ? `<option
306
- class="dynamic"
307
- value="${state.preview_size}"
308
- selected
309
- >
310
- ${state.preview_size} px
311
- </option>` : ""}
312
- ${this.previewSizes.map(
313
- (size) => `<option value="${size}">
314
- ${`${size} px`}
315
- </option>`
316
- )}
317
- </select>
318
- <noscript>
319
- ${this.makeActionButton(state, "change_size")}
320
- </noscript>
321
- </div>
322
- <div class="jdd-outer-container">
323
- <div class="jdd-container">
324
- ${JDD.render(
325
- this.registry,
326
- documentContainerFromParsed(state.components),
327
- this.makeJDDContext(ctx)
328
- )}
329
- </div>
330
- </div>
331
- </div>
332
- </div>`;
333
- }
334
- }
335
- export {
336
- actionName,
337
- JDDPage as default
338
- };
339
- //# sourceMappingURL=jdd-page.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/jdd-page.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/restrict-template-expressions */\nimport type { Readable } from \"node:stream\";\nimport type { Component, JDDContext, RawJDDocument } from \"@sealcode/jdd\";\nimport { documentContainerFromParsed, Registry } from \"@sealcode/jdd\";\nimport { JDD } from \"@sealcode/jdd\";\nimport { StatefulPage } from \"@sealcode/sealgen\";\nimport { hasFieldOfType, hasShape, predicates } from \"@sealcode/ts-predicates\";\nimport type { Context } from \"koa\";\nimport type { FlatTemplatable, Templatable } from \"tempstream\";\nimport { tempstream } from \"tempstream\";\nimport { ComponentInput } from \"./inputs/component-input.js\";\nimport { ComponentPreviewActions } from \"./component-preview-actions.js\";\n\nexport const actionName = \"Components\";\n\nexport type JDDPageState = {\n\tcomponents: RawJDDocument;\n\tpreview_size?: string;\n\tmessages?: string[];\n};\n\nexport default abstract class JDDPage extends StatefulPage<\n\tJDDPageState,\n\ttypeof ComponentPreviewActions\n> {\n\tactions = ComponentPreviewActions;\n\n\tpreviewSizes = [\"320\", \"600\", \"800\", \"1024\", \"1300\", \"1920\"];\n\tclasses: string[] = [];\n\n\tpublic registry: Registry;\n\tpublic makeJDDContext: (ctx: Context) => JDDContext;\n\tpublic html: (\n\t\targs: unknown\n\t) => string | Promise<string> | Readable | Promise<Readable>;\n\tpublic defaultHead: (\n\t\t...args: unknown[]\n\t) => string | Promise<string> | Readable | Promise<Readable>;\n\tpublic makeAssetURL: (asset: string) => string;\n\n\tconstructor(args: {\n\t\tregistry: Registry;\n\t\tmakeJDDContext: (ctx: Context) => JDDContext;\n\t\thtml: (\n\t\t\targs: unknown\n\t\t) => string | Promise<string> | Readable | Promise<Readable>;\n\t\tdefaultHead: (\n\t\t\t...args: unknown[]\n\t\t) => string | Promise<string> | Readable | Promise<Readable>;\n\t\tmakeAssetURL?: (asset: string) => string;\n\t}) {\n\t\tsuper();\n\t\tthis.registry = args.registry;\n\t\tthis.makeJDDContext = args.makeJDDContext;\n\t\tthis.defaultHead = args.defaultHead;\n\t\tthis.html = args.html;\n\t\tthis.makeAssetURL =\n\t\t\targs.makeAssetURL ||\n\t\t\t((str) =>\n\t\t\t\t`/dist/jdd-page/${str.startsWith(\"/\") ? str.slice(1) : str}`);\n\t}\n\n\tgetRegistryComponents() {\n\t\treturn this.registry.getAll();\n\t}\n\n\tasync getInitialState(ctx: Context) {\n\t\tconst all_components = Object.entries(this.getRegistryComponents());\n\t\tconst first_component = all_components[0];\n\t\tif (!first_component) {\n\t\t\tthrow new Error(\"No defined components!\");\n\t\t}\n\t\tconst [component_name, component] = first_component;\n\t\tconst initial_state = {\n\t\t\tcomponents: [\n\t\t\t\t{\n\t\t\t\t\tcomponent_name: component_name,\n\t\t\t\t\targs: await component.getExampleValues(\n\t\t\t\t\t\tthis.makeJDDContext(ctx)\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t],\n\t\t};\n\t\treturn initial_state;\n\t}\n\n\twrapInLayout(\n\t\tctx: Context,\n\t\tcontent: Templatable,\n\t\tstate: JDDPageState\n\t): Templatable {\n\t\tconst jdd = new JDD(\n\t\t\tthis.registry,\n\t\t\tthis.makeJDDContext(ctx),\n\t\t\tdocumentContainerFromParsed(state.components)\n\t\t);\n\t\treturn this.html({\n\t\t\tctx,\n\t\t\ttitle: \"Components\",\n\t\t\tbody: content,\n\t\t\tdescription: \"\",\n\t\t\tcss_clumps: [\"jdd-page\", ...jdd.getAllCSSClumps()],\n\t\t\thtmlOptions: {\n\t\t\t\tmorphing: true,\n\t\t\t\tpreserveScroll: true,\n\t\t\t\tautoRefreshCSS: false,\n\t\t\t\tnavbar: () => ``,\n\t\t\t\tbodyClasses: [\"jdd-editor\"],\n\t\t\t\tshowBottomNavbar: false,\n\t\t\t\tshowBanner: false,\n\t\t\t\tshowFooter: false,\n\t\t\t\tloadHamburgerMenu: false,\n\t\t\t\tloadSearchModal: false,\n\t\t\t},\n\t\t\tmakeHead: (...args: unknown[]) =>\n\t\t\t\ttempstream/* HTML */ `${this.defaultHead(...args)}\n\t\t\t\t\t<link\n\t\t\t\t\t\thref=\"/dist/jdd-page.entrypoint.css\"\n\t\t\t\t\t\trel=\"stylesheet\"\n\t\t\t\t\t\ttype=\"text/css\"\n\t\t\t\t\t/>\n\t\t\t\t\t${jdd.renderEarlyAssets()}`,\n\t\t});\n\t}\n\n\tasync preprocessOverrides(\n\t\t_ctx: Context,\n\t\tstate: JDDPageState,\n\t\toverrides: Record<string, unknown>\n\t) {\n\t\tconst jdd_context = this.makeJDDContext(_ctx);\n\t\tif (\n\t\t\t!hasFieldOfType(\n\t\t\t\t\"components\",\n\t\t\t\toverrides,\n\t\t\t\tpredicates.array(\n\t\t\t\t\tpredicates.shape({\n\t\t\t\t\t\targs: predicates.object,\n\t\t\t\t\t})\n\t\t\t\t)\n\t\t\t)\n\t\t) {\n\t\t\treturn {};\n\t\t}\n\t\tfor (const [component_index, { component_name }] of Object.entries(\n\t\t\tstate.components\n\t\t)) {\n\t\t\tconst component = this.registry.get(component_name);\n\t\t\tif (!component) {\n\t\t\t\tthrow new Error(`Unknown component: ${component_name}`);\n\t\t\t}\n\t\t\tconst overrides_for_component = overrides.components[\n\t\t\t\tparseInt(component_index)\n\t\t\t] || { args: {} };\n\t\t\tconst promises = Object.entries(component.getArguments()).map(\n\t\t\t\tasync ([arg_name, arg]) => {\n\t\t\t\t\tconst value = overrides_for_component.args[arg_name];\n\t\t\t\t\tif (value) {\n\t\t\t\t\t\tconst new_value = await arg.receivedToParsed(\n\t\t\t\t\t\t\tjdd_context,\n\t\t\t\t\t\t\tvalue\n\t\t\t\t\t\t);\n\t\t\t\t\t\toverrides_for_component.args[arg_name] = new_value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\t// eslint-disable-next-line no-await-in-loop\n\t\t\tawait Promise.all(promises);\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\treturn overrides;\n\t}\n\n\t// eslint-disable-next-line no-unused-vars\n\tabstract renderParameterButtons(_state: JDDPageState): FlatTemplatable;\n\n\trenderComponentArgs<C extends Component>(\n\t\tctx: Context,\n\t\tstate: JDDPageState,\n\t\tcomponent: C,\n\t\targs: Record<string, unknown>,\n\t\tindex: number\n\t): FlatTemplatable {\n\t\tconst jdd_context = this.makeJDDContext(ctx);\n\t\treturn tempstream/* HTML */ `<div\n\t\t\tclass=\"component-preview-parameters\"\n\t\t\tid=\"${`component-preview-parameters--${index}`}\"\n\t\t>\n\t\t\t${Object.entries(component.getArguments()).map(\n\t\t\t\tasync ([arg_name, arg]) =>\n\t\t\t\t\tComponentInput({\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\targ_path: [\n\t\t\t\t\t\t\t\"components\",\n\t\t\t\t\t\t\tindex.toString(),\n\t\t\t\t\t\t\t\"args\",\n\t\t\t\t\t\t\targ_name,\n\t\t\t\t\t\t],\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\targ,\n\t\t\t\t\t\tvalue:\n\t\t\t\t\t\t\targs[arg_name] === undefined\n\t\t\t\t\t\t\t\t? arg.getExampleValue(jdd_context)\n\t\t\t\t\t\t\t\t: args[arg_name],\n\t\t\t\t\t\tpage: this,\n\t\t\t\t\t\tmakeJDDContext: this.makeJDDContext,\n\t\t\t\t\t\tmakeAssetURL: this.makeAssetURL,\n\t\t\t\t\t})\n\t\t\t)}\n\t\t</div>`;\n\t}\n\n\trenderComponentBlock(\n\t\tctx: Context,\n\t\tstate: JDDPageState,\n\t\t{\n\t\t\tcomponent_name,\n\t\t\targs: component_args,\n\t\t}: {\n\t\t\tcomponent_name: string;\n\t\t\targs: Record<string, unknown>;\n\t\t},\n\t\tcomponent_index: number\n\t) {\n\t\tconst component = this.registry.get(component_name);\n\t\tif (!component) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.renderComponentArgs(\n\t\t\tctx,\n\t\t\tstate,\n\t\t\tcomponent,\n\t\t\tcomponent_args,\n\t\t\tcomponent_index\n\t\t);\n\t}\n\n\tasync serializeState(ctx: Context, state: JDDPageState, pretty = false) {\n\t\tconsole.time(\"serializing state\");\n\t\tconst serialized_components = await Promise.all(\n\t\t\tstate.components.map(async ({ component_name, args }) => {\n\t\t\t\tconst component = this.registry.get(component_name);\n\t\t\t\tconst single_result = {\n\t\t\t\t\tcomponent_name,\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-call\n\t\t\t\t\targs: component\n\t\t\t\t\t\t? await component.convertParsedToStorage(\n\t\t\t\t\t\t\t\tthis.makeJDDContext(ctx),\n\t\t\t\t\t\t\t\targs\n\t\t\t\t\t\t )\n\t\t\t\t\t\t: {},\n\t\t\t\t};\n\t\t\t\treturn single_result;\n\t\t\t})\n\t\t);\n\t\tconst serialized_state = JSON.stringify(\n\t\t\t{ components: serialized_components },\n\t\t\tnull,\n\t\t\tpretty ? 4 : \"\"\n\t\t);\n\t\tconsole.timeEnd(\"serializing state\");\n\t\treturn serialized_state;\n\t}\n\n\tasync deserializeState(ctx: Context, state_string: string) {\n\t\tconst jdd_context = this.makeJDDContext(ctx);\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst raw = JSON.parse(state_string);\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access\n\t\tconst components_storage = raw.components;\n\t\tif (!Array.isArray(components_storage)) {\n\t\t\tthrow new Error(\n\t\t\t\t\"'components' key is not an array, got ${components_storage}\"\n\t\t\t);\n\t\t}\n\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\t\tconst components_parsed = await Promise.all(\n\t\t\tcomponents_storage.map(async (entry) => {\n\t\t\t\tif (\n\t\t\t\t\t!hasShape(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcomponent_name: predicates.string,\n\t\t\t\t\t\t\targs: predicates.object,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tentry\n\t\t\t\t\t)\n\t\t\t\t) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Expected components[] items to be objects with 'component_name' and 'args' keys, got ${entry}`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tconst { component_name, args } = entry;\n\t\t\t\tconst component = this.registry.get(component_name);\n\t\t\t\tif (!component) {\n\t\t\t\t\tthrow new Error(\"Unknown component: ${component_name}\");\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tcomponent_name,\n\t\t\t\t\targs: await component.convertStorageToParsed(\n\t\t\t\t\t\tjdd_context,\n\t\t\t\t\t\targs\n\t\t\t\t\t),\n\t\t\t\t};\n\t\t\t})\n\t\t);\n\t\tconst result = { components: components_parsed };\n\t\treturn result;\n\t}\n\n\trenderPreParameterButtons(\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t_ctx: Context,\n\t\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t\t_state: JDDPageState\n\t): FlatTemplatable | Promise<FlatTemplatable> {\n\t\treturn \"\";\n\t}\n\n\trenderMessages(_ctx: Context, state: JDDPageState) {\n\t\treturn /* HTML */ `<ul\n\t\t\tclass=\"jdd-editor__messages\"\n\t\t\tdata-controller=\"toast\"\n\t\t>\n\t\t\t${(state.messages || []).map(\n\t\t\t\t(e) => `<li class=\"jdd-editor__message\">${e}</li>`\n\t\t\t)}\n\t\t</ul>`;\n\t}\n\n\tasync render(ctx: Context, state: JDDPageState): Promise<string> {\n\t\treturn tempstream/* HTML */ `<div\n\t\t\tclass=\"${[\"two-column\", \"component-debugger\", ...this.classes].join(\n\t\t\t\t\" \"\n\t\t\t)}\"\n\t\t\tid=\"component-debugger\"\n\t\t\tstyle=\"${`--resizable-column-width: ${\n\t\t\t\tstate.preview_size ? state.preview_size + \"px\" : \"50vw\"\n\t\t\t}`}\"\n\t\t\tdata-controller=\"component-debugger\"\n\t\t>\n\t\t\t<div class=\"component-arguments\" id=\"component-arguments\">\n\t\t\t\t${this.renderPreParameterButtons(ctx, state)}\n\t\t\t\t${this.renderParameterButtons(state)}\n\t\t\t\t${this.renderMessages(ctx, state)}\n\t\t\t\t${state.components.map((component, component_index) =>\n\t\t\t\t\tthis.renderComponentBlock(\n\t\t\t\t\t\tctx,\n\t\t\t\t\t\tstate,\n\t\t\t\t\t\tcomponent,\n\t\t\t\t\t\tcomponent_index\n\t\t\t\t\t)\n\t\t\t\t)}\n\t\t\t\t<details\n\t\t\t\t\tclass=\"component-debugger__json\"\n\t\t\t\t\tdata-controller=\"exportable-textarea\"\n\t\t\t\t\tid=\"exportable-textarea\"\n\t\t\t\t\topen\n\t\t\t\t>\n\t\t\t\t\t<summary>Edit/Export raw JSON</summary>\n\t\t\t\t\t<textarea\n\t\t\t\t\t\tname=\"state_override\"\n\t\t\t\t\t\trows=\"40\"\n\t\t\t\t\t\tcols=\"40\"\n\t\t\t\t\t\tdata-controller=\"json-editor\"\n\t\t\t\t\t\tid=\"component-debugger-json-textarea\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t>\n\t\t\t\t\t\t\t${(await this.serializeState(ctx, state, true)).replaceAll(\"<\", \"&lt;\")}\n\t\t\t\t\t\t</textarea\n\t\t\t\t\t>\n\t\t\t\t\t${this.makeActionButton(state, {\n\t\t\t\t\t\taction: \"replace_state\",\n\t\t\t\t\t\tlabel: \"Apply\",\n\t\t\t\t\t})}\n\t\t\t\t\t<button data-action=\"exportable-textarea#copy\">Copy</button>\n\t\t\t\t\t<button data-action=\"exportable-textarea#download\">\n\t\t\t\t\t\tDownload\n\t\t\t\t\t</button>\n\t\t\t\t\t<input type=\"file\" />${\" \"}\n\t\t\t\t\t<button data-action=\"exportable-textarea#import\">\n\t\t\t\t\t\tImport\n\t\t\t\t\t</button>\n\t\t\t\t</details>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tid=\"resize-gutter\"\n\t\t\t\tclass=\"resize-gutter\"\n\t\t\t\tdata-component-debugger-target=\"gutter\"\n\t\t\t></div>\n\t\t\t<div\n\t\t\t\tid=\"component-preview\"\n\t\t\t\tclass=\"component-preview\"\n\t\t\t\tdata-component-debugger-target=\"preview\"\n\t\t\t>\n\t\t\t\t<div\n\t\t\t\t\tid=\"component-preview__header\"\n\t\t\t\t\tclass=\"component-preview__header\"\n\t\t\t\t>\n\t\t\t\t\t<span>Preview</span>\n\t\t\t\t\t<select\n\t\t\t\t\t\tname=\"$[preview_size]\"\n\t\t\t\t\t\tautocomplete=\"off\"\n\t\t\t\t\t\tclass=\"component-preview-size-select\"\n\t\t\t\t\t\tdata-component-debugger-target=\"sizeSelect\"\n\t\t\t\t\t\tdata-action=\"change->component-debugger#handleWidthDropdown\"\n\t\t\t\t\t\tdata-turbo-data-turbo-permanent\n\t\t\t\t\t>\n\t\t\t\t\t\t${state.preview_size\n\t\t\t\t\t\t\t? /* HTML */ `<option\n\t\t\t\t\t\t\t\t\tclass=\"dynamic\"\n\t\t\t\t\t\t\t\t\tvalue=\"${state.preview_size}\"\n\t\t\t\t\t\t\t\t\tselected\n\t\t\t\t\t\t\t >\n\t\t\t\t\t\t\t\t\t${state.preview_size} px\n\t\t\t\t\t\t\t </option>`\n\t\t\t\t\t\t\t: \"\"}\n\t\t\t\t\t\t${this.previewSizes.map(\n\t\t\t\t\t\t\t(size) => /* HTML */ `<option value=\"${size}\">\n\t\t\t\t\t\t\t\t${`${size} px`}\n\t\t\t\t\t\t\t</option>`\n\t\t\t\t\t\t)}\n\t\t\t\t\t</select>\n\t\t\t\t\t<noscript>\n\t\t\t\t\t\t${this.makeActionButton(state, \"change_size\")}\n\t\t\t\t\t</noscript>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"jdd-outer-container\">\n\t\t\t\t\t<div class=\"jdd-container\">\n\t\t\t\t\t\t${JDD.render(\n\t\t\t\t\t\t\tthis.registry,\n\t\t\t\t\t\t\tdocumentContainerFromParsed(state.components),\n\t\t\t\t\t\t\tthis.makeJDDContext(ctx)\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>`;\n\t}\n}\n"],
5
- "mappings": "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",
6
- "names": []
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/test.test.ts"],
4
- "sourcesContent": ["describe(\"tests\", () => {\n\tit.skip(\"has a test\", () => {});\n});\n"],
5
- "mappings": "AAAA,SAAS,SAAS,MAAM;AACvB,KAAG,KAAK,cAAc,MAAM;AAAA,EAAC,CAAC;AAC/B,CAAC;",
6
- "names": []
7
- }
File without changes