@nextlyhq/plugin-form-builder 0.0.1

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 (37) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +122 -0
  3. package/dist/CheckboxFieldEditor-K4T6QX52.js +121 -0
  4. package/dist/CheckboxFieldEditor-K4T6QX52.js.map +1 -0
  5. package/dist/DateFieldEditor-JFJFAVOH.js +187 -0
  6. package/dist/DateFieldEditor-JFJFAVOH.js.map +1 -0
  7. package/dist/EmailFieldEditor-MMOXXL7P.js +138 -0
  8. package/dist/EmailFieldEditor-MMOXXL7P.js.map +1 -0
  9. package/dist/NumberFieldEditor-UISAYR6Z.js +175 -0
  10. package/dist/NumberFieldEditor-UISAYR6Z.js.map +1 -0
  11. package/dist/RadioFieldEditor-6UQFH4WT.js +165 -0
  12. package/dist/RadioFieldEditor-6UQFH4WT.js.map +1 -0
  13. package/dist/SelectFieldEditor-PSO4KHV4.js +213 -0
  14. package/dist/SelectFieldEditor-PSO4KHV4.js.map +1 -0
  15. package/dist/TextFieldEditor-5EU64EA5.js +187 -0
  16. package/dist/TextFieldEditor-5EU64EA5.js.map +1 -0
  17. package/dist/TextareaFieldEditor-773G3LNM.js +190 -0
  18. package/dist/TextareaFieldEditor-773G3LNM.js.map +1 -0
  19. package/dist/admin/index.css +934 -0
  20. package/dist/admin/index.css.map +1 -0
  21. package/dist/admin/index.d.ts +547 -0
  22. package/dist/admin/index.js +4030 -0
  23. package/dist/admin/index.js.map +1 -0
  24. package/dist/chunk-ABNZFTQK.js +586 -0
  25. package/dist/chunk-ABNZFTQK.js.map +1 -0
  26. package/dist/chunk-XTCEPJ7B.js +256 -0
  27. package/dist/chunk-XTCEPJ7B.js.map +1 -0
  28. package/dist/components/index.d.ts +3 -0
  29. package/dist/components/index.js +9 -0
  30. package/dist/components/index.js.map +1 -0
  31. package/dist/index-C0kBvYjm.d.ts +1012 -0
  32. package/dist/index.d.ts +1663 -0
  33. package/dist/index.js +2470 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/styles/form-builder.css +1150 -0
  36. package/dist/styles/submissions-filter.css +75 -0
  37. package/package.json +96 -0
@@ -0,0 +1,1150 @@
1
+ /**
2
+ * Form Builder Styles
3
+ *
4
+ * Styles for the visual drag-and-drop form builder UI.
5
+ * Layout is now driven by Tailwind utility classes in:
6
+ * - FormBuilderView.tsx (page layout, header, sidebar shell, main tabs)
7
+ * - FieldLibrary.tsx (accordion palette)
8
+ * - FormCanvas.tsx (field rows, empty state)
9
+ *
10
+ * This file retains only:
11
+ * 1. CSS custom properties + dark mode overrides
12
+ * 2. FieldEditor component styles (.field-editor-*)
13
+ * 3. FormSettingsTab component styles (.form-settings-*)
14
+ * 4. FormNotificationsTab component styles (.form-notifications-*, .form-notification-*)
15
+ * 5. Integration modal / card styles (.form-integration-*)
16
+ *
17
+ * @module styles/form-builder
18
+ * @since 0.1.0
19
+ */
20
+
21
+ /* ============================================================================
22
+ CSS Custom Properties
23
+ ============================================================================ */
24
+
25
+ .form-builder-view {
26
+ --fb-primary: hsl(var(--primary));
27
+ --fb-primary-hover: hsl(var(--primary) / 0.9);
28
+ --fb-primary-light: hsl(var(--primary) / 0.1);
29
+ --fb-danger: #ef4444;
30
+ --fb-danger-hover: #dc2626;
31
+ --fb-success: #22c55e;
32
+ --fb-warning: #f59e0b;
33
+
34
+ --fb-bg: #ffffff;
35
+ --fb-bg-muted: #f8fafc;
36
+ --fb-bg-hover: #f1f5f9;
37
+ --fb-border: #e2e8f0;
38
+ --fb-border-focus: hsl(var(--primary));
39
+
40
+ --fb-text: #1e293b;
41
+ --fb-text-muted: #64748b;
42
+ --fb-text-light: #94a3b8;
43
+
44
+ --fb-radius-sm: 0.375rem; /* 6px */
45
+ --fb-radius-md: 0.375rem; /* 6px */
46
+ --fb-radius-lg: 0.375rem; /* 6px */
47
+
48
+ --fb-shadow: none;
49
+ --fb-shadow-md: none;
50
+ --fb-shadow-lg: none;
51
+ }
52
+
53
+ /* ============================================================================
54
+ Dark Mode Overrides
55
+ ============================================================================ */
56
+
57
+ .dark .form-builder-view,
58
+ [data-theme="dark"] .form-builder-view {
59
+ --fb-bg: hsl(222.2, 47.4%, 11.2%);
60
+ --fb-bg-muted: hsl(217.2, 32.6%, 17.5%);
61
+ --fb-bg-hover: hsl(215.4, 16.3%, 25.9%);
62
+ --fb-border: hsl(217.2, 32.6%, 17.5%);
63
+
64
+ --fb-text: hsl(210, 40%, 98%);
65
+ --fb-text-muted: hsl(215, 20.2%, 65.1%);
66
+ --fb-text-light: hsl(215.3, 25%, 36.7%);
67
+ }
68
+
69
+ /* ============================================================================
70
+ Field Editor (Right Panel)
71
+ ============================================================================ */
72
+
73
+ .field-editor {
74
+ padding: 16px;
75
+ }
76
+
77
+ .field-editor-header {
78
+ margin-bottom: 20px;
79
+ }
80
+
81
+ .field-editor-title {
82
+ font-size: 0.875rem;
83
+ font-weight: 600;
84
+ color: var(--fb-text);
85
+ margin: 0 0 4px 0;
86
+ display: flex;
87
+ align-items: center;
88
+ gap: 8px;
89
+ }
90
+
91
+ .field-editor-type-badge {
92
+ font-size: 0.75rem;
93
+ font-weight: 500;
94
+ color: var(--fb-primary);
95
+ background: var(--fb-primary-light);
96
+ padding: 2px 8px;
97
+ border-radius: 9999px;
98
+ }
99
+
100
+ .field-editor-actions {
101
+ display: flex;
102
+ gap: 8px;
103
+ margin-top: 12px;
104
+ }
105
+
106
+ .field-editor-action-btn {
107
+ display: flex;
108
+ align-items: center;
109
+ gap: 6px;
110
+ padding: 6px 12px;
111
+ font-size: 0.75rem;
112
+ font-weight: 500;
113
+ border: 1px solid var(--fb-border);
114
+ border-radius: var(--fb-radius-sm);
115
+ background: var(--fb-bg);
116
+ cursor: pointer;
117
+ transition: all 0.15s ease;
118
+ color: var(--fb-text-muted);
119
+ }
120
+
121
+ .field-editor-action-btn:hover {
122
+ border-color: var(--fb-text-light);
123
+ color: var(--fb-text);
124
+ }
125
+
126
+ .field-editor-action-btn--danger:hover {
127
+ border-color: var(--fb-danger);
128
+ color: var(--fb-danger);
129
+ background: #fef2f2;
130
+ }
131
+
132
+ .field-editor-section {
133
+ margin-bottom: 20px;
134
+ }
135
+
136
+ .field-editor-section-title {
137
+ font-size: 0.75rem;
138
+ font-weight: 600;
139
+ color: var(--fb-text-muted);
140
+ text-transform: uppercase;
141
+ letter-spacing: 0.05em;
142
+ margin: 0 0 12px 0;
143
+ }
144
+
145
+ .field-editor-row {
146
+ margin-bottom: 14px;
147
+ }
148
+
149
+ .field-editor-row:last-child {
150
+ margin-bottom: 0;
151
+ }
152
+
153
+ .field-editor-row--checkbox {
154
+ display: flex;
155
+ align-items: center;
156
+ }
157
+
158
+ .field-editor-field {
159
+ margin-bottom: 16px;
160
+ }
161
+
162
+ .field-editor-field:last-child {
163
+ margin-bottom: 0;
164
+ }
165
+
166
+ .field-editor-label {
167
+ display: block;
168
+ font-size: 0.8125rem;
169
+ font-weight: 500;
170
+ color: var(--fb-text);
171
+ margin-bottom: 6px;
172
+ }
173
+
174
+ .field-editor-input {
175
+ width: 100%;
176
+ padding: 8px 12px;
177
+ font-size: 0.875rem;
178
+ color: var(--fb-text);
179
+ background: var(--fb-bg);
180
+ border: 1px solid var(--fb-border);
181
+ border-radius: var(--fb-radius-sm);
182
+ transition: all 0.15s ease;
183
+ }
184
+
185
+ .field-editor-input:focus {
186
+ outline: none;
187
+ border-color: var(--fb-border-focus);
188
+ }
189
+
190
+ .field-editor-input::placeholder {
191
+ color: var(--fb-text-light);
192
+ }
193
+
194
+ .field-editor-input--small {
195
+ width: 120px;
196
+ }
197
+
198
+ .field-editor-textarea {
199
+ min-height: 80px;
200
+ resize: vertical;
201
+ }
202
+
203
+ .field-editor-select {
204
+ width: 100%;
205
+ padding: 8px 12px;
206
+ font-size: 0.875rem;
207
+ color: var(--fb-text);
208
+ background: var(--fb-bg);
209
+ border: 1px solid var(--fb-border);
210
+ border-radius: var(--fb-radius-sm);
211
+ transition: all 0.15s ease;
212
+ cursor: pointer;
213
+ }
214
+
215
+ .field-editor-select:focus {
216
+ outline: none;
217
+ border-color: var(--fb-border-focus);
218
+ }
219
+
220
+ .field-editor-checkbox-row {
221
+ display: flex;
222
+ align-items: center;
223
+ gap: 8px;
224
+ }
225
+
226
+ .field-editor-checkbox {
227
+ width: 16px;
228
+ height: 16px;
229
+ accent-color: var(--fb-primary);
230
+ }
231
+
232
+ .field-editor-checkbox-label {
233
+ display: flex;
234
+ align-items: center;
235
+ gap: 8px;
236
+ cursor: pointer;
237
+ font-size: 0.8125rem;
238
+ color: var(--fb-text);
239
+ }
240
+
241
+ .field-editor-help {
242
+ display: block;
243
+ font-size: 0.6875rem;
244
+ color: var(--fb-text-muted);
245
+ margin-top: 4px;
246
+ }
247
+
248
+ .field-editor-warning {
249
+ display: block;
250
+ font-size: 0.6875rem;
251
+ color: var(--fb-warning);
252
+ margin-top: 4px;
253
+ }
254
+
255
+ .field-editor-info {
256
+ padding: 10px 14px;
257
+ background: var(--fb-bg-muted);
258
+ border-radius: var(--fb-radius-sm);
259
+ font-size: 0.8125rem;
260
+ color: var(--fb-text-muted);
261
+ }
262
+
263
+ .field-editor-options {
264
+ margin-bottom: 14px;
265
+ }
266
+
267
+ .field-editor-options-empty {
268
+ padding: 12px;
269
+ background: var(--fb-bg-muted);
270
+ border-radius: var(--fb-radius-sm);
271
+ font-size: 0.8125rem;
272
+ color: var(--fb-text-muted);
273
+ text-align: center;
274
+ margin-bottom: 8px;
275
+ }
276
+
277
+ .field-editor-options-list {
278
+ display: flex;
279
+ flex-direction: column;
280
+ gap: 6px;
281
+ margin-bottom: 8px;
282
+ }
283
+
284
+ .field-editor-option-row {
285
+ display: flex;
286
+ align-items: center;
287
+ gap: 6px;
288
+ }
289
+
290
+ .field-editor-option-remove {
291
+ display: flex;
292
+ align-items: center;
293
+ justify-content: center;
294
+ width: 24px;
295
+ height: 24px;
296
+ background: none;
297
+ border: 1px solid var(--fb-border);
298
+ border-radius: var(--fb-radius-sm);
299
+ cursor: pointer;
300
+ font-size: 1rem;
301
+ color: var(--fb-text-muted);
302
+ transition: all 0.15s ease;
303
+ flex-shrink: 0;
304
+ }
305
+
306
+ .field-editor-option-remove:hover {
307
+ color: var(--fb-danger);
308
+ border-color: var(--fb-danger);
309
+ background: #fef2f2;
310
+ }
311
+
312
+ .field-editor-add-option-btn {
313
+ padding: 6px 12px;
314
+ font-size: 0.75rem;
315
+ font-weight: 500;
316
+ color: var(--fb-primary);
317
+ background: var(--fb-primary-light);
318
+ border: 1px dashed var(--fb-primary);
319
+ border-radius: var(--fb-radius-sm);
320
+ cursor: pointer;
321
+ transition: all 0.15s ease;
322
+ width: 100%;
323
+ }
324
+
325
+ .field-editor-add-option-btn:hover {
326
+ background: #dbeafe;
327
+ }
328
+
329
+ .field-editor-tabs {
330
+ display: flex;
331
+ gap: 0;
332
+ background: var(--fb-bg-muted);
333
+ border-radius: var(--fb-radius-sm);
334
+ padding: 3px;
335
+ margin-bottom: 16px;
336
+ }
337
+
338
+ .field-editor-tab {
339
+ flex: 1;
340
+ padding: 5px 10px;
341
+ font-size: 0.75rem;
342
+ font-weight: 500;
343
+ color: var(--fb-text-muted);
344
+ background: transparent;
345
+ border: none;
346
+ border-radius: 4px;
347
+ cursor: pointer;
348
+ transition: all 0.15s ease;
349
+ }
350
+
351
+ .field-editor-tab--active {
352
+ color: var(--fb-text);
353
+ background: var(--fb-bg);
354
+ }
355
+
356
+ .field-editor-footer {
357
+ display: flex;
358
+ gap: 8px;
359
+ margin-top: 20px;
360
+ padding-top: 16px;
361
+ border-top: 1px solid var(--fb-border);
362
+ }
363
+
364
+ .field-editor-btn {
365
+ display: inline-flex;
366
+ align-items: center;
367
+ justify-content: center;
368
+ gap: 6px;
369
+ padding: 7px 14px;
370
+ font-size: 0.8125rem;
371
+ font-weight: 500;
372
+ border-radius: var(--fb-radius-sm);
373
+ cursor: pointer;
374
+ transition: all 0.15s ease;
375
+ border: 1px solid var(--fb-border);
376
+ background: var(--fb-bg);
377
+ color: var(--fb-text-muted);
378
+ }
379
+
380
+ .field-editor-btn:hover {
381
+ color: var(--fb-text);
382
+ border-color: var(--fb-text-light);
383
+ }
384
+
385
+ .field-editor-btn--secondary {
386
+ color: var(--fb-text-muted);
387
+ }
388
+
389
+ .field-editor-btn--danger {
390
+ color: var(--fb-danger);
391
+ border-color: #fecaca;
392
+ background: #fef2f2;
393
+ }
394
+
395
+ .field-editor-btn--danger:hover {
396
+ background: #fee2e2;
397
+ border-color: var(--fb-danger);
398
+ }
399
+
400
+ /* ============================================================================
401
+ Form Settings Tab
402
+ ============================================================================ */
403
+
404
+ .form-settings-tab {
405
+ max-width: 640px;
406
+ }
407
+
408
+ .form-settings-section {
409
+ margin-bottom: 32px;
410
+ padding-bottom: 24px;
411
+ border-bottom: 1px solid var(--fb-border);
412
+ }
413
+
414
+ .form-settings-section:last-child {
415
+ margin-bottom: 0;
416
+ padding-bottom: 0;
417
+ border-bottom: none;
418
+ }
419
+
420
+ .form-settings-section-title {
421
+ font-size: 1rem;
422
+ font-weight: 600;
423
+ color: var(--fb-text);
424
+ margin: 0 0 16px 0;
425
+ }
426
+
427
+ .form-settings-field {
428
+ margin-bottom: 16px;
429
+ }
430
+
431
+ .form-settings-field:last-child {
432
+ margin-bottom: 0;
433
+ }
434
+
435
+ .form-settings-field--checkbox {
436
+ margin-bottom: 12px;
437
+ }
438
+
439
+ .form-settings-label {
440
+ display: block;
441
+ font-size: 0.875rem;
442
+ font-weight: 500;
443
+ color: var(--fb-text);
444
+ margin-bottom: 6px;
445
+ }
446
+
447
+ .form-settings-input,
448
+ .form-settings-textarea {
449
+ width: 100%;
450
+ padding: 10px 14px;
451
+ font-size: 0.875rem;
452
+ color: var(--fb-text);
453
+ background: var(--fb-bg);
454
+ border: 1px solid var(--fb-border);
455
+ border-radius: var(--fb-radius-md);
456
+ transition: all 0.15s ease;
457
+ }
458
+
459
+ .form-settings-input:focus,
460
+ .form-settings-textarea:focus {
461
+ outline: none;
462
+ border-color: var(--fb-border-focus);
463
+ }
464
+
465
+ .form-settings-input::placeholder,
466
+ .form-settings-textarea::placeholder {
467
+ color: var(--fb-text-light);
468
+ }
469
+
470
+ .form-settings-textarea {
471
+ min-height: 80px;
472
+ resize: vertical;
473
+ }
474
+
475
+ .form-settings-checkbox-label {
476
+ display: flex;
477
+ align-items: center;
478
+ gap: 10px;
479
+ cursor: pointer;
480
+ font-size: 0.875rem;
481
+ color: var(--fb-text);
482
+ }
483
+
484
+ .form-settings-checkbox {
485
+ width: 18px;
486
+ height: 18px;
487
+ accent-color: var(--fb-primary);
488
+ cursor: pointer;
489
+ }
490
+
491
+ .form-settings-hint {
492
+ font-size: 0.75rem;
493
+ color: var(--fb-text-muted);
494
+ margin: 6px 0 0 0;
495
+ }
496
+
497
+ .form-settings-field--checkbox .form-settings-hint {
498
+ margin-left: 28px;
499
+ }
500
+
501
+ /* ============================================================================
502
+ Form Notifications Tab
503
+ ============================================================================ */
504
+
505
+ .form-notifications-tab {
506
+ max-width: 800px;
507
+ }
508
+
509
+ .form-notifications-header {
510
+ display: flex;
511
+ align-items: flex-start;
512
+ justify-content: space-between;
513
+ gap: 24px;
514
+ margin-bottom: 24px;
515
+ }
516
+
517
+ .form-notifications-header-content {
518
+ flex: 1;
519
+ }
520
+
521
+ .form-notifications-title {
522
+ font-size: 1.125rem;
523
+ font-weight: 600;
524
+ color: var(--fb-text);
525
+ margin: 0 0 4px 0;
526
+ }
527
+
528
+ .form-notifications-description {
529
+ font-size: 0.875rem;
530
+ color: var(--fb-text-muted);
531
+ margin: 0;
532
+ }
533
+
534
+ .form-notifications-actions {
535
+ display: flex;
536
+ gap: 8px;
537
+ }
538
+
539
+ .form-notifications-add-btn {
540
+ padding: 8px 14px;
541
+ font-size: 0.8125rem;
542
+ font-weight: 500;
543
+ color: #ffffff;
544
+ background: var(--fb-primary);
545
+ border: none;
546
+ border-radius: var(--fb-radius-md);
547
+ cursor: pointer;
548
+ transition: all 0.15s ease;
549
+ white-space: nowrap;
550
+ }
551
+
552
+ .form-notifications-add-btn:hover {
553
+ background: var(--fb-primary-hover);
554
+ }
555
+
556
+ .form-notifications-add-btn--secondary {
557
+ color: var(--fb-text);
558
+ background: var(--fb-bg);
559
+ border: 1px solid var(--fb-border);
560
+ }
561
+
562
+ .form-notifications-add-btn--secondary:hover {
563
+ background: var(--fb-bg-hover);
564
+ border-color: var(--fb-text-light);
565
+ }
566
+
567
+ /* Empty State */
568
+ .form-notifications-empty {
569
+ display: flex;
570
+ flex-direction: column;
571
+ align-items: center;
572
+ justify-content: center;
573
+ padding: 48px 24px;
574
+ background: var(--fb-bg-muted);
575
+ border: 2px dashed var(--fb-border);
576
+ border-radius: var(--fb-radius-lg);
577
+ text-align: center;
578
+ }
579
+
580
+ .form-notifications-empty-icon {
581
+ font-size: 3rem;
582
+ margin-bottom: 16px;
583
+ opacity: 0.5;
584
+ }
585
+
586
+ .form-notifications-empty-title {
587
+ font-size: 1rem;
588
+ font-weight: 600;
589
+ color: var(--fb-text);
590
+ margin: 0 0 8px 0;
591
+ }
592
+
593
+ .form-notifications-empty-hint {
594
+ font-size: 0.875rem;
595
+ color: var(--fb-text-muted);
596
+ margin: 0 0 20px 0;
597
+ max-width: 400px;
598
+ }
599
+
600
+ .form-notifications-empty-actions {
601
+ display: flex;
602
+ gap: 8px;
603
+ }
604
+
605
+ /* Notifications List */
606
+ .form-notifications-list {
607
+ display: flex;
608
+ flex-direction: column;
609
+ gap: 16px;
610
+ }
611
+
612
+ /* Notification Card */
613
+ .form-notification-card {
614
+ background: var(--fb-bg);
615
+ border: 1px solid var(--fb-border);
616
+ border-radius: var(--fb-radius-lg);
617
+ overflow: hidden;
618
+ }
619
+
620
+ .form-notification-card--disabled {
621
+ opacity: 0.6;
622
+ }
623
+
624
+ .form-notification-header {
625
+ display: flex;
626
+ align-items: center;
627
+ justify-content: space-between;
628
+ gap: 12px;
629
+ padding: 12px 16px;
630
+ background: var(--fb-bg-muted);
631
+ border-bottom: 1px solid var(--fb-border);
632
+ }
633
+
634
+ .form-notification-header-left {
635
+ display: flex;
636
+ align-items: center;
637
+ gap: 12px;
638
+ flex: 1;
639
+ min-width: 0;
640
+ }
641
+
642
+ /* Toggle Switch */
643
+ .form-notification-toggle {
644
+ position: relative;
645
+ display: inline-block;
646
+ width: 40px;
647
+ height: 22px;
648
+ flex-shrink: 0;
649
+ }
650
+
651
+ .form-notification-toggle input {
652
+ opacity: 0;
653
+ width: 0;
654
+ height: 0;
655
+ }
656
+
657
+ .form-notification-toggle-slider {
658
+ position: absolute;
659
+ cursor: pointer;
660
+ top: 0;
661
+ left: 0;
662
+ right: 0;
663
+ bottom: 0;
664
+ background-color: var(--fb-border);
665
+ transition: 0.2s;
666
+ border-radius: 22px;
667
+ }
668
+
669
+ .form-notification-toggle-slider:before {
670
+ position: absolute;
671
+ content: "";
672
+ height: 16px;
673
+ width: 16px;
674
+ left: 3px;
675
+ bottom: 3px;
676
+ background-color: white;
677
+ transition: 0.2s;
678
+ border-radius: 50%;
679
+ }
680
+
681
+ .form-notification-toggle input:checked + .form-notification-toggle-slider {
682
+ background-color: var(--fb-success);
683
+ }
684
+
685
+ .form-notification-toggle
686
+ input:checked
687
+ + .form-notification-toggle-slider:before {
688
+ transform: translateX(18px);
689
+ }
690
+
691
+ .form-notification-name {
692
+ flex: 1;
693
+ min-width: 0;
694
+ padding: 6px 10px;
695
+ font-size: 0.875rem;
696
+ font-weight: 500;
697
+ color: var(--fb-text);
698
+ background: var(--fb-bg);
699
+ border: 1px solid transparent;
700
+ border-radius: var(--fb-radius-sm);
701
+ transition: all 0.15s ease;
702
+ }
703
+
704
+ .form-notification-name:focus {
705
+ outline: none;
706
+ border-color: var(--fb-border-focus);
707
+ }
708
+
709
+ .form-notification-badge {
710
+ padding: 3px 8px;
711
+ font-size: 0.6875rem;
712
+ font-weight: 600;
713
+ text-transform: uppercase;
714
+ letter-spacing: 0.05em;
715
+ border-radius: 9999px;
716
+ flex-shrink: 0;
717
+ }
718
+
719
+ .form-notification-badge--admin {
720
+ color: #7c3aed;
721
+ background: #ede9fe;
722
+ }
723
+
724
+ .form-notification-badge--autoReply {
725
+ color: #059669;
726
+ background: #d1fae5;
727
+ }
728
+
729
+ .form-notification-delete {
730
+ padding: 6px 12px;
731
+ font-size: 0.75rem;
732
+ font-weight: 500;
733
+ color: var(--fb-text-muted);
734
+ background: transparent;
735
+ border: 1px solid var(--fb-border);
736
+ border-radius: var(--fb-radius-sm);
737
+ cursor: pointer;
738
+ transition: all 0.15s ease;
739
+ }
740
+
741
+ .form-notification-delete:hover {
742
+ color: var(--fb-danger);
743
+ border-color: var(--fb-danger);
744
+ background: #fef2f2;
745
+ }
746
+
747
+ .form-notification-body {
748
+ padding: 16px;
749
+ }
750
+
751
+ .form-notification-row {
752
+ margin-bottom: 16px;
753
+ }
754
+
755
+ .form-notification-row:last-child {
756
+ margin-bottom: 0;
757
+ }
758
+
759
+ .form-notification-row--two-col {
760
+ display: grid;
761
+ grid-template-columns: 1fr 1fr;
762
+ gap: 16px;
763
+ }
764
+
765
+ .form-notification-field {
766
+ display: flex;
767
+ flex-direction: column;
768
+ gap: 6px;
769
+ }
770
+
771
+ .form-notification-label {
772
+ font-size: 0.8125rem;
773
+ font-weight: 500;
774
+ color: var(--fb-text);
775
+ }
776
+
777
+ .form-notification-input,
778
+ .form-notification-textarea {
779
+ padding: 10px 14px;
780
+ font-size: 0.875rem;
781
+ color: var(--fb-text);
782
+ background: var(--fb-bg);
783
+ border: 1px solid var(--fb-border);
784
+ border-radius: var(--fb-radius-md);
785
+ transition: all 0.15s ease;
786
+ }
787
+
788
+ .form-notification-input:focus,
789
+ .form-notification-textarea:focus {
790
+ outline: none;
791
+ border-color: var(--fb-border-focus);
792
+ }
793
+
794
+ .form-notification-input::placeholder,
795
+ .form-notification-textarea::placeholder {
796
+ color: var(--fb-text-light);
797
+ }
798
+
799
+ .form-notification-textarea {
800
+ min-height: 120px;
801
+ resize: vertical;
802
+ font-family: inherit;
803
+ }
804
+
805
+ .form-notification-hint {
806
+ font-size: 0.75rem;
807
+ color: var(--fb-text-muted);
808
+ }
809
+
810
+ .form-notification-hint p {
811
+ margin: 0 0 4px 0;
812
+ }
813
+
814
+ .form-notification-placeholders {
815
+ margin: 0;
816
+ padding-left: 16px;
817
+ list-style: none;
818
+ }
819
+
820
+ .form-notification-placeholders li {
821
+ margin-bottom: 2px;
822
+ }
823
+
824
+ .form-notification-placeholders code {
825
+ font-size: 0.6875rem;
826
+ color: var(--fb-primary);
827
+ background: var(--fb-primary-light);
828
+ padding: 1px 4px;
829
+ border-radius: 3px;
830
+ }
831
+
832
+ /* Help Section */
833
+ .form-notifications-help {
834
+ margin-top: 32px;
835
+ padding: 16px 20px;
836
+ background: var(--fb-bg-muted);
837
+ border-radius: var(--fb-radius-md);
838
+ }
839
+
840
+ .form-notifications-help h4 {
841
+ font-size: 0.875rem;
842
+ font-weight: 600;
843
+ color: var(--fb-text);
844
+ margin: 0 0 12px 0;
845
+ }
846
+
847
+ .form-notifications-help ul {
848
+ margin: 0;
849
+ padding-left: 20px;
850
+ font-size: 0.8125rem;
851
+ color: var(--fb-text-muted);
852
+ line-height: 1.6;
853
+ }
854
+
855
+ .form-notifications-help li {
856
+ margin-bottom: 6px;
857
+ }
858
+
859
+ .form-notifications-help li:last-child {
860
+ margin-bottom: 0;
861
+ }
862
+
863
+ .form-notifications-help strong {
864
+ color: var(--fb-text);
865
+ }
866
+
867
+ /* ============================================================================
868
+ Email Integration Cards
869
+ ============================================================================ */
870
+
871
+ .form-integration-card {
872
+ display: flex;
873
+ align-items: center;
874
+ justify-content: space-between;
875
+ gap: 16px;
876
+ padding: 14px 16px;
877
+ background: var(--fb-bg);
878
+ border: 1px solid var(--fb-border);
879
+ border-radius: var(--fb-radius-lg);
880
+ transition: border-color 0.15s ease;
881
+ }
882
+
883
+ .form-integration-card:hover {
884
+ border-color: var(--fb-text-light);
885
+ }
886
+
887
+ .form-integration-card--disabled {
888
+ opacity: 0.55;
889
+ }
890
+
891
+ .form-integration-card-left {
892
+ display: flex;
893
+ align-items: center;
894
+ gap: 12px;
895
+ flex: 1;
896
+ min-width: 0;
897
+ }
898
+
899
+ .form-integration-card-info {
900
+ display: flex;
901
+ flex-direction: column;
902
+ gap: 4px;
903
+ min-width: 0;
904
+ }
905
+
906
+ .form-integration-card-name {
907
+ font-size: 0.9375rem;
908
+ font-weight: 600;
909
+ color: var(--fb-text);
910
+ white-space: nowrap;
911
+ overflow: hidden;
912
+ text-overflow: ellipsis;
913
+ }
914
+
915
+ .form-integration-provider-badge {
916
+ font-size: 0.75rem;
917
+ color: var(--fb-text-muted);
918
+ }
919
+
920
+ .form-integration-card-actions {
921
+ display: flex;
922
+ gap: 8px;
923
+ flex-shrink: 0;
924
+ }
925
+
926
+ .form-integration-btn {
927
+ padding: 6px 12px;
928
+ font-size: 0.75rem;
929
+ font-weight: 500;
930
+ border-radius: var(--fb-radius-sm);
931
+ cursor: pointer;
932
+ transition: all 0.15s ease;
933
+ border: 1px solid var(--fb-border);
934
+ background: transparent;
935
+ }
936
+
937
+ .form-integration-btn--edit {
938
+ color: var(--fb-text-muted);
939
+ }
940
+
941
+ .form-integration-btn--edit:hover {
942
+ color: var(--fb-primary);
943
+ border-color: var(--fb-primary);
944
+ background: var(--fb-primary-light);
945
+ }
946
+
947
+ .form-integration-btn--delete {
948
+ color: var(--fb-text-muted);
949
+ }
950
+
951
+ .form-integration-btn--delete:hover {
952
+ color: var(--fb-danger);
953
+ border-color: var(--fb-danger);
954
+ background: #fef2f2;
955
+ }
956
+
957
+ /* ============================================================================
958
+ Email Integration Modal
959
+ ============================================================================ */
960
+
961
+ .form-integration-modal-overlay {
962
+ position: fixed;
963
+ inset: 0;
964
+ background: rgba(0, 0, 0, 0.45);
965
+ display: flex;
966
+ align-items: center;
967
+ justify-content: center;
968
+ z-index: 1000;
969
+ padding: 24px;
970
+ }
971
+
972
+ .form-integration-modal {
973
+ background: var(--fb-bg);
974
+ border: 1px solid var(--fb-border);
975
+ border-radius: var(--fb-radius-lg);
976
+ width: 100%;
977
+ max-width: 560px;
978
+ max-height: calc(100vh - 48px);
979
+ display: flex;
980
+ flex-direction: column;
981
+ box-shadow:
982
+ 0 20px 60px rgba(0, 0, 0, 0.15),
983
+ 0 4px 16px rgba(0, 0, 0, 0.1);
984
+ }
985
+
986
+ .form-integration-modal-header {
987
+ padding: 20px 24px 16px;
988
+ border-bottom: 1px solid var(--fb-border);
989
+ flex-shrink: 0;
990
+ }
991
+
992
+ .form-integration-modal-title {
993
+ font-size: 1.0625rem;
994
+ font-weight: 600;
995
+ color: var(--fb-text);
996
+ margin: 0;
997
+ }
998
+
999
+ .form-integration-modal-body {
1000
+ padding: 20px 24px;
1001
+ overflow-y: auto;
1002
+ display: flex;
1003
+ flex-direction: column;
1004
+ gap: 16px;
1005
+ flex: 1;
1006
+ }
1007
+
1008
+ .form-integration-modal-footer {
1009
+ padding: 16px 24px;
1010
+ border-top: 1px solid var(--fb-border);
1011
+ display: flex;
1012
+ justify-content: flex-end;
1013
+ gap: 8px;
1014
+ flex-shrink: 0;
1015
+ }
1016
+
1017
+ /* Modal select */
1018
+ .form-integration-select {
1019
+ padding: 10px 14px;
1020
+ font-size: 0.875rem;
1021
+ color: var(--fb-text);
1022
+ background: var(--fb-bg);
1023
+ border: 1px solid var(--fb-border);
1024
+ border-radius: var(--fb-radius-md);
1025
+ transition: all 0.15s ease;
1026
+ appearance: none;
1027
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
1028
+ background-repeat: no-repeat;
1029
+ background-position: right 12px center;
1030
+ padding-right: 36px;
1031
+ cursor: pointer;
1032
+ }
1033
+
1034
+ .form-integration-select:focus {
1035
+ outline: none;
1036
+ border-color: var(--fb-border-focus);
1037
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
1038
+ }
1039
+
1040
+ /* Recipient list */
1041
+ .form-integration-recipient-list {
1042
+ display: flex;
1043
+ flex-direction: column;
1044
+ gap: 6px;
1045
+ margin-bottom: 8px;
1046
+ }
1047
+
1048
+ .form-integration-recipient-item {
1049
+ display: flex;
1050
+ align-items: center;
1051
+ justify-content: space-between;
1052
+ padding: 6px 10px;
1053
+ background: var(--fb-bg-muted);
1054
+ border: 1px solid var(--fb-border);
1055
+ border-radius: var(--fb-radius-sm);
1056
+ font-size: 0.8125rem;
1057
+ color: var(--fb-text);
1058
+ }
1059
+
1060
+ .form-integration-recipient-remove {
1061
+ background: transparent;
1062
+ border: none;
1063
+ color: var(--fb-text-light);
1064
+ cursor: pointer;
1065
+ font-size: 1rem;
1066
+ line-height: 1;
1067
+ padding: 0 2px;
1068
+ transition: color 0.15s ease;
1069
+ }
1070
+
1071
+ .form-integration-recipient-remove:hover {
1072
+ color: var(--fb-danger);
1073
+ }
1074
+
1075
+ .form-integration-recipient-add {
1076
+ display: flex;
1077
+ gap: 8px;
1078
+ }
1079
+
1080
+ .form-integration-recipient-add .form-notification-input {
1081
+ flex: 1;
1082
+ }
1083
+
1084
+ .form-integration-add-recipient-btn {
1085
+ padding: 10px 14px;
1086
+ font-size: 0.8125rem;
1087
+ font-weight: 500;
1088
+ color: var(--fb-text);
1089
+ background: var(--fb-bg);
1090
+ border: 1px solid var(--fb-border);
1091
+ border-radius: var(--fb-radius-md);
1092
+ cursor: pointer;
1093
+ white-space: nowrap;
1094
+ transition: all 0.15s ease;
1095
+ flex-shrink: 0;
1096
+ }
1097
+
1098
+ .form-integration-add-recipient-btn:hover {
1099
+ background: var(--fb-bg-hover);
1100
+ border-color: var(--fb-text-light);
1101
+ }
1102
+
1103
+ /* Active row */
1104
+ .form-integration-active-row {
1105
+ display: flex;
1106
+ align-items: center;
1107
+ justify-content: space-between;
1108
+ padding: 12px 0 4px;
1109
+ border-top: 1px solid var(--fb-border);
1110
+ }
1111
+
1112
+ .form-integration-active-label {
1113
+ font-size: 0.875rem;
1114
+ font-weight: 500;
1115
+ color: var(--fb-text);
1116
+ }
1117
+
1118
+ /* Modal footer buttons */
1119
+ .form-integration-cancel-btn {
1120
+ padding: 9px 18px;
1121
+ font-size: 0.875rem;
1122
+ font-weight: 500;
1123
+ color: var(--fb-text);
1124
+ background: var(--fb-bg);
1125
+ border: 1px solid var(--fb-border);
1126
+ border-radius: var(--fb-radius-md);
1127
+ cursor: pointer;
1128
+ transition: all 0.15s ease;
1129
+ }
1130
+
1131
+ .form-integration-cancel-btn:hover {
1132
+ background: var(--fb-bg-hover);
1133
+ border-color: var(--fb-text-light);
1134
+ }
1135
+
1136
+ .form-integration-save-btn {
1137
+ padding: 9px 18px;
1138
+ font-size: 0.875rem;
1139
+ font-weight: 500;
1140
+ color: #ffffff;
1141
+ background: var(--fb-primary);
1142
+ border: none;
1143
+ border-radius: var(--fb-radius-md);
1144
+ cursor: pointer;
1145
+ transition: background 0.15s ease;
1146
+ }
1147
+
1148
+ .form-integration-save-btn:hover {
1149
+ background: var(--fb-primary-hover);
1150
+ }