@123usmanhaider321/ui 0.1.6 → 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 -3636
  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,173 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import React__default, { memo, useState, useMemo } from "react";
3
- import { getDateRange } from "../../../utils/date-range.js";
4
- import ConfirmationModal from "../common/ConfirmationModal.js";
5
- import TicketTierSection from "../components/StepTwo/TicketTierSection.js";
6
- import CustomFormSection from "../components/StepTwo/CustomFormSection.js";
7
- import TicketTypeSelection from "../components/TicketTypeSelection.js";
8
- function StepTwo({ formState, setField, errors, validateField, setNavigationBlocked, eventId }) {
9
- const [showInlineForm, setShowInlineForm] = useState(false);
10
- const [selectedTier, setSelectedTier] = useState(null);
11
- const [showDeleteModal, setShowDeleteModal] = useState(false);
12
- const [tierToDelete, setTierToDelete] = useState(null);
13
- const formRef = React__default.useRef(null);
14
- const [showParticipationModal, setShowParticipationModal] = useState(false);
15
- const [pendingParticipationType, setPendingParticipationType] = useState(null);
16
- React__default.useEffect(() => {
17
- if (showInlineForm && formRef.current) {
18
- formRef.current.scrollIntoView({ behavior: "smooth", block: "nearest" });
19
- }
20
- }, [showInlineForm]);
21
- const tiers = Object.values(formState.ticket_tiers || {});
22
- const handleSaveTier = (tier) => {
23
- const newTiers = { ...formState.ticket_tiers || {} };
24
- newTiers[tier.id] = tier;
25
- setField("ticket_tiers", newTiers);
26
- setShowInlineForm(false);
27
- setSelectedTier(null);
28
- };
29
- const handleDeleteTier = () => {
30
- if (tierToDelete) {
31
- const newTiers = { ...formState.ticket_tiers || {} };
32
- delete newTiers[tierToDelete.id];
33
- setField("ticket_tiers", newTiers);
34
- setShowDeleteModal(false);
35
- setTierToDelete(null);
36
- }
37
- };
38
- const handleEditTier = (tier) => {
39
- setSelectedTier(tier);
40
- setShowInlineForm(true);
41
- };
42
- const handleDuplicateTier = (tier) => {
43
- const existingNames = tiers.map((t) => t.name.toLowerCase());
44
- const baseNameRegex = /^(.*?)(?:\sCopy\s\((\d+)\))?$/i;
45
- const match = tier.name.match(baseNameRegex);
46
- const baseName = match ? match[1].trim() : tier.name.trim();
47
- let n = 1;
48
- let newName = `${baseName} Copy (${n})`;
49
- while (existingNames.includes(newName.toLowerCase())) {
50
- n++;
51
- newName = `${baseName} Copy (${n})`;
52
- }
53
- const dataToSave = {
54
- ...tier,
55
- id: crypto.randomUUID(),
56
- name: newName
57
- };
58
- const newTiers = { ...formState.ticket_tiers || {} };
59
- newTiers[dataToSave.id] = dataToSave;
60
- setField("ticket_tiers", newTiers);
61
- };
62
- const handleSetField = (field, value) => {
63
- if (field === "participants_type" && eventId && eventId !== "new") {
64
- if (value !== formState.participants_type) {
65
- setPendingParticipationType(value);
66
- setShowParticipationModal(true);
67
- return;
68
- }
69
- }
70
- setField(field, value);
71
- };
72
- const handleConfirmParticipationChange = () => {
73
- if (pendingParticipationType) {
74
- setField("participants_type", pendingParticipationType);
75
- }
76
- setShowParticipationModal(false);
77
- setPendingParticipationType(null);
78
- };
79
- const handleCancelParticipationChange = () => {
80
- setShowParticipationModal(false);
81
- setPendingParticipationType(null);
82
- };
83
- const eventDateRange = useMemo(
84
- () => {
85
- var _a, _b, _c, _d;
86
- return ((_a = formState == null ? void 0 : formState.event_start_timestamp) == null ? void 0 : _a.date) && ((_b = formState == null ? void 0 : formState.event_end_timestamp) == null ? void 0 : _b.date) ? getDateRange(new Date((_c = formState == null ? void 0 : formState.event_start_timestamp) == null ? void 0 : _c.date), new Date((_d = formState == null ? void 0 : formState.event_end_timestamp) == null ? void 0 : _d.date)) : void 0;
87
- },
88
- [formState.event_start_timestamp, formState.event_end_timestamp]
89
- );
90
- return /* @__PURE__ */ jsxs("div", { className: "max-w-[734px] mx-auto space-y-6 animate-in fade-in slide-in-from-bottom-4 duration-500", children: [
91
- /* @__PURE__ */ jsxs("div", { className: "py-6 space-y-4 rounded-lg", children: [
92
- /* @__PURE__ */ jsx("h2", { className: "text-lg font-semibold text-grey-900 px-4", children: "Step up your ticket" }),
93
- /* @__PURE__ */ jsx("div", { className: "px-2 rounded-xl", children: /* @__PURE__ */ jsx("div", { className: "px-2 rounded-xl", "data-name": "ticket_type", children: /* @__PURE__ */ jsx(
94
- TicketTypeSelection,
95
- {
96
- selectedType: formState.ticket_type || "",
97
- onSelect: (type) => {
98
- setField("ticket_type", type);
99
- setShowInlineForm(false);
100
- }
101
- }
102
- ) }) }),
103
- /* @__PURE__ */ jsxs("div", { className: "w-full px-4", children: [
104
- formState.ticket_type === "TICKET_TIER" && /* @__PURE__ */ jsx(
105
- TicketTierSection,
106
- {
107
- tiers,
108
- ticketsError: errors.ticket_tiers,
109
- showInlineForm,
110
- setShowInlineForm,
111
- selectedTier,
112
- setSelectedTier,
113
- handleEditTier,
114
- handleDuplicateTier,
115
- setTierToDelete,
116
- setShowDeleteModal,
117
- formRef,
118
- eventDateRange,
119
- handleSaveTier,
120
- setNavigationBlocked,
121
- eventStart: formState.event_start_timestamp,
122
- eventEnd: formState.event_end_timestamp,
123
- registrationStart: formState.registration_start_timestamp,
124
- registrationEnd: formState.registration_end_timestamp
125
- }
126
- ),
127
- formState.ticket_type === "CUSTOM_FORM" && /* @__PURE__ */ jsx(
128
- CustomFormSection,
129
- {
130
- formState,
131
- setField: handleSetField,
132
- errors,
133
- validateField
134
- }
135
- ),
136
- errors._step && /* @__PURE__ */ jsxs("div", { className: "p-3 bg-error-50 border border-error-100 rounded-lg text-sm text-error-700 flex items-center gap-2", children: [
137
- /* @__PURE__ */ jsx("svg", { className: "w-5 h-5", fill: "none", viewBox: "0 0 24 24", stroke: "currentColor", children: /* @__PURE__ */ jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z" }) }),
138
- errors._step
139
- ] })
140
- ] })
141
- ] }),
142
- /* @__PURE__ */ jsx(
143
- ConfirmationModal,
144
- {
145
- open: showDeleteModal,
146
- title: "Delete ticket tier?",
147
- description: "Are you sure you want to delete this ticket tier? This action cannot be undone.",
148
- onClose: () => {
149
- setShowDeleteModal(false);
150
- setTierToDelete(null);
151
- },
152
- onConfirm: handleDeleteTier
153
- }
154
- ),
155
- /* @__PURE__ */ jsx(
156
- ConfirmationModal,
157
- {
158
- open: showParticipationModal,
159
- title: "Change participation type?",
160
- description: "Changing the participation type will reset the form questions in the next step. Are you sure you want to proceed?",
161
- onClose: handleCancelParticipationChange,
162
- onConfirm: handleConfirmParticipationChange,
163
- confirmText: "Yes, change it",
164
- cancelText: "No, keep it"
165
- }
166
- )
167
- ] });
168
- }
169
- const StepTwo$1 = memo(StepTwo);
170
- export {
171
- StepTwo$1 as default
172
- };
173
- //# sourceMappingURL=StepTwo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StepTwo.js","sources":["../../../../src/components/EventAddForm/steps/StepTwo.tsx"],"sourcesContent":["\"use client\";\r\n\r\nimport React, { memo, useMemo, useState } from \"react\";\r\nimport { StepperFormState } from '../types';\r\nimport { TicketTier } from \"@/types/types\";\r\nimport { getDateRange } from \"@/utils/date-range\";\r\nimport ConfirmationModal from \"../common/ConfirmationModal\";\r\nimport TicketTierSection from \"@/components/EventAddForm/components/StepTwo/TicketTierSection\";\r\nimport CustomFormSection from \"@/components/EventAddForm/components/StepTwo/CustomFormSection\";\r\nimport TicketTypeSelection from \"@/components/EventAddForm/components/TicketTypeSelection\";\r\n\r\ninterface StepTwoProps {\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 setNavigationBlocked?: (blocked: boolean) => void;\r\n}\r\n\r\nfunction StepTwo({ formState, setField, errors, validateField, setNavigationBlocked, eventId }: StepTwoProps) {\r\n const [showInlineForm, setShowInlineForm] = useState(false);\r\n const [selectedTier, setSelectedTier] = useState<TicketTier | null>(null);\r\n const [showDeleteModal, setShowDeleteModal] = useState(false);\r\n const [tierToDelete, setTierToDelete] = useState<TicketTier | null>(null);\r\n const formRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const [showParticipationModal, setShowParticipationModal] = useState(false);\r\n const [pendingParticipationType, setPendingParticipationType] = useState<string | null>(null);\r\n\r\n React.useEffect(() => {\r\n if (showInlineForm && formRef.current) {\r\n formRef.current.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\r\n }\r\n }, [showInlineForm]);\r\n\r\n const tiers = Object.values(formState.ticket_tiers || {}) as TicketTier[];\r\n\r\n const handleSaveTier = (tier: TicketTier) => {\r\n const newTiers = { ...(formState.ticket_tiers || {}) };\r\n newTiers[tier.id] = tier;\r\n setField(\"ticket_tiers\", newTiers);\r\n setShowInlineForm(false);\r\n setSelectedTier(null);\r\n };\r\n\r\n const handleDeleteTier = () => {\r\n if (tierToDelete) {\r\n const newTiers = { ...(formState.ticket_tiers || {}) };\r\n delete newTiers[tierToDelete.id];\r\n setField(\"ticket_tiers\", newTiers);\r\n setShowDeleteModal(false);\r\n setTierToDelete(null);\r\n }\r\n };\r\n\r\n const handleEditTier = (tier: TicketTier) => {\r\n setSelectedTier(tier);\r\n setShowInlineForm(true);\r\n };\r\n\r\n const handleDuplicateTier = (tier: TicketTier) => {\r\n const existingNames = tiers.map(t => t.name.toLowerCase());\r\n\r\n // Identify the base name (strip any existing \" Copy (n)\" suffix)\r\n // Case-insensitive regex to handle variations\r\n const baseNameRegex = /^(.*?)(?:\\sCopy\\s\\((\\d+)\\))?$/i;\r\n const match = tier.name.match(baseNameRegex);\r\n const baseName = match ? match[1].trim() : tier.name.trim();\r\n\r\n let n = 1;\r\n let newName = `${baseName} Copy (${n})`;\r\n\r\n while (existingNames.includes(newName.toLowerCase())) {\r\n n++;\r\n newName = `${baseName} Copy (${n})`;\r\n }\r\n\r\n const dataToSave: TicketTier = {\r\n ...tier,\r\n id: crypto.randomUUID(),\r\n name: newName,\r\n };\r\n\r\n const newTiers = { ...(formState.ticket_tiers || {}) };\r\n newTiers[dataToSave.id] = dataToSave;\r\n setField(\"ticket_tiers\", newTiers);\r\n };\r\n\r\n // Proxied setField to intercept participation_type change\r\n const handleSetField = (field: keyof StepperFormState, value: any) => {\r\n if (field === \"participants_type\" && eventId && eventId !== \"new\") {\r\n // Check if value actually changed\r\n if (value !== formState.participants_type) {\r\n setPendingParticipationType(value);\r\n setShowParticipationModal(true);\r\n return;\r\n }\r\n }\r\n setField(field, value);\r\n };\r\n\r\n const handleConfirmParticipationChange = () => {\r\n if (pendingParticipationType) {\r\n setField(\"participants_type\", pendingParticipationType);\r\n }\r\n setShowParticipationModal(false);\r\n setPendingParticipationType(null);\r\n };\r\n\r\n const handleCancelParticipationChange = () => {\r\n setShowParticipationModal(false);\r\n setPendingParticipationType(null);\r\n };\r\n\r\n const eventDateRange = useMemo(() =>\r\n formState?.event_start_timestamp?.date && formState?.event_end_timestamp?.date\r\n ? getDateRange(new Date(formState?.event_start_timestamp?.date), new Date(formState?.event_end_timestamp?.date))\r\n : undefined,\r\n [formState.event_start_timestamp, formState.event_end_timestamp]);\r\n\r\n return (\r\n <div className=\"max-w-[734px] mx-auto space-y-6 animate-in fade-in slide-in-from-bottom-4 duration-500\">\r\n <div className=\"py-6 space-y-4 rounded-lg\">\r\n <h2 className=\"text-lg font-semibold text-grey-900 px-4\">\r\n Step up your ticket\r\n </h2>\r\n\r\n {/* Ticket Type Selection Cards */}\r\n <div className=\"px-2 rounded-xl\">\r\n <div className=\"px-2 rounded-xl\" data-name=\"ticket_type\">\r\n <TicketTypeSelection\r\n selectedType={formState.ticket_type || \"\"}\r\n onSelect={(type) => {\r\n setField(\"ticket_type\", type);\r\n setShowInlineForm(false);\r\n }}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div className=\"w-full px-4\">\r\n {/* Ticket Tier Section Logic */}\r\n {formState.ticket_type === \"TICKET_TIER\" && (\r\n <TicketTierSection\r\n tiers={tiers}\r\n ticketsError={errors.ticket_tiers}\r\n showInlineForm={showInlineForm}\r\n setShowInlineForm={setShowInlineForm}\r\n selectedTier={selectedTier}\r\n setSelectedTier={setSelectedTier}\r\n handleEditTier={handleEditTier}\r\n handleDuplicateTier={handleDuplicateTier}\r\n setTierToDelete={setTierToDelete}\r\n setShowDeleteModal={setShowDeleteModal}\r\n formRef={formRef as React.RefObject<HTMLDivElement>}\r\n eventDateRange={eventDateRange}\r\n handleSaveTier={handleSaveTier}\r\n setNavigationBlocked={setNavigationBlocked}\r\n eventStart={formState.event_start_timestamp}\r\n eventEnd={formState.event_end_timestamp}\r\n registrationStart={formState.registration_start_timestamp}\r\n registrationEnd={formState.registration_end_timestamp}\r\n />\r\n )}\r\n\r\n {/* Custom Form Section */}\r\n {formState.ticket_type === \"CUSTOM_FORM\" && (\r\n <CustomFormSection\r\n formState={formState}\r\n setField={handleSetField as any}\r\n errors={errors}\r\n validateField={validateField as any}\r\n />\r\n )}\r\n\r\n {errors._step && (\r\n <div className=\"p-3 bg-error-50 border border-error-100 rounded-lg text-sm text-error-700 flex items-center gap-2\">\r\n <svg className=\"w-5 h-5\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z\" />\r\n </svg>\r\n {errors._step}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n\r\n <ConfirmationModal\r\n open={showDeleteModal}\r\n title=\"Delete ticket tier?\"\r\n description=\"Are you sure you want to delete this ticket tier? This action cannot be undone.\"\r\n onClose={() => {\r\n setShowDeleteModal(false);\r\n setTierToDelete(null);\r\n }}\r\n onConfirm={handleDeleteTier}\r\n />\r\n\r\n <ConfirmationModal\r\n open={showParticipationModal}\r\n title=\"Change participation type?\"\r\n description=\"Changing the participation type will reset the form questions in the next step. Are you sure you want to proceed?\"\r\n onClose={handleCancelParticipationChange}\r\n onConfirm={handleConfirmParticipationChange}\r\n confirmText=\"Yes, change it\"\r\n cancelText=\"No, keep it\"\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default memo(StepTwo);\r\n"],"names":["React"],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { jsx } from "react/jsx-runtime";
2
- import { memo, forwardRef } from "react";
3
- import IndividualFormStep from "./IndividualFormStep.js";
4
- const TeamFormStep = forwardRef((props, ref) => {
5
- return /* @__PURE__ */ jsx(IndividualFormStep, { ...props, ref, participationTypeOverride: "2", scopeOverride: "TEAM", allowedDiscountQuestions: 1, onPolluted: props.onPolluted });
6
- });
7
- TeamFormStep.displayName = "TeamFormStep";
8
- const TeamFormStep$1 = memo(TeamFormStep);
9
- export {
10
- TeamFormStep,
11
- TeamFormStep$1 as default
12
- };
13
- //# sourceMappingURL=TeamFormStep.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TeamFormStep.js","sources":["../../../../src/components/EventAddForm/steps/TeamFormStep.tsx"],"sourcesContent":["import { memo, forwardRef } from \"react\";\r\nimport IndividualFormStep, { IndividualFormStepRef } from \"./IndividualFormStep\";\r\nimport { StepperFormState } from \"../types\";\r\n\r\ninterface TeamFormStepProps {\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 eventId: string;\r\n eventData: any;\r\n isSameQuestionTitleAllowed?: boolean;\r\n allowedDiscountQuestions?: number;\r\n onPolluted?: () => void;\r\n}\r\n\r\nexport const TeamFormStep = forwardRef<IndividualFormStepRef, TeamFormStepProps>((props, ref) => {\r\n return <IndividualFormStep {...props} ref={ref} participationTypeOverride=\"2\" scopeOverride='TEAM' allowedDiscountQuestions={1} onPolluted={props.onPolluted} />;\r\n});\r\n \r\nTeamFormStep.displayName = \"TeamFormStep\";\r\n \r\nexport default memo(TeamFormStep);\r\n"],"names":[],"mappings":";;;AAkBO,MAAM,eAAe,WAAqD,CAAC,OAAO,QAAQ;AAC7F,SAAO,oBAAC,oBAAA,EAAoB,GAAG,OAAO,KAAU,2BAA0B,KAAI,eAAc,QAAO,0BAA0B,GAAG,YAAY,MAAM,YAAY;AAClK,CAAC;AAED,aAAa,cAAc;AAE3B,MAAA,iBAAe,KAAK,YAAY;"}
@@ -1,242 +0,0 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import React__default, { useState } from "react";
3
- import { Trash2 } from "lucide-react";
4
- import { useSensors, useSensor, PointerSensor, DndContext, closestCenter } from "../../node_modules/@dnd-kit/core/dist/core.esm.js";
5
- import { SortableContext, verticalListSortingStrategy, arrayMove, useSortable } from "../../node_modules/@dnd-kit/sortable/dist/sortable.esm.js";
6
- import { CSS } from "../../node_modules/@dnd-kit/utilities/dist/utilities.esm.js";
7
- import FormInput from "../FormInput/FormInput.js";
8
- import { FontAwesomeIcon } from "../../node_modules/@fortawesome/react-fontawesome/dist/index.js";
9
- import { faPlus, faGripVertical } from "../../node_modules/@fortawesome/free-solid-svg-icons/index.js";
10
- import Alert from "../Alert/Alert.js";
11
- import { Button } from "../Button/Button.js";
12
- const CategoryList = ({ categories, onChange, showError }) => {
13
- const containerRef = React__default.useRef(null);
14
- const [alertState, setAlertState] = useState({
15
- isVisible: false,
16
- message: "",
17
- type: "success"
18
- });
19
- const sensors = useSensors(
20
- useSensor(PointerSensor, { activationConstraint: { distance: 3 } })
21
- );
22
- const handleDragEnd = (event) => {
23
- const { active, over } = event;
24
- if (active.id !== (over == null ? void 0 : over.id)) {
25
- const oldIndex = categories.findIndex((c) => c.id === active.id);
26
- const newIndex = categories.findIndex((c) => c.id === (over == null ? void 0 : over.id));
27
- if (oldIndex !== -1 && newIndex !== -1) {
28
- const newCategories = arrayMove(categories, oldIndex, newIndex);
29
- onChange(newCategories);
30
- }
31
- }
32
- };
33
- const handleAdd = () => {
34
- const newCategory = {
35
- id: crypto.randomUUID(),
36
- name: ``,
37
- price: 0
38
- };
39
- onChange([...categories, newCategory]);
40
- };
41
- const handleBulkAdd = (newItems) => {
42
- onChange([...categories, ...newItems]);
43
- };
44
- React__default.useEffect(() => {
45
- const handleGlobalPaste = (e) => {
46
- var _a, _b;
47
- const target = e.target;
48
- const isInput = target.tagName === "INPUT" || target.tagName === "TEXTAREA";
49
- const isInside = (_a = containerRef.current) == null ? void 0 : _a.contains(target);
50
- if (isInput && !isInside) return;
51
- if (target !== document.body && !isInside) return;
52
- const clipboardData = (_b = e.clipboardData) == null ? void 0 : _b.getData("text");
53
- if (!clipboardData) return;
54
- const lines = clipboardData.split(/\r?\n/).filter((line) => line.trim() !== "");
55
- if (lines.length === 0) return;
56
- const newItems = [];
57
- let skippedCount = 0;
58
- lines.forEach((line) => {
59
- let name = "";
60
- let price = 0;
61
- let parsed = false;
62
- if (line.includes(" ")) {
63
- const parts = line.split(" ");
64
- if (parts.length >= 2) {
65
- name = parts[0].trim();
66
- const pricePart = parts[1].replace(/[^0-9.]/g, "");
67
- if (!isNaN(parseFloat(pricePart))) {
68
- price = parseFloat(pricePart);
69
- parsed = true;
70
- }
71
- }
72
- } else if (line.includes("|")) {
73
- const parts = line.split("|");
74
- if (parts.length >= 2) {
75
- name = parts[0].trim();
76
- const pricePart = parts[1].replace(/[^0-9.]/g, "");
77
- if (!isNaN(parseFloat(pricePart))) {
78
- price = parseFloat(pricePart);
79
- parsed = true;
80
- }
81
- }
82
- } else {
83
- const match = line.match(/^(.*)\s+(\d+(\.\d{1,2})?)$/);
84
- if (match) {
85
- name = match[1].trim();
86
- price = parseFloat(match[2]);
87
- parsed = true;
88
- }
89
- }
90
- if (!parsed && (lines.length > 1 || !isInput)) {
91
- name = line.trim();
92
- price = 0;
93
- parsed = true;
94
- }
95
- if (parsed && name) {
96
- newItems.push({
97
- id: crypto.randomUUID(),
98
- name,
99
- price
100
- });
101
- } else {
102
- skippedCount++;
103
- }
104
- });
105
- if (isInput && lines.length === 1 && newItems.length === 1 && newItems[0].price === 0) {
106
- return;
107
- }
108
- if (newItems.length > 0) {
109
- e.preventDefault();
110
- handleBulkAdd(newItems);
111
- setAlertState({
112
- isVisible: true,
113
- message: `Added ${newItems.length} categories from clipboard.`,
114
- type: "success"
115
- });
116
- setTimeout(() => setAlertState((prev) => ({ ...prev, isVisible: false })), 3e3);
117
- } else if (skippedCount > 0 && !isInput) {
118
- setAlertState({
119
- isVisible: true,
120
- message: "Could not parse clipboard data.",
121
- type: "error"
122
- });
123
- setTimeout(() => setAlertState((prev) => ({ ...prev, isVisible: false })), 3e3);
124
- }
125
- };
126
- document.addEventListener("paste", handleGlobalPaste);
127
- return () => document.removeEventListener("paste", handleGlobalPaste);
128
- }, [categories]);
129
- const handleUpdate = (id, updates) => {
130
- const newCategories = categories.map(
131
- (cat) => cat.id === id ? { ...cat, ...updates } : cat
132
- );
133
- onChange(newCategories);
134
- };
135
- const handleDelete = (id) => {
136
- if (categories.length <= 1) return;
137
- onChange(categories.filter((cat) => cat.id !== id));
138
- };
139
- return /* @__PURE__ */ jsxs(Fragment, { children: [
140
- /* @__PURE__ */ jsxs("div", { ref: containerRef, className: "ui-space-y-3", children: [
141
- /* @__PURE__ */ jsx("div", { className: "ui-flex ui-items-center ui-justify-between", children: /* @__PURE__ */ jsx("label", { className: "ui-text-sm ui-font-medium ui-text-gray-700", children: "Payment Categories" }) }),
142
- /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(DndContext, { sensors, collisionDetection: closestCenter, onDragEnd: handleDragEnd, children: /* @__PURE__ */ jsx(SortableContext, { items: categories.map((c) => c.id), strategy: verticalListSortingStrategy, children: categories.map((category, index) => /* @__PURE__ */ jsx(
143
- SortableCategoryItem,
144
- {
145
- category,
146
- index,
147
- onUpdate: handleUpdate,
148
- onDelete: handleDelete,
149
- isDeletable: categories.length > 1,
150
- isNameError: showError && !category.name.trim()
151
- },
152
- category.id
153
- )) }) }) }),
154
- /* @__PURE__ */ jsxs(
155
- "button",
156
- {
157
- onClick: handleAdd,
158
- className: `ui-flex ui-items-center ui-gap-2 ui-text-sm ui-font-medium ui-mt-1 ui-pl-1 ui-text-primaryx-600 hover:ui-text-primaryx-700`,
159
- children: [
160
- /* @__PURE__ */ jsx(FontAwesomeIcon, { icon: faPlus, className: "ui-text-xs" }),
161
- "Add Category"
162
- ]
163
- }
164
- )
165
- ] }),
166
- /* @__PURE__ */ jsx(
167
- Alert,
168
- {
169
- isVisible: alertState.isVisible,
170
- message: alertState.message,
171
- type: alertState.type,
172
- onClose: () => setAlertState((prev) => ({ ...prev, isVisible: false }))
173
- }
174
- )
175
- ] });
176
- };
177
- function SortableCategoryItem({ category, index, onUpdate, onDelete, isDeletable, isNameError }) {
178
- const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: category.id });
179
- const style = {
180
- transform: CSS.Transform.toString(transform),
181
- transition,
182
- opacity: isDragging ? 0.5 : 1,
183
- position: "relative",
184
- zIndex: isDragging ? 1 : 0
185
- };
186
- return /* @__PURE__ */ jsxs("div", { ref: setNodeRef, style, className: "ui-w-full ui-flex ui-items-center ui-gap-2 ui-group", children: [
187
- /* @__PURE__ */ jsx(
188
- "div",
189
- {
190
- ...attributes,
191
- ...listeners,
192
- className: "sm:ui-block ui-hidden ui-text-gray-300 ui-cursor-move hover:ui-text-gray-500 ui-px-1 ui-opacity-0 group-hover:ui-opacity-100 ui-transition-opacity",
193
- children: /* @__PURE__ */ jsx(FontAwesomeIcon, { icon: faGripVertical })
194
- }
195
- ),
196
- /* @__PURE__ */ jsx("div", { className: "sm:ui-px-2 ui-text-gray-400", children: /* @__PURE__ */ jsxs("span", { className: "ui-text-sm ui-font-mono", children: [
197
- index + 1,
198
- "."
199
- ] }) }),
200
- /* @__PURE__ */ jsxs("div", { className: "ui-flex-1 ui-grid sm:ui-grid-cols-2 sm:ui-gap-2", children: [
201
- /* @__PURE__ */ jsx(
202
- FormInput,
203
- {
204
- type: "text",
205
- value: category.name,
206
- onChange: (e) => onUpdate(category.id, { name: typeof e === "string" ? e : e.target.value }),
207
- placeholder: `Category ${index + 1}`,
208
- inputClassName: "ui-h-12 ui-text-sm",
209
- error: isNameError ? "Required" : void 0
210
- }
211
- ),
212
- /* @__PURE__ */ jsx(
213
- FormInput,
214
- {
215
- type: "number",
216
- value: category.price.toString(),
217
- onChange: (e) => onUpdate(category.id, { price: parseFloat(typeof e === "string" ? e : e.target.value) || 0 }),
218
- placeholder: "Price",
219
- inputClassName: "ui-h-12 ui-text-sm",
220
- suffix: "PKR",
221
- min: 0
222
- }
223
- )
224
- ] }),
225
- /* @__PURE__ */ jsx(
226
- Button,
227
- {
228
- type: "button",
229
- variant: "ghost",
230
- size: "sm",
231
- onClick: () => onDelete(category.id),
232
- disabled: !isDeletable,
233
- className: `sm:ui-block ui-hidden ui-transition-opacity ${isDeletable ? "ui-opacity-100 ui-text-red-500 hover:ui-text-red-600 hover:ui-bg-red-50" : "ui-opacity-0 ui-cursor-not-allowed ui-text-gray-300"}`,
234
- children: /* @__PURE__ */ jsx(Trash2, { className: "ui-w-4 ui-h-4" })
235
- }
236
- )
237
- ] });
238
- }
239
- export {
240
- CategoryList
241
- };
242
- //# sourceMappingURL=CategoryList.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CategoryList.js","sources":["../../../src/components/FormBuilder/CategoryList.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { useState } from 'react';\r\nimport { Button } from '../Button';\r\nimport { Trash2 } from 'lucide-react';\r\nimport { DndContext, closestCenter, DragEndEvent, PointerSensor, useSensor, useSensors } from '@dnd-kit/core';\r\nimport { SortableContext, verticalListSortingStrategy, arrayMove, useSortable } from '@dnd-kit/sortable';\r\nimport { CSS } from '@dnd-kit/utilities';\r\nimport FormInput from '../FormInput/FormInput';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faPlus, faGripVertical } from '@fortawesome/free-solid-svg-icons';\r\nimport Alert from '../Alert/Alert';\r\n\r\nexport interface CategoryDraft {\r\n id: string;\r\n name: string;\r\n price: number;\r\n}\r\n\r\ninterface CategoryListProps {\r\n categories: CategoryDraft[];\r\n onChange: (categories: CategoryDraft[]) => void;\r\n showError?: boolean;\r\n}\r\n\r\nexport const CategoryList: React.FC<CategoryListProps> = ({ categories, onChange, showError }) => {\r\n const containerRef = React.useRef<HTMLDivElement>(null);\r\n const [alertState, setAlertState] = useState<{ isVisible: boolean; message: string; type: 'success' | 'error' }>({\r\n isVisible: false,\r\n message: '',\r\n type: 'success'\r\n });\r\n\r\n const sensors = useSensors(\r\n useSensor(PointerSensor, { activationConstraint: { distance: 3 } })\r\n );\r\n\r\n const handleDragEnd = (event: DragEndEvent) => {\r\n const { active, over } = event;\r\n if (active.id !== over?.id) {\r\n const oldIndex = categories.findIndex(c => c.id === active.id);\r\n const newIndex = categories.findIndex(c => c.id === over?.id);\r\n if (oldIndex !== -1 && newIndex !== -1) {\r\n const newCategories = arrayMove(categories, oldIndex, newIndex);\r\n onChange(newCategories);\r\n }\r\n }\r\n };\r\n\r\n const handleAdd = () => {\r\n const newCategory: CategoryDraft = {\r\n id: crypto.randomUUID(),\r\n name: ``,\r\n price: 0\r\n };\r\n onChange([...categories, newCategory]);\r\n };\r\n\r\n const handleBulkAdd = (newItems: CategoryDraft[]) => {\r\n onChange([...categories, ...newItems]);\r\n };\r\n\r\n // Global Paste Listener\r\n React.useEffect(() => {\r\n const handleGlobalPaste = (e: ClipboardEvent) => {\r\n const target = e.target as HTMLElement;\r\n const isInput = target.tagName === 'INPUT' || target.tagName === 'TEXTAREA';\r\n const isInside = containerRef.current?.contains(target);\r\n\r\n if (isInput && !isInside) return;\r\n if (target !== document.body && !isInside) return;\r\n\r\n const clipboardData = e.clipboardData?.getData(\"text\");\r\n if (!clipboardData) return;\r\n\r\n const lines = clipboardData.split(/\\r?\\n/).filter(line => line.trim() !== \"\");\r\n if (lines.length === 0) return;\r\n\r\n const newItems: CategoryDraft[] = [];\r\n let skippedCount = 0;\r\n\r\n lines.forEach(line => {\r\n let name = \"\";\r\n let price = 0;\r\n let parsed = false;\r\n\r\n if (line.includes(\"\\t\")) {\r\n const parts = line.split(\"\\t\");\r\n if (parts.length >= 2) {\r\n name = parts[0].trim();\r\n const pricePart = parts[1].replace(/[^0-9.]/g, \"\");\r\n if (!isNaN(parseFloat(pricePart))) {\r\n price = parseFloat(pricePart);\r\n parsed = true;\r\n }\r\n }\r\n }\r\n else if (line.includes(\"|\")) {\r\n const parts = line.split(\"|\");\r\n if (parts.length >= 2) {\r\n name = parts[0].trim();\r\n const pricePart = parts[1].replace(/[^0-9.]/g, \"\");\r\n if (!isNaN(parseFloat(pricePart))) {\r\n price = parseFloat(pricePart);\r\n parsed = true;\r\n }\r\n }\r\n }\r\n else {\r\n const match = line.match(/^(.*)\\s+(\\d+(\\.\\d{1,2})?)$/);\r\n if (match) {\r\n name = match[1].trim();\r\n price = parseFloat(match[2]);\r\n parsed = true;\r\n }\r\n }\r\n\r\n if (!parsed && (lines.length > 1 || !isInput)) {\r\n name = line.trim();\r\n price = 0;\r\n parsed = true;\r\n }\r\n\r\n if (parsed && name) {\r\n newItems.push({\r\n id: crypto.randomUUID(),\r\n name,\r\n price\r\n });\r\n } else {\r\n skippedCount++;\r\n }\r\n });\r\n\r\n if (isInput && lines.length === 1 && newItems.length === 1 && newItems[0].price === 0) {\r\n return;\r\n }\r\n\r\n if (newItems.length > 0) {\r\n e.preventDefault();\r\n handleBulkAdd(newItems);\r\n setAlertState({\r\n isVisible: true,\r\n message: `Added ${newItems.length} categories from clipboard.`,\r\n type: 'success'\r\n });\r\n setTimeout(() => setAlertState(prev => ({ ...prev, isVisible: false })), 3000);\r\n } else if (skippedCount > 0 && !isInput) {\r\n setAlertState({\r\n isVisible: true,\r\n message: \"Could not parse clipboard data.\",\r\n type: 'error'\r\n });\r\n setTimeout(() => setAlertState(prev => ({ ...prev, isVisible: false })), 3000);\r\n }\r\n };\r\n\r\n document.addEventListener('paste', handleGlobalPaste);\r\n return () => document.removeEventListener('paste', handleGlobalPaste);\r\n }, [categories]);\r\n\r\n const handleUpdate = (id: string, updates: Partial<CategoryDraft>) => {\r\n const newCategories = categories.map(cat =>\r\n cat.id === id ? { ...cat, ...updates } : cat\r\n );\r\n onChange(newCategories);\r\n };\r\n\r\n const handleDelete = (id: string) => {\r\n if (categories.length <= 1) return;\r\n onChange(categories.filter(cat => cat.id !== id));\r\n };\r\n\r\n return (\r\n <>\r\n <div ref={containerRef} className=\"ui-space-y-3\">\r\n <div className=\"ui-flex ui-items-center ui-justify-between\">\r\n <label className=\"ui-text-sm ui-font-medium ui-text-gray-700\">Payment Categories</label>\r\n </div>\r\n\r\n <div>\r\n <DndContext sensors={sensors} collisionDetection={closestCenter} onDragEnd={handleDragEnd}>\r\n <SortableContext items={categories.map(c => c.id)} strategy={verticalListSortingStrategy}>\r\n {categories.map((category, index) => (\r\n <SortableCategoryItem\r\n key={category.id}\r\n category={category}\r\n index={index}\r\n onUpdate={handleUpdate}\r\n onDelete={handleDelete}\r\n isDeletable={categories.length > 1}\r\n isNameError={showError && !category.name.trim()}\r\n />\r\n ))}\r\n </SortableContext>\r\n </DndContext>\r\n </div>\r\n\r\n <button\r\n onClick={handleAdd}\r\n className={`ui-flex ui-items-center ui-gap-2 ui-text-sm ui-font-medium ui-mt-1 ui-pl-1 ui-text-primaryx-600 hover:ui-text-primaryx-700`}\r\n >\r\n <FontAwesomeIcon icon={faPlus} className=\"ui-text-xs\" />\r\n Add Category\r\n </button>\r\n </div>\r\n <Alert\r\n isVisible={alertState.isVisible}\r\n message={alertState.message}\r\n type={alertState.type}\r\n onClose={() => setAlertState(prev => ({ ...prev, isVisible: false }))}\r\n />\r\n </>\r\n );\r\n};\r\n\r\ninterface SortableCategoryItemProps {\r\n category: CategoryDraft;\r\n index: number;\r\n onUpdate: (id: string, updates: Partial<CategoryDraft>) => void;\r\n onDelete: (id: string) => void;\r\n isDeletable: boolean;\r\n isNameError?: boolean;\r\n}\r\n\r\nfunction SortableCategoryItem({ category, index, onUpdate, onDelete, isDeletable, isNameError }: SortableCategoryItemProps) {\r\n const { attributes, listeners, setNodeRef, transform, transition, isDragging } = useSortable({ id: category.id });\r\n\r\n const style = {\r\n transform: CSS.Transform.toString(transform),\r\n transition,\r\n opacity: isDragging ? 0.5 : 1,\r\n position: 'relative' as const,\r\n zIndex: isDragging ? 1 : 0,\r\n };\r\n\r\n return (\r\n <div ref={setNodeRef} style={style} className=\"ui-w-full ui-flex ui-items-center ui-gap-2 ui-group\">\r\n {/* Drag Handle */}\r\n <div\r\n {...attributes}\r\n {...listeners}\r\n className=\"sm:ui-block ui-hidden ui-text-gray-300 ui-cursor-move hover:ui-text-gray-500 ui-px-1 ui-opacity-0 group-hover:ui-opacity-100 ui-transition-opacity\"\r\n >\r\n <FontAwesomeIcon icon={faGripVertical} />\r\n </div>\r\n\r\n <div className=\"sm:ui-px-2 ui-text-gray-400\">\r\n <span className=\"ui-text-sm ui-font-mono\">{index + 1}.</span>\r\n </div>\r\n\r\n <div className=\"ui-flex-1 ui-grid sm:ui-grid-cols-2 sm:ui-gap-2\">\r\n <FormInput\r\n type=\"text\"\r\n value={category.name}\r\n onChange={(e: any) => onUpdate(category.id, { name: typeof e === 'string' ? e : e.target.value })}\r\n placeholder={`Category ${index + 1}`}\r\n inputClassName=\"ui-h-12 ui-text-sm\"\r\n error={isNameError ? \"Required\" : undefined}\r\n />\r\n <FormInput\r\n type=\"number\"\r\n value={category.price.toString()}\r\n onChange={(e: any) => onUpdate(category.id, { price: parseFloat(typeof e === 'string' ? e : e.target.value) || 0 })}\r\n placeholder=\"Price\"\r\n inputClassName=\"ui-h-12 ui-text-sm\"\r\n suffix=\"PKR\"\r\n min={0}\r\n />\r\n </div>\r\n\r\n <Button\r\n type=\"button\"\r\n variant=\"ghost\"\r\n size=\"sm\"\r\n onClick={() => onDelete(category.id)}\r\n disabled={!isDeletable}\r\n className={`sm:ui-block ui-hidden ui-transition-opacity ${isDeletable ? 'ui-opacity-100 ui-text-red-500 hover:ui-text-red-600 hover:ui-bg-red-50' : 'ui-opacity-0 ui-cursor-not-allowed ui-text-gray-300'}`}\r\n >\r\n <Trash2 className=\"ui-w-4 ui-h-4\" />\r\n </Button>\r\n </div>\r\n );\r\n}\r\n"],"names":["React"],"mappings":"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"}