@g1cloud/page-builder-editor 1.0.0-alpha.6 → 1.0.0-alpha.8

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 (31) hide show
  1. package/css/page-builder-editor.scss +71 -12
  2. package/css/property-editor-color.scss +5 -0
  3. package/css/property-editor-html.scss +16 -0
  4. package/css/property-group-editor-background.scss +0 -12
  5. package/css/property-group-editor-border.scss +6 -12
  6. package/css/property-group-editor-margin.scss +0 -11
  7. package/css/property-group-editor-padding.scss +0 -11
  8. package/css/property-group-editor-position.scss +0 -11
  9. package/css/property-group-editor-size.scss +0 -11
  10. package/css/property-localpart.scss +2 -2
  11. package/dist/HtmlEditorModal-DDoVYM6n.js +94 -0
  12. package/dist/PbPropertyEditorColor-BonGhf7Z.js +57 -0
  13. package/dist/PbPropertyEditorHtml-DfOWZr6S.js +65 -0
  14. package/dist/{PbPropertyEditorImage-D85hteOg.js → PbPropertyEditorImage-Du9R6CBU.js} +2 -2
  15. package/dist/{PbPropertyEditorMultilineText-BFzT7dlG.js → PbPropertyEditorMultilineText-bEBZmvFa.js} +2 -2
  16. package/dist/{PbPropertyEditorProduct-CUSpnV8o.js → PbPropertyEditorProduct-gzGulWGg.js} +2 -2
  17. package/dist/{PbPropertyEditorReadonlyText-Bk0WJxA0.js → PbPropertyEditorReadonlyText-Dgp_AVOD.js} +1 -1
  18. package/dist/{PbPropertyEditorSelect-BJovN1su.js → PbPropertyEditorSelect-CWedbXJI.js} +1 -1
  19. package/dist/{PbPropertyEditorText-DNdXl-Tr.js → PbPropertyEditorText-BWOKvwD9.js} +1 -1
  20. package/dist/components/modal/HtmlEditorModal.vue.d.ts +23 -0
  21. package/dist/components/sidebar/property/PbPropertyEditorColor.vue.d.ts +23 -0
  22. package/dist/components/sidebar/property/PbPropertyEditorHtml.vue.d.ts +23 -0
  23. package/dist/components/ui/PbColorPicker.vue.d.ts +2 -2
  24. package/dist/{index-DQLcq5fP.js → index-CFgXLaTI.js} +625 -381
  25. package/dist/model/context.d.ts +3 -3
  26. package/dist/model/model.d.ts +3 -3
  27. package/dist/model/page-builder-editor.d.ts +2 -2
  28. package/dist/model/part-definintion.d.ts +1 -0
  29. package/dist/page-builder-editor.js +23 -22
  30. package/dist/page-builder-editor.umd.cjs +1059 -605
  31. package/package.json +4 -3
@@ -19,6 +19,7 @@
19
19
  .pb-tool-button-group {
20
20
  &::after {
21
21
  content: '';
22
+ margin: 0 8px;
22
23
  height: 80%;
23
24
  border-right: 1px solid $color-border-light;
24
25
  align-self: center;
@@ -26,6 +27,7 @@
26
27
 
27
28
  .pb-tool-button {
28
29
  padding: 2px;
30
+ margin: 0 2px;
29
31
 
30
32
  .tool-button {
31
33
  width: 28px;
@@ -75,23 +77,28 @@
75
77
  border: 1px solid $color-border-light;
76
78
 
77
79
  .pb-sidebar-properties {
78
- padding: 4px 0;
80
+ padding: 0;
79
81
 
80
82
  .pb-sidebar-property-group {
83
+ &:not(:empty) {
84
+ padding: 16px 16px;
85
+ border-bottom: 1px solid #eaeaea;
81
86
 
82
- padding: 4px 0;
87
+ }
83
88
 
84
89
  .group-title {
85
- padding: 4px 8px;
86
- font-size: 90%;
87
- font-weight: bold;
90
+ > label {
91
+ padding: 4px 0;
92
+ font-size: 90%;
93
+ font-weight: 600;
94
+ }
88
95
  }
89
96
 
90
97
  .group-editor {
91
- padding: 4px 8px;
98
+ padding: 4px 0;
92
99
  font-size: 0.9em;
93
100
 
94
- .label {
101
+ .title {
95
102
  padding: 0 0 8px 0;
96
103
 
97
104
  label {
@@ -101,20 +108,29 @@
101
108
  font-weight: bold;
102
109
  }
103
110
  }
111
+
112
+ .sub-title {
113
+ label {
114
+ min-width: 6em;
115
+ max-width: 6em;
116
+ padding-right: 0.5em;
117
+ font-weight: 400;
118
+ }
119
+ }
104
120
  }
105
121
 
106
122
  .property-editor {
107
- padding: 4px 8px;
123
+ padding: 4px 0;
108
124
  font-size: 0.9em;
109
125
 
110
- > .label {
126
+ > .title {
111
127
  padding: 0 0 8px 0;
112
128
 
113
- label {
129
+ > label {
114
130
  min-width: 6em;
115
131
  max-width: 6em;
116
132
  padding-right: 0.5em;
117
- font-weight: bold;
133
+ font-weight: 600;
118
134
  }
119
135
  }
120
136
  }
@@ -123,12 +139,14 @@
123
139
  margin-top: 4px
124
140
  }
125
141
 
142
+ @import "./property-editor-color";
126
143
  @import "./property-editor-image";
127
144
  @import "./property-editor-multiline-text";
128
145
  @import "./property-editor-product";
129
146
  @import "./property-editor-readonly-text";
130
147
  @import "./property-editor-select";
131
148
  @import "./property-editor-text";
149
+ @import "./property-editor-html";
132
150
 
133
151
  @import "./property-group-editor-background";
134
152
  @import "./property-group-editor-border";
@@ -203,4 +221,45 @@
203
221
  padding: 8px 16px;
204
222
  }
205
223
  }
206
- }
224
+ }
225
+
226
+ .pb-html-editor-modal {
227
+ .preview {
228
+ width: 50%;
229
+
230
+ .content {
231
+ border: solid 1px #ccc;
232
+ overflow-y: auto;
233
+ }
234
+ }
235
+
236
+ .editor {
237
+ width: 50%;
238
+
239
+ .tags {
240
+ height: 60%;
241
+ }
242
+
243
+ .style {
244
+ height: 40%;
245
+ }
246
+
247
+ .bs-code-editor {
248
+ height: 100%;
249
+ }
250
+ }
251
+
252
+ .buttons {
253
+ text-align: center;
254
+
255
+ button {
256
+ color: #fff;
257
+ border: none;
258
+ padding: 4px 12px;
259
+ cursor: pointer;
260
+ line-height: 1;
261
+ height: 28px;
262
+ background-color: #1f8fff;
263
+ }
264
+ }
265
+ }
@@ -0,0 +1,5 @@
1
+ .property-editor-color {
2
+ .color {
3
+ width: 50%;
4
+ }
5
+ }
@@ -0,0 +1,16 @@
1
+ .property-editor-html {
2
+ button {
3
+ color: #fff;
4
+ border: none;
5
+ padding: 4px 12px;
6
+ cursor: pointer;
7
+ line-height: 1;
8
+ width: 100px;
9
+ height: 28px;
10
+ background-color: #1f8fff;
11
+ }
12
+
13
+ .input-area {
14
+ height: 24px;
15
+ }
16
+ }
@@ -1,16 +1,4 @@
1
1
  .group-editor-background {
2
- padding: 4px 8px;
3
- font-size: 0.9em;
4
-
5
- > div {
6
- > label {
7
- min-width: 6em;
8
- max-width: 6em;
9
- padding-right: 0.5em;
10
- font-weight: bold;
11
- }
12
- }
13
-
14
2
  .color {
15
3
  flex: 1;
16
4
  display: flex;
@@ -1,16 +1,4 @@
1
1
  .group-editor-border {
2
- padding: 4px 8px;
3
- font-size: 0.9em;
4
-
5
- > div {
6
- > label {
7
- min-width: 6em;
8
- max-width: 6em;
9
- padding-right: 0.5em;
10
- font-weight: bold;
11
- }
12
- }
13
-
14
2
  .color {
15
3
  width: 50%;
16
4
  flex: 1;
@@ -22,4 +10,10 @@
22
10
  flex-grow: 1;
23
11
  }
24
12
  }
13
+
14
+ .corner-icon {
15
+ width: 1.1em;
16
+ height: 1.1em;
17
+ fill: #000;
18
+ }
25
19
  }
@@ -1,13 +1,2 @@
1
1
  .group-editor-margin {
2
- padding: 4px 8px;
3
- font-size: 0.9em;
4
-
5
- > div {
6
- > label {
7
- min-width: 6em;
8
- max-width: 6em;
9
- padding-right: 0.5em;
10
- font-weight: bold;
11
- }
12
- }
13
2
  }
@@ -1,13 +1,2 @@
1
1
  .group-editor-padding {
2
- padding: 4px 8px;
3
- font-size: 0.9em;
4
-
5
- > div {
6
- > label {
7
- min-width: 6em;
8
- max-width: 6em;
9
- padding-right: 0.5em;
10
- font-weight: bold;
11
- }
12
- }
13
2
  }
@@ -1,13 +1,2 @@
1
1
  .group-editor-position {
2
- padding: 4px 8px;
3
- font-size: 0.9em;
4
-
5
- > div {
6
- > label {
7
- min-width: 6em;
8
- max-width: 6em;
9
- padding-right: 0.5em;
10
- font-weight: bold;
11
- }
12
- }
13
2
  }
@@ -1,13 +1,2 @@
1
1
  .group-editor-size {
2
- padding: 4px 8px;
3
- font-size: 0.9em;
4
-
5
- > div {
6
- > label {
7
- min-width: 6em;
8
- max-width: 6em;
9
- padding-right: 0.5em;
10
- font-weight: bold;
11
- }
12
- }
13
2
  }
@@ -1,7 +1,7 @@
1
1
  .property-editor-local-part {
2
2
 
3
- .label {
4
- font-weight: bold;
3
+ .title {
4
+ font-weight: 600;
5
5
  }
6
6
 
7
7
  button {
@@ -0,0 +1,94 @@
1
+ import { defineComponent, ref, computed, onMounted, openBlock, createBlock, unref, withCtx, createElementVNode, createVNode } from "vue";
2
+ import { useModalHandle, BSModalFrame, BSCodeEditor } from "@g1cloud/bluesea";
3
+ const _hoisted_1 = { class: "bs-layout-vertical pb-html-editor-modal flex-grow-1 h-full" };
4
+ const _hoisted_2 = { class: "bs-layout-horizontal flex-grow-1" };
5
+ const _hoisted_3 = { class: "preview flex-grow-1" };
6
+ const _hoisted_4 = { class: "bs-layout-vertical w-full h-full" };
7
+ const _hoisted_5 = /* @__PURE__ */ createElementVNode("div", { class: "title pb-4" }, "Preview", -1);
8
+ const _hoisted_6 = ["innerHTML"];
9
+ const _hoisted_7 = { class: "editor bs-layout-vertical pl-8" };
10
+ const _hoisted_8 = { class: "tags bs-layout-vertical w-full" };
11
+ const _hoisted_9 = /* @__PURE__ */ createElementVNode("div", { class: "title pb-4" }, "HTML", -1);
12
+ const _hoisted_10 = { class: "content flex-grow-1" };
13
+ const _hoisted_11 = { class: "style bs-layout-vertical w-full pt-8" };
14
+ const _hoisted_12 = /* @__PURE__ */ createElementVNode("div", { class: "title pb-4" }, "Style", -1);
15
+ const _hoisted_13 = { class: "content flex-grow-1" };
16
+ const _sfc_main = /* @__PURE__ */ defineComponent({
17
+ __name: "HtmlEditorModal",
18
+ props: {
19
+ html: {}
20
+ },
21
+ emits: ["updateHtml"],
22
+ setup(__props, { emit: __emit }) {
23
+ var _a, _b;
24
+ const props = __props;
25
+ const emit = __emit;
26
+ const modalHandle = useModalHandle();
27
+ const tags = ref(((_a = props.html) == null ? void 0 : _a.tags) || "");
28
+ const style = ref(((_b = props.html) == null ? void 0 : _b.style) || "");
29
+ const html = computed(() => `${tags.value || ""}
30
+ <style>${style.value || ""}</style>`);
31
+ onMounted(async () => {
32
+ });
33
+ const ok = () => {
34
+ emit("updateHtml", {
35
+ tags: tags.value || "",
36
+ style: style.value || ""
37
+ });
38
+ modalHandle.close();
39
+ };
40
+ return (_ctx, _cache) => {
41
+ return openBlock(), createBlock(unref(BSModalFrame), { title: "HTML Editor" }, {
42
+ default: withCtx(() => [
43
+ createElementVNode("div", _hoisted_1, [
44
+ createElementVNode("div", _hoisted_2, [
45
+ createElementVNode("div", _hoisted_3, [
46
+ createElementVNode("div", _hoisted_4, [
47
+ _hoisted_5,
48
+ createElementVNode("div", {
49
+ class: "content flex-grow-1",
50
+ innerHTML: html.value
51
+ }, null, 8, _hoisted_6)
52
+ ])
53
+ ]),
54
+ createElementVNode("div", _hoisted_7, [
55
+ createElementVNode("div", _hoisted_8, [
56
+ _hoisted_9,
57
+ createElementVNode("div", _hoisted_10, [
58
+ createVNode(unref(BSCodeEditor), {
59
+ modelValue: tags.value,
60
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => tags.value = $event),
61
+ "editor-height": "100%",
62
+ lang: "html"
63
+ }, null, 8, ["modelValue"])
64
+ ])
65
+ ]),
66
+ createElementVNode("div", _hoisted_11, [
67
+ _hoisted_12,
68
+ createElementVNode("div", _hoisted_13, [
69
+ createVNode(unref(BSCodeEditor), {
70
+ modelValue: style.value,
71
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => style.value = $event),
72
+ "editor-height": "100%",
73
+ lang: "css"
74
+ }, null, 8, ["modelValue"])
75
+ ])
76
+ ])
77
+ ])
78
+ ]),
79
+ createElementVNode("div", { class: "buttons pt-24" }, [
80
+ createElementVNode("button", {
81
+ class: "mr-4",
82
+ onClick: ok
83
+ }, "OK")
84
+ ])
85
+ ])
86
+ ]),
87
+ _: 1
88
+ });
89
+ };
90
+ }
91
+ });
92
+ export {
93
+ _sfc_main as default
94
+ };
@@ -0,0 +1,57 @@
1
+ import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, createVNode, unref } from "vue";
2
+ import { BSTextInput } from "@g1cloud/bluesea";
3
+ import { P as PbColorPicker } from "./index-CFgXLaTI.js";
4
+ const _hoisted_1 = { class: "property-editor property-editor-color" };
5
+ const _hoisted_2 = { class: "title" };
6
+ const _hoisted_3 = ["textContent"];
7
+ const _hoisted_4 = { class: "bs-layout-horizontal flex-align-center color" };
8
+ const _sfc_main = /* @__PURE__ */ defineComponent({
9
+ __name: "PbPropertyEditorColor",
10
+ props: {
11
+ property: {},
12
+ value: {}
13
+ },
14
+ emits: ["update-property-value"],
15
+ setup(__props, { emit: __emit }) {
16
+ const props = __props;
17
+ const emit = __emit;
18
+ const emptyColor = () => {
19
+ };
20
+ const saveOriginalColor = () => {
21
+ };
22
+ const updateColor = (value) => {
23
+ const properties = {};
24
+ properties[props.property.propertyName] = value;
25
+ emit("update-property-value", properties);
26
+ };
27
+ return (_ctx, _cache) => {
28
+ return openBlock(), createElementBlock("div", _hoisted_1, [
29
+ createElementVNode("div", _hoisted_2, [
30
+ createElementVNode("label", {
31
+ textContent: toDisplayString(_ctx.property.caption)
32
+ }, null, 8, _hoisted_3)
33
+ ]),
34
+ createElementVNode("div", _hoisted_4, [
35
+ createVNode(PbColorPicker, {
36
+ value: _ctx.value,
37
+ "hide-delete": "",
38
+ onEmpty: _cache[0] || (_cache[0] = ($event) => emptyColor()),
39
+ onHide: _cache[1] || (_cache[1] = ($event) => updateColor($event)),
40
+ onShow: saveOriginalColor,
41
+ onChangeColor: _cache[2] || (_cache[2] = ($event) => updateColor($event))
42
+ }, null, 8, ["value"]),
43
+ createVNode(unref(BSTextInput), {
44
+ "model-value": _ctx.value,
45
+ prefix: { type: "font-icon", value: "palette" },
46
+ class: "ml-4",
47
+ width: "",
48
+ "onUpdate:modelValue": updateColor
49
+ }, null, 8, ["model-value"])
50
+ ])
51
+ ]);
52
+ };
53
+ }
54
+ });
55
+ export {
56
+ _sfc_main as default
57
+ };
@@ -0,0 +1,65 @@
1
+ import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, defineAsyncComponent } from "vue";
2
+ import { useModal } from "@g1cloud/bluesea";
3
+ import { u as usePageBuilderEditor } from "./index-CFgXLaTI.js";
4
+ const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
+ const _hoisted_2 = { class: "title" };
6
+ const _hoisted_3 = ["textContent"];
7
+ const _sfc_main = /* @__PURE__ */ defineComponent({
8
+ __name: "PbPropertyEditorHtml",
9
+ props: {
10
+ property: {},
11
+ value: {}
12
+ },
13
+ emits: ["update-property-value"],
14
+ setup(__props, { emit: __emit }) {
15
+ const props = __props;
16
+ const modal = useModal();
17
+ const pageBuilder = usePageBuilderEditor();
18
+ const emit = __emit;
19
+ const editHtml = () => {
20
+ const language = pageBuilder.getLanguage();
21
+ let html;
22
+ if (props.value && typeof props.value === "object") {
23
+ html = props.value[language];
24
+ }
25
+ modal.openModal({
26
+ component: defineAsyncComponent(() => import("./HtmlEditorModal-DDoVYM6n.js")),
27
+ style: {
28
+ width: "80%",
29
+ height: "80%",
30
+ maxWidth: "800px",
31
+ minWidth: "500px",
32
+ maxHeight: "800px"
33
+ },
34
+ bind: {
35
+ html
36
+ },
37
+ on: {
38
+ updateHtml: (html2) => {
39
+ const language2 = pageBuilder.getLanguage();
40
+ const value = {
41
+ ...props.value || {},
42
+ [language2]: html2
43
+ };
44
+ emit("update-property-value", { html: value });
45
+ }
46
+ }
47
+ });
48
+ };
49
+ return (_ctx, _cache) => {
50
+ return openBlock(), createElementBlock("div", _hoisted_1, [
51
+ createElementVNode("div", _hoisted_2, [
52
+ createElementVNode("label", {
53
+ textContent: toDisplayString(_ctx.property.caption)
54
+ }, null, 8, _hoisted_3)
55
+ ]),
56
+ createElementVNode("div", null, [
57
+ createElementVNode("button", { onClick: editHtml }, "Edit HTML")
58
+ ])
59
+ ]);
60
+ };
61
+ }
62
+ });
63
+ export {
64
+ _sfc_main as default
65
+ };
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString } from "vue";
2
2
  import { useModal } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor, P as PageBuilderEditorEvent } from "./index-DQLcq5fP.js";
3
+ import { u as usePageBuilderEditor, a as PageBuilderEditorEvent } from "./index-CFgXLaTI.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-image flex-align-center" };
5
- const _hoisted_2 = { class: "label" };
5
+ const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "PbPropertyEditorImage",
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, createElementVNode, toDisplayString, createVNode, unref } from "vue";
2
2
  import { BSTextArea } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor } from "./index-DQLcq5fP.js";
3
+ import { u as usePageBuilderEditor } from "./index-CFgXLaTI.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-multiline-text" };
5
- const _hoisted_2 = { class: "label" };
5
+ const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "PbPropertyEditorMultilineText",
@@ -1,8 +1,8 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString } from "vue";
2
2
  import { useModal } from "@g1cloud/bluesea";
3
- import { u as usePageBuilderEditor, P as PageBuilderEditorEvent } from "./index-DQLcq5fP.js";
3
+ import { u as usePageBuilderEditor, a as PageBuilderEditorEvent } from "./index-CFgXLaTI.js";
4
4
  const _hoisted_1 = { class: "property-editor property-editor-product flex-align-center" };
5
- const _hoisted_2 = { class: "label" };
5
+ const _hoisted_2 = { class: "title" };
6
6
  const _hoisted_3 = ["textContent"];
7
7
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
8
  __name: "PbPropertyEditorProduct",
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString } from "vue";
2
2
  const _hoisted_1 = { class: "property-editor property-editor-readonly-text" };
3
- const _hoisted_2 = { class: "label" };
3
+ const _hoisted_2 = { class: "title" };
4
4
  const _hoisted_3 = ["textContent"];
5
5
  const _hoisted_4 = ["textContent"];
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, computed, openBlock, createElementBlock, createElementVNode, toDisplayString, createVNode, unref } from "vue";
2
2
  import { BSSelect } from "@g1cloud/bluesea";
3
3
  const _hoisted_1 = { class: "property-editor property-editor-select flex-align-center" };
4
- const _hoisted_2 = { class: "label" };
4
+ const _hoisted_2 = { class: "title" };
5
5
  const _hoisted_3 = ["textContent"];
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  __name: "PbPropertyEditorSelect",
@@ -1,7 +1,7 @@
1
1
  import { defineComponent, openBlock, createElementBlock, createElementVNode, toDisplayString, createVNode, unref } from "vue";
2
2
  import { BSTextInput } from "@g1cloud/bluesea";
3
3
  const _hoisted_1 = { class: "property-editor property-editor-text flex-align-center" };
4
- const _hoisted_2 = { class: "label" };
4
+ const _hoisted_2 = { class: "title" };
5
5
  const _hoisted_3 = ["textContent"];
6
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
7
7
  __name: "PbPropertyEditorText",
@@ -0,0 +1,23 @@
1
+ type Html = {
2
+ tags: string;
3
+ style: string;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_TypePropsToRuntimeProps<{
6
+ html?: Html | undefined;
7
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
8
+ updateHtml: (html: Html) => void;
9
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
10
+ html?: Html | undefined;
11
+ }>>> & {
12
+ onUpdateHtml?: ((html: Html) => any) | undefined;
13
+ }, {}, {}>;
14
+ export default _default;
15
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
16
+ type __VLS_TypePropsToRuntimeProps<T> = {
17
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
18
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
19
+ } : {
20
+ type: import('vue').PropType<T[K]>;
21
+ required: true;
22
+ };
23
+ };
@@ -0,0 +1,23 @@
1
+ import { PartProperty } from '../../../model/part-property.ts';
2
+
3
+ declare const _default: import('vue').DefineComponent<__VLS_TypePropsToRuntimeProps<{
4
+ property: PartProperty;
5
+ value?: string | undefined;
6
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
+ "update-property-value": (properties: Record<string, string>) => void;
8
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
9
+ property: PartProperty;
10
+ value?: string | undefined;
11
+ }>>> & {
12
+ "onUpdate-property-value"?: ((properties: Record<string, string>) => any) | undefined;
13
+ }, {}, {}>;
14
+ export default _default;
15
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
16
+ type __VLS_TypePropsToRuntimeProps<T> = {
17
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
18
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
19
+ } : {
20
+ type: import('vue').PropType<T[K]>;
21
+ required: true;
22
+ };
23
+ };
@@ -0,0 +1,23 @@
1
+ import { PartProperty } from '../../../model/part-property.ts';
2
+
3
+ declare const _default: import('vue').DefineComponent<__VLS_TypePropsToRuntimeProps<{
4
+ property: PartProperty;
5
+ value?: unknown;
6
+ }>, {}, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
+ "update-property-value": (properties: Record<string, unknown>) => void;
8
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_TypePropsToRuntimeProps<{
9
+ property: PartProperty;
10
+ value?: unknown;
11
+ }>>> & {
12
+ "onUpdate-property-value"?: ((properties: Record<string, unknown>) => any) | undefined;
13
+ }, {}, {}>;
14
+ export default _default;
15
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
16
+ type __VLS_TypePropsToRuntimeProps<T> = {
17
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
18
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
19
+ } : {
20
+ type: import('vue').PropType<T[K]>;
21
+ required: true;
22
+ };
23
+ };
@@ -5,10 +5,10 @@ declare const _default: import('vue').DefineComponent<{
5
5
  default: string;
6
6
  };
7
7
  }, {
8
- appliedColor: import('vue').ComputedRef<string>;
8
+ appliedColor: import('vue').ComputedRef<any>;
9
9
  isShowColorPicker: import('vue').Ref<boolean>;
10
10
  toggle: (value?: boolean) => void;
11
- color: import('vue').Ref<string>;
11
+ color: import('vue').Ref<any>;
12
12
  emptyColor: () => void;
13
13
  colorHistory: string[] | undefined;
14
14
  }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{