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

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 (145) hide show
  1. package/Common/CheckboxGroup.d.ts +13 -0
  2. package/Common/CheckboxGroup.js +50 -0
  3. package/Common/ConditionalRuleEngine.d.ts +296 -0
  4. package/Common/ConditionalRuleEngine.js +566 -0
  5. package/Common/CustomTabComponent.d.ts +17 -0
  6. package/Common/CustomTabComponent.js +30 -0
  7. package/Common/CustomValidationEngine.d.ts +58 -0
  8. package/Common/CustomValidationEngine.js +146 -0
  9. package/Common/DataGridComponent.d.ts +20 -0
  10. package/Common/DataGridComponent.js +273 -0
  11. package/Common/FormValidator.d.ts +485 -0
  12. package/Common/FormValidator.js +575 -0
  13. package/Common/MinMaxRuleEngine.d.ts +105 -0
  14. package/Common/MinMaxRuleEngine.js +365 -0
  15. package/Common/StaticHtmlRenderer.d.ts +14 -0
  16. package/Common/StaticHtmlRenderer.js +24 -0
  17. package/Common/expressions/DependencyTracker.d.ts +30 -0
  18. package/Common/expressions/DependencyTracker.js +128 -0
  19. package/Common/expressions/ExpressionEngine.d.ts +95 -0
  20. package/Common/expressions/ExpressionEngine.js +506 -0
  21. package/Common/expressions/ExpressionParser.d.ts +41 -0
  22. package/Common/expressions/ExpressionParser.js +269 -0
  23. package/Common/expressions/useGridExpressions.d.ts +12 -0
  24. package/Common/expressions/useGridExpressions.js +71 -0
  25. package/Common/globalFormId.d.ts +26 -0
  26. package/Common/globalFormId.js +45 -0
  27. package/Common/json-converter.d.ts +444 -0
  28. package/Common/json-converter.js +1184 -0
  29. package/Common/parser.d.ts +98 -0
  30. package/Common/parser.js +753 -0
  31. package/Common/utils.d.ts +130 -0
  32. package/Common/utils.js +574 -0
  33. package/README.md +53 -0
  34. package/index.d.ts +6 -0
  35. package/index.js +6 -0
  36. package/license +13 -0
  37. package/package.json +54 -0
  38. package/src/FormBuilder.d.ts +211 -0
  39. package/src/FormBuilder.js +1299 -0
  40. package/src/components/Database/ConnectionForm.d.ts +8 -0
  41. package/src/components/Database/ConnectionForm.js +28 -0
  42. package/src/components/TopBar.d.ts +10 -0
  43. package/src/components/TopBar.js +7 -0
  44. package/src/components/icons/ComponentIcons.d.ts +44 -0
  45. package/src/components/icons/ComponentIcons.js +40 -0
  46. package/src/components/layout/FormFieldWrapper.d.ts +41 -0
  47. package/src/components/layout/FormFieldWrapper.js +112 -0
  48. package/src/components/layout/LeftPane.d.ts +23 -0
  49. package/src/components/layout/LeftPane.js +310 -0
  50. package/src/components/layout/ListBoxPane.d.ts +24 -0
  51. package/src/components/layout/ListBoxPane.js +94 -0
  52. package/src/components/layout/MainSection.d.ts +39 -0
  53. package/src/components/layout/MainSection.js +1766 -0
  54. package/src/components/layout/Preview.d.ts +12 -0
  55. package/src/components/layout/Preview.js +337 -0
  56. package/src/components/layout/RightPane.d.ts +22 -0
  57. package/src/components/layout/RightPane.js +370 -0
  58. package/src/components/theme/ThemeSwitcher.d.ts +14 -0
  59. package/src/components/theme/ThemeSwitcher.js +24 -0
  60. package/src/components/theme/theme-constant.d.ts +37 -0
  61. package/src/components/theme/theme-constant.js +23 -0
  62. package/src/config/component-properties.json +4929 -0
  63. package/src/config/form-setting.json +56 -0
  64. package/src/config/locale.d.ts +449 -0
  65. package/src/config/locale.js +449 -0
  66. package/src/context/FormSchemaContext.d.ts +32 -0
  67. package/src/context/FormSchemaContext.js +155 -0
  68. package/src/context/LocalizationContext.d.ts +27 -0
  69. package/src/context/LocalizationContext.js +43 -0
  70. package/src/context/ThemeContext.d.ts +23 -0
  71. package/src/context/ThemeContext.js +161 -0
  72. package/src/context/contexts.d.ts +6 -0
  73. package/src/context/contexts.js +6 -0
  74. package/src/context/defaultFormSchema.d.ts +6 -0
  75. package/src/context/defaultFormSchema.js +20 -0
  76. package/src/defaultPalette.d.ts +9 -0
  77. package/src/defaultPalette.js +45 -0
  78. package/src/defaultTemplate.d.ts +3 -0
  79. package/src/defaultTemplate.js +185 -0
  80. package/src/import/schemaImportUtils.d.ts +24 -0
  81. package/src/import/schemaImportUtils.js +121 -0
  82. package/src/index.d.ts +16 -0
  83. package/src/index.js +6 -0
  84. package/src/types/ActionButtons.d.ts +44 -0
  85. package/src/types/ActionButtons.js +27 -0
  86. package/src/types/ComponentProperties.d.ts +33 -0
  87. package/src/types/ComponentProperties.js +2 -0
  88. package/src/types/FormSchema.d.ts +585 -0
  89. package/src/types/FormSchema.js +147 -0
  90. package/src/types/connection.d.ts +19 -0
  91. package/src/types/connection.js +9 -0
  92. package/src/utils/AttributesEditor.d.ts +13 -0
  93. package/src/utils/AttributesEditor.js +117 -0
  94. package/src/utils/ButtonGroupEditor.d.ts +15 -0
  95. package/src/utils/ButtonGroupEditor.js +141 -0
  96. package/src/utils/ChoiceBasedFieldEditor.d.ts +16 -0
  97. package/src/utils/ChoiceBasedFieldEditor.js +87 -0
  98. package/src/utils/ClipboardHelper.d.ts +26 -0
  99. package/src/utils/ClipboardHelper.js +83 -0
  100. package/src/utils/ColumnBuilder.d.ts +11 -0
  101. package/src/utils/ColumnBuilder.js +153 -0
  102. package/src/utils/ColumnSpanEditor.d.ts +8 -0
  103. package/src/utils/ColumnSpanEditor.js +98 -0
  104. package/src/utils/ConditionDataEditor.d.ts +29 -0
  105. package/src/utils/ConditionDataEditor.js +177 -0
  106. package/src/utils/ConditionalEditorUtils.d.ts +27 -0
  107. package/src/utils/ConditionalEditorUtils.js +310 -0
  108. package/src/utils/ConditionsEditor.d.ts +20 -0
  109. package/src/utils/ConditionsEditor.js +571 -0
  110. package/src/utils/CustomAccordion.d.ts +13 -0
  111. package/src/utils/CustomAccordion.js +38 -0
  112. package/src/utils/CustomValidationEditor.d.ts +11 -0
  113. package/src/utils/CustomValidationEditor.js +208 -0
  114. package/src/utils/DataSourceCollector.d.ts +3 -0
  115. package/src/utils/DataSourceCollector.js +252 -0
  116. package/src/utils/ExpressionEditor.d.ts +13 -0
  117. package/src/utils/ExpressionEditor.js +99 -0
  118. package/src/utils/FormSettingsPanel.d.ts +9 -0
  119. package/src/utils/FormSettingsPanel.js +60 -0
  120. package/src/utils/LookupConfig.d.ts +11 -0
  121. package/src/utils/LookupConfig.js +159 -0
  122. package/src/utils/MinMaxValueEditor.d.ts +25 -0
  123. package/src/utils/MinMaxValueEditor.js +188 -0
  124. package/src/utils/OptionsEditor.d.ts +8 -0
  125. package/src/utils/OptionsEditor.js +79 -0
  126. package/src/utils/PropertyRenderer.d.ts +22 -0
  127. package/src/utils/PropertyRenderer.js +210 -0
  128. package/src/utils/ValueRenderer.d.ts +2 -0
  129. package/src/utils/ValueRenderer.js +91 -0
  130. package/src/utils/ej2DbAdaptor.d.ts +6 -0
  131. package/src/utils/ej2DbAdaptor.js +38 -0
  132. package/src/utils/mappingHeuristics.d.ts +10 -0
  133. package/src/utils/mappingHeuristics.js +33 -0
  134. package/src/utils/renderComponent.d.ts +18 -0
  135. package/src/utils/renderComponent.js +300 -0
  136. package/styles/tailwind3.css +67 -0
  137. package/styles/themes/action-buttons.css +110 -0
  138. package/styles/themes/datagrid.css +380 -0
  139. package/styles/themes/drag-reorder.css +248 -0
  140. package/styles/themes/import-dialog.css +292 -0
  141. package/styles/themes/index.css +658 -0
  142. package/styles/themes/left-pane.css +253 -0
  143. package/styles/themes/options-editor.css +63 -0
  144. package/styles/themes/preview.css +702 -0
  145. package/styles/themes/property-dialog.css +371 -0
@@ -0,0 +1,292 @@
1
+ /* Import Dialog Styles */
2
+
3
+ .import-dialog .e-dlg-content {
4
+ padding: 0;
5
+ overflow: visible;
6
+ }
7
+
8
+ .import-dialog-content {
9
+ display: flex;
10
+ flex-direction: column;
11
+ gap: 16px;
12
+ padding: 20px;
13
+ height: 100%;
14
+ }
15
+
16
+ .dialog-instruction {
17
+ margin: 0;
18
+ padding: 12px 16px;
19
+ background-color: var(--sf-color-surface-secondary, #f5f5f5);
20
+ border-radius: 8px;
21
+ border-left: 3px solid var(--sf-color-primary);
22
+ }
23
+
24
+ .dialog-instruction p {
25
+ margin: 0;
26
+ font-size: 14px;
27
+ line-height: 1.5;
28
+ color: var(--sf-color-on-surface);
29
+ }
30
+
31
+ .dialog-instruction strong {
32
+ color: var(--sf-color-primary);
33
+ font-weight: 600;
34
+ }
35
+
36
+ .json-input-container {
37
+ flex: 1;
38
+ display: flex;
39
+ flex-direction: column;
40
+ }
41
+
42
+ .json-input {
43
+ width: 100%;
44
+ height: 100%;
45
+ min-height: 300px;
46
+ padding: 16px;
47
+ border: 2px solid var(--sf-color-outline, #ccc);
48
+ border-radius: 8px;
49
+ font-family: 'Consolas', 'Monaco', 'Courier New', monospace;
50
+ font-size: 13px;
51
+ line-height: 1.6;
52
+ resize: vertical;
53
+ background-color: var(--sf-color-surface, #fff);
54
+ color: var(--sf-color-on-surface);
55
+ transition: border-color 0.2s;
56
+ }
57
+
58
+ .json-input:focus {
59
+ outline: none;
60
+ border-color: var(--sf-color-primary);
61
+ box-shadow: 0 0 0 3px var(--sf-color-primary-container, rgba(98, 0, 238, 0.1));
62
+ }
63
+
64
+ .json-input::placeholder {
65
+ color: var(--sf-color-on-surface-variant, #666);
66
+ opacity: 0.6;
67
+ }
68
+
69
+ /* Validation Results */
70
+ .validation-result {
71
+ padding: 16px;
72
+ border-radius: 8px;
73
+ animation: slideIn 0.3s ease-out;
74
+ }
75
+
76
+ @keyframes slideIn {
77
+ from {
78
+ opacity: 0;
79
+ transform: translateY(-10px);
80
+ }
81
+ to {
82
+ opacity: 1;
83
+ transform: translateY(0);
84
+ }
85
+ }
86
+
87
+ .validation-result.success {
88
+ background-color: var(--sf-color-success-container, #d4edda);
89
+ border: 1px solid var(--sf-color-success, #28a745);
90
+ }
91
+
92
+ .validation-result.error {
93
+ background-color: var(--sf-color-error-container, #f8d7da);
94
+ border: 1px solid var(--sf-color-error, #dc3545);
95
+ }
96
+
97
+ .validation-success {
98
+ display: flex;
99
+ align-items: center;
100
+ gap: 10px;
101
+ color: var(--sf-color-on-success-container, #155724);
102
+ font-weight: 500;
103
+ }
104
+
105
+ .validation-success svg {
106
+ flex-shrink: 0;
107
+ stroke: var(--sf-color-success, #28a745);
108
+ }
109
+
110
+ .validation-errors,
111
+ .validation-warnings {
112
+ display: flex;
113
+ flex-direction: column;
114
+ gap: 8px;
115
+ }
116
+
117
+ .error-header,
118
+ .warning-header {
119
+ display: flex;
120
+ align-items: center;
121
+ gap: 8px;
122
+ font-weight: 600;
123
+ margin-bottom: 4px;
124
+ }
125
+
126
+ .error-header {
127
+ color: var(--sf-color-error, #dc3545);
128
+ }
129
+
130
+ .error-header svg {
131
+ flex-shrink: 0;
132
+ stroke: var(--sf-color-error, #dc3545);
133
+ }
134
+
135
+ .warning-header {
136
+ color: var(--sf-color-warning, #ffc107);
137
+ margin-top: 12px;
138
+ }
139
+
140
+ .warning-header svg {
141
+ flex-shrink: 0;
142
+ stroke: var(--sf-color-warning, #ffc107);
143
+ }
144
+
145
+ .error-list,
146
+ .warning-list {
147
+ margin: 0;
148
+ padding-left: 28px;
149
+ list-style: disc;
150
+ }
151
+
152
+ .error-list li {
153
+ margin: 4px 0;
154
+ font-size: 13px;
155
+ line-height: 1.5;
156
+ color: var(--sf-color-on-error-container, #721c24);
157
+ }
158
+
159
+ .warning-list li {
160
+ margin: 4px 0;
161
+ font-size: 13px;
162
+ line-height: 1.5;
163
+ color: var(--sf-color-on-warning-container, #856404);
164
+ }
165
+
166
+ /* Dialog Footer */
167
+ .import-dialog-footer {
168
+ display: flex;
169
+ gap: 12px;
170
+ justify-content: flex-end;
171
+ align-items: center;
172
+ }
173
+
174
+ .import-dialog-footer .validate-btn {
175
+ margin-right: auto;
176
+ background-color: var(--sf-color-secondary-container, #e3f2fd);
177
+ color: var(--sf-color-secondary, #1976d2);
178
+ }
179
+
180
+ .import-dialog-footer .validate-btn:hover:not(:disabled) {
181
+ background-color: var(--sf-color-secondary, #1976d2);
182
+ color: var(--sf-color-on-secondary, #fff);
183
+ }
184
+
185
+ .import-dialog-footer .import-btn:disabled {
186
+ opacity: 0.5;
187
+ cursor: not-allowed;
188
+ }
189
+
190
+ .conditions-editor-dialog .e-listbox-wrapper {
191
+ border: none !important;
192
+ border-radius: 0px !important;
193
+ }
194
+
195
+ .conditions-editor-dialog .e-listbox-wrapper .e-list-item {
196
+ border-radius: 6px !important;
197
+ }
198
+
199
+ /* Dark mode adjustments */
200
+ [data-theme="dark"] .dialog-instruction {
201
+ background-color: rgba(170, 170, 252, 0.1);
202
+ }
203
+
204
+ [data-theme="dark"] .json-input {
205
+ background-color: var(--sf-color-surface, #1e1e1e);
206
+ border-color: var(--sf-color-outline-variant, #444);
207
+ color: var(--sf-color-on-surface, #e0e0e0);
208
+ }
209
+
210
+ [data-theme="dark"] .json-input::placeholder {
211
+ color: var(--sf-color-on-surface-variant, #999);
212
+ }
213
+
214
+ [data-theme="dark"] .validation-result.success {
215
+ background-color: rgba(40, 167, 69, 0.15);
216
+ border-color: var(--sf-color-success, #28a745);
217
+ }
218
+
219
+ [data-theme="dark"] .validation-result.error {
220
+ background-color: rgba(220, 53, 69, 0.15);
221
+ border-color: var(--sf-color-error, #dc3545);
222
+ }
223
+
224
+ [data-theme="dark"] .validation-success {
225
+ color: var(--sf-color-success, #28a745);
226
+ }
227
+
228
+ [data-theme="dark"] .error-list li {
229
+ color: var(--sf-color-error, #ff6b6b);
230
+ }
231
+
232
+ [data-theme="dark"] .warning-list li {
233
+ color: var(--sf-color-warning, #ffd93d);
234
+ }
235
+
236
+ /* Split Schema Mode Styles */
237
+ .split-schema-container {
238
+ display: flex;
239
+ gap: 16px;
240
+ height: 100%;
241
+ }
242
+
243
+ .split-schema-container > div {
244
+ flex: 1;
245
+ display: flex;
246
+ flex-direction: column;
247
+ min-width: 0; /* Allow flex items to shrink */
248
+ }
249
+
250
+ .split-schema-container label {
251
+ font-weight: 600;
252
+ margin-bottom: 8px;
253
+ color: var(--sf-color-on-surface);
254
+ display: flex;
255
+ align-items: baseline;
256
+ gap: 8px;
257
+ }
258
+
259
+ .split-schema-container label span {
260
+ font-weight: 400;
261
+ font-size: 0.85em;
262
+ color: var(--sf-color-on-surface-variant);
263
+ }
264
+
265
+ [data-theme="dark"] .split-schema-container label {
266
+ color: var(--sf-color-on-surface, #e0e0e0);
267
+ }
268
+
269
+ [data-theme="dark"] .split-schema-container label span {
270
+ color: var(--sf-color-on-surface-variant, #999);
271
+ }
272
+
273
+ /* Responsive adjustments */
274
+ @container (max-width: 768px) {
275
+ .import-dialog {
276
+ width: 95% !important;
277
+ height: 90% !important;
278
+ }
279
+
280
+ .json-input {
281
+ min-height: 200px;
282
+ }
283
+
284
+ .split-schema-container {
285
+ flex-direction: column;
286
+ gap: 12px;
287
+ }
288
+
289
+ .split-schema-container .json-input {
290
+ min-height: 150px;
291
+ }
292
+ }