@multiplatform.one/forms 7.6.0 → 7.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/dist/cjs/fields/FileUpload/index.cjs +55 -2
  2. package/dist/cjs/fields/FileUpload/index.native.js +65 -2
  3. package/dist/cjs/fields/FileUpload/index.native.js.map +1 -1
  4. package/dist/cjs/fields/Geolocation/geoValue.cjs +122 -0
  5. package/dist/cjs/fields/Geolocation/geoValue.native.js +151 -0
  6. package/dist/cjs/fields/Geolocation/geoValue.native.js.map +1 -0
  7. package/dist/cjs/fields/Geolocation/index.cjs +16 -29
  8. package/dist/cjs/fields/Geolocation/index.native.js +16 -29
  9. package/dist/cjs/fields/Geolocation/index.native.js.map +1 -1
  10. package/dist/esm/fields/FileUpload/index.mjs +55 -2
  11. package/dist/esm/fields/FileUpload/index.mjs.map +1 -1
  12. package/dist/esm/fields/FileUpload/index.native.js +65 -2
  13. package/dist/esm/fields/FileUpload/index.native.js.map +1 -1
  14. package/dist/esm/fields/Geolocation/geoValue.mjs +95 -0
  15. package/dist/esm/fields/Geolocation/geoValue.mjs.map +1 -0
  16. package/dist/esm/fields/Geolocation/geoValue.native.js +121 -0
  17. package/dist/esm/fields/Geolocation/geoValue.native.js.map +1 -0
  18. package/dist/esm/fields/Geolocation/index.mjs +15 -28
  19. package/dist/esm/fields/Geolocation/index.mjs.map +1 -1
  20. package/dist/esm/fields/Geolocation/index.native.js +15 -28
  21. package/dist/esm/fields/Geolocation/index.native.js.map +1 -1
  22. package/dist/jsx/AdaptivePopup/index.native.js +1 -1
  23. package/dist/jsx/AdaptivePopup/index.native.js.map +1 -1
  24. package/dist/jsx/Button/index.native.js +1 -1
  25. package/dist/jsx/Button/index.native.js.map +1 -1
  26. package/dist/jsx/Chip/index.native.js.map +1 -1
  27. package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js +1 -1
  28. package/dist/jsx/ContextualSaveBar/UnsavedChangesDialog.native.js.map +1 -1
  29. package/dist/jsx/ContextualSaveBar/clientKnownIdentity.native.js.map +1 -1
  30. package/dist/jsx/ContextualSaveBar/commitImmediateField.native.js.map +1 -1
  31. package/dist/jsx/ContextualSaveBar/index.native.js +3 -3
  32. package/dist/jsx/ContextualSaveBar/index.native.js.map +1 -1
  33. package/dist/jsx/ContextualSaveBar/useUnsavedChangesGuard.native.js.map +1 -1
  34. package/dist/jsx/ControlGroup/index.native.js +1 -1
  35. package/dist/jsx/ControlGroup/index.native.js.map +1 -1
  36. package/dist/jsx/DescriptionList/index.native.js +2 -2
  37. package/dist/jsx/DescriptionList/index.native.js.map +1 -1
  38. package/dist/jsx/ErrorSummary.native.js.map +1 -1
  39. package/dist/jsx/FieldDisplay/editMode.native.js.map +1 -1
  40. package/dist/jsx/FieldDisplay/formatters.native.js.map +1 -1
  41. package/dist/jsx/FieldDisplay/index.native.js +1 -1
  42. package/dist/jsx/FieldDisplay/index.native.js.map +1 -1
  43. package/dist/jsx/FieldGroup.native.js.map +1 -1
  44. package/dist/jsx/FloatingPanel/useFloatingPanel.native.js.map +1 -1
  45. package/dist/jsx/Form/index.native.js +1 -1
  46. package/dist/jsx/Form/index.native.js.map +1 -1
  47. package/dist/jsx/Form/validateOn.native.js.map +1 -1
  48. package/dist/jsx/FormGrid.native.js.map +1 -1
  49. package/dist/jsx/FormSection.native.js.map +1 -1
  50. package/dist/jsx/InputParts/index.native.js.map +1 -1
  51. package/dist/jsx/Label/index.native.js.map +1 -1
  52. package/dist/jsx/Skeleton/index.native.js.map +1 -1
  53. package/dist/jsx/Spinner/SpinnerGlyph.native.js.map +1 -1
  54. package/dist/jsx/Spinner/spinnerSize.native.js.map +1 -1
  55. package/dist/jsx/Table/index.native.js.map +1 -1
  56. package/dist/jsx/Wheel/haptic.native.js.map +1 -1
  57. package/dist/jsx/Wheel/index.native.js.map +1 -1
  58. package/dist/jsx/actionLabel.native.js.map +1 -1
  59. package/dist/jsx/fieldDefaults.native.js.map +1 -1
  60. package/dist/jsx/fieldLayout.native.js +1 -1
  61. package/dist/jsx/fieldLayout.native.js.map +1 -1
  62. package/dist/jsx/fields/Barcode/BarcodePreview.native.js.map +1 -1
  63. package/dist/jsx/fields/Barcode/BarcodeScanner.native.js +1 -1
  64. package/dist/jsx/fields/Barcode/code128.native.js.map +1 -1
  65. package/dist/jsx/fields/Barcode/index.native.js +2 -2
  66. package/dist/jsx/fields/Barcode/index.native.js.map +1 -1
  67. package/dist/jsx/fields/Barcode/qr.native.js.map +1 -1
  68. package/dist/jsx/fields/Barcode/scannerTypes.native.js.map +1 -1
  69. package/dist/jsx/fields/Checkbox/Checkbox.native.js +1 -1
  70. package/dist/jsx/fields/Checkbox/Checkbox.native.js.map +1 -1
  71. package/dist/jsx/fields/Checkbox/CheckboxBox.native.js.map +1 -1
  72. package/dist/jsx/fields/Checkbox/CheckboxCard.native.js.map +1 -1
  73. package/dist/jsx/fields/Checkbox/CheckboxFieldFrame.native.js.map +1 -1
  74. package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js +1 -1
  75. package/dist/jsx/fields/Checkbox/CheckboxGroup.native.js.map +1 -1
  76. package/dist/jsx/fields/Checkbox/index.native.js.map +1 -1
  77. package/dist/jsx/fields/ColorPicker/index.native.js +3 -3
  78. package/dist/jsx/fields/ColorPicker/index.native.js.map +1 -1
  79. package/dist/jsx/fields/ColorPicker/parts.native.js +2 -2
  80. package/dist/jsx/fields/ColorPicker/parts.native.js.map +1 -1
  81. package/dist/jsx/fields/Combobox/authorOptions.native.js.map +1 -1
  82. package/dist/jsx/fields/Combobox/index.native.js +5 -5
  83. package/dist/jsx/fields/Combobox/index.native.js.map +1 -1
  84. package/dist/jsx/fields/DatePicker/Calendar.native.js.map +1 -1
  85. package/dist/jsx/fields/DatePicker/DateRangePicker.native.js +2 -2
  86. package/dist/jsx/fields/DatePicker/DateRangePicker.native.js.map +1 -1
  87. package/dist/jsx/fields/DatePicker/DatetimePicker.native.js +3 -3
  88. package/dist/jsx/fields/DatePicker/DatetimePicker.native.js.map +1 -1
  89. package/dist/jsx/fields/DatePicker/MonthPicker.native.js +2 -2
  90. package/dist/jsx/fields/DatePicker/MonthPicker.native.js.map +1 -1
  91. package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js +2 -2
  92. package/dist/jsx/fields/DatePicker/MultiDatePicker.native.js.map +1 -1
  93. package/dist/jsx/fields/DatePicker/fieldValueSync.native.js.map +1 -1
  94. package/dist/jsx/fields/DatePicker/index.native.js +2 -2
  95. package/dist/jsx/fields/DatePicker/index.native.js.map +1 -1
  96. package/dist/jsx/fields/DatePicker/parts.native.js +2 -2
  97. package/dist/jsx/fields/DatePicker/parts.native.js.map +1 -1
  98. package/dist/jsx/fields/DatePicker/utils.native.js.map +1 -1
  99. package/dist/jsx/fields/Duration/durationMath.native.js.map +1 -1
  100. package/dist/jsx/fields/Duration/index.native.js +3 -3
  101. package/dist/jsx/fields/Duration/index.native.js.map +1 -1
  102. package/dist/jsx/fields/FileUpload/filePickerTypes.native.js.map +1 -1
  103. package/dist/jsx/fields/FileUpload/index.mjs +55 -2
  104. package/dist/jsx/fields/FileUpload/index.mjs.map +1 -1
  105. package/dist/jsx/fields/FileUpload/index.native.js +67 -4
  106. package/dist/jsx/fields/FileUpload/index.native.js.map +1 -1
  107. package/dist/jsx/fields/FileUpload/nativePickerLoader.native.js.map +1 -1
  108. package/dist/jsx/fields/Geolocation/expoMapsLoader.native.js.map +1 -1
  109. package/dist/jsx/fields/Geolocation/geoValue.mjs +95 -0
  110. package/dist/jsx/fields/Geolocation/geoValue.mjs.map +1 -0
  111. package/dist/jsx/fields/Geolocation/geoValue.native.js +151 -0
  112. package/dist/jsx/fields/Geolocation/geoValue.native.js.map +1 -0
  113. package/dist/jsx/fields/Geolocation/index.mjs +15 -28
  114. package/dist/jsx/fields/Geolocation/index.mjs.map +1 -1
  115. package/dist/jsx/fields/Geolocation/index.native.js +21 -34
  116. package/dist/jsx/fields/Geolocation/index.native.js.map +1 -1
  117. package/dist/jsx/fields/Geolocation/mapMath.native.js.map +1 -1
  118. package/dist/jsx/fields/Geolocation/mapTypes.native.js.map +1 -1
  119. package/dist/jsx/fields/Icon/drawnSet.native.js.map +1 -1
  120. package/dist/jsx/fields/Icon/index.native.js +3 -3
  121. package/dist/jsx/fields/Icon/index.native.js.map +1 -1
  122. package/dist/jsx/fields/ImageField/index.native.js +2 -2
  123. package/dist/jsx/fields/ImageField/index.native.js.map +1 -1
  124. package/dist/jsx/fields/Input/index.native.js +2 -2
  125. package/dist/jsx/fields/Input/index.native.js.map +1 -1
  126. package/dist/jsx/fields/MentionInput/index.native.js +3 -3
  127. package/dist/jsx/fields/MentionInput/index.native.js.map +1 -1
  128. package/dist/jsx/fields/OTPInput/index.native.js +3 -3
  129. package/dist/jsx/fields/OTPInput/index.native.js.map +1 -1
  130. package/dist/jsx/fields/OTPInput/otpCellCss.native.js.map +1 -1
  131. package/dist/jsx/fields/PhoneInput/dialCodes.native.js.map +1 -1
  132. package/dist/jsx/fields/PhoneInput/index.native.js +3 -3
  133. package/dist/jsx/fields/PhoneInput/index.native.js.map +1 -1
  134. package/dist/jsx/fields/PhoneInput/phone.native.js.map +1 -1
  135. package/dist/jsx/fields/Progress/index.native.js +1 -1
  136. package/dist/jsx/fields/Progress/index.native.js.map +1 -1
  137. package/dist/jsx/fields/RadioGroup/index.native.js +1 -1
  138. package/dist/jsx/fields/RadioGroup/index.native.js.map +1 -1
  139. package/dist/jsx/fields/Rating/index.native.js +1 -1
  140. package/dist/jsx/fields/Rating/index.native.js.map +1 -1
  141. package/dist/jsx/fields/Rating/ratingMath.native.js.map +1 -1
  142. package/dist/jsx/fields/Rating/types.native.js.map +1 -1
  143. package/dist/jsx/fields/SearchInput/index.native.js +2 -2
  144. package/dist/jsx/fields/SearchInput/index.native.js.map +1 -1
  145. package/dist/jsx/fields/Select/index.native.js +4 -4
  146. package/dist/jsx/fields/Select/index.native.js.map +1 -1
  147. package/dist/jsx/fields/Signature/index.native.js +2 -2
  148. package/dist/jsx/fields/Signature/index.native.js.map +1 -1
  149. package/dist/jsx/fields/Slider/index.native.js +1 -1
  150. package/dist/jsx/fields/Slider/index.native.js.map +1 -1
  151. package/dist/jsx/fields/Slider/jumpMotion.native.js.map +1 -1
  152. package/dist/jsx/fields/Stepper/index.native.js +2 -2
  153. package/dist/jsx/fields/Stepper/index.native.js.map +1 -1
  154. package/dist/jsx/fields/Stepper/resolveStepperPlacement.native.js.map +1 -1
  155. package/dist/jsx/fields/Switch/index.native.js +2 -2
  156. package/dist/jsx/fields/Switch/index.native.js.map +1 -1
  157. package/dist/jsx/fields/TextArea/index.native.js +2 -2
  158. package/dist/jsx/fields/TextArea/index.native.js.map +1 -1
  159. package/dist/jsx/fields/TimePicker/index.native.js +3 -3
  160. package/dist/jsx/fields/TimePicker/index.native.js.map +1 -1
  161. package/dist/jsx/fields/TimePicker/parts.native.js +1 -1
  162. package/dist/jsx/fields/TimePicker/parts.native.js.map +1 -1
  163. package/dist/jsx/fields/TimeRangeScrubber/geometry.native.js.map +1 -1
  164. package/dist/jsx/fields/TimeRangeScrubber/index.native.js +2 -2
  165. package/dist/jsx/fields/TimeRangeScrubber/index.native.js.map +1 -1
  166. package/dist/jsx/fields/ToggleGroup/index.native.js +1 -1
  167. package/dist/jsx/fields/ToggleGroup/index.native.js.map +1 -1
  168. package/dist/jsx/fields/selectedOrder.native.js.map +1 -1
  169. package/dist/jsx/formSpacing.native.js.map +1 -1
  170. package/dist/jsx/hooks/useFocusManagement.native.js.map +1 -1
  171. package/dist/jsx/index.native.js +43 -43
  172. package/dist/jsx/index.native.js.map +1 -1
  173. package/dist/jsx/requiredMarking.native.js.map +1 -1
  174. package/dist/jsx/shared/TimeColumn.native.js +1 -1
  175. package/dist/jsx/shared/TimeColumn.native.js.map +1 -1
  176. package/dist/jsx/shared/capabilityPreflight.native.js.map +1 -1
  177. package/dist/jsx/shared/colorRamps.native.js.map +1 -1
  178. package/dist/jsx/shared/devWarn.native.js.map +1 -1
  179. package/dist/jsx/shared/floatingList.native.js +1 -1
  180. package/dist/jsx/shared/floatingList.native.js.map +1 -1
  181. package/dist/jsx/shared/focusManagement.native.js.map +1 -1
  182. package/dist/jsx/shared/groupContext.native.js.map +1 -1
  183. package/dist/jsx/shared/i18n.native.js.map +1 -1
  184. package/dist/jsx/shared/t.native.js.map +1 -1
  185. package/dist/jsx/shared/tableCellContext.native.js.map +1 -1
  186. package/dist/jsx/shared/useDragScroll.native.js.map +1 -1
  187. package/dist/jsx/shared/useKeyboardInset.native.js.map +1 -1
  188. package/dist/jsx/shared/useSheetEscapeDismiss.native.js.map +1 -1
  189. package/dist/jsx/shared/useWheelIncrement.native.js.map +1 -1
  190. package/dist/jsx/shared/utils.native.js +1 -1
  191. package/dist/jsx/shared/utils.native.js.map +1 -1
  192. package/dist/jsx/shared/zIndex.native.js.map +1 -1
  193. package/dist/jsx/themedPrimitives.native.js.map +1 -1
  194. package/dist/jsx/types.native.js.map +1 -1
  195. package/dist/jsx/utils/LinkCell.native.js.map +1 -1
  196. package/package.json +7 -7
  197. package/src/Button/Button.stories.tsx +90 -1
  198. package/src/fields/Barcode/BarcodePreview.spec.tsx +14 -0
  199. package/src/fields/Barcode/BarcodePreview.stories.tsx +104 -0
  200. package/src/fields/ColorPicker/PresetSwatches.spec.tsx +71 -0
  201. package/src/fields/ColorPicker/PresetSwatches.stories.tsx +94 -0
  202. package/src/fields/FileUpload/FileUpload.spec.tsx +43 -0
  203. package/src/fields/FileUpload/index.tsx +74 -2
  204. package/src/fields/Geolocation/Geolocation.spec.tsx +126 -0
  205. package/src/fields/Geolocation/geoValue.spec.ts +169 -0
  206. package/src/fields/Geolocation/geoValue.ts +149 -0
  207. package/src/fields/Geolocation/index.tsx +15 -24
  208. package/types/fields/FileUpload/index.d.ts.map +1 -1
  209. package/types/fields/Geolocation/geoValue.d.ts +45 -0
  210. package/types/fields/Geolocation/geoValue.d.ts.map +1 -0
  211. package/types/fields/Geolocation/index.d.ts.map +1 -1
@@ -78,6 +78,10 @@ var UploadFileListFrame = styled(YStack, {
78
78
  borderStyle: "dashed",
79
79
  borderTopColor: formDropzoneColors.border
80
80
  });
81
+ var UploadTileGridFrame = styled(XStack, {
82
+ width: "100%",
83
+ flexWrap: "wrap"
84
+ });
81
85
  function FileUpload(props) {
82
86
  var {
83
87
  defaultValue,
@@ -128,6 +132,8 @@ function FileUpload(props) {
128
132
  var cappedRadius = clampRadiusForLargeComponent(knobProps.borderRadius.borderRadius);
129
133
  var rowMediaPx = knobProps.nestedControl.px;
130
134
  var rowGlyphSize = knobProps.controlIcon.width;
135
+ var tilePx = getFieldHeight(knobProps.sizeToken, 2);
136
+ var tileRemoveInset = -Math.round(knobProps.nestedControl.px / 4);
131
137
  var [selectedFiles, setSelectedFiles] = useState([]);
132
138
  var [transfers, setTransfers] = useState([]);
133
139
  var [isDragOver, setIsDragOver] = useState(false);
@@ -592,6 +598,35 @@ function FileUpload(props) {
592
598
  })]
593
599
  });
594
600
  };
601
+ var renderImageTile = function renderImageTile2(file, preview, onValueChange) {
602
+ return /* @__PURE__ */_jsxs(YStack, {
603
+ "data-file-upload": "tile",
604
+ position: "relative",
605
+ width: tilePx,
606
+ height: tilePx,
607
+ children: [/* @__PURE__ */_jsx(Image, {
608
+ borderRadius: cappedRadius,
609
+ // src (string), not source: the RN source object leaks
610
+ // onto the DOM <img> as source="[object Object]" on web
611
+ src: preview,
612
+ alt: file.name,
613
+ width: tilePx,
614
+ height: tilePx,
615
+ objectFit: "cover"
616
+ }), canInteract ? /* @__PURE__ */_jsx(YStack, {
617
+ "data-file-upload": "tile-remove",
618
+ position: "absolute",
619
+ top: tileRemoveInset,
620
+ right: tileRemoveInset,
621
+ zIndex: 1,
622
+ children: renderRemoveDisc(t("Remove {{name}}", {
623
+ name: file.name
624
+ }), function () {
625
+ return handleFileRemove(file, onValueChange);
626
+ })
627
+ }) : null]
628
+ }, `${file.name}-${file.size}-${file.lastModified}`);
629
+ };
595
630
  var renderUploadArea = function renderUploadArea2(errorProp, onValueChange, onBlurHandler) {
596
631
  var _knobProps_borderRadius_borderWidth, _knobProps_borderRadius_borderWidth1, _knobProps_borderRadius_borderWidth2;
597
632
  emitFieldRef.current = onValueChange;
@@ -622,6 +657,19 @@ function FileUpload(props) {
622
657
  } : {
623
658
  cursor: disabled ? "not-allowed" : void 0
624
659
  };
660
+ var imageTiles = [];
661
+ var fileRows = [];
662
+ selectedFiles.forEach(function (file, index) {
663
+ var preview = showPreview ? getFilePreview(file) : null;
664
+ if (preview) imageTiles.push({
665
+ file,
666
+ preview
667
+ });else fileRows.push({
668
+ file,
669
+ preview,
670
+ index
671
+ });
672
+ });
625
673
  return /* @__PURE__ */_jsxs(UploadAreaFrame, {
626
674
  // The dropzone is this field's control: it carries the FieldLayout id
627
675
  // so the rendered `<label htmlFor>` resolves (family pattern — see
@@ -760,8 +808,23 @@ function FileUpload(props) {
760
808
  "data-file-upload": "files",
761
809
  // The hairline tracks the frame edge's knob width — one dash voice.
762
810
  borderTopWidth: (_knobProps_borderRadius_borderWidth2 = knobProps.borderRadius.borderWidth) !== null && _knobProps_borderRadius_borderWidth2 !== void 0 ? _knobProps_borderRadius_borderWidth2 : 1,
763
- children: [selectedFiles.map(function (file, index) {
764
- var preview = showPreview ? getFilePreview(file) : null;
811
+ children: [imageTiles.length > 0 ? /* @__PURE__ */_jsx(UploadTileGridFrame, {
812
+ "data-file-upload": "tiles",
813
+ ...knobProps.gap,
814
+ ...knobProps.panelPadding,
815
+ children: imageTiles.map(function (param) {
816
+ var {
817
+ file,
818
+ preview
819
+ } = param;
820
+ return renderImageTile(file, preview, onValueChange);
821
+ })
822
+ }) : null, fileRows.map(function (param) {
823
+ var {
824
+ file,
825
+ preview,
826
+ index
827
+ } = param;
765
828
  return /* @__PURE__ */_jsxs(XStack, {
766
829
  width: "100%",
767
830
  ...knobProps.gap,
@@ -1 +1 @@
1
- {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","FileIcon","UploadIcon","XIcon","useCallback","useEffect","useRef","useState","useProps","Image","isWeb","Text","XStack","YStack","styled","Button","Field","FieldLayout","Skeleton","clampRadiusForLargeComponent","getFieldError","getFieldHeight","mergeFieldHandler","useFormField","useResolvedValidators","ensureFocusVisibleRing","ensureKeyboardModalityTracking","wasKeyboardFocus","formCommonColors","formDropzoneColors","formInputColors","t","pickFilesNatively","_instanceof","left","right","Symbol","hasInstance","UploadAreaFrame","width","position","overflow","borderStyle","backgroundColor","borderColor","border","outlineWidth","outlineStyle","focusStyle","focusVisibleStyle","withZoneFocusRing","ring","outlineOffset","DropOverlayFrame","top","bottom","alignItems","justifyContent","pointerEvents","zIndex","background","focus","UploadFileListFrame","borderTopWidth","borderTopColor","FileUpload","props","defaultValue","form","accept","maxSize","multiple","dragDrop","showPreview","placeholder","buttonText","onFileSelect","onFileRemove","onUpload","onChange","onChangeProp","onValueChange","onValueChangeProp","pickerMode","mode","name","preserveValue","validators","disabled","readOnly","skeleton","compact","actions","id","idProp","fieldProps","resolvedForm","knobProps","disabledState","kbZoneFocus","setKbZoneFocus","emitChange","nextValue","resolvedValidators","required","label","cappedRadius","borderRadius","rowMediaPx","nestedControl","px","rowGlyphSize","controlIcon","selectedFiles","setSelectedFiles","transfers","setTransfers","isDragOver","setIsDragOver","validationError","setValidationError","fileInputRef","zoneCleanupRef","lastZoneInputWasKeyboardRef","previewUrlsRef","Map","transferSeqRef","transfersRef","onUploadRef","current","emitFieldRef","multipleRef","setTransfersAndRef","updater","prev","next","onKey","onKey2","onPointer","onPointer2","document","addEventListener","_zoneCleanupRef_current","removeEventListener","forEach","url","URL","revokeObjectURL","clear","item","controller","abort","call","formatFileSize","bytes","k","sizes","i","Math","floor","log","Number","parseFloat","pow","toFixed","validateFile","file","size","acceptedTypes","split","map","type","trim","isAccepted","some","startsWith","toLowerCase","endsWith","match","replace","types","syncFieldValue","nextFiles","_nextFiles_","runTransfer","id2","upload","onProgress","percent","n","min","max","round","progress","signal","aborted","filter","err","DOMException","problem","Error","message","status","error","action","cta","startTransfer","item2","AbortController","handleCancelTransfer","find","row","handleRetryTransfer","handleRemoveTransfer","previewUrl","get","delete","handleFileSelect","files","rawFileList","fileArray","Array","isArray","from","validFiles","errors","push","length","join","slice","handleFileRemove","fileToRemove","dragDepthRef","handleDragEnter","e","preventDefault","handleDragOver","handleDragLeave","handleDrop","dataTransfer","openFileDialog","_fileInputRef_current","click","nativePickInFlightRef","openNativePicker","onBlurHandler","outcome","unavailable","denied","canceled","isInteractiveChild","target","currentTarget","closest","interactive","handleZoneClick","handleZoneKeyDown","key","_e_preventDefault","paintZoneRing","bindZoneNode","node","onFocus","onFocus2","onBlur","onBlur2","handleZoneFocus","handleZoneBlur","getFilePreview","_file_type","uri","existingUrl","nextUrl","createObjectURL","set","minHeightPx","sizeToken","children","variant","height","canInteract","hasRows","renderRemoveDisc","renderRemoveDisc2","ariaLabel","onPress","nested","circular","icon","removeDisc","base","color","ink","hoverStyle","hover","pressStyle","press","onPress1","stopPropagation","renderFileMeta","renderFileMeta2","preview","extra","flex","gap","src","alt","objectFit","numberOfLines","body","text","fontWeight","renderUploadArea","renderUploadArea2","errorProp","_knobProps_borderRadius_borderWidth","_knobProps_borderRadius_borderWidth1","_knobProps_borderRadius_borderWidth2","requestFiles","zoneInteractionProps","role","tabIndex","cursor","onClick","onKeyDown","onDragEnter","onDragOver","onDragLeave","onDrop","ref","outlined","surfaceKnobProps","borderWidth","elevation","transition","minHeight","panelPadding","textAlign","flexGrow","muted","style","display","index","_failed_cta","isUploading","failed","track","fill","_fieldProps_error","standaloneError","labelProps","helperText","field","_getFieldError","handleChange"],"sources":["index.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { FileIcon, UploadIcon, XIcon } from \"@phosphor-icons/react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useProps } from \"tamagui\";\nimport { Image, isWeb, Text, XStack, YStack, styled } from \"tamagui\";\nimport { Button } from \"../../Button\";\nimport { Field, FieldLayout } from \"../../fieldLayout\";\nimport { Skeleton } from \"../../Skeleton\";\nimport { clampRadiusForLargeComponent, getFieldError, getFieldHeight, mergeFieldHandler, useFormField, useResolvedValidators } from \"../../shared/utils\";\nimport { ensureFocusVisibleRing, ensureKeyboardModalityTracking, wasKeyboardFocus } from \"@multiplatform.one/theme\";\nimport { formCommonColors, formDropzoneColors, formInputColors } from \"../../shared/colorRamps\";\nimport { t } from \"../../shared/t\";\nimport { pickFilesNatively } from \"./nativeFilePicker\";\nfunction _instanceof(left, right) {\n \"@swc/helpers - instanceof\";\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nvar UploadAreaFrame = styled(YStack, {\n width: \"100%\",\n position: \"relative\",\n overflow: \"hidden\",\n borderStyle: \"dashed\",\n // BENTO-DERIVED (bento-pickers-measured.md §2/§4, MPO-57): the zone ground\n // is TRANSPARENT — the page shows through and the dashed edge is the whole\n // control. Only the LC-40 disabled wash paints the ground at rest; the\n // hover/drag $color4 flood is a held mpo state, not a ground.\n backgroundColor: \"transparent\",\n // The dash is the legible $color9 step (boards media-01..04: 1px dashed\n // rgb(77,77,77) light / rgb(133,133,133) dark) — formInputColors.border.base\n // ($borderColor) measured near-invisible as a dashed edge.\n borderColor: formDropzoneColors.border,\n // LC-71: kill UA :focus-visible on the dropzone. House ring is painted\n // only on keyboard-origin focus via wasKeyboardFocus() below — never the\n // 1px browser outline (forms-fileupload--standalone audit Cluster C).\n outlineWidth: 0,\n outlineStyle: \"none\",\n focusStyle: {\n outlineWidth: 0,\n outlineStyle: \"none\"\n },\n focusVisibleStyle: {\n outlineWidth: 0,\n outlineStyle: \"none\"\n }\n});\nfunction withZoneFocusRing() {\n var ring = ensureFocusVisibleRing({\n outlineOffset: 0\n });\n return {\n ...ring,\n focusStyle: ring,\n focusVisibleStyle: ring\n };\n}\nvar DropOverlayFrame = styled(YStack, {\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n alignItems: \"center\",\n justifyContent: \"center\",\n pointerEvents: \"none\",\n zIndex: 2,\n backgroundColor: formInputColors.background.focus,\n borderStyle: \"solid\",\n borderColor: formInputColors.border.focus\n});\nvar UploadFileListFrame = styled(YStack, {\n width: \"100%\",\n borderTopWidth: 1,\n borderStyle: \"dashed\",\n borderTopColor: formDropzoneColors.border\n});\nfunction FileUpload(props) {\n var {\n defaultValue,\n form,\n accept,\n maxSize,\n multiple = false,\n dragDrop = true,\n showPreview = true,\n // Bento caption on web; native has nothing to drag so the same slot is the tap hint.\n placeholder = isWeb ? t(\"Drag a file into this area\") : t(\"or tap to browse\"),\n buttonText = t(\"Choose File\"),\n onFileSelect,\n onFileRemove,\n onUpload,\n onChange: onChangeProp,\n onValueChange: onValueChangeProp,\n pickerMode = \"auto\",\n mode,\n name,\n preserveValue,\n validators,\n disabled,\n readOnly,\n skeleton,\n compact,\n actions,\n id: idProp,\n ...fieldProps\n } = useProps(props);\n var { resolvedForm, knobProps, disabledState, id } = useFormField({\n form,\n id: idProp,\n compact\n });\n if (isWeb) ensureKeyboardModalityTracking();\n var [kbZoneFocus, setKbZoneFocus] = useState(false);\n var emitChange = useCallback(function(nextValue) {\n onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(nextValue);\n onValueChangeProp === null || onValueChangeProp === void 0 ? void 0 : onValueChangeProp(nextValue);\n }, [\n onChangeProp,\n onValueChangeProp\n ]);\n var resolvedValidators = useResolvedValidators(fieldProps.required, validators, fieldProps.label, name);\n var cappedRadius = clampRadiusForLargeComponent(knobProps.borderRadius.borderRadius);\n var rowMediaPx = knobProps.nestedControl.px;\n var rowGlyphSize = knobProps.controlIcon.width;\n var [selectedFiles, setSelectedFiles] = useState([]);\n var [transfers, setTransfers] = useState([]);\n var [isDragOver, setIsDragOver] = useState(false);\n var [validationError, setValidationError] = useState();\n var fileInputRef = useRef(null);\n var zoneCleanupRef = useRef(null);\n var lastZoneInputWasKeyboardRef = useRef(false);\n var previewUrlsRef = useRef(/* @__PURE__ */ new Map());\n var transferSeqRef = useRef(0);\n var transfersRef = useRef([]);\n var onUploadRef = useRef(onUpload);\n onUploadRef.current = onUpload;\n var emitFieldRef = useRef(void 0);\n var multipleRef = useRef(multiple);\n multipleRef.current = multiple;\n var setTransfersAndRef = useCallback(function(updater) {\n setTransfers(function(prev) {\n var next = updater(prev);\n transfersRef.current = next;\n return next;\n });\n }, []);\n useEffect(function() {\n if (!isWeb) return;\n ensureKeyboardModalityTracking();\n var onKey = function onKey2() {\n lastZoneInputWasKeyboardRef.current = true;\n };\n var onPointer = function onPointer2() {\n lastZoneInputWasKeyboardRef.current = false;\n };\n document.addEventListener(\"keydown\", onKey, true);\n document.addEventListener(\"pointerdown\", onPointer, true);\n return function() {\n var _zoneCleanupRef_current;\n document.removeEventListener(\"keydown\", onKey, true);\n document.removeEventListener(\"pointerdown\", onPointer, true);\n previewUrlsRef.current.forEach(function(url) {\n return URL.revokeObjectURL(url);\n });\n previewUrlsRef.current.clear();\n transfersRef.current.forEach(function(item) {\n return item.controller.abort();\n });\n (_zoneCleanupRef_current = zoneCleanupRef.current) === null || _zoneCleanupRef_current === void 0 ? void 0 : _zoneCleanupRef_current.call(zoneCleanupRef);\n zoneCleanupRef.current = null;\n };\n }, []);\n var formatFileSize = useCallback(function(bytes) {\n if (bytes === 0) return t(\"0 Bytes\");\n var k = 1024;\n var sizes = [\n \"Bytes\",\n \"KB\",\n \"MB\",\n \"GB\"\n ];\n var i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${Number.parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${t(sizes[i])}`;\n }, []);\n var validateFile = useCallback(function(file) {\n if (maxSize && file.size > maxSize) {\n return t(\"File size must be less than {{size}}\", {\n size: formatFileSize(maxSize)\n });\n }\n if (accept) {\n var acceptedTypes = accept.split(\",\").map(function(type) {\n return type.trim();\n });\n var isAccepted = acceptedTypes.some(function(type) {\n if (type.startsWith(\".\")) {\n return file.name.toLowerCase().endsWith(type.toLowerCase());\n }\n return file.type.match(type.replace(\"*\", \".*\"));\n });\n if (!isAccepted) {\n return t(\"File type not accepted. Accepted types: {{types}}\", {\n types: accept\n });\n }\n }\n return null;\n }, [\n maxSize,\n accept,\n formatFileSize\n ]);\n var syncFieldValue = useCallback(function(nextFiles, onValueChange) {\n var _nextFiles_;\n if (!onValueChange) return;\n if (multiple) {\n onValueChange(nextFiles);\n return;\n }\n onValueChange((_nextFiles_ = nextFiles[0]) !== null && _nextFiles_ !== void 0 ? _nextFiles_ : null);\n }, [\n multiple\n ]);\n var runTransfer = useCallback(async function(id2, file, controller) {\n var upload = onUploadRef.current;\n if (!upload) return;\n try {\n await upload(file, {\n onProgress: function onProgress(percent) {\n var n = Math.min(100, Math.max(0, Math.round(Number(percent) || 0)));\n setTransfersAndRef(function(prev) {\n return prev.map(function(item) {\n return item.id === id2 ? {\n ...item,\n progress: n\n } : item;\n });\n });\n },\n signal: controller.signal\n });\n if (controller.signal.aborted) return;\n setTransfersAndRef(function(prev) {\n return prev.filter(function(item) {\n return item.id !== id2;\n });\n });\n setSelectedFiles(function(prev) {\n var nextFiles = multipleRef.current ? [\n ...prev,\n file\n ] : [\n file\n ];\n syncFieldValue(nextFiles, emitFieldRef.current);\n return nextFiles;\n });\n } catch (err) {\n if (controller.signal.aborted || _instanceof(err, DOMException) && err.name === \"AbortError\") {\n setTransfersAndRef(function(prev) {\n return prev.filter(function(item) {\n return item.id !== id2;\n });\n });\n return;\n }\n var problem = _instanceof(err, Error) && err.message ? err.message : t(\"Upload failed\");\n setTransfersAndRef(function(prev) {\n return prev.map(function(item) {\n return item.id === id2 ? {\n ...item,\n status: \"failed\",\n error: {\n problem,\n action: t(\"Try again or remove the file\"),\n cta: t(\"Retry\")\n }\n } : item;\n });\n });\n }\n }, [\n setTransfersAndRef,\n syncFieldValue\n ]);\n var startTransfer = useCallback(function(file) {\n if (!multipleRef.current) {\n transfersRef.current.forEach(function(item2) {\n return item2.controller.abort();\n });\n setTransfersAndRef(function() {\n return [];\n });\n }\n var id2 = `xfer-${++transferSeqRef.current}`;\n var controller = new AbortController();\n var item = {\n id: id2,\n file,\n status: \"uploading\",\n progress: 0,\n controller\n };\n setTransfersAndRef(function(prev) {\n return [\n ...prev,\n item\n ];\n });\n void runTransfer(id2, file, controller);\n }, [\n runTransfer,\n setTransfersAndRef\n ]);\n var handleCancelTransfer = useCallback(function(id2) {\n var item = transfersRef.current.find(function(row) {\n return row.id === id2;\n });\n item === null || item === void 0 ? void 0 : item.controller.abort();\n setTransfersAndRef(function(prev) {\n return prev.filter(function(row) {\n return row.id !== id2;\n });\n });\n }, [\n setTransfersAndRef\n ]);\n var handleRetryTransfer = useCallback(function(id2) {\n var item = transfersRef.current.find(function(row) {\n return row.id === id2;\n });\n if (!item) return;\n item.controller.abort();\n var controller = new AbortController();\n setTransfersAndRef(function(prev) {\n return prev.map(function(row) {\n return row.id === id2 ? {\n ...row,\n status: \"uploading\",\n progress: 0,\n error: void 0,\n controller\n } : row;\n });\n });\n void runTransfer(id2, item.file, controller);\n }, [\n runTransfer,\n setTransfersAndRef\n ]);\n var handleRemoveTransfer = useCallback(function(id2) {\n var item = transfersRef.current.find(function(row) {\n return row.id === id2;\n });\n item === null || item === void 0 ? void 0 : item.controller.abort();\n if (isWeb && item) {\n var previewUrl = previewUrlsRef.current.get(item.file);\n if (previewUrl) {\n URL.revokeObjectURL(previewUrl);\n previewUrlsRef.current.delete(item.file);\n }\n }\n setTransfersAndRef(function(prev) {\n return prev.filter(function(row) {\n return row.id !== id2;\n });\n });\n }, [\n setTransfersAndRef\n ]);\n var handleFileSelect = useCallback(function(files, onValueChange, rawFileList) {\n if (!files) return;\n var fileArray = Array.isArray(files) ? files : Array.from(files);\n var validFiles = [];\n var errors = [];\n fileArray.forEach(function(file) {\n var error = validateFile(file);\n if (error) {\n errors.push(`${file.name}: ${error}`);\n } else {\n validFiles.push(file);\n }\n });\n setValidationError(errors.length > 0 ? errors.join(\"\\n\") : void 0);\n if (validFiles.length > 0) {\n emitFieldRef.current = onValueChange;\n if (onUploadRef.current) {\n validFiles.forEach(function(file) {\n return startTransfer(file);\n });\n } else {\n setSelectedFiles(function(prev) {\n var nextFiles = multiple ? [\n ...prev,\n ...validFiles\n ] : validFiles.slice(0, 1);\n syncFieldValue(nextFiles, onValueChange);\n return nextFiles;\n });\n }\n onFileSelect === null || onFileSelect === void 0 ? void 0 : onFileSelect(rawFileList !== null && rawFileList !== void 0 ? rawFileList : Array.isArray(files) ? null : files);\n }\n }, [\n multiple,\n validateFile,\n onFileSelect,\n syncFieldValue,\n startTransfer\n ]);\n var handleFileRemove = useCallback(function(fileToRemove, onValueChange) {\n if (isWeb) {\n var previewUrl = previewUrlsRef.current.get(fileToRemove);\n if (previewUrl) {\n URL.revokeObjectURL(previewUrl);\n previewUrlsRef.current.delete(fileToRemove);\n }\n }\n setSelectedFiles(function(prev) {\n var nextFiles = prev.filter(function(file) {\n return file !== fileToRemove;\n });\n syncFieldValue(nextFiles, onValueChange);\n return nextFiles;\n });\n onFileRemove === null || onFileRemove === void 0 ? void 0 : onFileRemove(fileToRemove);\n }, [\n onFileRemove,\n syncFieldValue\n ]);\n var dragDepthRef = useRef(0);\n var handleDragEnter = useCallback(function(e) {\n e.preventDefault();\n if (dragDrop) {\n dragDepthRef.current += 1;\n setIsDragOver(true);\n }\n }, [\n dragDrop\n ]);\n var handleDragOver = useCallback(function(e) {\n e.preventDefault();\n if (dragDrop) {\n setIsDragOver(true);\n }\n }, [\n dragDrop\n ]);\n var handleDragLeave = useCallback(function(e) {\n e.preventDefault();\n dragDepthRef.current = Math.max(0, dragDepthRef.current - 1);\n if (dragDepthRef.current === 0) {\n setIsDragOver(false);\n }\n }, []);\n var handleDrop = useCallback(function(e, onValueChange) {\n e.preventDefault();\n dragDepthRef.current = 0;\n setIsDragOver(false);\n if (dragDrop && e.dataTransfer.files) {\n handleFileSelect(e.dataTransfer.files, onValueChange, e.dataTransfer.files);\n }\n }, [\n dragDrop,\n handleFileSelect\n ]);\n var openFileDialog = useCallback(function() {\n var _fileInputRef_current;\n if (disabled || readOnly) return;\n (_fileInputRef_current = fileInputRef.current) === null || _fileInputRef_current === void 0 ? void 0 : _fileInputRef_current.click();\n }, [\n disabled,\n readOnly\n ]);\n var nativePickInFlightRef = useRef(false);\n var openNativePicker = useCallback(async function(onValueChange, onBlurHandler) {\n if (disabled || readOnly || nativePickInFlightRef.current) return;\n nativePickInFlightRef.current = true;\n try {\n var outcome = await pickFilesNatively({\n accept,\n multiple,\n mode: pickerMode\n });\n if (outcome.unavailable) {\n setValidationError(t(\"No file picker is available on this device.\"));\n return;\n }\n if (outcome.denied) {\n setValidationError(t(\"Permission to open your photo library was denied.\"));\n return;\n }\n if (outcome.canceled || outcome.files.length === 0) return;\n handleFileSelect(outcome.files, onValueChange);\n onBlurHandler === null || onBlurHandler === void 0 ? void 0 : onBlurHandler();\n } finally {\n nativePickInFlightRef.current = false;\n }\n }, [\n accept,\n disabled,\n handleFileSelect,\n multiple,\n pickerMode,\n readOnly\n ]);\n var isInteractiveChild = useCallback(function(e) {\n var target = e.target;\n var current = e.currentTarget;\n if (!(target === null || target === void 0 ? void 0 : target.closest) || !current) return false;\n var interactive = target.closest('button, a, input, select, textarea, [role=\"button\"]');\n return !!interactive && interactive !== current;\n }, []);\n var handleZoneClick = useCallback(function(e) {\n if (isInteractiveChild(e)) return;\n openFileDialog();\n }, [\n isInteractiveChild,\n openFileDialog\n ]);\n var handleZoneKeyDown = useCallback(function(e) {\n if (e.target !== e.currentTarget) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n var _e_preventDefault;\n (_e_preventDefault = e.preventDefault) === null || _e_preventDefault === void 0 ? void 0 : _e_preventDefault.call(e);\n openFileDialog();\n }\n }, [\n openFileDialog\n ]);\n var paintZoneRing = useCallback(function() {\n if (lastZoneInputWasKeyboardRef.current || wasKeyboardFocus()) setKbZoneFocus(true);\n }, []);\n var bindZoneNode = useCallback(function(node) {\n var _zoneCleanupRef_current;\n (_zoneCleanupRef_current = zoneCleanupRef.current) === null || _zoneCleanupRef_current === void 0 ? void 0 : _zoneCleanupRef_current.call(zoneCleanupRef);\n zoneCleanupRef.current = null;\n if (!node || !isWeb) return;\n var onFocus = function onFocus2() {\n return paintZoneRing();\n };\n var onBlur = function onBlur2() {\n return setKbZoneFocus(false);\n };\n node.addEventListener(\"focus\", onFocus);\n node.addEventListener(\"blur\", onBlur);\n zoneCleanupRef.current = function() {\n node.removeEventListener(\"focus\", onFocus);\n node.removeEventListener(\"blur\", onBlur);\n };\n }, [\n paintZoneRing\n ]);\n var handleZoneFocus = paintZoneRing;\n var handleZoneBlur = useCallback(function() {\n setKbZoneFocus(false);\n }, []);\n var getFilePreview = useCallback(function(file) {\n if (!isWeb) {\n var _file_type;\n var uri = file.uri;\n return uri && ((_file_type = file.type) === null || _file_type === void 0 ? void 0 : _file_type.startsWith(\"image/\")) ? uri : null;\n }\n if (file.type.startsWith(\"image/\")) {\n var existingUrl = previewUrlsRef.current.get(file);\n if (existingUrl) return existingUrl;\n var nextUrl = URL.createObjectURL(file);\n previewUrlsRef.current.set(file, nextUrl);\n return nextUrl;\n }\n return null;\n }, []);\n if (skeleton) {\n var minHeightPx = getFieldHeight(fieldProps.size || knobProps.sizeToken, 5);\n return /* @__PURE__ */ _jsx(FieldLayout, {\n id,\n label: fieldProps.label,\n size: fieldProps.size,\n knobProps,\n children: /* @__PURE__ */ _jsx(Skeleton, {\n variant: \"rounded\",\n width: \"100%\",\n height: minHeightPx\n })\n });\n }\n var canInteract = !disabled && !readOnly;\n var hasRows = selectedFiles.length > 0 || transfers.length > 0;\n var renderRemoveDisc = function renderRemoveDisc2(ariaLabel, onPress) {\n return canInteract ? /* @__PURE__ */ _jsx(Button, {\n // Bento remove: a filled $color12 disc with the inverse\n // ✕ — painted at nestedControl (32) with hitSlop\n // restoring the 44 floor via `nested` (held exception);\n // the nested icon step lands the board's 14px ✕.\n nested: true,\n circular: true,\n icon: XIcon,\n \"aria-label\": ariaLabel,\n backgroundColor: formDropzoneColors.removeDisc.background.base,\n color: formDropzoneColors.removeDisc.ink,\n hoverStyle: {\n backgroundColor: formDropzoneColors.removeDisc.background.hover\n },\n pressStyle: {\n backgroundColor: formDropzoneColors.removeDisc.background.press\n },\n onPress: function onPress1(e) {\n e.stopPropagation();\n onPress();\n }\n }) : null;\n };\n var renderFileMeta = function renderFileMeta2(file, preview, extra) {\n return /* @__PURE__ */ _jsxs(XStack, {\n flex: 1,\n gap: \"$2\",\n alignItems: \"center\",\n children: [\n preview ? /* @__PURE__ */ _jsx(Image, {\n borderRadius: cappedRadius,\n // src (string), not source: the RN source object leaks\n // onto the DOM <img> as source=\"[object Object]\" on web\n src: preview,\n alt: file.name,\n width: rowMediaPx,\n height: rowMediaPx,\n objectFit: \"cover\"\n }) : /* @__PURE__ */ _jsx(XStack, {\n width: rowMediaPx,\n height: rowMediaPx,\n justifyContent: \"center\",\n alignItems: \"center\",\n children: /* @__PURE__ */ _jsx(FileIcon, {\n size: rowGlyphSize\n })\n }),\n /* @__PURE__ */ _jsxs(YStack, {\n flex: 1,\n gap: \"$1\",\n children: [\n /* @__PURE__ */ _jsx(Text, {\n numberOfLines: 1,\n ...knobProps.body,\n children: file.name\n }),\n /* Bento (bento-pickers-measured.md §2): the size is a\n SECOND LINE, BOLD, one type step down (the label\n tier — 13/24 at medium). The 700 is the Bento\n treatment, a deliberate eject over the weight knob. */\n /* @__PURE__ */ _jsx(Text, {\n numberOfLines: 1,\n color: formCommonColors.text,\n ...knobProps.label,\n fontWeight: \"700\",\n children: formatFileSize(file.size)\n }),\n extra\n ]\n })\n ]\n });\n };\n var renderUploadArea = function renderUploadArea2(errorProp, onValueChange, onBlurHandler) {\n var _knobProps_borderRadius_borderWidth, _knobProps_borderRadius_borderWidth1, _knobProps_borderRadius_borderWidth2;\n emitFieldRef.current = onValueChange;\n var requestFiles = isWeb ? openFileDialog : function() {\n void openNativePicker(onValueChange, onBlurHandler);\n };\n var zoneInteractionProps = canInteract ? isWeb ? {\n // DROPZONE-FULL-TARGET: the entire surface is the click target.\n role: \"button\",\n tabIndex: 0,\n onFocus: handleZoneFocus,\n onBlur: handleZoneBlur,\n cursor: \"pointer\",\n onClick: handleZoneClick,\n onKeyDown: handleZoneKeyDown,\n ...dragDrop ? {\n onDragEnter: handleDragEnter,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDrop: function onDrop(e) {\n handleDrop(e, onValueChange);\n onBlurHandler === null || onBlurHandler === void 0 ? void 0 : onBlurHandler();\n }\n } : null\n } : {\n role: \"button\",\n onPress: requestFiles\n } : {\n cursor: disabled ? \"not-allowed\" : void 0\n };\n return /* @__PURE__ */ _jsxs(UploadAreaFrame, {\n // The dropzone is this field's control: it carries the FieldLayout id\n // so the rendered `<label htmlFor>` resolves (family pattern — see\n // Barcode / ColorPicker for other non-native-input controls).\n id,\n ref: bindZoneNode,\n \"data-file-upload\": \"dropzone\",\n \"data-drag-over\": isDragOver && canInteract && dragDrop ? \"true\" : void 0,\n \"data-kb-ring\": kbZoneFocus ? \"true\" : void 0,\n outlined: knobProps.outlined,\n // LC-40: text-bearing chrome — surface wash, not an opacity dim\n // (a dim here stacks with the inner Button's treatment). This is the\n // ONLY treatment that paints the transparent zone ground at rest.\n ...disabled ? disabledState.surfaceKnobProps : void 0,\n borderRadius: cappedRadius,\n // Keep width stable on drag (Polaris overlay, not a 1→2 layout shift).\n borderWidth: (_knobProps_borderRadius_borderWidth = knobProps.borderRadius.borderWidth) !== null && _knobProps_borderRadius_borderWidth !== void 0 ? _knobProps_borderRadius_borderWidth : 1,\n ...errorProp ? {\n borderColor: formCommonColors.error\n } : void 0,\n elevation: knobProps.elevation,\n transition: knobProps.transition,\n // CONTRACT (boards media-01..03): the getFieldHeight floor sits on\n // the FRAME, so the frame border-box measures 220 — hanging it on\n // the inner stack painted 222, a number no token expresses.\n minHeight: getFieldHeight(fieldProps.size || knobProps.sizeToken, 5),\n \"aria-required\": fieldProps.required || void 0,\n \"aria-invalid\": !!errorProp || void 0,\n \"aria-readonly\": readOnly || void 0,\n \"aria-disabled\": disabled || void 0,\n // One family ring rule (boards media-01 dz-ring): 2px $outlineColor at\n // offset 0. The old -2 inset was the F1 defect — an element's own\n // outline is never clipped by its own overflow:hidden.\n //\n // The ring must ALSO be spread into focusStyle/focusVisibleStyle. The\n // base props alone lose: the frame's LC-71 kill is a :focus-visible\n // rule, the browser matches :focus-visible on a keyboard-origin focus,\n // and a pseudo-class rule outranks the plain-class atom — the zone\n // carried `_outlineWidth-2px` AND `_outlineWidth-0focus-visible-0px`\n // and computed outline-width 0px. Measured on the harness, not read off\n // the source: the pre-fix spec asserted the atom's PRESENCE, which was\n // true while nothing painted.\n ...kbZoneFocus ? withZoneFocusRing() : void 0,\n hoverStyle: canInteract ? {\n borderColor: errorProp ? formCommonColors.error : formInputColors.border.hover,\n // Held exception: the measured mpo $color4 hover flood stays\n // (Bento's hover/drag states were not measurable headlessly).\n backgroundColor: formInputColors.background.focus\n } : void 0,\n ...zoneInteractionProps,\n ...canInteract ? (\n // Labeled fields get aria-labelledby auto-wired by the FieldLayout\n // Label (tamagui Label htmlFor → this id); the aria-label fallback\n // covers label-less usage, and is what a screen reader announces\n // for the native press target too.\n fieldProps.label && id ? null : {\n \"aria-label\": typeof fieldProps.label === \"string\" ? t(\"{{label}}: choose file\", {\n label: fieldProps.label\n }) : t(\"Choose file\")\n }\n ) : null,\n children: [\n isDragOver && canInteract && dragDrop ? /* @__PURE__ */ _jsxs(DropOverlayFrame, {\n \"data-file-upload\": \"overlay\",\n borderRadius: cappedRadius,\n borderWidth: (_knobProps_borderRadius_borderWidth1 = knobProps.borderRadius.borderWidth) !== null && _knobProps_borderRadius_borderWidth1 !== void 0 ? _knobProps_borderRadius_borderWidth1 : 1,\n ...errorProp ? {\n borderColor: formCommonColors.error\n } : void 0,\n ...knobProps.gap,\n ...knobProps.panelPadding,\n children: [\n /* @__PURE__ */ _jsx(XStack, {\n width: rowMediaPx,\n height: rowMediaPx,\n alignItems: \"center\",\n justifyContent: \"center\",\n // `color` tints the phosphor glyph via currentColor; Tamagui applies\n // it on web Stacks though the RN-flavored View type omits it.\n ...{\n color: formCommonColors.text\n },\n children: /* @__PURE__ */ _jsx(UploadIcon, {\n size: rowMediaPx,\n \"aria-hidden\": true\n })\n }),\n /* @__PURE__ */ _jsx(Text, {\n color: formCommonColors.text,\n textAlign: \"center\",\n ...knobProps.body,\n children: multiple ? t(\"Drop files to upload\") : t(\"Drop a file to upload\")\n })\n ]\n }) : null,\n /* @__PURE__ */ _jsxs(YStack, {\n ...knobProps.panelPadding,\n flexGrow: 1,\n width: \"100%\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...knobProps.gap,\n children: [\n /* @__PURE__ */ _jsxs(XStack, {\n alignItems: \"center\",\n ...knobProps.gap,\n children: [\n /* @__PURE__ */ _jsx(Button, {\n onPress: requestFiles,\n disabled: !canInteract,\n size: knobProps.sizeToken,\n tabIndex: -1,\n // BENTO-DERIVED (bento-pickers-measured.md §2/§4): NO standalone\n // glyph exists — the upload mark rides INSIDE the CTA. Held at\n // the house 44 control with the recipe's 16px icon (Bento draws\n // 14 on its own 36/$3 button — ruled exception).\n icon: UploadIcon,\n children: /* @__PURE__ */ _jsx(Button.Text, {\n ...knobProps.body,\n children: buttonText\n })\n }),\n actions\n ]\n }),\n selectedFiles.length === 0 && transfers.length === 0 && /* @__PURE__ */ _jsx(Text, {\n color: formCommonColors.muted,\n textAlign: \"center\",\n ...knobProps.body,\n children: placeholder\n }),\n isWeb ? /* @__PURE__ */ _jsx(\"input\", {\n ref: fileInputRef,\n type: \"file\",\n accept,\n multiple,\n tabIndex: -1,\n onChange: function onChange(e) {\n handleFileSelect(e.target.files, onValueChange, e.target.files);\n onBlurHandler === null || onBlurHandler === void 0 ? void 0 : onBlurHandler();\n },\n style: {\n display: \"none\"\n },\n disabled: !canInteract\n }) : null\n ]\n }),\n hasRows && /* @__PURE__ */ _jsxs(UploadFileListFrame, {\n \"data-file-upload\": \"files\",\n // The hairline tracks the frame edge's knob width — one dash voice.\n borderTopWidth: (_knobProps_borderRadius_borderWidth2 = knobProps.borderRadius.borderWidth) !== null && _knobProps_borderRadius_borderWidth2 !== void 0 ? _knobProps_borderRadius_borderWidth2 : 1,\n children: [\n selectedFiles.map(function(file, index) {\n var preview = showPreview ? getFilePreview(file) : null;\n return /* @__PURE__ */ _jsxs(XStack, {\n width: \"100%\",\n ...knobProps.gap,\n alignItems: \"center\",\n justifyContent: \"space-between\",\n ...knobProps.panelPadding,\n children: [\n renderFileMeta(file, preview),\n renderRemoveDisc(t(\"Remove {{name}}\", {\n name: file.name\n }), function() {\n return handleFileRemove(file, onValueChange);\n })\n ]\n }, `${file.name}-${index}`);\n }),\n transfers.map(function(item) {\n var _failed_cta;\n var preview = showPreview ? getFilePreview(item.file) : null;\n var isUploading = item.status === \"uploading\";\n var failed = item.status === \"failed\" ? item.error : void 0;\n return /* @__PURE__ */ _jsxs(XStack, {\n \"data-transfer-status\": item.status,\n width: \"100%\",\n ...knobProps.gap,\n alignItems: \"center\",\n justifyContent: \"space-between\",\n ...knobProps.panelPadding,\n children: [\n renderFileMeta(item.file, preview, /* @__PURE__ */ _jsxs(_Fragment, {\n children: [\n isUploading ? /* @__PURE__ */ _jsx(YStack, {\n \"data-file-upload\": \"progress\",\n role: \"progressbar\",\n \"aria-label\": t(\"Uploading {{name}}\", {\n name: item.file.name\n }),\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuenow\": item.progress,\n height: 11,\n width: \"100%\",\n borderRadius: 1e3,\n backgroundColor: formDropzoneColors.progress.track,\n overflow: \"hidden\",\n children: /* @__PURE__ */ _jsx(YStack, {\n height: \"100%\",\n width: `${item.progress}%`,\n backgroundColor: formDropzoneColors.progress.fill\n })\n }) : null,\n failed ? /* @__PURE__ */ _jsxs(YStack, {\n gap: \"$1\",\n children: [\n /* @__PURE__ */ _jsx(Text, {\n color: formCommonColors.error,\n ...knobProps.label,\n children: failed.problem\n }),\n /* @__PURE__ */ _jsx(Text, {\n color: formCommonColors.muted,\n ...knobProps.label,\n children: failed.action\n })\n ]\n }) : null\n ]\n })),\n /* @__PURE__ */ _jsxs(XStack, {\n ...knobProps.gap,\n alignItems: \"center\",\n children: [\n canInteract && failed ? /* @__PURE__ */ _jsx(Button, {\n outlined: true,\n size: \"$2\",\n \"aria-label\": t(\"Retry {{name}}\", {\n name: item.file.name\n }),\n onPress: function onPress(e) {\n e.stopPropagation();\n handleRetryTransfer(item.id);\n },\n children: (_failed_cta = failed.cta) !== null && _failed_cta !== void 0 ? _failed_cta : t(\"Retry\")\n }) : null,\n isUploading ? renderRemoveDisc(t(\"Cancel {{name}}\", {\n name: item.file.name\n }), function() {\n return handleCancelTransfer(item.id);\n }) : renderRemoveDisc(t(\"Remove {{name}}\", {\n name: item.file.name\n }), function() {\n return handleRemoveTransfer(item.id);\n })\n ]\n })\n ]\n }, item.id);\n })\n ]\n })\n ]\n });\n };\n if (!resolvedForm || !name) {\n var _fieldProps_error;\n var standaloneError = (_fieldProps_error = fieldProps.error) !== null && _fieldProps_error !== void 0 ? _fieldProps_error : validationError;\n return /* @__PURE__ */ _jsx(FieldLayout, {\n id,\n label: fieldProps.label,\n labelProps: fieldProps.labelProps,\n error: standaloneError,\n helperText: fieldProps.helperText,\n required: fieldProps.required,\n size: fieldProps.size,\n knobProps,\n // LC-40: FieldLayout owns the dimWhole assembly dim (keepLabel pins\n // the sibling label/helper readable) — it needs the disabled state.\n disabled,\n children: renderUploadArea(standaloneError, emitChange)\n });\n }\n return /* @__PURE__ */ _jsx(Field, {\n defaultValue,\n form: resolvedForm,\n mode,\n name,\n preserveValue,\n validators: resolvedValidators,\n children: function children(field) {\n var _getFieldError;\n var error = (_getFieldError = getFieldError(field, fieldProps.error)) !== null && _getFieldError !== void 0 ? _getFieldError : validationError;\n return /* @__PURE__ */ _jsx(FieldLayout, {\n id,\n label: fieldProps.label,\n labelProps: fieldProps.labelProps,\n error,\n helperText: fieldProps.helperText,\n required: fieldProps.required,\n size: fieldProps.size,\n knobProps,\n // LC-40: see standalone branch — FieldLayout carries dimWhole.\n disabled,\n children: renderUploadArea(error, function(nextValue) {\n field.handleChange(nextValue);\n emitChange(nextValue);\n }, mergeFieldHandler(field, \"handleBlur\", fieldProps.onBlur))\n });\n }\n });\n}\nexport {\n FileUpload\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","FileIcon","UploadIcon","XIcon","useCallback","useEffect","useRef","useState","useProps","Image","isWeb","Text","XStack","YStack","styled","Button","Field","FieldLayout","Skeleton","clampRadiusForLargeComponent","getFieldError","getFieldHeight","mergeFieldHandler","useFormField","useResolvedValidators","ensureFocusVisibleRing","ensureKeyboardModalityTracking","wasKeyboardFocus","formCommonColors","formDropzoneColors","formInputColors","t","pickFilesNatively","_instanceof","left","right","Symbol","hasInstance","UploadAreaFrame","width","position","overflow","borderStyle","backgroundColor","borderColor","border","outlineWidth","outlineStyle","focusStyle","focusVisibleStyle","withZoneFocusRing","ring","outlineOffset","DropOverlayFrame","top","bottom","alignItems","justifyContent","pointerEvents","zIndex","background","focus","UploadFileListFrame","borderTopWidth","borderTopColor","UploadTileGridFrame","flexWrap","FileUpload","props","defaultValue","form","accept","maxSize","multiple","dragDrop","showPreview","placeholder","buttonText","onFileSelect","onFileRemove","onUpload","onChange","onChangeProp","onValueChange","onValueChangeProp","pickerMode","mode","name","preserveValue","validators","disabled","readOnly","skeleton","compact","actions","id","idProp","fieldProps","resolvedForm","knobProps","disabledState","kbZoneFocus","setKbZoneFocus","emitChange","nextValue","resolvedValidators","required","label","cappedRadius","borderRadius","rowMediaPx","nestedControl","px","rowGlyphSize","controlIcon","tilePx","sizeToken","tileRemoveInset","Math","round","selectedFiles","setSelectedFiles","transfers","setTransfers","isDragOver","setIsDragOver","validationError","setValidationError","fileInputRef","zoneCleanupRef","lastZoneInputWasKeyboardRef","previewUrlsRef","Map","transferSeqRef","transfersRef","onUploadRef","current","emitFieldRef","multipleRef","setTransfersAndRef","updater","prev","next","onKey","onKey2","onPointer","onPointer2","document","addEventListener","_zoneCleanupRef_current","removeEventListener","forEach","url","URL","revokeObjectURL","clear","item","controller","abort","call","formatFileSize","bytes","k","sizes","i","floor","log","Number","parseFloat","pow","toFixed","validateFile","file","size","acceptedTypes","split","map","type","trim","isAccepted","some","startsWith","toLowerCase","endsWith","match","replace","types","syncFieldValue","nextFiles","_nextFiles_","runTransfer","id2","upload","onProgress","percent","n","min","max","progress","signal","aborted","filter","err","DOMException","problem","Error","message","status","error","action","cta","startTransfer","item2","AbortController","handleCancelTransfer","find","row","handleRetryTransfer","handleRemoveTransfer","previewUrl","get","delete","handleFileSelect","files","rawFileList","fileArray","Array","isArray","from","validFiles","errors","push","length","join","slice","handleFileRemove","fileToRemove","dragDepthRef","handleDragEnter","e","preventDefault","handleDragOver","handleDragLeave","handleDrop","dataTransfer","openFileDialog","_fileInputRef_current","click","nativePickInFlightRef","openNativePicker","onBlurHandler","outcome","unavailable","denied","canceled","isInteractiveChild","target","currentTarget","closest","interactive","handleZoneClick","handleZoneKeyDown","key","_e_preventDefault","paintZoneRing","bindZoneNode","node","onFocus","onFocus2","onBlur","onBlur2","handleZoneFocus","handleZoneBlur","getFilePreview","_file_type","uri","existingUrl","nextUrl","createObjectURL","set","minHeightPx","children","variant","height","canInteract","hasRows","renderRemoveDisc","renderRemoveDisc2","ariaLabel","onPress","nested","circular","icon","removeDisc","base","color","ink","hoverStyle","hover","pressStyle","press","onPress1","stopPropagation","renderFileMeta","renderFileMeta2","preview","extra","flex","gap","src","alt","objectFit","numberOfLines","body","text","fontWeight","renderImageTile","renderImageTile2","lastModified","renderUploadArea","renderUploadArea2","errorProp","_knobProps_borderRadius_borderWidth","_knobProps_borderRadius_borderWidth1","_knobProps_borderRadius_borderWidth2","requestFiles","zoneInteractionProps","role","tabIndex","cursor","onClick","onKeyDown","onDragEnter","onDragOver","onDragLeave","onDrop","imageTiles","fileRows","index","ref","outlined","surfaceKnobProps","borderWidth","elevation","transition","minHeight","panelPadding","textAlign","flexGrow","muted","style","display","param","_failed_cta","isUploading","failed","track","fill","_fieldProps_error","standaloneError","labelProps","helperText","field","_getFieldError","handleChange"],"sources":["index.native.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { FileIcon, UploadIcon, XIcon } from \"@phosphor-icons/react\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { useProps } from \"tamagui\";\nimport { Image, isWeb, Text, XStack, YStack, styled } from \"tamagui\";\nimport { Button } from \"../../Button\";\nimport { Field, FieldLayout } from \"../../fieldLayout\";\nimport { Skeleton } from \"../../Skeleton\";\nimport { clampRadiusForLargeComponent, getFieldError, getFieldHeight, mergeFieldHandler, useFormField, useResolvedValidators } from \"../../shared/utils\";\nimport { ensureFocusVisibleRing, ensureKeyboardModalityTracking, wasKeyboardFocus } from \"@multiplatform.one/theme\";\nimport { formCommonColors, formDropzoneColors, formInputColors } from \"../../shared/colorRamps\";\nimport { t } from \"../../shared/t\";\nimport { pickFilesNatively } from \"./nativeFilePicker\";\nfunction _instanceof(left, right) {\n \"@swc/helpers - instanceof\";\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nvar UploadAreaFrame = styled(YStack, {\n width: \"100%\",\n position: \"relative\",\n overflow: \"hidden\",\n borderStyle: \"dashed\",\n // BENTO-DERIVED (bento-pickers-measured.md §2/§4, MPO-57): the zone ground\n // is TRANSPARENT — the page shows through and the dashed edge is the whole\n // control. Only the LC-40 disabled wash paints the ground at rest; the\n // hover/drag $color4 flood is a held mpo state, not a ground.\n backgroundColor: \"transparent\",\n // The dash is the legible $color9 step (boards media-01..04: 1px dashed\n // rgb(77,77,77) light / rgb(133,133,133) dark) — formInputColors.border.base\n // ($borderColor) measured near-invisible as a dashed edge.\n borderColor: formDropzoneColors.border,\n // LC-71: kill UA :focus-visible on the dropzone. House ring is painted\n // only on keyboard-origin focus via wasKeyboardFocus() below — never the\n // 1px browser outline (forms-fileupload--standalone audit Cluster C).\n outlineWidth: 0,\n outlineStyle: \"none\",\n focusStyle: {\n outlineWidth: 0,\n outlineStyle: \"none\"\n },\n focusVisibleStyle: {\n outlineWidth: 0,\n outlineStyle: \"none\"\n }\n});\nfunction withZoneFocusRing() {\n var ring = ensureFocusVisibleRing({\n outlineOffset: 0\n });\n return {\n ...ring,\n focusStyle: ring,\n focusVisibleStyle: ring\n };\n}\nvar DropOverlayFrame = styled(YStack, {\n position: \"absolute\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n alignItems: \"center\",\n justifyContent: \"center\",\n pointerEvents: \"none\",\n zIndex: 2,\n backgroundColor: formInputColors.background.focus,\n borderStyle: \"solid\",\n borderColor: formInputColors.border.focus\n});\nvar UploadFileListFrame = styled(YStack, {\n width: \"100%\",\n borderTopWidth: 1,\n borderStyle: \"dashed\",\n borderTopColor: formDropzoneColors.border\n});\nvar UploadTileGridFrame = styled(XStack, {\n width: \"100%\",\n flexWrap: \"wrap\"\n});\nfunction FileUpload(props) {\n var {\n defaultValue,\n form,\n accept,\n maxSize,\n multiple = false,\n dragDrop = true,\n showPreview = true,\n // Bento caption on web; native has nothing to drag so the same slot is the tap hint.\n placeholder = isWeb ? t(\"Drag a file into this area\") : t(\"or tap to browse\"),\n buttonText = t(\"Choose File\"),\n onFileSelect,\n onFileRemove,\n onUpload,\n onChange: onChangeProp,\n onValueChange: onValueChangeProp,\n pickerMode = \"auto\",\n mode,\n name,\n preserveValue,\n validators,\n disabled,\n readOnly,\n skeleton,\n compact,\n actions,\n id: idProp,\n ...fieldProps\n } = useProps(props);\n var { resolvedForm, knobProps, disabledState, id } = useFormField({\n form,\n id: idProp,\n compact\n });\n if (isWeb) ensureKeyboardModalityTracking();\n var [kbZoneFocus, setKbZoneFocus] = useState(false);\n var emitChange = useCallback(function(nextValue) {\n onChangeProp === null || onChangeProp === void 0 ? void 0 : onChangeProp(nextValue);\n onValueChangeProp === null || onValueChangeProp === void 0 ? void 0 : onValueChangeProp(nextValue);\n }, [\n onChangeProp,\n onValueChangeProp\n ]);\n var resolvedValidators = useResolvedValidators(fieldProps.required, validators, fieldProps.label, name);\n var cappedRadius = clampRadiusForLargeComponent(knobProps.borderRadius.borderRadius);\n var rowMediaPx = knobProps.nestedControl.px;\n var rowGlyphSize = knobProps.controlIcon.width;\n var tilePx = getFieldHeight(knobProps.sizeToken, 2);\n var tileRemoveInset = -Math.round(knobProps.nestedControl.px / 4);\n var [selectedFiles, setSelectedFiles] = useState([]);\n var [transfers, setTransfers] = useState([]);\n var [isDragOver, setIsDragOver] = useState(false);\n var [validationError, setValidationError] = useState();\n var fileInputRef = useRef(null);\n var zoneCleanupRef = useRef(null);\n var lastZoneInputWasKeyboardRef = useRef(false);\n var previewUrlsRef = useRef(/* @__PURE__ */ new Map());\n var transferSeqRef = useRef(0);\n var transfersRef = useRef([]);\n var onUploadRef = useRef(onUpload);\n onUploadRef.current = onUpload;\n var emitFieldRef = useRef(void 0);\n var multipleRef = useRef(multiple);\n multipleRef.current = multiple;\n var setTransfersAndRef = useCallback(function(updater) {\n setTransfers(function(prev) {\n var next = updater(prev);\n transfersRef.current = next;\n return next;\n });\n }, []);\n useEffect(function() {\n if (!isWeb) return;\n ensureKeyboardModalityTracking();\n var onKey = function onKey2() {\n lastZoneInputWasKeyboardRef.current = true;\n };\n var onPointer = function onPointer2() {\n lastZoneInputWasKeyboardRef.current = false;\n };\n document.addEventListener(\"keydown\", onKey, true);\n document.addEventListener(\"pointerdown\", onPointer, true);\n return function() {\n var _zoneCleanupRef_current;\n document.removeEventListener(\"keydown\", onKey, true);\n document.removeEventListener(\"pointerdown\", onPointer, true);\n previewUrlsRef.current.forEach(function(url) {\n return URL.revokeObjectURL(url);\n });\n previewUrlsRef.current.clear();\n transfersRef.current.forEach(function(item) {\n return item.controller.abort();\n });\n (_zoneCleanupRef_current = zoneCleanupRef.current) === null || _zoneCleanupRef_current === void 0 ? void 0 : _zoneCleanupRef_current.call(zoneCleanupRef);\n zoneCleanupRef.current = null;\n };\n }, []);\n var formatFileSize = useCallback(function(bytes) {\n if (bytes === 0) return t(\"0 Bytes\");\n var k = 1024;\n var sizes = [\n \"Bytes\",\n \"KB\",\n \"MB\",\n \"GB\"\n ];\n var i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${Number.parseFloat((bytes / Math.pow(k, i)).toFixed(2))} ${t(sizes[i])}`;\n }, []);\n var validateFile = useCallback(function(file) {\n if (maxSize && file.size > maxSize) {\n return t(\"File size must be less than {{size}}\", {\n size: formatFileSize(maxSize)\n });\n }\n if (accept) {\n var acceptedTypes = accept.split(\",\").map(function(type) {\n return type.trim();\n });\n var isAccepted = acceptedTypes.some(function(type) {\n if (type.startsWith(\".\")) {\n return file.name.toLowerCase().endsWith(type.toLowerCase());\n }\n return file.type.match(type.replace(\"*\", \".*\"));\n });\n if (!isAccepted) {\n return t(\"File type not accepted. Accepted types: {{types}}\", {\n types: accept\n });\n }\n }\n return null;\n }, [\n maxSize,\n accept,\n formatFileSize\n ]);\n var syncFieldValue = useCallback(function(nextFiles, onValueChange) {\n var _nextFiles_;\n if (!onValueChange) return;\n if (multiple) {\n onValueChange(nextFiles);\n return;\n }\n onValueChange((_nextFiles_ = nextFiles[0]) !== null && _nextFiles_ !== void 0 ? _nextFiles_ : null);\n }, [\n multiple\n ]);\n var runTransfer = useCallback(async function(id2, file, controller) {\n var upload = onUploadRef.current;\n if (!upload) return;\n try {\n await upload(file, {\n onProgress: function onProgress(percent) {\n var n = Math.min(100, Math.max(0, Math.round(Number(percent) || 0)));\n setTransfersAndRef(function(prev) {\n return prev.map(function(item) {\n return item.id === id2 ? {\n ...item,\n progress: n\n } : item;\n });\n });\n },\n signal: controller.signal\n });\n if (controller.signal.aborted) return;\n setTransfersAndRef(function(prev) {\n return prev.filter(function(item) {\n return item.id !== id2;\n });\n });\n setSelectedFiles(function(prev) {\n var nextFiles = multipleRef.current ? [\n ...prev,\n file\n ] : [\n file\n ];\n syncFieldValue(nextFiles, emitFieldRef.current);\n return nextFiles;\n });\n } catch (err) {\n if (controller.signal.aborted || _instanceof(err, DOMException) && err.name === \"AbortError\") {\n setTransfersAndRef(function(prev) {\n return prev.filter(function(item) {\n return item.id !== id2;\n });\n });\n return;\n }\n var problem = _instanceof(err, Error) && err.message ? err.message : t(\"Upload failed\");\n setTransfersAndRef(function(prev) {\n return prev.map(function(item) {\n return item.id === id2 ? {\n ...item,\n status: \"failed\",\n error: {\n problem,\n action: t(\"Try again or remove the file\"),\n cta: t(\"Retry\")\n }\n } : item;\n });\n });\n }\n }, [\n setTransfersAndRef,\n syncFieldValue\n ]);\n var startTransfer = useCallback(function(file) {\n if (!multipleRef.current) {\n transfersRef.current.forEach(function(item2) {\n return item2.controller.abort();\n });\n setTransfersAndRef(function() {\n return [];\n });\n }\n var id2 = `xfer-${++transferSeqRef.current}`;\n var controller = new AbortController();\n var item = {\n id: id2,\n file,\n status: \"uploading\",\n progress: 0,\n controller\n };\n setTransfersAndRef(function(prev) {\n return [\n ...prev,\n item\n ];\n });\n void runTransfer(id2, file, controller);\n }, [\n runTransfer,\n setTransfersAndRef\n ]);\n var handleCancelTransfer = useCallback(function(id2) {\n var item = transfersRef.current.find(function(row) {\n return row.id === id2;\n });\n item === null || item === void 0 ? void 0 : item.controller.abort();\n setTransfersAndRef(function(prev) {\n return prev.filter(function(row) {\n return row.id !== id2;\n });\n });\n }, [\n setTransfersAndRef\n ]);\n var handleRetryTransfer = useCallback(function(id2) {\n var item = transfersRef.current.find(function(row) {\n return row.id === id2;\n });\n if (!item) return;\n item.controller.abort();\n var controller = new AbortController();\n setTransfersAndRef(function(prev) {\n return prev.map(function(row) {\n return row.id === id2 ? {\n ...row,\n status: \"uploading\",\n progress: 0,\n error: void 0,\n controller\n } : row;\n });\n });\n void runTransfer(id2, item.file, controller);\n }, [\n runTransfer,\n setTransfersAndRef\n ]);\n var handleRemoveTransfer = useCallback(function(id2) {\n var item = transfersRef.current.find(function(row) {\n return row.id === id2;\n });\n item === null || item === void 0 ? void 0 : item.controller.abort();\n if (isWeb && item) {\n var previewUrl = previewUrlsRef.current.get(item.file);\n if (previewUrl) {\n URL.revokeObjectURL(previewUrl);\n previewUrlsRef.current.delete(item.file);\n }\n }\n setTransfersAndRef(function(prev) {\n return prev.filter(function(row) {\n return row.id !== id2;\n });\n });\n }, [\n setTransfersAndRef\n ]);\n var handleFileSelect = useCallback(function(files, onValueChange, rawFileList) {\n if (!files) return;\n var fileArray = Array.isArray(files) ? files : Array.from(files);\n var validFiles = [];\n var errors = [];\n fileArray.forEach(function(file) {\n var error = validateFile(file);\n if (error) {\n errors.push(`${file.name}: ${error}`);\n } else {\n validFiles.push(file);\n }\n });\n setValidationError(errors.length > 0 ? errors.join(\"\\n\") : void 0);\n if (validFiles.length > 0) {\n emitFieldRef.current = onValueChange;\n if (onUploadRef.current) {\n validFiles.forEach(function(file) {\n return startTransfer(file);\n });\n } else {\n setSelectedFiles(function(prev) {\n var nextFiles = multiple ? [\n ...prev,\n ...validFiles\n ] : validFiles.slice(0, 1);\n syncFieldValue(nextFiles, onValueChange);\n return nextFiles;\n });\n }\n onFileSelect === null || onFileSelect === void 0 ? void 0 : onFileSelect(rawFileList !== null && rawFileList !== void 0 ? rawFileList : Array.isArray(files) ? null : files);\n }\n }, [\n multiple,\n validateFile,\n onFileSelect,\n syncFieldValue,\n startTransfer\n ]);\n var handleFileRemove = useCallback(function(fileToRemove, onValueChange) {\n if (isWeb) {\n var previewUrl = previewUrlsRef.current.get(fileToRemove);\n if (previewUrl) {\n URL.revokeObjectURL(previewUrl);\n previewUrlsRef.current.delete(fileToRemove);\n }\n }\n setSelectedFiles(function(prev) {\n var nextFiles = prev.filter(function(file) {\n return file !== fileToRemove;\n });\n syncFieldValue(nextFiles, onValueChange);\n return nextFiles;\n });\n onFileRemove === null || onFileRemove === void 0 ? void 0 : onFileRemove(fileToRemove);\n }, [\n onFileRemove,\n syncFieldValue\n ]);\n var dragDepthRef = useRef(0);\n var handleDragEnter = useCallback(function(e) {\n e.preventDefault();\n if (dragDrop) {\n dragDepthRef.current += 1;\n setIsDragOver(true);\n }\n }, [\n dragDrop\n ]);\n var handleDragOver = useCallback(function(e) {\n e.preventDefault();\n if (dragDrop) {\n setIsDragOver(true);\n }\n }, [\n dragDrop\n ]);\n var handleDragLeave = useCallback(function(e) {\n e.preventDefault();\n dragDepthRef.current = Math.max(0, dragDepthRef.current - 1);\n if (dragDepthRef.current === 0) {\n setIsDragOver(false);\n }\n }, []);\n var handleDrop = useCallback(function(e, onValueChange) {\n e.preventDefault();\n dragDepthRef.current = 0;\n setIsDragOver(false);\n if (dragDrop && e.dataTransfer.files) {\n handleFileSelect(e.dataTransfer.files, onValueChange, e.dataTransfer.files);\n }\n }, [\n dragDrop,\n handleFileSelect\n ]);\n var openFileDialog = useCallback(function() {\n var _fileInputRef_current;\n if (disabled || readOnly) return;\n (_fileInputRef_current = fileInputRef.current) === null || _fileInputRef_current === void 0 ? void 0 : _fileInputRef_current.click();\n }, [\n disabled,\n readOnly\n ]);\n var nativePickInFlightRef = useRef(false);\n var openNativePicker = useCallback(async function(onValueChange, onBlurHandler) {\n if (disabled || readOnly || nativePickInFlightRef.current) return;\n nativePickInFlightRef.current = true;\n try {\n var outcome = await pickFilesNatively({\n accept,\n multiple,\n mode: pickerMode\n });\n if (outcome.unavailable) {\n setValidationError(t(\"No file picker is available on this device.\"));\n return;\n }\n if (outcome.denied) {\n setValidationError(t(\"Permission to open your photo library was denied.\"));\n return;\n }\n if (outcome.canceled || outcome.files.length === 0) return;\n handleFileSelect(outcome.files, onValueChange);\n onBlurHandler === null || onBlurHandler === void 0 ? void 0 : onBlurHandler();\n } finally {\n nativePickInFlightRef.current = false;\n }\n }, [\n accept,\n disabled,\n handleFileSelect,\n multiple,\n pickerMode,\n readOnly\n ]);\n var isInteractiveChild = useCallback(function(e) {\n var target = e.target;\n var current = e.currentTarget;\n if (!(target === null || target === void 0 ? void 0 : target.closest) || !current) return false;\n var interactive = target.closest('button, a, input, select, textarea, [role=\"button\"]');\n return !!interactive && interactive !== current;\n }, []);\n var handleZoneClick = useCallback(function(e) {\n if (isInteractiveChild(e)) return;\n openFileDialog();\n }, [\n isInteractiveChild,\n openFileDialog\n ]);\n var handleZoneKeyDown = useCallback(function(e) {\n if (e.target !== e.currentTarget) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n var _e_preventDefault;\n (_e_preventDefault = e.preventDefault) === null || _e_preventDefault === void 0 ? void 0 : _e_preventDefault.call(e);\n openFileDialog();\n }\n }, [\n openFileDialog\n ]);\n var paintZoneRing = useCallback(function() {\n if (lastZoneInputWasKeyboardRef.current || wasKeyboardFocus()) setKbZoneFocus(true);\n }, []);\n var bindZoneNode = useCallback(function(node) {\n var _zoneCleanupRef_current;\n (_zoneCleanupRef_current = zoneCleanupRef.current) === null || _zoneCleanupRef_current === void 0 ? void 0 : _zoneCleanupRef_current.call(zoneCleanupRef);\n zoneCleanupRef.current = null;\n if (!node || !isWeb) return;\n var onFocus = function onFocus2() {\n return paintZoneRing();\n };\n var onBlur = function onBlur2() {\n return setKbZoneFocus(false);\n };\n node.addEventListener(\"focus\", onFocus);\n node.addEventListener(\"blur\", onBlur);\n zoneCleanupRef.current = function() {\n node.removeEventListener(\"focus\", onFocus);\n node.removeEventListener(\"blur\", onBlur);\n };\n }, [\n paintZoneRing\n ]);\n var handleZoneFocus = paintZoneRing;\n var handleZoneBlur = useCallback(function() {\n setKbZoneFocus(false);\n }, []);\n var getFilePreview = useCallback(function(file) {\n if (!isWeb) {\n var _file_type;\n var uri = file.uri;\n return uri && ((_file_type = file.type) === null || _file_type === void 0 ? void 0 : _file_type.startsWith(\"image/\")) ? uri : null;\n }\n if (file.type.startsWith(\"image/\")) {\n var existingUrl = previewUrlsRef.current.get(file);\n if (existingUrl) return existingUrl;\n var nextUrl = URL.createObjectURL(file);\n previewUrlsRef.current.set(file, nextUrl);\n return nextUrl;\n }\n return null;\n }, []);\n if (skeleton) {\n var minHeightPx = getFieldHeight(fieldProps.size || knobProps.sizeToken, 5);\n return /* @__PURE__ */ _jsx(FieldLayout, {\n id,\n label: fieldProps.label,\n size: fieldProps.size,\n knobProps,\n children: /* @__PURE__ */ _jsx(Skeleton, {\n variant: \"rounded\",\n width: \"100%\",\n height: minHeightPx\n })\n });\n }\n var canInteract = !disabled && !readOnly;\n var hasRows = selectedFiles.length > 0 || transfers.length > 0;\n var renderRemoveDisc = function renderRemoveDisc2(ariaLabel, onPress) {\n return canInteract ? /* @__PURE__ */ _jsx(Button, {\n // Bento remove: a filled $color12 disc with the inverse\n // ✕ — painted at nestedControl (32) with hitSlop\n // restoring the 44 floor via `nested` (held exception);\n // the nested icon step lands the board's 14px ✕.\n nested: true,\n circular: true,\n icon: XIcon,\n \"aria-label\": ariaLabel,\n backgroundColor: formDropzoneColors.removeDisc.background.base,\n color: formDropzoneColors.removeDisc.ink,\n hoverStyle: {\n backgroundColor: formDropzoneColors.removeDisc.background.hover\n },\n pressStyle: {\n backgroundColor: formDropzoneColors.removeDisc.background.press\n },\n onPress: function onPress1(e) {\n e.stopPropagation();\n onPress();\n }\n }) : null;\n };\n var renderFileMeta = function renderFileMeta2(file, preview, extra) {\n return /* @__PURE__ */ _jsxs(XStack, {\n flex: 1,\n gap: \"$2\",\n alignItems: \"center\",\n children: [\n preview ? /* @__PURE__ */ _jsx(Image, {\n borderRadius: cappedRadius,\n // src (string), not source: the RN source object leaks\n // onto the DOM <img> as source=\"[object Object]\" on web\n src: preview,\n alt: file.name,\n width: rowMediaPx,\n height: rowMediaPx,\n objectFit: \"cover\"\n }) : /* @__PURE__ */ _jsx(XStack, {\n width: rowMediaPx,\n height: rowMediaPx,\n justifyContent: \"center\",\n alignItems: \"center\",\n children: /* @__PURE__ */ _jsx(FileIcon, {\n size: rowGlyphSize\n })\n }),\n /* @__PURE__ */ _jsxs(YStack, {\n flex: 1,\n gap: \"$1\",\n children: [\n /* @__PURE__ */ _jsx(Text, {\n numberOfLines: 1,\n ...knobProps.body,\n children: file.name\n }),\n /* Bento (bento-pickers-measured.md §2): the size is a\n SECOND LINE, BOLD, one type step down (the label\n tier — 13/24 at medium). The 700 is the Bento\n treatment, a deliberate eject over the weight knob. */\n /* @__PURE__ */ _jsx(Text, {\n numberOfLines: 1,\n color: formCommonColors.text,\n ...knobProps.label,\n fontWeight: \"700\",\n children: formatFileSize(file.size)\n }),\n extra\n ]\n })\n ]\n });\n };\n var renderImageTile = function renderImageTile2(file, preview, onValueChange) {\n return /* @__PURE__ */ _jsxs(YStack, {\n \"data-file-upload\": \"tile\",\n position: \"relative\",\n width: tilePx,\n height: tilePx,\n children: [\n /* @__PURE__ */ _jsx(Image, {\n borderRadius: cappedRadius,\n // src (string), not source: the RN source object leaks\n // onto the DOM <img> as source=\"[object Object]\" on web\n src: preview,\n alt: file.name,\n width: tilePx,\n height: tilePx,\n objectFit: \"cover\"\n }),\n canInteract ? /* @__PURE__ */ _jsx(YStack, {\n \"data-file-upload\": \"tile-remove\",\n position: \"absolute\",\n top: tileRemoveInset,\n right: tileRemoveInset,\n zIndex: 1,\n children: renderRemoveDisc(t(\"Remove {{name}}\", {\n name: file.name\n }), function() {\n return handleFileRemove(file, onValueChange);\n })\n }) : null\n ]\n }, `${file.name}-${file.size}-${file.lastModified}`);\n };\n var renderUploadArea = function renderUploadArea2(errorProp, onValueChange, onBlurHandler) {\n var _knobProps_borderRadius_borderWidth, _knobProps_borderRadius_borderWidth1, _knobProps_borderRadius_borderWidth2;\n emitFieldRef.current = onValueChange;\n var requestFiles = isWeb ? openFileDialog : function() {\n void openNativePicker(onValueChange, onBlurHandler);\n };\n var zoneInteractionProps = canInteract ? isWeb ? {\n // DROPZONE-FULL-TARGET: the entire surface is the click target.\n role: \"button\",\n tabIndex: 0,\n onFocus: handleZoneFocus,\n onBlur: handleZoneBlur,\n cursor: \"pointer\",\n onClick: handleZoneClick,\n onKeyDown: handleZoneKeyDown,\n ...dragDrop ? {\n onDragEnter: handleDragEnter,\n onDragOver: handleDragOver,\n onDragLeave: handleDragLeave,\n onDrop: function onDrop(e) {\n handleDrop(e, onValueChange);\n onBlurHandler === null || onBlurHandler === void 0 ? void 0 : onBlurHandler();\n }\n } : null\n } : {\n role: \"button\",\n onPress: requestFiles\n } : {\n cursor: disabled ? \"not-allowed\" : void 0\n };\n var imageTiles = [];\n var fileRows = [];\n selectedFiles.forEach(function(file, index) {\n var preview = showPreview ? getFilePreview(file) : null;\n if (preview) imageTiles.push({\n file,\n preview\n });\n else fileRows.push({\n file,\n preview,\n index\n });\n });\n return /* @__PURE__ */ _jsxs(UploadAreaFrame, {\n // The dropzone is this field's control: it carries the FieldLayout id\n // so the rendered `<label htmlFor>` resolves (family pattern — see\n // Barcode / ColorPicker for other non-native-input controls).\n id,\n ref: bindZoneNode,\n \"data-file-upload\": \"dropzone\",\n \"data-drag-over\": isDragOver && canInteract && dragDrop ? \"true\" : void 0,\n \"data-kb-ring\": kbZoneFocus ? \"true\" : void 0,\n outlined: knobProps.outlined,\n // LC-40: text-bearing chrome — surface wash, not an opacity dim\n // (a dim here stacks with the inner Button's treatment). This is the\n // ONLY treatment that paints the transparent zone ground at rest.\n ...disabled ? disabledState.surfaceKnobProps : void 0,\n borderRadius: cappedRadius,\n // Keep width stable on drag (Polaris overlay, not a 1→2 layout shift).\n borderWidth: (_knobProps_borderRadius_borderWidth = knobProps.borderRadius.borderWidth) !== null && _knobProps_borderRadius_borderWidth !== void 0 ? _knobProps_borderRadius_borderWidth : 1,\n ...errorProp ? {\n borderColor: formCommonColors.error\n } : void 0,\n elevation: knobProps.elevation,\n transition: knobProps.transition,\n // CONTRACT (boards media-01..03): the getFieldHeight floor sits on\n // the FRAME, so the frame border-box measures 220 — hanging it on\n // the inner stack painted 222, a number no token expresses.\n minHeight: getFieldHeight(fieldProps.size || knobProps.sizeToken, 5),\n \"aria-required\": fieldProps.required || void 0,\n \"aria-invalid\": !!errorProp || void 0,\n \"aria-readonly\": readOnly || void 0,\n \"aria-disabled\": disabled || void 0,\n // One family ring rule (boards media-01 dz-ring): 2px $outlineColor at\n // offset 0. The old -2 inset was the F1 defect — an element's own\n // outline is never clipped by its own overflow:hidden.\n //\n // The ring must ALSO be spread into focusStyle/focusVisibleStyle. The\n // base props alone lose: the frame's LC-71 kill is a :focus-visible\n // rule, the browser matches :focus-visible on a keyboard-origin focus,\n // and a pseudo-class rule outranks the plain-class atom — the zone\n // carried `_outlineWidth-2px` AND `_outlineWidth-0focus-visible-0px`\n // and computed outline-width 0px. Measured on the harness, not read off\n // the source: the pre-fix spec asserted the atom's PRESENCE, which was\n // true while nothing painted.\n ...kbZoneFocus ? withZoneFocusRing() : void 0,\n hoverStyle: canInteract ? {\n borderColor: errorProp ? formCommonColors.error : formInputColors.border.hover,\n // Held exception: the measured mpo $color4 hover flood stays\n // (Bento's hover/drag states were not measurable headlessly).\n backgroundColor: formInputColors.background.focus\n } : void 0,\n ...zoneInteractionProps,\n ...canInteract ? (\n // Labeled fields get aria-labelledby auto-wired by the FieldLayout\n // Label (tamagui Label htmlFor → this id); the aria-label fallback\n // covers label-less usage, and is what a screen reader announces\n // for the native press target too.\n fieldProps.label && id ? null : {\n \"aria-label\": typeof fieldProps.label === \"string\" ? t(\"{{label}}: choose file\", {\n label: fieldProps.label\n }) : t(\"Choose file\")\n }\n ) : null,\n children: [\n isDragOver && canInteract && dragDrop ? /* @__PURE__ */ _jsxs(DropOverlayFrame, {\n \"data-file-upload\": \"overlay\",\n borderRadius: cappedRadius,\n borderWidth: (_knobProps_borderRadius_borderWidth1 = knobProps.borderRadius.borderWidth) !== null && _knobProps_borderRadius_borderWidth1 !== void 0 ? _knobProps_borderRadius_borderWidth1 : 1,\n ...errorProp ? {\n borderColor: formCommonColors.error\n } : void 0,\n ...knobProps.gap,\n ...knobProps.panelPadding,\n children: [\n /* @__PURE__ */ _jsx(XStack, {\n width: rowMediaPx,\n height: rowMediaPx,\n alignItems: \"center\",\n justifyContent: \"center\",\n // `color` tints the phosphor glyph via currentColor; Tamagui applies\n // it on web Stacks though the RN-flavored View type omits it.\n ...{\n color: formCommonColors.text\n },\n children: /* @__PURE__ */ _jsx(UploadIcon, {\n size: rowMediaPx,\n \"aria-hidden\": true\n })\n }),\n /* @__PURE__ */ _jsx(Text, {\n color: formCommonColors.text,\n textAlign: \"center\",\n ...knobProps.body,\n children: multiple ? t(\"Drop files to upload\") : t(\"Drop a file to upload\")\n })\n ]\n }) : null,\n /* @__PURE__ */ _jsxs(YStack, {\n ...knobProps.panelPadding,\n flexGrow: 1,\n width: \"100%\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...knobProps.gap,\n children: [\n /* @__PURE__ */ _jsxs(XStack, {\n alignItems: \"center\",\n ...knobProps.gap,\n children: [\n /* @__PURE__ */ _jsx(Button, {\n onPress: requestFiles,\n disabled: !canInteract,\n size: knobProps.sizeToken,\n tabIndex: -1,\n // BENTO-DERIVED (bento-pickers-measured.md §2/§4): NO standalone\n // glyph exists — the upload mark rides INSIDE the CTA. Held at\n // the house 44 control with the recipe's 16px icon (Bento draws\n // 14 on its own 36/$3 button — ruled exception).\n icon: UploadIcon,\n children: /* @__PURE__ */ _jsx(Button.Text, {\n ...knobProps.body,\n children: buttonText\n })\n }),\n actions\n ]\n }),\n selectedFiles.length === 0 && transfers.length === 0 && /* @__PURE__ */ _jsx(Text, {\n color: formCommonColors.muted,\n textAlign: \"center\",\n ...knobProps.body,\n children: placeholder\n }),\n isWeb ? /* @__PURE__ */ _jsx(\"input\", {\n ref: fileInputRef,\n type: \"file\",\n accept,\n multiple,\n tabIndex: -1,\n onChange: function onChange(e) {\n handleFileSelect(e.target.files, onValueChange, e.target.files);\n onBlurHandler === null || onBlurHandler === void 0 ? void 0 : onBlurHandler();\n },\n style: {\n display: \"none\"\n },\n disabled: !canInteract\n }) : null\n ]\n }),\n hasRows && /* @__PURE__ */ _jsxs(UploadFileListFrame, {\n \"data-file-upload\": \"files\",\n // The hairline tracks the frame edge's knob width — one dash voice.\n borderTopWidth: (_knobProps_borderRadius_borderWidth2 = knobProps.borderRadius.borderWidth) !== null && _knobProps_borderRadius_borderWidth2 !== void 0 ? _knobProps_borderRadius_borderWidth2 : 1,\n children: [\n imageTiles.length > 0 ? /* @__PURE__ */ _jsx(UploadTileGridFrame, {\n \"data-file-upload\": \"tiles\",\n ...knobProps.gap,\n ...knobProps.panelPadding,\n children: imageTiles.map(function(param) {\n var { file, preview } = param;\n return renderImageTile(file, preview, onValueChange);\n })\n }) : null,\n fileRows.map(function(param) {\n var { file, preview, index } = param;\n return /* @__PURE__ */ _jsxs(XStack, {\n width: \"100%\",\n ...knobProps.gap,\n alignItems: \"center\",\n justifyContent: \"space-between\",\n ...knobProps.panelPadding,\n children: [\n renderFileMeta(file, preview),\n renderRemoveDisc(t(\"Remove {{name}}\", {\n name: file.name\n }), function() {\n return handleFileRemove(file, onValueChange);\n })\n ]\n }, `${file.name}-${index}`);\n }),\n transfers.map(function(item) {\n var _failed_cta;\n var preview = showPreview ? getFilePreview(item.file) : null;\n var isUploading = item.status === \"uploading\";\n var failed = item.status === \"failed\" ? item.error : void 0;\n return /* @__PURE__ */ _jsxs(XStack, {\n \"data-transfer-status\": item.status,\n width: \"100%\",\n ...knobProps.gap,\n alignItems: \"center\",\n justifyContent: \"space-between\",\n ...knobProps.panelPadding,\n children: [\n renderFileMeta(item.file, preview, /* @__PURE__ */ _jsxs(_Fragment, {\n children: [\n isUploading ? /* @__PURE__ */ _jsx(YStack, {\n \"data-file-upload\": \"progress\",\n role: \"progressbar\",\n \"aria-label\": t(\"Uploading {{name}}\", {\n name: item.file.name\n }),\n \"aria-valuemin\": 0,\n \"aria-valuemax\": 100,\n \"aria-valuenow\": item.progress,\n height: 11,\n width: \"100%\",\n borderRadius: 1e3,\n backgroundColor: formDropzoneColors.progress.track,\n overflow: \"hidden\",\n children: /* @__PURE__ */ _jsx(YStack, {\n height: \"100%\",\n width: `${item.progress}%`,\n backgroundColor: formDropzoneColors.progress.fill\n })\n }) : null,\n failed ? /* @__PURE__ */ _jsxs(YStack, {\n gap: \"$1\",\n children: [\n /* @__PURE__ */ _jsx(Text, {\n color: formCommonColors.error,\n ...knobProps.label,\n children: failed.problem\n }),\n /* @__PURE__ */ _jsx(Text, {\n color: formCommonColors.muted,\n ...knobProps.label,\n children: failed.action\n })\n ]\n }) : null\n ]\n })),\n /* @__PURE__ */ _jsxs(XStack, {\n ...knobProps.gap,\n alignItems: \"center\",\n children: [\n canInteract && failed ? /* @__PURE__ */ _jsx(Button, {\n outlined: true,\n size: \"$2\",\n \"aria-label\": t(\"Retry {{name}}\", {\n name: item.file.name\n }),\n onPress: function onPress(e) {\n e.stopPropagation();\n handleRetryTransfer(item.id);\n },\n children: (_failed_cta = failed.cta) !== null && _failed_cta !== void 0 ? _failed_cta : t(\"Retry\")\n }) : null,\n isUploading ? renderRemoveDisc(t(\"Cancel {{name}}\", {\n name: item.file.name\n }), function() {\n return handleCancelTransfer(item.id);\n }) : renderRemoveDisc(t(\"Remove {{name}}\", {\n name: item.file.name\n }), function() {\n return handleRemoveTransfer(item.id);\n })\n ]\n })\n ]\n }, item.id);\n })\n ]\n })\n ]\n });\n };\n if (!resolvedForm || !name) {\n var _fieldProps_error;\n var standaloneError = (_fieldProps_error = fieldProps.error) !== null && _fieldProps_error !== void 0 ? _fieldProps_error : validationError;\n return /* @__PURE__ */ _jsx(FieldLayout, {\n id,\n label: fieldProps.label,\n labelProps: fieldProps.labelProps,\n error: standaloneError,\n helperText: fieldProps.helperText,\n required: fieldProps.required,\n size: fieldProps.size,\n knobProps,\n // LC-40: FieldLayout owns the dimWhole assembly dim (keepLabel pins\n // the sibling label/helper readable) — it needs the disabled state.\n disabled,\n children: renderUploadArea(standaloneError, emitChange)\n });\n }\n return /* @__PURE__ */ _jsx(Field, {\n defaultValue,\n form: resolvedForm,\n mode,\n name,\n preserveValue,\n validators: resolvedValidators,\n children: function children(field) {\n var _getFieldError;\n var error = (_getFieldError = getFieldError(field, fieldProps.error)) !== null && _getFieldError !== void 0 ? _getFieldError : validationError;\n return /* @__PURE__ */ _jsx(FieldLayout, {\n id,\n label: fieldProps.label,\n labelProps: fieldProps.labelProps,\n error,\n helperText: fieldProps.helperText,\n required: fieldProps.required,\n size: fieldProps.size,\n knobProps,\n // LC-40: see standalone branch — FieldLayout carries dimWhole.\n disabled,\n children: renderUploadArea(error, function(nextValue) {\n field.handleChange(nextValue);\n emitChange(nextValue);\n }, mergeFieldHandler(field, \"handleBlur\", fieldProps.onBlur))\n });\n }\n });\n}\nexport {\n FileUpload\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":"AAAA,SAASA,GAAG,IAAIC,IAAI,EAAEC,IAAI,IAAIC,KAAK,EAAEC,QAAQ,IAAIC,SAAS,QAAQ,mBAAmB;AACrF,SAASC,QAAQ,EAAEC,UAAU,EAAEC,KAAK,QAAQ,uBAAuB;AACnE,SAASC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAChE,SAASC,QAAQ,QAAQ,SAAS;AAClC,SAASC,KAAK,EAAEC,KAAK,EAAEC,IAAI,EAAEC,MAAM,EAAEC,MAAM,EAAEC,MAAM,QAAQ,SAAS;AACpE,SAASC,MAAM,QAAQ,8BAAc;AACrC,SAASC,KAAK,EAAEC,WAAW,QAAQ,6BAAmB;AACtD,SAASC,QAAQ,QAAQ,gCAAgB;AACzC,SAASC,4BAA4B,EAAEC,aAAa,EAAEC,cAAc,EAAEC,iBAAiB,EAAEC,YAAY,EAAEC,qBAAqB,QAAQ,8BAAoB;AACxJ,SAASC,sBAAsB,EAAEC,8BAA8B,EAAEC,gBAAgB,QAAQ,0BAA0B;AACnH,SAASC,gBAAgB,EAAEC,kBAAkB,EAAEC,eAAe,QAAQ,mCAAyB;AAC/F,SAASC,CAAC,QAAQ,0BAAgB;AAClC,SAASC,iBAAiB,QAAQ,8BAAoB;AACtD,SAASC,WAAWA,CAACC,IAAI,EAAEC,KAAK,EAAE;EAChC,2BAA2B;;EAC3B,IAAIA,KAAK,IAAI,IAAI,IAAI,OAAOC,MAAM,KAAK,WAAW,IAAID,KAAK,CAACC,MAAM,CAACC,WAAW,CAAC,EAAE;IAC/E,OAAO,CAAC,CAACF,KAAK,CAACC,MAAM,CAACC,WAAW,CAAC,CAACH,IAAI,CAAC;EAC1C,CAAC,MAAM;IACL,OAAOA,IAAI,YAAYC,KAAK;EAC9B;AACF;AACA,IAAIG,eAAe,GAAGxB,MAAM,CAACD,MAAM,EAAE;EACnC0B,KAAK,EAAE,MAAM;EACbC,QAAQ,EAAE,UAAU;EACpBC,QAAQ,EAAE,QAAQ;EAClBC,WAAW,EAAE,QAAQ;EACrB;EACA;EACA;EACA;EACAC,eAAe,EAAE,aAAa;EAC9B;EACA;EACA;EACAC,WAAW,EAAEf,kBAAkB,CAACgB,MAAM;EACtC;EACA;EACA;EACAC,YAAY,EAAE,CAAC;EACfC,YAAY,EAAE,MAAM;EACpBC,UAAU,EAAE;IACVF,YAAY,EAAE,CAAC;IACfC,YAAY,EAAE;EAChB,CAAC;EACDE,iBAAiB,EAAE;IACjBH,YAAY,EAAE,CAAC;IACfC,YAAY,EAAE;EAChB;AACF,CAAC,CAAC;AACF,SAASG,iBAAiBA,CAAA,EAAG;EAC3B,IAAIC,IAAI,GAAG1B,sBAAsB,CAAC;IAChC2B,aAAa,EAAE;EACjB,CAAC,CAAC;EACF,OAAO;IACL,GAAGD,IAAI;IACPH,UAAU,EAAEG,IAAI;IAChBF,iBAAiB,EAAEE;EACrB,CAAC;AACH;AACA,IAAIE,gBAAgB,GAAGvC,MAAM,CAACD,MAAM,EAAE;EACpC2B,QAAQ,EAAE,UAAU;EACpBc,GAAG,EAAE,CAAC;EACNnB,KAAK,EAAE,CAAC;EACRoB,MAAM,EAAE,CAAC;EACTrB,IAAI,EAAE,CAAC;EACPsB,UAAU,EAAE,QAAQ;EACpBC,cAAc,EAAE,QAAQ;EACxBC,aAAa,EAAE,MAAM;EACrBC,MAAM,EAAE,CAAC;EACThB,eAAe,EAAEb,eAAe,CAAC8B,UAAU,CAACC,KAAK;EACjDnB,WAAW,EAAE,OAAO;EACpBE,WAAW,EAAEd,eAAe,CAACe,MAAM,CAACgB;AACtC,CAAC,CAAC;AACF,IAAIC,mBAAmB,GAAGhD,MAAM,CAACD,MAAM,EAAE;EACvC0B,KAAK,EAAE,MAAM;EACbwB,cAAc,EAAE,CAAC;EACjBrB,WAAW,EAAE,QAAQ;EACrBsB,cAAc,EAAEnC,kBAAkB,CAACgB;AACrC,CAAC,CAAC;AACF,IAAIoB,mBAAmB,GAAGnD,MAAM,CAACF,MAAM,EAAE;EACvC2B,KAAK,EAAE,MAAM;EACb2B,QAAQ,EAAE;AACZ,CAAC,CAAC;AACF,SAASC,UAAUA,CAACC,KAAK,EAAE;EACzB,IAAI;IACFC,YAAY;IACZC,IAAI;IACJC,MAAM;IACNC,OAAO;IACPC,QAAQ,GAAG,KAAK;IAChBC,QAAQ,GAAG,IAAI;IACfC,WAAW,GAAG,IAAI;IAClB;IACAC,WAAW,GAAGlE,KAAK,GAAGqB,CAAC,CAAC,4BAA4B,CAAC,GAAGA,CAAC,CAAC,kBAAkB,CAAC;IAC7E8C,UAAU,GAAG9C,CAAC,CAAC,aAAa,CAAC;IAC7B+C,YAAY;IACZC,YAAY;IACZC,QAAQ;IACRC,QAAQ,EAAEC,YAAY;IACtBC,aAAa,EAAEC,iBAAiB;IAChCC,UAAU,GAAG,MAAM;IACnBC,IAAI;IACJC,IAAI;IACJC,aAAa;IACbC,UAAU;IACVC,QAAQ;IACRC,QAAQ;IACRC,QAAQ;IACRC,OAAO;IACPC,OAAO;IACPC,EAAE,EAAEC,MAAM;IACV,GAAGC;EACL,CAAC,GAAGzF,QAAQ,CAAC4D,KAAK,CAAC;EACnB,IAAI;IAAE8B,YAAY;IAAEC,SAAS;IAAEC,aAAa;IAAEL;EAAG,CAAC,GAAGxE,YAAY,CAAC;IAChE+C,IAAI;IACJyB,EAAE,EAAEC,MAAM;IACVH;EACF,CAAC,CAAC;EACF,IAAInF,KAAK,EAAEgB,8BAA8B,CAAC,CAAC;EAC3C,IAAI,CAAC2E,WAAW,EAAEC,cAAc,CAAC,GAAG/F,QAAQ,CAAC,KAAK,CAAC;EACnD,IAAIgG,UAAU,GAAGnG,WAAW,CAAC,UAASoG,SAAS,EAAE;IAC/CtB,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,YAAY,CAACsB,SAAS,CAAC;IACnFpB,iBAAiB,KAAK,IAAI,IAAIA,iBAAiB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,iBAAiB,CAACoB,SAAS,CAAC;EACpG,CAAC,EAAE,CACDtB,YAAY,EACZE,iBAAiB,CAClB,CAAC;EACF,IAAIqB,kBAAkB,GAAGjF,qBAAqB,CAACyE,UAAU,CAACS,QAAQ,EAAEjB,UAAU,EAAEQ,UAAU,CAACU,KAAK,EAAEpB,IAAI,CAAC;EACvG,IAAIqB,YAAY,GAAGzF,4BAA4B,CAACgF,SAAS,CAACU,YAAY,CAACA,YAAY,CAAC;EACpF,IAAIC,UAAU,GAAGX,SAAS,CAACY,aAAa,CAACC,EAAE;EAC3C,IAAIC,YAAY,GAAGd,SAAS,CAACe,WAAW,CAAC3E,KAAK;EAC9C,IAAI4E,MAAM,GAAG9F,cAAc,CAAC8E,SAAS,CAACiB,SAAS,EAAE,CAAC,CAAC;EACnD,IAAIC,eAAe,GAAG,CAACC,IAAI,CAACC,KAAK,CAACpB,SAAS,CAACY,aAAa,CAACC,EAAE,GAAG,CAAC,CAAC;EACjE,IAAI,CAACQ,aAAa,EAAEC,gBAAgB,CAAC,GAAGlH,QAAQ,CAAC,EAAE,CAAC;EACpD,IAAI,CAACmH,SAAS,EAAEC,YAAY,CAAC,GAAGpH,QAAQ,CAAC,EAAE,CAAC;EAC5C,IAAI,CAACqH,UAAU,EAAEC,aAAa,CAAC,GAAGtH,QAAQ,CAAC,KAAK,CAAC;EACjD,IAAI,CAACuH,eAAe,EAAEC,kBAAkB,CAAC,GAAGxH,QAAQ,CAAC,CAAC;EACtD,IAAIyH,YAAY,GAAG1H,MAAM,CAAC,IAAI,CAAC;EAC/B,IAAI2H,cAAc,GAAG3H,MAAM,CAAC,IAAI,CAAC;EACjC,IAAI4H,2BAA2B,GAAG5H,MAAM,CAAC,KAAK,CAAC;EAC/C,IAAI6H,cAAc,GAAG7H,MAAM,CAAC,eAAgB,IAAI8H,GAAG,CAAC,CAAC,CAAC;EACtD,IAAIC,cAAc,GAAG/H,MAAM,CAAC,CAAC,CAAC;EAC9B,IAAIgI,YAAY,GAAGhI,MAAM,CAAC,EAAE,CAAC;EAC7B,IAAIiI,WAAW,GAAGjI,MAAM,CAAC0E,QAAQ,CAAC;EAClCuD,WAAW,CAACC,OAAO,GAAGxD,QAAQ;EAC9B,IAAIyD,YAAY,GAAGnI,MAAM,CAAC,KAAK,CAAC,CAAC;EACjC,IAAIoI,WAAW,GAAGpI,MAAM,CAACmE,QAAQ,CAAC;EAClCiE,WAAW,CAACF,OAAO,GAAG/D,QAAQ;EAC9B,IAAIkE,kBAAkB,GAAGvI,WAAW,CAAC,UAASwI,OAAO,EAAE;IACrDjB,YAAY,CAAC,UAASkB,IAAI,EAAE;MAC1B,IAAIC,IAAI,GAAGF,OAAO,CAACC,IAAI,CAAC;MACxBP,YAAY,CAACE,OAAO,GAAGM,IAAI;MAC3B,OAAOA,IAAI;IACb,CAAC,CAAC;EACJ,CAAC,EAAE,EAAE,CAAC;EACNzI,SAAS,CAAC,YAAW;IACnB,IAAI,CAACK,KAAK,EAAE;IACZgB,8BAA8B,CAAC,CAAC;IAChC,IAAIqH,KAAK,GAAG,SAASC,MAAMA,CAAA,EAAG;MAC5Bd,2BAA2B,CAACM,OAAO,GAAG,IAAI;IAC5C,CAAC;IACD,IAAIS,SAAS,GAAG,SAASC,UAAUA,CAAA,EAAG;MACpChB,2BAA2B,CAACM,OAAO,GAAG,KAAK;IAC7C,CAAC;IACDW,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEL,KAAK,EAAE,IAAI,CAAC;IACjDI,QAAQ,CAACC,gBAAgB,CAAC,aAAa,EAAEH,SAAS,EAAE,IAAI,CAAC;IACzD,OAAO,YAAW;MAChB,IAAII,uBAAuB;MAC3BF,QAAQ,CAACG,mBAAmB,CAAC,SAAS,EAAEP,KAAK,EAAE,IAAI,CAAC;MACpDI,QAAQ,CAACG,mBAAmB,CAAC,aAAa,EAAEL,SAAS,EAAE,IAAI,CAAC;MAC5Dd,cAAc,CAACK,OAAO,CAACe,OAAO,CAAC,UAASC,GAAG,EAAE;QAC3C,OAAOC,GAAG,CAACC,eAAe,CAACF,GAAG,CAAC;MACjC,CAAC,CAAC;MACFrB,cAAc,CAACK,OAAO,CAACmB,KAAK,CAAC,CAAC;MAC9BrB,YAAY,CAACE,OAAO,CAACe,OAAO,CAAC,UAASK,IAAI,EAAE;QAC1C,OAAOA,IAAI,CAACC,UAAU,CAACC,KAAK,CAAC,CAAC;MAChC,CAAC,CAAC;MACF,CAACT,uBAAuB,GAAGpB,cAAc,CAACO,OAAO,MAAM,IAAI,IAAIa,uBAAuB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,uBAAuB,CAACU,IAAI,CAAC9B,cAAc,CAAC;MACzJA,cAAc,CAACO,OAAO,GAAG,IAAI;IAC/B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EACN,IAAIwB,cAAc,GAAG5J,WAAW,CAAC,UAAS6J,KAAK,EAAE;IAC/C,IAAIA,KAAK,KAAK,CAAC,EAAE,OAAOlI,CAAC,CAAC,SAAS,CAAC;IACpC,IAAImI,CAAC,GAAG,IAAI;IACZ,IAAIC,KAAK,GAAG,CACV,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,IAAI,CACL;IACD,IAAIC,CAAC,GAAG9C,IAAI,CAAC+C,KAAK,CAAC/C,IAAI,CAACgD,GAAG,CAACL,KAAK,CAAC,GAAG3C,IAAI,CAACgD,GAAG,CAACJ,CAAC,CAAC,CAAC;IACjD,OAAO,GAAGK,MAAM,CAACC,UAAU,CAAC,CAACP,KAAK,GAAG3C,IAAI,CAACmD,GAAG,CAACP,CAAC,EAAEE,CAAC,CAAC,EAAEM,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI3I,CAAC,CAACoI,KAAK,CAACC,CAAC,CAAC,CAAC,EAAE;EACnF,CAAC,EAAE,EAAE,CAAC;EACN,IAAIO,YAAY,GAAGvK,WAAW,CAAC,UAASwK,IAAI,EAAE;IAC5C,IAAIpG,OAAO,IAAIoG,IAAI,CAACC,IAAI,GAAGrG,OAAO,EAAE;MAClC,OAAOzC,CAAC,CAAC,sCAAsC,EAAE;QAC/C8I,IAAI,EAAEb,cAAc,CAACxF,OAAO;MAC9B,CAAC,CAAC;IACJ;IACA,IAAID,MAAM,EAAE;MACV,IAAIuG,aAAa,GAAGvG,MAAM,CAACwG,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAAC,UAASC,IAAI,EAAE;QACvD,OAAOA,IAAI,CAACC,IAAI,CAAC,CAAC;MACpB,CAAC,CAAC;MACF,IAAIC,UAAU,GAAGL,aAAa,CAACM,IAAI,CAAC,UAASH,IAAI,EAAE;QACjD,IAAIA,IAAI,CAACI,UAAU,CAAC,GAAG,CAAC,EAAE;UACxB,OAAOT,IAAI,CAACrF,IAAI,CAAC+F,WAAW,CAAC,CAAC,CAACC,QAAQ,CAACN,IAAI,CAACK,WAAW,CAAC,CAAC,CAAC;QAC7D;QACA,OAAOV,IAAI,CAACK,IAAI,CAACO,KAAK,CAACP,IAAI,CAACQ,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;MACjD,CAAC,CAAC;MACF,IAAI,CAACN,UAAU,EAAE;QACf,OAAOpJ,CAAC,CAAC,mDAAmD,EAAE;UAC5D2J,KAAK,EAAEnH;QACT,CAAC,CAAC;MACJ;IACF;IACA,OAAO,IAAI;EACb,CAAC,EAAE,CACDC,OAAO,EACPD,MAAM,EACNyF,cAAc,CACf,CAAC;EACF,IAAI2B,cAAc,GAAGvL,WAAW,CAAC,UAASwL,SAAS,EAAEzG,aAAa,EAAE;IAClE,IAAI0G,WAAW;IACf,IAAI,CAAC1G,aAAa,EAAE;IACpB,IAAIV,QAAQ,EAAE;MACZU,aAAa,CAACyG,SAAS,CAAC;MACxB;IACF;IACAzG,aAAa,CAAC,CAAC0G,WAAW,GAAGD,SAAS,CAAC,CAAC,CAAC,MAAM,IAAI,IAAIC,WAAW,KAAK,KAAK,CAAC,GAAGA,WAAW,GAAG,IAAI,CAAC;EACrG,CAAC,EAAE,CACDpH,QAAQ,CACT,CAAC;EACF,IAAIqH,WAAW,GAAG1L,WAAW,CAAC,gBAAe2L,GAAG,EAAEnB,IAAI,EAAEf,UAAU,EAAE;IAClE,IAAImC,MAAM,GAAGzD,WAAW,CAACC,OAAO;IAChC,IAAI,CAACwD,MAAM,EAAE;IACb,IAAI;MACF,MAAMA,MAAM,CAACpB,IAAI,EAAE;QACjBqB,UAAU,EAAE,SAASA,UAAUA,CAACC,OAAO,EAAE;UACvC,IAAIC,CAAC,GAAG7E,IAAI,CAAC8E,GAAG,CAAC,GAAG,EAAE9E,IAAI,CAAC+E,GAAG,CAAC,CAAC,EAAE/E,IAAI,CAACC,KAAK,CAACgD,MAAM,CAAC2B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;UACpEvD,kBAAkB,CAAC,UAASE,IAAI,EAAE;YAChC,OAAOA,IAAI,CAACmC,GAAG,CAAC,UAASpB,IAAI,EAAE;cAC7B,OAAOA,IAAI,CAAC7D,EAAE,KAAKgG,GAAG,GAAG;gBACvB,GAAGnC,IAAI;gBACP0C,QAAQ,EAAEH;cACZ,CAAC,GAAGvC,IAAI;YACV,CAAC,CAAC;UACJ,CAAC,CAAC;QACJ,CAAC;QACD2C,MAAM,EAAE1C,UAAU,CAAC0C;MACrB,CAAC,CAAC;MACF,IAAI1C,UAAU,CAAC0C,MAAM,CAACC,OAAO,EAAE;MAC/B7D,kBAAkB,CAAC,UAASE,IAAI,EAAE;QAChC,OAAOA,IAAI,CAAC4D,MAAM,CAAC,UAAS7C,IAAI,EAAE;UAChC,OAAOA,IAAI,CAAC7D,EAAE,KAAKgG,GAAG;QACxB,CAAC,CAAC;MACJ,CAAC,CAAC;MACFtE,gBAAgB,CAAC,UAASoB,IAAI,EAAE;QAC9B,IAAI+C,SAAS,GAAGlD,WAAW,CAACF,OAAO,GAAG,CACpC,GAAGK,IAAI,EACP+B,IAAI,CACL,GAAG,CACFA,IAAI,CACL;QACDe,cAAc,CAACC,SAAS,EAAEnD,YAAY,CAACD,OAAO,CAAC;QAC/C,OAAOoD,SAAS;MAClB,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOc,GAAG,EAAE;MACZ,IAAI7C,UAAU,CAAC0C,MAAM,CAACC,OAAO,IAAIvK,WAAW,CAACyK,GAAG,EAAEC,YAAY,CAAC,IAAID,GAAG,CAACnH,IAAI,KAAK,YAAY,EAAE;QAC5FoD,kBAAkB,CAAC,UAASE,IAAI,EAAE;UAChC,OAAOA,IAAI,CAAC4D,MAAM,CAAC,UAAS7C,IAAI,EAAE;YAChC,OAAOA,IAAI,CAAC7D,EAAE,KAAKgG,GAAG;UACxB,CAAC,CAAC;QACJ,CAAC,CAAC;QACF;MACF;MACA,IAAIa,OAAO,GAAG3K,WAAW,CAACyK,GAAG,EAAEG,KAAK,CAAC,IAAIH,GAAG,CAACI,OAAO,GAAGJ,GAAG,CAACI,OAAO,GAAG/K,CAAC,CAAC,eAAe,CAAC;MACvF4G,kBAAkB,CAAC,UAASE,IAAI,EAAE;QAChC,OAAOA,IAAI,CAACmC,GAAG,CAAC,UAASpB,IAAI,EAAE;UAC7B,OAAOA,IAAI,CAAC7D,EAAE,KAAKgG,GAAG,GAAG;YACvB,GAAGnC,IAAI;YACPmD,MAAM,EAAE,QAAQ;YAChBC,KAAK,EAAE;cACLJ,OAAO;cACPK,MAAM,EAAElL,CAAC,CAAC,8BAA8B,CAAC;cACzCmL,GAAG,EAAEnL,CAAC,CAAC,OAAO;YAChB;UACF,CAAC,GAAG6H,IAAI;QACV,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CACDjB,kBAAkB,EAClBgD,cAAc,CACf,CAAC;EACF,IAAIwB,aAAa,GAAG/M,WAAW,CAAC,UAASwK,IAAI,EAAE;IAC7C,IAAI,CAAClC,WAAW,CAACF,OAAO,EAAE;MACxBF,YAAY,CAACE,OAAO,CAACe,OAAO,CAAC,UAAS6D,KAAK,EAAE;QAC3C,OAAOA,KAAK,CAACvD,UAAU,CAACC,KAAK,CAAC,CAAC;MACjC,CAAC,CAAC;MACFnB,kBAAkB,CAAC,YAAW;QAC5B,OAAO,EAAE;MACX,CAAC,CAAC;IACJ;IACA,IAAIoD,GAAG,GAAG,QAAQ,EAAE1D,cAAc,CAACG,OAAO,EAAE;IAC5C,IAAIqB,UAAU,GAAG,IAAIwD,eAAe,CAAC,CAAC;IACtC,IAAIzD,IAAI,GAAG;MACT7D,EAAE,EAAEgG,GAAG;MACPnB,IAAI;MACJmC,MAAM,EAAE,WAAW;MACnBT,QAAQ,EAAE,CAAC;MACXzC;IACF,CAAC;IACDlB,kBAAkB,CAAC,UAASE,IAAI,EAAE;MAChC,OAAO,CACL,GAAGA,IAAI,EACPe,IAAI,CACL;IACH,CAAC,CAAC;IACF,KAAKkC,WAAW,CAACC,GAAG,EAAEnB,IAAI,EAAEf,UAAU,CAAC;EACzC,CAAC,EAAE,CACDiC,WAAW,EACXnD,kBAAkB,CACnB,CAAC;EACF,IAAI2E,oBAAoB,GAAGlN,WAAW,CAAC,UAAS2L,GAAG,EAAE;IACnD,IAAInC,IAAI,GAAGtB,YAAY,CAACE,OAAO,CAAC+E,IAAI,CAAC,UAASC,GAAG,EAAE;MACjD,OAAOA,GAAG,CAACzH,EAAE,KAAKgG,GAAG;IACvB,CAAC,CAAC;IACFnC,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACC,UAAU,CAACC,KAAK,CAAC,CAAC;IACnEnB,kBAAkB,CAAC,UAASE,IAAI,EAAE;MAChC,OAAOA,IAAI,CAAC4D,MAAM,CAAC,UAASe,GAAG,EAAE;QAC/B,OAAOA,GAAG,CAACzH,EAAE,KAAKgG,GAAG;MACvB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EAAE,CACDpD,kBAAkB,CACnB,CAAC;EACF,IAAI8E,mBAAmB,GAAGrN,WAAW,CAAC,UAAS2L,GAAG,EAAE;IAClD,IAAInC,IAAI,GAAGtB,YAAY,CAACE,OAAO,CAAC+E,IAAI,CAAC,UAASC,GAAG,EAAE;MACjD,OAAOA,GAAG,CAACzH,EAAE,KAAKgG,GAAG;IACvB,CAAC,CAAC;IACF,IAAI,CAACnC,IAAI,EAAE;IACXA,IAAI,CAACC,UAAU,CAACC,KAAK,CAAC,CAAC;IACvB,IAAID,UAAU,GAAG,IAAIwD,eAAe,CAAC,CAAC;IACtC1E,kBAAkB,CAAC,UAASE,IAAI,EAAE;MAChC,OAAOA,IAAI,CAACmC,GAAG,CAAC,UAASwC,GAAG,EAAE;QAC5B,OAAOA,GAAG,CAACzH,EAAE,KAAKgG,GAAG,GAAG;UACtB,GAAGyB,GAAG;UACNT,MAAM,EAAE,WAAW;UACnBT,QAAQ,EAAE,CAAC;UACXU,KAAK,EAAE,KAAK,CAAC;UACbnD;QACF,CAAC,GAAG2D,GAAG;MACT,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,KAAK1B,WAAW,CAACC,GAAG,EAAEnC,IAAI,CAACgB,IAAI,EAAEf,UAAU,CAAC;EAC9C,CAAC,EAAE,CACDiC,WAAW,EACXnD,kBAAkB,CACnB,CAAC;EACF,IAAI+E,oBAAoB,GAAGtN,WAAW,CAAC,UAAS2L,GAAG,EAAE;IACnD,IAAInC,IAAI,GAAGtB,YAAY,CAACE,OAAO,CAAC+E,IAAI,CAAC,UAASC,GAAG,EAAE;MACjD,OAAOA,GAAG,CAACzH,EAAE,KAAKgG,GAAG;IACvB,CAAC,CAAC;IACFnC,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,IAAI,CAACC,UAAU,CAACC,KAAK,CAAC,CAAC;IACnE,IAAIpJ,KAAK,IAAIkJ,IAAI,EAAE;MACjB,IAAI+D,UAAU,GAAGxF,cAAc,CAACK,OAAO,CAACoF,GAAG,CAAChE,IAAI,CAACgB,IAAI,CAAC;MACtD,IAAI+C,UAAU,EAAE;QACdlE,GAAG,CAACC,eAAe,CAACiE,UAAU,CAAC;QAC/BxF,cAAc,CAACK,OAAO,CAACqF,MAAM,CAACjE,IAAI,CAACgB,IAAI,CAAC;MAC1C;IACF;IACAjC,kBAAkB,CAAC,UAASE,IAAI,EAAE;MAChC,OAAOA,IAAI,CAAC4D,MAAM,CAAC,UAASe,GAAG,EAAE;QAC/B,OAAOA,GAAG,CAACzH,EAAE,KAAKgG,GAAG;MACvB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,EAAE,CACDpD,kBAAkB,CACnB,CAAC;EACF,IAAImF,gBAAgB,GAAG1N,WAAW,CAAC,UAAS2N,KAAK,EAAE5I,aAAa,EAAE6I,WAAW,EAAE;IAC7E,IAAI,CAACD,KAAK,EAAE;IACZ,IAAIE,SAAS,GAAGC,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,GAAGA,KAAK,GAAGG,KAAK,CAACE,IAAI,CAACL,KAAK,CAAC;IAChE,IAAIM,UAAU,GAAG,EAAE;IACnB,IAAIC,MAAM,GAAG,EAAE;IACfL,SAAS,CAAC1E,OAAO,CAAC,UAASqB,IAAI,EAAE;MAC/B,IAAIoC,KAAK,GAAGrC,YAAY,CAACC,IAAI,CAAC;MAC9B,IAAIoC,KAAK,EAAE;QACTsB,MAAM,CAACC,IAAI,CAAC,GAAG3D,IAAI,CAACrF,IAAI,KAAKyH,KAAK,EAAE,CAAC;MACvC,CAAC,MAAM;QACLqB,UAAU,CAACE,IAAI,CAAC3D,IAAI,CAAC;MACvB;IACF,CAAC,CAAC;IACF7C,kBAAkB,CAACuG,MAAM,CAACE,MAAM,GAAG,CAAC,GAAGF,MAAM,CAACG,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IAClE,IAAIJ,UAAU,CAACG,MAAM,GAAG,CAAC,EAAE;MACzB/F,YAAY,CAACD,OAAO,GAAGrD,aAAa;MACpC,IAAIoD,WAAW,CAACC,OAAO,EAAE;QACvB6F,UAAU,CAAC9E,OAAO,CAAC,UAASqB,IAAI,EAAE;UAChC,OAAOuC,aAAa,CAACvC,IAAI,CAAC;QAC5B,CAAC,CAAC;MACJ,CAAC,MAAM;QACLnD,gBAAgB,CAAC,UAASoB,IAAI,EAAE;UAC9B,IAAI+C,SAAS,GAAGnH,QAAQ,GAAG,CACzB,GAAGoE,IAAI,EACP,GAAGwF,UAAU,CACd,GAAGA,UAAU,CAACK,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;UAC1B/C,cAAc,CAACC,SAAS,EAAEzG,aAAa,CAAC;UACxC,OAAOyG,SAAS;QAClB,CAAC,CAAC;MACJ;MACA9G,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,YAAY,CAACkJ,WAAW,KAAK,IAAI,IAAIA,WAAW,KAAK,KAAK,CAAC,GAAGA,WAAW,GAAGE,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,GAAG,IAAI,GAAGA,KAAK,CAAC;IAC9K;EACF,CAAC,EAAE,CACDtJ,QAAQ,EACRkG,YAAY,EACZ7F,YAAY,EACZ6G,cAAc,EACdwB,aAAa,CACd,CAAC;EACF,IAAIwB,gBAAgB,GAAGvO,WAAW,CAAC,UAASwO,YAAY,EAAEzJ,aAAa,EAAE;IACvE,IAAIzE,KAAK,EAAE;MACT,IAAIiN,UAAU,GAAGxF,cAAc,CAACK,OAAO,CAACoF,GAAG,CAACgB,YAAY,CAAC;MACzD,IAAIjB,UAAU,EAAE;QACdlE,GAAG,CAACC,eAAe,CAACiE,UAAU,CAAC;QAC/BxF,cAAc,CAACK,OAAO,CAACqF,MAAM,CAACe,YAAY,CAAC;MAC7C;IACF;IACAnH,gBAAgB,CAAC,UAASoB,IAAI,EAAE;MAC9B,IAAI+C,SAAS,GAAG/C,IAAI,CAAC4D,MAAM,CAAC,UAAS7B,IAAI,EAAE;QACzC,OAAOA,IAAI,KAAKgE,YAAY;MAC9B,CAAC,CAAC;MACFjD,cAAc,CAACC,SAAS,EAAEzG,aAAa,CAAC;MACxC,OAAOyG,SAAS;IAClB,CAAC,CAAC;IACF7G,YAAY,KAAK,IAAI,IAAIA,YAAY,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,YAAY,CAAC6J,YAAY,CAAC;EACxF,CAAC,EAAE,CACD7J,YAAY,EACZ4G,cAAc,CACf,CAAC;EACF,IAAIkD,YAAY,GAAGvO,MAAM,CAAC,CAAC,CAAC;EAC5B,IAAIwO,eAAe,GAAG1O,WAAW,CAAC,UAAS2O,CAAC,EAAE;IAC5CA,CAAC,CAACC,cAAc,CAAC,CAAC;IAClB,IAAItK,QAAQ,EAAE;MACZmK,YAAY,CAACrG,OAAO,IAAI,CAAC;MACzBX,aAAa,CAAC,IAAI,CAAC;IACrB;EACF,CAAC,EAAE,CACDnD,QAAQ,CACT,CAAC;EACF,IAAIuK,cAAc,GAAG7O,WAAW,CAAC,UAAS2O,CAAC,EAAE;IAC3CA,CAAC,CAACC,cAAc,CAAC,CAAC;IAClB,IAAItK,QAAQ,EAAE;MACZmD,aAAa,CAAC,IAAI,CAAC;IACrB;EACF,CAAC,EAAE,CACDnD,QAAQ,CACT,CAAC;EACF,IAAIwK,eAAe,GAAG9O,WAAW,CAAC,UAAS2O,CAAC,EAAE;IAC5CA,CAAC,CAACC,cAAc,CAAC,CAAC;IAClBH,YAAY,CAACrG,OAAO,GAAGlB,IAAI,CAAC+E,GAAG,CAAC,CAAC,EAAEwC,YAAY,CAACrG,OAAO,GAAG,CAAC,CAAC;IAC5D,IAAIqG,YAAY,CAACrG,OAAO,KAAK,CAAC,EAAE;MAC9BX,aAAa,CAAC,KAAK,CAAC;IACtB;EACF,CAAC,EAAE,EAAE,CAAC;EACN,IAAIsH,UAAU,GAAG/O,WAAW,CAAC,UAAS2O,CAAC,EAAE5J,aAAa,EAAE;IACtD4J,CAAC,CAACC,cAAc,CAAC,CAAC;IAClBH,YAAY,CAACrG,OAAO,GAAG,CAAC;IACxBX,aAAa,CAAC,KAAK,CAAC;IACpB,IAAInD,QAAQ,IAAIqK,CAAC,CAACK,YAAY,CAACrB,KAAK,EAAE;MACpCD,gBAAgB,CAACiB,CAAC,CAACK,YAAY,CAACrB,KAAK,EAAE5I,aAAa,EAAE4J,CAAC,CAACK,YAAY,CAACrB,KAAK,CAAC;IAC7E;EACF,CAAC,EAAE,CACDrJ,QAAQ,EACRoJ,gBAAgB,CACjB,CAAC;EACF,IAAIuB,cAAc,GAAGjP,WAAW,CAAC,YAAW;IAC1C,IAAIkP,qBAAqB;IACzB,IAAI5J,QAAQ,IAAIC,QAAQ,EAAE;IAC1B,CAAC2J,qBAAqB,GAAGtH,YAAY,CAACQ,OAAO,MAAM,IAAI,IAAI8G,qBAAqB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,qBAAqB,CAACC,KAAK,CAAC,CAAC;EACtI,CAAC,EAAE,CACD7J,QAAQ,EACRC,QAAQ,CACT,CAAC;EACF,IAAI6J,qBAAqB,GAAGlP,MAAM,CAAC,KAAK,CAAC;EACzC,IAAImP,gBAAgB,GAAGrP,WAAW,CAAC,gBAAe+E,aAAa,EAAEuK,aAAa,EAAE;IAC9E,IAAIhK,QAAQ,IAAIC,QAAQ,IAAI6J,qBAAqB,CAAChH,OAAO,EAAE;IAC3DgH,qBAAqB,CAAChH,OAAO,GAAG,IAAI;IACpC,IAAI;MACF,IAAImH,OAAO,GAAG,MAAM3N,iBAAiB,CAAC;QACpCuC,MAAM;QACNE,QAAQ;QACRa,IAAI,EAAED;MACR,CAAC,CAAC;MACF,IAAIsK,OAAO,CAACC,WAAW,EAAE;QACvB7H,kBAAkB,CAAChG,CAAC,CAAC,6CAA6C,CAAC,CAAC;QACpE;MACF;MACA,IAAI4N,OAAO,CAACE,MAAM,EAAE;QAClB9H,kBAAkB,CAAChG,CAAC,CAAC,mDAAmD,CAAC,CAAC;QAC1E;MACF;MACA,IAAI4N,OAAO,CAACG,QAAQ,IAAIH,OAAO,CAAC5B,KAAK,CAACS,MAAM,KAAK,CAAC,EAAE;MACpDV,gBAAgB,CAAC6B,OAAO,CAAC5B,KAAK,EAAE5I,aAAa,CAAC;MAC9CuK,aAAa,KAAK,IAAI,IAAIA,aAAa,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,aAAa,CAAC,CAAC;IAC/E,CAAC,SAAS;MACRF,qBAAqB,CAAChH,OAAO,GAAG,KAAK;IACvC;EACF,CAAC,EAAE,CACDjE,MAAM,EACNmB,QAAQ,EACRoI,gBAAgB,EAChBrJ,QAAQ,EACRY,UAAU,EACVM,QAAQ,CACT,CAAC;EACF,IAAIoK,kBAAkB,GAAG3P,WAAW,CAAC,UAAS2O,CAAC,EAAE;IAC/C,IAAIiB,MAAM,GAAGjB,CAAC,CAACiB,MAAM;IACrB,IAAIxH,OAAO,GAAGuG,CAAC,CAACkB,aAAa;IAC7B,IAAI,EAAED,MAAM,KAAK,IAAI,IAAIA,MAAM,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,MAAM,CAACE,OAAO,CAAC,IAAI,CAAC1H,OAAO,EAAE,OAAO,KAAK;IAC/F,IAAI2H,WAAW,GAAGH,MAAM,CAACE,OAAO,CAAC,qDAAqD,CAAC;IACvF,OAAO,CAAC,CAACC,WAAW,IAAIA,WAAW,KAAK3H,OAAO;EACjD,CAAC,EAAE,EAAE,CAAC;EACN,IAAI4H,eAAe,GAAGhQ,WAAW,CAAC,UAAS2O,CAAC,EAAE;IAC5C,IAAIgB,kBAAkB,CAAChB,CAAC,CAAC,EAAE;IAC3BM,cAAc,CAAC,CAAC;EAClB,CAAC,EAAE,CACDU,kBAAkB,EAClBV,cAAc,CACf,CAAC;EACF,IAAIgB,iBAAiB,GAAGjQ,WAAW,CAAC,UAAS2O,CAAC,EAAE;IAC9C,IAAIA,CAAC,CAACiB,MAAM,KAAKjB,CAAC,CAACkB,aAAa,EAAE;IAClC,IAAIlB,CAAC,CAACuB,GAAG,KAAK,OAAO,IAAIvB,CAAC,CAACuB,GAAG,KAAK,GAAG,EAAE;MACtC,IAAIC,iBAAiB;MACrB,CAACA,iBAAiB,GAAGxB,CAAC,CAACC,cAAc,MAAM,IAAI,IAAIuB,iBAAiB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,iBAAiB,CAACxG,IAAI,CAACgF,CAAC,CAAC;MACpHM,cAAc,CAAC,CAAC;IAClB;EACF,CAAC,EAAE,CACDA,cAAc,CACf,CAAC;EACF,IAAImB,aAAa,GAAGpQ,WAAW,CAAC,YAAW;IACzC,IAAI8H,2BAA2B,CAACM,OAAO,IAAI7G,gBAAgB,CAAC,CAAC,EAAE2E,cAAc,CAAC,IAAI,CAAC;EACrF,CAAC,EAAE,EAAE,CAAC;EACN,IAAImK,YAAY,GAAGrQ,WAAW,CAAC,UAASsQ,IAAI,EAAE;IAC5C,IAAIrH,uBAAuB;IAC3B,CAACA,uBAAuB,GAAGpB,cAAc,CAACO,OAAO,MAAM,IAAI,IAAIa,uBAAuB,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,uBAAuB,CAACU,IAAI,CAAC9B,cAAc,CAAC;IACzJA,cAAc,CAACO,OAAO,GAAG,IAAI;IAC7B,IAAI,CAACkI,IAAI,IAAI,CAAChQ,KAAK,EAAE;IACrB,IAAIiQ,OAAO,GAAG,SAASC,QAAQA,CAAA,EAAG;MAChC,OAAOJ,aAAa,CAAC,CAAC;IACxB,CAAC;IACD,IAAIK,MAAM,GAAG,SAASC,OAAOA,CAAA,EAAG;MAC9B,OAAOxK,cAAc,CAAC,KAAK,CAAC;IAC9B,CAAC;IACDoK,IAAI,CAACtH,gBAAgB,CAAC,OAAO,EAAEuH,OAAO,CAAC;IACvCD,IAAI,CAACtH,gBAAgB,CAAC,MAAM,EAAEyH,MAAM,CAAC;IACrC5I,cAAc,CAACO,OAAO,GAAG,YAAW;MAClCkI,IAAI,CAACpH,mBAAmB,CAAC,OAAO,EAAEqH,OAAO,CAAC;MAC1CD,IAAI,CAACpH,mBAAmB,CAAC,MAAM,EAAEuH,MAAM,CAAC;IAC1C,CAAC;EACH,CAAC,EAAE,CACDL,aAAa,CACd,CAAC;EACF,IAAIO,eAAe,GAAGP,aAAa;EACnC,IAAIQ,cAAc,GAAG5Q,WAAW,CAAC,YAAW;IAC1CkG,cAAc,CAAC,KAAK,CAAC;EACvB,CAAC,EAAE,EAAE,CAAC;EACN,IAAI2K,cAAc,GAAG7Q,WAAW,CAAC,UAASwK,IAAI,EAAE;IAC9C,IAAI,CAAClK,KAAK,EAAE;MACV,IAAIwQ,UAAU;MACd,IAAIC,GAAG,GAAGvG,IAAI,CAACuG,GAAG;MAClB,OAAOA,GAAG,KAAK,CAACD,UAAU,GAAGtG,IAAI,CAACK,IAAI,MAAM,IAAI,IAAIiG,UAAU,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,UAAU,CAAC7F,UAAU,CAAC,QAAQ,CAAC,CAAC,GAAG8F,GAAG,GAAG,IAAI;IACpI;IACA,IAAIvG,IAAI,CAACK,IAAI,CAACI,UAAU,CAAC,QAAQ,CAAC,EAAE;MAClC,IAAI+F,WAAW,GAAGjJ,cAAc,CAACK,OAAO,CAACoF,GAAG,CAAChD,IAAI,CAAC;MAClD,IAAIwG,WAAW,EAAE,OAAOA,WAAW;MACnC,IAAIC,OAAO,GAAG5H,GAAG,CAAC6H,eAAe,CAAC1G,IAAI,CAAC;MACvCzC,cAAc,CAACK,OAAO,CAAC+I,GAAG,CAAC3G,IAAI,EAAEyG,OAAO,CAAC;MACzC,OAAOA,OAAO;IAChB;IACA,OAAO,IAAI;EACb,CAAC,EAAE,EAAE,CAAC;EACN,IAAIzL,QAAQ,EAAE;IACZ,IAAI4L,WAAW,GAAGnQ,cAAc,CAAC4E,UAAU,CAAC4E,IAAI,IAAI1E,SAAS,CAACiB,SAAS,EAAE,CAAC,CAAC;IAC3E,OAAO,eAAgBxH,IAAI,CAACqB,WAAW,EAAE;MACvC8E,EAAE;MACFY,KAAK,EAAEV,UAAU,CAACU,KAAK;MACvBkE,IAAI,EAAE5E,UAAU,CAAC4E,IAAI;MACrB1E,SAAS;MACTsL,QAAQ,EAAE,eAAgB7R,IAAI,CAACsB,QAAQ,EAAE;QACvCwQ,OAAO,EAAE,SAAS;QAClBnP,KAAK,EAAE,MAAM;QACboP,MAAM,EAAEH;MACV,CAAC;IACH,CAAC,CAAC;EACJ;EACA,IAAII,WAAW,GAAG,CAAClM,QAAQ,IAAI,CAACC,QAAQ;EACxC,IAAIkM,OAAO,GAAGrK,aAAa,CAACgH,MAAM,GAAG,CAAC,IAAI9G,SAAS,CAAC8G,MAAM,GAAG,CAAC;EAC9D,IAAIsD,gBAAgB,GAAG,SAASC,iBAAiBA,CAACC,SAAS,EAAEC,OAAO,EAAE;IACpE,OAAOL,WAAW,GAAG,eAAgBhS,IAAI,CAACmB,MAAM,EAAE;MAChD;MACA;MACA;MACA;MACAmR,MAAM,EAAE,IAAI;MACZC,QAAQ,EAAE,IAAI;MACdC,IAAI,EAAEjS,KAAK;MACX,YAAY,EAAE6R,SAAS;MACvBrP,eAAe,EAAEd,kBAAkB,CAACwQ,UAAU,CAACzO,UAAU,CAAC0O,IAAI;MAC9DC,KAAK,EAAE1Q,kBAAkB,CAACwQ,UAAU,CAACG,GAAG;MACxCC,UAAU,EAAE;QACV9P,eAAe,EAAEd,kBAAkB,CAACwQ,UAAU,CAACzO,UAAU,CAAC8O;MAC5D,CAAC;MACDC,UAAU,EAAE;QACVhQ,eAAe,EAAEd,kBAAkB,CAACwQ,UAAU,CAACzO,UAAU,CAACgP;MAC5D,CAAC;MACDX,OAAO,EAAE,SAASY,QAAQA,CAAC9D,CAAC,EAAE;QAC5BA,CAAC,CAAC+D,eAAe,CAAC,CAAC;QACnBb,OAAO,CAAC,CAAC;MACX;IACF,CAAC,CAAC,GAAG,IAAI;EACX,CAAC;EACD,IAAIc,cAAc,GAAG,SAASC,eAAeA,CAACpI,IAAI,EAAEqI,OAAO,EAAEC,KAAK,EAAE;IAClE,OAAO,eAAgBpT,KAAK,CAACc,MAAM,EAAE;MACnCuS,IAAI,EAAE,CAAC;MACPC,GAAG,EAAE,IAAI;MACT5P,UAAU,EAAE,QAAQ;MACpBiO,QAAQ,EAAE,CACRwB,OAAO,GAAG,eAAgBrT,IAAI,CAACa,KAAK,EAAE;QACpCoG,YAAY,EAAED,YAAY;QAC1B;QACA;QACAyM,GAAG,EAAEJ,OAAO;QACZK,GAAG,EAAE1I,IAAI,CAACrF,IAAI;QACdhD,KAAK,EAAEuE,UAAU;QACjB6K,MAAM,EAAE7K,UAAU;QAClByM,SAAS,EAAE;MACb,CAAC,CAAC,GAAG,eAAgB3T,IAAI,CAACgB,MAAM,EAAE;QAChC2B,KAAK,EAAEuE,UAAU;QACjB6K,MAAM,EAAE7K,UAAU;QAClBrD,cAAc,EAAE,QAAQ;QACxBD,UAAU,EAAE,QAAQ;QACpBiO,QAAQ,EAAE,eAAgB7R,IAAI,CAACK,QAAQ,EAAE;UACvC4K,IAAI,EAAE5D;QACR,CAAC;MACH,CAAC,CAAC,EACF,eAAgBnH,KAAK,CAACe,MAAM,EAAE;QAC5BsS,IAAI,EAAE,CAAC;QACPC,GAAG,EAAE,IAAI;QACT3B,QAAQ,EAAE,CACR,eAAgB7R,IAAI,CAACe,IAAI,EAAE;UACzB6S,aAAa,EAAE,CAAC;UAChB,GAAGrN,SAAS,CAACsN,IAAI;UACjBhC,QAAQ,EAAE7G,IAAI,CAACrF;QACjB,CAAC,CAAC;QACF;AACZ;AACA;AACA;QACY;QAAgB3F,IAAI,CAACe,IAAI,EAAE;UACzB6S,aAAa,EAAE,CAAC;UAChBjB,KAAK,EAAE3Q,gBAAgB,CAAC8R,IAAI;UAC5B,GAAGvN,SAAS,CAACQ,KAAK;UAClBgN,UAAU,EAAE,KAAK;UACjBlC,QAAQ,EAAEzH,cAAc,CAACY,IAAI,CAACC,IAAI;QACpC,CAAC,CAAC,EACFqI,KAAK;MAET,CAAC,CAAC;IAEN,CAAC,CAAC;EACJ,CAAC;EACD,IAAIU,eAAe,GAAG,SAASC,gBAAgBA,CAACjJ,IAAI,EAAEqI,OAAO,EAAE9N,aAAa,EAAE;IAC5E,OAAO,eAAgBrF,KAAK,CAACe,MAAM,EAAE;MACnC,kBAAkB,EAAE,MAAM;MAC1B2B,QAAQ,EAAE,UAAU;MACpBD,KAAK,EAAE4E,MAAM;MACbwK,MAAM,EAAExK,MAAM;MACdsK,QAAQ,EAAE,CACR,eAAgB7R,IAAI,CAACa,KAAK,EAAE;QAC1BoG,YAAY,EAAED,YAAY;QAC1B;QACA;QACAyM,GAAG,EAAEJ,OAAO;QACZK,GAAG,EAAE1I,IAAI,CAACrF,IAAI;QACdhD,KAAK,EAAE4E,MAAM;QACbwK,MAAM,EAAExK,MAAM;QACdoM,SAAS,EAAE;MACb,CAAC,CAAC,EACF3B,WAAW,GAAG,eAAgBhS,IAAI,CAACiB,MAAM,EAAE;QACzC,kBAAkB,EAAE,aAAa;QACjC2B,QAAQ,EAAE,UAAU;QACpBc,GAAG,EAAE+D,eAAe;QACpBlF,KAAK,EAAEkF,eAAe;QACtB1D,MAAM,EAAE,CAAC;QACT8N,QAAQ,EAAEK,gBAAgB,CAAC/P,CAAC,CAAC,iBAAiB,EAAE;UAC9CwD,IAAI,EAAEqF,IAAI,CAACrF;QACb,CAAC,CAAC,EAAE,YAAW;UACb,OAAOoJ,gBAAgB,CAAC/D,IAAI,EAAEzF,aAAa,CAAC;QAC9C,CAAC;MACH,CAAC,CAAC,GAAG,IAAI;IAEb,CAAC,EAAE,GAAGyF,IAAI,CAACrF,IAAI,IAAIqF,IAAI,CAACC,IAAI,IAAID,IAAI,CAACkJ,YAAY,EAAE,CAAC;EACtD,CAAC;EACD,IAAIC,gBAAgB,GAAG,SAASC,iBAAiBA,CAACC,SAAS,EAAE9O,aAAa,EAAEuK,aAAa,EAAE;IACzF,IAAIwE,mCAAmC,EAAEC,oCAAoC,EAAEC,oCAAoC;IACnH3L,YAAY,CAACD,OAAO,GAAGrD,aAAa;IACpC,IAAIkP,YAAY,GAAG3T,KAAK,GAAG2O,cAAc,GAAG,YAAW;MACrD,KAAKI,gBAAgB,CAACtK,aAAa,EAAEuK,aAAa,CAAC;IACrD,CAAC;IACD,IAAI4E,oBAAoB,GAAG1C,WAAW,GAAGlR,KAAK,GAAG;MAC/C;MACA6T,IAAI,EAAE,QAAQ;MACdC,QAAQ,EAAE,CAAC;MACX7D,OAAO,EAAEI,eAAe;MACxBF,MAAM,EAAEG,cAAc;MACtByD,MAAM,EAAE,SAAS;MACjBC,OAAO,EAAEtE,eAAe;MACxBuE,SAAS,EAAEtE,iBAAiB;MAC5B,IAAG3L,QAAQ,GAAG;QACZkQ,WAAW,EAAE9F,eAAe;QAC5B+F,UAAU,EAAE5F,cAAc;QAC1B6F,WAAW,EAAE5F,eAAe;QAC5B6F,MAAM,EAAE,SAASA,MAAMA,CAAChG,CAAC,EAAE;UACzBI,UAAU,CAACJ,CAAC,EAAE5J,aAAa,CAAC;UAC5BuK,aAAa,KAAK,IAAI,IAAIA,aAAa,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,aAAa,CAAC,CAAC;QAC/E;MACF,CAAC,GAAG,IAAI;IACV,CAAC,GAAG;MACF6E,IAAI,EAAE,QAAQ;MACdtC,OAAO,EAAEoC;IACX,CAAC,GAAG;MACFI,MAAM,EAAE/O,QAAQ,GAAG,aAAa,GAAG,KAAK;IAC1C,CAAC;IACD,IAAIsP,UAAU,GAAG,EAAE;IACnB,IAAIC,QAAQ,GAAG,EAAE;IACjBzN,aAAa,CAAC+B,OAAO,CAAC,UAASqB,IAAI,EAAEsK,KAAK,EAAE;MAC1C,IAAIjC,OAAO,GAAGtO,WAAW,GAAGsM,cAAc,CAACrG,IAAI,CAAC,GAAG,IAAI;MACvD,IAAIqI,OAAO,EAAE+B,UAAU,CAACzG,IAAI,CAAC;QAC3B3D,IAAI;QACJqI;MACF,CAAC,CAAC,CAAC,KACEgC,QAAQ,CAAC1G,IAAI,CAAC;QACjB3D,IAAI;QACJqI,OAAO;QACPiC;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,eAAgBpV,KAAK,CAACwC,eAAe,EAAE;MAC5C;MACA;MACA;MACAyD,EAAE;MACFoP,GAAG,EAAE1E,YAAY;MACjB,kBAAkB,EAAE,UAAU;MAC9B,gBAAgB,EAAE7I,UAAU,IAAIgK,WAAW,IAAIlN,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;MACzE,cAAc,EAAE2B,WAAW,GAAG,MAAM,GAAG,KAAK,CAAC;MAC7C+O,QAAQ,EAAEjP,SAAS,CAACiP,QAAQ;MAC5B;MACA;MACA;MACA,IAAG1P,QAAQ,GAAGU,aAAa,CAACiP,gBAAgB,GAAG,KAAK,CAAC;MACrDxO,YAAY,EAAED,YAAY;MAC1B;MACA0O,WAAW,EAAE,CAACpB,mCAAmC,GAAG/N,SAAS,CAACU,YAAY,CAACyO,WAAW,MAAM,IAAI,IAAIpB,mCAAmC,KAAK,KAAK,CAAC,GAAGA,mCAAmC,GAAG,CAAC;MAC5L,IAAGD,SAAS,GAAG;QACbrR,WAAW,EAAEhB,gBAAgB,CAACoL;MAChC,CAAC,GAAG,KAAK,CAAC;MACVuI,SAAS,EAAEpP,SAAS,CAACoP,SAAS;MAC9BC,UAAU,EAAErP,SAAS,CAACqP,UAAU;MAChC;MACA;MACA;MACAC,SAAS,EAAEpU,cAAc,CAAC4E,UAAU,CAAC4E,IAAI,IAAI1E,SAAS,CAACiB,SAAS,EAAE,CAAC,CAAC;MACpE,eAAe,EAAEnB,UAAU,CAACS,QAAQ,IAAI,KAAK,CAAC;MAC9C,cAAc,EAAE,CAAC,CAACuN,SAAS,IAAI,KAAK,CAAC;MACrC,eAAe,EAAEtO,QAAQ,IAAI,KAAK,CAAC;MACnC,eAAe,EAAED,QAAQ,IAAI,KAAK,CAAC;MACnC;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA;MACA,IAAGW,WAAW,GAAGnD,iBAAiB,CAAC,CAAC,GAAG,KAAK,CAAC;MAC7CuP,UAAU,EAAEb,WAAW,GAAG;QACxBhP,WAAW,EAAEqR,SAAS,GAAGrS,gBAAgB,CAACoL,KAAK,GAAGlL,eAAe,CAACe,MAAM,CAAC6P,KAAK;QAC9E;QACA;QACA/P,eAAe,EAAEb,eAAe,CAAC8B,UAAU,CAACC;MAC9C,CAAC,GAAG,KAAK,CAAC;MACV,GAAGyQ,oBAAoB;MACvB,IAAG1C,WAAW;MACZ;MACA;MACA;MACA;MACA3L,UAAU,CAACU,KAAK,IAAIZ,EAAE,GAAG,IAAI,GAAG;QAC9B,YAAY,EAAE,OAAOE,UAAU,CAACU,KAAK,KAAK,QAAQ,GAAG5E,CAAC,CAAC,wBAAwB,EAAE;UAC/E4E,KAAK,EAAEV,UAAU,CAACU;QACpB,CAAC,CAAC,GAAG5E,CAAC,CAAC,aAAa;MACtB,CAAC,GACC,IAAI;MACR0P,QAAQ,EAAE,CACR7J,UAAU,IAAIgK,WAAW,IAAIlN,QAAQ,GAAG,eAAgB5E,KAAK,CAACuD,gBAAgB,EAAE;QAC9E,kBAAkB,EAAE,SAAS;QAC7BwD,YAAY,EAAED,YAAY;QAC1B0O,WAAW,EAAE,CAACnB,oCAAoC,GAAGhO,SAAS,CAACU,YAAY,CAACyO,WAAW,MAAM,IAAI,IAAInB,oCAAoC,KAAK,KAAK,CAAC,GAAGA,oCAAoC,GAAG,CAAC;QAC/L,IAAGF,SAAS,GAAG;UACbrR,WAAW,EAAEhB,gBAAgB,CAACoL;QAChC,CAAC,GAAG,KAAK,CAAC;QACV,GAAG7G,SAAS,CAACiN,GAAG;QAChB,GAAGjN,SAAS,CAACuP,YAAY;QACzBjE,QAAQ,EAAE,CACR,eAAgB7R,IAAI,CAACgB,MAAM,EAAE;UAC3B2B,KAAK,EAAEuE,UAAU;UACjB6K,MAAM,EAAE7K,UAAU;UAClBtD,UAAU,EAAE,QAAQ;UACpBC,cAAc,EAAE,QAAQ;UACxB;UACA;UACA,GAAG;YACD8O,KAAK,EAAE3Q,gBAAgB,CAAC8R;UAC1B,CAAC;UACDjC,QAAQ,EAAE,eAAgB7R,IAAI,CAACM,UAAU,EAAE;YACzC2K,IAAI,EAAE/D,UAAU;YAChB,aAAa,EAAE;UACjB,CAAC;QACH,CAAC,CAAC,EACF,eAAgBlH,IAAI,CAACe,IAAI,EAAE;UACzB4R,KAAK,EAAE3Q,gBAAgB,CAAC8R,IAAI;UAC5BiC,SAAS,EAAE,QAAQ;UACnB,GAAGxP,SAAS,CAACsN,IAAI;UACjBhC,QAAQ,EAAEhN,QAAQ,GAAG1C,CAAC,CAAC,sBAAsB,CAAC,GAAGA,CAAC,CAAC,uBAAuB;QAC5E,CAAC,CAAC;MAEN,CAAC,CAAC,GAAG,IAAI,EACT,eAAgBjC,KAAK,CAACe,MAAM,EAAE;QAC5B,GAAGsF,SAAS,CAACuP,YAAY;QACzBE,QAAQ,EAAE,CAAC;QACXrT,KAAK,EAAE,MAAM;QACbiB,UAAU,EAAE,QAAQ;QACpBC,cAAc,EAAE,QAAQ;QACxB,GAAG0C,SAAS,CAACiN,GAAG;QAChB3B,QAAQ,EAAE,CACR,eAAgB3R,KAAK,CAACc,MAAM,EAAE;UAC5B4C,UAAU,EAAE,QAAQ;UACpB,GAAG2C,SAAS,CAACiN,GAAG;UAChB3B,QAAQ,EAAE,CACR,eAAgB7R,IAAI,CAACmB,MAAM,EAAE;YAC3BkR,OAAO,EAAEoC,YAAY;YACrB3O,QAAQ,EAAE,CAACkM,WAAW;YACtB/G,IAAI,EAAE1E,SAAS,CAACiB,SAAS;YACzBoN,QAAQ,EAAE,CAAC,CAAC;YACZ;YACA;YACA;YACA;YACApC,IAAI,EAAElS,UAAU;YAChBuR,QAAQ,EAAE,eAAgB7R,IAAI,CAACmB,MAAM,CAACJ,IAAI,EAAE;cAC1C,GAAGwF,SAAS,CAACsN,IAAI;cACjBhC,QAAQ,EAAE5M;YACZ,CAAC;UACH,CAAC,CAAC,EACFiB,OAAO;QAEX,CAAC,CAAC,EACF0B,aAAa,CAACgH,MAAM,KAAK,CAAC,IAAI9G,SAAS,CAAC8G,MAAM,KAAK,CAAC,IAAI,eAAgB5O,IAAI,CAACe,IAAI,EAAE;UACjF4R,KAAK,EAAE3Q,gBAAgB,CAACiU,KAAK;UAC7BF,SAAS,EAAE,QAAQ;UACnB,GAAGxP,SAAS,CAACsN,IAAI;UACjBhC,QAAQ,EAAE7M;QACZ,CAAC,CAAC,EACFlE,KAAK,GAAG,eAAgBd,IAAI,CAAC,OAAO,EAAE;UACpCuV,GAAG,EAAEnN,YAAY;UACjBiD,IAAI,EAAE,MAAM;UACZ1G,MAAM;UACNE,QAAQ;UACR+P,QAAQ,EAAE,CAAC,CAAC;UACZvP,QAAQ,EAAE,SAASA,QAAQA,CAAC8J,CAAC,EAAE;YAC7BjB,gBAAgB,CAACiB,CAAC,CAACiB,MAAM,CAACjC,KAAK,EAAE5I,aAAa,EAAE4J,CAAC,CAACiB,MAAM,CAACjC,KAAK,CAAC;YAC/D2B,aAAa,KAAK,IAAI,IAAIA,aAAa,KAAK,KAAK,CAAC,GAAG,KAAK,CAAC,GAAGA,aAAa,CAAC,CAAC;UAC/E,CAAC;UACDoG,KAAK,EAAE;YACLC,OAAO,EAAE;UACX,CAAC;UACDrQ,QAAQ,EAAE,CAACkM;QACb,CAAC,CAAC,GAAG,IAAI;MAEb,CAAC,CAAC,EACFC,OAAO,IAAI,eAAgB/R,KAAK,CAACgE,mBAAmB,EAAE;QACpD,kBAAkB,EAAE,OAAO;QAC3B;QACAC,cAAc,EAAE,CAACqQ,oCAAoC,GAAGjO,SAAS,CAACU,YAAY,CAACyO,WAAW,MAAM,IAAI,IAAIlB,oCAAoC,KAAK,KAAK,CAAC,GAAGA,oCAAoC,GAAG,CAAC;QAClM3C,QAAQ,EAAE,CACRuD,UAAU,CAACxG,MAAM,GAAG,CAAC,GAAG,eAAgB5O,IAAI,CAACqE,mBAAmB,EAAE;UAChE,kBAAkB,EAAE,OAAO;UAC3B,GAAGkC,SAAS,CAACiN,GAAG;UAChB,GAAGjN,SAAS,CAACuP,YAAY;UACzBjE,QAAQ,EAAEuD,UAAU,CAAChK,GAAG,CAAC,UAASgL,KAAK,EAAE;YACvC,IAAI;cAAEpL,IAAI;cAAEqI;YAAQ,CAAC,GAAG+C,KAAK;YAC7B,OAAOpC,eAAe,CAAChJ,IAAI,EAAEqI,OAAO,EAAE9N,aAAa,CAAC;UACtD,CAAC;QACH,CAAC,CAAC,GAAG,IAAI,EACT8P,QAAQ,CAACjK,GAAG,CAAC,UAASgL,KAAK,EAAE;UAC3B,IAAI;YAAEpL,IAAI;YAAEqI,OAAO;YAAEiC;UAAM,CAAC,GAAGc,KAAK;UACpC,OAAO,eAAgBlW,KAAK,CAACc,MAAM,EAAE;YACnC2B,KAAK,EAAE,MAAM;YACb,GAAG4D,SAAS,CAACiN,GAAG;YAChB5P,UAAU,EAAE,QAAQ;YACpBC,cAAc,EAAE,eAAe;YAC/B,GAAG0C,SAAS,CAACuP,YAAY;YACzBjE,QAAQ,EAAE,CACRsB,cAAc,CAACnI,IAAI,EAAEqI,OAAO,CAAC,EAC7BnB,gBAAgB,CAAC/P,CAAC,CAAC,iBAAiB,EAAE;cACpCwD,IAAI,EAAEqF,IAAI,CAACrF;YACb,CAAC,CAAC,EAAE,YAAW;cACb,OAAOoJ,gBAAgB,CAAC/D,IAAI,EAAEzF,aAAa,CAAC;YAC9C,CAAC,CAAC;UAEN,CAAC,EAAE,GAAGyF,IAAI,CAACrF,IAAI,IAAI2P,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC,EACFxN,SAAS,CAACsD,GAAG,CAAC,UAASpB,IAAI,EAAE;UAC3B,IAAIqM,WAAW;UACf,IAAIhD,OAAO,GAAGtO,WAAW,GAAGsM,cAAc,CAACrH,IAAI,CAACgB,IAAI,CAAC,GAAG,IAAI;UAC5D,IAAIsL,WAAW,GAAGtM,IAAI,CAACmD,MAAM,KAAK,WAAW;UAC7C,IAAIoJ,MAAM,GAAGvM,IAAI,CAACmD,MAAM,KAAK,QAAQ,GAAGnD,IAAI,CAACoD,KAAK,GAAG,KAAK,CAAC;UAC3D,OAAO,eAAgBlN,KAAK,CAACc,MAAM,EAAE;YACnC,sBAAsB,EAAEgJ,IAAI,CAACmD,MAAM;YACnCxK,KAAK,EAAE,MAAM;YACb,GAAG4D,SAAS,CAACiN,GAAG;YAChB5P,UAAU,EAAE,QAAQ;YACpBC,cAAc,EAAE,eAAe;YAC/B,GAAG0C,SAAS,CAACuP,YAAY;YACzBjE,QAAQ,EAAE,CACRsB,cAAc,CAACnJ,IAAI,CAACgB,IAAI,EAAEqI,OAAO,EAAE,eAAgBnT,KAAK,CAACE,SAAS,EAAE;cAClEyR,QAAQ,EAAE,CACRyE,WAAW,GAAG,eAAgBtW,IAAI,CAACiB,MAAM,EAAE;gBACzC,kBAAkB,EAAE,UAAU;gBAC9B0T,IAAI,EAAE,aAAa;gBACnB,YAAY,EAAExS,CAAC,CAAC,oBAAoB,EAAE;kBACpCwD,IAAI,EAAEqE,IAAI,CAACgB,IAAI,CAACrF;gBAClB,CAAC,CAAC;gBACF,eAAe,EAAE,CAAC;gBAClB,eAAe,EAAE,GAAG;gBACpB,eAAe,EAAEqE,IAAI,CAAC0C,QAAQ;gBAC9BqF,MAAM,EAAE,EAAE;gBACVpP,KAAK,EAAE,MAAM;gBACbsE,YAAY,EAAE,GAAG;gBACjBlE,eAAe,EAAEd,kBAAkB,CAACyK,QAAQ,CAAC8J,KAAK;gBAClD3T,QAAQ,EAAE,QAAQ;gBAClBgP,QAAQ,EAAE,eAAgB7R,IAAI,CAACiB,MAAM,EAAE;kBACrC8Q,MAAM,EAAE,MAAM;kBACdpP,KAAK,EAAE,GAAGqH,IAAI,CAAC0C,QAAQ,GAAG;kBAC1B3J,eAAe,EAAEd,kBAAkB,CAACyK,QAAQ,CAAC+J;gBAC/C,CAAC;cACH,CAAC,CAAC,GAAG,IAAI,EACTF,MAAM,GAAG,eAAgBrW,KAAK,CAACe,MAAM,EAAE;gBACrCuS,GAAG,EAAE,IAAI;gBACT3B,QAAQ,EAAE,CACR,eAAgB7R,IAAI,CAACe,IAAI,EAAE;kBACzB4R,KAAK,EAAE3Q,gBAAgB,CAACoL,KAAK;kBAC7B,GAAG7G,SAAS,CAACQ,KAAK;kBAClB8K,QAAQ,EAAE0E,MAAM,CAACvJ;gBACnB,CAAC,CAAC,EACF,eAAgBhN,IAAI,CAACe,IAAI,EAAE;kBACzB4R,KAAK,EAAE3Q,gBAAgB,CAACiU,KAAK;kBAC7B,GAAG1P,SAAS,CAACQ,KAAK;kBAClB8K,QAAQ,EAAE0E,MAAM,CAAClJ;gBACnB,CAAC,CAAC;cAEN,CAAC,CAAC,GAAG,IAAI;YAEb,CAAC,CAAC,CAAC,EACH,eAAgBnN,KAAK,CAACc,MAAM,EAAE;cAC5B,GAAGuF,SAAS,CAACiN,GAAG;cAChB5P,UAAU,EAAE,QAAQ;cACpBiO,QAAQ,EAAE,CACRG,WAAW,IAAIuE,MAAM,GAAG,eAAgBvW,IAAI,CAACmB,MAAM,EAAE;gBACnDqU,QAAQ,EAAE,IAAI;gBACdvK,IAAI,EAAE,IAAI;gBACV,YAAY,EAAE9I,CAAC,CAAC,gBAAgB,EAAE;kBAChCwD,IAAI,EAAEqE,IAAI,CAACgB,IAAI,CAACrF;gBAClB,CAAC,CAAC;gBACF0M,OAAO,EAAE,SAASA,OAAOA,CAAClD,CAAC,EAAE;kBAC3BA,CAAC,CAAC+D,eAAe,CAAC,CAAC;kBACnBrF,mBAAmB,CAAC7D,IAAI,CAAC7D,EAAE,CAAC;gBAC9B,CAAC;gBACD0L,QAAQ,EAAE,CAACwE,WAAW,GAAGE,MAAM,CAACjJ,GAAG,MAAM,IAAI,IAAI+I,WAAW,KAAK,KAAK,CAAC,GAAGA,WAAW,GAAGlU,CAAC,CAAC,OAAO;cACnG,CAAC,CAAC,GAAG,IAAI,EACTmU,WAAW,GAAGpE,gBAAgB,CAAC/P,CAAC,CAAC,iBAAiB,EAAE;gBAClDwD,IAAI,EAAEqE,IAAI,CAACgB,IAAI,CAACrF;cAClB,CAAC,CAAC,EAAE,YAAW;gBACb,OAAO+H,oBAAoB,CAAC1D,IAAI,CAAC7D,EAAE,CAAC;cACtC,CAAC,CAAC,GAAG+L,gBAAgB,CAAC/P,CAAC,CAAC,iBAAiB,EAAE;gBACzCwD,IAAI,EAAEqE,IAAI,CAACgB,IAAI,CAACrF;cAClB,CAAC,CAAC,EAAE,YAAW;gBACb,OAAOmI,oBAAoB,CAAC9D,IAAI,CAAC7D,EAAE,CAAC;cACtC,CAAC,CAAC;YAEN,CAAC,CAAC;UAEN,CAAC,EAAE6D,IAAI,CAAC7D,EAAE,CAAC;QACb,CAAC,CAAC;MAEN,CAAC,CAAC;IAEN,CAAC,CAAC;EACJ,CAAC;EACD,IAAI,CAACG,YAAY,IAAI,CAACX,IAAI,EAAE;IAC1B,IAAI+Q,iBAAiB;IACrB,IAAIC,eAAe,GAAG,CAACD,iBAAiB,GAAGrQ,UAAU,CAAC+G,KAAK,MAAM,IAAI,IAAIsJ,iBAAiB,KAAK,KAAK,CAAC,GAAGA,iBAAiB,GAAGxO,eAAe;IAC3I,OAAO,eAAgBlI,IAAI,CAACqB,WAAW,EAAE;MACvC8E,EAAE;MACFY,KAAK,EAAEV,UAAU,CAACU,KAAK;MACvB6P,UAAU,EAAEvQ,UAAU,CAACuQ,UAAU;MACjCxJ,KAAK,EAAEuJ,eAAe;MACtBE,UAAU,EAAExQ,UAAU,CAACwQ,UAAU;MACjC/P,QAAQ,EAAET,UAAU,CAACS,QAAQ;MAC7BmE,IAAI,EAAE5E,UAAU,CAAC4E,IAAI;MACrB1E,SAAS;MACT;MACA;MACAT,QAAQ;MACR+L,QAAQ,EAAEsC,gBAAgB,CAACwC,eAAe,EAAEhQ,UAAU;IACxD,CAAC,CAAC;EACJ;EACA,OAAO,eAAgB3G,IAAI,CAACoB,KAAK,EAAE;IACjCqD,YAAY;IACZC,IAAI,EAAE4B,YAAY;IAClBZ,IAAI;IACJC,IAAI;IACJC,aAAa;IACbC,UAAU,EAAEgB,kBAAkB;IAC9BgL,QAAQ,EAAE,SAASA,QAAQA,CAACiF,KAAK,EAAE;MACjC,IAAIC,cAAc;MAClB,IAAI3J,KAAK,GAAG,CAAC2J,cAAc,GAAGvV,aAAa,CAACsV,KAAK,EAAEzQ,UAAU,CAAC+G,KAAK,CAAC,MAAM,IAAI,IAAI2J,cAAc,KAAK,KAAK,CAAC,GAAGA,cAAc,GAAG7O,eAAe;MAC9I,OAAO,eAAgBlI,IAAI,CAACqB,WAAW,EAAE;QACvC8E,EAAE;QACFY,KAAK,EAAEV,UAAU,CAACU,KAAK;QACvB6P,UAAU,EAAEvQ,UAAU,CAACuQ,UAAU;QACjCxJ,KAAK;QACLyJ,UAAU,EAAExQ,UAAU,CAACwQ,UAAU;QACjC/P,QAAQ,EAAET,UAAU,CAACS,QAAQ;QAC7BmE,IAAI,EAAE5E,UAAU,CAAC4E,IAAI;QACrB1E,SAAS;QACT;QACAT,QAAQ;QACR+L,QAAQ,EAAEsC,gBAAgB,CAAC/G,KAAK,EAAE,UAASxG,SAAS,EAAE;UACpDkQ,KAAK,CAACE,YAAY,CAACpQ,SAAS,CAAC;UAC7BD,UAAU,CAACC,SAAS,CAAC;QACvB,CAAC,EAAElF,iBAAiB,CAACoV,KAAK,EAAE,YAAY,EAAEzQ,UAAU,CAAC4K,MAAM,CAAC;MAC9D,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;AACJ;AACA,SACE1M,UAAU","ignoreList":[]}
@@ -0,0 +1,95 @@
1
+ function isFiniteNumber(n) {
2
+ return typeof n === "number" && Number.isFinite(n);
3
+ }
4
+ function parseJson(value) {
5
+ if (!value || !value.trim()) return null;
6
+ try {
7
+ return JSON.parse(value);
8
+ } catch {
9
+ return null;
10
+ }
11
+ }
12
+ function firstPoint(parsed) {
13
+ if (!parsed || typeof parsed !== "object") return null;
14
+ const collection = parsed;
15
+ if (collection.type !== "FeatureCollection" || !Array.isArray(collection.features)) return null;
16
+ for (const feature of collection.features) {
17
+ if (!feature || typeof feature !== "object") continue;
18
+ const geometry = feature.geometry;
19
+ if (!geometry || geometry.type !== "Point") continue;
20
+ const coordinates = geometry.coordinates;
21
+ if (!Array.isArray(coordinates) || coordinates.length < 2) continue;
22
+ const [lng, lat] = coordinates;
23
+ if (!isFiniteNumber(lng) || !isFiniteNumber(lat)) continue;
24
+ return {
25
+ type: "Point",
26
+ coordinates: [lng, lat]
27
+ };
28
+ }
29
+ return null;
30
+ }
31
+ function parseGeoValue(value) {
32
+ const parsed = parseJson(value);
33
+ if (!parsed || typeof parsed !== "object") return null;
34
+ const native = parsed;
35
+ if (isFiniteNumber(native.lat) && isFiniteNumber(native.lng)) {
36
+ return {
37
+ lat: native.lat,
38
+ lng: native.lng
39
+ };
40
+ }
41
+ const point = firstPoint(parsed);
42
+ if (point) {
43
+ const [lng, lat] = point.coordinates;
44
+ return {
45
+ lat,
46
+ lng
47
+ };
48
+ }
49
+ return null;
50
+ }
51
+ function detectGeoShape(value) {
52
+ const parsed = parseJson(value);
53
+ if (!parsed || typeof parsed !== "object") return "latlng";
54
+ if (parsed.type === "FeatureCollection") return "featurecollection";
55
+ return "latlng";
56
+ }
57
+ function asFeatures(parsed) {
58
+ if (!parsed || typeof parsed !== "object") return [];
59
+ const collection = parsed;
60
+ if (collection.type !== "FeatureCollection" || !Array.isArray(collection.features)) return [];
61
+ return collection.features.filter(feature => !!feature && typeof feature === "object");
62
+ }
63
+ function isPointFeature(feature) {
64
+ return !!feature.geometry && feature.geometry.type === "Point";
65
+ }
66
+ function formatGeoValue(coordinates, shape, previous) {
67
+ if (shape !== "featurecollection") return JSON.stringify(coordinates);
68
+ const point = {
69
+ type: "Point",
70
+ coordinates: [coordinates.lng, coordinates.lat]
71
+ };
72
+ const existing = asFeatures(parseJson(previous));
73
+ let moved = false;
74
+ const features = existing.map(feature => {
75
+ if (moved || !isPointFeature(feature)) return feature;
76
+ moved = true;
77
+ return {
78
+ ...feature,
79
+ geometry: point
80
+ };
81
+ });
82
+ if (!moved) {
83
+ features.push({
84
+ type: "Feature",
85
+ properties: {},
86
+ geometry: point
87
+ });
88
+ }
89
+ return JSON.stringify({
90
+ type: "FeatureCollection",
91
+ features
92
+ });
93
+ }
94
+ export { detectGeoShape, formatGeoValue, parseGeoValue };
95
+ //# sourceMappingURL=geoValue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["isFiniteNumber","n","Number","isFinite","parseJson","value","trim","JSON","parse","firstPoint","parsed","collection","type","Array","isArray","features","feature","geometry","coordinates","length","lng","lat","parseGeoValue","native","point","detectGeoShape","asFeatures","filter","isPointFeature","formatGeoValue","shape","previous","stringify","existing","moved","map","push","properties"],"sources":["../../../../src/fields/Geolocation/geoValue.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}