@g1cloud/page-builder-editor 1.0.0-alpha.1 → 1.0.0-alpha.100

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 (123) hide show
  1. package/README.md +31 -6
  2. package/css/page-builder-editor.css +391 -0
  3. package/css/page-builder-viewer.css +200 -0
  4. package/dist/PageBuilderEditor.vue.d.ts +22 -7
  5. package/dist/PbHtmlEditorModal-C0MLYY66.js +193 -0
  6. package/dist/PbPropertyEditorBoolean-c5CNiTpt.js +38 -0
  7. package/dist/PbPropertyEditorColor-CwgsFX20.js +56 -0
  8. package/dist/{PbPropertyEditorText-DNdXl-Tr.js → PbPropertyEditorCssLength-BimevQPh.js} +11 -10
  9. package/dist/PbPropertyEditorHtml-Dq5TqAEK.js +62 -0
  10. package/dist/PbPropertyEditorImage-Bn9LMbEK.js +122 -0
  11. package/dist/PbPropertyEditorMultilineText-gDifsouH.js +66 -0
  12. package/dist/PbPropertyEditorNumber-B76ArSb5.js +47 -0
  13. package/dist/{PbPropertyEditorReadonlyText-Bk0WJxA0.js → PbPropertyEditorReadonlyText-BJ5qx69O.js} +7 -7
  14. package/dist/{PbPropertyEditorSelect-BJovN1su.js → PbPropertyEditorSelect-B5sfulvx.js} +6 -7
  15. package/dist/PbPropertyEditorText-C7Tr7KGc.js +50 -0
  16. package/dist/PbPropertyEditorYoutube-Ci8_jXBk.js +62 -0
  17. package/dist/PbScreenSelectModal-57LXAzjs.js +69 -0
  18. package/dist/PbWidgetAddModal-BdTUeERo.js +79 -0
  19. package/dist/PbYoutubeModal-CU8sClMD.js +73 -0
  20. package/dist/components/canvas/PbCanvas.vue.d.ts +1 -1
  21. package/dist/components/depart/PbLoginDepart.vue.d.ts +3 -3
  22. package/dist/components/menu/PbMenu.vue.d.ts +16 -1
  23. package/dist/components/menu/PbToolbar.vue.d.ts +16 -1
  24. package/dist/components/menu/PbToolbarButton.vue.d.ts +3 -3
  25. package/dist/components/menu/PbToolbarButtonGroup.vue.d.ts +3 -3
  26. package/dist/components/modal/PbHtmlEditorModal.vue.d.ts +28 -0
  27. package/dist/components/modal/PbPartAddModal.vue.d.ts +4 -4
  28. package/dist/components/modal/PbScreenSelectModal.vue.d.ts +6 -0
  29. package/dist/components/modal/PbWidgetAddModal.vue.d.ts +4 -4
  30. package/dist/components/modal/PbYoutubeModal.vue.d.ts +19 -0
  31. package/dist/components/navigator/PbNavigator.vue.d.ts +1 -1
  32. package/dist/components/part/PbAddWidgetButton.vue.d.ts +1 -1
  33. package/dist/components/part/PbBlock.vue.d.ts +7 -3
  34. package/dist/components/part/PbPage.vue.d.ts +5 -5
  35. package/dist/components/part/PbPageFrame.vue.d.ts +19 -0
  36. package/dist/components/part/PbSection.vue.d.ts +7 -3
  37. package/dist/components/part/PbWidget.vue.d.ts +5 -3
  38. package/dist/components/sidebar/PbSidebar.vue.d.ts +1 -1
  39. package/dist/components/sidebar/PbSidebarProperties.vue.d.ts +1 -1
  40. package/dist/components/sidebar/PbSidebarPropertyEditor.vue.d.ts +3 -3
  41. package/dist/components/sidebar/PbSidebarPropertyGroupEditor.vue.d.ts +3 -3
  42. package/dist/components/sidebar/property/{PbPropertyEditorProduct.vue.d.ts → PbPropertyEditorBoolean.vue.d.ts} +4 -4
  43. package/dist/components/sidebar/property/{PbPropertyLocalPart.vue.d.ts → PbPropertyEditorColor.vue.d.ts} +9 -9
  44. package/dist/components/sidebar/property/PbPropertyEditorCssLength.vue.d.ts +23 -0
  45. package/dist/components/sidebar/property/PbPropertyEditorHtml.vue.d.ts +23 -0
  46. package/dist/components/sidebar/property/PbPropertyEditorImage.vue.d.ts +5 -9
  47. package/dist/components/sidebar/property/PbPropertyEditorMultilineText.vue.d.ts +10 -8
  48. package/dist/components/sidebar/property/PbPropertyEditorNumber.vue.d.ts +23 -0
  49. package/dist/components/sidebar/property/PbPropertyEditorReadonlyText.vue.d.ts +3 -3
  50. package/dist/components/sidebar/property/PbPropertyEditorSelect.vue.d.ts +4 -4
  51. package/dist/components/sidebar/property/PbPropertyEditorText.vue.d.ts +9 -8
  52. package/dist/components/sidebar/property/PbPropertyEditorYoutube.vue.d.ts +23 -0
  53. package/dist/components/sidebar/property/PbPropertyGroupEditorBackground.vue.d.ts +3 -3
  54. package/dist/components/sidebar/property/PbPropertyGroupEditorBorder.vue.d.ts +3 -3
  55. package/dist/components/sidebar/property/PbPropertyGroupEditorMargin.vue.d.ts +3 -3
  56. package/dist/components/sidebar/property/PbPropertyGroupEditorMedia.vue.d.ts +20 -0
  57. package/dist/components/sidebar/property/PbPropertyGroupEditorPadding.vue.d.ts +3 -3
  58. package/dist/components/sidebar/property/PbPropertyGroupEditorPosition.vue.d.ts +3 -3
  59. package/dist/components/sidebar/property/PbPropertyGroupEditorSize.vue.d.ts +3 -3
  60. package/dist/components/ui/PbColorPicker.vue.d.ts +17 -8
  61. package/dist/directives/vPartHandler.d.ts +1 -0
  62. package/dist/{index-BtILenNo.js → index-gTlPRaWE.js} +5857 -2158
  63. package/dist/index.d.ts +6 -0
  64. package/dist/model/command.d.ts +47 -34
  65. package/dist/model/context.d.ts +25 -16
  66. package/dist/model/default-part-property-group.d.ts +8 -2
  67. package/dist/model/event.d.ts +0 -51
  68. package/dist/model/model.d.ts +11 -5
  69. package/dist/model/page-builder-editor.d.ts +42 -7
  70. package/dist/model/page-builder-util.d.ts +4 -2
  71. package/dist/model/part-definintion.d.ts +3 -2
  72. package/dist/model/part-manager.d.ts +2 -0
  73. package/dist/model/part-property.d.ts +4 -3
  74. package/dist/model/plugin.d.ts +24 -0
  75. package/dist/page-builder-editor.js +26 -19
  76. package/dist/page-builder-editor.umd.cjs +6692 -2335
  77. package/dist/style.css +342 -127
  78. package/dist/text/text.d.ts +1 -0
  79. package/dist/utils/common.d.ts +1 -0
  80. package/package.json +14 -8
  81. package/scss/canvas.scss +29 -0
  82. package/{css/canvas-block.scss → scss/page-block.scss} +15 -3
  83. package/scss/page-builder-editor.scss +326 -0
  84. package/scss/page-builder-viewer.scss +1 -0
  85. package/{css/canvas-page.scss → scss/page-page.scss} +25 -16
  86. package/{css/canvas-section.scss → scss/page-section.scss} +15 -4
  87. package/scss/page-widget.scss +66 -0
  88. package/scss/page.scss +73 -0
  89. package/scss/property-editor-color.scss +5 -0
  90. package/scss/property-editor-html.scss +17 -0
  91. package/scss/property-editor-image.scss +17 -0
  92. package/{css → scss}/property-editor-product.scss +4 -3
  93. package/scss/property-editor-text.scss +10 -0
  94. package/{css/property-editor-image.scss → scss/property-editor-youtube.scss} +4 -4
  95. package/scss/property-group-editor-background.scss +39 -0
  96. package/{css → scss}/property-group-editor-border.scss +6 -12
  97. package/scss/property-group-editor-margin.scss +2 -0
  98. package/scss/property-group-editor-media.scss +22 -0
  99. package/scss/property-group-editor-padding.scss +2 -0
  100. package/scss/property-group-editor-position.scss +2 -0
  101. package/scss/property-group-editor-size.scss +2 -0
  102. package/{css → scss}/property-localpart.scss +4 -4
  103. package/css/bluesea.scss +0 -8244
  104. package/css/canvas-widget.scss +0 -41
  105. package/css/canvas.scss +0 -146
  106. package/css/page-builder-editor.scss +0 -185
  107. package/css/page-builder-viewer.scss +0 -1
  108. package/css/property-group-editor-background.scss +0 -40
  109. package/css/property-group-editor-margin.scss +0 -13
  110. package/css/property-group-editor-padding.scss +0 -13
  111. package/css/property-group-editor-position.scss +0 -13
  112. package/css/property-group-editor-size.scss +0 -13
  113. package/css/variable.scss +0 -1
  114. package/dist/PbPartAddModal-DuLpnV4E.js +0 -50
  115. package/dist/PbPropertyEditorImage-BFIqG-bL.js +0 -42
  116. package/dist/PbPropertyEditorMultilineText-BMeNUGm8.js +0 -42
  117. package/dist/PbPropertyEditorProduct--cf9LI2Z.js +0 -49
  118. package/dist/PbWidgetAddModal-CQvFYzfU.js +0 -55
  119. package/dist/components/canvas/PbCanvasFrame.vue.d.ts +0 -2
  120. /package/{css → scss}/property-editor-multiline-text.scss +0 -0
  121. /package/{css/property-editor-text.scss → scss/property-editor-number.scss} +0 -0
  122. /package/{css → scss}/property-editor-readonly-text.scss +0 -0
  123. /package/{css → scss}/property-editor-select.scss +0 -0
package/dist/style.css CHANGED
@@ -1,173 +1,388 @@
1
- .pb-page {
2
- margin: 0 auto;
3
- margin-top: 20px;
4
- background-position: 50% 50%;
5
- background-repeat: no-repeat;
6
- background-size: cover;
7
- }
8
- .pb-page .pb-section {
9
- position: relative;
10
- background-position: 50% 50%;
11
- background-repeat: no-repeat;
12
- background-size: cover;
13
- background-color: #fff;
1
+ @charset "UTF-8";
2
+ .pb-editor {
3
+ --color-canvas-frame-bg: #aaa;
4
+ height: 100%;
14
5
  }
15
- .pb-page .pb-section .pb-block {
16
- display: flex;
17
- min-width: 1px;
18
- position: relative;
19
- background-position: 50% 50%;
20
- background-repeat: no-repeat;
21
- background-size: cover;
6
+ .pb-editor .pb-menu {
22
7
  width: 100%;
23
8
  }
24
- .pb-page .pb-section .pb-block .pb-widget {
25
- position: relative;
26
- background-position: 50% 50%;
27
- background-repeat: no-repeat;
28
- background-size: cover;
29
- width: 100%;
9
+ .pb-editor .pb-menu .pb-toolbar {
10
+ margin: 0 -8px;
30
11
  }
31
- .pb-page .pb-section .pb-block .pb-widget .children {
32
- position: absolute;
33
- width: 100%;
12
+ .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group::after {
13
+ content: "";
14
+ margin: 0 8px;
15
+ height: 80%;
16
+ border-right: 1px solid var(--border-light);
17
+ align-self: center;
18
+ }
19
+ .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button {
20
+ padding: 2px;
21
+ margin: 0 2px;
22
+ }
23
+ .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button {
24
+ width: 28px;
25
+ height: 28px;
26
+ display: flex;
27
+ align-items: center;
28
+ justify-content: center;
29
+ }
30
+ .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .bs-clickable, .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .pb-part-add-modal .group .part, .pb-part-add-modal .group .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .part {
31
+ user-select: none;
32
+ cursor: pointer;
33
+ }
34
+ .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .bs-clickable:hover, .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .pb-part-add-modal .group .part:hover, .pb-part-add-modal .group .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .part:hover {
35
+ filter: opacity(75%);
36
+ }
37
+ .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .bs-clickable:active, .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .pb-part-add-modal .group .part:active, .pb-part-add-modal .group .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .part:active {
38
+ filter: opacity(50%);
39
+ }
40
+ .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .bs-clickable.disabled, .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .pb-part-add-modal .group .disabled.part, .pb-part-add-modal .group .pb-editor .pb-menu .pb-toolbar .pb-tool-button-group .pb-tool-button .tool-button .disabled.part {
41
+ filter: opacity(40%);
42
+ }
43
+ .pb-editor .pb-editor-body {
44
+ padding: 8px 0 0;
45
+ height: 1px;
46
+ }
47
+ .pb-editor .pb-editor-body .pb-canvas-wrapper {
48
+ background-color: var(--color-canvas-frame-bg);
49
+ border-top: 1px solid var(--color-canvas-frame-bg);
50
+ border-bottom: 1px solid var(--color-canvas-frame-bg);
51
+ flex-grow: 1;
52
+ min-width: 0;
53
+ width: 0;
34
54
  height: 100%;
55
+ padding: 20px;
56
+ outline: none;
57
+ overflow: auto;
35
58
  }
36
- .pb-page .pb-section .pb-block .pb-text-widget {
37
- width: 100%;
38
- height: fit-content;
59
+ .pb-editor .pb-editor-body .pb-canvas {
60
+ display: flex;
61
+ flex-direction: row;
62
+ transform-origin: top left;
63
+ width: fit-content;
64
+ height: 100%;
65
+ margin: 0;
39
66
  }
40
- .pb-page .pb-section .pb-block .pb-text-widget .text {
41
- color: #333;
67
+ .pb-editor .pb-editor-body .pb-page-frame iframe.page-frame {
68
+ border: 0;
42
69
  }
43
- .pb-page .pb-section .pb-block .pb-text-widget.empty .text {
44
- color: #999;
70
+ .pb-editor .pb-editor-body .bs-tab-sheet .tab-bar .tabs {
71
+ padding-top: 0;
45
72
  }
46
- .pb-page .pb-section .pb-block .pb-image-widget {
47
- width: 100%;
73
+ .pb-editor .pb-editor-body .bs-horizontal-layout-resizer {
74
+ transform: scaleX(6);
48
75
  }
49
- .pb-page .pb-section .pb-block .pb-image-widget .image {
50
- width: 100%;
76
+ .pb-editor .pb-editor-body .bs-horizontal-layout-resizer .resize-line {
77
+ background-color: var(--color-canvas-frame-bg);
51
78
  }
52
- .pb-page .pb-section .pb-block .pb-image-widget .empty {
53
- height: 100px;
54
- background-color: #eee;
55
- text-align: center;
79
+ .pb-editor .pb-editor-body .pb-navigator {
80
+ position: relative;
81
+ height: 1px;
82
+ overflow-y: auto;
83
+ padding: 8px 0;
84
+ flex-grow: 1;
85
+ border: 1px solid var(--border-light);
86
+ border-right: 0 none;
87
+ }
88
+ .pb-editor .pb-editor-body .pb-navigator:focus {
89
+ outline: none;
56
90
  }
57
- .pb-page .pb-section .pb-block .pb-image-widget .empty span {
58
- font-size: 40px;
59
- color: #999;
60
- line-height: 100px;
61
- vertical-align: middle;
91
+ .pb-editor .pb-editor-body .pb-sidebar {
92
+ width: 300px;
93
+ overflow: auto;
94
+ border: 1px solid var(--border-light);
95
+ border-left: 0 none;
62
96
  }
63
- .pb-page .pb-section .pb-block .pb-product-list-widget {
64
- width: 100%;
65
- display: flex;
66
- flex-direction: row;
67
- flex-wrap: wrap;
68
- justify-content: flex-start;
69
- align-items: center;
97
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties {
98
+ padding: 0;
70
99
  }
71
- .pb-page .pb-section .pb-block .pb-product-list-widget .product {
72
- width: 95%;
73
- margin: 0 auto;
74
- padding-top: 8px;
75
- padding-bottom: 8px;
100
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-title {
101
+ padding: 8px;
102
+ background-color: var(--blue-bg);
103
+ color: var(--blue);
104
+ font-weight: 600;
76
105
  }
77
- .pb-page .pb-section .pb-block .pb-product-list-widget img {
78
- width: 100%;
106
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group:not(:empty) {
107
+ padding: 8px;
108
+ border-bottom: 1px solid var(--border-light);
109
+ }
110
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-title > label {
111
+ padding: 4px 0;
112
+ font-size: 90%;
113
+ font-weight: 600;
79
114
  }
80
- .pb-page .pb-section .pb-block .pb-product-list-widget .name {
81
- margin-top: 8px;
82
- font-size: 14px;
115
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor {
116
+ padding: 4px 0;
117
+ font-size: 0.9em;
83
118
  }
84
- .pb-page .pb-section .pb-block .pb-product-list-widget .price {
85
- margin-top: 8px;
86
- font-size: 14px;
119
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor .title {
120
+ padding: 0 0 8px 0;
121
+ }
122
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor .title label {
123
+ min-width: 6em;
124
+ max-width: 6em;
125
+ padding-right: 0.5em;
87
126
  font-weight: bold;
88
127
  }
89
- .pb-page .pb-section .pb-block .pb-product-list-widget .empty {
90
- height: 200px;
91
- background-color: #eee;
92
- text-align: center;
128
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor .sub-title label {
129
+ min-width: 6em;
130
+ max-width: 6em;
131
+ padding-right: 0.5em;
132
+ font-weight: 400;
133
+ }
134
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor {
135
+ padding: 4px 0;
136
+ font-size: 0.9em;
137
+ }
138
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor > .title {
139
+ padding: 0 0 8px 0;
140
+ }
141
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor > .title > label {
142
+ min-width: 6em;
143
+ max-width: 6em;
144
+ padding-right: 0.5em;
145
+ font-weight: 600;
93
146
  }
94
- .pb-page .pb-section .pb-block .pb-product-list-widget .empty span {
95
- font-size: 40px;
96
- color: #999;
97
- line-height: 200px;
98
- vertical-align: middle;
147
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor:nth-child(n+2) {
148
+ margin-top: 4px;
99
149
  }
100
- .pb-page .pb-section .pb-block .pb-page .mobile .pb-product-list-widget .product-wrapper {
150
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-color .color {
101
151
  width: 50%;
102
152
  }
103
- .pb-page .pb-section .pb-block .pb-page .pc .pb-product-list-widget .product-wrapper {
104
- width: 25%;
153
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-image button.select-button {
154
+ color: var(--white);
155
+ border: none;
156
+ padding: 4px 12px;
157
+ cursor: pointer;
158
+ line-height: 1;
159
+ width: 120px;
160
+ height: 26px;
161
+ background-color: var(--primary);
162
+ border-radius: 2px;
163
+ }
164
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-image .input-area {
165
+ height: 24px;
166
+ }
167
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-product button {
168
+ color: var(--white);
169
+ border: none;
170
+ padding: 4px 12px;
171
+ cursor: pointer;
172
+ line-height: 1;
173
+ width: 200px;
174
+ height: 26px;
175
+ background-color: var(--primary);
176
+ border-radius: 2px;
177
+ }
178
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-product .input-area {
179
+ height: 24px;
180
+ }
181
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-select .bs-select {
182
+ display: block;
183
+ }
184
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-select .input-area {
185
+ height: 24px;
186
+ }
187
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-text .bs-text-input {
188
+ display: block;
189
+ }
190
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-text .input-area {
191
+ height: 24px;
192
+ }
193
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-text .bs-text-input {
194
+ display: block;
195
+ }
196
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-text .input-area {
197
+ height: 24px;
198
+ }
199
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-html button {
200
+ color: var(--white);
201
+ border: none;
202
+ padding: 4px 12px;
203
+ cursor: pointer;
204
+ line-height: 1;
205
+ width: 100px;
206
+ height: 26px;
207
+ background-color: var(--primary);
208
+ border-radius: 2px;
209
+ }
210
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-html .input-area {
211
+ height: 24px;
212
+ }
213
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-background .color {
214
+ flex: 1;
215
+ display: flex;
216
+ flex-direction: row;
217
+ align-items: center;
105
218
  }
106
- .pb-page .pb-section .pb-block .pb-login-widget {
107
- height: 200px;
108
- text-align: center;
219
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-background .color label {
220
+ display: inline-block;
221
+ width: 80px;
109
222
  }
110
- .pb-page .pb-section .pb-block .pb-login-widget h3 {
111
- font-size: 32px;
112
- font-weight: bold;
113
- color: #ccc;
114
- line-height: 200px;
115
- vertical-align: middle;
223
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-background .color .bs-text-input {
224
+ flex-grow: 0;
225
+ width: 104px;
116
226
  }
117
- .pb-page .pb-section .pb-block .pb-editor {
118
- outline: 1px dashed #ccc;
227
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-background .image label {
228
+ display: inline-block;
229
+ width: 80px;
119
230
  }
120
- .pb-page .pb-section .pb-block:hover:not(:has(.pb-widget:hover)) {
121
- background-color: #f0f0f0;
231
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-background .image .bs-button.select-button {
232
+ width: 132px;
122
233
  }
123
- .pb-page .pb-section .pb-block.selected {
124
- outline: 1px solid #8e44ad;
125
- outline-offset: 1px;
126
- z-index: 999;
234
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-background .image .url {
235
+ word-break: break-word !important;
236
+ word-wrap: break-word !important;
127
237
  }
128
- .pb-page .pb-section .pb-editor {
129
- outline: 1px dashed #ccc;
238
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-border .color {
239
+ width: 50%;
240
+ flex: 1;
241
+ display: flex;
242
+ flex-direction: row;
243
+ align-items: center;
130
244
  }
131
- .pb-page .pb-section:hover:not(:has(.pb-block:hover)) {
132
- background-color: #f0f0f0;
245
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-border .color .bs-text-input {
246
+ flex-grow: 1;
247
+ }
248
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-border .corner-icon {
249
+ width: 1.1em;
250
+ height: 1.1em;
251
+ fill: #000;
252
+ }
253
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-media button.select-button {
254
+ color: var(--white);
255
+ border: none;
256
+ padding: 4px 12px;
257
+ cursor: pointer;
258
+ line-height: 1;
259
+ width: 120px;
260
+ height: 26px;
261
+ background-color: var(--primary);
262
+ border-radius: 2px;
263
+ }
264
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-media .input-area {
265
+ height: 24px;
266
+ }
267
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .group-editor-media .url {
268
+ word-break: break-word !important;
269
+ word-wrap: break-word !important;
270
+ }
271
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-local-part .title {
272
+ font-weight: 600;
273
+ }
274
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-local-part button {
275
+ color: var(--white);
276
+ border: none;
277
+ padding: 0 4px;
278
+ cursor: pointer;
279
+ line-height: 1;
280
+ height: 24px;
281
+ background-color: var(--primary);
282
+ }
283
+ .pb-editor .pb-editor-body .pb-sidebar .pb-sidebar-properties .pb-sidebar-property-group .property-editor-local-part .input-area {
284
+ height: 24px;
285
+ }
286
+ .pb-editor .pb-editor-body .pb-color-picker {
287
+ display: inline-flex;
288
+ position: relative;
133
289
  }
134
- .pb-page .pb-section.selected {
135
- outline: 1px solid #e67e22;
136
- outline-offset: 1px;
137
- z-index: 999;
290
+ .pb-editor .pb-editor-body .pb-color-picker .buttons {
291
+ display: flex;
292
+ padding: 0;
138
293
  }
139
- .pb-page .pb-section.pb-section-static {
140
- width: 100%;
294
+ .pb-editor .pb-editor-body .pb-color-picker .buttons button {
295
+ width: 24px;
296
+ height: 24px;
141
297
  display: flex;
142
298
  justify-content: center;
143
299
  align-items: center;
144
- pointer-events: none;
145
300
  }
146
- .pb-page .pb-section.pb-section-static:after {
147
- content: "";
301
+ .pb-editor .pb-editor-body .pb-color-picker .buttons button.none {
302
+ position: relative;
303
+ overflow: hidden;
304
+ }
305
+ .pb-editor .pb-editor-body .pb-color-picker .buttons button.none::after {
306
+ content: " ";
307
+ display: inline-block;
308
+ width: 100px;
309
+ height: 1px;
310
+ background: var(--red);
148
311
  position: absolute;
149
- left: 0;
150
- right: 0;
151
- top: 0;
152
- bottom: 0;
153
- background-color: rgba(0, 0, 0, 0.2);
312
+ top: 50%;
313
+ left: 50%;
314
+ transform: translate(-50%, -50%) rotate(45deg);
154
315
  }
155
- .pb-page .pb-section-static .pb-widget {
156
- outline: none;
316
+ .pb-editor .pb-editor-body .pb-color-picker .buttons button.picker-button {
317
+ border: 1px solid var(--border);
157
318
  }
158
- .pb-page .pb-page-content.selected {
159
- outline: 2px solid #4998f8;
160
- outline-offset: 5px;
319
+ .pb-editor .pb-editor-body .pb-color-picker .buttons button i {
320
+ font-size: 1.4rem;
161
321
  }
162
- .pb-page * {
163
- box-sizing: border-box;
322
+ .pb-editor .pb-editor-body .pb-color-picker .sketch-wrap {
323
+ width: 220px;
324
+ position: absolute;
325
+ z-index: 10;
326
+ left: -12px;
327
+ top: 24px;
328
+ white-space: break-spaces;
329
+ text-align: left;
330
+ }
331
+ .pb-part-add-modal .section-title {
332
+ font-weight: 700;
333
+ }
334
+ .pb-part-add-modal .group .part {
335
+ border: 1px solid var(--border-light);
336
+ border-radius: 4px;
337
+ padding: 8px 16px;
338
+ cursor: pointer;
339
+ }
340
+ .pb-html-editor-modal .preview {
341
+ width: 50%;
342
+ }
343
+ .pb-html-editor-modal .preview .content {
344
+ border: solid 1px var(--border);
164
345
  }
165
- .pb-viewer {
346
+ .pb-html-editor-modal .preview .content iframe {
166
347
  width: 100%;
348
+ height: 100%;
167
349
  }
168
- .pb-editor .pb-editor-body {
350
+ .pb-html-editor-modal .editor {
351
+ width: 50%;
352
+ }
353
+ .pb-html-editor-modal .editor .bs-tab-sheet > :nth-child(2) {
354
+ height: 0;
355
+ }
356
+ .pb-html-editor-modal .editor .tags {
357
+ height: 60%;
358
+ }
359
+ .pb-html-editor-modal .editor .style {
360
+ height: 40%;
361
+ }
362
+ .pb-html-editor-modal .editor .bs-code-editor {
169
363
  height: 100%;
170
364
  }
171
- .pb-editor .pb-editor-body .tab-bar {
172
- padding: 0;
365
+ .pb-html-editor-modal .buttons {
366
+ text-align: center;
367
+ }
368
+ .pb-html-editor-modal .buttons button {
369
+ color: var(--white);
370
+ border: none;
371
+ padding: 4px 12px;
372
+ cursor: pointer;
373
+ line-height: 1;
374
+ height: 28px;
375
+ background-color: var(--primary);
376
+ }
377
+ .pb-youtube-modal .flex-grow-1.overflow-auto {
378
+ overflow: hidden !important;
379
+ }
380
+ .pb-youtube-modal button {
381
+ color: var(--white);
382
+ border: none;
383
+ padding: 4px 12px;
384
+ cursor: pointer;
385
+ line-height: 1;
386
+ height: 28px;
387
+ background-color: var(--primary);
173
388
  }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export declare function toCssLength(value: string): string;
package/package.json CHANGED
@@ -1,13 +1,14 @@
1
1
  {
2
2
  "name": "@g1cloud/page-builder-editor",
3
3
  "private": false,
4
- "version": "1.0.0-alpha.1",
4
+ "version": "1.0.0-alpha.100",
5
5
  "engins": {
6
6
  "node": ">= 20.0.0"
7
7
  },
8
8
  "files": [
9
9
  "dist",
10
- "css"
10
+ "css",
11
+ "scss"
11
12
  ],
12
13
  "type": "module",
13
14
  "module": "dist/page-builder-editor.js",
@@ -16,18 +17,21 @@
16
17
  "author": "zag@g1project.net",
17
18
  "license": "LicenseRef-LICENSE",
18
19
  "peerDependencies": {
19
- "@g1cloud/bluesea": "5.0.0-alpha.38"
20
+ "@g1cloud/bluesea": "5.0.0-beta.21",
21
+ "vue3-youtube": "^0.1.9"
20
22
  },
21
23
  "dependencies": {
22
24
  "@ckpack/vue-color": "^1.5.0",
25
+ "@ctrl/tinycolor": "^3.6.1",
23
26
  "dayjs": "^1.11.11",
24
27
  "mitt": "^3.0.1",
25
28
  "short-unique-id": "^5.0.3",
26
- "vue": "^3.4.26",
27
- "vue-router": "^4.3.2",
29
+ "vite-svg-loader": "^5.1.0",
30
+ "vue": "^3.5.3",
31
+ "vue-router": "^4.4.3",
28
32
  "vue3-click-away": "^1.2.4",
29
33
  "yjs": "^13.6.14",
30
- "@g1cloud/page-builder-viewer": "1.0.0-alpha.1"
34
+ "@g1cloud/page-builder-viewer": "1.0.0-alpha.100"
31
35
  },
32
36
  "devDependencies": {
33
37
  "@types/node": "^20.12.7",
@@ -35,7 +39,7 @@
35
39
  "jsdom": "^24.0.0",
36
40
  "sass": "^1.75.0",
37
41
  "typescript": "^5.4.5",
38
- "vite": "^5.2.11",
42
+ "vite": "^5.4.3",
39
43
  "vite-plugin-dts": "^3.9.0",
40
44
  "vitest": "^1.5.0",
41
45
  "vitest-canvas-mock": "^0.3.3",
@@ -43,7 +47,9 @@
43
47
  },
44
48
  "scripts": {
45
49
  "dev": "vite",
46
- "build": "vue-tsc && vite build",
50
+ "build": "pnpm build:vue && pnpm build:scss",
51
+ "build:vue": "vue-tsc && vite build",
52
+ "build:scss": "sass scss/page-builder-editor.scss:css/page-builder-editor.css --no-source-map && sass scss/page-builder-viewer.scss:css/page-builder-viewer.css --no-source-map",
47
53
  "preview": "vite preview"
48
54
  }
49
55
  }
@@ -0,0 +1,29 @@
1
+
2
+ .pb-canvas-wrapper {
3
+ background-color: var(--color-canvas-frame-bg);
4
+ border-top: 1px solid var(--color-canvas-frame-bg);
5
+ border-bottom: 1px solid var(--color-canvas-frame-bg);
6
+ flex-grow: 1;
7
+ min-width: 0;
8
+ width: 0;
9
+ height: 100%;
10
+ padding: 20px;
11
+ outline: none;
12
+ overflow: auto;
13
+ }
14
+
15
+ .pb-canvas {
16
+ display: flex;
17
+ flex-direction: row;
18
+ transform-origin: top left;
19
+ width: fit-content;
20
+ height: 100%;
21
+ margin: 0;
22
+ }
23
+
24
+ .pb-page-frame {
25
+
26
+ iframe.page-frame {
27
+ border: 0;
28
+ }
29
+ }
@@ -12,9 +12,21 @@
12
12
  background-color: #f0f0f0;
13
13
  }
14
14
 
15
- &.selected {
16
- outline: 1px solid #8e44ad;
17
- outline-offset: 1px;
15
+ //&.selected {
16
+ // outline: 2px solid #4998f8;
17
+ // outline-offset: -2px;
18
+ // z-index: 999;
19
+ //}
20
+
21
+ &.selected::before {
22
+ content: "";
23
+ position: absolute;
24
+ top: 0;
25
+ left: 0;
26
+ right: 0;
27
+ bottom: 0;
28
+ border: 2px solid #4998f8;
18
29
  z-index: 999;
30
+ pointer-events: none;
19
31
  }
20
32
  }