@mixd-id/web-scaffold 0.2.250801013 → 0.2.250801014

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 (185) hide show
  1. package/docs/components/AIDashboard.md +472 -0
  2. package/docs/components/WebPageBuilder.md +125 -0
  3. package/package.json +7 -30
  4. package/src/components/AIChat.vue +479 -0
  5. package/src/components/AIChatItem.vue +168 -0
  6. package/src/components/AIChatTextbox.vue +56 -0
  7. package/src/components/AIDashboard.vue +1113 -0
  8. package/src/components/Card.vue +3 -1
  9. package/src/components/Chart.vue +2 -1
  10. package/src/components/CodeEditor.vue +121 -13
  11. package/src/components/ColorPicker.vue +6 -2
  12. package/src/components/Dashboard.vue +493 -212
  13. package/src/components/Dropdown.vue +0 -1
  14. package/src/components/HTMLEditor.vue +9 -1
  15. package/src/components/List.vue +226 -58
  16. package/src/components/MarkdownEdit.vue +123 -4
  17. package/src/components/PresetSelectorFilterItem.vue +1 -0
  18. package/src/components/TextWithTag.vue +3 -3
  19. package/src/components/TreeView.vue +1 -1
  20. package/src/components/VirtualTable.vue +166 -75
  21. package/src/index.js +3 -55
  22. package/src/instructions/dashboard.js +203 -0
  23. package/src/utils/ai-chat-answer.mjs +240 -0
  24. package/src/utils/ai-chat.js +167 -0
  25. package/src/utils/ai-dashboard-chat.mjs +371 -0
  26. package/src/utils/ai-dashboard.js +321 -0
  27. package/src/utils/ai-list-chat.mjs +407 -0
  28. package/src/utils/dashboard.js +13 -0
  29. package/src/utils/list.mjs +146 -91
  30. package/src/utils/preset-selector.mjs +183 -27
  31. package/src/utils/wss.js +0 -2
  32. package/src/widgets/ColumnSelector.vue +22 -33
  33. package/src/widgets/LLMChat.vue +327 -0
  34. package/src/widgets/PresetBar.vue +31 -8
  35. package/src/widgets/PresetBarPivot.vue +147 -15
  36. package/src/widgets/PresetBarPivotColumnEdit.vue +8 -19
  37. package/src/widgets/PresetBarPivotValueEdit.vue +172 -0
  38. package/src/widgets/PresetSelector.vue +8 -4
  39. package/src/widgets/WebPageBuilder.vue +153 -352
  40. package/docs/components/ArrayList.md +0 -39
  41. package/docs/components/Box.md +0 -15
  42. package/docs/components/ChartBar.md +0 -34
  43. package/docs/components/DayTimeRange.md +0 -20
  44. package/docs/components/ErrorText.md +0 -15
  45. package/docs/components/FBLogin.md +0 -21
  46. package/docs/components/GHeatMaps.md +0 -16
  47. package/docs/components/GSignIn.md +0 -21
  48. package/docs/components/GmapsDirection.md +0 -20
  49. package/docs/components/IconMenu.md +0 -20
  50. package/src/components/ArrayList.vue +0 -49
  51. package/src/components/Box.vue +0 -34
  52. package/src/components/ChartBar.vue +0 -192
  53. package/src/components/DayTimeRange.vue +0 -126
  54. package/src/components/ErrorText.vue +0 -57
  55. package/src/components/FBLogin.vue +0 -194
  56. package/src/components/GHeatMaps.vue +0 -317
  57. package/src/components/GSignIn.vue +0 -166
  58. package/src/components/GmapsDirection.vue +0 -191
  59. package/src/components/IconMenu.vue +0 -95
  60. package/src/components/IconPlus.vue +0 -89
  61. package/src/components/Image360.vue +0 -140
  62. package/src/components/ImageFullScreen.vue +0 -101
  63. package/src/components/ImportModal.vue +0 -260
  64. package/src/components/ListContextMenu.vue +0 -88
  65. package/src/components/LogViewerItem.vue +0 -116
  66. package/src/components/MultilineText.vue +0 -174
  67. package/src/components/PageBuilder.vue +0 -449
  68. package/src/components/SplitPane.vue +0 -129
  69. package/src/components/TabView.vue +0 -105
  70. package/src/components/TableView.vue +0 -200
  71. package/src/components/TableViewHead.vue +0 -159
  72. package/src/components/Test.vue +0 -23
  73. package/src/components/TextEditor.vue +0 -85
  74. package/src/components/Tooltip.vue +0 -143
  75. package/src/components/TreeViewItem1.vue +0 -282
  76. package/src/components/VirtualScroll.vue +0 -282
  77. package/src/configs/dashboard/bar.js +0 -10
  78. package/src/configs/dashboard/collection-1.js +0 -5
  79. package/src/configs/dashboard/data-table.js +0 -9
  80. package/src/configs/dashboard/doughnut.js +0 -7
  81. package/src/configs/dashboard/gheatmaps.js +0 -9
  82. package/src/configs/dashboard/grid-2.js +0 -34
  83. package/src/configs/dashboard/grid-3.js +0 -34
  84. package/src/configs/dashboard/grid-4.js +0 -34
  85. package/src/configs/dashboard/grid.js +0 -15
  86. package/src/configs/dashboard/metric.js +0 -10
  87. package/src/configs/dashboard/pie.js +0 -7
  88. package/src/configs/dashboard/polar-area.js +0 -7
  89. package/src/configs/dashboard/virtual-table.js +0 -9
  90. package/src/configs/icons-fa.json +0 -12
  91. package/src/middleware/http/trim-string.js +0 -20
  92. package/src/mixin/ready-state.js +0 -37
  93. package/src/stores/components.js +0 -36
  94. package/src/stores/datasource.js +0 -11
  95. package/src/utils/event-bus.js +0 -8
  96. package/src/utils/helpers.cjs +0 -635
  97. package/src/utils/importer.js +0 -209
  98. package/src/utils/listview.js +0 -1287
  99. package/src/utils/preset-selector.cjs +0 -1455
  100. package/src/utils/preset-selector.js +0 -1452
  101. package/src/utils/queue.js +0 -63
  102. package/src/utils/web.js +0 -50
  103. package/src/utils/web.mjs +0 -120
  104. package/src/widgets/BackgroundSetting.vue +0 -132
  105. package/src/widgets/BorderSetting.vue +0 -201
  106. package/src/widgets/BotEditor/BotEditorActions.vue +0 -163
  107. package/src/widgets/BotEditor/BotEditorSettings.vue +0 -21
  108. package/src/widgets/BotEditor.vue +0 -248
  109. package/src/widgets/BoxSetting.vue +0 -53
  110. package/src/widgets/CheckoutSetting.vue +0 -46
  111. package/src/widgets/ComponentPropertyLabel.vue +0 -35
  112. package/src/widgets/ComponentPropertySelector.vue +0 -115
  113. package/src/widgets/ComponentSetting3.vue +0 -231
  114. package/src/widgets/EffectSetting.vue +0 -94
  115. package/src/widgets/FiltersSetting.vue +0 -88
  116. package/src/widgets/Header.vue +0 -15
  117. package/src/widgets/Header0.vue +0 -41
  118. package/src/widgets/Header0Setting.vue +0 -75
  119. package/src/widgets/HeaderSetting.vue +0 -102
  120. package/src/widgets/LayoutSetting.vue +0 -251
  121. package/src/widgets/LogViewer.vue +0 -85
  122. package/src/widgets/MarginPaddingSetting.vue +0 -58
  123. package/src/widgets/MarginSetting.vue +0 -142
  124. package/src/widgets/MenuEditor.vue +0 -251
  125. package/src/widgets/PaddingSetting.vue +0 -142
  126. package/src/widgets/SizingSetting.vue +0 -306
  127. package/src/widgets/SpacingSetting.vue +0 -77
  128. package/src/widgets/StyleSetting.vue +0 -543
  129. package/src/widgets/StyleSetting2.vue +0 -90
  130. package/src/widgets/TransitionSetting.vue +0 -64
  131. package/src/widgets/TypographySetting.vue +0 -334
  132. package/src/widgets/UserActionBuilder/UserActionCondition.vue +0 -99
  133. package/src/widgets/UserActionBuilder/UserActionConsole.vue +0 -97
  134. package/src/widgets/UserActionBuilder/UserActionItem.vue +0 -273
  135. package/src/widgets/UserActionBuilder/UserActionOutput.vue +0 -150
  136. package/src/widgets/UserActionBuilder/UserActionOutputDelay.vue +0 -27
  137. package/src/widgets/UserActionBuilder/UserActionOutputLog.vue +0 -28
  138. package/src/widgets/UserActionBuilder/UserActionOutputReply.vue +0 -112
  139. package/src/widgets/UserActionBuilder/UserActionProps.vue +0 -213
  140. package/src/widgets/UserActionBuilder.vue +0 -314
  141. package/src/widgets/WebPageBuilder4/BackgroundColorSetting.vue +0 -54
  142. package/src/widgets/WebPageBuilder4/BackgroundPositionSetting.vue +0 -75
  143. package/src/widgets/WebPageBuilder4/BackgroundRepeatSetting.vue +0 -72
  144. package/src/widgets/WebPageBuilder4/BackgroundSizeSetting.vue +0 -72
  145. package/src/widgets/WebPageBuilder4/BlurSetting.vue +0 -72
  146. package/src/widgets/WebPageBuilder4/BorderColorSetting.vue +0 -54
  147. package/src/widgets/WebPageBuilder4/BorderRadiusSetting.vue +0 -75
  148. package/src/widgets/WebPageBuilder4/BorderSizeSetting.vue +0 -69
  149. package/src/widgets/WebPageBuilder4/BorderStyleSetting.vue +0 -72
  150. package/src/widgets/WebPageBuilder4/BoxShadowSetting.vue +0 -73
  151. package/src/widgets/WebPageBuilder4/ButtonSetting.vue +0 -65
  152. package/src/widgets/WebPageBuilder4/CarouselSetting.vue +0 -178
  153. package/src/widgets/WebPageBuilder4/DisplaySetting.vue +0 -76
  154. package/src/widgets/WebPageBuilder4/FlexAlignSetting.vue +0 -71
  155. package/src/widgets/WebPageBuilder4/FlexDirectionSetting.vue +0 -70
  156. package/src/widgets/WebPageBuilder4/FlexJustifySetting.vue +0 -74
  157. package/src/widgets/WebPageBuilder4/FlexPropertySetting.vue +0 -71
  158. package/src/widgets/WebPageBuilder4/FlexSetting.vue +0 -96
  159. package/src/widgets/WebPageBuilder4/FlexWrapSetting.vue +0 -69
  160. package/src/widgets/WebPageBuilder4/GapSetting.vue +0 -75
  161. package/src/widgets/WebPageBuilder4/GrayscaleSetting.vue +0 -68
  162. package/src/widgets/WebPageBuilder4/GridSetting.vue +0 -216
  163. package/src/widgets/WebPageBuilder4/HeightSetting.vue +0 -98
  164. package/src/widgets/WebPageBuilder4/ImageSetting.vue +0 -102
  165. package/src/widgets/WebPageBuilder4/MarginSetting.vue +0 -73
  166. package/src/widgets/WebPageBuilder4/MaxHeightSetting.vue +0 -82
  167. package/src/widgets/WebPageBuilder4/MaxWidthSetting.vue +0 -90
  168. package/src/widgets/WebPageBuilder4/MinHeightSetting.vue +0 -81
  169. package/src/widgets/WebPageBuilder4/MinWidthSetting.vue +0 -101
  170. package/src/widgets/WebPageBuilder4/MultiValueSetting.vue +0 -163
  171. package/src/widgets/WebPageBuilder4/OpacitySetting.vue +0 -77
  172. package/src/widgets/WebPageBuilder4/OverflowSetting.vue +0 -81
  173. package/src/widgets/WebPageBuilder4/PaddingSetting.vue +0 -57
  174. package/src/widgets/WebPageBuilder4/PositionSetting.vue +0 -191
  175. package/src/widgets/WebPageBuilder4/PropertySetting.vue +0 -176
  176. package/src/widgets/WebPageBuilder4/TextSetting.vue +0 -72
  177. package/src/widgets/WebPageBuilder4/TreeView.vue +0 -46
  178. package/src/widgets/WebPageBuilder4/TreeViewItem.vue +0 -303
  179. package/src/widgets/WebPageBuilder4/WebPageComponentSelector.vue +0 -141
  180. package/src/widgets/WebPageBuilder4/WebPagePropertySelector.vue +0 -168
  181. package/src/widgets/WebPageBuilder4/WidthSetting.vue +0 -105
  182. package/src/widgets/WebPageBuilder4/ZIndexSetting.vue +0 -72
  183. package/src/widgets/WebPagePreview.vue +0 -295
  184. package/src/widgets/WebPageSelector.vue +0 -173
  185. package/src/widgets/WebTemplateCreator.vue +0 -156
@@ -1,231 +0,0 @@
1
- <template>
2
- <div :class="$style.comp">
3
-
4
- <div class="p-5 flex flex-col gap-4">
5
- <div class="flex flex-row gap-1 items-start cursor-pointer">
6
- <div v-if="!item.props.name" class="flex-1">
7
- <strong class="flex-1 text-text-400 line-clamp-1">{{ item.type }}</strong>
8
- </div>
9
- <div v-else class="flex-1 flex flex-col">
10
- <small class="text-text-400 text-xs">{{ item.type }}</small>
11
- <strong class="flex-1 text-text-400 line-clamp-1">{{ item.props.name }}</strong>
12
- </div>
13
- <button type="button" class="text-primary" @click="log(item)">Log</button>
14
- </div>
15
-
16
- <div class="flex flex-row gap-4">
17
- <div>
18
- <label class="text-text-400">Enabled</label>
19
- <Switch v-model="item.props.enabled" class="mt-2" />
20
- </div>
21
- <div class="flex-1">
22
- <label class="text-text-400">Name</label>
23
- <Textbox v-model="item.props.name" class="mt-2" />
24
- </div>
25
- </div>
26
- </div>
27
-
28
- <component :is="`${item.type}Setting`"
29
- :config="config"
30
- :item="item"
31
- class="p-5 flex flex-col gap-4"
32
- @change="$emit('change')" />
33
-
34
- <component v-for="itemType in additionalSettings"
35
- :is="itemType"
36
- :config="config"
37
- :item="item"
38
- :removable="true"
39
- class="p-5 flex flex-col gap-4" />
40
-
41
- <div class="text-center">
42
- <ComponentPropertySelector :propertyGroups="propertyGroups"
43
- ref="componentPropertySelector"
44
- :excludes="Object.keys(item.props)"
45
- @add="addProperty" />
46
-
47
- <button type="button" class="text-primary p-3"
48
- @click="$refs.componentPropertySelector.open">
49
- <svg width="16" height="16" class="fill-primary inline" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path d="M376 232H216V72c0-4.42-3.58-8-8-8h-32c-4.42 0-8 3.58-8 8v160H8c-4.42 0-8 3.58-8 8v32c0 4.42 3.58 8 8 8h160v160c0 4.42 3.58 8 8 8h32c4.42 0 8-3.58 8-8V280h160c4.42 0 8-3.58 8-8v-32c0-4.42-3.58-8-8-8z"/></svg>
50
- Add Property
51
- </button>
52
- </div>
53
-
54
- </div>
55
- </template>
56
-
57
- <script>
58
-
59
- import ComponentPropertySelector from "./ComponentPropertySelector.vue";
60
-
61
- export default{
62
-
63
- components: {ComponentPropertySelector},
64
-
65
- emits: [ 'change' ],
66
-
67
- inject: [ 'imageSrc', 'uploadImage', 'viewTypes' ],
68
-
69
- provide(){
70
- return {
71
- initPropValue: this.initPropValue
72
- }
73
- },
74
-
75
- props: {
76
- config: Object,
77
-
78
- item: {
79
- type: Object,
80
- required: true
81
- },
82
- },
83
-
84
- computed: {
85
-
86
- additionalSettings(){
87
-
88
- let additionalSettings = {}
89
- for(let group in this.propertyGroups){
90
- for(let key in this.propertyGroups[group]){
91
- if(Array.isArray(this.item.props[key])){
92
- group = group.replace(/\W/g, '')
93
- additionalSettings[`${group}Setting`] = 1
94
- }
95
- }
96
- }
97
-
98
- if(additionalSettings[`${this.item.type}Setting`])
99
- delete additionalSettings[`${this.item.type}Setting`]
100
-
101
- return Object.keys(additionalSettings)
102
- },
103
-
104
- viewType(){
105
- return this.config.viewType
106
- },
107
-
108
- },
109
-
110
- data(){
111
- return {
112
- _config: {},
113
-
114
- types: {
115
- type: Array,
116
- default: [ 1, 2, 4 ]
117
- },
118
-
119
- propertyGroups: {
120
- 'Layout': {
121
- aspectRatio: { text:'Aspect Ratio' },
122
- position: { text:'Position' },
123
- display: { text:'Display' },
124
- overflow: { text:'Overflow' },
125
- top: { text:'Top' },
126
- left: { text:'Left' },
127
- right: { text:'Right' },
128
- bottom: { text:'Bottom' },
129
- zIndex: { text:'Z Index' },
130
- },
131
- 'Flex': {
132
- flex: { text:'Flex' },
133
- flexAlign: { text:'Align' },
134
- flexBasis: { text:'Basis' },
135
- flexJustify: { text:'Justify' },
136
- flexDirection: { text:'Direction' },
137
- flexWrap: { text:'Wrap' },
138
- flexGap: { text:'Gap' },
139
- },
140
- 'Grid': {
141
- colSpan: { text:'Col span' },
142
- gridGap: { text:'Gap' },
143
- rowSpan: { text:'Row span' },
144
- },
145
- 'Background': {
146
- bgColor: { text:'Background Color' },
147
- bgPosition: { text:'Background Position' },
148
- bgRepeat: { text:'Background Repeat' },
149
- bgSize: { text:'Background Size' },
150
- },
151
- 'Border': {
152
- bdColor: { text:'Border Color' },
153
- bdSize: { text:'Border Size' },
154
- bdRadius: { text:'Border Radius' },
155
- bdStyle: { text:'Border Style' },
156
- outlineStyle: { text:'Outline Style' },
157
- outlineWidth: { text:'Outline Width' },
158
- },
159
- 'Transition': {
160
- animate: { text:'Animation' },
161
- },
162
- 'Effect': {
163
- boxShadow: { text:'Box Shadow' },
164
- opacity: { text:'Opacity' },
165
- },
166
- 'Spacing': {
167
- padding: { text:'Padding' },
168
- margin: { text:'Margin' },
169
- },
170
- 'Sizing': {
171
- height: { text:'Height' },
172
- width: { text:'Width' },
173
- maxHeight: { text:'Max Height' },
174
- maxWidth: { text:'Max Width' },
175
- minHeight: { text:'Min Height' },
176
- minWidth: { text:'Min Width' },
177
- },
178
- 'Typography': {
179
- fontFamily: { text:'Font Family' },
180
- fontSize: { text:'Font Size' },
181
- fontStyle: { text:'Font Style' },
182
- fontWeight: { text:'Font Weight' },
183
- letterSpacing: { text:'Letter Spacing' },
184
- lineClamp: { text:'Line Clamp' },
185
- lineHeight: { text:'Line Height' },
186
- textAlign: { text:'Text Align' },
187
- textDecoration: { text:'Text Decoration' },
188
- textOverflow: { text:'Text Overflow' },
189
- textTransform: { text:'Text Transform' },
190
- whitespace: { text:'Whitespace' },
191
- verticalAlign: { text:'Vertical Align' },
192
- },
193
- 'Filters': {
194
- blur: { text:'Blur' },
195
- grayscale: { text:'Grayscale' },
196
- },
197
- 'Svg': {
198
- fill: { text:'Fill' },
199
- stroke: { text:'Stroke' },
200
- strokeWidth: { text:'Stroke Width' },
201
- },
202
- },
203
- }
204
- },
205
-
206
- methods: {
207
-
208
- addProperty(prop){
209
- this.initPropValue(this.item.props, prop.name)
210
- this.$refs.componentPropertySelector.close()
211
- },
212
-
213
- initPropValue(props, name, defaultValue = ''){
214
- if(!Array.isArray(props[name]) ||
215
- props[name].length !== Object.keys(this.viewTypes).length)
216
- props[name] = Object.assign(Object.keys(this.viewTypes).map(_ => JSON.parse(JSON.stringify(defaultValue))), props[name] ?? [])
217
- }
218
-
219
- }
220
-
221
- }
222
-
223
- </script>
224
-
225
- <style module>
226
-
227
- .comp{
228
- @apply flex-1 flex flex-col divide-y divide-border-50;
229
- }
230
-
231
- </style>
@@ -1,94 +0,0 @@
1
- <template>
2
- <div class="grid grid-cols-2 gap-4">
3
-
4
- <div v-if="'boxShadow' in item.props">
5
- <ComponentPropertyLabel label="Box Shadow"
6
- :removable="removable"
7
- @remove="delete item.props.boxShadow" />
8
- <Dropdown v-for="(_, idx) in viewTypes"
9
- v-show="viewType === _.value"
10
- v-model="boxShadow[idx]"
11
- @change="$emit('change')">
12
- <option value="">Default</option>
13
- <option :value="`${viewType}shadow-none`">None</option>
14
- <option :value="`${viewType}shadow-sm`">Small</option>
15
- <option :value="`${viewType}shadow`">Medium</option>
16
- <option :value="`${viewType}shadow-lg`">Large</option>
17
- <option :value="`${viewType}shadow-xl`">Extra Large</option>
18
- <option :value="`${viewType}shadow-2xl`">Extra Large 2</option>
19
- <option :value="`${viewType}shadow-inner`">Inner</option>
20
- </Dropdown>
21
- </div>
22
-
23
- <div v-if="'opacity' in item.props">
24
- <ComponentPropertyLabel label="Opacity"
25
- :removable="removable"
26
- @remove="delete item.props.opacity" />
27
- <Dropdown v-for="(_, idx) in viewTypes"
28
- v-show="viewType === _.value"
29
- v-model="opacity[idx]"
30
- @change="$emit('change')">
31
- <option value="">Default</option>
32
- <option :value="`${viewType}opacity-0`">0</option>
33
- <option :value="`${viewType}opacity-10`">10%</option>
34
- <option :value="`${viewType}opacity-20`">20%</option>
35
- <option :value="`${viewType}opacity-30`">30%</option>
36
- <option :value="`${viewType}opacity-40`">40%</option>
37
- <option :value="`${viewType}opacity-50`">50%</option>
38
- <option :value="`${viewType}opacity-60`">60%</option>
39
- <option :value="`${viewType}opacity-70`">70%</option>
40
- <option :value="`${viewType}opacity-80`">80%</option>
41
- <option :value="`${viewType}opacity-90`">90%</option>
42
- <option :value="`${viewType}opacity-100`">100%</option>
43
- </Dropdown>
44
- </div>
45
-
46
- </div>
47
- </template>
48
-
49
- <script>
50
-
51
- export default{
52
-
53
- emits: [ 'change' ],
54
-
55
- inject: [ 'viewTypes', 'initPropValue' ],
56
-
57
- props: {
58
- config: Object,
59
-
60
- item: {
61
- type: Object,
62
- required: true
63
- },
64
-
65
- removable: Boolean
66
- },
67
-
68
- computed: {
69
-
70
- boxShadow(){
71
- this.initPropValue(this.item.props, 'boxShadow')
72
- return this.item.props.boxShadow
73
- },
74
-
75
- opacity(){
76
- this.initPropValue(this.item.props, 'opacity')
77
- return this.item.props.opacity
78
- },
79
-
80
- viewType(){
81
- return this.config.viewType
82
- },
83
-
84
- },
85
-
86
- data(){
87
- return {
88
- _config: {},
89
- }
90
- }
91
-
92
- }
93
-
94
- </script>
@@ -1,88 +0,0 @@
1
- <template>
2
- <div class="grid grid-cols-2 gap-4">
3
-
4
- <div v-if="'blur' in item.props">
5
- <ComponentPropertyLabel label="Blur"
6
- :removable="removable"
7
- @remove="delete item.props.blur" />
8
- <Dropdown v-for="(_, idx) in viewTypes"
9
- v-show="viewType === _.value"
10
- v-model="blur[idx]"
11
- @change="$emit('change')">
12
- <option value="">Default</option>
13
- <option :value="`${viewType}blur-none`">None</option>
14
- <option :value="`${viewType}blur-sm`">Sm</option>
15
- <option :value="`${viewType}blur`">Md</option>
16
- <option :value="`${viewType}blur-lg`">Lg</option>
17
- <option :value="`${viewType}blur-xl`">Xl</option>
18
- <option :value="`${viewType}blur-2xl`">2xl</option>
19
- </Dropdown>
20
- </div>
21
-
22
- <div v-if="'grayscale' in item.props">
23
- <ComponentPropertyLabel label="Grayscale"
24
- :removable="removable"
25
- @remove="delete item.props.grayscale" />
26
- <Dropdown v-for="(_, idx) in viewTypes"
27
- v-show="viewType === _.value"
28
- v-model="grayscale[idx]"
29
- @change="$emit('change')">
30
- <option value="">Default</option>
31
- <option :value="`${viewType}grayscale-0`">Not Grayscale</option>
32
- <option :value="`${viewType}grayscale`">Grayscale</option>
33
- </Dropdown>
34
- </div>
35
-
36
- </div>
37
- </template>
38
-
39
- <script>
40
-
41
- import ComponentPropertyLabel from "./ComponentPropertyLabel.vue";
42
- import Dropdown from "../components/Dropdown.vue";
43
-
44
- export default{
45
- components: {Dropdown, ComponentPropertyLabel},
46
-
47
- emits: [ 'change' ],
48
-
49
- inject: [ 'viewTypes', 'initPropValue' ],
50
-
51
- props: {
52
- config: Object,
53
-
54
- item: {
55
- type: Object,
56
- required: true
57
- },
58
-
59
- removable: Boolean
60
- },
61
-
62
- computed: {
63
-
64
- blur(){
65
- this.initPropValue(this.item.props, 'blur')
66
- return this.item.props.blur
67
- },
68
-
69
- grayscale(){
70
- this.initPropValue(this.item.props, 'grayscale')
71
- return this.item.props.grayscale
72
- },
73
-
74
- viewType(){
75
- return this.config.viewType
76
- },
77
-
78
- },
79
-
80
- data(){
81
- return {
82
- _config: {},
83
- }
84
- }
85
-
86
- }
87
-
88
- </script>
@@ -1,15 +0,0 @@
1
- <template>
2
- <component :is="variant" />
3
- </template>
4
-
5
- <script>
6
-
7
- export default{
8
-
9
- props: {
10
- variant: String
11
- }
12
-
13
- }
14
-
15
- </script>
@@ -1,41 +0,0 @@
1
- <template>
2
- <div :class="$style.comp">
3
- <component v-for="(item, idx) in items"
4
- :is="item.type"
5
- :key="item.key"
6
- :="item" />
7
- </div>
8
- </template>
9
-
10
- <script>
11
-
12
- import {componentMixin} from "../mixin/component";
13
-
14
- export default{
15
-
16
- mixins: [ componentMixin ],
17
-
18
- props: {
19
- images: Object,
20
- items: Array,
21
- },
22
-
23
- computed: {
24
-
25
- logoUrl(){
26
- return import.meta.env.VITE_IMAGE_HOST + '/' + (this.images ?? {}).logo
27
- }
28
-
29
- }
30
-
31
- }
32
-
33
- </script>
34
-
35
- <style module>
36
-
37
- .comp{
38
- @apply bg-white flex flex-row items-center;
39
- }
40
-
41
- </style>
@@ -1,75 +0,0 @@
1
- <template>
2
- <div class="flex flex-col gap-6">
3
-
4
- </div>
5
- </template>
6
-
7
- <script>
8
-
9
- export default{
10
-
11
- emits: [ 'change' ],
12
-
13
- inject: [ 'alert', 'imageSrc', 'openComponentSelector', 'uploadImage' ],
14
-
15
- props: {
16
-
17
- item: {
18
- type: Object,
19
- required: true
20
- },
21
-
22
- viewType: String,
23
-
24
- viewTypes: Array,
25
-
26
- },
27
-
28
- computed: {
29
-
30
- logoSrc(){
31
- if(!this.item.props.images){
32
- this.item.props.images = {}
33
- }
34
-
35
- return typeof this.item.props.images .logo === 'string' ?
36
- import.meta.env.VITE_IMAGE_HOST + '/' + this.item.props.images.logo :
37
- this.item.props.images.logo
38
- },
39
-
40
- menu(){
41
- if(!this.item.props.menu){
42
- this.item.props.menu = []
43
- }
44
-
45
- return this.item.props.menu
46
- },
47
-
48
- icons(){
49
- if(!this.item.props.icons){
50
- this.item.props.icons = []
51
- }
52
-
53
- return this.item.props.icons
54
- },
55
-
56
- },
57
-
58
- methods: {
59
-
60
-
61
- }
62
-
63
- }
64
-
65
- </script>
66
-
67
- <style module>
68
-
69
- .imageBg{
70
- @apply p-2 bg-white;
71
- background-image: radial-gradient(rgba(var(--primary-500)) 1px, transparent 1px);
72
- background-size: calc(10 * 1px) calc(10 * 1px);
73
- }
74
-
75
- </style>
@@ -1,102 +0,0 @@
1
- <template>
2
- <div :class="$style.comp">
3
-
4
- <div class="flex flex-col gap-6 p-6">
5
-
6
- <div class="flex flex-col gap-1">
7
- <small class="flex-1 text-text-400">Model</small>
8
- <Dropdown v-model="item.props.variant"
9
- @change="$emit('change')">
10
- <option value="Header1">Model 1</option>
11
- <option value="Header2">Model 2</option>
12
- </Dropdown>
13
- </div>
14
-
15
- <component :is="`${item.props.variant}Setting`"
16
- :item="item"
17
- :view-type="viewType"
18
- :view-types="viewTypes"
19
- :view-index="viewIndex"
20
- @change="$emit('change')" />
21
-
22
- </div>
23
-
24
- <ComponentSetting2 :item="item"
25
- :view-type="viewType"
26
- :view-types="viewTypes"
27
- :view-index="viewIndex"
28
- defaultDisplay="block"
29
- @change="$emit('change')" />
30
-
31
- </div>
32
- </template>
33
-
34
- <script>
35
-
36
- export default{
37
-
38
- emits: [ 'change' ],
39
-
40
- inject: [ 'alert', 'imageSrc', 'uploadImage' ],
41
-
42
- props: {
43
-
44
- item: {
45
- type: Object,
46
- required: true
47
- },
48
-
49
- viewType: String,
50
-
51
- viewIndex: Number,
52
-
53
- viewTypes: Array,
54
-
55
- },
56
-
57
- computed: {
58
-
59
- logoSrc(){
60
- if(!this.item.props.images){
61
- this.item.props.images = {}
62
- }
63
-
64
- return typeof this.item.props.images .logo === 'string' ?
65
- import.meta.env.VITE_IMAGE_HOST + '/' + this.item.props.images.logo :
66
- this.item.props.images.logo
67
- },
68
-
69
- menu(){
70
- if(!this.item.props.menu){
71
- this.item.props.menu = []
72
- }
73
-
74
- return this.item.props.menu
75
- },
76
-
77
- icons(){
78
- if(!this.item.props.icons){
79
- this.item.props.icons = []
80
- }
81
-
82
- return this.item.props.icons
83
- },
84
-
85
- },
86
-
87
- methods: {
88
-
89
-
90
- }
91
-
92
- }
93
-
94
- </script>
95
-
96
- <style module>
97
-
98
- .comp{
99
- @apply flex flex-col divide-y divide-border-50;
100
- }
101
-
102
- </style>