@visns-studio/visns-components 5.8.13 → 5.8.16

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.
@@ -130,6 +130,24 @@
130
130
  margin: 0 0 30px;
131
131
  }
132
132
  }
133
+
134
+ &__fullwidth {
135
+ width: 100%;
136
+ background: white;
137
+ border-radius: var(--br);
138
+ border: 1px solid var(--border-color);
139
+ box-sizing: border-box;
140
+ padding: 0;
141
+ margin: 5px;
142
+ height: auto;
143
+ position: relative;
144
+
145
+ h2 {
146
+ color: var(--primary-color);
147
+ font-size: 1.35em;
148
+ margin: 0 0 30px;
149
+ }
150
+ }
133
151
  }
134
152
 
135
153
  .gridtxt {
@@ -176,10 +194,51 @@
176
194
  .modalForm {
177
195
  width: 100%;
178
196
  display: flex;
179
- align-items: flex-start;
197
+ align-items: stretch;
180
198
  flex-wrap: wrap;
199
+ gap: 0.35em;
200
+ position: relative;
201
+ min-height: 200px;
202
+ }
203
+
204
+ // Separate class for modal forms (add/edit field modal)
205
+ .modalFieldForm {
206
+ width: 100%;
207
+ display: flex;
208
+ align-items: stretch;
209
+ flex-wrap: wrap;
210
+ gap: 0.35em;
211
+ position: relative;
212
+
213
+ // Ensure form items in modal display in rows
214
+ .formItem {
215
+ width: calc(50% - 0.175em) !important;
216
+ flex: 0 0 calc(50% - 0.175em);
217
+ box-sizing: border-box;
218
+
219
+ // Full-width items within modal
220
+ &.fwItem {
221
+ width: 100% !important;
222
+ flex: 0 0 100%;
223
+ margin-top: 0.5em;
224
+
225
+ // Add visual separation for full-width elements
226
+ &:not(:last-child) {
227
+ margin-bottom: 0.5em;
228
+ padding-bottom: 0.5em;
229
+ border-bottom: 1px solid rgba(var(--primary-rgb), 0.1);
230
+ }
231
+ }
232
+ }
233
+
234
+ .formItemFull {
235
+ width: 100% !important;
236
+ flex: 0 0 100%;
237
+ box-sizing: border-box;
238
+ }
181
239
  }
182
240
 
241
+ // Modal form items (for the add/edit field modal)
183
242
  .formItem {
184
243
  width: 50%;
185
244
  padding: 0.35em;
@@ -187,11 +246,153 @@
187
246
  box-sizing: border-box;
188
247
  }
189
248
 
190
- .formItem .fi__label {
249
+ // Full width form items for modal
250
+ .formItemFull {
251
+ width: 100%;
252
+ padding: 0.35em;
253
+ position: relative;
254
+ box-sizing: border-box;
255
+ }
256
+
257
+ .formItem .fi__label,
258
+ .formItemFull .fi__label {
191
259
  position: relative;
192
260
  display: block;
193
261
  }
194
262
 
263
+ // Compact table styling for modal options
264
+ .optionsTable {
265
+ width: 100%;
266
+ border-collapse: collapse;
267
+ margin: 0.5rem 0;
268
+ font-size: 0.9rem;
269
+ background: white;
270
+ border-radius: var(--br);
271
+ overflow: hidden;
272
+ box-shadow: 0 2px 8px rgba(var(--primary-rgb), 0.1);
273
+ }
274
+
275
+ .optionsTable thead {
276
+ background: var(--primary-color);
277
+ color: white;
278
+ }
279
+
280
+ .optionsTable th,
281
+ .optionsTable td {
282
+ padding: 0.5rem 0.75rem;
283
+ text-align: left;
284
+ border-bottom: 1px solid rgba(var(--primary-rgb), 0.1);
285
+ vertical-align: middle;
286
+ }
287
+
288
+ // Special styling for action column
289
+ .optionsTable td:last-child {
290
+ text-align: center;
291
+ padding: 0.3rem;
292
+ }
293
+
294
+ .optionsTable th {
295
+ font-weight: 600;
296
+ font-size: 0.85rem;
297
+ text-transform: uppercase;
298
+ letter-spacing: 0.5px;
299
+ }
300
+
301
+ .optionsTable tbody tr {
302
+ transition: background-color 0.2s ease;
303
+ }
304
+
305
+ .optionsTable tbody tr:hover {
306
+ background-color: rgba(var(--primary-rgb), 0.02);
307
+ }
308
+
309
+ .optionsTable tbody tr:last-child td {
310
+ border-bottom: none;
311
+ }
312
+
313
+ // Compact input styling for table cells
314
+ .optionsTable input {
315
+ width: 100%;
316
+ padding: 0.4rem 0.6rem !important;
317
+ border: 1px solid rgba(var(--primary-rgb), 0.2) !important;
318
+ border-radius: 4px !important;
319
+ font-size: 0.85rem !important;
320
+ background: white !important;
321
+ }
322
+
323
+ .optionsTable input:focus {
324
+ border-color: var(--primary-color) !important;
325
+ box-shadow: 0 0 0 2px rgba(var(--primary-rgb), 0.1) !important;
326
+ }
327
+
328
+ // Action buttons in tables
329
+ .tableActionBtn {
330
+ padding: 0.4rem 0.6rem;
331
+ border: none;
332
+ border-radius: 4px;
333
+ cursor: pointer;
334
+ font-size: 0.8rem;
335
+ font-weight: 500;
336
+ transition: all 0.2s ease;
337
+ display: inline-flex;
338
+ align-items: center;
339
+ justify-content: center;
340
+ gap: 0.3rem;
341
+ min-height: 32px; // Match input field height
342
+ width: 100%;
343
+ max-width: 70px;
344
+ }
345
+
346
+ .tableActionBtn.add {
347
+ background: var(--primary-color);
348
+ color: white;
349
+ }
350
+
351
+ .tableActionBtn.add:hover {
352
+ background: var(--secondary-color);
353
+ transform: translateY(-1px);
354
+ }
355
+
356
+ .tableActionBtn.delete {
357
+ background: #dc3545;
358
+ color: white;
359
+ padding: 0.2rem 0.4rem;
360
+ }
361
+
362
+ .tableActionBtn.delete:hover {
363
+ background: #c82333;
364
+ transform: translateY(-1px);
365
+ }
366
+
367
+ // Modal-specific overrides to prevent conflicts with form builder styles
368
+ .modal .formItem,
369
+ .modal .formItemFull {
370
+ // Reset any form builder specific styles that might interfere
371
+ min-height: auto;
372
+
373
+ .fi__label {
374
+ height: auto;
375
+ min-height: auto;
376
+ }
377
+
378
+ input,
379
+ select,
380
+ textarea {
381
+ // Ensure modal form fields have proper styling
382
+ min-height: 48px;
383
+ font-size: 0.9rem;
384
+ }
385
+ }
386
+
387
+ // Ensure modal tables don't inherit preview field styles
388
+ .modal .optionsTable {
389
+ // Override any conflicting styles
390
+ .fi__label {
391
+ height: auto;
392
+ display: block;
393
+ }
394
+ }
395
+
195
396
  .formItem textarea,
196
397
  .formItem select,
197
398
  .formItem
@@ -257,10 +458,18 @@ input[type='file']:hover {
257
458
  }
258
459
 
259
460
  .formBuilderItem {
260
- width: 50%;
461
+ width: calc(50% - 0.175em);
261
462
  padding: 0.35em;
262
463
  position: relative;
263
464
  box-sizing: border-box;
465
+ display: flex;
466
+ flex-direction: column;
467
+ min-height: 80px;
468
+
469
+ // Ensure consistent layout during drag operations
470
+ &:not(.sortingHelper) {
471
+ transition: transform 0.2s ease;
472
+ }
264
473
  }
265
474
 
266
475
  .formBuilderItem .fi__label {
@@ -318,15 +527,48 @@ input[type='file']:hover {
318
527
  }
319
528
 
320
529
  .qtrBuilderItem {
321
- flex-basis: 50%;
530
+ flex-basis: calc(50% - 0.175em);
531
+ display: flex;
532
+ flex-direction: column;
533
+ min-height: 80px;
534
+ position: relative;
535
+ box-sizing: border-box;
536
+ padding: 0.35em;
537
+
538
+ // Ensure consistent layout during drag operations
539
+ &:not(.sortingHelper) {
540
+ transition: transform 0.2s ease;
541
+ }
322
542
  }
323
543
 
324
544
  .halfBuilderItem {
325
- flex-basis: 50%;
545
+ flex-basis: calc(50% - 0.175em);
546
+ display: flex;
547
+ flex-direction: column;
548
+ min-height: 80px;
549
+ position: relative;
550
+ box-sizing: border-box;
551
+ padding: 0.35em;
552
+
553
+ // Ensure consistent layout during drag operations
554
+ &:not(.sortingHelper) {
555
+ transition: transform 0.2s ease;
556
+ }
326
557
  }
327
558
 
328
559
  .fwBuilderItem {
329
- flex-basis: 100%;
560
+ flex-basis: calc(100% - 0.35em);
561
+ display: flex;
562
+ flex-direction: column;
563
+ min-height: 80px;
564
+ position: relative;
565
+ box-sizing: border-box;
566
+ padding: 0.35em;
567
+
568
+ // Ensure consistent layout during drag operations
569
+ &:not(.sortingHelper) {
570
+ transition: transform 0.2s ease;
571
+ }
330
572
  }
331
573
 
332
574
  input:not(:placeholder-shown) + .fi__span,
@@ -451,6 +693,7 @@ select:not(:placeholder-shown) + .fi__span {
451
693
  bottom: 20px;
452
694
  right: 20px;
453
695
  width: auto;
696
+ z-index: 500;
454
697
 
455
698
  button {
456
699
  display: block;
@@ -876,6 +1119,500 @@ select:not(:placeholder-shown) + .fi__span {
876
1119
  background-color: rgba(var(--primary-rgb), 0.02);
877
1120
  }
878
1121
 
1122
+ /* Interactive Field Styles */
1123
+ .interactiveField {
1124
+ position: relative;
1125
+ border: 2px solid transparent;
1126
+ border-radius: var(--br);
1127
+ transition: all 0.2s ease;
1128
+ display: flex;
1129
+ flex-direction: column;
1130
+ min-height: 100px;
1131
+ height: 100%;
1132
+
1133
+ // Ensure proper layout during sorting
1134
+ &.sortableHelper {
1135
+ position: fixed !important;
1136
+ z-index: 99999 !important;
1137
+ pointer-events: none !important;
1138
+ }
1139
+
1140
+ &:hover:not(.sortableHelper) {
1141
+ border-color: rgba(var(--primary-rgb), 0.3);
1142
+ background-color: rgba(var(--primary-rgb), 0.02);
1143
+
1144
+ .fieldControls {
1145
+ opacity: 1;
1146
+ }
1147
+ }
1148
+
1149
+ // Add visual feedback during drag operations
1150
+ &.isDragging {
1151
+ opacity: 0.5;
1152
+ transform: scale(0.98);
1153
+ }
1154
+ }
1155
+
1156
+ .fieldControls {
1157
+ position: absolute;
1158
+ top: 4px;
1159
+ left: 4px;
1160
+ right: 4px;
1161
+ display: flex;
1162
+ justify-content: space-between;
1163
+ align-items: flex-start;
1164
+ opacity: 0;
1165
+ transition: opacity 0.2s ease;
1166
+ z-index: 10000;
1167
+ pointer-events: none;
1168
+
1169
+ > * {
1170
+ pointer-events: auto;
1171
+ }
1172
+ }
1173
+
1174
+ .fieldInfo {
1175
+ position: absolute;
1176
+ top: 4px;
1177
+ left: 50%;
1178
+ transform: translateX(-50%);
1179
+ background: rgba(var(--primary-rgb), 0.9);
1180
+ color: white;
1181
+ padding: 4px 12px;
1182
+ border-radius: 12px;
1183
+ font-size: 0.75rem;
1184
+ font-weight: 500;
1185
+ white-space: nowrap;
1186
+ box-shadow: 0 2px 8px rgba(var(--primary-rgb), 0.25);
1187
+ z-index: 10001;
1188
+ pointer-events: none;
1189
+ opacity: 1; // Always visible
1190
+ transition: all 0.2s ease;
1191
+ max-width: calc(100% - 120px); // Leave space for drag handle and actions
1192
+ overflow: hidden;
1193
+ text-overflow: ellipsis;
1194
+
1195
+ // Ensure it's visible even when field controls are hidden
1196
+ .interactiveField:not(:hover) & {
1197
+ opacity: 0.8;
1198
+ }
1199
+
1200
+ .interactiveField:hover & {
1201
+ opacity: 1;
1202
+ background: var(--primary-color);
1203
+ box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.4);
1204
+ }
1205
+
1206
+ // Responsive behavior for smaller fields
1207
+ @media (max-width: 768px) {
1208
+ font-size: 0.7rem;
1209
+ padding: 3px 8px;
1210
+ max-width: calc(100% - 100px);
1211
+ }
1212
+ }
1213
+
1214
+ .fieldInfoText {
1215
+ display: block;
1216
+ line-height: 1.2;
1217
+ letter-spacing: 0.025em;
1218
+ }
1219
+
1220
+ .dragHandle {
1221
+ color: var(--primary-color) !important;
1222
+ cursor: grab;
1223
+ padding: 8px;
1224
+ border-radius: 8px;
1225
+ background: white;
1226
+ border: 2px solid var(--primary-color);
1227
+ box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.25);
1228
+ transition: all 0.2s ease;
1229
+ font-weight: bold;
1230
+ display: flex !important;
1231
+ align-items: center;
1232
+ justify-content: center;
1233
+ min-width: 40px;
1234
+ min-height: 40px;
1235
+ position: relative;
1236
+ z-index: 10001;
1237
+
1238
+ svg {
1239
+ display: block !important;
1240
+ width: 24px !important;
1241
+ height: 24px !important;
1242
+ stroke: currentColor !important;
1243
+ fill: none !important;
1244
+ }
1245
+
1246
+ &:hover {
1247
+ background: var(--primary-color);
1248
+ color: white;
1249
+ border-color: var(--primary-color);
1250
+ transform: scale(1.1);
1251
+ box-shadow: 0 6px 16px rgba(var(--primary-rgb), 0.4);
1252
+ }
1253
+
1254
+ &:active {
1255
+ cursor: grabbing;
1256
+ transform: scale(0.95);
1257
+ }
1258
+ }
1259
+
1260
+ .fieldActions {
1261
+ display: flex;
1262
+ gap: 6px;
1263
+ align-items: center;
1264
+ }
1265
+
1266
+ .editIcon,
1267
+ .deleteIcon {
1268
+ padding: 8px;
1269
+ border-radius: 8px;
1270
+ background: white;
1271
+ border: 2px solid;
1272
+ cursor: pointer;
1273
+ transition: all 0.2s ease;
1274
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1275
+ font-weight: bold;
1276
+ display: flex !important;
1277
+ align-items: center;
1278
+ justify-content: center;
1279
+ min-width: 36px;
1280
+ min-height: 36px;
1281
+ position: relative;
1282
+ z-index: 10001;
1283
+
1284
+ svg {
1285
+ display: block !important;
1286
+ width: 20px !important;
1287
+ height: 20px !important;
1288
+ stroke: currentColor !important;
1289
+ fill: none !important;
1290
+ }
1291
+ }
1292
+
1293
+ .editIcon {
1294
+ color: var(--primary-color) !important;
1295
+ border-color: var(--primary-color);
1296
+
1297
+ &:hover {
1298
+ background: var(--primary-color);
1299
+ color: white !important;
1300
+ border-color: var(--primary-color);
1301
+ transform: scale(1.1);
1302
+ box-shadow: 0 6px 16px rgba(var(--primary-rgb), 0.4);
1303
+ }
1304
+ }
1305
+
1306
+ .deleteIcon {
1307
+ color: #d32f2f !important;
1308
+ border-color: #d32f2f;
1309
+
1310
+ &:hover {
1311
+ background: #d32f2f;
1312
+ color: white !important;
1313
+ border-color: #d32f2f;
1314
+ transform: scale(1.1);
1315
+ box-shadow: 0 6px 16px rgba(211, 47, 47, 0.4);
1316
+ }
1317
+ }
1318
+
1319
+ /* Preview Field Styling - Visual distinction from regular sections */
1320
+ .previewField {
1321
+ background: linear-gradient(
1322
+ 135deg,
1323
+ rgba(var(--primary-rgb), 0.02),
1324
+ rgba(var(--primary-rgb), 0.05)
1325
+ );
1326
+ border-left: 4px solid rgba(var(--primary-rgb), 0.3);
1327
+ position: relative;
1328
+
1329
+ &::before {
1330
+ content: '';
1331
+ position: absolute;
1332
+ top: 0;
1333
+ left: 0;
1334
+ right: 0;
1335
+ height: 2px;
1336
+ background: linear-gradient(
1337
+ 90deg,
1338
+ rgba(var(--primary-rgb), 0.3),
1339
+ rgba(var(--primary-rgb), 0.1),
1340
+ rgba(var(--primary-rgb), 0.3)
1341
+ );
1342
+ }
1343
+
1344
+ &:hover {
1345
+ background: linear-gradient(
1346
+ 135deg,
1347
+ rgba(var(--primary-rgb), 0.05),
1348
+ rgba(var(--primary-rgb), 0.08)
1349
+ );
1350
+ border-left-color: rgba(var(--primary-rgb), 0.6);
1351
+ box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.1);
1352
+ }
1353
+
1354
+ // Override section styling when in preview mode
1355
+ .gridtxt__header {
1356
+ background: linear-gradient(
1357
+ 135deg,
1358
+ rgba(var(--primary-rgb), 0.1),
1359
+ rgba(var(--primary-rgb), 0.15)
1360
+ );
1361
+ border-left: 3px solid var(--primary-color);
1362
+ position: relative;
1363
+
1364
+ &::after {
1365
+ content: 'PREVIEW';
1366
+ position: absolute;
1367
+ right: 10px;
1368
+ top: 50%;
1369
+ transform: translateY(-50%);
1370
+ font-size: 0.7rem;
1371
+ color: rgba(var(--primary-rgb), 0.7);
1372
+ font-weight: 600;
1373
+ letter-spacing: 1px;
1374
+ }
1375
+ }
1376
+ }
1377
+
1378
+ // Dragging state for @dnd-kit
1379
+ .dragging {
1380
+ opacity: 0.5;
1381
+ transform: rotate(2deg) scale(1.02);
1382
+ z-index: 1000;
1383
+
1384
+ // Ensure dragged items maintain their natural size during drag
1385
+ &.halfBuilderItem {
1386
+ width: min(
1387
+ 300px,
1388
+ 45vw
1389
+ ) !important; // Responsive width for half items during drag
1390
+ max-width: 400px !important;
1391
+ flex-basis: auto !important;
1392
+ flex-shrink: 0 !important;
1393
+ flex-grow: 0 !important;
1394
+ }
1395
+
1396
+ &.fwBuilderItem {
1397
+ width: min(
1398
+ 600px,
1399
+ 90vw
1400
+ ) !important; // Responsive width for full items during drag
1401
+ max-width: 800px !important;
1402
+ flex-basis: auto !important;
1403
+ flex-shrink: 0 !important;
1404
+ flex-grow: 0 !important;
1405
+ }
1406
+
1407
+ // Remove flexbox behavior during drag
1408
+ display: block !important;
1409
+
1410
+ // Hide field controls and info during drag for cleaner appearance
1411
+ .fieldControls {
1412
+ opacity: 0 !important;
1413
+ }
1414
+
1415
+ .fieldInfo {
1416
+ opacity: 0 !important;
1417
+ }
1418
+
1419
+ // Ensure content doesn't stretch
1420
+ .fieldContent {
1421
+ width: 100%;
1422
+ box-sizing: border-box;
1423
+ padding-top: 10px !important; // Reduce padding since controls are hidden
1424
+
1425
+ // Ensure form elements maintain proper sizing
1426
+ .fi__label {
1427
+ width: 100%;
1428
+ max-width: 100%;
1429
+ }
1430
+
1431
+ input,
1432
+ select,
1433
+ textarea,
1434
+ table {
1435
+ width: 100%;
1436
+ max-width: 100%;
1437
+ box-sizing: border-box;
1438
+ }
1439
+
1440
+ // Ensure tables don't overflow during drag
1441
+ table {
1442
+ table-layout: fixed;
1443
+ word-wrap: break-word;
1444
+ }
1445
+ }
1446
+
1447
+ // Add a subtle border to make the drag preview more defined
1448
+ border: 2px solid rgba(var(--primary-rgb), 0.3) !important;
1449
+ border-radius: var(--br) !important;
1450
+ background: white !important;
1451
+ box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15) !important;
1452
+ }
1453
+
1454
+ .fieldContent {
1455
+ position: relative;
1456
+ z-index: 1;
1457
+ padding-top: 50px; /* Add space for the larger controls */
1458
+ flex-grow: 1;
1459
+ display: flex;
1460
+ flex-direction: column;
1461
+ justify-content: flex-start;
1462
+
1463
+ // Ensure form elements take full height
1464
+ .fi__label {
1465
+ height: 100%;
1466
+ display: flex;
1467
+ flex-direction: column;
1468
+ justify-content: flex-start;
1469
+ }
1470
+
1471
+ // Handle different field types
1472
+ select,
1473
+ input,
1474
+ textarea {
1475
+ flex-grow: 1;
1476
+ }
1477
+ }
1478
+
1479
+ .emptyState {
1480
+ padding: 3rem;
1481
+ text-align: center;
1482
+ color: rgba(var(--paragraph-color-rgb), 0.7);
1483
+ font-size: 1rem;
1484
+ background: rgba(var(--primary-rgb), 0.02);
1485
+ border-radius: var(--br);
1486
+ margin: 1rem;
1487
+
1488
+ p {
1489
+ margin: 0;
1490
+ }
1491
+ }
1492
+
1493
+ .sortingHelper {
1494
+ z-index: 99999 !important;
1495
+ box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2) !important;
1496
+ transform: rotate(2deg) scale(1.05) !important;
1497
+ pointer-events: none !important;
1498
+ opacity: 0.9 !important;
1499
+ background: white !important;
1500
+ border: 2px solid var(--primary-color) !important;
1501
+ border-radius: 8px !important;
1502
+
1503
+ // Hide field controls during drag
1504
+ .fieldControls {
1505
+ display: none !important;
1506
+ }
1507
+
1508
+ // Ensure field content is visible
1509
+ .fieldContent {
1510
+ opacity: 1 !important;
1511
+ visibility: visible !important;
1512
+ }
1513
+ min-height: 80px !important;
1514
+
1515
+ // Ensure proper flex layout is maintained
1516
+ &.formBuilderItem {
1517
+ display: flex !important;
1518
+ flex-direction: column !important;
1519
+ }
1520
+
1521
+ &.halfBuilderItem {
1522
+ flex-basis: auto !important;
1523
+ width: auto !important;
1524
+ }
1525
+
1526
+ &.fwBuilderItem {
1527
+ flex-basis: auto !important;
1528
+ width: auto !important;
1529
+ }
1530
+
1531
+ // Ensure the helper is visible and styled
1532
+ &::before {
1533
+ content: '';
1534
+ position: absolute;
1535
+ top: -2px;
1536
+ left: -2px;
1537
+ right: -2px;
1538
+ bottom: -2px;
1539
+ background: linear-gradient(
1540
+ 45deg,
1541
+ var(--primary-color),
1542
+ var(--secondary-color)
1543
+ );
1544
+ border-radius: var(--br);
1545
+ z-index: -1;
1546
+ opacity: 0.1;
1547
+ }
1548
+
1549
+ // Disable all interactions during drag
1550
+ * {
1551
+ pointer-events: none !important;
1552
+ }
1553
+
1554
+ // Hide field controls during drag but keep content visible
1555
+ .fieldControls {
1556
+ opacity: 0 !important;
1557
+ visibility: hidden !important;
1558
+ display: none !important;
1559
+ }
1560
+
1561
+ // Ensure field content is visible during drag
1562
+ .fieldContent {
1563
+ opacity: 1 !important;
1564
+ visibility: visible !important;
1565
+ display: flex !important;
1566
+ flex-direction: column !important;
1567
+ flex-grow: 1 !important;
1568
+ padding-top: 10px !important; // Reduce padding since controls are hidden
1569
+ }
1570
+
1571
+ // Ensure form elements are visible
1572
+ .fi__label {
1573
+ display: flex !important;
1574
+ flex-direction: column !important;
1575
+ opacity: 1 !important;
1576
+ visibility: visible !important;
1577
+ }
1578
+
1579
+ // Ensure inputs, selects, textareas are visible
1580
+ input,
1581
+ select,
1582
+ textarea,
1583
+ button,
1584
+ table,
1585
+ img,
1586
+ h2,
1587
+ div {
1588
+ opacity: 1 !important;
1589
+ visibility: visible !important;
1590
+ display: block !important;
1591
+ }
1592
+
1593
+ // Special handling for table elements
1594
+ table {
1595
+ display: table !important;
1596
+ }
1597
+
1598
+ thead {
1599
+ display: table-header-group !important;
1600
+ }
1601
+
1602
+ tbody {
1603
+ display: table-row-group !important;
1604
+ }
1605
+
1606
+ tr {
1607
+ display: table-row !important;
1608
+ }
1609
+
1610
+ td,
1611
+ th {
1612
+ display: table-cell !important;
1613
+ }
1614
+ }
1615
+
879
1616
  .dragitem {
880
1617
  list-style: none;
881
1618
  display: flex;