@123usmanhaider321/ui 0.1.8 → 1.0.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 (545) hide show
  1. package/README.md +416 -31
  2. package/dist/images/icon/1LINK.svg +50 -0
  3. package/dist/images/icon/CreditCard.svg +83 -0
  4. package/dist/images/icon/Easypaisa.png +0 -0
  5. package/dist/images/icon/MobileWallet.png +0 -0
  6. package/dist/images/icon/Raast-Logo.png +0 -0
  7. package/dist/images/icon/VISA.png +0 -0
  8. package/dist/images/icon/add-circle-1.svg +5 -0
  9. package/dist/images/icon/check-circle-broken.svg +3 -0
  10. package/dist/images/icon/close-circle.svg +5 -0
  11. package/dist/images/icon/jazzcash.png +0 -0
  12. package/dist/images/icon/loading_icon.json +3347 -0
  13. package/dist/images/icon/mastercard-logo.webp +0 -0
  14. package/dist/images/icon/paymo.jpeg +0 -0
  15. package/dist/images/icon/preview-svgrepo-com.svg +36 -0
  16. package/dist/images/icon/trash.svg +7 -0
  17. package/dist/images/icon/unionpay-logo.svg +9 -0
  18. package/dist/index-BLoegwT6.js +60476 -0
  19. package/dist/index-BLoegwT6.js.map +1 -0
  20. package/dist/index-CPnu5V8f.js +11119 -0
  21. package/dist/index-CPnu5V8f.js.map +1 -0
  22. package/dist/index.d.ts +1 -10
  23. package/dist/index.es-C5pDhGOr.js +16734 -0
  24. package/dist/index.es-C5pDhGOr.js.map +1 -0
  25. package/dist/index.js +40 -12
  26. package/dist/index.js.map +1 -1
  27. package/dist/loading_icon-n5H5dQBl.js +3375 -0
  28. package/dist/loading_icon-n5H5dQBl.js.map +1 -0
  29. package/dist/src/components/Alert/ErrorAlert.d.ts +6 -0
  30. package/dist/src/components/Alert/SuccessAlert.d.ts +6 -0
  31. package/dist/{components → src/components}/FormBuilder/DiscountInput.d.ts +3 -6
  32. package/dist/{components → src/components}/FormBuilder/FormBuilder.d.ts +2 -11
  33. package/dist/{components → src/components}/FormBuilder/QuestionCard.d.ts +0 -5
  34. package/dist/{components → src/components}/FormBuilder/QuestionEditor.d.ts +0 -5
  35. package/dist/{components → src/components}/FormBuilder/SortableQuestionList.d.ts +0 -5
  36. package/dist/src/components/FormBuilder/questionIcons.d.ts +5 -0
  37. package/dist/{components/EventAddForm → src/components/NewAddEvent}/AddEventLayout.d.ts +2 -1
  38. package/dist/{components/EventAddForm → src/components/NewAddEvent}/AddEventStepper.d.ts +2 -2
  39. package/dist/{components/EventAddForm → src/components/NewAddEvent}/common/ConfirmationModal.d.ts +1 -1
  40. package/dist/src/components/NewAddEvent/components/EventSubmissionConfirmationModal.d.ts +14 -0
  41. package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/StepTwo/TicketTierSection.d.ts +1 -1
  42. package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/TicketTierForm.d.ts +1 -1
  43. package/dist/{components/EventAddForm → src/components/NewAddEvent}/hooks/useStepperForm.d.ts +22 -22
  44. package/dist/{components/EventAddForm → src/components/NewAddEvent}/hooks/useTicketTierForm.d.ts +63 -15
  45. package/dist/src/components/NewAddEvent/schemas/step1.d.ts +211 -0
  46. package/dist/src/components/NewAddEvent/schemas/step2.d.ts +411 -0
  47. package/dist/{components/EventAddForm → src/components/NewAddEvent}/schemas/utils.d.ts +8 -2
  48. package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/IndividualFormStep.d.ts +1 -1
  49. package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/SocialProfilesStep.d.ts +1 -1
  50. package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/TeamFormStep.d.ts +1 -1
  51. package/dist/src/components/Spinner/spinner.d.ts +4 -0
  52. package/dist/src/components/TicketlyUIProvider.d.ts +35 -0
  53. package/dist/src/components/common/Loader/index.d.ts +8 -0
  54. package/dist/src/components/common/Modals/ConfirmationModal.d.ts +7 -0
  55. package/dist/{components/FormInput → src/components/ui}/FormInput.d.ts +1 -1
  56. package/dist/src/components/ui/Loader.d.ts +4 -0
  57. package/dist/{components/Button/Button.d.ts → src/components/ui/button.d.ts} +1 -1
  58. package/dist/src/index.d.ts +10 -0
  59. package/dist/{lib → src/lib}/actions.d.ts +0 -126
  60. package/dist/src/lib/dom-utils.d.ts +2 -0
  61. package/dist/src/lib/storage-utils.d.ts +5 -0
  62. package/dist/src/lib/types.d.ts +258 -0
  63. package/dist/src/redux/baseQuery.d.ts +16 -0
  64. package/dist/{services → src/redux/features}/eventApi.d.ts +1053 -1745
  65. package/dist/src/redux/features/globalSlice.d.ts +17 -0
  66. package/dist/{services → src/redux/features/single-event}/single-event-api.d.ts +856 -1190
  67. package/dist/src/redux/types.d.ts +2 -0
  68. package/dist/src/services/library-services.d.ts +15 -0
  69. package/dist/src/services/remote-config.d.ts +27 -0
  70. package/dist/{services → src/services}/utils.d.ts +1 -1
  71. package/dist/src/theme/colors.d.ts +127 -0
  72. package/dist/src/theme/typography.d.ts +13 -0
  73. package/dist/src/types/api.d.ts +18 -0
  74. package/dist/style.css +2984 -0
  75. package/dist/styles.css +3760 -4014
  76. package/package.json +78 -68
  77. package/dist/_virtual/_commonjsHelpers.js +0 -9
  78. package/dist/_virtual/_commonjsHelpers.js.map +0 -1
  79. package/dist/_virtual/customParseFormat.js +0 -5
  80. package/dist/_virtual/customParseFormat.js.map +0 -1
  81. package/dist/_virtual/dayjs.min.js +0 -5
  82. package/dist/_virtual/dayjs.min.js.map +0 -1
  83. package/dist/_virtual/duration.js +0 -5
  84. package/dist/_virtual/duration.js.map +0 -1
  85. package/dist/_virtual/index.js +0 -5
  86. package/dist/_virtual/index.js.map +0 -1
  87. package/dist/_virtual/isBetween.js +0 -5
  88. package/dist/_virtual/isBetween.js.map +0 -1
  89. package/dist/_virtual/relativeTime.js +0 -5
  90. package/dist/_virtual/relativeTime.js.map +0 -1
  91. package/dist/_virtual/use-sync-external-store-shim.development.js +0 -5
  92. package/dist/_virtual/use-sync-external-store-shim.development.js.map +0 -1
  93. package/dist/_virtual/use-sync-external-store-shim.production.js +0 -5
  94. package/dist/_virtual/use-sync-external-store-shim.production.js.map +0 -1
  95. package/dist/_virtual/with-selector.development.js +0 -5
  96. package/dist/_virtual/with-selector.development.js.map +0 -1
  97. package/dist/_virtual/with-selector.js +0 -5
  98. package/dist/_virtual/with-selector.js.map +0 -1
  99. package/dist/_virtual/with-selector.production.js +0 -5
  100. package/dist/_virtual/with-selector.production.js.map +0 -1
  101. package/dist/components/Alert/Alert.js +0 -51
  102. package/dist/components/Alert/Alert.js.map +0 -1
  103. package/dist/components/Button/Button.js +0 -52
  104. package/dist/components/Button/Button.js.map +0 -1
  105. package/dist/components/Button/Button.test.d.ts +0 -1
  106. package/dist/components/Button/index.d.ts +0 -1
  107. package/dist/components/Checkbox/Checkbox.js +0 -50
  108. package/dist/components/Checkbox/Checkbox.js.map +0 -1
  109. package/dist/components/Checkbox/Checkbox.test.d.ts +0 -1
  110. package/dist/components/Checkbox/index.d.ts +0 -1
  111. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +0 -25
  112. package/dist/components/CheckboxGroup/CheckboxGroup.js +0 -99
  113. package/dist/components/CheckboxGroup/CheckboxGroup.js.map +0 -1
  114. package/dist/components/ConfirmationModal/ConfirmationModal.d.ts +0 -15
  115. package/dist/components/ConfirmationModal/ConfirmationModal.js +0 -136
  116. package/dist/components/ConfirmationModal/ConfirmationModal.js.map +0 -1
  117. package/dist/components/ConfirmationModal/index.d.ts +0 -2
  118. package/dist/components/CustomSelect/CustomSelect.js +0 -259
  119. package/dist/components/CustomSelect/CustomSelect.js.map +0 -1
  120. package/dist/components/EventAddForm/AddEventLayout.js +0 -227
  121. package/dist/components/EventAddForm/AddEventLayout.js.map +0 -1
  122. package/dist/components/EventAddForm/AddEventStepper.js +0 -719
  123. package/dist/components/EventAddForm/AddEventStepper.js.map +0 -1
  124. package/dist/components/EventAddForm/common/ConfirmationModal.js +0 -136
  125. package/dist/components/EventAddForm/common/ConfirmationModal.js.map +0 -1
  126. package/dist/components/EventAddForm/common/DescriptionModal.js +0 -70
  127. package/dist/components/EventAddForm/common/DescriptionModal.js.map +0 -1
  128. package/dist/components/EventAddForm/components/AnimatedBackground.d.ts +0 -8
  129. package/dist/components/EventAddForm/components/ApprovalConfirmationModal.d.ts +0 -7
  130. package/dist/components/EventAddForm/components/CheckboxGroup.js +0 -92
  131. package/dist/components/EventAddForm/components/CheckboxGroup.js.map +0 -1
  132. package/dist/components/EventAddForm/components/CustomMeetingForm.js +0 -237
  133. package/dist/components/EventAddForm/components/CustomMeetingForm.js.map +0 -1
  134. package/dist/components/EventAddForm/components/DateTimeField.js +0 -173
  135. package/dist/components/EventAddForm/components/DateTimeField.js.map +0 -1
  136. package/dist/components/EventAddForm/components/EventSubmissionConfirmationModal.d.ts +0 -33
  137. package/dist/components/EventAddForm/components/EventSubmissionConfirmationModal.js +0 -366
  138. package/dist/components/EventAddForm/components/EventSubmissionConfirmationModal.js.map +0 -1
  139. package/dist/components/EventAddForm/components/FileUpload.js +0 -412
  140. package/dist/components/EventAddForm/components/FileUpload.js.map +0 -1
  141. package/dist/components/EventAddForm/components/FormBuilderProceedModal.js +0 -197
  142. package/dist/components/EventAddForm/components/FormBuilderProceedModal.js.map +0 -1
  143. package/dist/components/EventAddForm/components/GoogleMapsAutocompleteInput.js +0 -1179
  144. package/dist/components/EventAddForm/components/GoogleMapsAutocompleteInput.js.map +0 -1
  145. package/dist/components/EventAddForm/components/InputField.d.ts +0 -15
  146. package/dist/components/EventAddForm/components/RadioGroupButton.d.ts +0 -14
  147. package/dist/components/EventAddForm/components/SelectField.d.ts +0 -19
  148. package/dist/components/EventAddForm/components/SingleDateTimeInput.js +0 -102
  149. package/dist/components/EventAddForm/components/SingleDateTimeInput.js.map +0 -1
  150. package/dist/components/EventAddForm/components/StepTwo/CustomFormSection.js +0 -277
  151. package/dist/components/EventAddForm/components/StepTwo/CustomFormSection.js.map +0 -1
  152. package/dist/components/EventAddForm/components/StepTwo/TicketTierSection.js +0 -148
  153. package/dist/components/EventAddForm/components/StepTwo/TicketTierSection.js.map +0 -1
  154. package/dist/components/EventAddForm/components/TicketTierForm.js +0 -418
  155. package/dist/components/EventAddForm/components/TicketTierForm.js.map +0 -1
  156. package/dist/components/EventAddForm/components/TicketTypeSelection.js +0 -93
  157. package/dist/components/EventAddForm/components/TicketTypeSelection.js.map +0 -1
  158. package/dist/components/EventAddForm/hooks/useStepperForm.js +0 -371
  159. package/dist/components/EventAddForm/hooks/useStepperForm.js.map +0 -1
  160. package/dist/components/EventAddForm/hooks/useTicketTierForm.js +0 -237
  161. package/dist/components/EventAddForm/hooks/useTicketTierForm.js.map +0 -1
  162. package/dist/components/EventAddForm/index.d.ts +0 -3
  163. package/dist/components/EventAddForm/index.js +0 -41
  164. package/dist/components/EventAddForm/index.js.map +0 -1
  165. package/dist/components/EventAddForm/schemas/index.d.ts +0 -2
  166. package/dist/components/EventAddForm/schemas/step1.d.ts +0 -47
  167. package/dist/components/EventAddForm/schemas/step1.js +0 -135
  168. package/dist/components/EventAddForm/schemas/step1.js.map +0 -1
  169. package/dist/components/EventAddForm/schemas/step2.d.ts +0 -138
  170. package/dist/components/EventAddForm/schemas/step2.js +0 -94
  171. package/dist/components/EventAddForm/schemas/step2.js.map +0 -1
  172. package/dist/components/EventAddForm/schemas/utils.js +0 -28
  173. package/dist/components/EventAddForm/schemas/utils.js.map +0 -1
  174. package/dist/components/EventAddForm/steps/IndividualFormStep.js +0 -85
  175. package/dist/components/EventAddForm/steps/IndividualFormStep.js.map +0 -1
  176. package/dist/components/EventAddForm/steps/SocialProfilesStep.js +0 -123
  177. package/dist/components/EventAddForm/steps/SocialProfilesStep.js.map +0 -1
  178. package/dist/components/EventAddForm/steps/StepOne.js +0 -462
  179. package/dist/components/EventAddForm/steps/StepOne.js.map +0 -1
  180. package/dist/components/EventAddForm/steps/StepTwo.js +0 -173
  181. package/dist/components/EventAddForm/steps/StepTwo.js.map +0 -1
  182. package/dist/components/EventAddForm/steps/TeamFormStep.js +0 -13
  183. package/dist/components/EventAddForm/steps/TeamFormStep.js.map +0 -1
  184. package/dist/components/FormBuilder/CategoryList.js +0 -242
  185. package/dist/components/FormBuilder/CategoryList.js.map +0 -1
  186. package/dist/components/FormBuilder/DiscountInput.js +0 -366
  187. package/dist/components/FormBuilder/DiscountInput.js.map +0 -1
  188. package/dist/components/FormBuilder/FormBuilder.js +0 -918
  189. package/dist/components/FormBuilder/FormBuilder.js.map +0 -1
  190. package/dist/components/FormBuilder/OptionList.js +0 -120
  191. package/dist/components/FormBuilder/OptionList.js.map +0 -1
  192. package/dist/components/FormBuilder/PaymentPreview.d.ts +0 -12
  193. package/dist/components/FormBuilder/PaymentPreview.js +0 -70
  194. package/dist/components/FormBuilder/PaymentPreview.js.map +0 -1
  195. package/dist/components/FormBuilder/PreviewInput.d.ts +0 -10
  196. package/dist/components/FormBuilder/PreviewInput.js +0 -143
  197. package/dist/components/FormBuilder/PreviewInput.js.map +0 -1
  198. package/dist/components/FormBuilder/QuestionCard.js +0 -252
  199. package/dist/components/FormBuilder/QuestionCard.js.map +0 -1
  200. package/dist/components/FormBuilder/QuestionEditor.js +0 -166
  201. package/dist/components/FormBuilder/QuestionEditor.js.map +0 -1
  202. package/dist/components/FormBuilder/RequiredToggle.js +0 -43
  203. package/dist/components/FormBuilder/RequiredToggle.js.map +0 -1
  204. package/dist/components/FormBuilder/SortableQuestionList.js +0 -137
  205. package/dist/components/FormBuilder/SortableQuestionList.js.map +0 -1
  206. package/dist/components/FormBuilder/index.d.ts +0 -4
  207. package/dist/components/FormBuilder/utils.js +0 -229
  208. package/dist/components/FormBuilder/utils.js.map +0 -1
  209. package/dist/components/FormInput/FormInput.js +0 -126
  210. package/dist/components/FormInput/FormInput.js.map +0 -1
  211. package/dist/components/FormInput/FormInput.test.d.ts +0 -1
  212. package/dist/components/FormInput/index.d.ts +0 -2
  213. package/dist/components/ImageCropModal/index.js +0 -464
  214. package/dist/components/ImageCropModal/index.js.map +0 -1
  215. package/dist/components/InformationPopover/InformationPopover.d.ts +0 -7
  216. package/dist/components/InformationPopover/InformationPopover.js +0 -19
  217. package/dist/components/InformationPopover/InformationPopover.js.map +0 -1
  218. package/dist/components/InformationPopover.js +0 -19
  219. package/dist/components/InformationPopover.js.map +0 -1
  220. package/dist/components/InputErrorMessage/InputErrorMessage.js +0 -21
  221. package/dist/components/InputErrorMessage/InputErrorMessage.js.map +0 -1
  222. package/dist/components/Modal/Modal.d.ts +0 -15
  223. package/dist/components/Modal/Modal.js +0 -73
  224. package/dist/components/Modal/Modal.js.map +0 -1
  225. package/dist/components/Radio/Radio.js +0 -35
  226. package/dist/components/Radio/Radio.js.map +0 -1
  227. package/dist/components/Spinner/spinner.d.ts +0 -2
  228. package/dist/components/Spinner/spinner.js +0 -22
  229. package/dist/components/Spinner/spinner.js.map +0 -1
  230. package/dist/components/Toggle/Toggle.d.ts +0 -16
  231. package/dist/components/Toggle/index.d.ts +0 -2
  232. package/dist/components/Tooltip/Tooltip.d.ts +0 -12
  233. package/dist/components/Tooltip/Tooltip.js +0 -134
  234. package/dist/components/Tooltip/Tooltip.js.map +0 -1
  235. package/dist/components/common/FallbackImage.js +0 -47
  236. package/dist/components/common/FallbackImage.js.map +0 -1
  237. package/dist/components/ui/Calendar/calendar-utils.js +0 -51
  238. package/dist/components/ui/Calendar/calendar-utils.js.map +0 -1
  239. package/dist/components/ui/Calendar/index.js +0 -142
  240. package/dist/components/ui/Calendar/index.js.map +0 -1
  241. package/dist/components/ui/Checkbox.d.ts +0 -9
  242. package/dist/components/ui/Checkbox.js +0 -50
  243. package/dist/components/ui/Checkbox.js.map +0 -1
  244. package/dist/components/ui/DatePicker/index.js +0 -188
  245. package/dist/components/ui/DatePicker/index.js.map +0 -1
  246. package/dist/components/ui/FormInput.js +0 -129
  247. package/dist/components/ui/FormInput.js.map +0 -1
  248. package/dist/components/ui/InputErrorMessage.d.ts +0 -7
  249. package/dist/components/ui/InputErrorMessage.js +0 -21
  250. package/dist/components/ui/InputErrorMessage.js.map +0 -1
  251. package/dist/components/ui/Modal/index.js +0 -73
  252. package/dist/components/ui/Modal/index.js.map +0 -1
  253. package/dist/components/ui/Radio.d.ts +0 -6
  254. package/dist/components/ui/Radio.js +0 -35
  255. package/dist/components/ui/Radio.js.map +0 -1
  256. package/dist/components/ui/RichTextEditor.js +0 -242
  257. package/dist/components/ui/RichTextEditor.js.map +0 -1
  258. package/dist/components/ui/TimePicker/index.js +0 -215
  259. package/dist/components/ui/TimePicker/index.js.map +0 -1
  260. package/dist/components/ui/TimeSelector/index.js +0 -138
  261. package/dist/components/ui/TimeSelector/index.js.map +0 -1
  262. package/dist/components/ui/Tooltip.d.ts +0 -12
  263. package/dist/components/ui/Tooltip.js +0 -136
  264. package/dist/components/ui/Tooltip.js.map +0 -1
  265. package/dist/hooks/useDropdownPosition.d.ts +0 -11
  266. package/dist/hooks/useFirebaseAuthState.d.ts +0 -6
  267. package/dist/hooks/useFirebaseAuthState.js +0 -23
  268. package/dist/hooks/useFirebaseAuthState.js.map +0 -1
  269. package/dist/hooks/useTicketTierForm.d.ts +0 -61
  270. package/dist/lib/actions.js +0 -32
  271. package/dist/lib/actions.js.map +0 -1
  272. package/dist/lib/cropImage.js +0 -113
  273. package/dist/lib/cropImage.js.map +0 -1
  274. package/dist/lib/imageAnalysis.js +0 -58
  275. package/dist/lib/imageAnalysis.js.map +0 -1
  276. package/dist/lib/utils.js +0 -9
  277. package/dist/lib/utils.js.map +0 -1
  278. package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +0 -60
  279. package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js.map +0 -1
  280. package/dist/node_modules/@dnd-kit/core/dist/core.esm.js +0 -3458
  281. package/dist/node_modules/@dnd-kit/core/dist/core.esm.js.map +0 -1
  282. package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +0 -593
  283. package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js.map +0 -1
  284. package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +0 -302
  285. package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js.map +0 -1
  286. package/dist/node_modules/@firebase/app/dist/esm/index.esm.js +0 -768
  287. package/dist/node_modules/@firebase/app/dist/esm/index.esm.js.map +0 -1
  288. package/dist/node_modules/@firebase/component/dist/esm/index.esm.js +0 -340
  289. package/dist/node_modules/@firebase/component/dist/esm/index.esm.js.map +0 -1
  290. package/dist/node_modules/@firebase/logger/dist/esm/index.esm.js +0 -123
  291. package/dist/node_modules/@firebase/logger/dist/esm/index.esm.js.map +0 -1
  292. package/dist/node_modules/@firebase/storage/dist/index.esm.js +0 -2623
  293. package/dist/node_modules/@firebase/storage/dist/index.esm.js.map +0 -1
  294. package/dist/node_modules/@firebase/util/dist/index.esm.js +0 -658
  295. package/dist/node_modules/@firebase/util/dist/index.esm.js.map +0 -1
  296. package/dist/node_modules/@firebase/util/dist/postinstall.js +0 -5
  297. package/dist/node_modules/@firebase/util/dist/postinstall.js.map +0 -1
  298. package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.js +0 -3179
  299. package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.js.map +0 -1
  300. package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.js +0 -60
  301. package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.js.map +0 -1
  302. package/dist/node_modules/@fortawesome/react-fontawesome/dist/index.js +0 -400
  303. package/dist/node_modules/@fortawesome/react-fontawesome/dist/index.js.map +0 -1
  304. package/dist/node_modules/@heroicons/react/20/solid/esm/CheckIcon.js +0 -27
  305. package/dist/node_modules/@heroicons/react/20/solid/esm/CheckIcon.js.map +0 -1
  306. package/dist/node_modules/@heroicons/react/20/solid/esm/ChevronDownIcon.js +0 -27
  307. package/dist/node_modules/@heroicons/react/20/solid/esm/ChevronDownIcon.js.map +0 -1
  308. package/dist/node_modules/@heroicons/react/24/outline/esm/ArrowRightIcon.js +0 -29
  309. package/dist/node_modules/@heroicons/react/24/outline/esm/ArrowRightIcon.js.map +0 -1
  310. package/dist/node_modules/@heroicons/react/24/outline/esm/ClockIcon.js +0 -29
  311. package/dist/node_modules/@heroicons/react/24/outline/esm/ClockIcon.js.map +0 -1
  312. package/dist/node_modules/@heroicons/react/24/outline/esm/DocumentDuplicateIcon.js +0 -29
  313. package/dist/node_modules/@heroicons/react/24/outline/esm/DocumentDuplicateIcon.js.map +0 -1
  314. package/dist/node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js +0 -29
  315. package/dist/node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js.map +0 -1
  316. package/dist/node_modules/@heroicons/react/24/outline/esm/LinkIcon.js +0 -29
  317. package/dist/node_modules/@heroicons/react/24/outline/esm/LinkIcon.js.map +0 -1
  318. package/dist/node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js +0 -29
  319. package/dist/node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js.map +0 -1
  320. package/dist/node_modules/@heroicons/react/24/outline/esm/MapPinIcon.js +0 -33
  321. package/dist/node_modules/@heroicons/react/24/outline/esm/MapPinIcon.js.map +0 -1
  322. package/dist/node_modules/@heroicons/react/24/outline/esm/VideoCameraIcon.js +0 -29
  323. package/dist/node_modules/@heroicons/react/24/outline/esm/VideoCameraIcon.js.map +0 -1
  324. package/dist/node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js +0 -29
  325. package/dist/node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js.map +0 -1
  326. package/dist/node_modules/@tiptap/core/dist/index.js +0 -5446
  327. package/dist/node_modules/@tiptap/core/dist/index.js.map +0 -1
  328. package/dist/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js +0 -21
  329. package/dist/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js.map +0 -1
  330. package/dist/node_modules/@tiptap/extension-blockquote/dist/index.js +0 -78
  331. package/dist/node_modules/@tiptap/extension-blockquote/dist/index.js.map +0 -1
  332. package/dist/node_modules/@tiptap/extension-bold/dist/index.js +0 -100
  333. package/dist/node_modules/@tiptap/extension-bold/dist/index.js.map +0 -1
  334. package/dist/node_modules/@tiptap/extension-code/dist/index.js +0 -70
  335. package/dist/node_modules/@tiptap/extension-code/dist/index.js.map +0 -1
  336. package/dist/node_modules/@tiptap/extension-code-block/dist/index.js +0 -317
  337. package/dist/node_modules/@tiptap/extension-code-block/dist/index.js.map +0 -1
  338. package/dist/node_modules/@tiptap/extension-document/dist/index.js +0 -16
  339. package/dist/node_modules/@tiptap/extension-document/dist/index.js.map +0 -1
  340. package/dist/node_modules/@tiptap/extension-hard-break/dist/index.js +0 -66
  341. package/dist/node_modules/@tiptap/extension-hard-break/dist/index.js.map +0 -1
  342. package/dist/node_modules/@tiptap/extension-heading/dist/index.js +0 -86
  343. package/dist/node_modules/@tiptap/extension-heading/dist/index.js.map +0 -1
  344. package/dist/node_modules/@tiptap/extension-horizontal-rule/dist/index.js +0 -80
  345. package/dist/node_modules/@tiptap/extension-horizontal-rule/dist/index.js.map +0 -1
  346. package/dist/node_modules/@tiptap/extension-italic/dist/index.js +0 -98
  347. package/dist/node_modules/@tiptap/extension-italic/dist/index.js.map +0 -1
  348. package/dist/node_modules/@tiptap/extension-link/dist/index.js +0 -423
  349. package/dist/node_modules/@tiptap/extension-link/dist/index.js.map +0 -1
  350. package/dist/node_modules/@tiptap/extension-list/dist/index.js +0 -1039
  351. package/dist/node_modules/@tiptap/extension-list/dist/index.js.map +0 -1
  352. package/dist/node_modules/@tiptap/extension-paragraph/dist/index.js +0 -61
  353. package/dist/node_modules/@tiptap/extension-paragraph/dist/index.js.map +0 -1
  354. package/dist/node_modules/@tiptap/extension-placeholder/dist/index.js +0 -7
  355. package/dist/node_modules/@tiptap/extension-placeholder/dist/index.js.map +0 -1
  356. package/dist/node_modules/@tiptap/extension-strike/dist/index.js +0 -79
  357. package/dist/node_modules/@tiptap/extension-strike/dist/index.js.map +0 -1
  358. package/dist/node_modules/@tiptap/extension-text/dist/index.js +0 -16
  359. package/dist/node_modules/@tiptap/extension-text/dist/index.js.map +0 -1
  360. package/dist/node_modules/@tiptap/extension-underline/dist/index.js +0 -76
  361. package/dist/node_modules/@tiptap/extension-underline/dist/index.js.map +0 -1
  362. package/dist/node_modules/@tiptap/extensions/dist/index.js +0 -376
  363. package/dist/node_modules/@tiptap/extensions/dist/index.js.map +0 -1
  364. package/dist/node_modules/@tiptap/react/dist/index.js +0 -650
  365. package/dist/node_modules/@tiptap/react/dist/index.js.map +0 -1
  366. package/dist/node_modules/@tiptap/starter-kit/dist/index.js +0 -97
  367. package/dist/node_modules/@tiptap/starter-kit/dist/index.js.map +0 -1
  368. package/dist/node_modules/dayjs/dayjs.min.js +0 -283
  369. package/dist/node_modules/dayjs/dayjs.min.js.map +0 -1
  370. package/dist/node_modules/dayjs/plugin/customParseFormat.js +0 -130
  371. package/dist/node_modules/dayjs/plugin/customParseFormat.js.map +0 -1
  372. package/dist/node_modules/dayjs/plugin/duration.js +0 -137
  373. package/dist/node_modules/dayjs/plugin/duration.js.map +0 -1
  374. package/dist/node_modules/dayjs/plugin/isBetween.js +0 -20
  375. package/dist/node_modules/dayjs/plugin/isBetween.js.map +0 -1
  376. package/dist/node_modules/dayjs/plugin/relativeTime.js +0 -49
  377. package/dist/node_modules/dayjs/plugin/relativeTime.js.map +0 -1
  378. package/dist/node_modules/fast-equals/dist/es/index.js +0 -442
  379. package/dist/node_modules/fast-equals/dist/es/index.js.map +0 -1
  380. package/dist/node_modules/idb/build/index.js +0 -70
  381. package/dist/node_modules/idb/build/index.js.map +0 -1
  382. package/dist/node_modules/idb/build/wrap-idb-value.js +0 -149
  383. package/dist/node_modules/idb/build/wrap-idb-value.js.map +0 -1
  384. package/dist/node_modules/linkifyjs/dist/linkify.js +0 -1159
  385. package/dist/node_modules/linkifyjs/dist/linkify.js.map +0 -1
  386. package/dist/node_modules/orderedmap/dist/index.js +0 -120
  387. package/dist/node_modules/orderedmap/dist/index.js.map +0 -1
  388. package/dist/node_modules/prosemirror-commands/dist/index.js +0 -527
  389. package/dist/node_modules/prosemirror-commands/dist/index.js.map +0 -1
  390. package/dist/node_modules/prosemirror-dropcursor/dist/index.js +0 -137
  391. package/dist/node_modules/prosemirror-dropcursor/dist/index.js.map +0 -1
  392. package/dist/node_modules/prosemirror-gapcursor/dist/index.js +0 -221
  393. package/dist/node_modules/prosemirror-gapcursor/dist/index.js.map +0 -1
  394. package/dist/node_modules/prosemirror-history/dist/index.js +0 -357
  395. package/dist/node_modules/prosemirror-history/dist/index.js.map +0 -1
  396. package/dist/node_modules/prosemirror-keymap/dist/index.js +0 -84
  397. package/dist/node_modules/prosemirror-keymap/dist/index.js.map +0 -1
  398. package/dist/node_modules/prosemirror-model/dist/index.js +0 -3209
  399. package/dist/node_modules/prosemirror-model/dist/index.js.map +0 -1
  400. package/dist/node_modules/prosemirror-schema-list/dist/index.js +0 -131
  401. package/dist/node_modules/prosemirror-schema-list/dist/index.js.map +0 -1
  402. package/dist/node_modules/prosemirror-state/dist/index.js +0 -936
  403. package/dist/node_modules/prosemirror-state/dist/index.js.map +0 -1
  404. package/dist/node_modules/prosemirror-transform/dist/index.js +0 -1881
  405. package/dist/node_modules/prosemirror-transform/dist/index.js.map +0 -1
  406. package/dist/node_modules/prosemirror-view/dist/index.js +0 -5232
  407. package/dist/node_modules/prosemirror-view/dist/index.js.map +0 -1
  408. package/dist/node_modules/rope-sequence/dist/index.js +0 -184
  409. package/dist/node_modules/rope-sequence/dist/index.js.map +0 -1
  410. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -82
  411. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -1
  412. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +0 -78
  413. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +0 -1
  414. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +0 -78
  415. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +0 -1
  416. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +0 -63
  417. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +0 -1
  418. package/dist/node_modules/use-sync-external-store/shim/index.js +0 -13
  419. package/dist/node_modules/use-sync-external-store/shim/index.js.map +0 -1
  420. package/dist/node_modules/use-sync-external-store/shim/with-selector.js +0 -13
  421. package/dist/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -1
  422. package/dist/node_modules/w3c-keyname/index.js +0 -106
  423. package/dist/node_modules/w3c-keyname/index.js.map +0 -1
  424. package/dist/node_modules/zod/v4/classic/coerce.js +0 -10
  425. package/dist/node_modules/zod/v4/classic/coerce.js.map +0 -1
  426. package/dist/node_modules/zod/v4/classic/compat.js +0 -8
  427. package/dist/node_modules/zod/v4/classic/compat.js.map +0 -1
  428. package/dist/node_modules/zod/v4/classic/errors.js +0 -45
  429. package/dist/node_modules/zod/v4/classic/errors.js.map +0 -1
  430. package/dist/node_modules/zod/v4/classic/iso.js +0 -44
  431. package/dist/node_modules/zod/v4/classic/iso.js.map +0 -1
  432. package/dist/node_modules/zod/v4/classic/parse.js +0 -30
  433. package/dist/node_modules/zod/v4/classic/parse.js.map +0 -1
  434. package/dist/node_modules/zod/v4/classic/schemas.js +0 -711
  435. package/dist/node_modules/zod/v4/classic/schemas.js.map +0 -1
  436. package/dist/node_modules/zod/v4/core/api.js +0 -588
  437. package/dist/node_modules/zod/v4/core/api.js.map +0 -1
  438. package/dist/node_modules/zod/v4/core/checks.js +0 -411
  439. package/dist/node_modules/zod/v4/core/checks.js.map +0 -1
  440. package/dist/node_modules/zod/v4/core/core.js +0 -75
  441. package/dist/node_modules/zod/v4/core/core.js.map +0 -1
  442. package/dist/node_modules/zod/v4/core/doc.js +0 -38
  443. package/dist/node_modules/zod/v4/core/doc.js.map +0 -1
  444. package/dist/node_modules/zod/v4/core/errors.js +0 -73
  445. package/dist/node_modules/zod/v4/core/errors.js.map +0 -1
  446. package/dist/node_modules/zod/v4/core/json-schema-processors.js +0 -359
  447. package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +0 -1
  448. package/dist/node_modules/zod/v4/core/parse.js +0 -96
  449. package/dist/node_modules/zod/v4/core/parse.js.map +0 -1
  450. package/dist/node_modules/zod/v4/core/regexes.js +0 -84
  451. package/dist/node_modules/zod/v4/core/regexes.js.map +0 -1
  452. package/dist/node_modules/zod/v4/core/registries.js +0 -52
  453. package/dist/node_modules/zod/v4/core/registries.js.map +0 -1
  454. package/dist/node_modules/zod/v4/core/schemas.js +0 -1391
  455. package/dist/node_modules/zod/v4/core/schemas.js.map +0 -1
  456. package/dist/node_modules/zod/v4/core/to-json-schema.js +0 -363
  457. package/dist/node_modules/zod/v4/core/to-json-schema.js.map +0 -1
  458. package/dist/node_modules/zod/v4/core/util.js +0 -431
  459. package/dist/node_modules/zod/v4/core/util.js.map +0 -1
  460. package/dist/node_modules/zod/v4/core/versions.js +0 -9
  461. package/dist/node_modules/zod/v4/core/versions.js.map +0 -1
  462. package/dist/redux/baseQuery.d.ts +0 -1
  463. package/dist/redux/baseQuery.js +0 -24
  464. package/dist/redux/baseQuery.js.map +0 -1
  465. package/dist/services/eventApi.js +0 -411
  466. package/dist/services/eventApi.js.map +0 -1
  467. package/dist/services/helpers.js +0 -115
  468. package/dist/services/helpers.js.map +0 -1
  469. package/dist/services/initialize-firebase.d.ts +0 -2
  470. package/dist/services/initialize-firebase.js +0 -20
  471. package/dist/services/initialize-firebase.js.map +0 -1
  472. package/dist/services/process-image-on-server.js +0 -30
  473. package/dist/services/process-image-on-server.js.map +0 -1
  474. package/dist/services/remote-config.d.ts +0 -5
  475. package/dist/services/remote-config.js +0 -9
  476. package/dist/services/remote-config.js.map +0 -1
  477. package/dist/services/single-event-api.js +0 -301
  478. package/dist/services/single-event-api.js.map +0 -1
  479. package/dist/services/utils.js +0 -107
  480. package/dist/services/utils.js.map +0 -1
  481. package/dist/setupTests.d.ts +0 -1
  482. package/dist/stories/Alert.stories.d.ts +0 -10
  483. package/dist/stories/Button.stories.d.ts +0 -13
  484. package/dist/types/redux-types.d.ts +0 -15
  485. package/dist/types/types.d.ts +0 -60
  486. package/dist/types/types.js +0 -10
  487. package/dist/types/types.js.map +0 -1
  488. package/dist/utils/cn.d.ts +0 -6
  489. package/dist/utils/cn.js +0 -9
  490. package/dist/utils/cn.js.map +0 -1
  491. package/dist/utils/date-range.d.ts +0 -4
  492. package/dist/utils/date-range.js +0 -13
  493. package/dist/utils/date-range.js.map +0 -1
  494. package/dist/utils/single-event-helpers.d.ts +0 -50
  495. package/dist/utils/single-event-helpers.js +0 -18
  496. package/dist/utils/single-event-helpers.js.map +0 -1
  497. package/dist/utils/social-validation.js +0 -42
  498. package/dist/utils/social-validation.js.map +0 -1
  499. package/dist/utils/utils.js +0 -20
  500. package/dist/utils/utils.js.map +0 -1
  501. /package/dist/{components/Alert/Alert.d.ts → src/components/Alert/index.d.ts} +0 -0
  502. /package/dist/{components → src/components}/FormBuilder/CategoryList.d.ts +0 -0
  503. /package/dist/{components → src/components}/FormBuilder/OptionList.d.ts +0 -0
  504. /package/dist/{components → src/components}/FormBuilder/RequiredToggle.d.ts +0 -0
  505. /package/dist/{components → src/components}/FormBuilder/types.d.ts +0 -0
  506. /package/dist/{components → src/components}/FormBuilder/utils.d.ts +0 -0
  507. /package/dist/{components → src/components}/ImageCropModal/index.d.ts +0 -0
  508. /package/dist/{components → src/components}/InformationPopover.d.ts +0 -0
  509. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/common/DescriptionModal.d.ts +0 -0
  510. /package/dist/{components/ui/FormInput.d.ts → src/components/NewAddEvent/components/AddEventFormInput.d.ts} +0 -0
  511. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/CheckboxGroup.d.ts +0 -0
  512. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/CustomMeetingForm.d.ts +0 -0
  513. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/DateTimeField.d.ts +0 -0
  514. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/FileUpload.d.ts +0 -0
  515. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/FormBuilderProceedModal.d.ts +0 -0
  516. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/GoogleMapsAutocompleteInput.d.ts +0 -0
  517. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/SingleDateTimeInput.d.ts +0 -0
  518. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/StepTwo/CustomFormSection.d.ts +0 -0
  519. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/TicketTypeSelection.d.ts +0 -0
  520. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/StepOne.d.ts +0 -0
  521. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/StepTwo.d.ts +0 -0
  522. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/types.d.ts +0 -0
  523. /package/dist/{components → src/components}/common/FallbackImage.d.ts +0 -0
  524. /package/dist/{components → src/components}/ui/Calendar/calendar-utils.d.ts +0 -0
  525. /package/dist/{components → src/components}/ui/Calendar/index.d.ts +0 -0
  526. /package/dist/{components/Checkbox → src/components/ui}/Checkbox.d.ts +0 -0
  527. /package/dist/{components/CustomSelect → src/components/ui}/CustomSelect.d.ts +0 -0
  528. /package/dist/{components → src/components}/ui/DatePicker/index.d.ts +0 -0
  529. /package/dist/{components/InputErrorMessage → src/components/ui}/InputErrorMessage.d.ts +0 -0
  530. /package/dist/{components → src/components}/ui/Modal/index.d.ts +0 -0
  531. /package/dist/{components/Radio → src/components/ui}/Radio.d.ts +0 -0
  532. /package/dist/{components → src/components}/ui/RichTextEditor.d.ts +0 -0
  533. /package/dist/{components → src/components}/ui/TimePicker/index.d.ts +0 -0
  534. /package/dist/{components → src/components}/ui/TimeSelector/index.d.ts +0 -0
  535. /package/dist/{components → src/components}/ui/Tooltip/index.d.ts +0 -0
  536. /package/dist/{lib → src/lib}/constants.d.ts +0 -0
  537. /package/dist/{lib → src/lib}/cropImage.d.ts +0 -0
  538. /package/dist/{lib → src/lib}/imageAnalysis.d.ts +0 -0
  539. /package/dist/{utils → src/lib}/social-validation.d.ts +0 -0
  540. /package/dist/{lib/utils.d.ts → src/lib/tailwind-merge.d.ts} +0 -0
  541. /package/dist/{utils → src/lib}/utils.d.ts +0 -0
  542. /package/dist/{services → src/redux/features/single-event}/helpers.d.ts +0 -0
  543. /package/dist/{services → src/services}/process-image-on-server.d.ts +0 -0
  544. /package/dist/{types → src/types}/events.d.ts +0 -0
  545. /package/dist/{types → src/types}/question.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"AddEventStepper.js","sources":["../../../src/components/EventAddForm/AddEventStepper.tsx"],"sourcesContent":["import { useMemo, memo, useState, useEffect, useCallback, useRef } from 'react';\r\nimport { useStepperForm } from './hooks/useStepperForm';\r\nimport { StepperFormState } from './types';\r\nimport { useRouter } from \"next/navigation\";\r\nimport { AddEventLayout } from './AddEventLayout';\r\nimport StepOne from './steps/StepOne';\r\nimport StepTwo from './steps/StepTwo';\r\nimport IndividualFormStep from './steps/IndividualFormStep';\r\nimport TeamFormStep from './steps/TeamFormStep';\r\nimport { useAddEventMutation, useGetEventDetailsByIdQuery, useUpdateEventMutation, useUpdateEventSocialProfilesMutation } from '@/services/single-event-api';\r\nimport { convertDateFormat } from '@/utils/utils';\r\nimport SocialProfilesStep from './steps/SocialProfilesStep';\r\nimport FormBuilderProceedModal from './components/FormBuilderProceedModal';\r\n\r\nconst BASE_STEPS = [\r\n { id: 1, title: 'Create event' },\r\n { id: 2, title: 'Ticket set up' },\r\n];\r\n\r\ninterface AddEventStepperProps {\r\n edit?: boolean;\r\n id?: string;\r\n organizer_id: string;\r\n onEventCreated?: (id: string) => void;\r\n isClearing?: boolean;\r\n SCOPED_ID_KEY?: string;\r\n SCOPED_FORM_KEY?: string;\r\n isSameQuestionTitleAllowed?: boolean;\r\n closed_loop_id?: string;\r\n initialStep?: number;\r\n mode?: \"questions\" | \"social\" | null;\r\n}\r\n\r\nconst AddEventStepper = ({\r\n edit,\r\n id,\r\n organizer_id,\r\n onEventCreated,\r\n isClearing = false,\r\n SCOPED_ID_KEY = \"\",\r\n SCOPED_FORM_KEY = \"\",\r\n isSameQuestionTitleAllowed,\r\n closed_loop_id,\r\n initialStep,\r\n mode\r\n}: AddEventStepperProps) => {\r\n const router = useRouter();\r\n const [openExitConfirm, setOpenExitConfirm] = useState(false);\r\n\r\n // Use ID from props (managed by parent)\r\n const [localEventId, setLocalEventId] = useState<string | null>(null);\r\n const [isStorageChecked, setIsStorageChecked] = useState(false);\r\n\r\n useEffect(() => {\r\n if (!id && !edit) {\r\n const storedId = localStorage.getItem(SCOPED_ID_KEY);\r\n if (storedId) {\r\n setLocalEventId(storedId);\r\n }\r\n }\r\n setIsStorageChecked(true);\r\n }, [id, edit, SCOPED_ID_KEY]);\r\n\r\n const activeEventId = id || localEventId || null;\r\n\r\n // 2. Fetch Data (only if editing)\r\n const {\r\n data: apiEventData,\r\n isLoading: isFetchingEvent,\r\n isError: isFetchError,\r\n refetch: refetchEventDetails\r\n } = useGetEventDetailsByIdQuery(activeEventId || \"\", {\r\n skip: !activeEventId,\r\n refetchOnMountOrArgChange: true,\r\n refetchOnFocus: false,\r\n refetchOnReconnect: false\r\n });\r\n\r\n\r\n const [openConfirmModal, setOpenConfirmModal] = useState(false);\r\n const [openProceedModal, setOpenProceedModal] = useState(false);\r\n const [isSubmittingData, setIsSubmittingData] = useState(false);\r\n const [isSyncingData, setIsSyncingData] = useState(false);\r\n const [isNavigating, setIsNavigating] = useState(false);\r\n const [isChildBusy, setIsChildBusy] = useState(false);\r\n\r\n // Tracks if user explicitly cancelled browser back navigation\r\n const navigationCancelledRef = useRef(false);\r\n\r\n const [lastSubmittedState, setLastSubmittedState] = useState<Partial<StepperFormState> | null>(null);\r\n const [addEvent] = useAddEventMutation();\r\n const [updateEvent] = useUpdateEventMutation();\r\n const [updateSocialProfiles] = useUpdateEventSocialProfilesMutation();\r\n\r\n // 3. Prepare Initial Data\r\n // Since the API now transforms the data, we just pass it through\r\n const initialData = useMemo(() => {\r\n if (apiEventData) {\r\n return apiEventData as StepperFormState;\r\n }\r\n return {};\r\n }, [apiEventData]);\r\n\r\n // 4. Initialize Hook\r\n const formProps = useStepperForm({\r\n initialData,\r\n storageKey: SCOPED_FORM_KEY,\r\n // enableLocalStorage: !edit // Disable persistence entirely for Edit mode\r\n initialStep\r\n });\r\n\r\n const [isNavigationBlocked, setNavigationBlocked] = useState(false);\r\n const guardPushed = useRef(false);\r\n\r\n const {\r\n currentStep,\r\n formState,\r\n errors,\r\n isSubmitting,\r\n setField,\r\n setMultipleFields,\r\n handleNext: hookHandleNext,\r\n handleBack,\r\n handleSaveDraft,\r\n setCurrentStep,\r\n validateField,\r\n setErrors,\r\n alert,\r\n setAlert,\r\n closeAlert,\r\n jumpToStep,\r\n maxStepReached,\r\n setMaxStepReached,\r\n saveToLocalStorage,\r\n validateStep,\r\n validateFields, // Allow manual triggering if strictly needed\r\n touched\r\n } = formProps;\r\n\r\n // Filtered steps based on mode\r\n const [isPolluted, setIsPolluted] = useState(false);\r\n\r\n const STEPS = useMemo(() => {\r\n // Restricted Modes check first\r\n if (mode === 'social') {\r\n const socialId = formState.participants_type === 'BOTH' ? 5 : 4;\r\n return [{ id: socialId, title: 'Social Profiles' }];\r\n }\r\n\r\n if (mode === 'questions') {\r\n if (formState.participants_type === 'BOTH') {\r\n return [\r\n { id: 3, title: 'Individual form setup' },\r\n { id: 4, title: 'Team form setup' }\r\n ];\r\n }\r\n return [{ id: 3, title: 'Information set up' }];\r\n }\r\n\r\n // Default Full Flow\r\n let steps = [...BASE_STEPS];\r\n if (formState.participants_type === 'BOTH') {\r\n steps.push({ id: 3, title: 'Individual form setup' });\r\n steps.push({ id: 4, title: 'Team form setup' });\r\n steps.push({ id: 5, title: 'Social Profiles' });\r\n } else {\r\n steps.push({ id: 3, title: 'Information set up' });\r\n steps.push({ id: 4, title: 'Social Profiles' });\r\n }\r\n return steps;\r\n }, [formState.participants_type, mode]);\r\n\r\n // Mode-specific Step Initialization: Force currentStep if it's outside the filtered range\r\n useEffect(() => {\r\n if (mode && STEPS.length > 0) {\r\n const stepIds = STEPS.map(s => s.id);\r\n if (!stepIds.includes(currentStep)) {\r\n setCurrentStep(stepIds[0]);\r\n }\r\n }\r\n }, [mode, STEPS, currentStep, setCurrentStep]);\r\n\r\n // Safety Guard: Force redirect if on Step 3 without Event ID (and not editing an existing event)\r\n useEffect(() => {\r\n if (!isStorageChecked) return;\r\n\r\n // If we are on step 3+, we MUST have an event ID\r\n if (!edit && !activeEventId && currentStep >= 3) {\r\n setCurrentStep(1);\r\n }\r\n }, [currentStep, activeEventId, edit, isStorageChecked]);\r\n\r\n const submitWithRetry = async (payload: any, isUpdate: boolean, maxRetries = 3) => {\r\n let attempt = 0;\r\n let delay = 1000;\r\n\r\n while (attempt < maxRetries) {\r\n try {\r\n const mutation = isUpdate ? updateEvent : addEvent;\r\n const response = await mutation(payload).unwrap();\r\n return response;\r\n } catch (error: any) {\r\n const status = error?.status;\r\n if (status === 401 || status === 403 || status === 500) {\r\n throw error;\r\n }\r\n attempt++;\r\n if (attempt === maxRetries) throw error;\r\n await new Promise(resolve => setTimeout(resolve, delay));\r\n delay *= 2;\r\n }\r\n }\r\n };\r\n\r\n const buildPayload = useCallback((currentState: StepperFormState) => {\r\n const payload: any = {\r\n closed_loop_id,\r\n event_name: currentState.name,\r\n venue: currentState.venue,\r\n venue_place_id: currentState.venue_place_id,\r\n description: currentState.description,\r\n image_url: currentState?.image_url,\r\n thumbnail_url: currentState?.thumbnail_url || currentState?.image_url,\r\n event_start_timestamp: convertDateFormat((currentState.event_start_timestamp?.date && currentState.event_start_timestamp?.time) ?\r\n `${currentState.event_start_timestamp.date}T${currentState.event_start_timestamp.time}` : \"\"),\r\n event_end_timestamp: convertDateFormat((currentState.event_end_timestamp?.date && currentState.event_end_timestamp?.time) ?\r\n `${currentState.event_end_timestamp.date}T${currentState.event_end_timestamp.time}` : \"\"),\r\n registration_start_timestamp: convertDateFormat((currentState.registration_start_timestamp?.date && currentState.registration_start_timestamp?.time) ?\r\n `${currentState.registration_start_timestamp.date}T${currentState.registration_start_timestamp.time}` : \"\"),\r\n registration_end_timestamp: convertDateFormat((currentState.registration_end_timestamp?.date && currentState.registration_end_timestamp?.time) ?\r\n `${currentState.registration_end_timestamp.date}T${currentState.registration_end_timestamp.time}` : \"\"),\r\n // Backend expects array of strings\r\n event_types: Array.isArray(currentState.event_type) ? currentState.event_type : [currentState.event_type],\r\n categories: currentState.event_categories,\r\n location_data: currentState.location_data,\r\n location_type: (currentState.location_type || \"in-person\") === \"in-person\" ? \"in-person\" : \"online\",\r\n custom_category: currentState?.custom_category || \"\",\r\n institution_name: currentState?.institution_name || \"\",\r\n };\r\n\r\n if (!currentState.custom_category) delete payload.custom_category;\r\n if (!((currentState.event_type as string[])?.includes(\"INTERNAL\"))) delete payload.institution_name;\r\n\r\n // Conditional Fields Cleanup\r\n if (currentState.ticket_type === 'TICKET_TIER') {\r\n payload.capacity = Object.values(currentState.ticket_tiers || {}).reduce((sum: any, tier: any) => sum + (Number(tier.capacity) || 0), 0);\r\n\r\n payload.ticket_tiers = Object.values(currentState.ticket_tiers || {}).map((val: any) => {\r\n const tier: any = {\r\n ...(!val?.isNew ? { id: val?.id } : {}), // Keep ID for existing tiers in edit mode\r\n name: val?.name,\r\n description: val?.description || \"\",\r\n price: Number(val?.price) || 0,\r\n capacity: Number(val?.capacity) || 0,\r\n members: val?.members,\r\n availability_type: val?.availability_type,\r\n availability_schedule: val?.availability_schedule,\r\n }\r\n if (val?.has_discount) {\r\n tier.discounted_price = Number(val?.discounted_price) || 0;\r\n if (val?.discount_valid_till) tier.discount_valid_till = convertDateFormat(val.discount_valid_till);\r\n } else {\r\n delete tier.discounted_price;\r\n delete tier.discount_valid_till;\r\n\r\n }\r\n\r\n return tier;\r\n });\r\n\r\n // Explicitly clear form fields\r\n payload.form = true;\r\n\r\n payload.min_members = 1;\r\n payload.max_members = 1;\r\n payload.individual_additional_fee = 0;\r\n payload.registration_fee = 0;\r\n payload.capacity = payload.ticket_tiers?.reduce((sum: any, tier: any) => sum + (Number(tier.capacity) || 0), 0);\r\n payload.participants_type = \"INDIVIDUAL\";\r\n\r\n } else if (currentState.ticket_type === 'CUSTOM_FORM') {\r\n payload.form = true;\r\n // payload.ticket_tiers = [];\r\n\r\n // Backend expects strings: \"INDIVIDUAL\", \"TEAM\", \"BOTH\"\r\n payload.participants_type = currentState.participants_type;\r\n\r\n // Team Logic\r\n if (currentState.participants_type === 'TEAM' || currentState.participants_type === 'BOTH') {\r\n payload.min_members = Number(currentState.min_members) || 0;\r\n payload.max_members = Number(currentState.max_members) || 0;\r\n // payload.team_capacity = Number(currentState.team_capacity);\r\n // payload.team_price = Number(currentState.team_price);\r\n payload.capacity = Number(currentState.team_capacity) || 0;\r\n payload.registration_fee = Number(currentState.team_price) || 0;\r\n if (currentState.charge_per_delegate_fee === 'YES') {\r\n payload.individual_additional_fee = Number(currentState.per_member_fee) || 0;\r\n } else {\r\n payload.individual_additional_fee = 0;\r\n }\r\n\r\n if (currentState.participants_type !== 'BOTH') {\r\n // Clear Individual fields if not INDIVIDUAL/BOTH\r\n delete payload.individual_registration_fee;\r\n delete payload.individual_capacity;\r\n }\r\n }\r\n\r\n // Individual Logic\r\n if (currentState.participants_type === 'INDIVIDUAL' || currentState.participants_type === 'BOTH') {\r\n\r\n if (currentState.participants_type !== 'BOTH') {\r\n payload.registration_fee = Number(currentState.individual_price || 0);\r\n payload.capacity = Number(currentState.individual_capacity || 0);\r\n\r\n // Clear Team fields if not TEAM\r\n payload.min_members = 1;\r\n payload.max_members = 1;\r\n payload.individual_additional_fee = 0;\r\n delete payload.team_capacity;\r\n delete payload.team_price;\r\n } else {\r\n payload.individual_registration_fee = Number(currentState.individual_price || 0);\r\n payload.individual_capacity = Number(currentState.individual_capacity);\r\n }\r\n\r\n delete payload.ticket_tiers;\r\n }\r\n\r\n };\r\n\r\n if (activeEventId) {\r\n payload.event_id = activeEventId;\r\n }\r\n\r\n return payload;\r\n }, [organizer_id, activeEventId]);\r\n\r\n // Deep compare helper\r\n const isStateDirty = useCallback((currentState: StepperFormState, savedState: Partial<StepperFormState> | null) => {\r\n if (!savedState) return true;\r\n const currentPayload = buildPayload(currentState);\r\n const savedPayload = buildPayload(savedState as StepperFormState);\r\n\r\n // Core payload comparison\r\n const isPayloadDirty = JSON.stringify(currentPayload) !== JSON.stringify(savedPayload);\r\n if (isPayloadDirty) return true;\r\n\r\n // Social Profiles comparison (now separate from payload)\r\n const currentSocials = {\r\n instagram: currentState.social_profiles?.instagram || \"\",\r\n facebook: currentState.social_profiles?.facebook || \"\",\r\n twitter: currentState.social_profiles?.twitter || \"\",\r\n };\r\n const savedSocials = {\r\n instagram: (savedState as any)?.social_profiles?.instagram || \"\",\r\n facebook: (savedState as any)?.social_profiles?.facebook || \"\",\r\n twitter: (savedState as any)?.social_profiles?.twitter || \"\",\r\n };\r\n\r\n return JSON.stringify(currentSocials) !== JSON.stringify(savedSocials);\r\n }, [buildPayload]);\r\n\r\n const [switchConfirmation, setSwitchConfirmation] = useState<{\r\n isOpen: boolean;\r\n type: 'TO_CUSTOM' | 'TO_TIER' | null;\r\n }>({ isOpen: false, type: null });\r\n\r\n const executeStep2Submit = async () => {\r\n // Dirty Check logic...\r\n const isUpdate = !!activeEventId;\r\n\r\n setIsSubmittingData(true);\r\n try {\r\n const payload = buildPayload(formState);\r\n\r\n // Check if dirty before network call (Only for Edit/Update scenarios)\r\n if (isUpdate) {\r\n const serverState = apiEventData as StepperFormState;\r\n const baseline = lastSubmittedState || serverState;\r\n\r\n if (baseline) {\r\n const dirty = isStateDirty(formState, baseline);\r\n if (!dirty) {\r\n setCurrentStep(3);\r\n setIsSubmittingData(false);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n const response = await submitWithRetry(payload, isUpdate);\r\n\r\n // Success\r\n const newEventId = response?.data?.event?.id || response?.event?.id || response?.data?.id || activeEventId;\r\n if (newEventId) {\r\n if (onEventCreated) {\r\n onEventCreated(newEventId);\r\n }\r\n\r\n // IMPORTANT: Save ID to local storage so reload works\r\n if (!edit) {\r\n localStorage.setItem(SCOPED_ID_KEY, newEventId);\r\n setLocalEventId(newEventId);\r\n }\r\n\r\n // Refetch event details to get updated data\r\n // We show loader via isSyncingData\r\n if (isUpdate) {\r\n setIsSyncingData(true);\r\n try {\r\n await refetchEventDetails().unwrap();\r\n } catch (e) {\r\n console.error(\"Post-update sync failed\", e);\r\n // We don't throw here to allow user to proceed to questions\r\n // But we stop the syncing loader\r\n } finally {\r\n setIsSyncingData(false);\r\n }\r\n } else {\r\n // For Create, the ID change will trigger the initial query\r\n // We'll handle the loader for that in a dedicated useEffect\r\n setIsSyncingData(true);\r\n }\r\n\r\n setLastSubmittedState(JSON.parse(JSON.stringify(formState))); // Deep copy\r\n\r\n setMaxStepReached(3); // Allow navigation to step 3\r\n setIsPolluted(true); // <--- POLLUTION\r\n\r\n // Only advance if user hasn't cancelled browser navigation\r\n if (!navigationCancelledRef.current) {\r\n setCurrentStep(3);\r\n saveToLocalStorage(formState, 3, 3); // Persist manually since we bypassed handleNext\r\n } else {\r\n // User cancelled; reset flag\r\n navigationCancelledRef.current = false;\r\n }\r\n\r\n setAlert({\r\n show: true,\r\n message: isUpdate ? \"Event updated successfully\" : \"Event created successfully\",\r\n type: 'success'\r\n });\r\n } else {\r\n\r\n throw new Error(\"No event ID returned\");\r\n }\r\n\r\n } catch (err: any) {\r\n console.error(err);\r\n setAlert({\r\n show: true,\r\n message: err?.message || \"Failed to submit event. Please try again.\",\r\n type: 'error'\r\n });\r\n } finally {\r\n setIsSubmittingData(false);\r\n }\r\n };\r\n\r\n // SYNC LOADER FOR CREATIONS: Handle the period between Create success and First Fetch completion\r\n useEffect(() => {\r\n if (!edit && activeEventId && isSyncingData && !isFetchingEvent) {\r\n // Once data is fetched (isFetchingEvent becomes false), stop the sync loader\r\n setIsSyncingData(false);\r\n }\r\n }, [edit, activeEventId, isSyncingData, isFetchingEvent]);\r\n\r\n const checkTypeSwitchConflict = () => {\r\n const hasTiers = formState.ticket_tiers && Object.keys(formState.ticket_tiers).length > 0;\r\n if (formState.ticket_type === \"CUSTOM_FORM\" && hasTiers) {\r\n return 'TO_CUSTOM';\r\n }\r\n\r\n // if (formState.ticket_type === \"TICKET_TIER\") {\r\n // const hasCustomData =\r\n // (formState.participants_type && formState.participants_type !== 'INDIVIDUAL') ||\r\n // (formState.individual_capacity && Number(formState.individual_capacity) > 0) ||\r\n // (formState.team_capacity && Number(formState.team_capacity) > 0) ||\r\n // (formState.min_members && Number(formState.min_members) > 1);\r\n\r\n // if (hasCustomData) {\r\n // return 'TO_TIER';\r\n // }\r\n // }\r\n if (formState.ticket_type === \"TICKET_TIER\") {\r\n const hasCustomData =\r\n (formState.participants_type && formState.participants_type !== 'INDIVIDUAL') ||\r\n (formState?.individual_price && Number(formState?.individual_price) > 0) ||\r\n (formState.min_members && Number(formState.min_members) > 1);\r\n\r\n if (hasCustomData) {\r\n return 'TO_TIER';\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n const handleStep2Submit = () => {\r\n // Switch confirmation now happens between Step 2 and 3\r\n executeStep2Submit();\r\n };\r\n\r\n const handleSwitchConfirm = () => {\r\n if (switchConfirmation.type === 'TO_CUSTOM') {\r\n setField(\"ticket_tiers\", []);\r\n } else if (switchConfirmation.type === 'TO_TIER') {\r\n setMultipleFields({\r\n participants_type: undefined,\r\n min_members: undefined,\r\n max_members: undefined,\r\n team_capacity: undefined,\r\n team_price: undefined,\r\n per_member_fee: undefined,\r\n individual_price: undefined,\r\n individual_capacity: undefined,\r\n charge_per_delegate_fee: undefined,\r\n charge_team_price: undefined\r\n });\r\n }\r\n\r\n setSwitchConfirmation({ isOpen: false, type: null });\r\n\r\n if (currentStep === 2) {\r\n setTimeout(() => executeStep2Submit(), 0);\r\n }\r\n };\r\n\r\n const CurrentStepComponent = useMemo(() => {\r\n switch (currentStep) {\r\n case 1:\r\n return StepOne;\r\n case 2:\r\n return StepTwo;\r\n case 3:\r\n return IndividualFormStep;\r\n case 4:\r\n return formState.participants_type === 'BOTH' ? TeamFormStep : SocialProfilesStep;\r\n case 5:\r\n return SocialProfilesStep;\r\n default:\r\n return StepOne;\r\n }\r\n }, [currentStep, formState.participants_type]);\r\n\r\n const handleRouteBack = async () => {\r\n // \"Save-on-Click\": Await background save if stepRef is busy/exists\r\n if (stepRef.current?.save) {\r\n try {\r\n await stepRef.current.save();\r\n } catch (err) {\r\n console.error(\"Save-on-Click failed during Back action\", err);\r\n // We still proceed back unless it's a critical validation error \r\n // but usually back is safe to discard if save fails.\r\n }\r\n }\r\n\r\n // If dirty and in Edit Mode, or if busy (saving), show confirmation\r\n if (isUnsaved) {\r\n setOpenExitConfirm(true);\r\n } else {\r\n setIsNavigating(true);\r\n router.push('/events-management');\r\n }\r\n };\r\n\r\n const handleExitConfirm = () => {\r\n setOpenExitConfirm(false);\r\n setTimeout(() => {\r\n setIsNavigating(true);\r\n router.push('/events-management');\r\n }, 200);\r\n };\r\n\r\n const isLastStep = STEPS.length > 0 && currentStep === STEPS[STEPS.length - 1].id;\r\n const isSecondLastStep = STEPS.length > 1 && currentStep === STEPS[STEPS.length - 2].id;\r\n\r\n const stepRef = useRef<any>(null);\r\n\r\n // Unified logic to determine if navigation should be blocked (Dirty or API Busy)\r\n const isUnsaved = useMemo(() => {\r\n const isBusy = stepRef.current?.isBusy?.() || isSubmitting || isSubmittingData;\r\n if (isBusy) return true;\r\n\r\n if (edit && apiEventData) {\r\n const baseline = lastSubmittedState || apiEventData as StepperFormState;\r\n return isStateDirty(formState, baseline);\r\n }\r\n\r\n // For Create mode, we don't block unless busy (because it auto-saves anyway)\r\n return false;\r\n }, [edit, apiEventData, lastSubmittedState, formState, isStateDirty, isSubmitting, isSubmittingData]);\r\n\r\n // Tracks whether a popstate (back/forward) is being handled by our custom modal\r\n const isHandledByPopState = useRef(false);\r\n const ignoreNextPop = useRef(false);\r\n\r\n // Warn user before unloading in Edit Mode or if local save is pending\r\n useEffect(() => {\r\n const handleBeforeUnload = (e: BeforeUnloadEvent) => {\r\n // If popstate already set this flag, it means back/forward is handled\r\n // by our custom modal — skip the native dialog entirely.\r\n if (isHandledByPopState.current) {\r\n isHandledByPopState.current = false;\r\n return;\r\n }\r\n if (isUnsaved) {\r\n e.preventDefault();\r\n e.returnValue = ''; // Standard for showing the alert (tab close / reload only)\r\n }\r\n };\r\n\r\n const handlePopState = (e: PopStateEvent) => {\r\n if (ignoreNextPop.current) {\r\n ignoreNextPop.current = false;\r\n return;\r\n }\r\n if (isUnsaved) {\r\n // Signal to handleBeforeUnload that this navigation is ours — skip native dialog.\r\n // This MUST be set synchronously before history.forward() because beforeunload\r\n // may fire immediately as part of the same browser navigation event.\r\n isHandledByPopState.current = true;\r\n\r\n // Immediately push forward to undo the back BEFORE Next.js can navigate.\r\n ignoreNextPop.current = true;\r\n window.history.forward();\r\n\r\n // Show our custom exit confirm modal (small timeout to let forward() settle)\r\n setTimeout(() => {\r\n setOpenExitConfirm(true);\r\n }, 50);\r\n }\r\n };\r\n\r\n window.addEventListener('beforeunload', handleBeforeUnload);\r\n window.addEventListener('popstate', handlePopState);\r\n\r\n // LAZY & STRICT GUARD: Only add the extra history entry when:\r\n // 1. Form is Unsaved (Dirty in Edit or Busy in Any)\r\n // 2. AND (User has actually interacted/touched the form OR an API submission started OR we are in Edit mode)\r\n // In Edit mode, we trust isUnsaved (isStateDirty) because it compares against the baseline.\r\n const hasInteracted = Object.keys(touched || {}).length > 0 || isSubmittingData;\r\n const shouldGuard = isUnsaved && (hasInteracted || !!edit || isSubmittingData);\r\n\r\n if (shouldGuard && !guardPushed.current) {\r\n window.history.pushState({ isGuard: true }, '', window.location.href);\r\n guardPushed.current = true;\r\n } else if (!isUnsaved && guardPushed.current) {\r\n // AUTO-CLEANUP: Once form is clean, pop the guard entry and ignore the resulting popstate\r\n ignoreNextPop.current = true;\r\n window.history.back();\r\n guardPushed.current = false;\r\n\r\n setTimeout(() => {\r\n ignoreNextPop.current = false;\r\n }, 300);\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('beforeunload', handleBeforeUnload);\r\n window.removeEventListener('popstate', handlePopState);\r\n };\r\n }, [isUnsaved, touched, isSubmittingData]);\r\n\r\n const onSaveDraft = () => {\r\n handleSaveDraft();\r\n setIsPolluted(true);\r\n };\r\n\r\n const handleNextAction = async () => {\r\n if (currentStep === 1) {\r\n hookHandleNext();\r\n } else if (currentStep === 2) {\r\n if (validateStep(2)) {\r\n const conflictType = checkTypeSwitchConflict();\r\n if (conflictType) {\r\n setSwitchConfirmation({ isOpen: true, type: conflictType });\r\n } else {\r\n executeStep2Submit();\r\n }\r\n }\r\n } else if (isLastStep) {\r\n // Social Profiles: final submission modal\r\n if (stepRef.current?.validateNavigation && !stepRef.current.validateNavigation()) {\r\n return;\r\n }\r\n\r\n // If it's a question step, we show the proceed modal (preview) first\r\n const isQuestionStep = (STEPS.find(s => s.id === currentStep)?.title.includes('form setup') ||\r\n STEPS.find(s => s.id === currentStep)?.title === 'Information set up');\r\n\r\n if (isQuestionStep && mode === 'questions') {\r\n setOpenProceedModal(true);\r\n } else {\r\n setOpenConfirmModal(true);\r\n }\r\n } else if (isSecondLastStep && mode !== 'questions') {\r\n // Second-last step (last form builder): show Preview + Confirm & Next modal in full flow\r\n if (stepRef.current?.validateNavigation && !stepRef.current.validateNavigation()) {\r\n return;\r\n }\r\n setOpenProceedModal(true);\r\n } else {\r\n // Earlier form builder steps or questions mode intermediate steps:\r\n // validate, save silently, then advance\r\n if (stepRef.current?.validateNavigation && !stepRef.current.validateNavigation()) {\r\n return;\r\n }\r\n setIsSubmittingData(true);\r\n try {\r\n if (stepRef.current?.saveForm) {\r\n await stepRef.current.saveForm();\r\n }\r\n setCurrentStep((prev: number) => prev + 1);\r\n } catch (err: any) {\r\n setAlert({\r\n show: true,\r\n message: err?.message || \"Failed to save. Please try again.\",\r\n type: 'error'\r\n });\r\n } finally {\r\n setIsSubmittingData(false);\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <FormBuilderProceedModal\r\n open={openProceedModal}\r\n setOpen={setOpenProceedModal}\r\n eventId={activeEventId || \"\"}\r\n eventData={apiEventData}\r\n onConfirm={async () => {\r\n if (stepRef.current?.saveForm) {\r\n await stepRef.current.saveForm();\r\n }\r\n setOpenProceedModal(false);\r\n // If we are in question mode and this was a question step, \r\n // and it's supposedly the last step, open the confirmation modal\r\n if (isLastStep && mode === 'questions') {\r\n setOpenConfirmModal(true);\r\n } else {\r\n setCurrentStep((prev: number) => prev + 1);\r\n }\r\n }}\r\n />\r\n <AddEventLayout\r\n steps={STEPS}\r\n currentStep={currentStep}\r\n maxStepReached={maxStepReached}\r\n isNavigationBlocked={isNavigationBlocked}\r\n onJumpToStep={(id) => {\r\n if (currentStep >= 3 && stepRef.current?.validateNavigation && !stepRef.current.validateNavigation()) {\r\n return;\r\n }\r\n jumpToStep(id);\r\n }}\r\n onBack={() => {\r\n if (currentStep >= 3 && stepRef.current?.validateNavigation && !stepRef.current.validateNavigation()) {\r\n return;\r\n }\r\n handleBack();\r\n }}\r\n onNext={handleNextAction}\r\n onSaveDraft={onSaveDraft}\r\n isNavigating={isNavigating}\r\n isSubmitting={isSubmittingData}\r\n isSyncingData={isSyncingData}\r\n isChildBusy={isChildBusy}\r\n isProcessing={isClearing}\r\n edit={edit}\r\n isFetching={isFetchingEvent}\r\n isFetchError={isFetchError}\r\n onRetryFetch={() => refetchEventDetails()}\r\n alert={alert}\r\n onCloseAlert={closeAlert}\r\n eventId={activeEventId}\r\n eventData={apiEventData}\r\n mode={mode}\r\n submissionModalProps={{\r\n open: openConfirmModal,\r\n setOpen: setOpenConfirmModal,\r\n showPreview: !isLastStep,\r\n isPolluted: (() => {\r\n // Compute live social dirty state\r\n const currentSocials = {\r\n instagram: formState.social_profiles?.instagram || \"\",\r\n facebook: formState.social_profiles?.facebook || \"\",\r\n twitter: formState.social_profiles?.twitter || \"\",\r\n };\r\n const serverSocials = {\r\n instagram: (apiEventData as any)?.social_profiles?.instagram || \"\",\r\n facebook: (apiEventData as any)?.social_profiles?.facebook || \"\",\r\n twitter: (apiEventData as any)?.social_profiles?.twitter || \"\",\r\n };\r\n const isSocialDirty = JSON.stringify(currentSocials) !== JSON.stringify(serverSocials);\r\n \r\n // isPolluted is the \"synced\" pollution from Step 2 / Questions\r\n return isPolluted || isSocialDirty;\r\n })(),\r\n onSubmit: async () => {\r\n const currentStepTitle = STEPS.find(s => s.id === currentStep)?.title;\r\n const isSocialStep = currentStepTitle === 'Social Profiles';\r\n\r\n // Logic triggered AFTER user confirms in modal\r\n if (isSocialStep) {\r\n try {\r\n const currentSocials = {\r\n instagram: formState.social_profiles?.instagram || \"\",\r\n facebook: formState.social_profiles?.facebook || \"\",\r\n twitter: formState.social_profiles?.twitter || \"\",\r\n };\r\n\r\n const serverSocials = {\r\n instagram: (apiEventData as any)?.social_profiles?.instagram || \"\",\r\n facebook: (apiEventData as any)?.social_profiles?.facebook || \"\",\r\n twitter: (apiEventData as any)?.social_profiles?.twitter || \"\",\r\n };\r\n\r\n const isSocialDirty = JSON.stringify(currentSocials) !== JSON.stringify(serverSocials);\r\n\r\n if (isSocialDirty) {\r\n // Clean up empty profiles before sending\r\n const cleanedProfiles = Object.fromEntries(\r\n Object.entries(currentSocials).filter(([_, v]) => v !== \"\")\r\n );\r\n await updateSocialProfiles({\r\n event_id: activeEventId,\r\n social_profiles: cleanedProfiles,\r\n }).unwrap();\r\n setIsPolluted(true);\r\n }\r\n\r\n return activeEventId || \"\";\r\n } catch (err: any) {\r\n console.error(\"Final submit failed\", err);\r\n throw new Error(err?.data?.message || err?.message || \"Failed to submit social profiles. Please try again.\");\r\n }\r\n } else {\r\n // 1. Save the Form Data (Questions)\r\n if (stepRef.current?.saveForm) {\r\n try {\r\n await stepRef.current.saveForm();\r\n } catch (e) {\r\n console.error(\"Save failed during submission\", e);\r\n throw new Error(\"Failed to save questions. Please try again.\");\r\n }\r\n }\r\n return activeEventId || \"\";\r\n }\r\n },\r\n onSuccess: (type: \"submit\" | \"draft\" | \"next\") => {\r\n if (isLastStep) {\r\n // Final submission: redirect to dashboard\r\n if (type === \"submit\") {\r\n setTimeout(() => {\r\n router.push('/events-management');\r\n }, 300);\r\n } else {\r\n // \"Save in Draft\" on final step: also redirect\r\n setTimeout(() => {\r\n router.push('/events-management');\r\n }, 300);\r\n }\r\n } else {\r\n // Form builder steps: advance to next step\r\n setCurrentStep((prev: number) => prev + 1);\r\n setOpenConfirmModal(false);\r\n }\r\n }\r\n }}\r\n switchConfirmationModalProps={{\r\n open: switchConfirmation.isOpen,\r\n onClose: () => setSwitchConfirmation({ isOpen: false, type: null }),\r\n onConfirm: handleSwitchConfirm,\r\n title: \"Please confirm before proceeding?\",\r\n description: switchConfirmation.type === 'TO_CUSTOM'\r\n ? \"You are proceeding to the next step while selecting 'Custom form', it will remove all your existing ticket tiers. This action cannot be undone.\"\r\n : \"You are proceeding to the next step while selecting 'Ticket tier', it will remove all your existing custom form data. This action cannot be undone.\"\r\n }}\r\n onRouteBack={handleRouteBack}\r\n exitConfirmationModalProps={{\r\n open: openExitConfirm,\r\n onClose: () => setOpenExitConfirm(false),\r\n onConfirm: handleExitConfirm\r\n }}\r\n >\r\n <CurrentStepComponent\r\n ref={currentStep >= 3 ? stepRef : null}\r\n formState={formState}\r\n setField={setField}\r\n setMultipleFields={setMultipleFields}\r\n errors={errors}\r\n validateField={validateField}\r\n setErrors={setErrors}\r\n eventData={apiEventData}\r\n eventId={activeEventId || \"\"}\r\n setNavigationBlocked={setNavigationBlocked}\r\n isSameQuestionTitleAllowed={isSameQuestionTitleAllowed}\r\n allowedDiscountQuestions={1}\r\n onBusyStateChange={setIsChildBusy}\r\n isBusy={isChildBusy}\r\n onPolluted={() => setIsPolluted(true)}\r\n />\r\n </AddEventLayout>\r\n </>\r\n );\r\n};\r\n\r\nexport default memo(AddEventStepper);\r\n"],"names":["id"],"mappings":"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"}
@@ -1,136 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import Modal from "../../ui/Modal/index.js";
3
- import { Transition, Dialog } from "@headlessui/react";
4
- import { AlertTriangle, X } from "lucide-react";
5
- import { useState, Fragment } from "react";
6
- import { FaCircleNotch } from "react-icons/fa";
7
- import { Button } from "../../Button/Button.js";
8
- function ConfirmationModal({
9
- open,
10
- title,
11
- description,
12
- onClose,
13
- onConfirm,
14
- confirmText = "Confirm",
15
- cancelText = "Cancel",
16
- children,
17
- isLoading,
18
- confirmationKeyword
19
- }) {
20
- const [internalLoading, setInternalLoading] = useState(false);
21
- const [confirmInput, setConfirmInput] = useState("");
22
- const loading = isLoading ?? internalLoading;
23
- const handleSubmit = async (e) => {
24
- e.preventDefault();
25
- e.stopPropagation();
26
- if (!loading) {
27
- if (confirmationKeyword && confirmInput !== confirmationKeyword) {
28
- return;
29
- }
30
- try {
31
- setInternalLoading(true);
32
- await onConfirm();
33
- } finally {
34
- setInternalLoading(false);
35
- }
36
- }
37
- };
38
- const handleClose = () => {
39
- if (!loading) {
40
- onClose();
41
- setConfirmInput("");
42
- }
43
- };
44
- const isSubmitDisabled = loading || (confirmationKeyword ? confirmInput !== confirmationKeyword : false);
45
- return /* @__PURE__ */ jsx(
46
- Modal,
47
- {
48
- open,
49
- handleClose,
50
- closeOnEscape: false,
51
- closeOnOutsideClick: false,
52
- children: /* @__PURE__ */ jsx("div", { className: "fixed inset-0 z-10 overflow-y-auto", children: /* @__PURE__ */ jsx("div", { className: "flex min-h-full items-center justify-center p-4 text-center sm:p-0", children: /* @__PURE__ */ jsx(
53
- Transition.Child,
54
- {
55
- as: Fragment,
56
- enter: "ease-out duration-300",
57
- enterFrom: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
58
- enterTo: "opacity-100 translate-y-0 sm:scale-100",
59
- leave: "ease-in duration-200",
60
- leaveFrom: "opacity-100 translate-y-0 sm:scale-100",
61
- leaveTo: "opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",
62
- children: /* @__PURE__ */ jsxs(Dialog.Panel, { className: "flex flex-col gap-6 relative transform overflow-hidden rounded-xl bg-white text-left shadow-xl transition-all mx-auto px-4 sm:px-6 py-4 sm:py-6 w-full max-w-lg", children: [
63
- /* @__PURE__ */ jsx("div", { className: "shrink-0", children: /* @__PURE__ */ jsx("div", { className: "text-start", children: /* @__PURE__ */ jsxs("div", { className: "flex justify-between items-start", children: [
64
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
65
- /* @__PURE__ */ jsx("div", { className: "shrink-0 flex items-center justify-center h-10 w-10 rounded-full bg-error-100", children: /* @__PURE__ */ jsx(AlertTriangle, { className: "h-5 w-5 text-error-600", "aria-hidden": "true" }) }),
66
- /* @__PURE__ */ jsx(Dialog.Title, { as: "h3", className: "text-lg font-semibold leading-6 text-grey-900 pt-2", id: "modal-title", children: title })
67
- ] }),
68
- /* @__PURE__ */ jsxs(
69
- "button",
70
- {
71
- type: "button",
72
- className: "text-grey-400 hover:text-grey-500 transition-colors bg-transparent rounded-md p-1 hover:bg-grey-100",
73
- onClick: handleClose,
74
- "aria-label": "Close modal",
75
- children: [
76
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" }),
77
- /* @__PURE__ */ jsx(X, { height: 20, width: 20 })
78
- ]
79
- }
80
- )
81
- ] }) }) }),
82
- /* @__PURE__ */ jsxs("div", { className: "text-sm text-grey-600", children: [
83
- description && /* @__PURE__ */ jsx("p", { children: description }),
84
- children && /* @__PURE__ */ jsx("div", { className: "mt-4", children }),
85
- confirmationKeyword && /* @__PURE__ */ jsxs("div", { className: "mt-4", children: [
86
- /* @__PURE__ */ jsxs("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: [
87
- "Type ",
88
- /* @__PURE__ */ jsx("span", { className: "font-bold select-all", children: confirmationKeyword }),
89
- " to confirm"
90
- ] }),
91
- /* @__PURE__ */ jsx(
92
- "input",
93
- {
94
- type: "text",
95
- className: "w-full rounded-lg border-gray-300 shadow-sm focus:border-error-500 focus:ring-error-500 sm:text-sm px-3 py-2 border",
96
- placeholder: `Type "${confirmationKeyword}"`,
97
- value: confirmInput,
98
- onChange: (e) => setConfirmInput(e.target.value),
99
- onPaste: (e) => e.preventDefault(),
100
- autoComplete: "off"
101
- }
102
- )
103
- ] })
104
- ] }),
105
- /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, className: "flex flex-col sm:flex-row sm:gap-3 justify-end bg-grey-50", children: [
106
- /* @__PURE__ */ jsx(
107
- Button,
108
- {
109
- type: "button",
110
- variant: "outline",
111
- className: "flex-1 h-11",
112
- onClick: handleClose,
113
- disabled: loading,
114
- children: cancelText
115
- }
116
- ),
117
- /* @__PURE__ */ jsx(
118
- Button,
119
- {
120
- type: "submit",
121
- className: "flex-1 h-11",
122
- disabled: isSubmitDisabled,
123
- children: loading ? /* @__PURE__ */ jsx(FaCircleNotch, { size: 18, className: "animate-spin" }) : confirmText
124
- }
125
- )
126
- ] })
127
- ] })
128
- }
129
- ) }) })
130
- }
131
- );
132
- }
133
- export {
134
- ConfirmationModal as default
135
- };
136
- //# sourceMappingURL=ConfirmationModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfirmationModal.js","sources":["../../../../src/components/EventAddForm/common/ConfirmationModal.tsx"],"sourcesContent":["import { Button } from '../../Button';\r\nimport Modal from '@/components/ui/Modal';\r\nimport { Dialog, Transition } from '@headlessui/react'\r\nimport { X, AlertTriangle } from 'lucide-react';\r\nimport { FormEvent, Fragment, ReactNode, useState } from 'react';\r\nimport { FaCircleNotch } from 'react-icons/fa';\r\n\r\nexport default function ConfirmationModal({\r\n open,\r\n title,\r\n description,\r\n onClose,\r\n onConfirm,\r\n confirmText = \"Confirm\",\r\n cancelText = \"Cancel\",\r\n children,\r\n isLoading,\r\n confirmationKeyword\r\n}: {\r\n open: boolean,\r\n title: string,\r\n description?: string,\r\n onClose: () => void,\r\n onConfirm: any,\r\n confirmText?: string;\r\n cancelText?: string;\r\n children?: ReactNode;\r\n isLoading?: boolean;\r\n confirmationKeyword?: string;\r\n}) {\r\n const [internalLoading, setInternalLoading] = useState(false);\r\n const [confirmInput, setConfirmInput] = useState(\"\");\r\n\r\n const loading = isLoading ?? internalLoading;\r\n\r\n const handleSubmit = async (e: FormEvent<HTMLFormElement>) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (!loading) {\r\n if (confirmationKeyword && confirmInput !== confirmationKeyword) {\r\n return;\r\n }\r\n try {\r\n setInternalLoading(true);\r\n await onConfirm();\r\n }\r\n finally {\r\n setInternalLoading(false);\r\n }\r\n }\r\n }\r\n\r\n const handleClose = () => {\r\n if (!loading) {\r\n onClose();\r\n setConfirmInput(\"\");\r\n }\r\n }\r\n\r\n const isSubmitDisabled = loading || (confirmationKeyword ? confirmInput !== confirmationKeyword : false);\r\n\r\n return (\r\n <Modal\r\n open={open}\r\n handleClose={handleClose}\r\n closeOnEscape={false}\r\n closeOnOutsideClick={false}\r\n >\r\n <div className=\"fixed inset-0 z-10 overflow-y-auto\">\r\n <div className=\"flex min-h-full items-center justify-center p-4 text-center sm:p-0\">\r\n <Transition.Child\r\n as={Fragment}\r\n enter=\"ease-out duration-300\"\r\n enterFrom=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\r\n enterTo=\"opacity-100 translate-y-0 sm:scale-100\"\r\n leave=\"ease-in duration-200\"\r\n leaveFrom=\"opacity-100 translate-y-0 sm:scale-100\"\r\n leaveTo=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\r\n >\r\n <Dialog.Panel className=\"flex flex-col gap-6 relative transform overflow-hidden rounded-xl bg-white text-left shadow-xl transition-all mx-auto px-4 sm:px-6 py-4 sm:py-6 w-full max-w-lg\">\r\n <div className=\"shrink-0\">\r\n <div className=\"text-start\">\r\n <div className=\"flex justify-between items-start\">\r\n <div className=\"flex items-center gap-3\">\r\n <div className=\"shrink-0 flex items-center justify-center h-10 w-10 rounded-full bg-error-100\">\r\n <AlertTriangle className=\"h-5 w-5 text-error-600\" aria-hidden=\"true\" />\r\n </div>\r\n <Dialog.Title as=\"h3\" className=\"text-lg font-semibold leading-6 text-grey-900 pt-2\" id=\"modal-title\">\r\n {title}\r\n </Dialog.Title>\r\n </div>\r\n <button\r\n type=\"button\"\r\n className=\"text-grey-400 hover:text-grey-500 transition-colors bg-transparent rounded-md p-1 hover:bg-grey-100\"\r\n onClick={handleClose}\r\n aria-label=\"Close modal\"\r\n >\r\n <span className=\"sr-only\">Close</span>\r\n <X height={20} width={20} />\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div className=\"text-sm text-grey-600\">\r\n {description && <p>{description}</p>}\r\n {children && <div className=\"mt-4\">{children}</div>}\r\n\r\n {confirmationKeyword && (\r\n <div className=\"mt-4\">\r\n <label className=\"block text-sm font-medium text-gray-700 mb-2\">\r\n Type <span className=\"font-bold select-all\">{confirmationKeyword}</span> to confirm\r\n </label>\r\n <input\r\n type=\"text\"\r\n className=\"w-full rounded-lg border-gray-300 shadow-sm focus:border-error-500 focus:ring-error-500 sm:text-sm px-3 py-2 border\"\r\n placeholder={`Type \"${confirmationKeyword}\"`}\r\n value={confirmInput}\r\n onChange={(e) => setConfirmInput(e.target.value)}\r\n onPaste={(e) => e.preventDefault()}\r\n autoComplete='off'\r\n />\r\n </div>\r\n )}\r\n </div>\r\n\r\n\r\n <form onSubmit={handleSubmit} className=\"flex flex-col sm:flex-row sm:gap-3 justify-end bg-grey-50\">\r\n <Button\r\n type=\"button\"\r\n variant=\"outline\"\r\n className=\"flex-1 h-11\"\r\n onClick={handleClose}\r\n disabled={loading}\r\n >\r\n {cancelText}\r\n </Button>\r\n <Button\r\n type=\"submit\"\r\n className=\"flex-1 h-11\"\r\n disabled={isSubmitDisabled}\r\n >\r\n {\r\n loading ? <FaCircleNotch size={18} className=\"animate-spin\" /> : confirmText\r\n }\r\n </Button>\r\n </form>\r\n </Dialog.Panel>\r\n </Transition.Child>\r\n </div>\r\n </div>\r\n </Modal>\r\n )\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -1,70 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { memo, useState, useEffect } from "react";
3
- import Modal from "../../ui/Modal/index.js";
4
- import FormInput from "../../ui/FormInput.js";
5
- import { Button } from "../../Button/Button.js";
6
- const DescriptionModal = ({ isOpen, onClose, onSave, value }) => {
7
- const [internalValue, setInternalValue] = useState(value);
8
- useEffect(() => {
9
- if (isOpen) {
10
- setInternalValue(value);
11
- }
12
- }, [isOpen, value]);
13
- const handleConfirm = () => {
14
- onSave(internalValue);
15
- onClose();
16
- };
17
- return /* @__PURE__ */ jsx(
18
- Modal,
19
- {
20
- open: isOpen,
21
- handleClose: onClose,
22
- applyDefaultPanel: true,
23
- closeOnEscape: false,
24
- closeOnOutsideClick: false,
25
- panelClassName: "max-w-xl px-6 py-4",
26
- children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
27
- /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
28
- /* @__PURE__ */ jsx("h2", { className: "text-xl font-semibold text-gray-900", children: "Event Description" }),
29
- /* @__PURE__ */ jsx("p", { className: "text-sm text-grey-600 mt-1", children: "Please write about your event." })
30
- ] }),
31
- /* @__PURE__ */ jsx("div", { className: "flex-1 mb-8", children: /* @__PURE__ */ jsx(
32
- FormInput,
33
- {
34
- type: "text",
35
- placeholder: "Enter a description...",
36
- value: internalValue,
37
- onChange: (val) => setInternalValue(val),
38
- isTextArea: true,
39
- autoFocus: true
40
- }
41
- ) }),
42
- /* @__PURE__ */ jsxs("div", { className: "flex sm:flex-row flex-col gap-y-2 gap-x-3", children: [
43
- /* @__PURE__ */ jsx(
44
- Button,
45
- {
46
- onClick: onClose,
47
- variant: "outline",
48
- className: "w-full sm:flex-1 h-11",
49
- children: "Cancel"
50
- }
51
- ),
52
- /* @__PURE__ */ jsx(
53
- Button,
54
- {
55
- onClick: handleConfirm,
56
- className: "w-full sm:flex-1 h-11",
57
- disabled: !internalValue,
58
- children: "Confirm"
59
- }
60
- )
61
- ] })
62
- ] })
63
- }
64
- );
65
- };
66
- const DescriptionModal$1 = memo(DescriptionModal);
67
- export {
68
- DescriptionModal$1 as default
69
- };
70
- //# sourceMappingURL=DescriptionModal.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DescriptionModal.js","sources":["../../../../src/components/EventAddForm/common/DescriptionModal.tsx"],"sourcesContent":["import { useState, useEffect, memo } from \"react\";\r\nimport Modal from \"@/components/ui/Modal\";\r\nimport FormInput from \"@/components/ui/FormInput\";\r\nimport { Button } from \"../../Button\";\r\n\r\n\r\ninterface DescriptionModalProps {\r\n isOpen: boolean;\r\n onClose: () => void;\r\n onSave: (value: string) => void;\r\n value: string;\r\n}\r\n\r\nconst DescriptionModal = ({ isOpen, onClose, onSave, value }: DescriptionModalProps) => {\r\n const [internalValue, setInternalValue] = useState(value);\r\n\r\n // Sync internal state with prop value when modal opens or value changes\r\n useEffect(() => {\r\n if (isOpen) {\r\n setInternalValue(value);\r\n }\r\n }, [isOpen, value]);\r\n\r\n const handleConfirm = () => {\r\n onSave(internalValue);\r\n onClose();\r\n };\r\n\r\n return (\r\n <Modal\r\n open={isOpen}\r\n handleClose={onClose}\r\n applyDefaultPanel={true}\r\n closeOnEscape={false}\r\n closeOnOutsideClick={false}\r\n panelClassName=\"max-w-xl px-6 py-4\"\r\n >\r\n <div className=\"flex flex-col\">\r\n <div className=\"mb-6\">\r\n <h2 className=\"text-xl font-semibold text-gray-900\">Event Description</h2>\r\n <p className=\"text-sm text-grey-600 mt-1\">Please write about your event.</p>\r\n </div>\r\n\r\n <div className=\"flex-1 mb-8\">\r\n <FormInput\r\n type=\"text\"\r\n placeholder=\"Enter a description...\"\r\n value={internalValue}\r\n onChange={(val: any) => setInternalValue(val)}\r\n isTextArea={true}\r\n autoFocus={true}\r\n />\r\n </div>\r\n\r\n <div className=\"flex sm:flex-row flex-col gap-y-2 gap-x-3\">\r\n <Button\r\n onClick={onClose}\r\n variant=\"outline\"\r\n className=\"w-full sm:flex-1 h-11\"\r\n >\r\n Cancel\r\n </Button>\r\n <Button\r\n onClick={handleConfirm}\r\n className=\"w-full sm:flex-1 h-11\"\r\n disabled={!internalValue}\r\n >\r\n Confirm\r\n </Button>\r\n </div>\r\n </div>\r\n </Modal>\r\n );\r\n};\r\n\r\n\r\nexport default memo(DescriptionModal);\r\n"],"names":[],"mappings":";;;;;AAaA,MAAM,mBAAmB,CAAC,EAAE,QAAQ,SAAS,QAAQ,YAAmC;AACpF,QAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,KAAK;AAGxD,YAAU,MAAM;AACZ,QAAI,QAAQ;AACR,uBAAiB,KAAK;AAAA,IAC1B;AAAA,EACJ,GAAG,CAAC,QAAQ,KAAK,CAAC;AAElB,QAAM,gBAAgB,MAAM;AACxB,WAAO,aAAa;AACpB,YAAA;AAAA,EACJ;AAEA,SACI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG,MAAM;AAAA,MACN,aAAa;AAAA,MACb,mBAAmB;AAAA,MACnB,eAAe;AAAA,MACf,qBAAqB;AAAA,MACrB,gBAAe;AAAA,MAEf,UAAA,qBAAC,OAAA,EAAI,WAAU,iBACX,UAAA;AAAA,QAAA,qBAAC,OAAA,EAAI,WAAU,QACX,UAAA;AAAA,UAAA,oBAAC,MAAA,EAAG,WAAU,uCAAsC,UAAA,qBAAiB;AAAA,UACrE,oBAAC,KAAA,EAAE,WAAU,8BAA6B,UAAA,iCAAA,CAA8B;AAAA,QAAA,GAC5E;AAAA,QAEA,oBAAC,OAAA,EAAI,WAAU,eACX,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACG,MAAK;AAAA,YACL,aAAY;AAAA,YACZ,OAAO;AAAA,YACP,UAAU,CAAC,QAAa,iBAAiB,GAAG;AAAA,YAC5C,YAAY;AAAA,YACZ,WAAW;AAAA,UAAA;AAAA,QAAA,GAEnB;AAAA,QAEA,qBAAC,OAAA,EAAI,WAAU,6CACX,UAAA;AAAA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,SAAS;AAAA,cACT,SAAQ;AAAA,cACR,WAAU;AAAA,cACb,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAGD;AAAA,YAAC;AAAA,YAAA;AAAA,cACG,SAAS;AAAA,cACT,WAAU;AAAA,cACV,UAAU,CAAC;AAAA,cACd,UAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAED,EAAA,CACJ;AAAA,MAAA,EAAA,CACJ;AAAA,IAAA;AAAA,EAAA;AAGZ;AAGA,MAAA,qBAAe,KAAK,gBAAgB;"}
@@ -1,8 +0,0 @@
1
- import { default as React } from 'react';
2
-
3
- interface PageAnimatedBackgroundProps {
4
- imageUrl?: string;
5
- fallbackColor?: string;
6
- }
7
- export declare const PageAnimatedBackground: React.FC<PageAnimatedBackgroundProps>;
8
- export {};
@@ -1,7 +0,0 @@
1
- interface EventApproveConfirmationPopupProps {
2
- open: boolean;
3
- setOpen: (open: boolean) => void;
4
- eventId: string;
5
- }
6
- export default function EventApprovalConfirmationModal({ open, setOpen, eventId }: EventApproveConfirmationPopupProps): import("react/jsx-runtime").JSX.Element;
7
- export {};
@@ -1,92 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import InformationPopover from "../../InformationPopover.js";
3
- import { Checkbox } from "../../ui/Checkbox.js";
4
- import InputErrorMessage from "../../ui/InputErrorMessage.js";
5
- import { Radio } from "../../ui/Radio.js";
6
- import { cn } from "../../../utils/utils.js";
7
- function CheckboxGroup({
8
- label,
9
- options,
10
- formData,
11
- setFormData,
12
- field,
13
- classname,
14
- formErrors,
15
- validation,
16
- tooltip,
17
- inputType = "checkbox",
18
- filled = true
19
- }) {
20
- const handleChanges = (value) => {
21
- const currentValues = formData[field] || [];
22
- let newValues;
23
- if (currentValues.includes(value)) {
24
- newValues = currentValues.filter((item) => item !== value);
25
- } else {
26
- newValues = [...currentValues, value];
27
- }
28
- setFormData((prev) => ({
29
- ...prev,
30
- [field]: newValues
31
- }));
32
- if (validation) {
33
- validation();
34
- }
35
- };
36
- return /* @__PURE__ */ jsxs("div", { className: `transition-all duration-300 ease-in-out`, children: [
37
- /* @__PURE__ */ jsx("div", { className: "flex justify-between items-center mb-3", children: /* @__PURE__ */ jsxs("div", { className: "w-full flex items-center gap-x-2", children: [
38
- /* @__PURE__ */ jsxs("label", { className: "block text-sm text-gray-700 font-medium whitespace-nowrap", children: [
39
- label,
40
- " ",
41
- /* @__PURE__ */ jsx("span", { className: "text-meta-1 animate-pulse", children: "*" })
42
- ] }),
43
- tooltip && /* @__PURE__ */ jsx(InformationPopover, { text: tooltip })
44
- ] }) }),
45
- /* @__PURE__ */ jsx("div", { className: cn(
46
- "grid grid-cols-1 gap-3",
47
- classname
48
- ), children: options.map((option, index) => {
49
- var _a, _b;
50
- return /* @__PURE__ */ jsx(
51
- "div",
52
- {
53
- title: (option == null ? void 0 : option.title) || void 0,
54
- className: option.disabled ? "cursor-not-allowed opacity-60" : "group",
55
- children: /* @__PURE__ */ jsxs("label", { className: `relative flex items-center cursor-pointer select-none pr-5 space-x-2`, children: [
56
- inputType === "radio" ? /* @__PURE__ */ jsx(
57
- Radio,
58
- {
59
- name: field,
60
- value: option.value,
61
- checked: (_a = formData[field]) == null ? void 0 : _a.includes(option.value),
62
- onChange: () => handleChanges(option.value),
63
- disabled: option.disabled,
64
- className: "mr-3"
65
- }
66
- ) : /* @__PURE__ */ jsx(
67
- Checkbox,
68
- {
69
- checked: (_b = formData[field]) == null ? void 0 : _b.includes(option.value),
70
- onCheckedChange: () => handleChanges(option.value),
71
- disabled: option.disabled,
72
- className: "mr-3",
73
- filled
74
- }
75
- ),
76
- /* @__PURE__ */ jsxs("div", { className: "relative flex gap-2", children: [
77
- /* @__PURE__ */ jsx("span", { className: `text-sm ${option.disabled ? "text-grey-400" : "text-gray-700 hover:text-gray-900"} transition-colors duration-200`, children: (option == null ? void 0 : option.label) || option.value }),
78
- option.description && /* @__PURE__ */ jsx(InformationPopover, { text: option.description, className: `${option.disabled ? "text-grey-400" : "text-grey-900"}` }),
79
- option.tooltip && /* @__PURE__ */ jsx(InformationPopover, { text: option.tooltip, className: `${option.disabled ? "text-grey-400" : "text-grey-900"}` })
80
- ] })
81
- ] })
82
- },
83
- index
84
- );
85
- }) }),
86
- /* @__PURE__ */ jsx(InputErrorMessage, { error: (formErrors == null ? void 0 : formErrors[field]) || "", className: "mt-2" })
87
- ] });
88
- }
89
- export {
90
- CheckboxGroup as default
91
- };
92
- //# sourceMappingURL=CheckboxGroup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CheckboxGroup.js","sources":["../../../../src/components/EventAddForm/components/CheckboxGroup.tsx"],"sourcesContent":["import InformationPopover from \"@/components/InformationPopover\";\r\nimport { Checkbox } from \"@/components/ui/Checkbox\";\r\nimport InputErrorMessage from \"@/components/ui/InputErrorMessage\";\r\nimport { Radio } from \"@/components/ui/Radio\";\r\nimport { cn } from \"@/utils/utils\";\r\n\r\ninterface CheckboxGroupProps {\r\n label: string;\r\n options: { value: string, label?: string; disabled: boolean, title?: string, description?: string; tooltip?: string; }[];\r\n formData: any;\r\n setFormData: any;\r\n field: string;\r\n classname?: string;\r\n description?: string;\r\n formErrors?: any;\r\n validation?: any;\r\n tooltip?: string;\r\n inputType?: 'checkbox' | 'radio';\r\n filled?: boolean;\r\n}\r\n\r\nexport default function CheckboxGroup({\r\n label,\r\n options,\r\n formData,\r\n setFormData,\r\n field,\r\n classname,\r\n formErrors,\r\n validation,\r\n tooltip,\r\n inputType = 'checkbox',\r\n filled = true,\r\n}: CheckboxGroupProps) {\r\n\r\n const handleChanges = (value: string) => {\r\n // Create new value array directly\r\n const currentValues = formData[field] || [];\r\n let newValues: any;\r\n\r\n if (currentValues.includes(value)) {\r\n newValues = currentValues.filter((item: string) => item !== value);\r\n } else {\r\n newValues = [...currentValues, value];\r\n }\r\n\r\n // Pass full object update to compatible with setField/setMultipleFields\r\n setFormData((prev: any) => ({\r\n ...prev,\r\n [field]: newValues\r\n }));\r\n\r\n // Manually trigger validation since checkboxes don't really 'blur'\r\n if (validation) {\r\n validation();\r\n }\r\n };\r\n\r\n return (\r\n <div className={`transition-all duration-300 ease-in-out`}>\r\n <div className=\"flex justify-between items-center mb-3\">\r\n <div className=\"w-full flex items-center gap-x-2\">\r\n <label className=\"block text-sm text-gray-700 font-medium whitespace-nowrap\">\r\n {label} <span className=\"text-meta-1 animate-pulse\">*</span>\r\n </label>\r\n {tooltip && <InformationPopover text={tooltip} />}\r\n </div>\r\n </div>\r\n\r\n <div className={cn(\r\n \"grid grid-cols-1 gap-3\",\r\n classname\r\n )}>\r\n {options.map((option, index) => (\r\n <div\r\n key={index}\r\n title={option?.title || undefined}\r\n className={option.disabled ? \"cursor-not-allowed opacity-60\" : \"group\"}\r\n >\r\n <label className={`relative flex items-center cursor-pointer select-none pr-5 space-x-2`}>\r\n {inputType === 'radio' ? (\r\n <Radio\r\n name={field}\r\n value={option.value}\r\n checked={formData[field]?.includes(option.value)}\r\n onChange={() => handleChanges(option.value)}\r\n disabled={option.disabled}\r\n className=\"mr-3\"\r\n />\r\n ) : (\r\n <Checkbox\r\n checked={formData[field]?.includes(option.value)}\r\n onCheckedChange={() => handleChanges(option.value)}\r\n disabled={option.disabled}\r\n className=\"mr-3\"\r\n filled={filled}\r\n />\r\n )}\r\n <div className=\"relative flex gap-2\">\r\n <span className={`text-sm ${option.disabled ? \"text-grey-400\" : \"text-gray-700 hover:text-gray-900\"} transition-colors duration-200`}>\r\n {option?.label || option.value}\r\n </span>\r\n {option.description && <InformationPopover text={option.description} className={`${option.disabled ? \"text-grey-400\" : \"text-grey-900\"}`} />}\r\n {option.tooltip && <InformationPopover text={option.tooltip} className={`${option.disabled ? \"text-grey-400\" : \"text-grey-900\"}`} />}\r\n </div>\r\n </label>\r\n </div>\r\n ))}\r\n </div>\r\n <InputErrorMessage error={formErrors?.[field] || \"\"} className=\"mt-2\" />\r\n </div >\r\n );\r\n}\r\n"],"names":[],"mappings":";;;;;;AAqBA,SAAwB,cAAc;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,SAAS;AACb,GAAuB;AAEnB,QAAM,gBAAgB,CAAC,UAAkB;AAErC,UAAM,gBAAgB,SAAS,KAAK,KAAK,CAAA;AACzC,QAAI;AAEJ,QAAI,cAAc,SAAS,KAAK,GAAG;AAC/B,kBAAY,cAAc,OAAO,CAAC,SAAiB,SAAS,KAAK;AAAA,IACrE,OAAO;AACH,kBAAY,CAAC,GAAG,eAAe,KAAK;AAAA,IACxC;AAGA,gBAAY,CAAC,UAAe;AAAA,MACxB,GAAG;AAAA,MACH,CAAC,KAAK,GAAG;AAAA,IAAA,EACX;AAGF,QAAI,YAAY;AACZ,iBAAA;AAAA,IACJ;AAAA,EACJ;AAEA,SACI,qBAAC,OAAA,EAAI,WAAW,2CACZ,UAAA;AAAA,IAAA,oBAAC,SAAI,WAAU,0CACX,UAAA,qBAAC,OAAA,EAAI,WAAU,oCACX,UAAA;AAAA,MAAA,qBAAC,SAAA,EAAM,WAAU,6DACZ,UAAA;AAAA,QAAA;AAAA,QAAM;AAAA,QAAC,oBAAC,QAAA,EAAK,WAAU,6BAA4B,UAAA,IAAA,CAAC;AAAA,MAAA,GACzD;AAAA,MACC,WAAW,oBAAC,oBAAA,EAAmB,MAAM,QAAA,CAAS;AAAA,IAAA,EAAA,CACnD,EAAA,CACJ;AAAA,IAEA,oBAAC,SAAI,WAAW;AAAA,MACZ;AAAA,MACA;AAAA,IAAA,GAEC,UAAA,QAAQ,IAAI,CAAC,QAAQ,UAAA;;AAClB;AAAA,QAAC;AAAA,QAAA;AAAA,UAEG,QAAO,iCAAQ,UAAS;AAAA,UACxB,WAAW,OAAO,WAAW,kCAAkC;AAAA,UAE/D,UAAA,qBAAC,SAAA,EAAM,WAAW,wEACb,UAAA;AAAA,YAAA,cAAc,UACX;AAAA,cAAC;AAAA,cAAA;AAAA,gBACG,MAAM;AAAA,gBACN,OAAO,OAAO;AAAA,gBACd,UAAS,cAAS,KAAK,MAAd,mBAAiB,SAAS,OAAO;AAAA,gBAC1C,UAAU,MAAM,cAAc,OAAO,KAAK;AAAA,gBAC1C,UAAU,OAAO;AAAA,gBACjB,WAAU;AAAA,cAAA;AAAA,YAAA,IAGd;AAAA,cAAC;AAAA,cAAA;AAAA,gBACG,UAAS,cAAS,KAAK,MAAd,mBAAiB,SAAS,OAAO;AAAA,gBAC1C,iBAAiB,MAAM,cAAc,OAAO,KAAK;AAAA,gBACjD,UAAU,OAAO;AAAA,gBACjB,WAAU;AAAA,gBACV;AAAA,cAAA;AAAA,YAAA;AAAA,YAGR,qBAAC,OAAA,EAAI,WAAU,uBACX,UAAA;AAAA,cAAA,oBAAC,QAAA,EAAK,WAAW,WAAW,OAAO,WAAW,kBAAkB,mCAAmC,mCAC9F,WAAA,iCAAQ,UAAS,OAAO,OAC7B;AAAA,cACC,OAAO,eAAe,oBAAC,oBAAA,EAAmB,MAAM,OAAO,aAAa,WAAW,GAAG,OAAO,WAAW,kBAAkB,eAAe,IAAI;AAAA,cACzI,OAAO,WAAW,oBAAC,oBAAA,EAAmB,MAAM,OAAO,SAAS,WAAW,GAAG,OAAO,WAAW,kBAAkB,eAAe,GAAA,CAAI;AAAA,YAAA,EAAA,CACtI;AAAA,UAAA,EAAA,CACJ;AAAA,QAAA;AAAA,QA9BK;AAAA,MAAA;AAAA,KAgCZ,GACL;AAAA,IACA,oBAAC,qBAAkB,QAAO,yCAAa,WAAU,IAAI,WAAU,OAAA,CAAO;AAAA,EAAA,GAC1E;AAER;"}