Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms - Version 1.5.3

Version Description

  • Improvement: New default styles to provide even better visual experience.
  • Improvement: Clearer display of email alerts and confirmations in Step 2 of form configuration.
  • Bug fix: Confirmation message and Confirmation email message fields were not saving with HTML formatting.
  • Bug fix: When Legal part was present, it allowed sending empty forms without further validation.
  • Bug fix: Font size sliders in Style step were not working on a new empty form.
  • Bug fix: Various CSS fixes.
  • Bug fix: First characters in Phone values were being stripped.
  • Bug fix: forms loaded in the footer were missing required Javascript logic.
  • Bug fix: Date & Time part was showing incorrect year in the End At field when Show option was changed.
Download this release

Release Info

Developer thethemefoundry
Plugin Icon 128x128 Form builder to get in touch with visitors, grow your email list and collect payments — Happyforms
Version 1.5.3
Comparing to
See all releases

Code changes from version 1.5.2 to 1.5.3

assets/css/customize.css CHANGED
@@ -300,6 +300,11 @@ a.happyforms-form-part-remove:hover {
300
  display: none;
301
  }
302
 
 
 
 
 
 
303
  /**
304
  *
305
  * Form build
300
  display: none;
301
  }
302
 
303
+ #happyforms-alert-email-settings,
304
+ #happyforms-confirmation-email-settings {
305
+ display: none;
306
+ }
307
+
308
  /**
309
  *
310
  * Form build
assets/css/frontend.css CHANGED
@@ -6,24 +6,27 @@
6
  --happyforms-color-error: #ff7550;
7
  --happyforms-color-part-title: #000;
8
  --happyforms-color-part-value: #000;
9
- --happyforms-color-part-placeholder: #aaa;
10
  --happyforms-color-part-required-text: #ff7550;
11
  --happyforms-color-part-border: #dbdbdb;
12
- --happyforms-color-part-border-focus: #000;
13
  --happyforms-color-part-background: #fff;
14
  --happyforms-color-part-background-focus: #fff;
15
- --happyforms-color-submit-background: #000;
16
- --happyforms-color-submit-background-hover: #dbdbdb;
17
- --happyforms-color-submit-background-focus: #dbdbdb;
18
  --happyforms-color-submit-border: transparent;
19
  --happyforms-color-submit-text: #fff;
20
- --happyforms-color-submit-text-hover: #000;
21
  --happyforms-color-rating: #ccc;
22
  --happyforms-color-rating-hover: #f39c00;
23
  --happyforms-color-table-row-odd: #fcfcfc;
24
  --happyforms-color-table-row-even: #efefef;
25
  --happyforms-color-table-row-odd-text: #000;
26
  --happyforms-color-table-row-even-text: #000;
 
 
 
27
  /* font */
28
  --happyforms-form-title-font-size: 32px;
29
  --happyforms-form-font-weight: normal;
@@ -40,7 +43,7 @@
40
  flex-flow: row wrap;
41
  align-items: flex-start;
42
  max-width: 100%;
43
- padding: 7.5% 0;
44
  }
45
 
46
  .happyforms-form form {
@@ -61,7 +64,7 @@
61
  h3.happyforms-form__title {
62
  margin: 0;
63
  padding: 0 1%;
64
- font-weight: bold;
65
  font-size: 32px;
66
  font-size: var(--happyforms-form-title-font-size);
67
  color: #000;
@@ -107,7 +110,8 @@ h3.happyforms-form__title {
107
  .happyforms-part__label {
108
  display: inline-block;
109
  cursor: pointer;
110
- margin-bottom: 20px;
 
111
  font-weight: normal;
112
  font-size: 16px;
113
  font-size: var(--happyforms-part-title-font-size);
@@ -116,7 +120,7 @@ h3.happyforms-form__title {
116
 
117
  .happyforms-part__label .label {
118
  padding: 0;
119
- font-weight: bold;
120
  font-size: 16px;
121
  font-size: var(--happyforms-part-title-font-size);
122
  color: #000;
@@ -166,6 +170,7 @@ h3.happyforms-form__title {
166
  border-color: var(--happyforms-color-part-border) !important;
167
  border-radius: 6px;
168
  box-shadow: none;
 
169
  font-style: normal;
170
  font-size: 16px;
171
  font-size: var(--happyforms-part-value-font-size);
@@ -235,12 +240,14 @@ h3.happyforms-form__title {
235
  .happyforms-part input[type=number]:focus,
236
  .happyforms-part textarea:focus {
237
  outline: 0;
238
- border-width: 1px;
239
- border-style: solid;
240
- border-color: #000 !important;
241
  border-color: var(--happyforms-color-part-border-focus) !important;
 
 
242
  background-color: #fff !important;
243
  background-color: var(--happyforms-color-part-background-focus) !important;
 
 
244
  }
245
 
246
  .happyforms-part select:focus {
@@ -267,6 +274,7 @@ h3.happyforms-form__title {
267
 
268
  .happyforms-part.display-type--block .happyforms-part__el {
269
  display: block;
 
270
  }
271
 
272
  /* placeholders */
@@ -274,28 +282,28 @@ h3.happyforms-form__title {
274
  .happyforms-part ::-webkit-input-placeholder {
275
  font-weight: normal;
276
  font-style: normal;
277
- color: #aaa;
278
  color: var(--happyforms-color-part-placeholder);
279
  }
280
 
281
  .happyforms-part ::-moz-placeholder {
282
  font-weight: normal;
283
  font-style: normal;
284
- color: #aaa;
285
  color: var(--happyforms-color-part-placeholder);
286
  }
287
 
288
  .happyforms-part ::-ms-placeholder {
289
  font-weight: normal;
290
  font-style: normal;
291
- color: #aaa;
292
  color: var(--happyforms-color-part-placeholder);
293
  }
294
 
295
  .happyforms-part ::placeholder {
296
  font-weight: normal;
297
  font-style: normal;
298
- color: #aaa;
299
  color: var(--happyforms-color-part-placeholder);
300
  }
301
 
@@ -363,11 +371,13 @@ h3.happyforms-form__title {
363
  flex-wrap: wrap;
364
  }
365
 
366
- .happyforms-part--label-left .happyforms-part__label {
367
- float: none;
368
- width: 25%;
369
- margin-bottom: 0;
370
- align-self: center;
 
 
371
  }
372
 
373
  .happyforms-part--label-left .happyforms-part__select-wrap,
@@ -388,9 +398,7 @@ h3.happyforms-form__title {
388
  }
389
  }
390
 
391
- .happyforms-part--label-below .happyforms-part__el,
392
  .happyforms-part--label-below input.happyforms-part__el,
393
- .happyforms-part--label-below select.happyforms-part__el,
394
  .happyforms-part--label-below textarea.happyforms-part__el {
395
  position: relative;
396
  top: 5px;
@@ -448,7 +456,8 @@ h3.happyforms-form__title {
448
 
449
  .happyforms-part--radio input:checked~.border,
450
  .happyforms-part--radio .option-label:hover .border {
451
- border-color: #000;
 
452
  border-color: var(--happyforms-color-part-border-focus);
453
  background-color: #fff;
454
  background-color: var(--happyforms-color-part-background-focus);
@@ -465,8 +474,7 @@ h3.happyforms-form__title {
465
  outline: 0;
466
  }
467
 
468
- .happyforms-part--radio .option-label .label,
469
- .happyforms-part--checkbox .option-label .label {
470
  position: relative;
471
  display: inline-block;
472
  margin-right: 15px;
@@ -502,8 +510,9 @@ h3.happyforms-form__title {
502
  }
503
 
504
  .happyforms-part.display-type--block .option-label {
505
- display: block;
506
  margin-right: 0;
 
507
  }
508
 
509
  .happyforms-part--checkbox.display-type--block .option-label {
@@ -513,30 +522,75 @@ h3.happyforms-form__title {
513
  /* tooltips */
514
 
515
  .happyforms-tooltip {
 
 
516
  position: absolute;
517
  bottom: 0;
518
- left: 0;
519
  right: 10px;
520
- height: 50%;
 
521
  overflow: visible;
522
  pointer-events: none;
523
  }
524
 
525
- .happyforms-form--direction-rtl .happyforms-tooltip {
526
- left: 0;
527
- right: auto;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
528
  }
529
 
530
  .happyforms-tooltip__trigger {
531
- display: block;
532
  position: absolute;
533
- top: 48%;
534
- right: 1px;
535
- padding: 10px;
536
  background-color: transparent;
537
- -ms-transform: translate(0, -50%);
538
- -webkit-transform: translate(0, -50%);
539
- transform: translate(0, -50%);
540
  pointer-events: auto;
541
  cursor: pointer;
542
  }
@@ -571,8 +625,8 @@ h3.happyforms-form__title {
571
  position: absolute;
572
  z-index: 999;
573
  top: 0;
574
- right: 0;
575
- transform: translate(0, -115%);
576
  opacity: 0;
577
  width: auto;
578
  visibility: hidden;
@@ -588,30 +642,36 @@ h3.happyforms-form__title {
588
  transition: opacity 0.2s;
589
  }
590
 
591
- .happyforms-form--part-value-text-align-right .happyforms-tooltip .happyforms-part__description,
592
- .happyforms-form--direction-rtl .happyforms-tooltip .happyforms-part__description {
593
- right: auto;
594
- left: 0;
595
- }
596
-
597
- .happyforms-form--part-inner-padding-wide .happyforms-tooltip .happyforms-part__description {
598
- transform: translate(0, -100%);
599
  }
600
 
601
- .happyforms-form--part-inner-padding-wide .happyforms-tooltip {
602
- height: 54%;
 
 
 
 
 
 
 
603
  }
604
 
605
- .happyforms-form--part-inner-padding-narrow .happyforms-tooltip .happyforms-part__description {
606
- transform: translate(0, -120%);
 
607
  }
608
 
609
- .happyforms-form--part-inner-padding-narrow .happyforms-tooltip {
610
- height: 42%;
 
611
  }
612
 
613
- .happyforms-form--part-inner-padding-wide .happyforms-tooltip .happyforms-part__description {
614
- transform: translate(0, -100%);
 
 
 
615
  }
616
 
617
  .happyforms-tooltip .happyforms-part__description:before {
@@ -625,12 +685,6 @@ h3.happyforms-form__title {
625
  border-top-color: #dbdbdb;
626
  }
627
 
628
- .happyforms-form--part-value-text-align-right .happyforms-tooltip .happyforms-part__description:before,
629
- .happyforms-form--direction-rtl .happyforms-part__description:before {
630
- right: auto;
631
- left: 12px;
632
- }
633
-
634
  .happyforms-tooltip .happyforms-part__description:after {
635
  content: '';
636
  position: absolute;
@@ -643,41 +697,11 @@ h3.happyforms-form__title {
643
  border-top-color: var(--happyforms-color-part-background);
644
  }
645
 
646
- .happyforms-form--part-value-text-align-right .happyforms-tooltip .happyforms-part__description:after,
647
- .happyforms-form--direction-rtl .happyforms-part__description:after {
648
- right: auto;
649
- left: 13px;
650
- }
651
-
652
  .happyforms-tooltip:hover .happyforms-part__description {
653
  visibility: visible;
654
  opacity: 1;
655
  }
656
 
657
- .happyforms-part--multi_line_text .happyforms-tooltip,
658
- .happyforms-part--date .happyforms-tooltip,
659
- .happyforms-part--select .happyforms-tooltip,
660
- .happyforms-part--rating .happyforms-tooltip,
661
- .happyforms-part--scale .happyforms-tooltip,
662
- .happyforms-part--checkbox .happyforms-tooltip,
663
- .happyforms-part--radio .happyforms-tooltip,
664
- .happyforms-part--title .happyforms-tooltip {
665
- top: 0;
666
- bottom: auto;
667
- }
668
-
669
- .happyforms-part--multi_line_text .happyforms-tooltip,
670
- .happyforms-part--checkbox .happyforms-tooltip,
671
- .happyforms-part--radio .happyforms-tooltip {
672
- height: 30px;
673
- }
674
-
675
- .happyforms-part--multi_line_text .happyforms-tooltip .happyforms-part__description,
676
- .happyforms-part--checkbox .happyforms-tooltip .happyforms-part__description,
677
- .happyforms-part--radio .happyforms-tooltip .happyforms-part__description {
678
- transform: translate(0, -130%);
679
- }
680
-
681
  /* parts - radio, checkbox */
682
 
683
  .happyforms-part--radio .happyforms-part__el {
@@ -692,11 +716,9 @@ h3.happyforms-form__title {
692
  margin-bottom: 20px;
693
  }
694
 
695
- .happyforms-part--radio .checkmark,
696
- .happyforms-part--checkbox .checkmark,
697
- .happyforms-part--table .checkmark {
698
  position: relative;
699
- top: 4px;
700
  z-index: 5;
701
  display: inline-block;
702
  width: 20px;
@@ -705,10 +727,28 @@ h3.happyforms-form__title {
705
  border: 1px solid;
706
  border-color: #dbdbdb;
707
  border-color: var(--happyforms-color-part-border);
 
 
 
 
 
 
 
 
 
 
 
708
  }
709
 
710
  .happyforms-part--checkbox .checkmark,
711
- .happyforms-part--table.happyforms-selection--multiple .checkmark {
 
 
 
 
 
 
 
712
  border-radius: 0;
713
  }
714
 
@@ -716,17 +756,14 @@ h3.happyforms-form__title {
716
  margin-right: 5px;
717
  }
718
 
719
- .happyforms-part--radio input:checked+.checkmark,
720
- .happyforms-part--checkbox input:checked+.checkmark,
721
- .happyforms-part--table input:checked+.checkmark {
722
- border-color: #000;
723
- border-color: var(--happyforms-color-part-border-focus);
724
  background-color: #000;
725
- background-color: var(--happyforms-color-part-border-focus);
726
- background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAVCAYAAABVAo5cAAAA7UlEQVRIS7XUbRHCMAwG4DcSQAKTgAWQABaQgAW8IGFIAAlgYRJeLru2t6+un8vPNtfn0jYRbBQkdwBOIvIcErKFR/II4G3O7kRkb53q4ASzjkOrgh7MoQCaamAAs+itChiJKVpeYQJ2FpFXUYWpmJY4Akm2ALR/riLyW2uZHGwEkvwCOAyQxofmYg5cwKw7Q0uwHiSpE0Engy8cWopZkBHjrTE5eu2h6H+jL0krvAN4hE6J3F/Fhm9YAw1i019agkZhS32Yg0ZjM1AXEt80CVsEE9BkzAtGoFnYKmjQi2kZna8anZmzn8g2maX9AawIfKa8qZx5AAAAAElFTkSuQmCC);
727
- background-size: 12px auto;
728
- background-repeat: no-repeat;
729
- background-position: center center;
730
  }
731
 
732
  /* parts - scale */
@@ -859,7 +896,7 @@ h3.happyforms-form__title {
859
  width: 100%;
860
  font-size: 16px;
861
  font-size: var(--happyforms-part-value-font-size);
862
- color: #aaa;
863
  color: var(--happyforms-color-part-placeholder);
864
  }
865
 
@@ -921,25 +958,11 @@ h3.happyforms-form__title {
921
  order: 3;
922
  }
923
 
924
- .happyforms-part--label-below .happyforms-part__description {
925
- order: 1;
926
- margin-top: 0;
927
- }
928
-
929
  .happyforms-part--label-below.happyforms-part--date .happyforms-part__el {
930
  width: 100%;
931
  order: 2;
932
  }
933
 
934
- .happyforms-part--label-below .happyforms-part__el,
935
- .happyforms-part--label-below input.happyforms-part__el,
936
- .happyforms-part--label-below select.happyforms-part__el,
937
- .happyforms-part--label-below textarea.happyforms-part__el {
938
- position: relative;
939
- top: 5px;
940
- margin-bottom: 10px;
941
- }
942
-
943
  .happyforms-form--part-title-text-align-center .happyforms-part__label {
944
  width: 100%;
945
  text-align: center;
@@ -950,6 +973,11 @@ h3.happyforms-form__title {
950
  text-align: right;
951
  }
952
 
 
 
 
 
 
953
  /* parts - placeholder */
954
 
955
  .happyforms-part--placeholder .happyforms-part__el {
@@ -1027,6 +1055,7 @@ h3.happyforms-form__title {
1027
  }
1028
 
1029
  .happyforms-part__select-bg {
 
1030
  border: 1px solid;
1031
  border-radius: 6px;
1032
  border-color: #dbdbdb;
@@ -1144,6 +1173,19 @@ h3.happyforms-form__title {
1144
 
1145
  /* parts - rating */
1146
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1147
  .happyforms-part--rating .happyforms-rating-item-wrap {
1148
  float: left;
1149
  margin-right: 5px;
@@ -1221,17 +1263,15 @@ h3.happyforms-form__title {
1221
 
1222
  /* parts - legal */
1223
 
1224
- .happyforms-part--legal .happyforms-part__el {
1225
  display: flex;
1226
  }
1227
 
1228
  .happyforms-part--legal input {
1229
- position: relative;
1230
  top: 3px;
1231
  }
1232
 
1233
  .happyforms-part--legal label {
1234
- margin-left: 10px;
1235
  font-weight: normal;
1236
  font-size: 16px;
1237
  font-size: var(--happyforms-part-value-font-size);
@@ -1239,6 +1279,18 @@ h3.happyforms-form__title {
1239
 
1240
  /* parts - address */
1241
 
 
 
 
 
 
 
 
 
 
 
 
 
1242
  .happyforms-part--address.happyforms-part--address-country-city .happyforms-part-el-wrap {
1243
  display: flex;
1244
  flex-direction: row;
@@ -1292,7 +1344,7 @@ h3.happyforms-form__title {
1292
  list-style-type: none;
1293
  padding: 0;
1294
  border: 1px solid;
1295
- border-color: #000;
1296
  border-color: var(--happyforms-color-part-border-focus);
1297
  border-radius: 6px;
1298
  background-color: #fff;
@@ -1313,7 +1365,7 @@ h3.happyforms-form__title {
1313
  }
1314
 
1315
  .happyforms-part--address__results ul li:hover {
1316
- border-color: #000;
1317
  border-color: var(--happyforms-color-part-border-focus);
1318
  }
1319
 
@@ -1340,6 +1392,7 @@ h3.happyforms-form__title {
1340
 
1341
  .happyforms-part--address-has-geolocation .happyforms-part__dummy-input > input[type=text],
1342
  .happyforms-part--address-has-geolocation .happyforms-part__dummy-input > input[type=text]:focus {
 
1343
  border-right: none !important;
1344
  border-top-right-radius: 0 !important;
1345
  border-bottom-right-radius: 0 !important;
@@ -1399,7 +1452,7 @@ a.address-geolocate span {
1399
  .happyforms-part input[type=text]:focus + a.address-geolocate {
1400
  border-width: 1px;
1401
  border-style: solid;
1402
- border-color: #000;
1403
  border-color: var(--happyforms-color-part-border-focus);
1404
  border-left: none;
1405
  border-top-left-radius: 0;
@@ -1450,24 +1503,24 @@ a.address-geolocate span {
1450
 
1451
  .happyforms-part--submit {
1452
  width: 100%;
 
1453
  margin-bottom: 0;
1454
  }
1455
 
1456
  input[type=submit].happyforms-button--submit,
1457
- input[type=submit][disabled].happyforms-button--submit,
1458
- input[type=submit][disabled] {
1459
  height: auto;
1460
- padding: 17px 50px;
1461
- border-radius: 6px;
1462
  border: 1px solid transparent !important;
1463
  border-color: var(--happyforms-color-submit-border) !important;
1464
- font-weight: normal;
1465
  font-style: normal;
1466
  font-size: 18px;
1467
  font-size: var(--happyforms-submit-button-font-size);
1468
  color: #fff;
1469
  color: var(--happyforms-color-submit-text);
1470
- background-color: #000;
1471
  background-color: var(--happyforms-color-submit-background);
1472
  text-transform: none;
1473
  transition-property: all;
@@ -1476,33 +1529,30 @@ input[type=submit][disabled] {
1476
  transition-timing-function: ease-in;
1477
  }
1478
 
1479
- input[type=submit][disabled].happyforms-button--submit,
1480
- input[type=submit][disabled].happyforms-button--submit:hover {
1481
  cursor: default;
1482
- opacity: 0.5;
1483
  }
1484
 
1485
  input[type=submit].happyforms-button--submit:hover,
1486
- input[type=submit][disabled].happyforms-button--submit:hover {
1487
- border-radius: 6px;
 
1488
  border-color: transparent !important;
1489
  border-color: var(--happyforms-color-submit-border) !important;
1490
- background-color: #dbdbdb;
1491
  background-color: var(--happyforms-color-submit-background-hover);
1492
  text-transform: none;
1493
- color: #000000;
1494
  color: var(--happyforms-color-submit-text-hover);
1495
  }
1496
 
1497
- input[type=submit].happyforms-button--submit:focus {
1498
- border-radius: 6px;
1499
- border-color: transparent;
1500
- border-color: var(--happyforms-color-submit-border);
1501
- background-color: #dbdbdb;
1502
- background-color: var(--happyforms-color-submit-background-focus);
1503
- text-transform: none;
1504
- color: #000000;
1505
- color: var(--happyforms-color-submit-text-hover);
1506
  }
1507
 
1508
  /* notices */
@@ -1634,34 +1684,52 @@ form > .happyforms-message-notices .error {
1634
 
1635
  .happyforms-part--label-inside label {
1636
  position: absolute;
1637
- top: 10px;
1638
  left: 11px;
1639
  }
1640
 
 
 
 
 
 
 
 
1641
  .happyforms-part--label-inside input,
1642
  .happyforms-part--label-inside textarea,
1643
  .happyforms-part--label-as_placeholder input,
1644
  .happyforms-part--label-as_placeholder textarea {
1645
- padding-top: 35px !important;
 
1646
  }
1647
 
 
1648
  .happyforms-part--label-as_placeholder a.address-geolocate {
1649
- padding-top: 23px !important;
1650
  }
1651
 
1652
  .happyforms-form--part-inner-padding-narrow .happyforms-part--label-as_placeholder a.address-geolocate {
1653
- padding-top: 20px !important;
1654
  }
1655
 
1656
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder a.address-geolocate {
1657
- padding-top: 27px !important;
 
 
 
 
 
 
 
 
1658
  }
1659
 
1660
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-inside input,
1661
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-inside textarea,
1662
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder input,
1663
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder textarea {
1664
- padding-top: 40px !important;
 
1665
  }
1666
 
1667
  /* part borders */
@@ -1693,6 +1761,8 @@ form > .happyforms-message-notices .error {
1693
 
1694
  /* part labels transitions */
1695
  .happyforms-part--label-as_placeholder label {
 
 
1696
  transition-duration: 0.4s;
1697
  transition-duration: var(--happyforms-transition-duration);
1698
  }
@@ -1716,10 +1786,15 @@ form > .happyforms-message-notices .error {
1716
  .happyforms-part--label-as_placeholder label {
1717
  position: absolute;
1718
  left: 11px;
1719
- top: 25px;
1720
  transition-property: top;
1721
  }
1722
 
 
 
 
 
 
1723
  .happyforms-form--direction-rtl .happyforms-part--label-as_placeholder label {
1724
  left: auto;
1725
  right: 11px;
@@ -1729,11 +1804,21 @@ form > .happyforms-message-notices .error {
1729
  .happyforms-part--label-as_placeholder textarea:focus~label,
1730
  .happyforms-part--label-as_placeholder.happyforms-part--filled input~label,
1731
  .happyforms-part--label-as_placeholder.happyforms-part--filled textarea~label {
1732
- top: 10px;
 
 
 
 
 
 
 
 
 
 
1733
  }
1734
 
1735
  .happyforms-form--part-inner-padding-narrow .happyforms-part--label-as_placeholder label {
1736
- top: 21px;
1737
  left: 5px;
1738
  }
1739
 
@@ -1750,7 +1835,7 @@ form > .happyforms-message-notices .error {
1750
  }
1751
 
1752
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder label {
1753
- top: 30px;
1754
  left: 15px;
1755
  }
1756
 
@@ -1763,7 +1848,7 @@ form > .happyforms-message-notices .error {
1763
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder textarea:focus~label,
1764
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder.happyforms-part--filled input~label,
1765
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder.happyforms-part--filled textarea~label {
1766
- top: 15px;
1767
  }
1768
 
1769
  /* part padding */
@@ -1981,22 +2066,19 @@ form > .happyforms-message-notices .error {
1981
 
1982
 
1983
  /* table part */
1984
- .happyforms-part--table .happyforms-tooltip {
1985
- top: 0;
1986
- bottom: auto;
1987
- height: 20px;
1988
- }
1989
-
1990
- .happyforms-part--table .happyforms-tooltip .happyforms-part__description {
1991
- top: -5px;
1992
- }
1993
 
1994
  .happyforms-table {
1995
  display: flex;
1996
  flex-wrap: wrap;
1997
  padding: 0;
1998
  }
1999
-
 
 
 
 
 
 
2000
  .happyforms-table__row {
2001
  display: flex;
2002
  width: 100%;
@@ -2085,9 +2167,6 @@ form > .happyforms-message-notices .error {
2085
  .happyforms-part--table .happyforms-part__description {
2086
  margin-bottom: 20px;
2087
  }
2088
- .happyforms-part--table .happyforms-tooltip {
2089
- top: 5px;
2090
- }
2091
  .happyforms-table {
2092
  display: block;
2093
  }
@@ -2118,8 +2197,27 @@ form > .happyforms-message-notices .error {
2118
  font-weight: normal;
2119
  text-align: left;
2120
  }
2121
- label {
2122
  flex-grow: 1;
2123
- width: 50%;
 
2124
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2125
  }
6
  --happyforms-color-error: #ff7550;
7
  --happyforms-color-part-title: #000;
8
  --happyforms-color-part-value: #000;
9
+ --happyforms-color-part-placeholder: #888888;
10
  --happyforms-color-part-required-text: #ff7550;
11
  --happyforms-color-part-border: #dbdbdb;
12
+ --happyforms-color-part-border-focus: #407fff;
13
  --happyforms-color-part-background: #fff;
14
  --happyforms-color-part-background-focus: #fff;
15
+ --happyforms-color-submit-background: #407fff;
16
+ --happyforms-color-submit-background-hover: #3567cc;
17
+ --happyforms-color-submit-background-focus: #3567cc;
18
  --happyforms-color-submit-border: transparent;
19
  --happyforms-color-submit-text: #fff;
20
+ --happyforms-color-submit-text-hover: #fff;
21
  --happyforms-color-rating: #ccc;
22
  --happyforms-color-rating-hover: #f39c00;
23
  --happyforms-color-table-row-odd: #fcfcfc;
24
  --happyforms-color-table-row-even: #efefef;
25
  --happyforms-color-table-row-odd-text: #000;
26
  --happyforms-color-table-row-even-text: #000;
27
+ --happyforms-color-choice-checkmark-bg: #fff;
28
+ --happyforms-color-choice-checkmark-bg-focus: #000;
29
+ --happyforms-color-choice-checkmark-color: #fff;
30
  /* font */
31
  --happyforms-form-title-font-size: 32px;
32
  --happyforms-form-font-weight: normal;
43
  flex-flow: row wrap;
44
  align-items: flex-start;
45
  max-width: 100%;
46
+ padding: 50px 0;
47
  }
48
 
49
  .happyforms-form form {
64
  h3.happyforms-form__title {
65
  margin: 0;
66
  padding: 0 1%;
67
+ font-weight: normal;
68
  font-size: 32px;
69
  font-size: var(--happyforms-form-title-font-size);
70
  color: #000;
110
  .happyforms-part__label {
111
  display: inline-block;
112
  cursor: pointer;
113
+ margin-bottom: 15px;
114
+ line-height: 1;
115
  font-weight: normal;
116
  font-size: 16px;
117
  font-size: var(--happyforms-part-title-font-size);
120
 
121
  .happyforms-part__label .label {
122
  padding: 0;
123
+ font-weight: normal;
124
  font-size: 16px;
125
  font-size: var(--happyforms-part-title-font-size);
126
  color: #000;
170
  border-color: var(--happyforms-color-part-border) !important;
171
  border-radius: 6px;
172
  box-shadow: none;
173
+ box-sizing: border-box;
174
  font-style: normal;
175
  font-size: 16px;
176
  font-size: var(--happyforms-part-value-font-size);
240
  .happyforms-part input[type=number]:focus,
241
  .happyforms-part textarea:focus {
242
  outline: 0;
243
+ border-color: #407fff !important;
 
 
244
  border-color: var(--happyforms-color-part-border-focus) !important;
245
+ color: #000;
246
+ color: var(--happyforms-color-part-value);
247
  background-color: #fff !important;
248
  background-color: var(--happyforms-color-part-background-focus) !important;
249
+ box-shadow: inset 0 0 0 1px #407fff;
250
+ box-shadow: inset 0 0 0 1px var(--happyforms-color-part-border-focus);
251
  }
252
 
253
  .happyforms-part select:focus {
274
 
275
  .happyforms-part.display-type--block .happyforms-part__el {
276
  display: block;
277
+ width: 100%;
278
  }
279
 
280
  /* placeholders */
282
  .happyforms-part ::-webkit-input-placeholder {
283
  font-weight: normal;
284
  font-style: normal;
285
+ color: #888888;
286
  color: var(--happyforms-color-part-placeholder);
287
  }
288
 
289
  .happyforms-part ::-moz-placeholder {
290
  font-weight: normal;
291
  font-style: normal;
292
+ color: #888888;
293
  color: var(--happyforms-color-part-placeholder);
294
  }
295
 
296
  .happyforms-part ::-ms-placeholder {
297
  font-weight: normal;
298
  font-style: normal;
299
+ color: #888888;
300
  color: var(--happyforms-color-part-placeholder);
301
  }
302
 
303
  .happyforms-part ::placeholder {
304
  font-weight: normal;
305
  font-style: normal;
306
+ color: #888888;
307
  color: var(--happyforms-color-part-placeholder);
308
  }
309
 
371
  flex-wrap: wrap;
372
  }
373
 
374
+ @media screen and (min-width: 800px) {
375
+ .happyforms-part--label-left .happyforms-part__label {
376
+ float: none;
377
+ width: 25%;
378
+ margin-bottom: 0;
379
+ align-self: center;
380
+ }
381
  }
382
 
383
  .happyforms-part--label-left .happyforms-part__select-wrap,
398
  }
399
  }
400
 
 
401
  .happyforms-part--label-below input.happyforms-part__el,
 
402
  .happyforms-part--label-below textarea.happyforms-part__el {
403
  position: relative;
404
  top: 5px;
456
 
457
  .happyforms-part--radio input:checked~.border,
458
  .happyforms-part--radio .option-label:hover .border {
459
+ border-width: 2px;
460
+ border-color: #407fff;
461
  border-color: var(--happyforms-color-part-border-focus);
462
  background-color: #fff;
463
  background-color: var(--happyforms-color-part-background-focus);
474
  outline: 0;
475
  }
476
 
477
+ .happyforms-part .option-label .label {
 
478
  position: relative;
479
  display: inline-block;
480
  margin-right: 15px;
510
  }
511
 
512
  .happyforms-part.display-type--block .option-label {
513
+ display: flex;
514
  margin-right: 0;
515
+ align-items: center;
516
  }
517
 
518
  .happyforms-part--checkbox.display-type--block .option-label {
522
  /* tooltips */
523
 
524
  .happyforms-tooltip {
525
+ display: flex;
526
+ align-items: center;
527
  position: absolute;
528
  bottom: 0;
529
+ left: auto;
530
  right: 10px;
531
+ width: 100%;
532
+ height: 55%;
533
  overflow: visible;
534
  pointer-events: none;
535
  }
536
 
537
+ .happyforms-part--multi_line_text .happyforms-tooltip {
538
+ height: 80%;
539
+ }
540
+
541
+ @media screen and (min-width: 800px) {
542
+ .happyforms-part--label-inside .happyforms-tooltip,
543
+ .happyforms-part--label-as_placeholder .happyforms-tooltip,
544
+ .happyforms-part--label-left .happyforms-tooltip {
545
+ height: 100%;
546
+ }
547
+ }
548
+
549
+ .happyforms-part--label-below .happyforms-tooltip {
550
+ top: 5px;
551
+ height: 55%;
552
+ }
553
+
554
+ .happyforms-part--label-below.happyforms-part--multi_line_text .happyforms-tooltip {
555
+ height: 80%;
556
+ }
557
+
558
+ .happyforms-part--label-left.happyforms-part--address-has-geolocation.happyforms-part--has-tooltip .happyforms-part__el,
559
+ .happyforms-part--label-left.happyforms-part--address-has-geolocation.happyforms-part--has-tooltip .happyforms-part__label,
560
+ .happyforms-part--label-below.happyforms-part--address-has-geolocation.happyforms-part--has-tooltip .happyforms-part__el {
561
+ margin-top: 35px;
562
+ }
563
+
564
+ .happyforms-part--checkbox .happyforms-tooltip,
565
+ .happyforms-part--radio .happyforms-tooltip,
566
+ .happyforms-part--select .happyforms-tooltip,
567
+ .happyforms-part--table .happyforms-tooltip,
568
+ .happyforms-part--address-has-geolocation .happyforms-tooltip,
569
+ .happyforms-part--scale .happyforms-tooltip,
570
+ .happyforms-part--rating .happyforms-tooltip,
571
+ .happyforms-part--date .happyforms-tooltip {
572
+ top: 5px;
573
+ align-items: flex-start;
574
+ }
575
+
576
+ .happyforms-part--date.happyforms-part--has-tooltip.happyforms-part--label-left .happyforms-part__el,
577
+ .happyforms-part--date.happyforms-part--has-tooltip.happyforms-part--label-left .happyforms-part__label,
578
+ .happyforms-part--date.happyforms-part--has-tooltip.happyforms-part--label-below .happyforms-part__el,
579
+ .happyforms-part--select.happyforms-part--has-tooltip.happyforms-part--label-left .happyforms-part__label,
580
+ .happyforms-part--select.happyforms-part--has-tooltip.happyforms-part--label-left .happyforms-part__select-wrap,
581
+ .happyforms-part--select.happyforms-part--has-tooltip.happyforms-part--label-below .happyforms-part__select-wrap,
582
+ .happyforms-part--radio.happyforms-part--has-tooltip.happyforms-part--label-left .happyforms-part__el,
583
+ .happyforms-part--radio.happyforms-part--has-tooltip.happyforms-part--label-left .happyforms-part__label,
584
+ .happyforms-part--radio.happyforms-part--has-tooltip.happyforms-part--label-below .happyforms-part__el {
585
+ margin-top: 35px;
586
  }
587
 
588
  .happyforms-tooltip__trigger {
 
589
  position: absolute;
590
+ right: 0;
591
+ z-index: 99;
592
+ display: block;
593
  background-color: transparent;
 
 
 
594
  pointer-events: auto;
595
  cursor: pointer;
596
  }
625
  position: absolute;
626
  z-index: 999;
627
  top: 0;
628
+ right: -10px;
629
+ transform: translate(0, -44px);
630
  opacity: 0;
631
  width: auto;
632
  visibility: hidden;
642
  transition: opacity 0.2s;
643
  }
644
 
645
+ .happyforms-part--label-below .happyforms-tooltip .happyforms-part__description {
646
+ top: 5px;
 
 
 
 
 
 
647
  }
648
 
649
+ .happyforms-part--checkbox .happyforms-tooltip .happyforms-part__description,
650
+ .happyforms-part--radio .happyforms-tooltip .happyforms-part__description,
651
+ .happyforms-part--select .happyforms-tooltip .happyforms-part__description,
652
+ .happyforms-part--address-has-geolocation .happyforms-tooltip .happyforms-part__description,
653
+ .happyforms-part--table .happyforms-tooltip .happyforms-part__description,
654
+ .happyforms-part--scale .happyforms-tooltip .happyforms-part__description,
655
+ .happyforms-part--rating .happyforms-tooltip .happyforms-part__description,
656
+ .happyforms-part--date .happyforms-tooltip .happyforms-part__description {
657
+ top: -10px;
658
  }
659
 
660
+ .happyforms-part--multi_line_text .happyforms-tooltip .happyforms-part__description {
661
+ top: 5px;
662
+ transform: none;
663
  }
664
 
665
+ .happyforms-part--label-inside .happyforms-tooltip .happyforms-part__description,
666
+ .happyforms-part--label-as_placeholder .happyforms-tooltip .happyforms-part__description {
667
+ transform: translate(0, -35px);
668
  }
669
 
670
+ .happyforms-part--multi_line_text.happyforms-part--label-below .happyforms-tooltip .happyforms-part__description,
671
+ .happyforms-part--label-inside.happyforms-part--multi_line_text .happyforms-tooltip .happyforms-part__description,
672
+ .happyforms-part--label-as_placeholder.happyforms-part--multi_line_text .happyforms-tooltip .happyforms-part__description {
673
+ top: 14px;
674
+ transform: none;
675
  }
676
 
677
  .happyforms-tooltip .happyforms-part__description:before {
685
  border-top-color: #dbdbdb;
686
  }
687
 
 
 
 
 
 
 
688
  .happyforms-tooltip .happyforms-part__description:after {
689
  content: '';
690
  position: absolute;
697
  border-top-color: var(--happyforms-color-part-background);
698
  }
699
 
 
 
 
 
 
 
700
  .happyforms-tooltip:hover .happyforms-part__description {
701
  visibility: visible;
702
  opacity: 1;
703
  }
704
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
705
  /* parts - radio, checkbox */
706
 
707
  .happyforms-part--radio .happyforms-part__el {
716
  margin-bottom: 20px;
717
  }
718
 
719
+ .happyforms-part .checkmark {
 
 
720
  position: relative;
721
+ top: 0;
722
  z-index: 5;
723
  display: inline-block;
724
  width: 20px;
727
  border: 1px solid;
728
  border-color: #dbdbdb;
729
  border-color: var(--happyforms-color-part-border);
730
+ background-color: #fff;
731
+ background-color: var(--happyforms-color-choice-checkmark-bg);
732
+ color: #fff;
733
+ color: var(--happyforms-color-choice-checkmark-color);
734
+ }
735
+
736
+ .happyforms-part .checkmark svg {
737
+ display: none;
738
+ position: absolute;
739
+ top: 3px;
740
+ left: 3px;
741
  }
742
 
743
  .happyforms-part--checkbox .checkmark,
744
+ .happyforms-part--table.happyforms-selection--multiple .checkmark,
745
+ .happyforms-part--legal .checkmark {
746
+ border-radius: 6px;
747
+ }
748
+
749
+ .happyforms-form--part-border-radius-square .happyforms-part--checkbox .checkmark,
750
+ .happyforms-form--part-border-radius-square .happyforms-part--table.happyforms-selection--multiple .checkmark,
751
+ .happyforms-form--part-border-radius-square .happyforms-part--legal .checkmark {
752
  border-radius: 0;
753
  }
754
 
756
  margin-right: 5px;
757
  }
758
 
759
+ .happyforms-part .option-label input:checked+.checkmark {
760
+ border-color: transparent;
 
 
 
761
  background-color: #000;
762
+ background-color: var(--happyforms-color-choice-checkmark-bg-focus);
763
+ }
764
+
765
+ .happyforms-part input:checked+.checkmark svg {
766
+ display: block;
767
  }
768
 
769
  /* parts - scale */
896
  width: 100%;
897
  font-size: 16px;
898
  font-size: var(--happyforms-part-value-font-size);
899
+ color: #888888;
900
  color: var(--happyforms-color-part-placeholder);
901
  }
902
 
958
  order: 3;
959
  }
960
 
 
 
 
 
 
961
  .happyforms-part--label-below.happyforms-part--date .happyforms-part__el {
962
  width: 100%;
963
  order: 2;
964
  }
965
 
 
 
 
 
 
 
 
 
 
966
  .happyforms-form--part-title-text-align-center .happyforms-part__label {
967
  width: 100%;
968
  text-align: center;
973
  text-align: right;
974
  }
975
 
976
+ /* parts - phone */
977
+ .happyforms-part--phone.happyforms-part--label-left input {
978
+ width: 75%;
979
+ }
980
+
981
  /* parts - placeholder */
982
 
983
  .happyforms-part--placeholder .happyforms-part__el {
1055
  }
1056
 
1057
  .happyforms-part__select-bg {
1058
+ padding: 1px 0 2px;
1059
  border: 1px solid;
1060
  border-radius: 6px;
1061
  border-color: #dbdbdb;
1173
 
1174
  /* parts - rating */
1175
 
1176
+ .happyforms-part--rating .happyforms-part-wrap {
1177
+ display: flex;
1178
+ flex-direction: column;
1179
+ }
1180
+
1181
+ .happyforms-part--rating.happyforms-part--label-left .happyforms-part-wrap {
1182
+ flex-direction: row;
1183
+ }
1184
+
1185
+ .happyforms-part--rating.happyforms-part--label-below .happyforms-part-wrap {
1186
+ flex-direction: column-reverse;
1187
+ }
1188
+
1189
  .happyforms-part--rating .happyforms-rating-item-wrap {
1190
  float: left;
1191
  margin-right: 5px;
1263
 
1264
  /* parts - legal */
1265
 
1266
+ .happyforms-part--legal .option-label {
1267
  display: flex;
1268
  }
1269
 
1270
  .happyforms-part--legal input {
 
1271
  top: 3px;
1272
  }
1273
 
1274
  .happyforms-part--legal label {
 
1275
  font-weight: normal;
1276
  font-size: 16px;
1277
  font-size: var(--happyforms-part-value-font-size);
1279
 
1280
  /* parts - address */
1281
 
1282
+ .happyforms-part--address .happyforms-part-el-wrap {
1283
+ width: 100%;
1284
+ }
1285
+
1286
+ .happyforms-part--address.happyforms-part--label-below .happyforms-part-el-wrap {
1287
+ order: 3;
1288
+ }
1289
+
1290
+ .happyforms-part--label-left.happyforms-part--address .happyforms-part-el-wrap {
1291
+ width: 75%;
1292
+ }
1293
+
1294
  .happyforms-part--address.happyforms-part--address-country-city .happyforms-part-el-wrap {
1295
  display: flex;
1296
  flex-direction: row;
1344
  list-style-type: none;
1345
  padding: 0;
1346
  border: 1px solid;
1347
+ border-color: #407fff;
1348
  border-color: var(--happyforms-color-part-border-focus);
1349
  border-radius: 6px;
1350
  background-color: #fff;
1365
  }
1366
 
1367
  .happyforms-part--address__results ul li:hover {
1368
+ border-color: #407fff;
1369
  border-color: var(--happyforms-color-part-border-focus);
1370
  }
1371
 
1392
 
1393
  .happyforms-part--address-has-geolocation .happyforms-part__dummy-input > input[type=text],
1394
  .happyforms-part--address-has-geolocation .happyforms-part__dummy-input > input[type=text]:focus {
1395
+ order: 1;
1396
  border-right: none !important;
1397
  border-top-right-radius: 0 !important;
1398
  border-bottom-right-radius: 0 !important;
1452
  .happyforms-part input[type=text]:focus + a.address-geolocate {
1453
  border-width: 1px;
1454
  border-style: solid;
1455
+ border-color: #407fff;
1456
  border-color: var(--happyforms-color-part-border-focus);
1457
  border-left: none;
1458
  border-top-left-radius: 0;
1503
 
1504
  .happyforms-part--submit {
1505
  width: 100%;
1506
+ padding-top: 10px;
1507
  margin-bottom: 0;
1508
  }
1509
 
1510
  input[type=submit].happyforms-button--submit,
1511
+ input[type=submit][disabled].happyforms-button--submit {
 
1512
  height: auto;
1513
+ padding: 20px 50px;
1514
+ border-radius: 4px;
1515
  border: 1px solid transparent !important;
1516
  border-color: var(--happyforms-color-submit-border) !important;
1517
+ font-weight: bold;
1518
  font-style: normal;
1519
  font-size: 18px;
1520
  font-size: var(--happyforms-submit-button-font-size);
1521
  color: #fff;
1522
  color: var(--happyforms-color-submit-text);
1523
+ background-color: #407fff;
1524
  background-color: var(--happyforms-color-submit-background);
1525
  text-transform: none;
1526
  transition-property: all;
1529
  transition-timing-function: ease-in;
1530
  }
1531
 
1532
+ input[type=submit][disabled].happyforms-button--submit {
 
1533
  cursor: default;
 
1534
  }
1535
 
1536
  input[type=submit].happyforms-button--submit:hover,
1537
+ input[type=submit].happyforms-button--submit:focus {
1538
+ cursor: pointer;
1539
+ border-radius: 4px;
1540
  border-color: transparent !important;
1541
  border-color: var(--happyforms-color-submit-border) !important;
1542
+ background-color: #3567cc;
1543
  background-color: var(--happyforms-color-submit-background-hover);
1544
  text-transform: none;
1545
+ color: #fff;
1546
  color: var(--happyforms-color-submit-text-hover);
1547
  }
1548
 
1549
+ input[type=submit][disabled].happyforms-button--submit:hover,
1550
+ input[type=submit][disabled].happyforms-button--submit:focus {
1551
+ cursor: default;
1552
+ background-color: #407fff;
1553
+ background-color: var(--happyforms-color-submit-background);
1554
+ color: #fff;
1555
+ color: var(--happyforms-color-submit-text);
 
 
1556
  }
1557
 
1558
  /* notices */
1684
 
1685
  .happyforms-part--label-inside label {
1686
  position: absolute;
1687
+ top: 8px;
1688
  left: 11px;
1689
  }
1690
 
1691
+ .happyforms-part--label-inside label .label {
1692
+ font-weight: bold;
1693
+ font-size: 14px;
1694
+ color: #000;
1695
+ color: var(--happyforms-color-part-title);
1696
+ }
1697
+
1698
  .happyforms-part--label-inside input,
1699
  .happyforms-part--label-inside textarea,
1700
  .happyforms-part--label-as_placeholder input,
1701
  .happyforms-part--label-as_placeholder textarea {
1702
+ padding-top: 30px !important;
1703
+ padding-bottom: 7px !important;
1704
  }
1705
 
1706
+ .happyforms-part--label-inside a.address-geolocate,
1707
  .happyforms-part--label-as_placeholder a.address-geolocate {
1708
+ padding-top: 18px !important;
1709
  }
1710
 
1711
  .happyforms-form--part-inner-padding-narrow .happyforms-part--label-as_placeholder a.address-geolocate {
1712
+ padding-top: 13px !important;
1713
  }
1714
 
1715
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder a.address-geolocate {
1716
+ padding-top: 21px !important;
1717
+ }
1718
+
1719
+ .happyforms-form--part-inner-padding-narrow .happyforms-part--label-inside input,
1720
+ .happyforms-form--part-inner-padding-narrow .happyforms-part--label-inside textarea,
1721
+ .happyforms-form--part-inner-padding-narrow .happyforms-part--label-as_placeholder input,
1722
+ .happyforms-form--part-inner-padding-narrow .happyforms-part--label-as_placeholder textarea {
1723
+ padding-top: 22px !important;
1724
+ padding-bottom: 5px !important;
1725
  }
1726
 
1727
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-inside input,
1728
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-inside textarea,
1729
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder input,
1730
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder textarea {
1731
+ padding-top: 30px !important;
1732
+ padding-bottom: 10px !important;
1733
  }
1734
 
1735
  /* part borders */
1761
 
1762
  /* part labels transitions */
1763
  .happyforms-part--label-as_placeholder label {
1764
+ color: #888888;
1765
+ color: var(--happyforms-color-part-placeholder);
1766
  transition-duration: 0.4s;
1767
  transition-duration: var(--happyforms-transition-duration);
1768
  }
1786
  .happyforms-part--label-as_placeholder label {
1787
  position: absolute;
1788
  left: 11px;
1789
+ top: 23px;
1790
  transition-property: top;
1791
  }
1792
 
1793
+ .happyforms-part--label-as_placeholder .happyforms-part__label .label {
1794
+ color: #888888;
1795
+ color: var(--happyforms-color-part-placeholder);
1796
+ }
1797
+
1798
  .happyforms-form--direction-rtl .happyforms-part--label-as_placeholder label {
1799
  left: auto;
1800
  right: 11px;
1804
  .happyforms-part--label-as_placeholder textarea:focus~label,
1805
  .happyforms-part--label-as_placeholder.happyforms-part--filled input~label,
1806
  .happyforms-part--label-as_placeholder.happyforms-part--filled textarea~label {
1807
+ top: 8px;
1808
+ }
1809
+
1810
+ .happyforms-part--label-as_placeholder input:focus~label .label,
1811
+ .happyforms-part--label-as_placeholder textarea:focus~label .label,
1812
+ .happyforms-part--label-as_placeholder.happyforms-part--filled input~label .label,
1813
+ .happyforms-part--label-as_placeholder.happyforms-part--filled textarea~label .label {
1814
+ font-weight: bold;
1815
+ font-size: 14px;
1816
+ color: #000;
1817
+ color: var(--happyforms-color-part-title);
1818
  }
1819
 
1820
  .happyforms-form--part-inner-padding-narrow .happyforms-part--label-as_placeholder label {
1821
+ top: 19px;
1822
  left: 5px;
1823
  }
1824
 
1835
  }
1836
 
1837
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder label {
1838
+ top: 25px;
1839
  left: 15px;
1840
  }
1841
 
1848
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder textarea:focus~label,
1849
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder.happyforms-part--filled input~label,
1850
  .happyforms-form--part-inner-padding-wide .happyforms-part--label-as_placeholder.happyforms-part--filled textarea~label {
1851
+ top: 12px;
1852
  }
1853
 
1854
  /* part padding */
2066
 
2067
 
2068
  /* table part */
 
 
 
 
 
 
 
 
 
2069
 
2070
  .happyforms-table {
2071
  display: flex;
2072
  flex-wrap: wrap;
2073
  padding: 0;
2074
  }
2075
+ .happyforms-part--table .happyforms-part__el {
2076
+ width: 100%;
2077
+ }
2078
+ .happyforms-part--label-left .happyforms-table,
2079
+ .happyforms-part--label-below .happyforms-table {
2080
+ margin-top: 30px;
2081
+ }
2082
  .happyforms-table__row {
2083
  display: flex;
2084
  width: 100%;
2167
  .happyforms-part--table .happyforms-part__description {
2168
  margin-bottom: 20px;
2169
  }
 
 
 
2170
  .happyforms-table {
2171
  display: block;
2172
  }
2197
  font-weight: normal;
2198
  text-align: left;
2199
  }
2200
+ label.happyforms-part__label {
2201
  flex-grow: 1;
2202
+ width: 100%;
2203
+ line-height: 1.3;
2204
  }
2205
+ }
2206
+
2207
+ .happyforms-part--recaptcha {
2208
+ margin-bottom: 0;
2209
+ padding: 0 1%;
2210
+ }
2211
+
2212
+ .happyforms-part--recaptcha .happyforms-part-wrap > div {
2213
+ margin-bottom: 20px;
2214
+ padding: 5px 0;
2215
+ }
2216
+
2217
+ .happyforms-form--part-outer-padding-wide .happyforms-part--recaptcha .happyforms-part-wrap > div {
2218
+ padding: 20px 3%;
2219
+ }
2220
+
2221
+ .happyforms-form--part-outer-padding-narrow .happyforms-part--recaptcha .happyforms-part-wrap > div {
2222
+ padding: 5px 0.5%;
2223
  }
assets/js/customize.js CHANGED
@@ -1161,6 +1161,8 @@
1161
  initialize: function() {
1162
  classes.views.Base.prototype.initialize.apply( this, arguments );
1163
 
 
 
1164
  this.listenTo( this.model, 'change:captcha', this.onChangeCaptcha );
1165
  this.listenTo( this.model, 'change:captcha_site_key', this.onChangeCaptchaKey );
1166
  this.listenTo( this.model, 'change:captcha_secret_key', this.onChangeCaptchaKey );
@@ -1263,6 +1265,26 @@
1263
  }
1264
  },
1265
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1266
  onChangeCaptcha: function() {
1267
  var $captchaSettings = $( '#happyforms-captcha-settings', this.$el );
1268
 
1161
  initialize: function() {
1162
  classes.views.Base.prototype.initialize.apply( this, arguments );
1163
 
1164
+ this.listenTo( this.model, 'change:receive_email_alerts', this.onReceiveEmailAlertsChange );
1165
+ this.listenTo( this.model, 'change:send_confirmation_email', this.onSendEmailConfirmationChange );
1166
  this.listenTo( this.model, 'change:captcha', this.onChangeCaptcha );
1167
  this.listenTo( this.model, 'change:captcha_site_key', this.onChangeCaptchaKey );
1168
  this.listenTo( this.model, 'change:captcha_secret_key', this.onChangeCaptchaKey );
1265
  }
1266
  },
1267
 
1268
+ onReceiveEmailAlertsChange: function( model, value ) {
1269
+ var $alertEmailSettings = $( '#happyforms-alert-email-settings', this.$el );
1270
+
1271
+ if ( value ) {
1272
+ $alertEmailSettings.show();
1273
+ } else {
1274
+ $alertEmailSettings.hide();
1275
+ }
1276
+ },
1277
+
1278
+ onSendEmailConfirmationChange: function( model, value ) {
1279
+ var $confirmationEmailSettings = $( '#happyforms-confirmation-email-settings', this.$el );
1280
+
1281
+ if ( value ) {
1282
+ $confirmationEmailSettings.show();
1283
+ } else {
1284
+ $confirmationEmailSettings.hide();
1285
+ }
1286
+ },
1287
+
1288
  onChangeCaptcha: function() {
1289
  var $captchaSettings = $( '#happyforms-captcha-settings', this.$el );
1290
 
assets/js/frontend.js CHANGED
@@ -167,7 +167,7 @@
167
  isValid = isValid && $( this ).happyFormPart( 'isValid' );
168
  } );
169
  } else {
170
- // Check only legal andr recaptcha parts
171
  var $parts = $( '[data-happyforms-type=legal], [data-happyforms-type=recaptcha]', this.$form );
172
 
173
  $parts.each( function() {
@@ -221,14 +221,15 @@
221
  return false;
222
  }
223
 
224
- if ( response.data.redirect ) {
225
- window.location.replace( response.data.redirect );
226
-
227
- return false;
228
- }
229
-
230
  if ( response.data.html ) {
231
  var $el = $( response.data.html );
 
 
 
 
 
 
 
232
  this.$el.replaceWith( $el );
233
 
234
  $el.happyForm();
@@ -276,8 +277,6 @@
276
  }
277
  }
278
  } );
279
-
280
- $( '[required]' ).removeAttr( 'required' );
281
  }
282
 
283
  $( document ).ready( function() {
167
  isValid = isValid && $( this ).happyFormPart( 'isValid' );
168
  } );
169
  } else {
170
+ // Check only legal and recaptcha parts
171
  var $parts = $( '[data-happyforms-type=legal], [data-happyforms-type=recaptcha]', this.$form );
172
 
173
  $parts.each( function() {
221
  return false;
222
  }
223
 
 
 
 
 
 
 
224
  if ( response.data.html ) {
225
  var $el = $( response.data.html );
226
+
227
+ if ( ! $el.find('.happyforms-message-notice.error').length && response.data.redirect ) {
228
+ window.location.replace(response.data.redirect);
229
+
230
+ return false;
231
+ }
232
+
233
  this.$el.replaceWith( $el );
234
 
235
  $el.happyForm();
277
  }
278
  }
279
  } );
 
 
280
  }
281
 
282
  $( document ).ready( function() {
assets/js/parts/part-legal.js CHANGED
@@ -83,7 +83,7 @@
83
  var part = this.getPartModel(id);
84
  var $part = this.getPartElement(html);
85
 
86
- this.$('.happyforms-part__el label', $part).html(part.get('legal_text'));
87
  },
88
  } );
89
 
83
  var part = this.getPartModel(id);
84
  var $part = this.getPartElement(html);
85
 
86
+ this.$('.happyforms-part__el .label', $part).html(part.get('legal_text'));
87
  },
88
  } );
89
 
happyforms.php CHANGED
@@ -5,7 +5,7 @@
5
  * Plugin URI: https://happyforms.me
6
  * Description: Your friendly drag and drop contact form builder for creating contact forms, lead generation forms, feedback forms, quote forms, survey forms and more!
7
  * Author: The Theme Foundry
8
- * Version: 1.5.2
9
  * Author URI: https://thethemefoundry.com
10
  * Upgrade URI: https://thethemefoundry.com
11
  */
@@ -13,7 +13,7 @@
13
  /**
14
  * The current version of the plugin.
15
  */
16
- define( 'HAPPYFORMS_VERSION', '1.5.2' );
17
 
18
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
19
  /**
5
  * Plugin URI: https://happyforms.me
6
  * Description: Your friendly drag and drop contact form builder for creating contact forms, lead generation forms, feedback forms, quote forms, survey forms and more!
7
  * Author: The Theme Foundry
8
+ * Version: 1.5.3
9
  * Author URI: https://thethemefoundry.com
10
  * Upgrade URI: https://thethemefoundry.com
11
  */
13
  /**
14
  * The current version of the plugin.
15
  */
16
+ define( 'HAPPYFORMS_VERSION', '1.5.3' );
17
 
18
  if ( ! function_exists( 'happyforms_plugin_file' ) ):
19
  /**
inc/classes/class-form-controller.php CHANGED
@@ -192,6 +192,14 @@ class HappyForms_Form_Controller {
192
  global $current_user;
193
 
194
  $fields = array(
 
 
 
 
 
 
 
 
195
  'email_recipient' => array(
196
  'default' => ( $current_user->user_email ) ? $current_user->user_email : '',
197
  'sanitize' => 'happyforms_sanitize_emails',
@@ -200,9 +208,9 @@ class HappyForms_Form_Controller {
200
  'default' => __( 'You received a new message', 'happyforms' ),
201
  'sanitize' => 'sanitize_text_field',
202
  ),
203
- 'confirmation_message' => array(
204
- 'default' => __( 'Your message has been successfully sent. We appreciate you contacting us and we’ll be in touch soon.', 'happyforms' ),
205
- 'sanitize' => 'sanitize_text_field',
206
  ),
207
  'confirmation_email_subject' => array(
208
  'default' => __( 'We received your message', 'happyforms' ),
@@ -210,7 +218,7 @@ class HappyForms_Form_Controller {
210
  ),
211
  'confirmation_email_content' => array(
212
  'default' => __( 'Your message has been successfully sent. We appreciate you contacting us and we’ll be in touch soon.', 'happyforms' ),
213
- 'sanitize' => 'sanitize_text_field',
214
  ),
215
  'redirect_url' => array(
216
  'default' => '',
@@ -741,7 +749,7 @@ class HappyForms_Form_Controller {
741
  ),
742
  'form_success' => array(
743
  'type' => 'success',
744
- 'message' => $form_data['confirmation_message'],
745
  ),
746
  );
747
  }
192
  global $current_user;
193
 
194
  $fields = array(
195
+ 'confirmation_message' => array(
196
+ 'default' => __( 'Your message has been successfully sent. We appreciate you contacting us and we’ll be in touch soon.', 'happyforms' ),
197
+ 'sanitize' => 'esc_html',
198
+ ),
199
+ 'receive_email_alerts' => array(
200
+ 'default' => 1,
201
+ 'sanitize' => 'happyforms_sanitize_checkbox'
202
+ ),
203
  'email_recipient' => array(
204
  'default' => ( $current_user->user_email ) ? $current_user->user_email : '',
205
  'sanitize' => 'happyforms_sanitize_emails',
208
  'default' => __( 'You received a new message', 'happyforms' ),
209
  'sanitize' => 'sanitize_text_field',
210
  ),
211
+ 'send_confirmation_email' => array(
212
+ 'default' => 1,
213
+ 'sanitize' => 'happyforms_sanitize_checkbox'
214
  ),
215
  'confirmation_email_subject' => array(
216
  'default' => __( 'We received your message', 'happyforms' ),
218
  ),
219
  'confirmation_email_content' => array(
220
  'default' => __( 'Your message has been successfully sent. We appreciate you contacting us and we’ll be in touch soon.', 'happyforms' ),
221
+ 'sanitize' => 'esc_html',
222
  ),
223
  'redirect_url' => array(
224
  'default' => '',
749
  ),
750
  'form_success' => array(
751
  'type' => 'success',
752
+ 'message' => html_entity_decode( $form_data['confirmation_message'] ),
753
  ),
754
  );
755
  }
inc/classes/class-form-part-library.php CHANGED
@@ -231,6 +231,10 @@ class HappyForms_Form_Part_Library {
231
  $class[] = $part_data['css_class'];
232
  }
233
 
 
 
 
 
234
  return $class;
235
  }
236
 
231
  $class[] = $part_data['css_class'];
232
  }
233
 
234
+ if ( isset( $part_data['tooltip_description'] ) && 1 === intval( $part_data['tooltip_description'] ) ) {
235
+ $class[] = 'happyforms-part--has-tooltip';
236
+ }
237
+
238
  return $class;
239
  }
240
 
inc/classes/class-form-styles.php CHANGED
@@ -334,7 +334,7 @@ class HappyForms_Form_Styles {
334
  'variable' => '--happyforms-color-part-value',
335
  ),
336
  'color_part_placeholder' => array(
337
- 'default' => '#aaaaaa',
338
  'sanitize' => 'sanitize_text_field',
339
  'target' => 'css_var',
340
  'variable' => '--happyforms-color-part-placeholder',
@@ -352,7 +352,7 @@ class HappyForms_Form_Styles {
352
  'variable' => '--happyforms-color-part-border',
353
  ),
354
  'color_part_border_focus' => array(
355
- 'default' => '#000000',
356
  'sanitize' => 'sanitize_text_field',
357
  'target' => 'css_var',
358
  'variable' => '--happyforms-color-part-border-focus',
@@ -376,23 +376,17 @@ class HappyForms_Form_Styles {
376
  'value' => 'happyforms-form--part-disable-transitions'
377
  ),
378
  'color_submit_background' => array(
379
- 'default' => '#000000',
380
  'sanitize' => 'sanitize_text_field',
381
  'target' => 'css_var',
382
  'variable' => '--happyforms-color-submit-background',
383
  ),
384
  'color_submit_background_hover' => array(
385
- 'default' => '#dbdbdb',
386
  'sanitize' => 'sanitize_text_field',
387
  'target' => 'css_var',
388
  'variable' => '--happyforms-color-submit-background-hover',
389
  ),
390
- 'color_submit_background_focus' => array(
391
- 'default' => '#dbdbdb',
392
- 'sanitize' => 'sanitize_text_field',
393
- 'target' => 'css_var',
394
- 'variable' => '--happyforms-color-submit-background-focus',
395
- ),
396
  'color_submit_border' => array(
397
  'default' => 'transparent',
398
  'sanitize' => 'sanitize_text_field',
@@ -406,7 +400,7 @@ class HappyForms_Form_Styles {
406
  'variable' => '--happyforms-color-submit-text',
407
  ),
408
  'color_submit_text_hover' => array(
409
- 'default' => '#000000',
410
  'sanitize' => 'sanitize_text_field',
411
  'target' => 'css_var',
412
  'variable' => '--happyforms-color-submit-text-hover',
@@ -453,6 +447,24 @@ class HappyForms_Form_Styles {
453
  'target' => 'css_var',
454
  'variable' => '--happyforms-color-table-row-even-text',
455
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
456
  );
457
 
458
  return $fields;
@@ -575,11 +587,6 @@ class HappyForms_Form_Styles {
575
  'label' => __( 'Background', 'happyforms' ),
576
  'field' => 'color_part_background',
577
  ),
578
- array(
579
- 'type' => 'color',
580
- 'label' => __( 'Background on focus', 'happyforms' ),
581
- 'field' => 'color_part_background_focus',
582
- ),
583
  array(
584
  'type' => 'checkbox',
585
  'label' => __( 'Disable transitions on part colors', 'happyforms' ),
@@ -658,6 +665,26 @@ class HappyForms_Form_Styles {
658
  'label' => __( 'Required text', 'happyforms' ),
659
  'field' => 'color_part_required',
660
  ),
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
661
  array(
662
  'type' => 'divider',
663
  'label' => __( 'Rating', 'happyforms' ),
@@ -743,14 +770,9 @@ class HappyForms_Form_Styles {
743
  ),
744
  array(
745
  'type' => 'color',
746
- 'label' => __( 'Background on hover', 'happyforms' ),
747
  'field' => 'color_submit_background_hover',
748
  ),
749
- array(
750
- 'type' => 'color',
751
- 'label' => __( 'Background on focus', 'happyforms' ),
752
- 'field' => 'color_submit_background_focus',
753
- ),
754
  array(
755
  'type' => 'color',
756
  'label' => __( 'Border', 'happyforms' ),
@@ -763,7 +785,7 @@ class HappyForms_Form_Styles {
763
  ),
764
  array(
765
  'type' => 'color',
766
- 'label' => __( 'Text on hover', 'happyforms' ),
767
  'field' => 'color_submit_text_hover',
768
  ),
769
  array(
334
  'variable' => '--happyforms-color-part-value',
335
  ),
336
  'color_part_placeholder' => array(
337
+ 'default' => '#888888',
338
  'sanitize' => 'sanitize_text_field',
339
  'target' => 'css_var',
340
  'variable' => '--happyforms-color-part-placeholder',
352
  'variable' => '--happyforms-color-part-border',
353
  ),
354
  'color_part_border_focus' => array(
355
+ 'default' => '#407fff',
356
  'sanitize' => 'sanitize_text_field',
357
  'target' => 'css_var',
358
  'variable' => '--happyforms-color-part-border-focus',
376
  'value' => 'happyforms-form--part-disable-transitions'
377
  ),
378
  'color_submit_background' => array(
379
+ 'default' => '#407fff',
380
  'sanitize' => 'sanitize_text_field',
381
  'target' => 'css_var',
382
  'variable' => '--happyforms-color-submit-background',
383
  ),
384
  'color_submit_background_hover' => array(
385
+ 'default' => '#3567cc',
386
  'sanitize' => 'sanitize_text_field',
387
  'target' => 'css_var',
388
  'variable' => '--happyforms-color-submit-background-hover',
389
  ),
 
 
 
 
 
 
390
  'color_submit_border' => array(
391
  'default' => 'transparent',
392
  'sanitize' => 'sanitize_text_field',
400
  'variable' => '--happyforms-color-submit-text',
401
  ),
402
  'color_submit_text_hover' => array(
403
+ 'default' => '#ffffff',
404
  'sanitize' => 'sanitize_text_field',
405
  'target' => 'css_var',
406
  'variable' => '--happyforms-color-submit-text-hover',
447
  'target' => 'css_var',
448
  'variable' => '--happyforms-color-table-row-even-text',
449
  ),
450
+ 'color_choice_checkmark_bg' => array(
451
+ 'default' => '#ffffff',
452
+ 'sanitize' => 'sanitize_text_field',
453
+ 'target' => 'css_var',
454
+ 'variable' => '--happyforms-color-choice-checkmark-bg',
455
+ ),
456
+ 'color_choice_checkmark_bg_focus' => array(
457
+ 'default' => '#000000',
458
+ 'sanitize' => 'sanitize_text_field',
459
+ 'target' => 'css_var',
460
+ 'variable' => '--happyforms-color-choice-checkmark-bg-focus',
461
+ ),
462
+ 'color_choice_checkmark_color' => array(
463
+ 'default' => '#ffffff',
464
+ 'sanitize' => 'sanitize_text_field',
465
+ 'target' => 'css_var',
466
+ 'variable' => '--happyforms-color-choice-checkmark-color',
467
+ )
468
  );
469
 
470
  return $fields;
587
  'label' => __( 'Background', 'happyforms' ),
588
  'field' => 'color_part_background',
589
  ),
 
 
 
 
 
590
  array(
591
  'type' => 'checkbox',
592
  'label' => __( 'Disable transitions on part colors', 'happyforms' ),
665
  'label' => __( 'Required text', 'happyforms' ),
666
  'field' => 'color_part_required',
667
  ),
668
+ array(
669
+ 'type' => 'divider',
670
+ 'label' => __( 'Checkboxes & Radios', 'happyforms' ),
671
+ 'condition' => '( happyForms.form.get(\'parts\').findWhere( { type: \'checkbox\' } ) || happyForms.form.get(\'parts\').findWhere( { type: \'radio\' } ) || happyForms.form.get(\'parts\').findWhere( { type: \'table\' } ) )'
672
+ ),
673
+ array(
674
+ 'type' => 'color',
675
+ 'label' => __( 'Checkbox & Radio background', 'happyforms' ),
676
+ 'field' => 'color_choice_checkmark_bg',
677
+ ),
678
+ array(
679
+ 'type' => 'color',
680
+ 'label' => __( 'Checkbox & Radio background focused', 'happyforms' ),
681
+ 'field' => 'color_choice_checkmark_bg_focus',
682
+ ),
683
+ array(
684
+ 'type' => 'color',
685
+ 'label' => __( 'Checkbox & Radio checkmark', 'happyforms' ),
686
+ 'field' => 'color_choice_checkmark_color',
687
+ ),
688
  array(
689
  'type' => 'divider',
690
  'label' => __( 'Rating', 'happyforms' ),
770
  ),
771
  array(
772
  'type' => 'color',
773
+ 'label' => __( 'Background focused', 'happyforms' ),
774
  'field' => 'color_submit_background_hover',
775
  ),
 
 
 
 
 
776
  array(
777
  'type' => 'color',
778
  'label' => __( 'Border', 'happyforms' ),
785
  ),
786
  array(
787
  'type' => 'color',
788
+ 'label' => __( 'Text focused', 'happyforms' ),
789
  'field' => 'color_submit_text_hover',
790
  ),
791
  array(
inc/classes/class-happyforms-plugin.php CHANGED
@@ -80,7 +80,7 @@ class HappyForms_Plugin {
80
  add_shortcode( $this->shortcode, array( $this, 'handle_shortcode' ) );
81
  add_action( 'wp_head', array( $this, 'wp_head' ) );
82
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles' ) );
83
- add_action( 'wp_footer', array( $this, 'wp_footer' ) );
84
 
85
  // Preview scripts
86
  add_action( 'wp_footer', array( $this, 'enqueue_scripts_preview' ) );
@@ -425,11 +425,11 @@ class HappyForms_Plugin {
425
  *
426
  * @since 1.0
427
  *
428
- * @hooked action wp_footer
429
  *
430
  * @return void
431
  */
432
- public function wp_footer() {
433
  if ( happyforms_is_preview() ) {
434
  $form_controller = happyforms_get_form_controller();
435
  $form = $form_controller->get( get_the_ID() );
80
  add_shortcode( $this->shortcode, array( $this, 'handle_shortcode' ) );
81
  add_action( 'wp_head', array( $this, 'wp_head' ) );
82
  add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_styles' ) );
83
+ add_action( 'wp_print_footer_scripts', array( $this, 'wp_print_footer_scripts' ), 0 );
84
 
85
  // Preview scripts
86
  add_action( 'wp_footer', array( $this, 'enqueue_scripts_preview' ) );
425
  *
426
  * @since 1.0
427
  *
428
+ * @hooked action wp_print_footer_scripts
429
  *
430
  * @return void
431
  */
432
+ public function wp_print_footer_scripts() {
433
  if ( happyforms_is_preview() ) {
434
  $form_controller = happyforms_get_form_controller();
435
  $form = $form_controller->get( get_the_ID() );
inc/classes/class-message-admin.php CHANGED
@@ -621,7 +621,7 @@ class HappyForms_Message_Admin {
621
  $link_template = '<a href="%s">%s</a>';
622
  $links = array(
623
  'edit' => array(
624
- __( 'Edit', 'makeplus' ),
625
  get_edit_post_link()
626
  ),
627
  'trash' => array(
621
  $link_template = '<a href="%s">%s</a>';
622
  $links = array(
623
  'edit' => array(
624
+ __( 'View', 'makeplus' ),
625
  get_edit_post_link()
626
  ),
627
  'trash' => array(
inc/classes/class-message-controller.php CHANGED
@@ -248,7 +248,7 @@ class HappyForms_Message_Controller {
248
  do_action( 'happyforms_submission_error', $result, $form );
249
  } else {
250
  // Add a general success notice at the top
251
- $session->add_notice( $form_id, $form['confirmation_message'] );
252
 
253
  // Empty submitted values
254
  $session->clear_values();
@@ -419,7 +419,10 @@ class HappyForms_Message_Controller {
419
  if ( ! is_wp_error( $message_id ) ) {
420
  $message = $this->get( $message_id );
421
  $this->email_owner_confirmation( $form, $message );
422
- $this->email_user_confirmation( $form, $message );
 
 
 
423
 
424
  if ( ! $form['save_entries'] ) {
425
  wp_delete_post( $message_id, true);
@@ -601,7 +604,7 @@ class HappyForms_Message_Controller {
601
  $part_id = $email_part['id'];
602
  $recipient = happyforms_get_message_part_value( $message['parts'][$part_id] );
603
  $email_message->set_recipients( $recipient );
604
- $email_message->set_content( $form['confirmation_email_content'] );
605
 
606
  $email_message->send();
607
  }
248
  do_action( 'happyforms_submission_error', $result, $form );
249
  } else {
250
  // Add a general success notice at the top
251
+ $session->add_notice( $form_id, html_entity_decode( $form['confirmation_message'] ) );
252
 
253
  // Empty submitted values
254
  $session->clear_values();
419
  if ( ! is_wp_error( $message_id ) ) {
420
  $message = $this->get( $message_id );
421
  $this->email_owner_confirmation( $form, $message );
422
+
423
+ if ( 1 !== $form['send_confirmation_email'] ) {
424
+ $this->email_user_confirmation( $form, $message );
425
+ }
426
 
427
  if ( ! $form['save_entries'] ) {
428
  wp_delete_post( $message_id, true);
604
  $part_id = $email_part['id'];
605
  $recipient = happyforms_get_message_part_value( $message['parts'][$part_id] );
606
  $email_message->set_recipients( $recipient );
607
+ $email_message->set_content( html_entity_decode( $form['confirmation_email_content'] ) );
608
 
609
  $email_message->send();
610
  }
inc/classes/parts/class-part-date.php CHANGED
@@ -60,7 +60,7 @@ class HappyForms_Part_Date extends HappyForms_Form_Part {
60
  'sanitize' => 'intval'
61
  ),
62
  'max_year' => array(
63
- 'default' => date( 'Y' ),
64
  'sanitize' => 'intval'
65
  ),
66
  'years_option' => array(
@@ -68,7 +68,7 @@ class HappyForms_Part_Date extends HappyForms_Form_Part {
68
  'sanitize' => 'sanitize_text_field'
69
  ),
70
  'years_order' => array(
71
- 'default' => 'desc',
72
  'sanitize' => 'sanitize_text_field'
73
  ),
74
  'min_hour' => array(
60
  'sanitize' => 'intval'
61
  ),
62
  'max_year' => array(
63
+ 'default' => intval( date( 'Y' ) ) + 20,
64
  'sanitize' => 'intval'
65
  ),
66
  'years_option' => array(
68
  'sanitize' => 'sanitize_text_field'
69
  ),
70
  'years_order' => array(
71
+ 'default' => 'asc',
72
  'sanitize' => 'sanitize_text_field'
73
  ),
74
  'min_hour' => array(
inc/classes/parts/class-part-phone.php CHANGED
@@ -369,7 +369,7 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
369
  }
370
 
371
  foreach ( $sanitized_value as $v => $value ) {
372
- if ( $part_data['mask_phone_country'] ) {
373
  $prefix_length = strlen( $part_data['mask_phone_country'] ) + 1;
374
  $value = substr( $value, $prefix_length );
375
  }
@@ -406,7 +406,7 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
406
  return new WP_Error( 'error', __( 'Number and confirmation number are not matching.', 'happyforms' ) );
407
  }
408
 
409
- if ( $part['mask_phone_country'] ) {
410
  foreach ( $validated_values as $v => $validated_value ) {
411
  $validated_values[$v] = $part['mask_phone_country'] . $validated_values[$v];
412
  }
@@ -420,7 +420,7 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
420
  if ( false !== $component ) {
421
  $value = isset( $value[$component] ) ? $value[$component] : '';
422
 
423
- if ( $part['masked'] && $part['mask_phone_country'] ) {
424
  $value = '+' . $part['mask_phone_country'] . $value;
425
  }
426
  }
@@ -431,7 +431,7 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
431
 
432
  public function html_part_class( $class, $part, $form ) {
433
  if ( $this->type === $part['type'] ) {
434
- if ( $part['masked'] && $part['mask_phone_country']
435
  || happyforms_get_part_value( $part, $form, 0 )
436
  || happyforms_get_part_value( $part, $form, 1 ) ) {
437
  $class[] = 'happyforms-part--filled';
@@ -452,10 +452,7 @@ class HappyForms_Part_Phone extends HappyForms_Form_Part {
452
 
453
  if ( $part['masked'] ) {
454
  $attributes['mask'] = 'true';
455
-
456
- if ( $part['mask_phone_country'] ) {
457
- $attributes['country'] = $part['mask_phone_country'];
458
- }
459
  }
460
 
461
  return $attributes;
369
  }
370
 
371
  foreach ( $sanitized_value as $v => $value ) {
372
+ if ( $part_data['masked'] ) {
373
  $prefix_length = strlen( $part_data['mask_phone_country'] ) + 1;
374
  $value = substr( $value, $prefix_length );
375
  }
406
  return new WP_Error( 'error', __( 'Number and confirmation number are not matching.', 'happyforms' ) );
407
  }
408
 
409
+ if ( $part['masked'] ) {
410
  foreach ( $validated_values as $v => $validated_value ) {
411
  $validated_values[$v] = $part['mask_phone_country'] . $validated_values[$v];
412
  }
420
  if ( false !== $component ) {
421
  $value = isset( $value[$component] ) ? $value[$component] : '';
422
 
423
+ if ( $part['masked'] ) {
424
  $value = '+' . $part['mask_phone_country'] . $value;
425
  }
426
  }
431
 
432
  public function html_part_class( $class, $part, $form ) {
433
  if ( $this->type === $part['type'] ) {
434
+ if ( $part['masked']
435
  || happyforms_get_part_value( $part, $form, 0 )
436
  || happyforms_get_part_value( $part, $form, 1 ) ) {
437
  $class[] = 'happyforms-part--filled';
452
 
453
  if ( $part['masked'] ) {
454
  $attributes['mask'] = 'true';
455
+ $attributes['country'] = $part['mask_phone_country'];
 
 
 
456
  }
457
 
458
  return $attributes;
inc/classes/parts/class-part-select.php CHANGED
@@ -7,6 +7,8 @@ class HappyForms_Part_Select extends HappyForms_Form_Part {
7
  public function __construct() {
8
  $this->label = __( 'Dropdown', 'happyforms' );
9
  $this->description = __( 'For selecting one option from a long list. Default value adjustable.', 'happyforms' );
 
 
10
  }
11
 
12
  /**
@@ -168,4 +170,17 @@ class HappyForms_Part_Select extends HappyForms_Form_Part {
168
  return $validated_value;
169
  }
170
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
  }
7
  public function __construct() {
8
  $this->label = __( 'Dropdown', 'happyforms' );
9
  $this->description = __( 'For selecting one option from a long list. Default value adjustable.', 'happyforms' );
10
+
11
+ add_filter( 'happyforms_part_class', array( $this, 'html_part_class' ), 10, 3 );
12
  }
13
 
14
  /**
170
  return $validated_value;
171
  }
172
 
173
+ public function html_part_class( $class, $part, $form ) {
174
+ if ( $this->type === $part['type'] ) {
175
+ if ( isset( $part['date_type'] ) ) {
176
+ $class[] = 'happyforms-part-date--' . $part['date_type'];
177
+ }
178
+
179
+ if ( isset( $part['time_format'] ) ) {
180
+ $class[] = 'happyforms-part-date--' . $part['time_format'];
181
+ }
182
+ }
183
+
184
+ return $class;
185
+ }
186
  }
inc/templates/customize-form-setup.php CHANGED
@@ -1,27 +1,43 @@
1
  <script type="text/template" id="happyforms-form-setup-template">
2
  <div class="happyforms-stack-view">
3
- <div class="customize-control">
4
- <label for="form_email_recipient" class="customize-control-title"><?php _e( 'Your email address', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="email_recipient"></i></label>
5
- <input type="text" id="form_email_recipient" value="<%= email_recipient %>" data-attribute="email_recipient" data-pointer-target />
6
- </div>
7
- <div class="customize-control">
8
- <label for="form_alert_email_subject" class="customize-control-title"><?php _e( 'Message alert email subject', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="alert_email_subject"></i></label>
9
- <input type="text" id="form_alert_email_subject" value="<%= alert_email_subject %>" data-attribute="alert_email_subject" data-pointer-target />
10
- </div>
11
- <div class="customize-control">
12
  <label for="happyforms-confirmation-message" class="customize-control-title"><?php _e( 'Confirmation message', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="confirmation_message"></i></label>
13
  <div data-pointer-target>
14
  <textarea name="" id="happyforms-confirmation-message" cols="34" rows="3" data-attribute="confirmation_message"><%= confirmation_message %></textarea>
15
  </div>
16
  </div>
17
- <div class="customize-control">
18
- <label for="form_confirmation_email_subject" class="customize-control-title"><?php _e( 'Confirmation email subject', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="confirmation_email_subject"></i></label>
19
- <input type="text" id="form_confirmation_email_subject" value="<%= confirmation_email_subject %>" data-attribute="confirmation_email_subject" data-pointer-target />
 
 
20
  </div>
21
- <div class="customize-control">
22
- <label for="happyforms-confirmation-email-content" class="customize-control-title"><?php _e( 'Confirmation email content', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="confirmation_email_content"></i></label>
23
- <div data-pointer-target>
24
- <textarea name="" id="happyforms-confirmation-email-content" cols="34" rows="3" data-attribute="confirmation_email_content"><%= confirmation_email_content %></textarea>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
  </div>
26
  </div>
27
  <div class="customize-control">
@@ -62,15 +78,15 @@
62
  </div>
63
  </ul>
64
  </script>
 
 
 
65
  <script type="text/template" id="happyforms-pointer-email_recipient">
66
  <?php _e( 'Add your email address here to receive a confirmation email for each form response. You can add multiple email addresses by separating each address with a comma.', 'happyforms' ); ?>
67
  </script>
68
  <script type="text/template" id="happyforms-pointer-alert_email_subject">
69
  <?php _e( 'Each time a user submits a message, you\'ll receive an email with this subject.', 'happyforms' ); ?>
70
  </script>
71
- <script type="text/template" id="happyforms-pointer-confirmation_message">
72
- <?php _e( 'This is the message recipients will see after succesfully submitting your form.', 'happyforms' ); ?>
73
- </script>
74
  <script type="text/template" id="happyforms-pointer-confirmation_email_content">
75
  <?php _e( 'If your form contains an email field, recipients will receive an email with this content.', 'happyforms' ); ?>
76
  </script>
1
  <script type="text/template" id="happyforms-form-setup-template">
2
  <div class="happyforms-stack-view">
3
+ <div class="customize-control" style="display: <% if ( send_confirmation_email ) { %>block<% } else { %>none<% } %>">
 
 
 
 
 
 
 
 
4
  <label for="happyforms-confirmation-message" class="customize-control-title"><?php _e( 'Confirmation message', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="confirmation_message"></i></label>
5
  <div data-pointer-target>
6
  <textarea name="" id="happyforms-confirmation-message" cols="34" rows="3" data-attribute="confirmation_message"><%= confirmation_message %></textarea>
7
  </div>
8
  </div>
9
+ <div class="customize-control customize-control-checkbox">
10
+ <div class="customize-inside-control-row">
11
+ <input type="checkbox" id="happyforms-receive-email-alerts" value="1" <% if ( receive_email_alerts ) { %>checked="checked"<% } %> data-attribute="receive_email_alerts" />
12
+ <label for="happyforms-receive-email-alerts"><?php _e( 'Receive subscription alerts', 'happyforms' ); ?></label>
13
+ </div>
14
  </div>
15
+ <div id="happyforms-alert-email-settings"<% if ( receive_email_alerts ) { %> style="display: block"<% } %>>
16
+ <div class="customize-control">
17
+ <label for="form_email_recipient" class="customize-control-title"><?php _e( 'Email address', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="email_recipient"></i></label>
18
+ <input type="text" id="form_email_recipient" value="<%= email_recipient %>" data-attribute="email_recipient" data-pointer-target />
19
+ </div>
20
+ <div class="customize-control">
21
+ <label for="form_alert_email_subject" class="customize-control-title"><?php _e( 'Email subject', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="alert_email_subject"></i></label>
22
+ <input type="text" id="form_alert_email_subject" value="<%= alert_email_subject %>" data-attribute="alert_email_subject" data-pointer-target />
23
+ </div>
24
+ </div>
25
+ <div class="customize-control customize-control-checkbox">
26
+ <div class="customize-inside-control-row">
27
+ <input type="checkbox" id="happyforms-send-confirmation-email" value="1" <% if ( send_confirmation_email ) { %>checked="checked"<% } %> data-attribute="send_confirmation_email" />
28
+ <label for="happyforms-send-confirmation-email"><?php _e( 'Send confirmation email', 'happyforms' ); ?></label>
29
+ </div>
30
+ </div>
31
+ <div id="happyforms-confirmation-email-settings"<% if ( send_confirmation_email ) { %> style="display: block"<% } %>>
32
+ <div class="customize-control" >
33
+ <label for="form_confirmation_email_subject" class="customize-control-title"><?php _e( 'Email subject', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="confirmation_email_subject"></i></label>
34
+ <input type="text" id="form_confirmation_email_subject" value="<%= confirmation_email_subject %>" data-attribute="confirmation_email_subject" data-pointer-target />
35
+ </div>
36
+ <div class="customize-control">
37
+ <label for="happyforms-confirmation-email-content" class="customize-control-title"><?php _e( 'Email content', 'happyforms' ); ?> <i class="fa fa-question-circle" aria-hidden="true" data-pointer="confirmation_email_content"></i></label>
38
+ <div data-pointer-target>
39
+ <textarea name="" id="happyforms-confirmation-email-content" cols="34" rows="3" data-attribute="confirmation_email_content"><%= confirmation_email_content %></textarea>
40
+ </div>
41
  </div>
42
  </div>
43
  <div class="customize-control">
78
  </div>
79
  </ul>
80
  </script>
81
+ <script type="text/template" id="happyforms-pointer-confirmation_message">
82
+ <?php _e( 'This is the message your users will see after succesfully submitting your form.', 'happyforms' ); ?>
83
+ </script>
84
  <script type="text/template" id="happyforms-pointer-email_recipient">
85
  <?php _e( 'Add your email address here to receive a confirmation email for each form response. You can add multiple email addresses by separating each address with a comma.', 'happyforms' ); ?>
86
  </script>
87
  <script type="text/template" id="happyforms-pointer-alert_email_subject">
88
  <?php _e( 'Each time a user submits a message, you\'ll receive an email with this subject.', 'happyforms' ); ?>
89
  </script>
 
 
 
90
  <script type="text/template" id="happyforms-pointer-confirmation_email_content">
91
  <?php _e( 'If your form contains an email field, recipients will receive an email with this content.', 'happyforms' ); ?>
92
  </script>
inc/templates/customize-form-style.php CHANGED
@@ -44,10 +44,9 @@ $controls = happyforms_get_styles()->get_controls();
44
  </li>
45
 
46
  <?php elseif ( 'range' === $type ) : ?>
47
-
48
  <li class="customize-control <?php echo $class; ?> <?php echo ( isset( $field['extra_class'] ) ) ? $field['extra_class'] : ''; ?>" data-target="<?php echo esc_attr( $field['target'] ); ?>" data-variable="<?php echo $field['variable']; ?>" data-unit="<?php echo $field['unit']; ?>" >
49
  <label class="customize-control-title" for="<?php echo $name; ?>"><?php echo $label; ?></label>
50
- <input type="number" name="<?php echo $name; ?>" id="<?php echo $name; ?>" min="<?php echo $field[ 'min' ]; ?>" max="<?php echo $field[ 'max' ]; ?>" step="<?php echo $field[ 'step' ]; ?>" value="<%= (<?php echo $name; ?>.length) ? <?php echo $name; ?>.replace(/%|px/g, '') : '' %>" data-attribute="<?php echo $name; ?>">
51
  <?php if ( isset( $field['include_unit_switch'] ) ) : ?>
52
  <select name="<?php echo $name; ?>_unit" class="happyforms-unit-switch">
53
  <?php if ( is_array( $field['units'] ) ) :
44
  </li>
45
 
46
  <?php elseif ( 'range' === $type ) : ?>
 
47
  <li class="customize-control <?php echo $class; ?> <?php echo ( isset( $field['extra_class'] ) ) ? $field['extra_class'] : ''; ?>" data-target="<?php echo esc_attr( $field['target'] ); ?>" data-variable="<?php echo $field['variable']; ?>" data-unit="<?php echo $field['unit']; ?>" >
48
  <label class="customize-control-title" for="<?php echo $name; ?>"><?php echo $label; ?></label>
49
+ <input type="number" name="<?php echo $name; ?>" id="<?php echo $name; ?>" min="<?php echo $field[ 'min' ]; ?>" max="<?php echo $field[ 'max' ]; ?>" step="<?php echo $field[ 'step' ]; ?>" value="<%= <?php echo $name; ?> %>" data-attribute="<?php echo $name; ?>">
50
  <?php if ( isset( $field['include_unit_switch'] ) ) : ?>
51
  <select name="<?php echo $name; ?>_unit" class="happyforms-unit-switch">
52
  <?php if ( is_array( $field['units'] ) ) :
inc/templates/parts/frontend-checkbox.php CHANGED
@@ -16,7 +16,7 @@
16
  ?>
17
  <label class="option-label" id="<?php echo esc_attr( $option['id'] ); ?>">
18
  <input type="checkbox" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" value="<?php echo esc_attr( $option['label'] ); ?>" <?php echo $checked; ?>>
19
- <span class="checkmark"></span>
20
  <span class="label"><?php echo esc_attr( $option['label'] ); ?></span>
21
  </label>
22
  <?php endforeach; ?>
16
  ?>
17
  <label class="option-label" id="<?php echo esc_attr( $option['id'] ); ?>">
18
  <input type="checkbox" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[]" value="<?php echo esc_attr( $option['label'] ); ?>" <?php echo $checked; ?>>
19
+ <span class="checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"><path fill="currentColor" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg></span>
20
  <span class="label"><?php echo esc_attr( $option['label'] ); ?></span>
21
  </label>
22
  <?php endforeach; ?>
inc/templates/parts/frontend-date.php CHANGED
@@ -92,9 +92,6 @@
92
  <?php endif; ?>
93
  <?php endif; ?>
94
  </div>
95
- <?php if ( 'inside' === $part['label_placement'] ) : ?>
96
- <?php happyforms_the_part_label( $part, $form ); ?>
97
- <?php endif; ?>
98
  <?php happyforms_print_part_description( $part ); ?>
99
  <?php if ( 'happyforms-form--part-error-notices-below' === happyforms_get_form_property( $form, 'part_error_notices_location' ) || ( '' === happyforms_get_form_property( $form, 'part_error_notices_location' ) ) ) : ?>
100
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
92
  <?php endif; ?>
93
  <?php endif; ?>
94
  </div>
 
 
 
95
  <?php happyforms_print_part_description( $part ); ?>
96
  <?php if ( 'happyforms-form--part-error-notices-below' === happyforms_get_form_property( $form, 'part_error_notices_location' ) || ( '' === happyforms_get_form_property( $form, 'part_error_notices_location' ) ) ) : ?>
97
  <?php happyforms_message_notices( happyforms_get_part_name( $part, $form ) ); ?>
inc/templates/parts/frontend-legal.php CHANGED
@@ -1,9 +1,14 @@
1
  <div class="<?php happyforms_the_part_class( $part, $form ); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>-part" <?php happyforms_the_part_data_attributes( $part, $form ); ?>>
2
  <div class="happyforms-part-wrap">
3
  <div class="happyforms-part__el">
4
- <input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="checkbox" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="yes" required aria-required="true" />
5
  <label for="<?php happyforms_the_part_id( $part, $form ); ?>">
6
  <?php echo html_entity_decode( $part['legal_text'] ); ?>
 
 
 
 
 
7
  </label>
8
  </div>
9
  </div>
1
  <div class="<?php happyforms_the_part_class( $part, $form ); ?>" id="<?php happyforms_the_part_id( $part, $form ); ?>-part" <?php happyforms_the_part_data_attributes( $part, $form ); ?>>
2
  <div class="happyforms-part-wrap">
3
  <div class="happyforms-part__el">
4
+ <?php /*<input id="<?php happyforms_the_part_id( $part, $form ); ?>" type="checkbox" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="yes" required aria-required="true" />
5
  <label for="<?php happyforms_the_part_id( $part, $form ); ?>">
6
  <?php echo html_entity_decode( $part['legal_text'] ); ?>
7
+ </label>*/ ?>
8
+ <label class="option-label">
9
+ <input type="checkbox" class="happyforms-visuallyhidden" id="<?php happyforms_the_part_id( $part, $form ); ?>" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="yes" required aria-required="true">
10
+ <span class="checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"><path fill="currentColor" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg></span>
11
+ <span class="label"><?php echo html_entity_decode( $part['legal_text'] ); ?></span>
12
  </label>
13
  </div>
14
  </div>
inc/templates/parts/frontend-radio.php CHANGED
@@ -15,7 +15,7 @@
15
  <div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
16
  <label class="option-label">
17
  <input type="radio" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo esc_attr( $option['label'] ); ?>" <?php echo $checked; ?>>
18
- <span class="checkmark"></span>
19
  <span class="border"></span>
20
  <span class="label"><?php echo esc_attr( $option['label'] ); ?></span>
21
  </label>
15
  <div class="happyforms-part__option happyforms-part-option" id="<?php echo esc_attr( $option['id'] ); ?>">
16
  <label class="option-label">
17
  <input type="radio" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>" value="<?php echo esc_attr( $option['label'] ); ?>" <?php echo $checked; ?>>
18
+ <span class="checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"><path fill="currentColor" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg></span>
19
  <span class="border"></span>
20
  <span class="label"><?php echo esc_attr( $option['label'] ); ?></span>
21
  </label>
inc/templates/parts/frontend-table.php CHANGED
@@ -10,7 +10,7 @@
10
  $columns = happyforms_get_part_options( $part['columns'], $part, $form );
11
  $columns_num = ( is_array( $columns ) ) ? sizeof( $columns ) : 1;
12
  ?>
13
- <div class="happyfoms-table">
14
  <div class="happyforms-table__row happyforms-table__row--head">
15
  <div class="happyforms-table__cell" style="width: <?php echo 100 / $columns_num; ?>%"></div>
16
  <?php
@@ -41,7 +41,7 @@
41
  }
42
  ?>
43
  <input type="radio" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[<?php echo esc_attr( $row['id'] ); ?>]" value="<?php echo esc_attr( $column['label'] ); ?>" <?php echo $checked; ?>>
44
- <span class="checkmark"></span>
45
  <span class="border"></span>
46
  <?php else: ?>
47
  <?php
@@ -51,7 +51,7 @@
51
  $checked = ( $is_default || $is_checked ) ? 'checked="checked"' : '';
52
  ?>
53
  <input type="checkbox" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[<?php echo esc_attr( $row['id'] ); ?>][]" value="<?php echo esc_attr( $column['label'] ); ?>" <?php echo $checked; ?>>
54
- <span class="checkmark"></span>
55
  <?php endif; ?>
56
  </label>
57
  </div>
10
  $columns = happyforms_get_part_options( $part['columns'], $part, $form );
11
  $columns_num = ( is_array( $columns ) ) ? sizeof( $columns ) : 1;
12
  ?>
13
+ <div class="happyforms-table">
14
  <div class="happyforms-table__row happyforms-table__row--head">
15
  <div class="happyforms-table__cell" style="width: <?php echo 100 / $columns_num; ?>%"></div>
16
  <?php
41
  }
42
  ?>
43
  <input type="radio" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[<?php echo esc_attr( $row['id'] ); ?>]" value="<?php echo esc_attr( $column['label'] ); ?>" <?php echo $checked; ?>>
44
+ <span class="checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"><path fill="currentColor" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg></span>
45
  <span class="border"></span>
46
  <?php else: ?>
47
  <?php
51
  $checked = ( $is_default || $is_checked ) ? 'checked="checked"' : '';
52
  ?>
53
  <input type="checkbox" class="happyforms-visuallyhidden" name="<?php happyforms_the_part_name( $part, $form ); ?>[<?php echo esc_attr( $row['id'] ); ?>][]" value="<?php echo esc_attr( $column['label'] ); ?>" <?php echo $checked; ?>>
54
+ <span class="checkmark"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24"><path fill="currentColor" d="M20.285 2l-11.285 11.567-5.286-5.011-3.714 3.716 9 8.728 15-15.285z"/></svg></span>
55
  <?php endif; ?>
56
  </label>
57
  </div>
languages/happyforms.pot CHANGED
@@ -2,9 +2,9 @@
2
  # This file is distributed under the same license as the HappyForms package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: HappyForms 1.5.2\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
- "POT-Creation-Date: 2018-07-11 07:58:01+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
@@ -101,7 +101,7 @@ msgstr ""
101
  msgid "Copy to clipboard"
102
  msgstr ""
103
 
104
- #: inc/classes/class-form-admin.php:358 inc/classes/class-message-admin.php:624
105
  msgid "Edit"
106
  msgstr ""
107
 
@@ -166,26 +166,26 @@ msgstr ""
166
  msgid "Untitled form"
167
  msgstr ""
168
 
169
- #: inc/classes/class-form-controller.php:200
170
- msgid "You received a new message"
171
- msgstr ""
172
-
173
- #: inc/classes/class-form-controller.php:204
174
- #: inc/classes/class-form-controller.php:212
175
  msgid ""
176
  "Your message has been successfully sent. We appreciate you contacting us "
177
  "and we’ll be in touch soon."
178
  msgstr ""
179
 
180
  #: inc/classes/class-form-controller.php:208
 
 
 
 
181
  msgid "We received your message"
182
  msgstr ""
183
 
184
- #: inc/classes/class-form-controller.php:224
185
  msgid "Submit Form"
186
  msgstr ""
187
 
188
- #: inc/classes/class-form-controller.php:740
189
  #: inc/classes/class-message-controller.php:236
190
  msgid "Your submission contains errors."
191
  msgstr ""
@@ -303,141 +303,137 @@ msgstr ""
303
  msgid "Full width"
304
  msgstr ""
305
 
306
- #: inc/classes/class-form-styles.php:465
307
  msgid "General"
308
  msgstr ""
309
 
310
- #: inc/classes/class-form-styles.php:469
311
  msgid "Form width"
312
  msgstr ""
313
 
314
- #: inc/classes/class-form-styles.php:474
315
  msgid "Direction"
316
  msgstr ""
317
 
318
- #: inc/classes/class-form-styles.php:479 inc/classes/class-form-styles.php:658
319
  msgid "Required text"
320
  msgstr ""
321
 
322
- #: inc/classes/class-form-styles.php:484
323
  msgid "Disable submit button until form is valid"
324
  msgstr ""
325
 
326
- #: inc/classes/class-form-styles.php:489
327
  msgid "Font weight"
328
  msgstr ""
329
 
330
- #: inc/classes/class-form-styles.php:494 inc/classes/class-form-styles.php:561
331
- #: inc/classes/class-form-styles.php:639 inc/classes/class-form-styles.php:737
332
  msgid "Colors"
333
  msgstr ""
334
 
335
- #: inc/classes/class-form-styles.php:498
336
  msgid "Primary"
337
  msgstr ""
338
 
339
- #: inc/classes/class-form-styles.php:503
340
  msgid "Success"
341
  msgstr ""
342
 
343
- #: inc/classes/class-form-styles.php:508
344
  msgid "Error"
345
  msgstr ""
346
 
347
- #: inc/classes/class-form-styles.php:513 inc/classes/class-form-styles.php:517
348
  msgid "Form title"
349
  msgstr ""
350
 
351
- #: inc/classes/class-form-styles.php:522 inc/classes/class-form-styles.php:732
352
  msgid "Alignment"
353
  msgstr ""
354
 
355
- #: inc/classes/class-form-styles.php:527
356
  msgid "Font size"
357
  msgstr ""
358
 
359
- #: inc/classes/class-form-styles.php:532
360
  msgid "Part borders & spacing"
361
  msgstr ""
362
 
363
- #: inc/classes/class-form-styles.php:536 inc/classes/class-form-styles.php:565
364
- #: inc/classes/class-form-styles.php:707 inc/classes/class-form-styles.php:756
365
  msgid "Border"
366
  msgstr ""
367
 
368
- #: inc/classes/class-form-styles.php:541
369
  msgid "Border location"
370
  msgstr ""
371
 
372
- #: inc/classes/class-form-styles.php:546 inc/classes/class-form-styles.php:712
373
  msgid "Border radius"
374
  msgstr ""
375
 
376
- #: inc/classes/class-form-styles.php:551
377
  msgid "Outer padding"
378
  msgstr ""
379
 
380
- #: inc/classes/class-form-styles.php:556
381
  msgid "Inner padding"
382
  msgstr ""
383
 
384
- #: inc/classes/class-form-styles.php:570
385
  msgid "Border on focus"
386
  msgstr ""
387
 
388
- #: inc/classes/class-form-styles.php:575 inc/classes/class-form-styles.php:741
389
  msgid "Background"
390
  msgstr ""
391
 
392
- #: inc/classes/class-form-styles.php:580 inc/classes/class-form-styles.php:751
393
- msgid "Background on focus"
394
- msgstr ""
395
-
396
- #: inc/classes/class-form-styles.php:585
397
  msgid "Disable transitions on part colors"
398
  msgstr ""
399
 
400
- #: inc/classes/class-form-styles.php:590
401
  msgid "Part labels & text"
402
  msgstr ""
403
 
404
- #: inc/classes/class-form-styles.php:594
405
  msgid "Part titles"
406
  msgstr ""
407
 
408
- #: inc/classes/class-form-styles.php:599
409
  msgid "Toggle placeholder on part focus"
410
  msgstr ""
411
 
412
- #: inc/classes/class-form-styles.php:604
413
  msgid "Title alignment"
414
  msgstr ""
415
 
416
- #: inc/classes/class-form-styles.php:609
417
  msgid "Title font size"
418
  msgstr ""
419
 
420
- #: inc/classes/class-form-styles.php:614
421
  msgid "Title font weight"
422
  msgstr ""
423
 
424
- #: inc/classes/class-form-styles.php:619
425
  msgid "Description alignment"
426
  msgstr ""
427
 
428
- #: inc/classes/class-form-styles.php:624
429
  msgid "Description font size"
430
  msgstr ""
431
 
432
- #: inc/classes/class-form-styles.php:629
433
  msgid "Placeholder &amp; Value alignment"
434
  msgstr ""
435
 
436
- #: inc/classes/class-form-styles.php:634
437
  msgid "Value font size"
438
  msgstr ""
439
 
440
- #: inc/classes/class-form-styles.php:643
441
  #: inc/classes/parts/class-part-title.php:8
442
  #: inc/classes/parts/class-part-title.php:26
443
  #: inc/templates/parts/customize-address.php:4
@@ -459,11 +455,11 @@ msgstr ""
459
  msgid "Title"
460
  msgstr ""
461
 
462
- #: inc/classes/class-form-styles.php:648
463
  msgid "Value"
464
  msgstr ""
465
 
466
- #: inc/classes/class-form-styles.php:653
467
  #: inc/classes/parts/class-part-placeholder.php:8
468
  #: inc/templates/parts/customize-address.php:32
469
  #: inc/templates/parts/customize-email.php:32
@@ -475,46 +471,62 @@ msgstr ""
475
  msgid "Placeholder"
476
  msgstr ""
477
 
478
- #: inc/classes/class-form-styles.php:663
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
479
  #: inc/classes/parts/class-part-rating.php:9
480
  #: inc/classes/parts/class-part-rating.php:29
481
  msgid "Rating"
482
  msgstr ""
483
 
484
- #: inc/classes/class-form-styles.php:668
485
  msgid "Rating star color"
486
  msgstr ""
487
 
488
- #: inc/classes/class-form-styles.php:673
489
  msgid "Rating star color on hover"
490
  msgstr ""
491
 
492
- #: inc/classes/class-form-styles.php:678
493
  #: inc/classes/parts/class-part-table.php:8
494
  msgid "Table"
495
  msgstr ""
496
 
497
- #: inc/classes/class-form-styles.php:683
498
  msgid "Odd row primary"
499
  msgstr ""
500
 
501
- #: inc/classes/class-form-styles.php:688
502
  msgid "Odd row secondary"
503
  msgstr ""
504
 
505
- #: inc/classes/class-form-styles.php:693
506
  msgid "Even row primary"
507
  msgstr ""
508
 
509
- #: inc/classes/class-form-styles.php:698
510
  msgid "Even row secondary"
511
  msgstr ""
512
 
513
- #: inc/classes/class-form-styles.php:703
514
  msgid "Submit button"
515
  msgstr ""
516
 
517
- #: inc/classes/class-form-styles.php:717
518
  #: inc/templates/parts/customize-address.php:74
519
  #: inc/templates/parts/customize-checkbox.php:51
520
  #: inc/templates/parts/customize-date.php:97
@@ -535,30 +547,30 @@ msgstr ""
535
  msgid "Width"
536
  msgstr ""
537
 
538
- #: inc/classes/class-form-styles.php:722
539
  msgid "Font Size"
540
  msgstr ""
541
 
542
- #: inc/classes/class-form-styles.php:727
543
  msgid "Font Weight"
544
  msgstr ""
545
 
546
- #: inc/classes/class-form-styles.php:746
547
- msgid "Background on hover"
548
  msgstr ""
549
 
550
- #: inc/classes/class-form-styles.php:761
551
  #: inc/classes/parts/class-part-multi-line-text.php:28
552
  #: inc/classes/parts/class-part-single-line-text.php:28
553
  #: inc/templates/parts/customize-placeholder.php:21
554
  msgid "Text"
555
  msgstr ""
556
 
557
- #: inc/classes/class-form-styles.php:766
558
- msgid "Text on hover"
559
  msgstr ""
560
 
561
- #: inc/classes/class-form-styles.php:771
562
  msgid "Disable transitions on submit button"
563
  msgstr ""
564
 
@@ -711,6 +723,10 @@ msgstr ""
711
  msgid "Export to CSV"
712
  msgstr ""
713
 
 
 
 
 
714
  #: inc/classes/class-message-admin.php:628
715
  msgid "Delete Permanently"
716
  msgstr ""
@@ -884,7 +900,7 @@ msgstr ""
884
  #: inc/classes/parts/class-part-radio.php:165
885
  #: inc/classes/parts/class-part-rating.php:125
886
  #: inc/classes/parts/class-part-scale.php:163
887
- #: inc/classes/parts/class-part-select.php:157
888
  #: inc/classes/parts/class-part-single-line-text.php:124
889
  #: inc/classes/parts/class-part-table.php:198
890
  #: inc/classes/parts/class-part-title.php:154
@@ -1051,7 +1067,7 @@ msgid "For collecting opinions using a horizontal slider."
1051
  msgstr ""
1052
 
1053
  #: inc/classes/parts/class-part-select.php:8
1054
- #: inc/classes/parts/class-part-select.php:26
1055
  msgid "Dropdown"
1056
  msgstr ""
1057
 
@@ -1059,7 +1075,7 @@ msgstr ""
1059
  msgid "For selecting one option from a long list. Default value adjustable."
1060
  msgstr ""
1061
 
1062
- #: inc/classes/parts/class-part-select.php:165
1063
  msgid "Select values are not valid."
1064
  msgstr ""
1065
 
@@ -2231,6 +2247,7 @@ msgid ""
2231
  msgstr ""
2232
 
2233
  #: inc/templates/admin-tracking.php:18
 
2234
  msgid "Email address"
2235
  msgstr ""
2236
 
@@ -2311,103 +2328,104 @@ msgid "Search parts"
2311
  msgstr ""
2312
 
2313
  #: inc/templates/customize-form-setup.php:4
2314
- msgid "Your email address"
2315
  msgstr ""
2316
 
2317
- #: inc/templates/customize-form-setup.php:8
2318
- msgid "Message alert email subject"
2319
  msgstr ""
2320
 
2321
- #: inc/templates/customize-form-setup.php:12
2322
- msgid "Confirmation message"
 
2323
  msgstr ""
2324
 
2325
- #: inc/templates/customize-form-setup.php:18
2326
- msgid "Confirmation email subject"
2327
  msgstr ""
2328
 
2329
- #: inc/templates/customize-form-setup.php:22
2330
- msgid "Confirmation email content"
2331
  msgstr ""
2332
 
2333
- #: inc/templates/customize-form-setup.php:28
2334
  msgid "On complete redirect link"
2335
  msgstr ""
2336
 
2337
- #: inc/templates/customize-form-setup.php:32
2338
  msgid "Submit button text"
2339
  msgstr ""
2340
 
2341
- #: inc/templates/customize-form-setup.php:38
2342
  msgid "Spam prevention"
2343
  msgstr ""
2344
 
2345
- #: inc/templates/customize-form-setup.php:44
2346
  msgid "Use"
2347
  msgstr ""
2348
 
2349
- #: inc/templates/customize-form-setup.php:44
2350
  msgid "Google ReCaptcha"
2351
  msgstr ""
2352
 
2353
- #: inc/templates/customize-form-setup.php:48
2354
  msgid "ReCaptcha site key"
2355
  msgstr ""
2356
 
2357
- #: inc/templates/customize-form-setup.php:52
2358
  msgid "ReCaptcha secret key"
2359
  msgstr ""
2360
 
2361
- #: inc/templates/customize-form-setup.php:60
2362
  msgid "Save messages for this form"
2363
  msgstr ""
2364
 
2365
- #: inc/templates/customize-form-setup.php:66
 
 
 
 
 
 
2366
  msgid ""
2367
  "Add your email address here to receive a confirmation email for each form "
2368
  "response. You can add multiple email addresses by separating each address "
2369
  "with a comma."
2370
  msgstr ""
2371
 
2372
- #: inc/templates/customize-form-setup.php:69
2373
  msgid ""
2374
  "Each time a user submits a message, you'll receive an email with this "
2375
  "subject."
2376
  msgstr ""
2377
 
2378
- #: inc/templates/customize-form-setup.php:72
2379
- msgid ""
2380
- "This is the message recipients will see after succesfully submitting your "
2381
- "form."
2382
- msgstr ""
2383
-
2384
- #: inc/templates/customize-form-setup.php:75
2385
  msgid ""
2386
  "If your form contains an email field, recipients will receive an email with "
2387
  "this content."
2388
  msgstr ""
2389
 
2390
- #: inc/templates/customize-form-setup.php:78
2391
  msgid ""
2392
  "If your form contains an email field, recipients will receive an email with "
2393
  "this subject."
2394
  msgstr ""
2395
 
2396
- #: inc/templates/customize-form-setup.php:81
2397
  msgid ""
2398
  "By default, recipients will be redirected to the post or page displaying "
2399
  "this form. To set a custom redirect webpage, add a link here."
2400
  msgstr ""
2401
 
2402
- #: inc/templates/customize-form-setup.php:84
2403
  msgid "Protect your form against bots by using HoneyPot security."
2404
  msgstr ""
2405
 
2406
- #: inc/templates/customize-form-setup.php:87
2407
  msgid "Protect your form against bots using your Google ReCaptcha credentials."
2408
  msgstr ""
2409
 
2410
- #: inc/templates/customize-form-setup.php:90
2411
  msgid "Keep recipients responses stored in your WordPress database."
2412
  msgstr ""
2413
 
2
  # This file is distributed under the same license as the HappyForms package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: HappyForms 1.5.3\n"
6
  "Report-Msgid-Bugs-To: https://thethemefoundry.com/support/\n"
7
+ "POT-Creation-Date: 2018-07-19 07:45:42+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=utf-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
101
  msgid "Copy to clipboard"
102
  msgstr ""
103
 
104
+ #: inc/classes/class-form-admin.php:358
105
  msgid "Edit"
106
  msgstr ""
107
 
166
  msgid "Untitled form"
167
  msgstr ""
168
 
169
+ #: inc/classes/class-form-controller.php:196
170
+ #: inc/classes/class-form-controller.php:220
 
 
 
 
171
  msgid ""
172
  "Your message has been successfully sent. We appreciate you contacting us "
173
  "and we’ll be in touch soon."
174
  msgstr ""
175
 
176
  #: inc/classes/class-form-controller.php:208
177
+ msgid "You received a new message"
178
+ msgstr ""
179
+
180
+ #: inc/classes/class-form-controller.php:216
181
  msgid "We received your message"
182
  msgstr ""
183
 
184
+ #: inc/classes/class-form-controller.php:232
185
  msgid "Submit Form"
186
  msgstr ""
187
 
188
+ #: inc/classes/class-form-controller.php:748
189
  #: inc/classes/class-message-controller.php:236
190
  msgid "Your submission contains errors."
191
  msgstr ""
303
  msgid "Full width"
304
  msgstr ""
305
 
306
+ #: inc/classes/class-form-styles.php:477
307
  msgid "General"
308
  msgstr ""
309
 
310
+ #: inc/classes/class-form-styles.php:481
311
  msgid "Form width"
312
  msgstr ""
313
 
314
+ #: inc/classes/class-form-styles.php:486
315
  msgid "Direction"
316
  msgstr ""
317
 
318
+ #: inc/classes/class-form-styles.php:491 inc/classes/class-form-styles.php:665
319
  msgid "Required text"
320
  msgstr ""
321
 
322
+ #: inc/classes/class-form-styles.php:496
323
  msgid "Disable submit button until form is valid"
324
  msgstr ""
325
 
326
+ #: inc/classes/class-form-styles.php:501
327
  msgid "Font weight"
328
  msgstr ""
329
 
330
+ #: inc/classes/class-form-styles.php:506 inc/classes/class-form-styles.php:573
331
+ #: inc/classes/class-form-styles.php:646 inc/classes/class-form-styles.php:764
332
  msgid "Colors"
333
  msgstr ""
334
 
335
+ #: inc/classes/class-form-styles.php:510
336
  msgid "Primary"
337
  msgstr ""
338
 
339
+ #: inc/classes/class-form-styles.php:515
340
  msgid "Success"
341
  msgstr ""
342
 
343
+ #: inc/classes/class-form-styles.php:520
344
  msgid "Error"
345
  msgstr ""
346
 
347
+ #: inc/classes/class-form-styles.php:525 inc/classes/class-form-styles.php:529
348
  msgid "Form title"
349
  msgstr ""
350
 
351
+ #: inc/classes/class-form-styles.php:534 inc/classes/class-form-styles.php:759
352
  msgid "Alignment"
353
  msgstr ""
354
 
355
+ #: inc/classes/class-form-styles.php:539
356
  msgid "Font size"
357
  msgstr ""
358
 
359
+ #: inc/classes/class-form-styles.php:544
360
  msgid "Part borders & spacing"
361
  msgstr ""
362
 
363
+ #: inc/classes/class-form-styles.php:548 inc/classes/class-form-styles.php:577
364
+ #: inc/classes/class-form-styles.php:734 inc/classes/class-form-styles.php:778
365
  msgid "Border"
366
  msgstr ""
367
 
368
+ #: inc/classes/class-form-styles.php:553
369
  msgid "Border location"
370
  msgstr ""
371
 
372
+ #: inc/classes/class-form-styles.php:558 inc/classes/class-form-styles.php:739
373
  msgid "Border radius"
374
  msgstr ""
375
 
376
+ #: inc/classes/class-form-styles.php:563
377
  msgid "Outer padding"
378
  msgstr ""
379
 
380
+ #: inc/classes/class-form-styles.php:568
381
  msgid "Inner padding"
382
  msgstr ""
383
 
384
+ #: inc/classes/class-form-styles.php:582
385
  msgid "Border on focus"
386
  msgstr ""
387
 
388
+ #: inc/classes/class-form-styles.php:587 inc/classes/class-form-styles.php:768
389
  msgid "Background"
390
  msgstr ""
391
 
392
+ #: inc/classes/class-form-styles.php:592
 
 
 
 
393
  msgid "Disable transitions on part colors"
394
  msgstr ""
395
 
396
+ #: inc/classes/class-form-styles.php:597
397
  msgid "Part labels & text"
398
  msgstr ""
399
 
400
+ #: inc/classes/class-form-styles.php:601
401
  msgid "Part titles"
402
  msgstr ""
403
 
404
+ #: inc/classes/class-form-styles.php:606
405
  msgid "Toggle placeholder on part focus"
406
  msgstr ""
407
 
408
+ #: inc/classes/class-form-styles.php:611
409
  msgid "Title alignment"
410
  msgstr ""
411
 
412
+ #: inc/classes/class-form-styles.php:616
413
  msgid "Title font size"
414
  msgstr ""
415
 
416
+ #: inc/classes/class-form-styles.php:621
417
  msgid "Title font weight"
418
  msgstr ""
419
 
420
+ #: inc/classes/class-form-styles.php:626
421
  msgid "Description alignment"
422
  msgstr ""
423
 
424
+ #: inc/classes/class-form-styles.php:631
425
  msgid "Description font size"
426
  msgstr ""
427
 
428
+ #: inc/classes/class-form-styles.php:636
429
  msgid "Placeholder &amp; Value alignment"
430
  msgstr ""
431
 
432
+ #: inc/classes/class-form-styles.php:641
433
  msgid "Value font size"
434
  msgstr ""
435
 
436
+ #: inc/classes/class-form-styles.php:650
437
  #: inc/classes/parts/class-part-title.php:8
438
  #: inc/classes/parts/class-part-title.php:26
439
  #: inc/templates/parts/customize-address.php:4
455
  msgid "Title"
456
  msgstr ""
457
 
458
+ #: inc/classes/class-form-styles.php:655
459
  msgid "Value"
460
  msgstr ""
461
 
462
+ #: inc/classes/class-form-styles.php:660
463
  #: inc/classes/parts/class-part-placeholder.php:8
464
  #: inc/templates/parts/customize-address.php:32
465
  #: inc/templates/parts/customize-email.php:32
471
  msgid "Placeholder"
472
  msgstr ""
473
 
474
+ #: inc/classes/class-form-styles.php:670
475
+ msgid "Checkboxes & Radios"
476
+ msgstr ""
477
+
478
+ #: inc/classes/class-form-styles.php:675
479
+ msgid "Checkbox & Radio background"
480
+ msgstr ""
481
+
482
+ #: inc/classes/class-form-styles.php:680
483
+ msgid "Checkbox & Radio background focused"
484
+ msgstr ""
485
+
486
+ #: inc/classes/class-form-styles.php:685
487
+ msgid "Checkbox & Radio checkmark"
488
+ msgstr ""
489
+
490
+ #: inc/classes/class-form-styles.php:690
491
  #: inc/classes/parts/class-part-rating.php:9
492
  #: inc/classes/parts/class-part-rating.php:29
493
  msgid "Rating"
494
  msgstr ""
495
 
496
+ #: inc/classes/class-form-styles.php:695
497
  msgid "Rating star color"
498
  msgstr ""
499
 
500
+ #: inc/classes/class-form-styles.php:700
501
  msgid "Rating star color on hover"
502
  msgstr ""
503
 
504
+ #: inc/classes/class-form-styles.php:705
505
  #: inc/classes/parts/class-part-table.php:8
506
  msgid "Table"
507
  msgstr ""
508
 
509
+ #: inc/classes/class-form-styles.php:710
510
  msgid "Odd row primary"
511
  msgstr ""
512
 
513
+ #: inc/classes/class-form-styles.php:715
514
  msgid "Odd row secondary"
515
  msgstr ""
516
 
517
+ #: inc/classes/class-form-styles.php:720
518
  msgid "Even row primary"
519
  msgstr ""
520
 
521
+ #: inc/classes/class-form-styles.php:725
522
  msgid "Even row secondary"
523
  msgstr ""
524
 
525
+ #: inc/classes/class-form-styles.php:730
526
  msgid "Submit button"
527
  msgstr ""
528
 
529
+ #: inc/classes/class-form-styles.php:744
530
  #: inc/templates/parts/customize-address.php:74
531
  #: inc/templates/parts/customize-checkbox.php:51
532
  #: inc/templates/parts/customize-date.php:97
547
  msgid "Width"
548
  msgstr ""
549
 
550
+ #: inc/classes/class-form-styles.php:749
551
  msgid "Font Size"
552
  msgstr ""
553
 
554
+ #: inc/classes/class-form-styles.php:754
555
  msgid "Font Weight"
556
  msgstr ""
557
 
558
+ #: inc/classes/class-form-styles.php:773
559
+ msgid "Background focused"
560
  msgstr ""
561
 
562
+ #: inc/classes/class-form-styles.php:783
563
  #: inc/classes/parts/class-part-multi-line-text.php:28
564
  #: inc/classes/parts/class-part-single-line-text.php:28
565
  #: inc/templates/parts/customize-placeholder.php:21
566
  msgid "Text"
567
  msgstr ""
568
 
569
+ #: inc/classes/class-form-styles.php:788
570
+ msgid "Text focused"
571
  msgstr ""
572
 
573
+ #: inc/classes/class-form-styles.php:793
574
  msgid "Disable transitions on submit button"
575
  msgstr ""
576
 
723
  msgid "Export to CSV"
724
  msgstr ""
725
 
726
+ #: inc/classes/class-message-admin.php:624
727
+ msgid "View"
728
+ msgstr ""
729
+
730
  #: inc/classes/class-message-admin.php:628
731
  msgid "Delete Permanently"
732
  msgstr ""
900
  #: inc/classes/parts/class-part-radio.php:165
901
  #: inc/classes/parts/class-part-rating.php:125
902
  #: inc/classes/parts/class-part-scale.php:163
903
+ #: inc/classes/parts/class-part-select.php:159
904
  #: inc/classes/parts/class-part-single-line-text.php:124
905
  #: inc/classes/parts/class-part-table.php:198
906
  #: inc/classes/parts/class-part-title.php:154
1067
  msgstr ""
1068
 
1069
  #: inc/classes/parts/class-part-select.php:8
1070
+ #: inc/classes/parts/class-part-select.php:28
1071
  msgid "Dropdown"
1072
  msgstr ""
1073
 
1075
  msgid "For selecting one option from a long list. Default value adjustable."
1076
  msgstr ""
1077
 
1078
+ #: inc/classes/parts/class-part-select.php:167
1079
  msgid "Select values are not valid."
1080
  msgstr ""
1081
 
2247
  msgstr ""
2248
 
2249
  #: inc/templates/admin-tracking.php:18
2250
+ #: inc/templates/customize-form-setup.php:17
2251
  msgid "Email address"
2252
  msgstr ""
2253
 
2328
  msgstr ""
2329
 
2330
  #: inc/templates/customize-form-setup.php:4
2331
+ msgid "Confirmation message"
2332
  msgstr ""
2333
 
2334
+ #: inc/templates/customize-form-setup.php:12
2335
+ msgid "Receive subscription alerts"
2336
  msgstr ""
2337
 
2338
+ #: inc/templates/customize-form-setup.php:21
2339
+ #: inc/templates/customize-form-setup.php:33
2340
+ msgid "Email subject"
2341
  msgstr ""
2342
 
2343
+ #: inc/templates/customize-form-setup.php:28
2344
+ msgid "Send confirmation email"
2345
  msgstr ""
2346
 
2347
+ #: inc/templates/customize-form-setup.php:37
2348
+ msgid "Email content"
2349
  msgstr ""
2350
 
2351
+ #: inc/templates/customize-form-setup.php:44
2352
  msgid "On complete redirect link"
2353
  msgstr ""
2354
 
2355
+ #: inc/templates/customize-form-setup.php:48
2356
  msgid "Submit button text"
2357
  msgstr ""
2358
 
2359
+ #: inc/templates/customize-form-setup.php:54
2360
  msgid "Spam prevention"
2361
  msgstr ""
2362
 
2363
+ #: inc/templates/customize-form-setup.php:60
2364
  msgid "Use"
2365
  msgstr ""
2366
 
2367
+ #: inc/templates/customize-form-setup.php:60
2368
  msgid "Google ReCaptcha"
2369
  msgstr ""
2370
 
2371
+ #: inc/templates/customize-form-setup.php:64
2372
  msgid "ReCaptcha site key"
2373
  msgstr ""
2374
 
2375
+ #: inc/templates/customize-form-setup.php:68
2376
  msgid "ReCaptcha secret key"
2377
  msgstr ""
2378
 
2379
+ #: inc/templates/customize-form-setup.php:76
2380
  msgid "Save messages for this form"
2381
  msgstr ""
2382
 
2383
+ #: inc/templates/customize-form-setup.php:82
2384
+ msgid ""
2385
+ "This is the message your users will see after succesfully submitting your "
2386
+ "form."
2387
+ msgstr ""
2388
+
2389
+ #: inc/templates/customize-form-setup.php:85
2390
  msgid ""
2391
  "Add your email address here to receive a confirmation email for each form "
2392
  "response. You can add multiple email addresses by separating each address "
2393
  "with a comma."
2394
  msgstr ""
2395
 
2396
+ #: inc/templates/customize-form-setup.php:88
2397
  msgid ""
2398
  "Each time a user submits a message, you'll receive an email with this "
2399
  "subject."
2400
  msgstr ""
2401
 
2402
+ #: inc/templates/customize-form-setup.php:91
 
 
 
 
 
 
2403
  msgid ""
2404
  "If your form contains an email field, recipients will receive an email with "
2405
  "this content."
2406
  msgstr ""
2407
 
2408
+ #: inc/templates/customize-form-setup.php:94
2409
  msgid ""
2410
  "If your form contains an email field, recipients will receive an email with "
2411
  "this subject."
2412
  msgstr ""
2413
 
2414
+ #: inc/templates/customize-form-setup.php:97
2415
  msgid ""
2416
  "By default, recipients will be redirected to the post or page displaying "
2417
  "this form. To set a custom redirect webpage, add a link here."
2418
  msgstr ""
2419
 
2420
+ #: inc/templates/customize-form-setup.php:100
2421
  msgid "Protect your form against bots by using HoneyPot security."
2422
  msgstr ""
2423
 
2424
+ #: inc/templates/customize-form-setup.php:103
2425
  msgid "Protect your form against bots using your Google ReCaptcha credentials."
2426
  msgstr ""
2427
 
2428
+ #: inc/templates/customize-form-setup.php:106
2429
  msgid "Keep recipients responses stored in your WordPress database."
2430
  msgstr ""
2431
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Tags: contact, contact form, email, feedback form, form, form builder, custom fo
5
  Requires at least: 4.8
6
  Tested up to: 4.9.7
7
  Requires PHP: 5.2.4
8
- Stable tag: 1.5.2
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
@@ -75,6 +75,17 @@ Absolutely! HappyForms gets out of the way and is designed to work with any them
75
 
76
  == Changelog ==
77
 
 
 
 
 
 
 
 
 
 
 
 
78
  = 1.5.2 =
79
  * Bug fix: Phone number region country in masked Phone part was defaulting to first option on every load of form builder.
80
 
@@ -179,6 +190,9 @@ Absolutely! HappyForms gets out of the way and is designed to work with any them
179
 
180
  == Upgrade Notice ==
181
 
 
 
 
182
  = 1.5.2 =
183
  * Fixed masked Phone part region country defaulting to first option on every load of form builder.
184
 
5
  Requires at least: 4.8
6
  Tested up to: 4.9.7
7
  Requires PHP: 5.2.4
8
+ Stable tag: 1.5.3
9
  License: GPLv2 or later
10
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
11
 
75
 
76
  == Changelog ==
77
 
78
+ = 1.5.3 =
79
+ * Improvement: New default styles to provide even better visual experience.
80
+ * Improvement: Clearer display of email alerts and confirmations in Step 2 of form configuration.
81
+ * Bug fix: Confirmation message and Confirmation email message fields were not saving with HTML formatting.
82
+ * Bug fix: When Legal part was present, it allowed sending empty forms without further validation.
83
+ * Bug fix: Font size sliders in Style step were not working on a new empty form.
84
+ * Bug fix: Various CSS fixes.
85
+ * Bug fix: First characters in Phone values were being stripped.
86
+ * Bug fix: forms loaded in the footer were missing required Javascript logic.
87
+ * Bug fix: Date & Time part was showing incorrect year in the End At field when Show option was changed.
88
+
89
  = 1.5.2 =
90
  * Bug fix: Phone number region country in masked Phone part was defaulting to first option on every load of form builder.
91
 
190
 
191
  == Upgrade Notice ==
192
 
193
+ = 1.5.3 =
194
+ * New default styles and bug fixes.
195
+
196
  = 1.5.2 =
197
  * Fixed masked Phone part region country defaulting to first option on every load of form builder.
198