@123usmanhaider321/ui 0.1.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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-87FQZHOs.js +11119 -0
  19. package/dist/index-87FQZHOs.js.map +1 -0
  20. package/dist/index-Tl9g213f.js +60475 -0
  21. package/dist/index-Tl9g213f.js.map +1 -0
  22. package/dist/index.d.ts +1 -10
  23. package/dist/index.es-CpgTaa1Y.js +16734 -0
  24. package/dist/index.es-CpgTaa1Y.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 +3758 -4012
  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,462 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import React__default, { memo, useState } from "react";
3
- import { AnimatePresence, motion } from "framer-motion";
4
- import FileUpload from "../components/FileUpload.js";
5
- import FormInput from "../../ui/FormInput.js";
6
- import DescriptionModal from "../common/DescriptionModal.js";
7
- import CheckboxGroup from "../components/CheckboxGroup.js";
8
- import DateTimeField from "../components/DateTimeField.js";
9
- import { GenericLocationInput } from "../components/GoogleMapsAutocompleteInput.js";
10
- import { validateEventDates } from "../schemas/step1.js";
11
- import InformationPopover from "../../InformationPopover.js";
12
- import { TicketTierAvailabilityType } from "../../../types/types.js";
13
- import ConfirmationModal from "../common/ConfirmationModal.js";
14
- import { useGetEventCategoriesQuery } from "../../../services/single-event-api.js";
15
- import InputErrorMessage from "../../ui/InputErrorMessage.js";
16
- const EVENT_TYPE_OPTIONS = [
17
- { value: "INCLUSIVE", label: "Open for all", disabled: false },
18
- { value: "INTERNAL", label: "Institution only", disabled: false },
19
- { value: "INVITE_ONLY", label: "Invite only", disabled: false },
20
- { value: "UN_LISTED", label: "Hidden (link only)", disabled: false }
21
- ];
22
- function StepOne({ formState, setField, setMultipleFields, errors, validateField, setErrors, onBusyStateChange, isBusy }) {
23
- var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
24
- const { data: categories = [] } = useGetEventCategoriesQuery();
25
- const [isDescriptionModalOpen, setIsDescriptionModalOpen] = useState(false);
26
- React__default.useEffect(() => {
27
- import("react-quill-new");
28
- }, []);
29
- const [showDateConflictModal, setShowDateConflictModal] = useState(false);
30
- const [pendingDateUpdate, setPendingDateUpdate] = useState(null);
31
- const [conflictingTiers, setConflictingTiers] = useState([]);
32
- const stripHtml = (html) => {
33
- const doc = new DOMParser().parseFromString(html, "text/html");
34
- return doc.body.textContent || "";
35
- };
36
- const handleSetData = (updater) => {
37
- setMultipleFields((prev) => {
38
- const newData = updater(prev);
39
- const othersCategory = categories.find((cat) => cat.name === "Others");
40
- if (othersCategory && newData.event_categories && !newData.event_categories.includes(othersCategory.id)) {
41
- delete newData.custom_category;
42
- }
43
- return newData;
44
- });
45
- };
46
- const checkTierConflicts = (potentialNewState) => {
47
- var _a2, _b2, _c2, _d2;
48
- if (!potentialNewState.ticket_tiers) return [];
49
- const tiers = Object.values(potentialNewState.ticket_tiers);
50
- const conflicts = [];
51
- const startDate = ((_a2 = potentialNewState.registration_start_timestamp) == null ? void 0 : _a2.date) || ((_b2 = potentialNewState.event_start_timestamp) == null ? void 0 : _b2.date);
52
- const endDate = ((_c2 = potentialNewState.registration_end_timestamp) == null ? void 0 : _c2.date) || ((_d2 = potentialNewState.event_end_timestamp) == null ? void 0 : _d2.date);
53
- if (!startDate || !endDate) return [];
54
- tiers.forEach((tier) => {
55
- if (tier.availability_type === TicketTierAvailabilityType.CUSTOM && tier.availability_schedule) {
56
- const hasInvalidDates = tier.availability_schedule.some((dateKey) => {
57
- return dateKey < startDate || dateKey > endDate;
58
- });
59
- if (hasInvalidDates) {
60
- conflicts.push(tier);
61
- }
62
- }
63
- });
64
- return conflicts;
65
- };
66
- const handleDateUpdate = (updater) => {
67
- const potentialNewState = updater(formState);
68
- const datesChanged = JSON.stringify(potentialNewState.event_start_timestamp) !== JSON.stringify(formState.event_start_timestamp) || JSON.stringify(potentialNewState.event_end_timestamp) !== JSON.stringify(formState.event_end_timestamp) || JSON.stringify(potentialNewState.registration_start_timestamp) !== JSON.stringify(formState.registration_start_timestamp) || JSON.stringify(potentialNewState.registration_end_timestamp) !== JSON.stringify(formState.registration_end_timestamp);
69
- if (!datesChanged) {
70
- handleSetData(updater);
71
- return;
72
- }
73
- const conflicts = checkTierConflicts(potentialNewState);
74
- if (conflicts.length > 0) {
75
- setConflictingTiers(conflicts);
76
- setPendingDateUpdate(() => updater);
77
- setShowDateConflictModal(true);
78
- } else {
79
- handleSetData(updater);
80
- const dateErrors = validateEventDates(potentialNewState);
81
- const hasDateErrors = Object.keys(dateErrors).length > 0;
82
- if (hasDateErrors) {
83
- setErrors((prev) => ({
84
- ...prev,
85
- ...dateErrors
86
- }));
87
- } else {
88
- setErrors((prev) => {
89
- const next = { ...prev };
90
- delete next.event_start_timestamp;
91
- delete next.event_end_timestamp;
92
- delete next.registration_start_timestamp;
93
- delete next.registration_end_timestamp;
94
- return next;
95
- });
96
- }
97
- }
98
- };
99
- const handleConfirmDateChange = () => {
100
- if (pendingDateUpdate) {
101
- const newState = pendingDateUpdate(formState);
102
- const updatedTiers = { ...formState.ticket_tiers };
103
- conflictingTiers.forEach((tier) => {
104
- delete updatedTiers[tier.id];
105
- });
106
- setMultipleFields({
107
- ...newState,
108
- ticket_tiers: updatedTiers
109
- });
110
- setShowDateConflictModal(false);
111
- setPendingDateUpdate(null);
112
- setConflictingTiers([]);
113
- if (errors == null ? void 0 : errors.event_start_timestamp) validateField("event_start_timestamp");
114
- if (errors == null ? void 0 : errors.event_end_timestamp) validateField("event_end_timestamp");
115
- if (errors == null ? void 0 : errors.registration_start_timestamp) validateField("registration_start_timestamp");
116
- if (errors == null ? void 0 : errors.registration_end_timestamp) validateField("registration_end_timestamp");
117
- }
118
- };
119
- return /* @__PURE__ */ jsxs("div", { className: "flex flex-col lg:flex-row gap-8 items-start", children: [
120
- /* @__PURE__ */ jsx("div", { className: "w-full lg:max-w-[40%] max-h-[500px] shrink-0 lg:sticky lg:top-4", children: /* @__PURE__ */ jsxs("div", { children: [
121
- /* @__PURE__ */ jsx(
122
- FileUpload,
123
- {
124
- formData: formState,
125
- field: "image_url",
126
- setFormData: (updater) => {
127
- handleSetData(updater);
128
- },
129
- formErrors: errors,
130
- setError: (error) => {
131
- if (error) {
132
- setErrors((prev) => ({ ...prev, image_url: error }));
133
- } else {
134
- setErrors((prev) => {
135
- const newErrors = { ...prev };
136
- delete newErrors.image_url;
137
- return newErrors;
138
- });
139
- }
140
- },
141
- onLoadingChange: onBusyStateChange
142
- }
143
- ),
144
- /* @__PURE__ */ jsx(
145
- InputErrorMessage,
146
- {
147
- error: isBusy && (errors == null ? void 0 : errors.image_url) ? "Your image is still uploading. Please wait..." : (errors == null ? void 0 : errors.image_url) == "Invalid input: expected string, received undefined" ? "Please upload an image" : errors == null ? void 0 : errors.image_url,
148
- className: "mt-2"
149
- }
150
- )
151
- ] }) }),
152
- /* @__PURE__ */ jsxs("div", { className: "w-full flex-1 rounded-lg", children: [
153
- /* @__PURE__ */ jsx("div", { "data-name": "name", className: "px-4 rounded-xl", children: /* @__PURE__ */ jsx(
154
- FormInput,
155
- {
156
- label: "Event name",
157
- tooltip: "The official name of your event.",
158
- type: "text",
159
- placeholder: "Paymo Events",
160
- value: formState.name || "",
161
- onChange: (e) => {
162
- var _a2;
163
- return setField("name", (_a2 = e.target) == null ? void 0 : _a2.value);
164
- },
165
- onBlur: () => validateField("name"),
166
- error: errors.name,
167
- inputClassName: "text-[26px] py-2",
168
- inputCon: "shadow-none rounded-b-none rounded-t-sm",
169
- className: "px-0",
170
- required: true
171
- }
172
- ) }),
173
- /* @__PURE__ */ jsxs("div", { "data-name": "description", className: "px-4 py-4 rounded-xl", children: [
174
- /* @__PURE__ */ jsxs("div", { className: "flex items-center mb-2 gap-x-2", children: [
175
- /* @__PURE__ */ jsxs("label", { className: "block text-sm font-medium text-gray-700", children: [
176
- "Write description ",
177
- /* @__PURE__ */ jsx("span", { className: "text-error-500", children: "*" })
178
- ] }),
179
- /* @__PURE__ */ jsx(InformationPopover, { text: "A detailed explanation of what your event is about." })
180
- ] }),
181
- /* @__PURE__ */ jsx(
182
- "button",
183
- {
184
- onClick: () => setIsDescriptionModalOpen(true),
185
- className: `
186
- w-full text-left px-3 py-2 rounded-lg text-sm input-border bg-white cursor-pointer transition-colors focus-visible:ring-2 focus-visible:ring-primaryx-500 focus-visible:ring-offset-2 outline-none focus:outline-none
187
- flex items-center min-h-[44px]
188
- ${errors.description ? "border-error-500 bg-error-50" : "input-border"}
189
- `,
190
- children: formState.description ? /* @__PURE__ */ jsx("p", { className: "text-gray-900 line-clamp-2 break-all", children: stripHtml(formState.description) }) : /* @__PURE__ */ jsx("span", { className: "text-gray-400", children: "Tell us about your event.." })
191
- }
192
- ),
193
- /* @__PURE__ */ jsx(InputErrorMessage, { error: errors == null ? void 0 : errors.description, className: "mt-2" }),
194
- /* @__PURE__ */ jsx(
195
- DescriptionModal,
196
- {
197
- isOpen: isDescriptionModalOpen,
198
- value: (formState == null ? void 0 : formState.description) || "",
199
- onClose: () => {
200
- setIsDescriptionModalOpen(false);
201
- },
202
- onSave: (val) => {
203
- setField("description", val);
204
- }
205
- }
206
- )
207
- ] }),
208
- /* @__PURE__ */ jsx("div", { "data-name": "event_type", className: "px-4 py-4 rounded-xl", children: /* @__PURE__ */ jsx(
209
- CheckboxGroup,
210
- {
211
- label: "Select your event type",
212
- tooltip: "Choose the type of audience for this event.",
213
- options: EVENT_TYPE_OPTIONS.map((option) => {
214
- const selectedEventTypes = formState.event_type || [];
215
- const isInclusive = selectedEventTypes.includes("INCLUSIVE");
216
- const isInternal = selectedEventTypes.includes("INTERNAL");
217
- const isUnlisted = selectedEventTypes.includes("UN_LISTED");
218
- let disabled = false;
219
- let tooltip = "";
220
- if (option.value === "INCLUSIVE") {
221
- if (isInternal || isUnlisted) {
222
- disabled = true;
223
- tooltip = "Events open to everyone cannot be restricted to institution members or be hidden.";
224
- } else {
225
- tooltip = "Allows anyone to view and register for the event.";
226
- }
227
- }
228
- if (option.value === "INTERNAL") {
229
- if (isInclusive) {
230
- disabled = true;
231
- tooltip = "Institution-only events cannot be open to everyone.";
232
- } else {
233
- tooltip = "Restricts the event to members of your institution only.";
234
- }
235
- }
236
- if (option.value === "UN_LISTED") {
237
- if (isInclusive) {
238
- disabled = true;
239
- tooltip = "Hidden events cannot be open to everyone.";
240
- } else {
241
- tooltip = "The event will not appear in public listings and is accessible only via link.";
242
- }
243
- }
244
- if (option.value === "INVITE_ONLY") {
245
- tooltip = "Every registration will be treated as a request that will be approved by Organizer";
246
- }
247
- return { ...option, disabled, tooltip };
248
- }),
249
- formData: formState,
250
- setFormData: (updater) => {
251
- handleSetData(updater);
252
- },
253
- field: "event_type",
254
- formErrors: errors,
255
- inputType: "checkbox",
256
- classname: "flex flex-col gap-y-3",
257
- filled: false
258
- }
259
- ) }),
260
- /* @__PURE__ */ jsx(AnimatePresence, { children: ((_a = formState.event_type) == null ? void 0 : _a.includes("INTERNAL")) && /* @__PURE__ */ jsx(
261
- motion.div,
262
- {
263
- initial: { opacity: 0, height: 0 },
264
- animate: { opacity: 1, height: "auto" },
265
- exit: { opacity: 0, height: 0 },
266
- transition: { duration: 0.2 },
267
- children: /* @__PURE__ */ jsx("div", { "data-name": "institution_name", className: "px-4 py-4 rounded-xl", children: /* @__PURE__ */ jsx(
268
- FormInput,
269
- {
270
- label: "Institution name",
271
- placeholder: "Enter institution name",
272
- value: formState.institution_name || "",
273
- onChange: (e) => setField("institution_name", e.target.value),
274
- onBlur: () => validateField("institution_name"),
275
- error: errors.institution_name,
276
- type: "text",
277
- required: true
278
- }
279
- ) })
280
- }
281
- ) }),
282
- /* @__PURE__ */ jsxs("div", { "data-name": "registration_start_timestamp", className: "px-2 py-4 rounded-xl", children: [
283
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-2 px-2", children: [
284
- /* @__PURE__ */ jsxs("label", { className: "block text-sm font-medium text-gray-700", children: [
285
- "Registration timeline ",
286
- /* @__PURE__ */ jsx("span", { className: "text-meta-1 animate-pulse", children: "*" })
287
- ] }),
288
- /* @__PURE__ */ jsx(InformationPopover, { text: "Set the start and end dates/times for ticket registrations." })
289
- ] }),
290
- /* @__PURE__ */ jsx(
291
- DateTimeField,
292
- {
293
- label: "",
294
- formData: formState,
295
- setFormData: handleDateUpdate,
296
- field: ["registration_start_timestamp", "registration_end_timestamp"],
297
- classname: "bg-transparent",
298
- formDateErrors: errors,
299
- startMaxDate: ((_b = formState.event_start_timestamp) == null ? void 0 : _b.date) && ((_c = formState.event_end_timestamp) == null ? void 0 : _c.date) ? formState.event_start_timestamp.date < formState.event_end_timestamp.date ? formState.event_start_timestamp.date : formState.event_end_timestamp.date : ((_d = formState.event_start_timestamp) == null ? void 0 : _d.date) || ((_e = formState.event_end_timestamp) == null ? void 0 : _e.date),
300
- startMaxTime: ((_f = formState.event_start_timestamp) == null ? void 0 : _f.date) && ((_g = formState.registration_start_timestamp) == null ? void 0 : _g.date) && formState.event_start_timestamp.date === formState.registration_start_timestamp.date ? formState.event_start_timestamp.time : void 0,
301
- endMaxDate: (_h = formState.event_end_timestamp) == null ? void 0 : _h.date,
302
- endMaxTime: ((_i = formState.event_end_timestamp) == null ? void 0 : _i.date) && ((_j = formState.registration_end_timestamp) == null ? void 0 : _j.date) && formState.event_end_timestamp.date === formState.registration_end_timestamp.date ? formState.event_end_timestamp.time : void 0
303
- }
304
- )
305
- ] }),
306
- /* @__PURE__ */ jsxs("div", { "data-name": "event_start_timestamp", className: "px-2 py-4 rounded-xl", children: [
307
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-2 px-2", children: [
308
- /* @__PURE__ */ jsxs("label", { className: "block text-sm font-medium text-gray-700", children: [
309
- "Event timeline ",
310
- /* @__PURE__ */ jsx("span", { className: "text-meta-1 animate-pulse", children: "*" })
311
- ] }),
312
- /* @__PURE__ */ jsx(InformationPopover, { text: "Set the start and end dates/times for your event." })
313
- ] }),
314
- /* @__PURE__ */ jsx(
315
- DateTimeField,
316
- {
317
- label: "",
318
- formData: formState,
319
- setFormData: handleDateUpdate,
320
- field: ["event_start_timestamp", "event_end_timestamp"],
321
- classname: "bg-transparent",
322
- formDateErrors: errors,
323
- startMinDate: (_k = formState.registration_start_timestamp) == null ? void 0 : _k.date,
324
- startMinTime: ((_l = formState.registration_start_timestamp) == null ? void 0 : _l.date) && ((_m = formState.event_start_timestamp) == null ? void 0 : _m.date) && formState.registration_start_timestamp.date === formState.event_start_timestamp.date ? formState.registration_start_timestamp.time : void 0,
325
- endMinDate: ((_n = formState.registration_start_timestamp) == null ? void 0 : _n.date) && ((_o = formState.registration_end_timestamp) == null ? void 0 : _o.date) ? formState.registration_start_timestamp.date > formState.registration_end_timestamp.date ? formState.registration_start_timestamp.date : formState.registration_end_timestamp.date : ((_p = formState.registration_end_timestamp) == null ? void 0 : _p.date) || ((_q = formState.registration_start_timestamp) == null ? void 0 : _q.date),
326
- endMinTime: ((_r = formState.registration_end_timestamp) == null ? void 0 : _r.date) && ((_s = formState.event_end_timestamp) == null ? void 0 : _s.date) && formState.registration_end_timestamp.date === formState.event_end_timestamp.date ? formState.registration_end_timestamp.time : void 0
327
- }
328
- )
329
- ] }),
330
- /* @__PURE__ */ jsxs("div", { "data-name": "location_type", className: "px-4 py-4 rounded-xl", children: [
331
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-2 mb-2", children: [
332
- /* @__PURE__ */ jsxs("label", { className: "block text-sm font-medium text-gray-700", children: [
333
- "Venue ",
334
- /* @__PURE__ */ jsx("span", { className: "text-meta-1 animate-pulse", children: "*" })
335
- ] }),
336
- /* @__PURE__ */ jsx(InformationPopover, { text: "The place where the event will be conducted." })
337
- ] }),
338
- /* @__PURE__ */ jsx(
339
- GenericLocationInput,
340
- {
341
- googleApiKey: process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY,
342
- enableGoogleMeet: false,
343
- enableCustomLinks: true,
344
- enablePhysicalLocation: true,
345
- error: (errors.location_data || errors.venue || errors.location_type) && "Please select a venue / location",
346
- onLocationSelected: (location) => {
347
- setMultipleFields({
348
- venue: (location == null ? void 0 : location.displayName) || "",
349
- venue_place_id: (location == null ? void 0 : location.placeId) || "",
350
- location_data: location,
351
- // Fix stale data
352
- location_type: location == null ? void 0 : location.type
353
- });
354
- if (location) {
355
- setErrors((prev) => {
356
- const newErrors = { ...prev };
357
- delete newErrors.venue;
358
- delete newErrors.location_data;
359
- delete newErrors.location_type;
360
- return newErrors;
361
- });
362
- } else {
363
- setErrors((prev) => ({
364
- ...prev,
365
- venue: "Location is required"
366
- }));
367
- }
368
- },
369
- formData: formState,
370
- label: "",
371
- placeholder: "Search for a location or add meeting details..."
372
- }
373
- )
374
- ] }),
375
- /* @__PURE__ */ jsxs("div", { "data-name": "event_categories", className: "px-4 py-4 rounded-xl", children: [
376
- /* @__PURE__ */ jsx(
377
- CheckboxGroup,
378
- {
379
- label: "Select event category",
380
- tooltip: "Select the category that best describes your event.",
381
- options: (() => {
382
- const dynamicOptions = categories.map((cat) => ({
383
- value: cat.id,
384
- label: cat.name,
385
- disabled: false
386
- }));
387
- return dynamicOptions;
388
- })(),
389
- formData: formState,
390
- setFormData: (updater) => {
391
- handleSetData(updater);
392
- },
393
- field: "event_categories",
394
- formErrors: errors,
395
- inputType: "checkbox",
396
- classname: "grid grid-cols-1 sm:grid-cols-2 gap-4",
397
- filled: false
398
- }
399
- ),
400
- /* @__PURE__ */ jsx(AnimatePresence, { children: (() => {
401
- var _a2;
402
- const othersCategory = categories.find((cat) => cat.name === "Others");
403
- const othersCategoryId = othersCategory == null ? void 0 : othersCategory.id;
404
- return ((_a2 = formState.event_categories) == null ? void 0 : _a2.includes(othersCategoryId)) && /* @__PURE__ */ jsx(
405
- motion.div,
406
- {
407
- initial: { height: 0, opacity: 0, marginTop: 0 },
408
- animate: { height: "auto", opacity: 1, marginTop: 16 },
409
- exit: { height: 0, opacity: 0, marginTop: 0 },
410
- transition: { duration: 0.3, ease: "easeInOut" },
411
- children: /* @__PURE__ */ jsx(
412
- FormInput,
413
- {
414
- label: "Please specify",
415
- type: "text",
416
- placeholder: "e.g. Charity gala, Reunion, etc.",
417
- value: formState.custom_category || "",
418
- onChange: (e) => setField("custom_category", e.target.value),
419
- onBlur: () => validateField("custom_category"),
420
- error: errors.custom_category
421
- }
422
- )
423
- }
424
- );
425
- })() })
426
- ] })
427
- ] }),
428
- /* @__PURE__ */ jsx(
429
- ConfirmationModal,
430
- {
431
- open: showDateConflictModal,
432
- title: "Date conflict detected",
433
- description: `Changing the event dates will invalidate the following ticket tier(s) because their custom dates fall outside the new range. Proceeding will permanently delete them.`,
434
- onClose: () => {
435
- setShowDateConflictModal(false);
436
- setTimeout(() => {
437
- setPendingDateUpdate(null);
438
- setConflictingTiers([]);
439
- }, 300);
440
- },
441
- onConfirm: handleConfirmDateChange,
442
- confirmText: "Update & delete tiers",
443
- cancelText: "Cancel",
444
- children: /* @__PURE__ */ jsx("div", { className: "space-y-3 mt-4 border-t border-grey-100 pt-4 max-h-[200px] overflow-y-auto pr-2", children: conflictingTiers.map((tier) => /* @__PURE__ */ jsxs("div", { className: "bg-error-50 border border-error-200 rounded-lg p-3", children: [
445
- /* @__PURE__ */ jsxs("div", { className: "flex items-baseline justify-between mb-1", children: [
446
- /* @__PURE__ */ jsx("h4", { className: "text-sm font-semibold text-error-900 truncate pr-4", children: tier.name }),
447
- /* @__PURE__ */ jsxs("span", { className: "text-sm font-bold text-error-700 whitespace-nowrap", children: [
448
- "Rs. ",
449
- tier.price.toLocaleString()
450
- ] })
451
- ] }),
452
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-3 text-xs text-error-600/80", children: /* @__PURE__ */ jsx("p", { className: "line-clamp-1", children: tier.description }) })
453
- ] }, tier.id)) })
454
- }
455
- )
456
- ] });
457
- }
458
- const StepOne$1 = memo(StepOne);
459
- export {
460
- StepOne$1 as default
461
- };
462
- //# sourceMappingURL=StepOne.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StepOne.js","sources":["../../../../src/components/EventAddForm/steps/StepOne.tsx"],"sourcesContent":["import React, { memo, useState } from 'react';\r\nimport { AnimatePresence, motion } from 'framer-motion';\r\nimport { StepperFormState } from '../types';\r\nimport FileUpload from '@/components/EventAddForm/components/FileUpload';\r\nimport FormInput from '@/components/ui/FormInput'; // Reusing established Input\r\nimport DescriptionModal from '../common/DescriptionModal';\r\nimport CheckboxGroup from '@/components/EventAddForm/components/CheckboxGroup'; // For Categories and Event type\r\nimport DateTimeField from '@/components/EventAddForm/components/DateTimeField';\r\nimport { GenericLocationInput } from '@/components/EventAddForm/components/GoogleMapsAutocompleteInput';\r\nimport { validateEventDates } from '../schemas/step1';\r\nimport InformationPopover from '../../InformationPopover';\r\nimport { TicketTier, TicketTierAvailabilityType } from '@/types/types';\r\nimport ConfirmationModal from '../common/ConfirmationModal';\r\nimport { useGetEventCategoriesQuery } from '@/services/single-event-api';\r\nimport Image from 'next/image';\r\nimport InputErrorMessage from '@/components/ui/InputErrorMessage';\r\n\r\n// Options for Event type\r\nconst EVENT_TYPE_OPTIONS = [\r\n { value: 'INCLUSIVE', label: 'Open for all', disabled: false },\r\n { value: 'INTERNAL', label: 'Institution only', disabled: false },\r\n { value: 'INVITE_ONLY', label: 'Invite only', disabled: false },\r\n { value: 'UN_LISTED', label: 'Hidden (link only)', disabled: false },\r\n];\r\n\r\n// Options for Event Categories\r\n// const CATEGORY_OPTIONS = [\r\n// { value: 'Music & Concerts', disabled: false },\r\n// { value: 'Arts & Culture', disabled: false },\r\n// { value: 'Campus Events', disabled: false },\r\n// { value: 'Workshops & Classes', disabled: false },\r\n// { value: 'Conferences & Seminars', disabled: false },\r\n// { value: 'Comedy & Entertainment', disabled: false },\r\n// { value: 'Startup & Entrepreneurship', disabled: false },\r\n// { value: 'Sports & Fitness', disabled: false },\r\n// { value: 'Food & Drink', disabled: false },\r\n// ];\r\n\r\ninterface StepOneProps {\r\n formState: StepperFormState;\r\n setField: (field: keyof StepperFormState, value: any) => void;\r\n setMultipleFields: (fields: Partial<StepperFormState> | ((prev: StepperFormState) => Partial<StepperFormState>)) => void;\r\n errors: Record<string, string>;\r\n validateField: (field: keyof StepperFormState, data?: StepperFormState) => void;\r\n setErrors: React.Dispatch<React.SetStateAction<Record<string, string>>>;\r\n eventData?: any;\r\n eventId?: string;\r\n onBusyStateChange?: (isBusy: boolean) => void;\r\n isBusy?: boolean;\r\n}\r\n\r\nfunction StepOne({ formState, setField, setMultipleFields, errors, validateField, setErrors, onBusyStateChange, isBusy }: StepOneProps) {\r\n const { data: categories = [] } = useGetEventCategoriesQuery();\r\n const [isDescriptionModalOpen, setIsDescriptionModalOpen] = useState(false);\r\n\r\n // Pre-load React Quill\r\n React.useEffect(() => {\r\n import('react-quill-new')\r\n }, []);\r\n\r\n // State for Date Change Confirmation\r\n const [showDateConflictModal, setShowDateConflictModal] = useState(false);\r\n const [pendingDateUpdate, setPendingDateUpdate] = useState<((prev: any) => any) | null>(null);\r\n const [conflictingTiers, setConflictingTiers] = useState<TicketTier[]>([]);\r\n\r\n const stripHtml = (html: string) => {\r\n const doc = new DOMParser().parseFromString(html, 'text/html');\r\n return doc.body.textContent || \"\";\r\n };\r\n\r\n const handleSetData = (updater: (prev: any) => any) => {\r\n setMultipleFields((prev) => {\r\n const newData = updater(prev);\r\n\r\n // Clear custom_category if \"Others\" is deselected\r\n const othersCategory = categories.find((cat: any) => cat.name === 'Others');\r\n if (othersCategory && newData.event_categories && !newData.event_categories.includes(othersCategory.id)) {\r\n delete newData.custom_category;\r\n }\r\n\r\n return newData;\r\n });\r\n };\r\n\r\n const checkTierConflicts = (potentialNewState: any) => {\r\n if (!potentialNewState.ticket_tiers) return [];\r\n\r\n const tiers = Object.values(potentialNewState.ticket_tiers) as TicketTier[];\r\n const conflicts: TicketTier[] = [];\r\n\r\n // Registration timeline is the strict boundary for ticket sales. Fallback to event timeline if not set.\r\n const startDate = potentialNewState.registration_start_timestamp?.date || potentialNewState.event_start_timestamp?.date;\r\n const endDate = potentialNewState.registration_end_timestamp?.date || potentialNewState.event_end_timestamp?.date;\r\n\r\n if (!startDate || !endDate) return [];\r\n\r\n tiers.forEach(tier => {\r\n if ((tier.availability_type as any) === TicketTierAvailabilityType.CUSTOM && tier.availability_schedule) {\r\n const hasInvalidDates = tier.availability_schedule.some((dateKey: string) => {\r\n return dateKey < startDate || dateKey > endDate;\r\n });\r\n if (hasInvalidDates) {\r\n conflicts.push(tier);\r\n }\r\n }\r\n });\r\n\r\n return conflicts;\r\n };\r\n\r\n const handleDateUpdate = (updater: (prev: any) => any) => {\r\n const potentialNewState = updater(formState);\r\n\r\n // Check if dates actually changed to prevent premature conflict modal on mount/normalization\r\n const datesChanged =\r\n JSON.stringify(potentialNewState.event_start_timestamp) !== JSON.stringify(formState.event_start_timestamp) ||\r\n JSON.stringify(potentialNewState.event_end_timestamp) !== JSON.stringify(formState.event_end_timestamp) ||\r\n JSON.stringify(potentialNewState.registration_start_timestamp) !== JSON.stringify(formState.registration_start_timestamp) ||\r\n JSON.stringify(potentialNewState.registration_end_timestamp) !== JSON.stringify(formState.registration_end_timestamp);\r\n\r\n if (!datesChanged) {\r\n handleSetData(updater);\r\n return;\r\n }\r\n\r\n const conflicts = checkTierConflicts(potentialNewState);\r\n\r\n if (conflicts.length > 0) {\r\n setConflictingTiers(conflicts);\r\n setPendingDateUpdate(() => updater); // Store the updater function\r\n setShowDateConflictModal(true);\r\n } else {\r\n // Safe to update\r\n handleSetData(updater);\r\n\r\n // Dynamic Date Validation using adaptive function\r\n const dateErrors = validateEventDates(potentialNewState);\r\n const hasDateErrors = Object.keys(dateErrors).length > 0;\r\n\r\n if (hasDateErrors) {\r\n setErrors(prev => ({\r\n ...prev,\r\n ...dateErrors\r\n }));\r\n } else {\r\n setErrors(prev => {\r\n const next = { ...prev };\r\n delete next.event_start_timestamp;\r\n delete next.event_end_timestamp;\r\n delete next.registration_start_timestamp;\r\n delete next.registration_end_timestamp;\r\n return next;\r\n });\r\n }\r\n }\r\n };\r\n\r\n const handleConfirmDateChange = () => {\r\n if (pendingDateUpdate) {\r\n // Apply the date update\r\n const newState = pendingDateUpdate(formState); // Calculate new state again or rely on closure if safe, but here we used updater pattern\r\n\r\n // Remove conflicting tiers\r\n const updatedTiers = { ...formState.ticket_tiers };\r\n conflictingTiers.forEach(tier => {\r\n delete updatedTiers[tier.id];\r\n });\r\n\r\n // Update both dates and tiers\r\n setMultipleFields({\r\n ...newState,\r\n ticket_tiers: updatedTiers\r\n });\r\n\r\n // Reset\r\n setShowDateConflictModal(false);\r\n setPendingDateUpdate(null);\r\n setConflictingTiers([]);\r\n\r\n // Validate\r\n if (errors?.event_start_timestamp) validateField('event_start_timestamp');\r\n if (errors?.event_end_timestamp) validateField('event_end_timestamp');\r\n if (errors?.registration_start_timestamp) validateField('registration_start_timestamp');\r\n if (errors?.registration_end_timestamp) validateField('registration_end_timestamp');\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"flex flex-col lg:flex-row gap-8 items-start\">\r\n <div className=\"w-full lg:max-w-[40%] max-h-[500px] shrink-0 lg:sticky lg:top-4\">\r\n <div>\r\n <FileUpload\r\n formData={formState}\r\n field=\"image_url\"\r\n setFormData={(updater: any) => {\r\n handleSetData(updater);\r\n }}\r\n formErrors={errors}\r\n setError={(error) => {\r\n if (error) {\r\n setErrors(prev => ({ ...prev, image_url: error }));\r\n } else {\r\n setErrors(prev => {\r\n const newErrors = { ...prev };\r\n delete newErrors.image_url;\r\n return newErrors;\r\n });\r\n }\r\n }}\r\n onLoadingChange={onBusyStateChange}\r\n />\r\n <InputErrorMessage\r\n error={isBusy && errors?.image_url ? \"Your image is still uploading. Please wait...\" : (errors?.image_url == \"Invalid input: expected string, received undefined\" ? \"Please upload an image\" : errors?.image_url)}\r\n className=\"mt-2\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"w-full flex-1 rounded-lg\">\r\n <div data-name=\"name\" className='px-4 rounded-xl'>\r\n <FormInput\r\n label=\"Event name\"\r\n tooltip=\"The official name of your event.\"\r\n type=\"text\"\r\n placeholder=\"Paymo Events\"\r\n value={formState.name || ''}\r\n onChange={(e: any) => setField('name', e.target?.value)}\r\n onBlur={() => validateField('name')}\r\n error={errors.name}\r\n inputClassName='text-[26px] py-2'\r\n inputCon='shadow-none rounded-b-none rounded-t-sm'\r\n className='px-0'\r\n required\r\n />\r\n </div>\r\n\r\n <div data-name=\"description\" className='px-4 py-4 rounded-xl'>\r\n <div className=\"flex items-center mb-2 gap-x-2\">\r\n <label className=\"block text-sm font-medium text-gray-700\">\r\n Write description <span className=\"text-error-500\">*</span>\r\n </label>\r\n <InformationPopover text=\"A detailed explanation of what your event is about.\" />\r\n </div>\r\n <button\r\n onClick={() => setIsDescriptionModalOpen(true)}\r\n className={`\r\n w-full text-left px-3 py-2 rounded-lg text-sm input-border bg-white cursor-pointer transition-colors focus-visible:ring-2 focus-visible:ring-primaryx-500 focus-visible:ring-offset-2 outline-none focus:outline-none\r\n flex items-center min-h-[44px]\r\n ${errors.description ? 'border-error-500 bg-error-50' : 'input-border'}\r\n `}\r\n >\r\n {formState.description ? (\r\n <p className=\"text-gray-900 line-clamp-2 break-all\">{stripHtml(formState.description)}</p>\r\n ) : (\r\n <span className=\"text-gray-400\">Tell us about your event..</span>\r\n )}\r\n </button>\r\n <InputErrorMessage error={errors?.description} className=\"mt-2\" />\r\n\r\n\r\n <DescriptionModal\r\n isOpen={isDescriptionModalOpen}\r\n value={formState?.description || ''}\r\n onClose={() => {\r\n setIsDescriptionModalOpen(false);\r\n }}\r\n onSave={(val) => {\r\n setField('description', val);\r\n }}\r\n\r\n />\r\n </div>\r\n\r\n <div data-name=\"event_type\" className=\"px-4 py-4 rounded-xl\">\r\n <CheckboxGroup\r\n label=\"Select your event type\"\r\n tooltip=\"Choose the type of audience for this event.\"\r\n options={EVENT_TYPE_OPTIONS.map(option => {\r\n const selectedEventTypes = formState.event_type || [];\r\n const isInclusive = selectedEventTypes.includes('INCLUSIVE');\r\n const isInternal = selectedEventTypes.includes('INTERNAL');\r\n const isUnlisted = selectedEventTypes.includes('UN_LISTED');\r\n\r\n let disabled = false;\r\n\r\n // \"INCLUSIVE\" is mutually exclusive with \"INTERNAL\" and \"UN_LISTED\"\r\n let tooltip = \"\";\r\n if (option.value === 'INCLUSIVE') {\r\n if (isInternal || isUnlisted) {\r\n disabled = true;\r\n tooltip = \"Events open to everyone cannot be restricted to institution members or be hidden.\";\r\n } else {\r\n tooltip = \"Allows anyone to view and register for the event.\";\r\n }\r\n }\r\n if (option.value === 'INTERNAL') {\r\n if (isInclusive) {\r\n disabled = true;\r\n tooltip = \"Institution-only events cannot be open to everyone.\";\r\n } else {\r\n tooltip = \"Restricts the event to members of your institution only.\";\r\n }\r\n }\r\n if (option.value === 'UN_LISTED') {\r\n if (isInclusive) {\r\n disabled = true;\r\n tooltip = \"Hidden events cannot be open to everyone.\";\r\n } else {\r\n tooltip = \"The event will not appear in public listings and is accessible only via link.\";\r\n }\r\n }\r\n if (option.value === 'INVITE_ONLY') {\r\n tooltip = \"Every registration will be treated as a request that will be approved by Organizer\";\r\n }\r\n\r\n return { ...option, disabled, tooltip };\r\n })}\r\n formData={formState}\r\n setFormData={(updater: any) => {\r\n handleSetData(updater);\r\n }}\r\n field=\"event_type\"\r\n formErrors={errors}\r\n inputType=\"checkbox\"\r\n classname=\"flex flex-col gap-y-3\"\r\n filled={false}\r\n />\r\n </div>\r\n\r\n {/* Conditional Institution Name Input */}\r\n <AnimatePresence>\r\n {formState.event_type?.includes('INTERNAL') && (\r\n <motion.div\r\n initial={{ opacity: 0, height: 0 }}\r\n animate={{ opacity: 1, height: \"auto\" }}\r\n exit={{ opacity: 0, height: 0 }}\r\n transition={{ duration: 0.2 }}\r\n >\r\n <div data-name=\"institution_name\" className=\"px-4 py-4 rounded-xl\">\r\n <FormInput\r\n label=\"Institution name\"\r\n placeholder=\"Enter institution name\"\r\n value={formState.institution_name || \"\"}\r\n onChange={(e: any) => setField(\"institution_name\", e.target.value)}\r\n onBlur={() => validateField(\"institution_name\")}\r\n error={errors.institution_name}\r\n type=\"text\"\r\n required\r\n />\r\n </div>\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n\r\n <div data-name=\"registration_start_timestamp\" className='px-2 py-4 rounded-xl'>\r\n <div className=\"flex items-center gap-x-2 px-2\">\r\n <label className=\"block text-sm font-medium text-gray-700\">\r\n Registration timeline <span className=\"text-meta-1 animate-pulse\">*</span>\r\n </label>\r\n <InformationPopover text=\"Set the start and end dates/times for ticket registrations.\" />\r\n </div>\r\n <DateTimeField\r\n label=\"\"\r\n formData={formState}\r\n setFormData={handleDateUpdate}\r\n field={['registration_start_timestamp', 'registration_end_timestamp']}\r\n classname=\"bg-transparent\"\r\n formDateErrors={errors}\r\n startMaxDate={\r\n (formState.event_start_timestamp?.date && formState.event_end_timestamp?.date)\r\n ? (formState.event_start_timestamp.date < formState.event_end_timestamp.date ? formState.event_start_timestamp.date : formState.event_end_timestamp.date)\r\n : (formState.event_start_timestamp?.date || formState.event_end_timestamp?.date)\r\n }\r\n startMaxTime={\r\n formState.event_start_timestamp?.date && formState.registration_start_timestamp?.date && formState.event_start_timestamp.date === formState.registration_start_timestamp.date\r\n ? formState.event_start_timestamp.time\r\n : undefined\r\n }\r\n endMaxDate={formState.event_end_timestamp?.date}\r\n endMaxTime={\r\n formState.event_end_timestamp?.date && formState.registration_end_timestamp?.date && formState.event_end_timestamp.date === formState.registration_end_timestamp.date\r\n ? formState.event_end_timestamp.time\r\n : undefined\r\n }\r\n />\r\n </div>\r\n\r\n <div data-name=\"event_start_timestamp\" className='px-2 py-4 rounded-xl'>\r\n <div className=\"flex items-center gap-x-2 px-2\">\r\n <label className=\"block text-sm font-medium text-gray-700\">\r\n Event timeline <span className=\"text-meta-1 animate-pulse\">*</span>\r\n </label>\r\n <InformationPopover text=\"Set the start and end dates/times for your event.\" />\r\n </div>\r\n <DateTimeField\r\n label=\"\"\r\n formData={formState}\r\n setFormData={handleDateUpdate}\r\n field={['event_start_timestamp', 'event_end_timestamp']}\r\n classname=\"bg-transparent\"\r\n formDateErrors={errors}\r\n startMinDate={formState.registration_start_timestamp?.date}\r\n startMinTime={\r\n formState.registration_start_timestamp?.date && formState.event_start_timestamp?.date && formState.registration_start_timestamp.date === formState.event_start_timestamp.date\r\n ? formState.registration_start_timestamp.time\r\n : undefined\r\n }\r\n endMinDate={\r\n (formState.registration_start_timestamp?.date && formState.registration_end_timestamp?.date)\r\n ? (formState.registration_start_timestamp.date > formState.registration_end_timestamp.date ? formState.registration_start_timestamp.date : formState.registration_end_timestamp.date)\r\n : (formState.registration_end_timestamp?.date || formState.registration_start_timestamp?.date)\r\n }\r\n endMinTime={\r\n formState.registration_end_timestamp?.date && formState.event_end_timestamp?.date && formState.registration_end_timestamp.date === formState.event_end_timestamp.date\r\n ? formState.registration_end_timestamp.time\r\n : undefined\r\n }\r\n />\r\n </div>\r\n\r\n <div data-name=\"location_type\" className='px-4 py-4 rounded-xl'>\r\n <div className=\"flex items-center gap-x-2 mb-2\">\r\n <label className=\"block text-sm font-medium text-gray-700\">\r\n Venue <span className=\"text-meta-1 animate-pulse\">*</span>\r\n </label>\r\n <InformationPopover text=\"The place where the event will be conducted.\" />\r\n </div>\r\n <GenericLocationInput\r\n googleApiKey={process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY as string}\r\n enableGoogleMeet={false}\r\n enableCustomLinks={true}\r\n enablePhysicalLocation={true}\r\n error={(errors.location_data as string || errors.venue || errors.location_type) && \"Please select a venue / location\"}\r\n onLocationSelected={(location) => {\r\n setMultipleFields({\r\n venue: location?.displayName || \"\",\r\n venue_place_id: location?.placeId || \"\",\r\n location_data: location, // Fix stale data\r\n location_type: location?.type\r\n });\r\n\r\n if (location) {\r\n // Immediately clear all location-related errors\r\n setErrors((prev) => {\r\n const newErrors = { ...prev };\r\n delete newErrors.venue;\r\n delete newErrors.location_data;\r\n delete newErrors.location_type;\r\n return newErrors;\r\n });\r\n } else {\r\n // immediate feedback for clear\r\n setErrors((prev) => ({\r\n ...prev,\r\n venue: \"Location is required\"\r\n }));\r\n }\r\n }}\r\n formData={formState}\r\n label=\"\"\r\n placeholder=\"Search for a location or add meeting details...\"\r\n />\r\n </div>\r\n\r\n <div data-name=\"event_categories\" className=\"px-4 py-4 rounded-xl\">\r\n <CheckboxGroup\r\n label=\"Select event category\"\r\n tooltip=\"Select the category that best describes your event.\"\r\n options={(() => {\r\n // Map fetched categories to options\r\n const dynamicOptions = categories.map((cat: any) => ({\r\n value: cat.id,\r\n label: cat.name,\r\n disabled: false\r\n }));\r\n return dynamicOptions;\r\n })()}\r\n formData={formState}\r\n setFormData={(updater: any) => {\r\n handleSetData(updater);\r\n }}\r\n field=\"event_categories\"\r\n formErrors={errors}\r\n inputType=\"checkbox\"\r\n classname=\"grid grid-cols-1 sm:grid-cols-2 gap-4\"\r\n filled={false}\r\n />\r\n\r\n <AnimatePresence>\r\n {(() => {\r\n const othersCategory = categories.find((cat: any) => cat.name === 'Others');\r\n const othersCategoryId = othersCategory?.id;\r\n\r\n return formState.event_categories?.includes(othersCategoryId) && (\r\n <motion.div\r\n initial={{ height: 0, opacity: 0, marginTop: 0 }}\r\n animate={{ height: 'auto', opacity: 1, marginTop: 16 }}\r\n exit={{ height: 0, opacity: 0, marginTop: 0 }}\r\n transition={{ duration: 0.3, ease: 'easeInOut' }}\r\n >\r\n <FormInput\r\n label=\"Please specify\"\r\n type=\"text\"\r\n placeholder=\"e.g. Charity gala, Reunion, etc.\"\r\n value={formState.custom_category || ''}\r\n onChange={(e: any) => setField('custom_category', e.target.value)}\r\n onBlur={() => validateField('custom_category')}\r\n error={errors.custom_category}\r\n />\r\n </motion.div>\r\n )\r\n })()}\r\n </AnimatePresence>\r\n </div>\r\n </div>\r\n\r\n <ConfirmationModal\r\n open={showDateConflictModal}\r\n title=\"Date conflict detected\"\r\n description={`Changing the event dates will invalidate the following ticket tier(s) because their custom dates fall outside the new range. Proceeding will permanently delete them.`}\r\n onClose={() => {\r\n setShowDateConflictModal(false);\r\n setTimeout(() => {\r\n setPendingDateUpdate(null);\r\n setConflictingTiers([]);\r\n }, 300); // 300ms matches standard transition duration\r\n }}\r\n onConfirm={handleConfirmDateChange}\r\n confirmText=\"Update & delete tiers\"\r\n cancelText=\"Cancel\"\r\n >\r\n <div className=\"space-y-3 mt-4 border-t border-grey-100 pt-4 max-h-[200px] overflow-y-auto pr-2\">\r\n {conflictingTiers.map(tier => (\r\n <div key={tier.id} className=\"bg-error-50 border border-error-200 rounded-lg p-3\">\r\n <div className=\"flex items-baseline justify-between mb-1\">\r\n <h4 className=\"text-sm font-semibold text-error-900 truncate pr-4\">{tier.name}</h4>\r\n <span className=\"text-sm font-bold text-error-700 whitespace-nowrap\">Rs. {tier.price.toLocaleString()}</span>\r\n </div>\r\n <div className=\"flex items-center gap-3 text-xs text-error-600/80\">\r\n <p className=\"line-clamp-1\">{tier.description}</p>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n </ConfirmationModal>\r\n </div>\r\n );\r\n}\r\n\r\nexport default memo(StepOne);\r\n"],"names":["React","_a","_b","_c","_d"],"mappings":"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"}