@opensite/ui 1.9.2 → 1.9.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -686,77 +686,6 @@ function DynamicFormField({
686
686
  }
687
687
  );
688
688
  }
689
-
690
- // lib/form-field-types.ts
691
- function generateInitialValues(fields) {
692
- return fields.reduce(
693
- (acc, field) => {
694
- if (field.type === "checkbox") {
695
- acc[field.name] = false;
696
- } else if (field.type === "checkbox-group" || field.type === "multi-select") {
697
- acc[field.name] = [];
698
- } else if (field.type === "file") {
699
- acc[field.name] = [];
700
- } else if (field.type === "date-range") {
701
- acc[field.name] = { start: null, end: null };
702
- } else {
703
- acc[field.name] = "";
704
- }
705
- return acc;
706
- },
707
- {}
708
- );
709
- }
710
- function generateValidationSchema(fields) {
711
- return fields.reduce(
712
- (acc, field) => {
713
- acc[field.name] = (value, allValues) => {
714
- if (field.required) {
715
- if (!value || typeof value === "string" && !value.trim()) {
716
- return `${field.label} is required`;
717
- }
718
- }
719
- if (field.type === "email" && value) {
720
- if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
721
- return "Please enter a valid email address";
722
- }
723
- }
724
- if (field.type === "url" && value) {
725
- try {
726
- new URL(value);
727
- } catch {
728
- return "Please enter a valid URL";
729
- }
730
- }
731
- if (field.validator) {
732
- return field.validator(value, allValues);
733
- }
734
- return void 0;
735
- };
736
- return acc;
737
- },
738
- {}
739
- );
740
- }
741
- var columnSpanClasses = {
742
- 1: "col-span-12 md:col-span-1",
743
- 2: "col-span-12 md:col-span-2",
744
- 3: "col-span-12 md:col-span-3",
745
- 4: "col-span-12 md:col-span-4",
746
- 5: "col-span-12 md:col-span-5",
747
- 6: "col-span-12 md:col-span-6",
748
- 7: "col-span-12 md:col-span-7",
749
- 8: "col-span-12 md:col-span-8",
750
- 9: "col-span-12 md:col-span-9",
751
- 10: "col-span-12 md:col-span-10",
752
- 11: "col-span-12 md:col-span-11",
753
- 12: "col-span-12"
754
- };
755
- function getColumnSpanClass(span) {
756
- if (!span || span === 12) return "col-span-12";
757
- const clamped = Math.max(1, Math.min(span, 12));
758
- return columnSpanClasses[clamped] || "col-span-12";
759
- }
760
689
  function useFileUpload(options) {
761
690
  const [uploadTokens, setUploadTokens] = React.useState([]);
762
691
  const [uploadProgress, setUploadProgress] = React.useState({});
@@ -821,6 +750,60 @@ function useFileUpload(options) {
821
750
  resetUpload
822
751
  };
823
752
  }
753
+
754
+ // lib/form-field-types.ts
755
+ function generateInitialValues(fields) {
756
+ return fields.reduce(
757
+ (acc, field) => {
758
+ if (field.type === "checkbox") {
759
+ acc[field.name] = false;
760
+ } else if (field.type === "checkbox-group" || field.type === "multi-select") {
761
+ acc[field.name] = [];
762
+ } else if (field.type === "file") {
763
+ acc[field.name] = [];
764
+ } else if (field.type === "date-range") {
765
+ acc[field.name] = { start: null, end: null };
766
+ } else {
767
+ acc[field.name] = "";
768
+ }
769
+ return acc;
770
+ },
771
+ {}
772
+ );
773
+ }
774
+ function generateValidationSchema(fields) {
775
+ return fields.reduce(
776
+ (acc, field) => {
777
+ acc[field.name] = (value, allValues) => {
778
+ if (field.required) {
779
+ if (!value || typeof value === "string" && !value.trim()) {
780
+ return `${field.label} is required`;
781
+ }
782
+ }
783
+ if (field.type === "email" && value) {
784
+ if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
785
+ return "Please enter a valid email address";
786
+ }
787
+ }
788
+ if (field.type === "url" && value) {
789
+ try {
790
+ new URL(value);
791
+ } catch {
792
+ return "Please enter a valid URL";
793
+ }
794
+ }
795
+ if (field.validator) {
796
+ return field.validator(value, allValues);
797
+ }
798
+ return void 0;
799
+ };
800
+ return acc;
801
+ },
802
+ {}
803
+ );
804
+ }
805
+
806
+ // lib/forms/use-contact-form.ts
824
807
  function useContactForm(options) {
825
808
  const {
826
809
  formFields,
@@ -1497,23 +1480,56 @@ function ContactPhotography({
1497
1480
  },
1498
1481
  className: cn("space-y-4", formClassName),
1499
1482
  children: [
1500
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-12 gap-6", children: formFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx(
1501
- "div",
1502
- {
1503
- className: getColumnSpanClass(field.columnSpan),
1504
- children: /* @__PURE__ */ jsxRuntime.jsx(
1505
- DynamicFormField,
1483
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: formFields.map((field, index) => {
1484
+ const prevField = index > 0 ? formFields[index - 1] : null;
1485
+ const shouldGroup = field.columnSpan && field.columnSpan <= 6 && prevField?.columnSpan && prevField.columnSpan <= 6 && prevField.columnSpan + field.columnSpan <= 12;
1486
+ if (shouldGroup && index > 0) {
1487
+ return null;
1488
+ }
1489
+ const nextField = index < formFields.length - 1 ? formFields[index + 1] : null;
1490
+ const groupWithNext = field.columnSpan && field.columnSpan <= 6 && nextField?.columnSpan && nextField.columnSpan <= 6 && field.columnSpan + nextField.columnSpan <= 12;
1491
+ if (groupWithNext && nextField) {
1492
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1493
+ "div",
1506
1494
  {
1507
- field,
1508
- uploadProgress,
1509
- onFileUpload: uploadFiles,
1510
- onFileRemove: removeFile,
1511
- isUploading
1512
- }
1513
- )
1514
- },
1515
- field.name
1516
- )) }),
1495
+ className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
1496
+ children: [
1497
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
1498
+ DynamicFormField,
1499
+ {
1500
+ field,
1501
+ uploadProgress,
1502
+ onFileUpload: uploadFiles,
1503
+ onFileRemove: removeFile,
1504
+ isUploading
1505
+ }
1506
+ ) }),
1507
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
1508
+ DynamicFormField,
1509
+ {
1510
+ field: nextField,
1511
+ uploadProgress,
1512
+ onFileUpload: uploadFiles,
1513
+ onFileRemove: removeFile,
1514
+ isUploading
1515
+ }
1516
+ ) })
1517
+ ]
1518
+ },
1519
+ field.name
1520
+ );
1521
+ }
1522
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
1523
+ DynamicFormField,
1524
+ {
1525
+ field,
1526
+ uploadProgress,
1527
+ onFileUpload: uploadFiles,
1528
+ onFileRemove: removeFile,
1529
+ isUploading
1530
+ }
1531
+ ) }, field.name);
1532
+ }) }),
1517
1533
  actionsSlot || actions && actions.length > 0 ? actionsContent : /* @__PURE__ */ jsxRuntime.jsxs(
1518
1534
  Pressable,
1519
1535
  {
@@ -665,77 +665,6 @@ function DynamicFormField({
665
665
  }
666
666
  );
667
667
  }
668
-
669
- // lib/form-field-types.ts
670
- function generateInitialValues(fields) {
671
- return fields.reduce(
672
- (acc, field) => {
673
- if (field.type === "checkbox") {
674
- acc[field.name] = false;
675
- } else if (field.type === "checkbox-group" || field.type === "multi-select") {
676
- acc[field.name] = [];
677
- } else if (field.type === "file") {
678
- acc[field.name] = [];
679
- } else if (field.type === "date-range") {
680
- acc[field.name] = { start: null, end: null };
681
- } else {
682
- acc[field.name] = "";
683
- }
684
- return acc;
685
- },
686
- {}
687
- );
688
- }
689
- function generateValidationSchema(fields) {
690
- return fields.reduce(
691
- (acc, field) => {
692
- acc[field.name] = (value, allValues) => {
693
- if (field.required) {
694
- if (!value || typeof value === "string" && !value.trim()) {
695
- return `${field.label} is required`;
696
- }
697
- }
698
- if (field.type === "email" && value) {
699
- if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
700
- return "Please enter a valid email address";
701
- }
702
- }
703
- if (field.type === "url" && value) {
704
- try {
705
- new URL(value);
706
- } catch {
707
- return "Please enter a valid URL";
708
- }
709
- }
710
- if (field.validator) {
711
- return field.validator(value, allValues);
712
- }
713
- return void 0;
714
- };
715
- return acc;
716
- },
717
- {}
718
- );
719
- }
720
- var columnSpanClasses = {
721
- 1: "col-span-12 md:col-span-1",
722
- 2: "col-span-12 md:col-span-2",
723
- 3: "col-span-12 md:col-span-3",
724
- 4: "col-span-12 md:col-span-4",
725
- 5: "col-span-12 md:col-span-5",
726
- 6: "col-span-12 md:col-span-6",
727
- 7: "col-span-12 md:col-span-7",
728
- 8: "col-span-12 md:col-span-8",
729
- 9: "col-span-12 md:col-span-9",
730
- 10: "col-span-12 md:col-span-10",
731
- 11: "col-span-12 md:col-span-11",
732
- 12: "col-span-12"
733
- };
734
- function getColumnSpanClass(span) {
735
- if (!span || span === 12) return "col-span-12";
736
- const clamped = Math.max(1, Math.min(span, 12));
737
- return columnSpanClasses[clamped] || "col-span-12";
738
- }
739
668
  function useFileUpload(options) {
740
669
  const [uploadTokens, setUploadTokens] = useState([]);
741
670
  const [uploadProgress, setUploadProgress] = useState({});
@@ -800,6 +729,60 @@ function useFileUpload(options) {
800
729
  resetUpload
801
730
  };
802
731
  }
732
+
733
+ // lib/form-field-types.ts
734
+ function generateInitialValues(fields) {
735
+ return fields.reduce(
736
+ (acc, field) => {
737
+ if (field.type === "checkbox") {
738
+ acc[field.name] = false;
739
+ } else if (field.type === "checkbox-group" || field.type === "multi-select") {
740
+ acc[field.name] = [];
741
+ } else if (field.type === "file") {
742
+ acc[field.name] = [];
743
+ } else if (field.type === "date-range") {
744
+ acc[field.name] = { start: null, end: null };
745
+ } else {
746
+ acc[field.name] = "";
747
+ }
748
+ return acc;
749
+ },
750
+ {}
751
+ );
752
+ }
753
+ function generateValidationSchema(fields) {
754
+ return fields.reduce(
755
+ (acc, field) => {
756
+ acc[field.name] = (value, allValues) => {
757
+ if (field.required) {
758
+ if (!value || typeof value === "string" && !value.trim()) {
759
+ return `${field.label} is required`;
760
+ }
761
+ }
762
+ if (field.type === "email" && value) {
763
+ if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(value)) {
764
+ return "Please enter a valid email address";
765
+ }
766
+ }
767
+ if (field.type === "url" && value) {
768
+ try {
769
+ new URL(value);
770
+ } catch {
771
+ return "Please enter a valid URL";
772
+ }
773
+ }
774
+ if (field.validator) {
775
+ return field.validator(value, allValues);
776
+ }
777
+ return void 0;
778
+ };
779
+ return acc;
780
+ },
781
+ {}
782
+ );
783
+ }
784
+
785
+ // lib/forms/use-contact-form.ts
803
786
  function useContactForm(options) {
804
787
  const {
805
788
  formFields,
@@ -1476,23 +1459,56 @@ function ContactPhotography({
1476
1459
  },
1477
1460
  className: cn("space-y-4", formClassName),
1478
1461
  children: [
1479
- /* @__PURE__ */ jsx("div", { className: "grid grid-cols-12 gap-6", children: formFields.map((field) => /* @__PURE__ */ jsx(
1480
- "div",
1481
- {
1482
- className: getColumnSpanClass(field.columnSpan),
1483
- children: /* @__PURE__ */ jsx(
1484
- DynamicFormField,
1462
+ /* @__PURE__ */ jsx("div", { className: "space-y-4", children: formFields.map((field, index) => {
1463
+ const prevField = index > 0 ? formFields[index - 1] : null;
1464
+ const shouldGroup = field.columnSpan && field.columnSpan <= 6 && prevField?.columnSpan && prevField.columnSpan <= 6 && prevField.columnSpan + field.columnSpan <= 12;
1465
+ if (shouldGroup && index > 0) {
1466
+ return null;
1467
+ }
1468
+ const nextField = index < formFields.length - 1 ? formFields[index + 1] : null;
1469
+ const groupWithNext = field.columnSpan && field.columnSpan <= 6 && nextField?.columnSpan && nextField.columnSpan <= 6 && field.columnSpan + nextField.columnSpan <= 12;
1470
+ if (groupWithNext && nextField) {
1471
+ return /* @__PURE__ */ jsxs(
1472
+ "div",
1485
1473
  {
1486
- field,
1487
- uploadProgress,
1488
- onFileUpload: uploadFiles,
1489
- onFileRemove: removeFile,
1490
- isUploading
1491
- }
1492
- )
1493
- },
1494
- field.name
1495
- )) }),
1474
+ className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
1475
+ children: [
1476
+ /* @__PURE__ */ jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsx(
1477
+ DynamicFormField,
1478
+ {
1479
+ field,
1480
+ uploadProgress,
1481
+ onFileUpload: uploadFiles,
1482
+ onFileRemove: removeFile,
1483
+ isUploading
1484
+ }
1485
+ ) }),
1486
+ /* @__PURE__ */ jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsx(
1487
+ DynamicFormField,
1488
+ {
1489
+ field: nextField,
1490
+ uploadProgress,
1491
+ onFileUpload: uploadFiles,
1492
+ onFileRemove: removeFile,
1493
+ isUploading
1494
+ }
1495
+ ) })
1496
+ ]
1497
+ },
1498
+ field.name
1499
+ );
1500
+ }
1501
+ return /* @__PURE__ */ jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsx(
1502
+ DynamicFormField,
1503
+ {
1504
+ field,
1505
+ uploadProgress,
1506
+ onFileUpload: uploadFiles,
1507
+ onFileRemove: removeFile,
1508
+ isUploading
1509
+ }
1510
+ ) }, field.name);
1511
+ }) }),
1496
1512
  actionsSlot || actions && actions.length > 0 ? actionsContent : /* @__PURE__ */ jsxs(
1497
1513
  Pressable,
1498
1514
  {
package/dist/registry.cjs CHANGED
@@ -14583,23 +14583,56 @@ function ContactDark({
14583
14583
  },
14584
14584
  className: cn("space-y-6", formClassName),
14585
14585
  children: [
14586
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-12 gap-6", children: formFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx(
14587
- "div",
14588
- {
14589
- className: getColumnSpanClass(field.columnSpan),
14590
- children: /* @__PURE__ */ jsxRuntime.jsx(
14591
- DynamicFormField,
14586
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: formFields.map((field, index) => {
14587
+ const prevField = index > 0 ? formFields[index - 1] : null;
14588
+ const shouldGroup = field.columnSpan && field.columnSpan <= 6 && prevField?.columnSpan && prevField.columnSpan <= 6 && prevField.columnSpan + field.columnSpan <= 12;
14589
+ if (shouldGroup && index > 0) {
14590
+ return null;
14591
+ }
14592
+ const nextField = index < formFields.length - 1 ? formFields[index + 1] : null;
14593
+ const groupWithNext = field.columnSpan && field.columnSpan <= 6 && nextField?.columnSpan && nextField.columnSpan <= 6 && field.columnSpan + nextField.columnSpan <= 12;
14594
+ if (groupWithNext && nextField) {
14595
+ return /* @__PURE__ */ jsxRuntime.jsxs(
14596
+ "div",
14592
14597
  {
14593
- field,
14594
- uploadProgress,
14595
- onFileUpload: uploadFiles,
14596
- onFileRemove: removeFile,
14597
- isUploading
14598
- }
14599
- )
14600
- },
14601
- field.name
14602
- )) }),
14598
+ className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
14599
+ children: [
14600
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
14601
+ DynamicFormField,
14602
+ {
14603
+ field,
14604
+ uploadProgress,
14605
+ onFileUpload: uploadFiles,
14606
+ onFileRemove: removeFile,
14607
+ isUploading
14608
+ }
14609
+ ) }),
14610
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
14611
+ DynamicFormField,
14612
+ {
14613
+ field: nextField,
14614
+ uploadProgress,
14615
+ onFileUpload: uploadFiles,
14616
+ onFileRemove: removeFile,
14617
+ isUploading
14618
+ }
14619
+ ) })
14620
+ ]
14621
+ },
14622
+ field.name
14623
+ );
14624
+ }
14625
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
14626
+ DynamicFormField,
14627
+ {
14628
+ field,
14629
+ uploadProgress,
14630
+ onFileUpload: uploadFiles,
14631
+ onFileRemove: removeFile,
14632
+ isUploading
14633
+ }
14634
+ ) }, field.name);
14635
+ }) }),
14603
14636
  actionsSlot || actions && actions.length > 0 ? actionsContent : /* @__PURE__ */ jsxRuntime.jsxs(
14604
14637
  Pressable,
14605
14638
  {
@@ -15876,23 +15909,56 @@ function ContactFaq({
15876
15909
  },
15877
15910
  className: cn("space-y-4", formClassName),
15878
15911
  children: [
15879
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-12 gap-6", children: formFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx(
15880
- "div",
15881
- {
15882
- className: getColumnSpanClass(field.columnSpan),
15883
- children: /* @__PURE__ */ jsxRuntime.jsx(
15884
- DynamicFormField,
15912
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: formFields.map((field, index) => {
15913
+ const prevField = index > 0 ? formFields[index - 1] : null;
15914
+ const shouldGroup = field.columnSpan && field.columnSpan <= 6 && prevField?.columnSpan && prevField.columnSpan <= 6 && prevField.columnSpan + field.columnSpan <= 12;
15915
+ if (shouldGroup && index > 0) {
15916
+ return null;
15917
+ }
15918
+ const nextField = index < formFields.length - 1 ? formFields[index + 1] : null;
15919
+ const groupWithNext = field.columnSpan && field.columnSpan <= 6 && nextField?.columnSpan && nextField.columnSpan <= 6 && field.columnSpan + nextField.columnSpan <= 12;
15920
+ if (groupWithNext && nextField) {
15921
+ return /* @__PURE__ */ jsxRuntime.jsxs(
15922
+ "div",
15885
15923
  {
15886
- field,
15887
- uploadProgress,
15888
- onFileUpload: uploadFiles,
15889
- onFileRemove: removeFile,
15890
- isUploading
15891
- }
15892
- )
15893
- },
15894
- field.name
15895
- )) }),
15924
+ className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
15925
+ children: [
15926
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
15927
+ DynamicFormField,
15928
+ {
15929
+ field,
15930
+ uploadProgress,
15931
+ onFileUpload: uploadFiles,
15932
+ onFileRemove: removeFile,
15933
+ isUploading
15934
+ }
15935
+ ) }),
15936
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
15937
+ DynamicFormField,
15938
+ {
15939
+ field: nextField,
15940
+ uploadProgress,
15941
+ onFileUpload: uploadFiles,
15942
+ onFileRemove: removeFile,
15943
+ isUploading
15944
+ }
15945
+ ) })
15946
+ ]
15947
+ },
15948
+ field.name
15949
+ );
15950
+ }
15951
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
15952
+ DynamicFormField,
15953
+ {
15954
+ field,
15955
+ uploadProgress,
15956
+ onFileUpload: uploadFiles,
15957
+ onFileRemove: removeFile,
15958
+ isUploading
15959
+ }
15960
+ ) }, field.name);
15961
+ }) }),
15896
15962
  actionsSlot || actions && actions.length > 0 ? actionsContent : /* @__PURE__ */ jsxRuntime.jsxs(
15897
15963
  Pressable,
15898
15964
  {
@@ -18897,23 +18963,56 @@ function ContactPhotography({
18897
18963
  },
18898
18964
  className: cn("space-y-4", formClassName),
18899
18965
  children: [
18900
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-12 gap-6", children: formFields.map((field) => /* @__PURE__ */ jsxRuntime.jsx(
18901
- "div",
18902
- {
18903
- className: getColumnSpanClass(field.columnSpan),
18904
- children: /* @__PURE__ */ jsxRuntime.jsx(
18905
- DynamicFormField,
18966
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: formFields.map((field, index) => {
18967
+ const prevField = index > 0 ? formFields[index - 1] : null;
18968
+ const shouldGroup = field.columnSpan && field.columnSpan <= 6 && prevField?.columnSpan && prevField.columnSpan <= 6 && prevField.columnSpan + field.columnSpan <= 12;
18969
+ if (shouldGroup && index > 0) {
18970
+ return null;
18971
+ }
18972
+ const nextField = index < formFields.length - 1 ? formFields[index + 1] : null;
18973
+ const groupWithNext = field.columnSpan && field.columnSpan <= 6 && nextField?.columnSpan && nextField.columnSpan <= 6 && field.columnSpan + nextField.columnSpan <= 12;
18974
+ if (groupWithNext && nextField) {
18975
+ return /* @__PURE__ */ jsxRuntime.jsxs(
18976
+ "div",
18906
18977
  {
18907
- field,
18908
- uploadProgress,
18909
- onFileUpload: uploadFiles,
18910
- onFileRemove: removeFile,
18911
- isUploading
18912
- }
18913
- )
18914
- },
18915
- field.name
18916
- )) }),
18978
+ className: "grid grid-cols-1 sm:grid-cols-2 gap-4",
18979
+ children: [
18980
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
18981
+ DynamicFormField,
18982
+ {
18983
+ field,
18984
+ uploadProgress,
18985
+ onFileUpload: uploadFiles,
18986
+ onFileRemove: removeFile,
18987
+ isUploading
18988
+ }
18989
+ ) }),
18990
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
18991
+ DynamicFormField,
18992
+ {
18993
+ field: nextField,
18994
+ uploadProgress,
18995
+ onFileUpload: uploadFiles,
18996
+ onFileRemove: removeFile,
18997
+ isUploading
18998
+ }
18999
+ ) })
19000
+ ]
19001
+ },
19002
+ field.name
19003
+ );
19004
+ }
19005
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-h-[76px]", children: /* @__PURE__ */ jsxRuntime.jsx(
19006
+ DynamicFormField,
19007
+ {
19008
+ field,
19009
+ uploadProgress,
19010
+ onFileUpload: uploadFiles,
19011
+ onFileRemove: removeFile,
19012
+ isUploading
19013
+ }
19014
+ ) }, field.name);
19015
+ }) }),
18917
19016
  actionsSlot || actions && actions.length > 0 ? actionsContent : /* @__PURE__ */ jsxRuntime.jsxs(
18918
19017
  Pressable,
18919
19018
  {