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

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,380 +0,0 @@
1
- /* DataGrid and ColumnBuilder Styles */
2
-
3
- .column-builder {
4
- display: flex;
5
- flex-direction: column;
6
- gap: 16px;
7
- }
8
-
9
- .column-list {
10
- min-height: 35px;
11
- display: flex;
12
- flex-direction: column;
13
- gap: 12px;
14
- max-height: 800px;
15
- scrollbar-width: thin;
16
- overflow-y: auto;
17
- }
18
-
19
- .column-item {
20
- border: 1px solid var(--sf-color-border, #ddd);
21
- border-radius: 4px;
22
- overflow: visible;
23
- background: var(--sf-color-background, #ffffff);
24
- flex-shrink: 0;
25
- }
26
-
27
- .right-sidebar:has(.right-sidebar-column) .sidebar-header,
28
- .right-sidebar:has(.right-sidebar-column) .e-tab .e-tab-header {
29
- display: none !important;
30
- }
31
-
32
- .right-sidebar-column {
33
- top: 0rem !important;
34
- margin-top: 0 !important;
35
- transition: transform .5s;
36
- z-index: 999;
37
- position: absolute;
38
- overflow: hidden;
39
- width: var(--ridesidebar-width);
40
- min-width: var(--ridesidebar-width);
41
- border-left: 1px solid rgb(var(--sf-color-line-color));
42
- height: calc(100dvh - var(--topbar-height) - 3rem);
43
- padding: 0;
44
- right: 0;
45
- background-color: rgb(var(--sf-color-background));
46
- }
47
-
48
- .builder-container.e-component .right-sidebar-column {
49
- height: 100%;
50
- }
51
-
52
- .column-details {
53
- padding: 1rem !important;
54
- display: flex;
55
- flex-direction: column;
56
- height: calc(100dvh - var(--topbar-height) - var(--topbar-height) - 3rem);
57
- overflow-y: auto;
58
- gap: 16px;
59
- background: var(--sf-color-background, #ffffff);
60
- }
61
-
62
- .builder-container.e-component .column-details {
63
- height: calc(100% - var(--topbar-height))
64
- }
65
-
66
- .builder-container.e-component .conditions-editor-wrapper .e-dlg-container .e-dlg-overlay {
67
- background-color: transparent !important;
68
- }
69
-
70
- .column-sidebar-header {
71
- display: flex;
72
- align-items: center;
73
- justify-content: space-between;
74
- min-height: 48px;
75
- background-color: rgb(var(--sf-color-surface));
76
- border-bottom: 1px solid rgb(var(--sf-color-line-color));
77
- padding: 0rem 1.5rem;
78
- flex-shrink: 0;
79
- }
80
-
81
- .column-sidebar-header h3 {
82
- margin: 0;
83
- font-size: 0.875rem;
84
- line-height: 20px;
85
- color: var(--dashboard-heading-color);
86
- font-weight: 600;
87
- font-style: Semi Bold;
88
- line-height: 20px;
89
- letter-spacing: 0%;
90
- }
91
-
92
- .column-header {
93
- display: flex;
94
- justify-content: space-between;
95
- align-items: center;
96
- border-radius: 6px;
97
- padding: 4px 4px 4px 8px;
98
- background: var(--sf-color-surface, #f5f5f5);
99
- cursor: pointer;
100
- border-bottom: 1px solid var(--sf-color-border, #eee);
101
- user-select: none;
102
- }
103
-
104
- .column-header:hover {
105
- background: var(--sf-color-surface-hover, #efefef);
106
- }
107
-
108
- .column-field {
109
- font-weight: 600;
110
- font-size: 14px;
111
- color: var(--sf-color-text, #333);
112
- overflow: hidden;
113
- text-overflow: ellipsis;
114
- white-space: nowrap;
115
- }
116
-
117
- .column-header-text {
118
- font-size: 13px;
119
- color: var(--sf-color-text-secondary, #666);
120
- overflow: hidden;
121
- text-overflow: ellipsis;
122
- white-space: nowrap;
123
- }
124
-
125
- .column-header .delete-btn {
126
- padding: 4px 8px;
127
- font-size: 12px;
128
- border: none;
129
- border-radius: 3px;
130
- cursor: pointer;
131
- flex-shrink: 0;
132
- transition: background 0.2s;
133
- }
134
-
135
- .column-header .delete-btn:hover {
136
- background: #ff3838;
137
- }
138
-
139
- .conditional-column .column-details {
140
- height: 500px;
141
- }
142
-
143
- .no-border-radius {
144
- border: none;
145
- border-top-left-radius: 6px !important;
146
- border-top-right-radius: 6px !important;
147
- }
148
-
149
- .column-builder .form-group {
150
- display: flex;
151
- flex-direction: column;
152
- gap: 6px;
153
- }
154
-
155
- .column-builder .form-group label {
156
- font-weight: 500;
157
- font-size: 13px;
158
- color: var(--sf-color-text, #333);
159
- }
160
-
161
- /* Conditional Data Editor Styles - follows ColumnBuilder pattern */
162
- .condition-data-editor {
163
- padding-top: 8px;
164
- }
165
-
166
- .condition-data-editor .rule-details {
167
- padding: 0px;
168
- }
169
-
170
- .condition-data-editor .column-list {
171
- overflow-y: hidden;
172
- }
173
-
174
- .rule-item {
175
- margin-bottom: 12px;
176
- border: 1px solid rgb(var(--sf-color-line-color));
177
- border-radius: 4px;
178
- overflow: hidden;
179
- background: rgb(var(--sf-color-background));
180
- }
181
-
182
- .rule-header {
183
- padding: 12px;
184
- border-bottom: 1px solid rgb(var(--sf-color-line-color));
185
- cursor: pointer;
186
- display: flex;
187
- justify-content: space-between;
188
- align-items: center;
189
- user-select: none;
190
- }
191
-
192
- .rule-header:hover {
193
- background-color: rgba(0, 0, 0, 0.04);
194
- }
195
-
196
- .rule-header:focus-visible,
197
- .custom-accordion-header:focus-visible,
198
- .add-field-message-wrapper:focus-visible,
199
- .palette-item:focus-visible,
200
- .tab:focus-visible,
201
- .close-btn:focus-visible {
202
- border: 2px solid var(--color-sf-primary-bg-color) !important;
203
- outline-offset: 2px;
204
- outline: none;
205
- }
206
-
207
- .rule-title {
208
- font-weight: 500;
209
- margin: 0;
210
- color: var(--jsonview-text-color);
211
- flex: 1;
212
- }
213
-
214
- .rule-details {
215
- padding: 16px;
216
- background: var(--sf-color-background, #ffffff);
217
- }
218
-
219
- .rule-details .form-group:last-child {
220
- margin-bottom: 0;
221
- }
222
-
223
- .rule-actions .e-btn {
224
- padding: 8px 16px;
225
- font-size: 13px;
226
- }
227
-
228
- .condition-data-editor .e-rule-value.e-template-value.e-value.e-show {
229
- width: 100% !important;
230
- }
231
-
232
- .condition-data-editor .e-query-builder .e-group-body .e-rule-container .e-rule-value.e-custom-value {
233
- width: 100% !important;
234
- }
235
-
236
- .form-group input[type="text"],
237
- .form-group input[type="number"],
238
- .form-group input[type="date"],
239
- .form-group select {
240
- padding: 8px 12px;
241
- border: 1px solid var(--sf-color-border, #d3d3d3);
242
- border-radius: 4px;
243
- font-size: 13px;
244
- font-family: inherit;
245
- background: var(--sf-color-background, #ffffff);
246
- color: var(--sf-color-text, #333);
247
- }
248
-
249
- .form-group input:focus,
250
- .form-group select:focus {
251
- outline: none;
252
- border-color: var(--sf-color-primary, #0078d4);
253
- box-shadow: 0 0 0 2px rgba(0, 120, 212, 0.1);
254
- }
255
-
256
- .checkbox-group {
257
- flex-direction: row;
258
- }
259
-
260
- .checkbox-group label {
261
- display: flex;
262
- align-items: center;
263
- gap: 8px;
264
- font-weight: 400;
265
- margin: 0;
266
- }
267
-
268
- .checkbox-group input[type="checkbox"] {
269
- width: 16px;
270
- height: 16px;
271
- cursor: pointer;
272
- }
273
-
274
- /* DataGrid Component Styles */
275
-
276
- .datagrid-wrapper {
277
- display: flex;
278
- flex-direction: column;
279
- gap: 12px;
280
- width: 100%;
281
- }
282
-
283
- .datagrid-label {
284
- font-weight: 600;
285
- font-size: 14px;
286
- color: var(--sf-color-text, #333);
287
- display: block;
288
- margin-bottom: 8px;
289
- }
290
-
291
- .datagrid-grid {
292
- border: 1px solid var(--sf-color-border, #d3d3d3);
293
- border-radius: 4px;
294
- overflow: hidden;
295
- }
296
-
297
- .datagrid-grid .e-grid {
298
- border: none;
299
- }
300
-
301
- .datagrid-grid .e-gridheader {
302
- background: var(--sf-color-surface, #f5f5f5);
303
- border-bottom: 1px solid var(--sf-color-border, #d3d3d3);
304
- }
305
-
306
- .datagrid-grid .e-headercell {
307
- background: var(--sf-color-surface, #f5f5f5);
308
- font-weight: 600;
309
- padding: 12px;
310
- border-right: 1px solid var(--sf-color-border, #e0e0e0);
311
- }
312
-
313
- .datagrid-grid .e-rowcell {
314
- padding: 10px 12px;
315
- border-right: 1px solid var(--sf-color-border, #e0e0e0);
316
- color: var(--sf-color-text, #333);
317
- }
318
-
319
- .datagrid-grid .e-grid.e-gridhover tr.e-row:not(.e-disable-gridhover):not(.e-detailrow):hover td.e-active.e-rowcell:not(.e-updatedtd) {
320
- background: unset !important;
321
- }
322
-
323
- /* Error States */
324
-
325
- .column-item.error {
326
- border-color: #ff4757;
327
- background: #fff5f5;
328
- }
329
-
330
- .form-group input.error,
331
- .form-group select.error {
332
- border-color: #ff4757;
333
- background: #fff5f5;
334
- }
335
-
336
- .validation-error {
337
- color: #ff4757;
338
- font-size: 12px;
339
- margin-top: 4px;
340
- }
341
-
342
- .query-section {
343
- padding-top: 0.75rem;
344
- padding-bottom: 0.5rem;
345
- }
346
-
347
- /* Dark Mode Support */
348
-
349
- [data-theme="dark"] .column-builder,
350
- .e-dark-mode .column-builder {
351
- --sf-color-text: #e0e0e0;
352
- --sf-color-text-secondary: #a0a0a0;
353
- --sf-color-border: #444;
354
- }
355
-
356
-
357
- [data-theme="dark"] .column-header,
358
- .e-dark-mode .column-header {
359
- background: #1e1e1e;
360
- border-bottom-color: #444;
361
- }
362
-
363
- [data-theme="dark"] .column-header:hover,
364
- .e-dark-mode .column-header:hover {
365
- background: #252525;
366
- }
367
-
368
- [data-theme="dark"] .form-group input,
369
- [data-theme="dark"] .form-group select,
370
- .e-dark-mode .form-group input,
371
- .e-dark-mode .form-group select {
372
- background: var(--color-sf-content-bg-color);
373
- color: #e0e0e0;
374
- border-color: #444;
375
- }
376
-
377
- [data-theme="dark"] .validation-rules-section,
378
- .e-dark-mode .validation-rules-section {
379
- background: #1a1a1a;
380
- }
@@ -1,248 +0,0 @@
1
- /* Drag and Reorder Styles */
2
- .draggable-fields-container {
3
- display: flex;
4
- flex-direction: column;
5
- gap: 1rem;
6
- width: 100%;
7
- }
8
-
9
- .form-field-draggable {
10
- user-select: none;
11
- position: relative;
12
- cursor: pointer;
13
- transition: all 0.2s ease;
14
- }
15
-
16
- .form-preview-area:not(.dragging-over):not(.is-reordering):not(.is-nesteditemreordering):not(:has(.dragging-over)) .form-field-wrapper:hover:not(:has(.form-field-wrapper:hover))
17
- {
18
- border: 1px solid var(--dragover-border-color);
19
- border-radius: 6px;
20
- transition: none !important;
21
- }
22
-
23
- .form-preview-area:not(.dragging-over):not(.is-reordering):not(.is-nesteditemreordering):not(:has(.dragging-over)) .form-field-wrapper:focus-visible:not(:has(.form-field-wrapper:focus-visible))
24
- {
25
- border: 1px solid var(--dragover-border-color);
26
- border-radius: 6px;
27
- transition: none !important;
28
- outline: none;
29
- }
30
-
31
- /* Dragging down (default) - show border-bottom and padding-bottom */
32
- .form-preview-area.is-reordering:not(.drag-moving-up):not(.dragging-over):not(:has(.touch-hovered)):not(:has(.dragging-over)) .form-field-wrapper:hover:not(:has(.form-field-wrapper:hover))
33
- {
34
- padding-bottom: 8px !important;
35
- padding-top: 0 !important;
36
- border-bottom: 2px solid var(--dragover-border-color);
37
- border-top: none !important;
38
- }
39
-
40
- /* Dragging up - show border-top and padding-top */
41
- .form-preview-area.is-reordering.drag-moving-up:not(.dragging-over):not(:has(.touch-hovered)):not(:has(.dragging-over)) .form-field-wrapper:hover:not(:has(.form-field-wrapper:hover))
42
- {
43
- padding-top: 8px !important;
44
- padding-bottom: 0 !important;
45
- border-top: 2px solid var(--dragover-border-color);
46
- border-bottom: none !important;
47
- }
48
-
49
- /* Nested reordering - dragging down (default) */
50
- .form-preview-area.is-nesteditemreordering:not(.drag-moving-up):not(.dragging-over):not(:has(.touch-hovered)):not(:has(.dragging-over)) .form-field-wrapper:hover:not(:has(.form-field-wrapper:hover)):not(:has(.panel-children, .tab-children, .nested-components))
51
- {
52
- padding-bottom: 8px !important;
53
- padding-top: 0 !important;
54
- border-bottom: 2px solid var(--dragover-border-color);
55
- border-top: none !important;
56
- }
57
-
58
- /* Nested reordering - dragging up */
59
- .form-preview-area.is-nesteditemreordering.drag-moving-up:not(.dragging-over):not(:has(.touch-hovered)):not(:has(.dragging-over)) .form-field-wrapper:hover:not(:has(.form-field-wrapper:hover)):not(:has(.panel-children, .tab-children, .nested-components))
60
- {
61
- padding-top: 8px !important;
62
- padding-bottom: 0 !important;
63
- border-top: 2px solid var(--dragover-border-color);
64
- border-bottom: none !important;
65
- }
66
-
67
- .form-preview-area:not(.dragging-over):not(.is-reordering):not(.is-nesteditemreordering):not(:has(.dragging-over)) .form-field-wrapper.is-active {
68
- border: 1px solid var(--dragover-border-color);
69
- border-radius: 6px;
70
- background-color: var(--dragover-background-color);
71
- }
72
-
73
- .form-preview-area.is-reordering:not(.drag-moving-up):not(.dragging-over):not(:has(.dragging-over)) .form-field-wrapper.touch-hovered:not(:has(.form-field-wrapper.touch-hovered))
74
- {
75
- padding-bottom: 8px !important;
76
- padding-top: 0 !important;
77
- border-bottom: 2px solid var(--dragover-border-color);
78
- border-top: none !important;
79
- }
80
-
81
- .form-preview-area.is-reordering.drag-moving-up:not(.dragging-over):not(:has(.dragging-over)) .form-field-wrapper.touch-hovered:not(:has(.form-field-wrapper.touch-hovered))
82
- {
83
- padding-top: 8px !important;
84
- padding-bottom: 0 !important;
85
- border-top: 2px solid var(--dragover-border-color);
86
- border-bottom: none !important;
87
- }
88
-
89
- .form-preview-area.is-nesteditemreordering:not(.drag-moving-up):not(.dragging-over):not(:has(.dragging-over)) .form-field-wrapper.touch-hovered:not(:has(.form-field-wrapper.touch-hovered)):not(:has(.panel-children, .tab-children, .nested-components))
90
- {
91
- padding-bottom: 8px !important;
92
- padding-top: 0 !important;
93
- border-bottom: 2px solid var(--dragover-border-color);
94
- border-top: none !important;
95
- }
96
-
97
- .form-preview-area.is-nesteditemreordering.drag-moving-up:not(.dragging-over):not(:has(.dragging-over)) .form-field-wrapper.touch-hovered:not(:has(.form-field-wrapper.touch-hovered)):not(:has(.panel-children, .tab-children, .nested-components))
98
- {
99
- padding-top: 8px !important;
100
- padding-bottom: 0 !important;
101
- border-top: 2px solid var(--dragover-border-color);
102
- border-bottom: none !important;
103
- }
104
-
105
- .form-preview-area.is-nesteditemreordering .form-table,
106
- .form-preview-area.is-nesteditemreordering .form-panel,
107
- .form-preview-area.is-nesteditemreordering .form-tabs {
108
- padding: 15px 0px 15px 0px;
109
- }
110
-
111
- .form-preview-area.is-reordering .form-table,
112
- .form-preview-area.is-reordering .form-panel,
113
- .form-preview-area.is-reordering .form-tabs {
114
- padding: 15px 0px 15px 0px;
115
- }
116
-
117
-
118
- .form-field-draggable:active {
119
- cursor: grabbing;
120
- }
121
-
122
- /* Clone helper styles */
123
- .form-field-clone {
124
- display: flex;
125
- align-items: center;
126
- position: fixed;
127
- pointer-events: none;
128
- }
129
-
130
- .clone-content {
131
- white-space: nowrap;
132
- overflow: hidden;
133
- text-overflow: ellipsis;
134
- max-width: 250px;
135
- color: var(--jsonview-text-color);
136
- }
137
-
138
- /* Dragging state */
139
- .e-dragging {
140
- opacity: 0.5;
141
- }
142
-
143
- /* Nested reordering styles - Panels */
144
- .panel-child-field-draggable {
145
- cursor: pointer;
146
- transition: all 0.2s ease;
147
- user-select: none;
148
- }
149
-
150
- .panel-children.is-nested-reordering .panel-child-field-draggable:hover {
151
- background-color: transparent !important;
152
- }
153
-
154
- /* Nested reordering styles - Tabs */
155
- .tab-child-field-draggable {
156
- cursor: pointer;
157
- user-select: none;
158
- }
159
-
160
- .tab-children.is-nested-reordering .tab-child-field-draggable:hover {
161
- background-color: transparent !important;
162
- }
163
-
164
- /* Nested reordering styles - Table Cells */
165
- .table-cell-child-draggable {
166
- cursor: pointer;
167
- user-select: none;
168
- }
169
-
170
- .nested-components.is-nested-reordering .table-cell-child-draggable:hover {
171
- background-color: transparent !important;
172
- }
173
-
174
- /* Nested clone helper */
175
- .nested-field-clone {
176
- display: flex;
177
- align-items: center;
178
- position: fixed;
179
- pointer-events: none;
180
- }
181
-
182
- /* Drop-between-fields indicators - Root level */
183
- .form-field-wrapper .form-field-draggable.drop-target-before {
184
- border-top: 2px solid var(--dragover-border-color) !important;
185
- padding-top: 10px;
186
- transition: none !important;
187
- }
188
-
189
- .form-field-wrapper .form-field-draggable.drop-target-after {
190
- border-bottom: 2px solid var(--dragover-border-color) !important;
191
- padding-bottom: 10px;
192
- transition: none !important;
193
- }
194
-
195
- /* Drop-between-fields indicators - Nested panels */
196
- .form-field-wrapper .panel-child-field-draggable.drop-target-before {
197
- border-top: 2px solid var(--dragover-border-color) !important;
198
- padding-top: 8px;
199
- transition: none !important;
200
- }
201
-
202
- .form-field-wrapper .panel-child-field-draggable.drop-target-after {
203
- border-bottom: 2px solid var(--dragover-border-color) !important;
204
- padding-bottom: 8px;
205
- transition: none !important;
206
- }
207
-
208
- /* Drop-between-fields indicators - Nested tabs */
209
- .form-field-wrapper .tab-child-field-draggable.drop-target-before {
210
- border-top: 2px solid var(--dragover-border-color) !important;
211
- padding-top: 8px;
212
- }
213
-
214
- .form-field-wrapper .tab-child-field-draggable.drop-target-after {
215
- border-bottom: 2px solid var(--dragover-border-color) !important;
216
- padding-bottom: 8px;
217
- }
218
-
219
- /* Drop-between-fields indicators - Table cells */
220
- .form-field-wrapper .table-cell-child-draggable.drop-target-before {
221
- border-top: 2px solid var(--dragover-border-color) !important;
222
- padding-top: 8px;
223
- }
224
-
225
- .form-field-wrapper .table-cell-child-draggable.drop-target-after {
226
- border-bottom: 2px solid var(--dragover-border-color) !important;
227
- padding-bottom: 8px;
228
- }
229
-
230
- /* Drop indicator */
231
- .form-field-draggable.drag-over-top {
232
- border-top: 2px solid rgb(var(--sf-color-primary));
233
- }
234
-
235
- .form-field-draggable.drag-over-bottom {
236
- border-bottom: 2px solid rgb(var(--sf-color-primary));
237
- }
238
-
239
- /* Form components container */
240
- .form-components {
241
- position: relative;
242
- }
243
-
244
- /* Dark mode */
245
- [data-theme="dark"] .form-field-clone {
246
- background-color: rgba(var(--sf-color-surface), 0.95);
247
- border-color: rgb(var(--sf-color-primary));
248
- }