@feathery/react 2.6.8 → 2.8.0

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 (311) hide show
  1. package/dist/Form/components/{AIExtractionToast/ExtractionItem.d.ts → ActionToast/ToastItem.d.ts} +6 -6
  2. package/dist/Form/components/ActionToast/ToastItem.d.ts.map +1 -0
  3. package/dist/Form/components/{AIExtractionToast → ActionToast}/icons.d.ts +7 -7
  4. package/dist/Form/components/ActionToast/icons.d.ts.map +1 -0
  5. package/dist/Form/components/ActionToast/index.d.ts +8 -0
  6. package/dist/Form/components/ActionToast/index.d.ts.map +1 -0
  7. package/dist/Form/components/{AIExtractionToast → ActionToast}/useAIExtractionToast.d.ts +72 -64
  8. package/dist/Form/components/ActionToast/useAIExtractionToast.d.ts.map +1 -0
  9. package/dist/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts +20 -0
  10. package/dist/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts.map +1 -0
  11. package/dist/Form/components/DevNavBar.d.ts +1 -1
  12. package/dist/Form/components/ReactPortal.d.ts +2 -2
  13. package/dist/Form/definitions.d.ts +40 -40
  14. package/dist/Form/grid/CalendlyEmbed.d.ts +1 -1
  15. package/dist/Form/grid/Container/index.d.ts +19 -19
  16. package/dist/Form/grid/Element/index.d.ts +2 -2
  17. package/dist/Form/grid/Element/utils/address.d.ts +3 -3
  18. package/dist/Form/grid/Element/utils/utils.d.ts +13 -13
  19. package/dist/Form/grid/StyledContainer/hooks/index.d.ts +20 -20
  20. package/dist/Form/grid/StyledContainer/hooks/useFixedContainer.d.ts +1 -1
  21. package/dist/Form/grid/StyledContainer/index.d.ts +21 -21
  22. package/dist/Form/grid/StyledContainer/styles.d.ts +5 -5
  23. package/dist/Form/grid/StyledContainer/transform.d.ts +4 -4
  24. package/dist/Form/grid/StyledContainer/utils.d.ts +44 -44
  25. package/dist/Form/grid/index.d.ts +2 -2
  26. package/dist/Form/hooks/useCheckButtonAction.d.ts +6 -6
  27. package/dist/Form/hooks/useTrackUserInteraction.d.ts +2 -2
  28. package/dist/Form/index.d.ts +52 -52
  29. package/dist/Form/index.d.ts.map +1 -1
  30. package/dist/Form/logic.d.ts +10 -10
  31. package/dist/Form/tests/testMocks.d.ts +6 -6
  32. package/dist/auth/LoginError.d.ts +3 -3
  33. package/dist/auth/LoginForm.d.ts +29 -29
  34. package/dist/auth/internal/AuthIntegrationInterface.d.ts +31 -31
  35. package/dist/auth/internal/useFormAuth.d.ts +10 -10
  36. package/dist/auth/internal/utils.d.ts +13 -13
  37. package/dist/auth/useAuthClient.d.ts +2 -2
  38. package/dist/auth/utils.d.ts +1 -1
  39. package/dist/elements/basic/ButtonElement.d.ts +2 -2
  40. package/dist/elements/basic/ImageElement.d.ts +3 -3
  41. package/dist/elements/basic/ProgressBarElement/components/SegmentBar.d.ts +2 -2
  42. package/dist/elements/basic/ProgressBarElement/components/SmoothBar.d.ts +2 -2
  43. package/dist/elements/basic/ProgressBarElement/index.d.ts +2 -2
  44. package/dist/elements/basic/TextElement.d.ts +2 -2
  45. package/dist/elements/basic/VideoElement.d.ts +2 -2
  46. package/dist/elements/components/ErrorInput.d.ts +2 -2
  47. package/dist/elements/components/FormControl.d.ts +10 -10
  48. package/dist/elements/components/FormOff.d.ts +10 -10
  49. package/dist/elements/components/InlineTooltip.d.ts +11 -11
  50. package/dist/elements/components/LoaderContainer.d.ts +10 -10
  51. package/dist/elements/components/Lottie.d.ts +2 -2
  52. package/dist/elements/components/Overlay.d.ts +15 -15
  53. package/dist/elements/components/Placeholder.d.ts +1 -1
  54. package/dist/elements/components/QuikFormViewer/transforms/form.d.ts +1 -1
  55. package/dist/elements/components/QuikFormViewer/transforms/header.d.ts +1 -1
  56. package/dist/elements/components/QuikFormViewer/transforms/sidebar.d.ts +6 -6
  57. package/dist/elements/components/QuikFormViewer.d.ts +9 -9
  58. package/dist/elements/components/Spinner.d.ts +4 -4
  59. package/dist/elements/components/TextHoverTooltip.d.ts +8 -8
  60. package/dist/elements/components/TextNodes.d.ts +4 -4
  61. package/dist/elements/components/Tooltip.d.ts +7 -7
  62. package/dist/elements/components/Watermark.d.ts +1 -1
  63. package/dist/elements/components/data/countries.d.ts +14 -14
  64. package/dist/elements/components/data/states/ae.d.ts +5 -5
  65. package/dist/elements/components/data/states/au.d.ts +5 -5
  66. package/dist/elements/components/data/states/br.d.ts +5 -5
  67. package/dist/elements/components/data/states/ca.d.ts +5 -5
  68. package/dist/elements/components/data/states/cl.d.ts +5 -5
  69. package/dist/elements/components/data/states/cn.d.ts +5 -5
  70. package/dist/elements/components/data/states/co.d.ts +5 -5
  71. package/dist/elements/components/data/states/eg.d.ts +5 -5
  72. package/dist/elements/components/data/states/es.d.ts +5 -5
  73. package/dist/elements/components/data/states/gb.d.ts +5 -5
  74. package/dist/elements/components/data/states/gt.d.ts +5 -5
  75. package/dist/elements/components/data/states/hk.d.ts +5 -5
  76. package/dist/elements/components/data/states/id.d.ts +5 -5
  77. package/dist/elements/components/data/states/ie.d.ts +5 -5
  78. package/dist/elements/components/data/states/in.d.ts +5 -5
  79. package/dist/elements/components/data/states/index.d.ts +6 -6
  80. package/dist/elements/components/data/states/it.d.ts +5 -5
  81. package/dist/elements/components/data/states/jp.d.ts +5 -5
  82. package/dist/elements/components/data/states/kr.d.ts +5 -5
  83. package/dist/elements/components/data/states/mx.d.ts +5 -5
  84. package/dist/elements/components/data/states/my.d.ts +5 -5
  85. package/dist/elements/components/data/states/ng.d.ts +5 -5
  86. package/dist/elements/components/data/states/nz.d.ts +5 -5
  87. package/dist/elements/components/data/states/pa.d.ts +5 -5
  88. package/dist/elements/components/data/states/pe.d.ts +5 -5
  89. package/dist/elements/components/data/states/ph.d.ts +5 -5
  90. package/dist/elements/components/data/states/pt.d.ts +5 -5
  91. package/dist/elements/components/data/states/ro.d.ts +5 -5
  92. package/dist/elements/components/data/states/ru.d.ts +5 -5
  93. package/dist/elements/components/data/states/th.d.ts +5 -5
  94. package/dist/elements/components/data/states/us.d.ts +9 -9
  95. package/dist/elements/components/data/states/za.d.ts +5 -5
  96. package/dist/elements/components/icons/Close.d.ts +6 -6
  97. package/dist/elements/components/icons/DiagonalArrow.d.ts +5 -5
  98. package/dist/elements/components/icons/DownloadIcon.d.ts +4 -4
  99. package/dist/elements/components/icons/FileUpload.d.ts +1 -1
  100. package/dist/elements/components/icons/FormClosed.d.ts +5 -5
  101. package/dist/elements/components/icons/Heart.d.ts +1 -1
  102. package/dist/elements/components/icons/Help.d.ts +4 -4
  103. package/dist/elements/components/icons/HideEyeIcon.d.ts +5 -5
  104. package/dist/elements/components/icons/LeftChevron.d.ts +1 -1
  105. package/dist/elements/components/icons/RatingStar.d.ts +1 -1
  106. package/dist/elements/components/icons/RightChevron.d.ts +1 -1
  107. package/dist/elements/components/icons/ShowEyeIcon.d.ts +5 -5
  108. package/dist/elements/components/icons/Warning.d.ts +5 -5
  109. package/dist/elements/components/icons/index.d.ts +11 -11
  110. package/dist/elements/components/skeletons/FieldSkeleton.d.ts +7 -7
  111. package/dist/elements/components/useBorder.d.ts +21 -21
  112. package/dist/elements/components/useTextEdit.d.ts +6 -5
  113. package/dist/elements/components/useTextEdit.d.ts.map +1 -1
  114. package/dist/elements/fields/AddressLine1Field/index.d.ts +4 -4
  115. package/dist/elements/fields/AddressLine1Field/tests/test-utils.d.ts +34 -34
  116. package/dist/elements/fields/AddressLine1Field/utils.d.ts +2 -2
  117. package/dist/elements/fields/ButtonGroupField/index.d.ts +2 -2
  118. package/dist/elements/fields/ButtonGroupField/tests/test-utils.d.ts +46 -46
  119. package/dist/elements/fields/CheckboxField/index.d.ts +5 -5
  120. package/dist/elements/fields/CheckboxField/tests/test-utils.d.ts +20 -20
  121. package/dist/elements/fields/CheckboxGroupField/index.d.ts +2 -2
  122. package/dist/elements/fields/CheckboxGroupField/tests/test-utils.d.ts +60 -60
  123. package/dist/elements/fields/ColorPickerField/index.d.ts +2 -2
  124. package/dist/elements/fields/ColorPickerField/tests/test-utils.d.ts +21 -21
  125. package/dist/elements/fields/CustomField/Status.d.ts +8 -8
  126. package/dist/elements/fields/CustomField/index.d.ts +3 -3
  127. package/dist/elements/fields/CustomField/template.d.ts +1 -1
  128. package/dist/elements/fields/CustomField/useCustomComponentIframe.d.ts +15 -15
  129. package/dist/elements/fields/DateSelectorField/index.d.ts +22 -22
  130. package/dist/elements/fields/DateSelectorField/index.d.ts.map +1 -1
  131. package/dist/elements/fields/DateSelectorField/styles.d.ts +4 -4
  132. package/dist/elements/fields/DateSelectorField/tests/test-utils.d.ts +74 -74
  133. package/dist/elements/fields/DateSelectorField/useDateLocale.d.ts +7 -7
  134. package/dist/elements/fields/DateSelectorField/utils.d.ts +3 -3
  135. package/dist/elements/fields/DropdownField/index.d.ts +1 -1
  136. package/dist/elements/fields/DropdownField/tests/test-utils.d.ts +28 -28
  137. package/dist/elements/fields/DropdownMultiField/DropdownMultiFieldSelectComponents.d.ts +8 -8
  138. package/dist/elements/fields/DropdownMultiField/createDropdownSelect.d.ts +190 -190
  139. package/dist/elements/fields/DropdownMultiField/index.d.ts +1 -1
  140. package/dist/elements/fields/DropdownMultiField/optionNormalization.d.ts +9 -9
  141. package/dist/elements/fields/DropdownMultiField/selectStyles.d.ts +12 -12
  142. package/dist/elements/fields/DropdownMultiField/tests/test-utils.d.ts +47 -47
  143. package/dist/elements/fields/DropdownMultiField/types.d.ts +49 -49
  144. package/dist/elements/fields/DropdownMultiField/useCollapsedSelectionManager.d.ts +46 -46
  145. package/dist/elements/fields/DropdownMultiField/useCollapsedValuesMeasurement.d.ts +19 -19
  146. package/dist/elements/fields/DropdownMultiField/useDropdownInteractions.d.ts +46 -46
  147. package/dist/elements/fields/DropdownMultiField/useDropdownOptions.d.ts +24 -24
  148. package/dist/elements/fields/DropdownMultiField/useSelectProps.d.ts +112 -112
  149. package/dist/elements/fields/FileUploadField/index.d.ts +2 -2
  150. package/dist/elements/fields/FileUploadField/tests/test-utils.d.ts +10 -10
  151. package/dist/elements/fields/MatrixField/index.d.ts +2 -2
  152. package/dist/elements/fields/MatrixField/tests/test-utils.d.ts +67 -67
  153. package/dist/elements/fields/PasswordField/index.d.ts +4 -4
  154. package/dist/elements/fields/PasswordField/tests/test-utils.d.ts +30 -30
  155. package/dist/elements/fields/PaymentMethodField.d.ts +4 -4
  156. package/dist/elements/fields/PhoneField/CountryDropdown.d.ts +3 -3
  157. package/dist/elements/fields/PhoneField/exampleNumbers.d.ts +2 -2
  158. package/dist/elements/fields/PhoneField/index.d.ts +4 -4
  159. package/dist/elements/fields/PhoneField/tests/test-utils.d.ts +86 -86
  160. package/dist/elements/fields/PhoneField/timeZoneCountries.d.ts +4 -4
  161. package/dist/elements/fields/PhoneField/validation.d.ts +3 -3
  162. package/dist/elements/fields/PinInputField/index.d.ts +2 -2
  163. package/dist/elements/fields/PinInputField/tests/test-utils.d.ts +79 -79
  164. package/dist/elements/fields/PinInputField/useOTPListener.d.ts +1 -1
  165. package/dist/elements/fields/QRScanner/constants.d.ts +14 -14
  166. package/dist/elements/fields/QRScanner/hooks/use-device-rotation.d.ts +11 -11
  167. package/dist/elements/fields/QRScanner/index.d.ts +2 -2
  168. package/dist/elements/fields/QRScanner/qrLoader.d.ts +2 -2
  169. package/dist/elements/fields/QRScanner/utils/local-storage.d.ts +5 -5
  170. package/dist/elements/fields/QRScanner/utils/select-camera.d.ts +9 -9
  171. package/dist/elements/fields/QRScanner/utils/supports-zoom.d.ts +8 -8
  172. package/dist/elements/fields/RadioButtonGroupField/index.d.ts +2 -2
  173. package/dist/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts +55 -55
  174. package/dist/elements/fields/RatingField/index.d.ts +1 -1
  175. package/dist/elements/fields/RatingField/tests/test-utils.d.ts +22 -22
  176. package/dist/elements/fields/SignatureField/components/SignatureCanvas.d.ts +22 -22
  177. package/dist/elements/fields/SignatureField/components/SignatureModal.d.ts +12 -12
  178. package/dist/elements/fields/SignatureField/components/utils.d.ts +10 -10
  179. package/dist/elements/fields/SignatureField/index.d.ts +3 -3
  180. package/dist/elements/fields/SignatureField/translation.d.ts +17 -17
  181. package/dist/elements/fields/SliderField/index.d.ts +1 -1
  182. package/dist/elements/fields/SliderField/styles.d.ts +3 -3
  183. package/dist/elements/fields/SliderField/tests/test-utils.d.ts +22 -22
  184. package/dist/elements/fields/TextArea/index.d.ts +4 -4
  185. package/dist/elements/fields/TextArea/tests/test-utils.d.ts +10 -10
  186. package/dist/elements/fields/TextField/TextAutocomplete.d.ts +15 -15
  187. package/dist/elements/fields/TextField/index.d.ts +4 -4
  188. package/dist/elements/fields/TextField/index.d.ts.map +1 -1
  189. package/dist/elements/fields/TextField/tests/test-utils.d.ts +10 -10
  190. package/dist/elements/fields/index.d.ts +27 -26
  191. package/dist/elements/fields/index.d.ts.map +1 -1
  192. package/dist/elements/fields/shared/tests/field-test-utils.d.ts +51 -51
  193. package/dist/elements/index.d.ts +36 -36
  194. package/dist/elements/styles.d.ts +64 -64
  195. package/dist/elements/utils/fieldNormalization.d.ts +12 -12
  196. package/dist/fthry_FormControl.CPHJNRoq.js +16 -0
  197. package/dist/fthry_InlineTooltip.AGcWhuhV.js +53 -0
  198. package/dist/fthry_Overlay.X0blINpo.js +228 -0
  199. package/dist/fthry_PaymentMethodField.DrAgJBPV.js +928 -0
  200. package/dist/fthry_Placeholder.DLtEoCLC.js +14 -0
  201. package/dist/fthry_ShowEyeIcon.CkEvtp1W.js +13 -0
  202. package/dist/fthry_index.BFrZ_89I.js +251 -0
  203. package/dist/fthry_index.BVM6mIvX.js +73 -0
  204. package/dist/fthry_index.B_soCJRW.js +1193 -0
  205. package/dist/fthry_index.BrWMLV_p.js +35 -0
  206. package/dist/fthry_index.CFbW8L20.js +42 -0
  207. package/dist/fthry_index.CWt9W3bv.js +95 -0
  208. package/dist/fthry_index.Cfk_0HTE.js +2000 -0
  209. package/dist/fthry_index.CjUraQwq.js +888 -0
  210. package/dist/fthry_index.D99W7p5a.js +293 -0
  211. package/dist/fthry_index.DAGDZi5r.js +97 -0
  212. package/dist/fthry_index.DV1PqB3d.js +138 -0
  213. package/dist/fthry_index.DWyfWu2d.js +216 -0
  214. package/dist/fthry_index.DaFYDmA_.js +15921 -0
  215. package/dist/fthry_index.DghPMqyH.js +8166 -0
  216. package/dist/fthry_index.DodXvrXD.js +98 -0
  217. package/dist/fthry_index.DohTu1v2.js +46 -0
  218. package/dist/fthry_index.F6BXSHA5.js +61120 -0
  219. package/dist/fthry_index.KRksei8j.js +513 -0
  220. package/dist/fthry_index.dYsdCe_k.js +1427 -0
  221. package/dist/fthry_index.lC0Xyh-d.js +1162 -0
  222. package/dist/fthry_index.mE9gZkgT.js +55 -0
  223. package/dist/fthry_index.rtVAtURz.js +1452 -0
  224. package/dist/fthry_index.uvWVc7KJ.js +131 -0
  225. package/dist/fthry_input.Bfzc5hmV.js +3779 -0
  226. package/dist/fthry_script.cAr9Z1Ke.js +157 -0
  227. package/dist/fthry_styles.yVoSvBEy.js +1654 -0
  228. package/dist/fthry_useElementSize.D3n9DgQ-.js +51 -0
  229. package/dist/fthry_useSalesforceSync.prWuB8V7.js +44 -0
  230. package/dist/fthry_webfontloader.DyMoLGZ3.js +57 -0
  231. package/dist/hooks/router.d.ts +14 -14
  232. package/dist/hooks/useElementSize.d.ts +7 -7
  233. package/dist/hooks/useLoader.d.ts +35 -35
  234. package/dist/hooks/useMounted.d.ts +2 -2
  235. package/dist/hooks/usePollFuserData.d.ts +1 -1
  236. package/dist/hooks/usePrevious.d.ts +2 -2
  237. package/dist/hooks/useSalesforceSync.d.ts +10 -10
  238. package/dist/index.d.ts +150 -149
  239. package/dist/index.d.ts.map +1 -1
  240. package/dist/index.js +9 -1
  241. package/dist/integrations/alloy.d.ts +2 -2
  242. package/dist/integrations/amplitude.d.ts +1 -1
  243. package/dist/integrations/argyle.d.ts +2 -2
  244. package/dist/integrations/calendly.d.ts +2 -2
  245. package/dist/integrations/firebase.d.ts +42 -42
  246. package/dist/integrations/flinks/index.d.ts +10 -10
  247. package/dist/integrations/flinks/utils.d.ts +12 -12
  248. package/dist/integrations/googleAnalytics.d.ts +3 -3
  249. package/dist/integrations/googleTagManager.d.ts +1 -1
  250. package/dist/integrations/heap.d.ts +2 -2
  251. package/dist/integrations/intercom.d.ts +2 -2
  252. package/dist/integrations/mixpanel.d.ts +2 -2
  253. package/dist/integrations/persona.d.ts +2 -2
  254. package/dist/integrations/plaid.d.ts +2 -2
  255. package/dist/integrations/recaptcha.d.ts +2 -2
  256. package/dist/integrations/rudderstack.d.ts +3 -3
  257. package/dist/integrations/schwab.d.ts +1 -1
  258. package/dist/integrations/segment.d.ts +1 -1
  259. package/dist/integrations/stripe/Cart.d.ts +19 -19
  260. package/dist/integrations/stripe/SimplifiedProduct.d.ts +39 -39
  261. package/dist/integrations/stripe/index.d.ts +1 -1
  262. package/dist/integrations/stripe/stripe.d.ts +97 -97
  263. package/dist/integrations/stytch.d.ts +19 -19
  264. package/dist/integrations/trustedform.d.ts +2 -2
  265. package/dist/integrations/utils.d.ts +14 -14
  266. package/dist/setupTests.d.ts +1 -1
  267. package/dist/types/Form.d.ts +80 -80
  268. package/dist/utils/DangerouslySetHTMLContent.d.ts +2 -2
  269. package/dist/utils/ShadowDomHtmlContent.d.ts +8 -8
  270. package/dist/utils/array.d.ts +11 -11
  271. package/dist/utils/browser.d.ts +23 -23
  272. package/dist/utils/callbackQueue.d.ts +10 -10
  273. package/dist/utils/document.d.ts +1 -1
  274. package/dist/utils/elementActions.d.ts +55 -55
  275. package/dist/utils/entities/Collaborator.d.ts +14 -14
  276. package/dist/utils/entities/Field.d.ts +129 -129
  277. package/dist/utils/error.d.ts +13 -13
  278. package/dist/utils/featheryClient/index.d.ts +103 -103
  279. package/dist/utils/featheryClient/integrationClient.d.ts +114 -114
  280. package/dist/utils/featheryClient/utils.d.ts +1 -1
  281. package/dist/utils/fieldHelperFunctions.d.ts +70 -70
  282. package/dist/utils/formContext.d.ts +104 -104
  283. package/dist/utils/formHelperFunctions.d.ts +44 -44
  284. package/dist/utils/hideAndRepeats.d.ts +27 -27
  285. package/dist/utils/hydration.d.ts +14 -14
  286. package/dist/utils/image.d.ts +39 -39
  287. package/dist/utils/init.d.ts +59 -59
  288. package/dist/utils/init.d.ts.map +1 -1
  289. package/dist/utils/interactionState.d.ts +4 -4
  290. package/dist/utils/internalState.d.ts +91 -91
  291. package/dist/utils/logic.d.ts +50 -50
  292. package/dist/utils/offlineRequestHandler.d.ts +94 -94
  293. package/dist/utils/polyfills.d.ts +2 -2
  294. package/dist/utils/primitives.d.ts +14 -14
  295. package/dist/utils/random.d.ts +1 -1
  296. package/dist/utils/repeat.d.ts +38 -38
  297. package/dist/utils/sensitiveActions.d.ts +7 -7
  298. package/dist/utils/stepHelperFunctions.d.ts +22 -22
  299. package/dist/utils/styles.d.ts +5 -5
  300. package/dist/utils/validation.d.ts +58 -58
  301. package/package.json +18 -5
  302. package/umd/466.e3456c8b3407ad04ba56.js +1 -0
  303. package/umd/{DateSelectorField.b98c0ecb80f56e65cc69.js → DateSelectorField.bd5646949de71f571d04.js} +1 -1
  304. package/umd/{TextField.a3d8d42f6f8236d00f83.js → TextField.5a5296fe3ea60c4459f2.js} +1 -1
  305. package/umd/index.js +1 -1
  306. package/dist/Form/components/AIExtractionToast/ExtractionItem.d.ts.map +0 -1
  307. package/dist/Form/components/AIExtractionToast/icons.d.ts.map +0 -1
  308. package/dist/Form/components/AIExtractionToast/index.d.ts +0 -9
  309. package/dist/Form/components/AIExtractionToast/index.d.ts.map +0 -1
  310. package/dist/Form/components/AIExtractionToast/useAIExtractionToast.d.ts.map +0 -1
  311. package/umd/796.e66d52ea21ef09c4eeaa.js +0 -1
@@ -0,0 +1,216 @@
1
+ import { b as jsx, a as __assign, j as jsxs, _ as __read, c as __awaiter, d as __generator, l as featheryWindow, m as Fragment, E as ErrorInput } from './fthry_index.F6BXSHA5.js';
2
+ import { useRef, useState, useEffect, memo, useMemo } from 'react';
3
+ import 'react/jsx-runtime';
4
+ import 'react-dom/client';
5
+ import 'stream';
6
+ import 'events';
7
+ import 'buffer';
8
+ import 'util';
9
+ import 'react-dom';
10
+
11
+ var Placeholder = function () { return (jsx("div", __assign({ style: {
12
+ padding: '16px',
13
+ border: '2px dashed #d1d5db',
14
+ borderRadius: '4px',
15
+ textAlign: 'center'
16
+ } }, { children: jsxs("div", __assign({ style: { color: '#4b5563' } }, { children: [jsx("div", __assign({ style: { fontSize: '14px' } }, { children: "Custom Component" })), jsx("div", __assign({ style: { fontSize: '12px', marginTop: '4px' } }, { children: "No code provided" }))] })) }))); };
17
+ var Loading = function () { return (jsx("div", __assign({ style: {
18
+ position: 'absolute',
19
+ top: 0,
20
+ left: 0,
21
+ right: 0,
22
+ padding: '8px',
23
+ backgroundColor: '#dbeafe',
24
+ color: '#2563eb',
25
+ fontSize: '14px'
26
+ } }, { children: "Loading..." }))); };
27
+ var Error = function (_a) {
28
+ var error = _a.error;
29
+ return (jsxs("div", __assign({ style: {
30
+ position: 'absolute',
31
+ top: 0,
32
+ left: 0,
33
+ right: 0,
34
+ padding: '8px',
35
+ backgroundColor: '#fee2e2',
36
+ color: '#dc2626',
37
+ fontSize: '14px'
38
+ } }, { children: ["Error: ", error] })));
39
+ };
40
+ var Status = { Placeholder: Placeholder, Loading: Loading, Error: Error };
41
+
42
+ // Extract package names and URLs imported in the custom component
43
+ var extractImports = function (code) {
44
+ var lines = code.split('\n');
45
+ var imports = new Set();
46
+ lines.forEach(function (line) {
47
+ line = line.trim();
48
+ if (line.startsWith('import')) {
49
+ var match = line.match(/from\s+['"]([^'"]+)['"]/);
50
+ if (match && match[1] !== 'react') {
51
+ imports.add(match[1]);
52
+ }
53
+ }
54
+ });
55
+ return Array.from(imports);
56
+ };
57
+ var isValidUrl = function (str) {
58
+ try {
59
+ // eslint-disable-next-line no-new
60
+ new URL(str);
61
+ return true;
62
+ }
63
+ catch (_a) {
64
+ return false;
65
+ }
66
+ };
67
+ // Build an importmap script based on the list of packages imported
68
+ var createImportMap = function (imports) {
69
+ var importEntries = imports.map(function (importPath) {
70
+ // Already a full URL, import directly
71
+ if (isValidUrl(importPath)) {
72
+ return "\"".concat(importPath, "\": \"").concat(importPath, "\"");
73
+ }
74
+ // Default to esm.sh for npm packages
75
+ return "\"".concat(importPath, "\": \"https://esm.sh/").concat(importPath, "/?external=react\"");
76
+ });
77
+ return "{\n \"imports\": {\n \"react\": \"https://esm.sh/react@18.2.0\",\n \"react-dom\": \"https://esm.sh/react-dom@18.2.0\",\n \"react-dom/client\": \"https://esm.sh/react-dom@18.2.0/client\",\n \"react/jsx-runtime\": \"https://esm.sh/react@18.2.0/jsx-runtime\"".concat(imports.length ? ',' : '', "\n ").concat(importEntries.join(',\n'), "\n }\n}");
78
+ };
79
+ var createTemplate = function (code, initialValue, elementId) { return "\n<!DOCTYPE html>\n<html>\n <head>\n <script src=\"https://cdn.jsdelivr.net/npm/@babel/standalone/babel.min.js\"></script>\n <style>\n * {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n \n body {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;\n line-height: 1.5;\n overflow: hidden;\n }\n\n #root {\n min-height: 100vh;\n width: 100%;\n }\n </style>\n <script type=\"importmap\">\n ".concat(createImportMap(extractImports(code)), "\n </script>\n <script type=\"module\">\n import React from 'react';\n import { createRoot } from 'react-dom/client';\n\n // Store the elementId for use in postMessage\n window.elementId = '").concat(elementId, "';\n\n (async () => {\n try {\n const transformedCode = Babel.transform(\n `").concat(code, "`,\n {\n presets: ['react'],\n filename: 'dynamic.jsx'\n }\n ).code;\n\n // Create a blob URL for the transformed code\n const blob = new Blob([transformedCode], { type: 'text/javascript' });\n const moduleUrl = URL.createObjectURL(blob);\n\n // Import the component\n const { default: UserComponent } = await import(moduleUrl);\n\n // Set up the root and store it\n const container = document.getElementById('root');\n const root = createRoot(container);\n window.rootRef = root;\n\n window.parent.postMessage({ \n type: 'LOADING_COMPLETE',\n elementId: window.elementId\n }, '*');\n\n // Handle resize\n const resizeObserver = new ResizeObserver(entries => {\n const height = entries[0].contentRect.height;\n window.parent.postMessage({ \n type: 'resize', \n height,\n elementId: window.elementId\n }, '*');\n });\n \n resizeObserver.observe(container);\n\n // Store references for updates\n window.React = React;\n window.UserComponent = UserComponent;\n } catch (err) {\n console.error('Error:', err);\n window.parent.postMessage({ \n type: 'error',\n error: `${err.name}: ${err.message}`,\n elementId: window.elementId\n }, '*');\n }\n })();\n </script>\n </head>\n <body>\n <div id=\"root\"></div>\n </body>\n</html>\n"); };
80
+
81
+ function useCustomComponentIframe(_a) {
82
+ var _this = this;
83
+ var componentCode = _a.componentCode, elementId = _a.elementId, value = _a.value, onChange = _a.onChange, customProps = _a.customProps;
84
+ var iframeRef = useRef(null);
85
+ var rootRef = useRef(null);
86
+ var _b = __read(useState(null), 2), error = _b[0], setError = _b[1];
87
+ var _c = __read(useState(true), 2), loading = _c[0], setLoading = _c[1];
88
+ var renderComponent = function (overrideLoading) {
89
+ var _a, _b;
90
+ if (overrideLoading === void 0) { overrideLoading = false; }
91
+ var iframe = iframeRef.current;
92
+ if (!iframe || !rootRef.current || (loading && !overrideLoading))
93
+ return;
94
+ var root = rootRef.current;
95
+ var React = (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.React;
96
+ var UserComponent = (_b = iframe.contentWindow) === null || _b === void 0 ? void 0 : _b.UserComponent;
97
+ if (React && UserComponent) {
98
+ var handleChange = function (newValue) {
99
+ var _a;
100
+ (_a = iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.parent.postMessage({
101
+ type: 'valueChange',
102
+ value: newValue,
103
+ elementId: elementId
104
+ }, featheryWindow().location.origin);
105
+ };
106
+ root.render(React.createElement(React.StrictMode, null, React.createElement(UserComponent, __assign({ value: value, onChange: handleChange }, customProps))));
107
+ }
108
+ };
109
+ // Create iframe whenever code changes
110
+ useEffect(function () {
111
+ var setupIframe = function () { return __awaiter(_this, void 0, void 0, function () {
112
+ var iframe, template, handleMessage_1, error_1;
113
+ return __generator(this, function (_a) {
114
+ iframe = iframeRef.current;
115
+ if (!iframe)
116
+ return [2 /*return*/];
117
+ try {
118
+ setLoading(true);
119
+ template = createTemplate(componentCode, value, elementId);
120
+ handleMessage_1 = function (event) {
121
+ var _a, _b, _c, _d, _e;
122
+ // Verify the message is intended for this element
123
+ if (((_a = event.data) === null || _a === void 0 ? void 0 : _a.elementId) !== elementId)
124
+ return;
125
+ if (event.data.type === 'LOADING_COMPLETE') {
126
+ setLoading(false);
127
+ setError(null);
128
+ rootRef.current = (_b = iframe.contentWindow) === null || _b === void 0 ? void 0 : _b.rootRef;
129
+ renderComponent(true);
130
+ }
131
+ else if ((_c = event.data) === null || _c === void 0 ? void 0 : _c.error) {
132
+ setError(event.data.error);
133
+ setLoading(false);
134
+ }
135
+ else if (((_d = event.data) === null || _d === void 0 ? void 0 : _d.type) === 'resize' && iframe) {
136
+ iframe.style.height = "".concat(event.data.height, "px");
137
+ }
138
+ else if (((_e = event.data) === null || _e === void 0 ? void 0 : _e.type) === 'valueChange') {
139
+ onChange === null || onChange === void 0 ? void 0 : onChange(event.data.value);
140
+ }
141
+ };
142
+ featheryWindow().addEventListener('message', handleMessage_1);
143
+ iframe.srcdoc = template;
144
+ return [2 /*return*/, function () {
145
+ featheryWindow().removeEventListener('message', handleMessage_1);
146
+ }];
147
+ }
148
+ catch (err) {
149
+ error_1 = err;
150
+ setError(error_1.message);
151
+ setLoading(false);
152
+ }
153
+ return [2 /*return*/];
154
+ });
155
+ }); };
156
+ setupIframe();
157
+ }, [componentCode]);
158
+ // Update component props when value changes
159
+ useEffect(function () {
160
+ renderComponent();
161
+ }, [value, loading, customProps]);
162
+ return {
163
+ iframeRef: iframeRef,
164
+ error: error,
165
+ loading: loading
166
+ };
167
+ }
168
+
169
+ var CustomField = function (_a) {
170
+ var _b;
171
+ var element = _a.element, _c = _a.elementProps, elementProps = _c === void 0 ? {} : _c, responsiveStyles = _a.responsiveStyles, onChange = _a.onChange, rawValue = _a.rawValue, required = _a.required, disabled = _a.disabled, fieldStyles = _a.fieldStyles, editMode = _a.editMode, rightToLeft = _a.rightToLeft, index = _a.index;
172
+ var componentCode = element.servar.metadata.code;
173
+ var isCodeEmpty = !componentCode || componentCode.trim() === '';
174
+ var showPlaceholder = isCodeEmpty && editMode;
175
+ var customFieldProps = useMemo(function () {
176
+ var _a;
177
+ return ({
178
+ fieldProperties: {
179
+ description: element.servar.name,
180
+ required: required,
181
+ disabled: disabled,
182
+ custom: ((_a = element.servar.metadata) === null || _a === void 0 ? void 0 : _a.custom) || {},
183
+ aria_label: element.properties.aria_label
184
+ },
185
+ fieldStyles: fieldStyles || {},
186
+ formContext: {
187
+ rightToLeft: rightToLeft || false,
188
+ editMode: editMode || false
189
+ }
190
+ });
191
+ }, [
192
+ required,
193
+ disabled,
194
+ fieldStyles,
195
+ rightToLeft,
196
+ editMode,
197
+ (_b = element.servar.metadata) === null || _b === void 0 ? void 0 : _b.custom
198
+ ]);
199
+ var _d = useCustomComponentIframe({
200
+ componentCode: element.servar.metadata.code,
201
+ elementId: index != null ? "".concat(element.id, "[").concat(index, "]") : element.id,
202
+ value: rawValue,
203
+ onChange: onChange,
204
+ customProps: customFieldProps
205
+ }), iframeRef = _d.iframeRef, error = _d.error, loading = _d.loading;
206
+ return (jsxs("div", __assign({ css: __assign({ maxWidth: '100%', width: '100%', height: 'auto', position: 'relative', pointerEvents: editMode ? 'none' : 'auto' }, responsiveStyles === null || responsiveStyles === void 0 ? void 0 : responsiveStyles.getTarget('fc')) }, elementProps, { children: [showPlaceholder ? (jsx(Status.Placeholder, {})) : (jsxs(Fragment, { children: [error && jsx(Status.Error, { error: error }), loading && jsx(Status.Loading, {}), jsx("iframe", { ref: iframeRef, sandbox: 'allow-scripts allow-same-origin', style: {
207
+ width: '100%',
208
+ border: 'none',
209
+ backgroundColor: 'transparent',
210
+ overflow: 'hidden',
211
+ display: 'block'
212
+ } })] })), jsx(ErrorInput, { id: element.servar.key, name: element.servar.key, "aria-label": element.properties.aria_label })] })));
213
+ };
214
+ var index = memo(CustomField);
215
+
216
+ export { index as default };