@syncfusion/ej2-react-form-builder 0.1.0-beta → 35.1.37

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 (160) hide show
  1. package/README.md +81 -36
  2. package/diConfig.json +148 -0
  3. package/dist/ej2-react-form-builder.min.js +10 -0
  4. package/dist/ej2-react-form-builder.umd.min.js +11 -0
  5. package/dist/ej2-react-form-builder.umd.min.js.map +1 -0
  6. package/dist/es6/ej2-react-form-builder.es2015.js +60 -0
  7. package/dist/es6/ej2-react-form-builder.es2015.js.map +1 -0
  8. package/form-builder.d.ts +4 -0
  9. package/form-builder.js +4 -0
  10. package/index.d.ts +2 -4
  11. package/index.js +2 -4
  12. package/license +6 -13
  13. package/package.json +19 -43
  14. package/src/form-builder/formbuilder.component.d.ts +37 -0
  15. package/src/form-builder/formbuilder.component.js +50 -0
  16. package/src/form-builder/index.d.ts +2 -0
  17. package/src/form-builder/index.js +2 -0
  18. package/src/form-builder/toolboxitems-directive.d.ts +28 -0
  19. package/src/form-builder/toolboxitems-directive.js +47 -0
  20. package/src/global.js +1 -0
  21. package/src/index.d.ts +2 -16
  22. package/src/index.js +2 -6
  23. package/Common/CheckboxGroup.d.ts +0 -13
  24. package/Common/CheckboxGroup.js +0 -50
  25. package/Common/ConditionalRuleEngine.d.ts +0 -296
  26. package/Common/ConditionalRuleEngine.js +0 -566
  27. package/Common/CustomTabComponent.d.ts +0 -17
  28. package/Common/CustomTabComponent.js +0 -30
  29. package/Common/CustomValidationEngine.d.ts +0 -58
  30. package/Common/CustomValidationEngine.js +0 -146
  31. package/Common/DataGridComponent.d.ts +0 -20
  32. package/Common/DataGridComponent.js +0 -273
  33. package/Common/FormValidator.d.ts +0 -485
  34. package/Common/FormValidator.js +0 -575
  35. package/Common/MinMaxRuleEngine.d.ts +0 -105
  36. package/Common/MinMaxRuleEngine.js +0 -365
  37. package/Common/StaticHtmlRenderer.d.ts +0 -14
  38. package/Common/StaticHtmlRenderer.js +0 -24
  39. package/Common/expressions/DependencyTracker.d.ts +0 -30
  40. package/Common/expressions/DependencyTracker.js +0 -128
  41. package/Common/expressions/ExpressionEngine.d.ts +0 -95
  42. package/Common/expressions/ExpressionEngine.js +0 -506
  43. package/Common/expressions/ExpressionParser.d.ts +0 -41
  44. package/Common/expressions/ExpressionParser.js +0 -269
  45. package/Common/expressions/useGridExpressions.d.ts +0 -12
  46. package/Common/expressions/useGridExpressions.js +0 -71
  47. package/Common/globalFormId.d.ts +0 -26
  48. package/Common/globalFormId.js +0 -45
  49. package/Common/json-converter.d.ts +0 -444
  50. package/Common/json-converter.js +0 -1184
  51. package/Common/parser.d.ts +0 -98
  52. package/Common/parser.js +0 -753
  53. package/Common/utils.d.ts +0 -130
  54. package/Common/utils.js +0 -574
  55. package/src/FormBuilder.d.ts +0 -211
  56. package/src/FormBuilder.js +0 -1299
  57. package/src/components/Database/ConnectionForm.d.ts +0 -8
  58. package/src/components/Database/ConnectionForm.js +0 -28
  59. package/src/components/TopBar.d.ts +0 -10
  60. package/src/components/TopBar.js +0 -7
  61. package/src/components/icons/ComponentIcons.d.ts +0 -44
  62. package/src/components/icons/ComponentIcons.js +0 -40
  63. package/src/components/layout/FormFieldWrapper.d.ts +0 -41
  64. package/src/components/layout/FormFieldWrapper.js +0 -112
  65. package/src/components/layout/LeftPane.d.ts +0 -23
  66. package/src/components/layout/LeftPane.js +0 -310
  67. package/src/components/layout/ListBoxPane.d.ts +0 -24
  68. package/src/components/layout/ListBoxPane.js +0 -94
  69. package/src/components/layout/MainSection.d.ts +0 -39
  70. package/src/components/layout/MainSection.js +0 -1766
  71. package/src/components/layout/Preview.d.ts +0 -12
  72. package/src/components/layout/Preview.js +0 -337
  73. package/src/components/layout/RightPane.d.ts +0 -22
  74. package/src/components/layout/RightPane.js +0 -370
  75. package/src/components/theme/ThemeSwitcher.d.ts +0 -14
  76. package/src/components/theme/ThemeSwitcher.js +0 -24
  77. package/src/components/theme/theme-constant.d.ts +0 -37
  78. package/src/components/theme/theme-constant.js +0 -23
  79. package/src/config/component-properties.json +0 -4929
  80. package/src/config/form-setting.json +0 -56
  81. package/src/config/locale.d.ts +0 -449
  82. package/src/config/locale.js +0 -449
  83. package/src/context/FormSchemaContext.d.ts +0 -32
  84. package/src/context/FormSchemaContext.js +0 -155
  85. package/src/context/LocalizationContext.d.ts +0 -27
  86. package/src/context/LocalizationContext.js +0 -43
  87. package/src/context/ThemeContext.d.ts +0 -23
  88. package/src/context/ThemeContext.js +0 -161
  89. package/src/context/contexts.d.ts +0 -6
  90. package/src/context/contexts.js +0 -6
  91. package/src/context/defaultFormSchema.d.ts +0 -6
  92. package/src/context/defaultFormSchema.js +0 -20
  93. package/src/defaultPalette.d.ts +0 -9
  94. package/src/defaultPalette.js +0 -45
  95. package/src/defaultTemplate.d.ts +0 -3
  96. package/src/defaultTemplate.js +0 -185
  97. package/src/import/schemaImportUtils.d.ts +0 -24
  98. package/src/import/schemaImportUtils.js +0 -121
  99. package/src/types/ActionButtons.d.ts +0 -44
  100. package/src/types/ActionButtons.js +0 -27
  101. package/src/types/ComponentProperties.d.ts +0 -33
  102. package/src/types/ComponentProperties.js +0 -2
  103. package/src/types/FormSchema.d.ts +0 -585
  104. package/src/types/FormSchema.js +0 -147
  105. package/src/types/connection.d.ts +0 -19
  106. package/src/types/connection.js +0 -9
  107. package/src/utils/AttributesEditor.d.ts +0 -13
  108. package/src/utils/AttributesEditor.js +0 -117
  109. package/src/utils/ButtonGroupEditor.d.ts +0 -15
  110. package/src/utils/ButtonGroupEditor.js +0 -141
  111. package/src/utils/ChoiceBasedFieldEditor.d.ts +0 -16
  112. package/src/utils/ChoiceBasedFieldEditor.js +0 -87
  113. package/src/utils/ClipboardHelper.d.ts +0 -26
  114. package/src/utils/ClipboardHelper.js +0 -83
  115. package/src/utils/ColumnBuilder.d.ts +0 -11
  116. package/src/utils/ColumnBuilder.js +0 -153
  117. package/src/utils/ColumnSpanEditor.d.ts +0 -8
  118. package/src/utils/ColumnSpanEditor.js +0 -98
  119. package/src/utils/ConditionDataEditor.d.ts +0 -29
  120. package/src/utils/ConditionDataEditor.js +0 -177
  121. package/src/utils/ConditionalEditorUtils.d.ts +0 -27
  122. package/src/utils/ConditionalEditorUtils.js +0 -310
  123. package/src/utils/ConditionsEditor.d.ts +0 -20
  124. package/src/utils/ConditionsEditor.js +0 -571
  125. package/src/utils/CustomAccordion.d.ts +0 -13
  126. package/src/utils/CustomAccordion.js +0 -38
  127. package/src/utils/CustomValidationEditor.d.ts +0 -11
  128. package/src/utils/CustomValidationEditor.js +0 -208
  129. package/src/utils/DataSourceCollector.d.ts +0 -3
  130. package/src/utils/DataSourceCollector.js +0 -252
  131. package/src/utils/ExpressionEditor.d.ts +0 -13
  132. package/src/utils/ExpressionEditor.js +0 -99
  133. package/src/utils/FormSettingsPanel.d.ts +0 -9
  134. package/src/utils/FormSettingsPanel.js +0 -60
  135. package/src/utils/LookupConfig.d.ts +0 -11
  136. package/src/utils/LookupConfig.js +0 -159
  137. package/src/utils/MinMaxValueEditor.d.ts +0 -25
  138. package/src/utils/MinMaxValueEditor.js +0 -188
  139. package/src/utils/OptionsEditor.d.ts +0 -8
  140. package/src/utils/OptionsEditor.js +0 -79
  141. package/src/utils/PropertyRenderer.d.ts +0 -22
  142. package/src/utils/PropertyRenderer.js +0 -210
  143. package/src/utils/ValueRenderer.d.ts +0 -2
  144. package/src/utils/ValueRenderer.js +0 -91
  145. package/src/utils/ej2DbAdaptor.d.ts +0 -6
  146. package/src/utils/ej2DbAdaptor.js +0 -38
  147. package/src/utils/mappingHeuristics.d.ts +0 -10
  148. package/src/utils/mappingHeuristics.js +0 -33
  149. package/src/utils/renderComponent.d.ts +0 -18
  150. package/src/utils/renderComponent.js +0 -300
  151. package/styles/tailwind3.css +0 -67
  152. package/styles/themes/action-buttons.css +0 -110
  153. package/styles/themes/datagrid.css +0 -380
  154. package/styles/themes/drag-reorder.css +0 -248
  155. package/styles/themes/import-dialog.css +0 -292
  156. package/styles/themes/index.css +0 -658
  157. package/styles/themes/left-pane.css +0 -253
  158. package/styles/themes/options-editor.css +0 -63
  159. package/styles/themes/preview.css +0 -702
  160. package/styles/themes/property-dialog.css +0 -371
@@ -1,702 +0,0 @@
1
- .main-section {
2
- flex: 1;
3
- display: flex;
4
- flex-direction: column;
5
- height: calc(100vh - var(--topbar-height));
6
- background-color: rgb(var(--sf-color-background));
7
- overflow: hidden;
8
- }
9
-
10
- .action-btn {
11
- padding: 0.5rem 1rem;
12
- border-radius: var(--border-radius);
13
- font-size: var(--sf-font-size);
14
- cursor: pointer;
15
- transition: all 0.2s ease;
16
- }
17
-
18
- .action-btn:hover {
19
- background-color: var(--dragover-background-color);
20
- }
21
-
22
- .main-content {
23
- flex: 1;
24
- overflow-y: auto;
25
- margin-top: 48px;
26
- scrollbar-width: thin;
27
- background-color: rgb(var(--sf-color-background));
28
- }
29
-
30
- /* Form Preview Area */
31
- .form-preview-area {
32
- min-width: 100%;
33
- width: fit-content;
34
- background: var(--preview-area-color);
35
- min-height: 100%;
36
- padding: 1.5rem 2.5rem 1.5rem 2.5rem;
37
- transition: background-color 0.2s ease;
38
- }
39
-
40
- .builder-container.e-component .form-preview-area:has(.empty-state) {
41
- height: 100%;
42
- }
43
-
44
- .preview-main-content .form-preview-area {
45
- height: calc(100dvh - 96px);
46
- overflow-y: auto;
47
- }
48
-
49
- .builder-container.e-component .preview-main-content .form-preview-area {
50
- height: 100%;
51
- overflow-y: auto;
52
- }
53
-
54
- .preview-main-content .form-renderer-container {
55
- background-color: var(--sf-bg-color);
56
- }
57
-
58
- .form-preview-area.dragging-over .empty-state .form-dropzone {
59
- border: 2px dashed var(--dragover-border-color);
60
- background: var(--dragover-background-color);
61
- }
62
-
63
- .form-preview-area.empty {
64
- display: flex;
65
- align-items: center;
66
- justify-content: center;
67
- }
68
-
69
- .empty-state {
70
- background: var(--form-container-bg);
71
- padding: 30px;
72
- min-height: calc(100dvh - var(--topbar-height) - 6rem);
73
- margin: 0 auto;
74
- text-align: center;
75
- align-content: center;
76
- overflow-x: auto;
77
- overflow-y: hidden;
78
- width: var(--form-width)
79
- }
80
-
81
- .builder-container.e-component .empty-state {
82
- min-height: unset;
83
- height: 100%;
84
- }
85
-
86
-
87
- .empty-state p {
88
- margin: 0;
89
- }
90
-
91
- .form-components {
92
- background: var(--form-container-bg);
93
- padding: 30px;
94
- padding-bottom: 40px;
95
- min-height: calc(100% - var(--topbar-height) - 6rem);
96
- margin: 0 auto;
97
- overflow-x: auto;
98
- overflow-y: hidden;
99
- display: flex;
100
- max-width: var(--form-width);
101
- flex-direction: column;
102
- gap: 1.5rem;
103
- }
104
-
105
- .builder-container.e-component .form-components {
106
- min-height: unset;
107
- height: 100%;
108
- }
109
-
110
- .form-renderer-container {
111
- margin: 0 auto;
112
- overflow-x: auto;
113
- overflow-y: hidden;
114
- min-height: calc(100dvh - var(--topbar-height) - 6rem);
115
- }
116
-
117
- .form-field {
118
- display: flex;
119
- flex-direction: column;
120
- gap: 0.5rem;
121
- }
122
-
123
- /* Field content wrapper for label positioning */
124
- .field-content {
125
- display: flex;
126
- width: 100%;
127
- }
128
-
129
- .field-content.label-top {
130
- flex-direction: column;
131
- gap: 0.5rem;
132
- }
133
-
134
- .field-content.label-bottom {
135
- flex-direction: column-reverse;
136
- gap: 0.5rem;
137
- }
138
-
139
- .field-content.label-left {
140
- flex-direction: row;
141
- align-items: center;
142
- gap: 1rem;
143
- }
144
-
145
- .field-content.label-right {
146
- flex-direction: row-reverse;
147
- align-items: center;
148
- gap: 1rem;
149
- justify-content: flex-end;
150
- }
151
-
152
- /* When label is left/right, input should flex-grow */
153
- .field-content.label-left .field-input,
154
- .field-content.label-right .field-input {
155
- flex: 1;
156
- min-width: 0;
157
- }
158
-
159
- .field-label {
160
- font-size: var(--sf-font-size);
161
- font-weight: 500;
162
- color: var(--jsonview-text-color);
163
- margin: 0;
164
- cursor: pointer;
165
- flex-shrink: 0;
166
- overflow: hidden;
167
- text-overflow: ellipsis;
168
- }
169
-
170
- .field-description {
171
- font-size: var(--sf-font-size-sm);
172
- color: var(--jsonview-text-color);
173
- }
174
-
175
- .field-content:not(.layout-component):has(.e-small:not(.e-btn)) .field-label {
176
- font-size: var(--sf-font-size-sm);
177
- }
178
-
179
- .field-content:not(.layout-component):has(.e-small:not(.e-btn)) .field-description {
180
- font-size: var(--sf-font-size-xs);
181
- }
182
-
183
- /* bigger */
184
- .field-content:not(.layout-component):has(.e-bigger:not(.e-btn)) .field-label {
185
- font-size: var(--sf-font-size-lg);
186
- }
187
-
188
- .field-content:not(.layout-component):has(.e-bigger:not(.e-btn)) .field-description {
189
- font-size: var(--sf-font-size);
190
- }
191
-
192
-
193
- .field-label .required {
194
- color: #ef4444;
195
- margin-left: 0.25rem;
196
- }
197
-
198
- .field-input {
199
- width: 100%;
200
- }
201
-
202
- .field-input .e-switch-wrapper,
203
- .field-input .e-checkbox-wrapper {
204
- margin: 5px;
205
- margin-left: 0px;
206
- }
207
-
208
- /* Split View Container */
209
- .split-view-container {
210
- padding: 30px 60px ;
211
- height: 100%;
212
- display: flex;
213
- flex-direction: column;
214
- background-color: var(--preview-area-color);
215
- overflow: hidden;
216
- }
217
-
218
- .builder-container.e-component .split-view-container {
219
- height: 100%;
220
- }
221
-
222
- .split-header {
223
- display: flex;
224
- align-items: center;
225
- justify-content: center;
226
- padding: 0.75rem 1.25rem;
227
- background-color: #2d2d2d;
228
- border-bottom: 1px solid #3d3d3d;
229
- }
230
-
231
- .download-btn {
232
- padding: 0.5rem 1.25rem;
233
- font-size: 0.875rem;
234
- border: 1px solid var(--dragover-border-color);
235
- border-radius: 0.375rem;
236
- background-color: #3d3d3d;
237
- color: #e0e0e0;
238
- cursor: pointer;
239
- transition: all 0.2s ease;
240
- font-weight: 500;
241
- }
242
-
243
- .download-btn:hover {
244
- border-color: #4fc3f7;
245
- background-color: var(--dragover-border-color);
246
- color: #ffffff;
247
- }
248
-
249
- .split-panels {
250
- flex: 1;
251
- display: grid;
252
- border-radius: 12px;
253
- grid-template-columns: 1fr;
254
- gap: 0;
255
- overflow: hidden;
256
- }
257
-
258
- .split-panel {
259
- display: flex;
260
- flex-direction: column;
261
- border-right: 1px solid var(--jsonview-border-color);
262
- overflow: hidden;
263
- }
264
-
265
- .split-panel:last-child {
266
- border-right: none;
267
- }
268
-
269
- .split-panel .json-header {
270
- background-color: var(--jsonview-header-color);
271
- border-bottom: 1px solid var(--jsonview-border-color);
272
- height: 48px;
273
- padding: 0.875rem 1rem;
274
- }
275
-
276
- .split-panel .json-title {
277
- color: rgb(var(--sf-color-on-surface));
278
- font-size: 0.875rem;
279
- }
280
-
281
- .split-panel .json-title::before {
282
- font-size: 1rem;
283
- }
284
-
285
- .split-panel .json-content {
286
- flex: 1;
287
- font-size: 12px;
288
- padding: 1rem;
289
- }
290
-
291
- /* JSON Viewer */
292
- .json-viewer {
293
- height: 100%;
294
- display: flex;
295
- flex-direction: column;
296
- overflow: hidden;
297
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
298
- }
299
-
300
- .json-header {
301
- display: flex;
302
- align-items: center;
303
- justify-content: space-between;
304
- padding: 1rem 1.25rem;
305
- background-color: #2d2d2d;
306
- border-bottom: 1px solid #3d3d3d;
307
- }
308
-
309
- .json-title {
310
- font-size: 1rem;
311
- font-weight: 500;
312
- color: #ffffff;
313
- display: flex;
314
- align-items: center;
315
- gap: 0.5rem;
316
- }
317
-
318
- .json-title::before {
319
- content: '{ }';
320
- font-size: 1.125rem;
321
- }
322
-
323
- .json-content {
324
- flex: 1;
325
- margin: 0;
326
- padding: 1.25rem;
327
- font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
328
- font-size: 13px;
329
- line-height: 1.6;
330
- color: var(--jsonview-text-color);
331
- background-color: rgb(var(--sf-color-surface));
332
- overflow: auto;
333
- white-space: pre;
334
- word-wrap: normal;
335
- }
336
-
337
- /* Syncfusion Component Overrides */
338
- .field-input .e-input-group,
339
- .field-input .e-control-wrapper {
340
- width: 100%;
341
- }
342
-
343
- .field-input .e-float-input {
344
- width: 100%;
345
- }
346
-
347
- /* Light mode - JSON viewer stays dark themed */
348
- [data-theme="light"] .json-viewer {
349
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
350
- }
351
-
352
- /* Radio Button Group */
353
- .form-field .field-input>.e-radio {
354
- display: flex;
355
- flex-direction: column;
356
- gap: 0.75rem;
357
- }
358
-
359
- .form-field .e-radio+label {
360
- margin-left: 0.5rem;
361
- }
362
-
363
-
364
-
365
- /* Layout Component Styles */
366
- .form-panel {
367
- border: 1px solid rgb(var(--sf-color-line-color));
368
- border-radius: var(--border-radius);
369
- padding: 0;
370
- margin: 0;
371
- }
372
-
373
- .panel-legend {
374
- font-size: 1.5rem;
375
- font-weight: 600;
376
- color: var(--jsonview-text-color);
377
- padding: 0 0.5rem;
378
- margin-left: 0.5rem;
379
- }
380
-
381
- .panel-drop-zone,
382
- .tab-drop-zone {
383
- padding: 0.8rem;
384
- border: 2px dashed rgba(var(--sf-color-on-surface-variant), 0.3);
385
- border-radius: var(--border-radius);
386
- margin: 0.5rem;
387
- transition: all 0.2s ease;
388
- background-color: rgba(var(--sf-color-surface), 0.5);
389
- }
390
-
391
- .panel-drop-zone.empty,
392
- .tab-drop-zone.empty {
393
- min-height: 150px;
394
- display: flex;
395
- align-items: center;
396
- justify-content: center;
397
- }
398
-
399
- .table-cell.drop-zone:has(> .drop-zone-text) {
400
- align-content: center;
401
- text-align: center;
402
- height: 100px;
403
- padding: 1rem;
404
- }
405
-
406
- .panel-drop-zone.dragging-over.empty,
407
- .tab-drop-zone.dragging-over.empty {
408
- border-color: var(--dragover-border-color);
409
- background-color: var(--dragover-background-color);
410
- }
411
-
412
- .panel-children {
413
- display: flex;
414
- flex-direction: column;
415
- gap: 1rem;
416
- width: 100%;
417
- }
418
-
419
- .panel-child-field {
420
- display: flex;
421
- flex-direction: column;
422
- gap: 0.5rem;
423
- }
424
-
425
- .drop-zone-text {
426
- color: var(--jsonview-text-color);
427
- opacity: 0.5;
428
- font-size: 0.875rem;
429
- margin: 0;
430
- }
431
-
432
- /* Table Layout */
433
- .form-table {
434
- width: 100%;
435
- border: 1px solid rgb(var(--sf-color-line-color));
436
- border-radius: var(--border-radius);
437
- overflow-x: auto;
438
- }
439
-
440
- .table-grid {
441
- display: table;
442
- width: 100%;
443
- border-collapse: separate;
444
- border-spacing: 0px;
445
- overflow-x: auto;
446
- overflow-y: hidden;
447
- }
448
-
449
- .row {
450
- display: table-row;
451
- background: transparent;
452
- }
453
-
454
- .col, [class^="col-"] {
455
- display: table-cell;
456
- vertical-align: top;
457
- min-height: 100%;
458
- }
459
-
460
- .col {
461
- width: auto;
462
- }
463
- .col-1 {
464
- width: 8.33333333%;
465
- }
466
- .col-2 {
467
- width: 16.66666667%;
468
- }
469
- .col-3 {
470
- width: 25%;
471
- }
472
- .col-4 {
473
- width: 33.33333333%;
474
- }
475
- .col-5 {
476
- width: 41.66666667%;
477
- }
478
- .col-6 {
479
- width: 50%;
480
- }
481
- .col-7 {
482
- width: 58.33333333%;
483
- }
484
- .col-8 {
485
- width: 66.66666667%;
486
- }
487
- .col-9 {
488
- width: 75%;
489
- }
490
- .col-10 {
491
- width: 83.33333333%;
492
- }
493
- .col-11 {
494
- width: 91.66666667%;
495
- }
496
- .col-12 {
497
- width: auto;
498
- }
499
-
500
- .table-row {
501
- border-bottom: 1px solid rgb(var(--sf-color-line-color));
502
- }
503
-
504
- .table-row:last-child {
505
- border-bottom: none;
506
- }
507
-
508
- .table-cell {
509
- padding: .8rem;
510
- border-right: 1px solid rgb(var(--sf-color-line-color));
511
- align-items: center;
512
- }
513
-
514
- .table-cell:last-child {
515
- border-right: none;
516
- }
517
-
518
- .table-cell.drop-zone {
519
- border: 2px dashed rgba(var(--sf-color-on-surface-variant), 0.3);
520
- background-color: rgba(var(--sf-color-surface), 0.5);
521
- transition: all 0.2s ease;
522
- }
523
-
524
- .table-cell.drop-zone.dragging-over:has(.drop-zone-text) {
525
- border-color: var(--dragover-border-color);
526
- background-color: var(--dragover-background-color);
527
- border-width: 2px;
528
- }
529
-
530
- .table-row:last-child .table-cell.drop-zone {
531
- border-bottom: 2px dashed rgba(var(--sf-color-on-surface-variant), 0.3);
532
- }
533
-
534
- .table-row:last-child .table-cell.drop-zone.dragging-over:has(.drop-zone-text) {
535
- border-bottom: 2px dashed var(--dragover-border-color);
536
- }
537
-
538
- /* Nested components in table cells */
539
- .table-cell .nested-components {
540
- width: 100%;
541
- display: flex;
542
- flex-direction: column;
543
- gap: 1rem;
544
- }
545
-
546
- .table-cell .nested-field {
547
- display: flex;
548
- flex-direction: column;
549
- gap: 0.25rem;
550
- }
551
-
552
- .table-cell .nested-field-label {
553
- font-size: 0.875rem;
554
- font-weight: 500;
555
- color: var(--jsonview-text-color);
556
- cursor: pointer;
557
- margin: 0;
558
- }
559
-
560
- .table-cell .nested-field-label .required {
561
- color: #ef4444;
562
- margin-left: 0.25rem;
563
- }
564
-
565
- .table-cell .nested-field-input {
566
- width: 100%;
567
- }
568
-
569
- /* Tabs Layout with Syncfusion */
570
- .form-tabs {
571
- width: 100%;
572
- }
573
-
574
- .form-tabs .e-content {
575
- padding: 0;
576
- }
577
-
578
- .form-tabs .e-content .e-item {
579
- padding: 0;
580
- }
581
-
582
- .tab-drop-zone {
583
- padding: .8rem;
584
- border: 2px dashed rgba(var(--sf-color-on-surface-variant), 0.3);
585
- border-radius: var(--border-radius);
586
- display: flex;
587
- flex-direction: column;
588
- transition: all 0.2s ease;
589
- background-color: rgba(var(--sf-color-surface), 0.5);
590
- }
591
-
592
- .tab-drop-zone.empty {
593
- align-items: center;
594
- justify-content: center;
595
- }
596
-
597
- .tab-children {
598
- width: 100%;
599
- display: flex;
600
- flex-direction: column;
601
- gap: 1rem;
602
- }
603
-
604
- .tab-child-field {
605
- display: flex;
606
- flex-direction: column;
607
- gap: 0.5rem;
608
- }
609
-
610
- /* Layout components inside other layouts - no label */
611
- .panel-child-field .field-input>.form-panel,
612
- .panel-child-field .field-input>.form-table,
613
- .panel-child-field .field-input>.form-tabs-container,
614
- .tab-child-field .field-input>.form-panel,
615
- .tab-child-field .field-input>.form-table,
616
- .tab-child-field .field-input>.form-tabs-container,
617
- .nested-field-input>.form-panel,
618
- .nested-field-input>.form-table,
619
- .nested-field-input>.form-tabs-container {
620
- margin-top: 0;
621
- }
622
-
623
- .form-field-draggable.is-being-dragged .panel-drop-zone:hover,
624
- .form-field-draggable.is-being-dragged .tab-drop-zone:hover,
625
- .form-field-draggable.is-being-dragged .table-cell:hover {
626
- border-color: rgba(var(--sf-color-on-surface-variant), 0.3) !important;
627
- background-color: transparent !important;
628
- }
629
-
630
-
631
- .e-tooltip .e-msg-icon::before {
632
- content: "\e800";
633
- font-family: "e-icons";
634
- color: var(--color-sf-msg-icon-color);
635
- font-size: 16px;
636
- height: 16px;
637
- margin: 3px 4px;
638
- display: flex;
639
- line-height: 16px;
640
- }
641
-
642
- .e-dropdown-popup {
643
- background: transparent;
644
- z-index: 9999;
645
- }
646
-
647
- .e-dropdown-popup ul {
648
- background-color: rgb(var(--sf-color-background));
649
- }
650
-
651
- .e-control.e-dialog {
652
- overflow: auto;
653
- }
654
-
655
- .e-dialog .e-dlg-header {
656
- width: 97%;
657
- }
658
-
659
- .e-dlg-header .db-dialog * {
660
- font-size: 14px;
661
- }
662
-
663
- .e-dlg-header .db-dialog {
664
- padding: 0px 18px;
665
- }
666
-
667
- .e-card .e-card-content {
668
- padding: 10px !important;
669
- }
670
-
671
- .e-card > .e-card-content > .panel-drop-zone {
672
- margin: 0px;
673
- }
674
-
675
- .e-tab:not(.custom-tab) .e-content > .e-item.e-active {
676
- height: calc(100dvh - var(--topbar-height) - var(--topbar-height) - 6rem);
677
- scrollbar-color: var(--scrollbar-thumb-hover) rgb(var(--sf-color-background));
678
- }
679
-
680
- .preview-main-content .e-tab:not(.custom-tab) .e-content > .e-item.e-active {
681
- height: unset;
682
- }
683
-
684
- .builder-container.e-component .e-tab:not(.custom-tab) .e-content > .e-item.e-active {
685
- height: 100%;
686
- }
687
-
688
- #radiogroup {
689
- display: flex;
690
- flex-direction: column;
691
- gap: 0.75rem;
692
- }
693
-
694
- @container (max-width: 820px) {
695
- .form-preview-area {
696
- padding-left: 10px;
697
- padding-right: 10px;
698
- }
699
- .split-view-container {
700
- padding: 30px 20px;
701
- }
702
- }