@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,418 +0,0 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import React__default, { memo, useMemo } from "react";
3
- import { TicketTierAvailabilityType } from "../../../types/types.js";
4
- import { Banknote, Users, Info, List } from "lucide-react";
5
- import { AnimatePresence, motion } from "framer-motion";
6
- import FormInput from "../../ui/FormInput.js";
7
- import Tooltip from "../../ui/Tooltip.js";
8
- import { useTicketTierForm } from "../hooks/useTicketTierForm.js";
9
- import { Radio } from "../../ui/Radio.js";
10
- import { Checkbox } from "../../ui/Checkbox.js";
11
- import { convertDateFormat } from "../../../utils/utils.js";
12
- import SingleDateTimeInput from "./SingleDateTimeInput.js";
13
- import { splitDateToLocal } from "../../../utils/single-event-helpers.js";
14
- import RequiredToggle from "../../FormBuilder/RequiredToggle.js";
15
- import { Button } from "../../Button/Button.js";
16
- const FIELD_TOOLTIPS = {
17
- name: "A short, descriptive name for this ticket tier. Attendees will see this when purchasing.",
18
- price: "The base price per ticket for this tier. Set to 0 for free tickets.",
19
- capacity: "The total number of tickets available in this tier. Once sold out, no more tickets can be purchased.",
20
- members: "How many attendees a single ticket covers. E.g. set to 2 for a couples ticket, or 1 for an individual ticket.",
21
- discountedPrice: "The reduced price attendees pay when the discount is active. Must be less than the base price.",
22
- availabilitySchedule: "Control which event dates this ticket tier is available on. Only relevant for multi-day events.",
23
- availabilityGlobal: "Ticket is valid for every day of the event.",
24
- availabilityIndividual: "Ticket is valid for one specific event date.",
25
- availabilityCustom: "Ticket is valid only for the specific dates you choose."
26
- };
27
- const defaultState = {
28
- name: "",
29
- description: "",
30
- availability_type: TicketTierAvailabilityType.GLOBAL,
31
- availability_schedule: [],
32
- has_discount: false,
33
- discounted_price: void 0,
34
- discount_valid_till_date: void 0,
35
- discount_valid_till_time: void 0
36
- };
37
- function TicketTierForm({
38
- initialData,
39
- dateRange,
40
- onClose,
41
- onSave,
42
- eventStart,
43
- eventEnd,
44
- registrationStart,
45
- registrationEnd,
46
- existingTierNames
47
- }) {
48
- var _a, _b, _c, _d, _e, _f;
49
- const {
50
- formState: formData,
51
- setField,
52
- setFields,
53
- handleBlur,
54
- handleSubmit,
55
- errors: formErrors,
56
- resetForm,
57
- setFormState
58
- } = useTicketTierForm({
59
- initialData: initialData || defaultState,
60
- defaultState,
61
- eventStart,
62
- eventEnd,
63
- registrationStart,
64
- registrationEnd,
65
- existingTierNames
66
- });
67
- React__default.useEffect(() => {
68
- if (initialData) {
69
- let discountDate = initialData.discount_valid_till_date;
70
- let discountTime = initialData.discount_valid_till_time;
71
- if (!discountDate && !discountTime && initialData.discount_valid_till) {
72
- const dateObj = splitDateToLocal(initialData.discount_valid_till);
73
- discountDate = dateObj.date;
74
- discountTime = dateObj.time;
75
- }
76
- const flattenedData = {
77
- ...initialData,
78
- discounted_price: initialData.discounted_price ?? initialData.discount_price,
79
- discount_valid_till_date: discountDate,
80
- discount_valid_till_time: discountTime
81
- };
82
- setFormState({ ...defaultState, ...flattenedData });
83
- } else {
84
- setFormState(defaultState);
85
- }
86
- }, [initialData, setFormState, defaultState]);
87
- const isMultiDateEvent = useMemo(() => {
88
- return dateRange && dateRange.length > 1;
89
- }, [dateRange]);
90
- const formatDate = (date) => {
91
- return date.toLocaleDateString("en-US", {
92
- weekday: "long",
93
- year: "numeric",
94
- month: "long",
95
- day: "numeric"
96
- });
97
- };
98
- const getDateKey = (date) => {
99
- return date.toISOString().split("T")[0];
100
- };
101
- const handleDateSelection = (dateKey) => {
102
- const currentDates = formData.availability_schedule || [];
103
- const newDates = currentDates.includes(dateKey) ? currentDates.filter((d) => d !== dateKey) : [...currentDates, dateKey];
104
- setField("availability_schedule", newDates);
105
- };
106
- const handleClose = () => {
107
- resetForm();
108
- onClose == null ? void 0 : onClose();
109
- };
110
- const onSubmit = (data) => {
111
- let validTill = void 0;
112
- if (data.discount_valid_till_date) {
113
- validTill = convertDateFormat(data.discount_valid_till_date && data.discount_valid_till_time ? `${data.discount_valid_till_date}T${data.discount_valid_till_time}` : "");
114
- }
115
- const dataToSave = {
116
- ...data,
117
- id: (initialData == null ? void 0 : initialData.id) || crypto.randomUUID(),
118
- price: Number(data == null ? void 0 : data.price) || 0,
119
- discounted_price: Number(data == null ? void 0 : data.discounted_price) || 0,
120
- discount_valid_till: validTill
121
- };
122
- delete dataToSave.discount_valid_till_date;
123
- delete dataToSave.discount_valid_till_time;
124
- delete dataToSave.discount_price;
125
- onSave(dataToSave);
126
- handleClose();
127
- };
128
- const showCustomDates = formData.availability_type === TicketTierAvailabilityType.CUSTOM;
129
- return /* @__PURE__ */ jsxs(Fragment, { children: [
130
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col md:flex-row gap-x-4 space-y-4", children: [
131
- /* @__PURE__ */ jsxs("div", { className: "flex-1 space-y-4 text-sm", children: [
132
- /* @__PURE__ */ jsx("div", { "data-name": "name", children: /* @__PURE__ */ jsx(
133
- FormInput,
134
- {
135
- label: "Name",
136
- placeholder: "e.g. Group of 3",
137
- value: formData.name,
138
- onChange: (e) => setField("name", e.target.value),
139
- onBlur: () => handleBlur("name"),
140
- error: formErrors.name,
141
- required: true,
142
- type: "text",
143
- tooltip: FIELD_TOOLTIPS.name
144
- }
145
- ) }),
146
- /* @__PURE__ */ jsxs("div", { children: [
147
- /* @__PURE__ */ jsx("label", { className: "block text-sm font-medium text-grey-700", children: "Description" }),
148
- /* @__PURE__ */ jsx(
149
- "textarea",
150
- {
151
- name: "description",
152
- maxLength: 255,
153
- onChange: (e) => setField("description", e.target.value),
154
- value: formData.description,
155
- onBlur: () => {
156
- var _a2;
157
- if (typeof formData.description === "string") {
158
- const trimmed = ((_a2 = formData.description) == null ? void 0 : _a2.trim()) || "";
159
- if (trimmed !== formData.description) {
160
- setField("description", trimmed);
161
- }
162
- }
163
- },
164
- placeholder: "e.g. Includes backstage access, complimentary drinks, and priority seating",
165
- className: `text-sm px-3 py-1 w-full min-h-20 border ${formErrors.description ? "!border-error-500" : "input-border"} rounded-lg focus:ring-2 focus:ring-primaryx-500/20 focus:border-primaryx-500 transition-all duration-200 text-gray-900 mt-1 placeholder-gray-400`
166
- }
167
- ),
168
- /* @__PURE__ */ jsx("span", { className: "text-xs text-error-700", children: formErrors.description }),
169
- /* @__PURE__ */ jsxs("div", { className: "text-right text-xs text-grey-500 mt-1", children: [
170
- "Word count: ",
171
- ((_a = formData == null ? void 0 : formData.description) == null ? void 0 : _a.length) || 0,
172
- "/255"
173
- ] })
174
- ] }),
175
- /* @__PURE__ */ jsxs("div", { className: "grid sm:grid-cols-2 gap-4", children: [
176
- /* @__PURE__ */ jsx("div", { "data-name": "price", children: /* @__PURE__ */ jsx(
177
- FormInput,
178
- {
179
- label: "Price",
180
- icon: Banknote,
181
- placeholder: "e.g. 500",
182
- value: ((_b = formData == null ? void 0 : formData.price) == null ? void 0 : _b.toString()) || "",
183
- onChange: (e) => setField("price", Number(e.target.value)),
184
- onBlur: () => handleBlur("price"),
185
- error: formErrors.price,
186
- type: "number",
187
- min: 0,
188
- tooltip: FIELD_TOOLTIPS.price
189
- }
190
- ) }),
191
- /* @__PURE__ */ jsx("div", { "data-name": "members", children: /* @__PURE__ */ jsx(
192
- FormInput,
193
- {
194
- label: "Members per ticket",
195
- icon: Users,
196
- placeholder: "e.g. 1",
197
- value: ((_c = formData == null ? void 0 : formData.members) == null ? void 0 : _c.toString()) || "",
198
- onChange: (e) => setField("members", Number(e.target.value)),
199
- onBlur: () => handleBlur("members"),
200
- error: formErrors.members,
201
- type: "number",
202
- min: 1,
203
- required: true,
204
- tooltip: FIELD_TOOLTIPS.members
205
- }
206
- ) })
207
- ] }),
208
- /* @__PURE__ */ jsx("div", { "data-name": "capacity", children: /* @__PURE__ */ jsx(
209
- FormInput,
210
- {
211
- label: "Capacity",
212
- icon: Users,
213
- placeholder: "e.g. 100",
214
- value: ((_d = formData == null ? void 0 : formData.capacity) == null ? void 0 : _d.toString()) || "",
215
- onChange: (e) => setField("capacity", Number(e.target.value)),
216
- onBlur: () => handleBlur("capacity"),
217
- error: formErrors.capacity,
218
- type: "number",
219
- min: 1,
220
- required: true,
221
- tooltip: FIELD_TOOLTIPS.capacity
222
- }
223
- ) }),
224
- /* @__PURE__ */ jsxs("div", { className: "pt-2", children: [
225
- /* @__PURE__ */ jsx(
226
- RequiredToggle,
227
- {
228
- label: "Enable discounted price?",
229
- checked: formData.has_discount || false,
230
- onChange: (val) => setField("has_discount", val)
231
- }
232
- ),
233
- formData.has_discount && /* @__PURE__ */ jsxs("div", { className: "space-y-4 mt-3 pl-1", children: [
234
- /* @__PURE__ */ jsx("div", { "data-name": "discount_price", children: /* @__PURE__ */ jsx(
235
- FormInput,
236
- {
237
- label: "Discounted price",
238
- icon: Banknote,
239
- placeholder: "e.g. 350",
240
- value: ((_e = formData == null ? void 0 : formData.discounted_price) == null ? void 0 : _e.toString()) || "",
241
- onChange: (e) => setField("discounted_price", Number(e.target.value)),
242
- onBlur: () => handleBlur("discounted_price"),
243
- error: formErrors.discounted_price,
244
- type: "number",
245
- min: 0,
246
- required: true,
247
- tooltip: FIELD_TOOLTIPS.discountedPrice
248
- }
249
- ) }),
250
- /* @__PURE__ */ jsx("div", { "data-name": "discount_valid_till", children: /* @__PURE__ */ jsx(
251
- SingleDateTimeInput,
252
- {
253
- label: "Valid till",
254
- name: "discount_valid_till",
255
- labelClassName: "w-max text-sm font-medium text-gray-700",
256
- layoutClassName: "flex flex-col sm:flex-col items-start sm:items-start gap-1.5",
257
- dateTimeLayoutClassName: "w-full grid grid-cols-1 sm:grid-cols-2",
258
- dateValue: formData.discount_valid_till_date || "",
259
- timeValue: formData.discount_valid_till_time || "",
260
- onChange: (values) => {
261
- const nextDate = (values.date !== void 0 ? values.date : formData.discount_valid_till_date) || "";
262
- let nextTime = values.time !== void 0 ? values.time : formData.discount_valid_till_time;
263
- if (values.date && !nextTime) {
264
- const defaultTime = "00:00";
265
- let isValid = true;
266
- if ((registrationStart == null ? void 0 : registrationStart.date) && nextDate === registrationStart.date) {
267
- if (defaultTime < registrationStart.time) isValid = false;
268
- }
269
- if ((registrationEnd == null ? void 0 : registrationEnd.date) && nextDate === registrationEnd.date) {
270
- if (defaultTime > registrationEnd.time) isValid = false;
271
- }
272
- if ((registrationStart == null ? void 0 : registrationStart.date) && nextDate < registrationStart.date) isValid = false;
273
- if ((registrationEnd == null ? void 0 : registrationEnd.date) && nextDate > registrationEnd.date) isValid = false;
274
- if (isValid) nextTime = defaultTime;
275
- }
276
- setFields({
277
- discount_valid_till_date: nextDate,
278
- discount_valid_till_time: nextTime
279
- });
280
- },
281
- onBlur: () => {
282
- },
283
- error: formErrors.discount_valid_till_date || formErrors.discount_valid_till_time,
284
- minDate: registrationStart == null ? void 0 : registrationStart.date,
285
- maxDate: registrationEnd == null ? void 0 : registrationEnd.date,
286
- minTime: (registrationStart == null ? void 0 : registrationStart.date) && formData.discount_valid_till_date === registrationStart.date ? registrationStart.time : void 0,
287
- maxTime: (registrationEnd == null ? void 0 : registrationEnd.date) && formData.discount_valid_till_date === registrationEnd.date ? registrationEnd.time : void 0
288
- }
289
- ) })
290
- ] })
291
- ] }),
292
- isMultiDateEvent && /* @__PURE__ */ jsxs("div", { className: "border-t border-grey-100 pt-4", children: [
293
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-3", children: [
294
- /* @__PURE__ */ jsx("label", { className: "text-sm font-medium text-grey-700", children: "Ticket availability" }),
295
- /* @__PURE__ */ jsx(Tooltip, { content: FIELD_TOOLTIPS.availabilitySchedule, placement: "top", children: /* @__PURE__ */ jsx(Info, { className: "h-4 w-4 text-grey-700 hover:text-grey-800 cursor-default transition-colors" }) })
296
- ] }),
297
- /* @__PURE__ */ jsx("div", { className: "space-y-3", children: [
298
- {
299
- type: TicketTierAvailabilityType.GLOBAL,
300
- label: `All event dates`,
301
- tooltip: FIELD_TOOLTIPS.availabilityGlobal
302
- },
303
- {
304
- type: TicketTierAvailabilityType.INDIVIDUAL,
305
- label: "Single event date",
306
- tooltip: FIELD_TOOLTIPS.availabilityIndividual
307
- },
308
- {
309
- type: TicketTierAvailabilityType.CUSTOM,
310
- label: "Selected event dates",
311
- tooltip: FIELD_TOOLTIPS.availabilityCustom
312
- }
313
- ].map((option) => /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 cursor-pointer", children: [
314
- /* @__PURE__ */ jsx(
315
- Radio,
316
- {
317
- name: "availability_type",
318
- checked: formData.availability_type === option.type,
319
- onChange: () => setField("availability_type", option.type)
320
- }
321
- ),
322
- /* @__PURE__ */ jsx("span", { className: `text-sm ${formData.availability_type === option.type ? "font-medium text-primaryx-900" : "text-grey-700"}`, children: option.label }),
323
- /* @__PURE__ */ jsx(Tooltip, { content: option.tooltip, placement: "top", children: /* @__PURE__ */ jsx(Info, { className: "h-4 w-4 text-grey-700 hover:text-grey-800 cursor-default transition-colors" }) })
324
- ] }, option.type)) })
325
- ] })
326
- ] }),
327
- /* @__PURE__ */ jsx(AnimatePresence, { children: showCustomDates && /* @__PURE__ */ jsx(
328
- motion.div,
329
- {
330
- initial: { opacity: 0, width: 0, scale: 0.95 },
331
- animate: { opacity: 1, width: "auto", scale: 1 },
332
- exit: { opacity: 0, width: 0, scale: 0.95 },
333
- transition: { duration: 0.3, type: "tween", bounce: 0, stiffness: 100 },
334
- className: "hidden md:block overflow-hidden",
335
- children: /* @__PURE__ */ jsxs("div", { className: "w-[280px] h-full pl-4 border-l border-grey-400 flex flex-col", children: [
336
- /* @__PURE__ */ jsxs("h3", { className: "text-base font-medium text-grey-900 mb-4 flex items-center gap-2", children: [
337
- /* @__PURE__ */ jsx(List, { className: "w-4 h-4 text-grey-500" }),
338
- "Select dates"
339
- ] }),
340
- /* @__PURE__ */ jsx("div", { className: "flex-1 overflow-hidden input-border rounded-lg max-h-[500px]", children: /* @__PURE__ */ jsx("div", { className: "overflow-y-auto custom-scrollbar bg-grey-50/50 p-2 h-full", children: /* @__PURE__ */ jsx("div", { className: "space-y-1", children: dateRange == null ? void 0 : dateRange.map((date) => {
341
- var _a2;
342
- const dateKey = getDateKey(date);
343
- const isSelected = (_a2 = formData.availability_schedule) == null ? void 0 : _a2.includes(dateKey);
344
- return /* @__PURE__ */ jsxs(
345
- "label",
346
- {
347
- className: `flex items-center gap-x-2 p-2 rounded-md cursor-pointer transition-all ${isSelected ? "bg-white border border-primaryx-200" : "hover:bg-white"}`,
348
- children: [
349
- /* @__PURE__ */ jsx("div", { className: "flex items-center h-5", children: /* @__PURE__ */ jsx(
350
- Checkbox,
351
- {
352
- checked: isSelected || false,
353
- onCheckedChange: () => handleDateSelection(dateKey)
354
- }
355
- ) }),
356
- /* @__PURE__ */ jsx("span", { className: `line-clamp-1 text-xs ${isSelected ? "text-grey-900 font-medium" : "text-grey-600"}`, children: formatDate(date) })
357
- ]
358
- },
359
- dateKey
360
- );
361
- }) }) }) }),
362
- formErrors.availability_schedule && /* @__PURE__ */ jsx("div", { className: "mt-2 text-xs text-error-600 bg-error-50 p-2 rounded-md", children: formErrors.availability_schedule }),
363
- /* @__PURE__ */ jsxs("div", { className: "mt-4 pt-4 input-border-t text-xs text-grey-500", children: [
364
- ((_f = formData.availability_schedule) == null ? void 0 : _f.length) || 0,
365
- " dates selected"
366
- ] })
367
- ] })
368
- }
369
- ) }),
370
- showCustomDates && /* @__PURE__ */ jsxs("div", { className: "md:hidden border-t border-grey-100 pt-4", children: [
371
- /* @__PURE__ */ jsx("label", { className: "block text-sm font-medium text-grey-700 mb-2", children: "Select dates" }),
372
- /* @__PURE__ */ jsx("div", { className: "max-h-48 overflow-y-auto border border-grey-200 rounded-md p-3 space-y-1.5", children: dateRange == null ? void 0 : dateRange.map((date) => {
373
- var _a2;
374
- const dateKey = getDateKey(date);
375
- return /* @__PURE__ */ jsxs("label", { className: "flex items-center", children: [
376
- /* @__PURE__ */ jsx(
377
- "input",
378
- {
379
- type: "checkbox",
380
- checked: ((_a2 = formData.availability_schedule) == null ? void 0 : _a2.includes(dateKey)) || false,
381
- onChange: () => handleDateSelection(dateKey),
382
- className: "mt-1 mr-2 rounded border-grey-300"
383
- }
384
- ),
385
- /* @__PURE__ */ jsx("span", { className: "text-xs text-grey-700", children: formatDate(date) })
386
- ] }, dateKey);
387
- }) }),
388
- /* @__PURE__ */ jsx("span", { className: "text-xs text-error-700 block mt-1", children: formErrors.availability_schedule })
389
- ] })
390
- ] }),
391
- /* @__PURE__ */ jsxs("div", { className: "mt-2 flex justify-end gap-3 pt-4", children: [
392
- /* @__PURE__ */ jsx(
393
- Button,
394
- {
395
- size: "md",
396
- type: "button",
397
- onClick: handleClose,
398
- variant: "outline",
399
- children: "Cancel"
400
- }
401
- ),
402
- /* @__PURE__ */ jsx(
403
- Button,
404
- {
405
- size: "md",
406
- type: "button",
407
- onClick: () => handleSubmit(onSubmit),
408
- children: "Save tier"
409
- }
410
- )
411
- ] })
412
- ] });
413
- }
414
- const TicketTierForm$1 = memo(TicketTierForm);
415
- export {
416
- TicketTierForm$1 as default
417
- };
418
- //# sourceMappingURL=TicketTierForm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TicketTierForm.js","sources":["../../../../src/components/EventAddForm/components/TicketTierForm.tsx"],"sourcesContent":["/* eslint-disable react-hooks/exhaustive-deps */\r\n\"use client\";\r\n\r\nimport React, { memo, useMemo } from \"react\";\r\nimport { TicketTier, TicketTierAvailabilityType } from \"@/types/types\";\r\nimport { Banknote, Info, List, Users } from \"lucide-react\";\r\nimport { AnimatePresence, motion } from \"framer-motion\";\r\nimport FormInput from \"@/components/ui/FormInput\";\r\nimport Tooltip from \"@/components/ui/Tooltip\";\r\nimport { useTicketTierForm, TicketTierFormState } from \"../hooks/useTicketTierForm\";\r\nimport { Button } from \"../../Button\";\r\nimport { Radio } from \"@/components/ui/Radio\";\r\nimport { Checkbox } from \"@/components/ui/Checkbox\";\r\nimport { convertDateFormat } from \"@/utils/utils\";\r\nimport SingleDateTimeInput from \"./SingleDateTimeInput\";\r\nimport { splitDateToLocal } from \"@/utils/single-event-helpers\";\r\nimport RequiredToggle from \"@/components/FormBuilder/RequiredToggle\";\r\n\r\n\r\n/** Tooltip descriptions for each field — edit here to update all tooltips. */\r\nconst FIELD_TOOLTIPS = {\r\n name: \"A short, descriptive name for this ticket tier. Attendees will see this when purchasing.\",\r\n description: \"Optional details about what's included in this tier (e.g. perks, seat location, access level).\",\r\n price: \"The base price per ticket for this tier. Set to 0 for free tickets.\",\r\n capacity: \"The total number of tickets available in this tier. Once sold out, no more tickets can be purchased.\",\r\n members: \"How many attendees a single ticket covers. E.g. set to 2 for a couples ticket, or 1 for an individual ticket.\",\r\n discountedPrice: \"The reduced price attendees pay when the discount is active. Must be less than the base price.\",\r\n validTill: \"The deadline after which the discounted price is no longer available.\",\r\n availabilitySchedule: \"Control which event dates this ticket tier is available on. Only relevant for multi-day events.\",\r\n availabilityGlobal: \"Ticket is valid for every day of the event.\",\r\n availabilityIndividual: \"Ticket is valid for one specific event date.\",\r\n availabilityCustom: \"Ticket is valid only for the specific dates you choose.\",\r\n};\r\n\r\nconst defaultState = {\r\n name: \"\",\r\n description: \"\",\r\n availability_type: TicketTierAvailabilityType.GLOBAL,\r\n availability_schedule: [] as string[],\r\n has_discount: false,\r\n discounted_price: undefined as number | undefined,\r\n discount_valid_till_date: undefined as string | undefined,\r\n discount_valid_till_time: undefined as string | undefined,\r\n};\r\n\r\ninterface TicketTierFormProps {\r\n initialData?: any; // Using any to match previous implementation flexibility or strict type\r\n dateRange?: Date[];\r\n onClose?: () => void;\r\n onSave: (tier: TicketTier) => void;\r\n eventStart?: { date: string, time: string };\r\n eventEnd?: { date: string, time: string };\r\n registrationStart?: { date: string, time: string };\r\n registrationEnd?: { date: string, time: string };\r\n existingTierNames?: string[];\r\n}\r\n\r\nfunction TicketTierForm({\r\n initialData,\r\n dateRange,\r\n onClose,\r\n onSave,\r\n eventStart,\r\n eventEnd,\r\n registrationStart,\r\n registrationEnd,\r\n existingTierNames,\r\n}: TicketTierFormProps) {\r\n const {\r\n formState: formData,\r\n setField,\r\n setFields,\r\n handleBlur,\r\n handleSubmit,\r\n errors: formErrors,\r\n resetForm,\r\n setFormState\r\n } = useTicketTierForm({\r\n initialData: initialData || defaultState,\r\n defaultState: defaultState as any,\r\n eventStart,\r\n eventEnd,\r\n registrationStart,\r\n registrationEnd,\r\n existingTierNames\r\n });\r\n\r\n\r\n\r\n // Reset form when modal opens with new data or no data\r\n React.useEffect(() => {\r\n if (initialData) {\r\n let discountDate = initialData.discount_valid_till_date;\r\n let discountTime = initialData.discount_valid_till_time;\r\n\r\n if (!discountDate && !discountTime && initialData.discount_valid_till) {\r\n const dateObj = splitDateToLocal(initialData.discount_valid_till);\r\n discountDate = dateObj.date;\r\n discountTime = dateObj.time;\r\n }\r\n\r\n // Handle flattened discount_valid_till string from backend\r\n const flattenedData = {\r\n ...initialData,\r\n discounted_price: initialData.discounted_price ?? initialData.discount_price,\r\n discount_valid_till_date: discountDate,\r\n discount_valid_till_time: discountTime,\r\n };\r\n\r\n setFormState({ ...defaultState, ...flattenedData });\r\n } else {\r\n setFormState(defaultState as any);\r\n }\r\n }, [initialData, setFormState, defaultState]);\r\n\r\n const isMultiDateEvent = useMemo(() => {\r\n return dateRange && dateRange.length > 1;\r\n }, [dateRange]);\r\n\r\n const formatDate = (date: Date) => {\r\n return date.toLocaleDateString('en-US', {\r\n weekday: 'long',\r\n year: 'numeric',\r\n month: 'long',\r\n day: 'numeric'\r\n });\r\n };\r\n\r\n const getDateKey = (date: Date) => {\r\n return date.toISOString().split('T')[0];\r\n };\r\n\r\n const handleDateSelection = (dateKey: string) => {\r\n const currentDates = formData.availability_schedule || [];\r\n const newDates = currentDates.includes(dateKey)\r\n ? currentDates.filter(d => d !== dateKey)\r\n : [...currentDates, dateKey];\r\n\r\n setField(\"availability_schedule\", newDates);\r\n };\r\n\r\n const handleClose = () => {\r\n resetForm();\r\n onClose?.();\r\n };\r\n\r\n const onSubmit = (data: TicketTierFormState) => {\r\n let validTill = undefined;\r\n if (data.discount_valid_till_date) {\r\n validTill = convertDateFormat((data.discount_valid_till_date && data.discount_valid_till_time) ?\r\n `${data.discount_valid_till_date}T${data.discount_valid_till_time}` : \"\")\r\n }\r\n\r\n const dataToSave = {\r\n ...data,\r\n id: initialData?.id || crypto.randomUUID(),\r\n price: Number(data?.price) || 0,\r\n discounted_price: Number(data?.discounted_price) || 0,\r\n discount_valid_till: validTill\r\n }\r\n // Remove internal form fields\r\n delete (dataToSave as any).discount_valid_till_date;\r\n delete (dataToSave as any).discount_valid_till_time;\r\n delete (dataToSave as any).discount_price; // ensure we don't send this if it lingered\r\n\r\n onSave(dataToSave as any);\r\n handleClose();\r\n };\r\n\r\n const showCustomDates = formData.availability_type === TicketTierAvailabilityType.CUSTOM;\r\n\r\n return (<>\r\n\r\n <div className=\"flex flex-col md:flex-row gap-x-4 space-y-4\">\r\n {/* Left Column - Main Form */}\r\n <div className=\"flex-1 space-y-4 text-sm\">\r\n <div data-name=\"name\">\r\n <FormInput\r\n label=\"Name\"\r\n placeholder=\"e.g. Group of 3\"\r\n value={formData.name}\r\n onChange={(e: any) => setField(\"name\", e.target.value)}\r\n onBlur={() => handleBlur(\"name\")}\r\n error={formErrors.name}\r\n required\r\n type=\"text\"\r\n tooltip={FIELD_TOOLTIPS.name}\r\n />\r\n </div>\r\n\r\n <div>\r\n <label className=\"block text-sm font-medium text-grey-700\">\r\n Description\r\n </label>\r\n <textarea\r\n name=\"description\"\r\n maxLength={255}\r\n onChange={(e: any) => setField(\"description\", e.target.value)}\r\n value={formData.description}\r\n onBlur={() => {\r\n if (typeof formData.description === 'string') {\r\n const trimmed = formData.description?.trim() || \"\";\r\n if (trimmed !== formData.description) {\r\n setField(\"description\", trimmed);\r\n }\r\n }\r\n }}\r\n placeholder=\"e.g. Includes backstage access, complimentary drinks, and priority seating\"\r\n className={`text-sm px-3 py-1 w-full min-h-20 border ${formErrors.description ? '!border-error-500' : 'input-border'} rounded-lg focus:ring-2 focus:ring-primaryx-500/20 focus:border-primaryx-500 transition-all duration-200 text-gray-900 mt-1 placeholder-gray-400`}\r\n />\r\n\r\n {/* Error message */}\r\n <span className=\"text-xs text-error-700\">\r\n {formErrors.description}\r\n </span>\r\n\r\n {/* Character counter */}\r\n <div className=\"text-right text-xs text-grey-500 mt-1\">\r\n Word count: {formData?.description?.length || 0}/255\r\n </div>\r\n </div>\r\n\r\n <div className=\"grid sm:grid-cols-2 gap-4\">\r\n <div data-name=\"price\">\r\n <FormInput\r\n label=\"Price\"\r\n icon={Banknote}\r\n placeholder=\"e.g. 500\"\r\n value={formData?.price?.toString() || \"\"}\r\n onChange={(e: any) => setField(\"price\", Number(e.target.value))}\r\n onBlur={() => handleBlur(\"price\")}\r\n error={formErrors.price}\r\n type=\"number\"\r\n min={0}\r\n tooltip={FIELD_TOOLTIPS.price}\r\n />\r\n </div>\r\n <div data-name=\"members\">\r\n <FormInput\r\n label=\"Members per ticket\"\r\n icon={Users}\r\n placeholder=\"e.g. 1\"\r\n value={formData?.members?.toString() || \"\"}\r\n onChange={(e: any) => setField(\"members\", Number(e.target.value))}\r\n onBlur={() => handleBlur(\"members\")}\r\n error={formErrors.members}\r\n type=\"number\"\r\n min={1}\r\n required\r\n tooltip={FIELD_TOOLTIPS.members}\r\n />\r\n </div>\r\n </div>\r\n\r\n <div data-name=\"capacity\">\r\n <FormInput\r\n label=\"Capacity\"\r\n icon={Users}\r\n placeholder=\"e.g. 100\"\r\n value={formData?.capacity?.toString() || \"\"}\r\n onChange={(e: any) => setField(\"capacity\", Number(e.target.value))}\r\n onBlur={() => handleBlur(\"capacity\")}\r\n error={formErrors.capacity}\r\n type=\"number\"\r\n min={1}\r\n required\r\n tooltip={FIELD_TOOLTIPS.capacity}\r\n />\r\n </div>\r\n\r\n <div className=\"pt-2\">\r\n <RequiredToggle\r\n label=\"Enable discounted price?\"\r\n checked={formData.has_discount || false}\r\n onChange={(val) => setField(\"has_discount\", val)}\r\n />\r\n\r\n {formData.has_discount && (\r\n <div className=\"space-y-4 mt-3 pl-1\">\r\n <div data-name=\"discount_price\">\r\n <FormInput\r\n label=\"Discounted price\"\r\n icon={Banknote}\r\n placeholder=\"e.g. 350\"\r\n value={formData?.discounted_price?.toString() || \"\"}\r\n onChange={(e: any) => setField(\"discounted_price\", Number(e.target.value))}\r\n onBlur={() => handleBlur(\"discounted_price\")}\r\n error={formErrors.discounted_price}\r\n type=\"number\"\r\n min={0}\r\n required\r\n tooltip={FIELD_TOOLTIPS.discountedPrice}\r\n />\r\n </div>\r\n\r\n <div data-name=\"discount_valid_till\">\r\n <SingleDateTimeInput\r\n label=\"Valid till\"\r\n name=\"discount_valid_till\"\r\n labelClassName=\"w-max text-sm font-medium text-gray-700\"\r\n layoutClassName=\"flex flex-col sm:flex-col items-start sm:items-start gap-1.5\"\r\n dateTimeLayoutClassName=\"w-full grid grid-cols-1 sm:grid-cols-2\"\r\n dateValue={formData.discount_valid_till_date || \"\"}\r\n timeValue={formData.discount_valid_till_time || \"\"}\r\n onChange={(values) => {\r\n const nextDate = (values.date !== undefined ? values.date : formData.discount_valid_till_date) || \"\";\r\n let nextTime = values.time !== undefined ? values.time : formData.discount_valid_till_time;\r\n\r\n // Auto-select 12:00 AM (00:00) if date is selected and time is empty\r\n if (values.date && !nextTime) {\r\n const defaultTime = \"00:00\";\r\n let isValid = true;\r\n\r\n if (registrationStart?.date && nextDate === registrationStart.date) {\r\n if (defaultTime < registrationStart.time) isValid = false;\r\n }\r\n if (registrationEnd?.date && nextDate === registrationEnd.date) {\r\n if (defaultTime > registrationEnd.time) isValid = false;\r\n }\r\n if (registrationStart?.date && nextDate < registrationStart.date) isValid = false;\r\n if (registrationEnd?.date && nextDate > registrationEnd.date) isValid = false;\r\n\r\n if (isValid) nextTime = defaultTime;\r\n }\r\n\r\n setFields({\r\n discount_valid_till_date: nextDate,\r\n discount_valid_till_time: nextTime,\r\n });\r\n }}\r\n onBlur={() => {\r\n // handleBlur(\"discount_valid_till_date\");\r\n // handleBlur(\"discount_valid_till_time\");\r\n }}\r\n error={formErrors.discount_valid_till_date || formErrors.discount_valid_till_time}\r\n minDate={registrationStart?.date}\r\n maxDate={registrationEnd?.date}\r\n minTime={\r\n registrationStart?.date && formData.discount_valid_till_date === registrationStart.date\r\n ? registrationStart.time\r\n : undefined\r\n }\r\n maxTime={\r\n registrationEnd?.date && formData.discount_valid_till_date === registrationEnd.date\r\n ? registrationEnd.time\r\n : undefined\r\n }\r\n />\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Availability Type Radio Group */}\r\n {isMultiDateEvent && (\r\n <div className=\"border-t border-grey-100 pt-4\">\r\n <div className=\"flex items-center gap-2 mb-3\">\r\n <label className=\"text-sm font-medium text-grey-700\">\r\n Ticket availability\r\n </label>\r\n <Tooltip content={FIELD_TOOLTIPS.availabilitySchedule} placement=\"top\">\r\n <Info className=\"h-4 w-4 text-grey-700 hover:text-grey-800 cursor-default transition-colors\" />\r\n </Tooltip>\r\n </div>\r\n <div className=\"space-y-3\">\r\n {[\r\n {\r\n type: TicketTierAvailabilityType.GLOBAL,\r\n label: `All event dates`,\r\n tooltip: FIELD_TOOLTIPS.availabilityGlobal,\r\n },\r\n {\r\n type: TicketTierAvailabilityType.INDIVIDUAL,\r\n label: \"Single event date\",\r\n tooltip: FIELD_TOOLTIPS.availabilityIndividual,\r\n },\r\n {\r\n type: TicketTierAvailabilityType.CUSTOM,\r\n label: \"Selected event dates\",\r\n tooltip: FIELD_TOOLTIPS.availabilityCustom,\r\n },\r\n ].map((option) => (\r\n <label key={option.type} className=\"flex items-center gap-2 cursor-pointer\">\r\n <Radio\r\n name=\"availability_type\"\r\n checked={formData.availability_type === option.type}\r\n onChange={() => setField(\"availability_type\", option.type)}\r\n />\r\n <span className={`text-sm ${formData.availability_type === option.type ? 'font-medium text-primaryx-900' : 'text-grey-700'}`}>\r\n {option.label}\r\n </span>\r\n <Tooltip content={option.tooltip} placement=\"top\">\r\n <Info className=\"h-4 w-4 text-grey-700 hover:text-grey-800 cursor-default transition-colors\" />\r\n </Tooltip>\r\n </label>\r\n ))}\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Right Column - Date Selection (Animated) */}\r\n <AnimatePresence>\r\n {showCustomDates && (\r\n <motion.div\r\n initial={{ opacity: 0, width: 0, scale: 0.95 }}\r\n animate={{ opacity: 1, width: \"auto\", scale: 1 }}\r\n exit={{ opacity: 0, width: 0, scale: 0.95 }}\r\n transition={{ duration: 0.3, type: \"tween\", bounce: 0, stiffness: 100 }}\r\n className=\"hidden md:block overflow-hidden\"\r\n >\r\n <div className=\"w-[280px] h-full pl-4 border-l border-grey-400 flex flex-col\">\r\n <h3 className=\"text-base font-medium text-grey-900 mb-4 flex items-center gap-2\">\r\n <List className=\"w-4 h-4 text-grey-500\" />\r\n Select dates\r\n </h3>\r\n\r\n <div className=\"flex-1 overflow-hidden input-border rounded-lg max-h-[500px]\">\r\n <div className=\"overflow-y-auto custom-scrollbar bg-grey-50/50 p-2 h-full\">\r\n <div className=\"space-y-1\">\r\n {dateRange?.map((date) => {\r\n const dateKey = getDateKey(date);\r\n const isSelected = formData.availability_schedule?.includes(dateKey);\r\n return (\r\n <label\r\n key={dateKey}\r\n className={`flex items-center gap-x-2 p-2 rounded-md cursor-pointer transition-all ${isSelected\r\n ? 'bg-white border border-primaryx-200'\r\n : 'hover:bg-white'\r\n }`}\r\n >\r\n <div className=\"flex items-center h-5\">\r\n <Checkbox\r\n checked={isSelected || false}\r\n onCheckedChange={() => handleDateSelection(dateKey)}\r\n />\r\n </div>\r\n <span className={`line-clamp-1 text-xs ${isSelected ? 'text-grey-900 font-medium' : 'text-grey-600'}`}>\r\n {formatDate(date)}\r\n </span>\r\n </label>\r\n );\r\n })}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n {formErrors.availability_schedule && (\r\n <div className=\"mt-2 text-xs text-error-600 bg-error-50 p-2 rounded-md\">\r\n {formErrors.availability_schedule}\r\n </div>\r\n )}\r\n\r\n <div className=\"mt-4 pt-4 input-border-t text-xs text-grey-500\">\r\n {formData.availability_schedule?.length || 0} dates selected\r\n </div>\r\n </div>\r\n </motion.div>\r\n )}\r\n </AnimatePresence>\r\n\r\n {/* Mobile Date Selection (Shown below form on small screens if custom) */}\r\n {showCustomDates && (\r\n <div className=\"md:hidden border-t border-grey-100 pt-4\">\r\n <label className=\"block text-sm font-medium text-grey-700 mb-2\">\r\n Select dates\r\n </label>\r\n <div className=\"max-h-48 overflow-y-auto border border-grey-200 rounded-md p-3 space-y-1.5\">\r\n {dateRange?.map((date) => {\r\n const dateKey = getDateKey(date);\r\n return (\r\n <label key={dateKey} className=\"flex items-center\">\r\n <input\r\n type=\"checkbox\"\r\n checked={formData.availability_schedule?.includes(dateKey) || false}\r\n onChange={() => handleDateSelection(dateKey)}\r\n className=\"mt-1 mr-2 rounded border-grey-300\"\r\n />\r\n <span className=\"text-xs text-grey-700\">{formatDate(date)}</span>\r\n </label>\r\n );\r\n })}\r\n </div>\r\n <span className=\"text-xs text-error-700 block mt-1\">\r\n {formErrors.availability_schedule}\r\n </span>\r\n </div>\r\n )}\r\n </div>\r\n\r\n <div className=\"mt-2 flex justify-end gap-3 pt-4\">\r\n <Button\r\n size=\"md\"\r\n type=\"button\"\r\n onClick={handleClose}\r\n variant=\"outline\"\r\n >\r\n Cancel\r\n </Button>\r\n <Button\r\n size=\"md\"\r\n type=\"button\"\r\n onClick={() => handleSubmit(onSubmit as any)}\r\n >\r\n Save tier\r\n </Button>\r\n </div>\r\n </>);\r\n}\r\n\r\nexport default memo(TicketTierForm)\r\n"],"names":["React","_a"],"mappings":"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"}
@@ -1,93 +0,0 @@
1
- import { jsxs, jsx } from "react/jsx-runtime";
2
- import { Check } from "lucide-react";
3
- import { cn } from "../../../utils/utils.js";
4
- import Image from "next/image";
5
- import { memo } from "react";
6
- const TypeSelectionCard = memo(function typeSelectionCard({
7
- isSelected,
8
- onClick,
9
- icon: Icon,
10
- title,
11
- badgeText,
12
- badgeClassName,
13
- description
14
- }) {
15
- return /* @__PURE__ */ jsx(
16
- "div",
17
- {
18
- onClick,
19
- className: `group cursor-pointer rounded-xl border flex-1 justify-between h-full transition-all duration-200 overflow-hidden ${isSelected ? "border-primaryx-500 ring-1 ring-primaryx-500" : "input-border"}`,
20
- children: /* @__PURE__ */ jsxs("div", { className: cn("flex-1 h-full flex flex-col", isSelected ? "" : "bg-white"), children: [
21
- /* @__PURE__ */ jsxs("div", { className: cn(
22
- "flex justify-between items-center p-4 pb-0"
23
- // isSelected ? "" : "bg-white"
24
- ), children: [
25
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
26
- /* @__PURE__ */ jsx("div", { className: "p-1.5 rounded-full bg-purple-900/5", children: /* @__PURE__ */ jsx("div", { className: "p-1.5 rounded-full bg-purple-900/10 text-purple-600", children: /* @__PURE__ */ jsx(Icon, { className: "w-4 h-4" }) }) }),
27
- /* @__PURE__ */ jsx("span", { className: "font-semibold text-grey-900", children: title })
28
- ] }),
29
- /* @__PURE__ */ jsx("div", { className: `w-4 h-4 rounded-full border flex items-center justify-center ${isSelected ? "border-primaryx-500" : "border-grey-300"}`, children: isSelected ? /* @__PURE__ */ jsx(Check, { className: "font-bold w-4 h-4 bg-primaryx-500 text-white rounded-full", strokeWidth: 2 }) : /* @__PURE__ */ jsx("div", { className: "w-full h-full rounded-full input-border" }) })
30
- ] }),
31
- /* @__PURE__ */ jsxs("div", { className: cn(
32
- "flex-1 p-4"
33
- // "flex-1 p-4 space-y-4 bg-white",
34
- // isSelected ? "border-t border-primaryx-500 ring-1 ring-primaryx-500" : "input-border-t"
35
- ), children: [
36
- badgeText && /* @__PURE__ */ jsx("span", { className: `inline-block px-2 py-0.5 rounded-2xl text-xs font-medium ${badgeClassName}`, children: badgeText }),
37
- /* @__PURE__ */ jsx("p", { className: "text-sm text-grey-500 leading-[20px]", children: description })
38
- ] })
39
- ] })
40
- }
41
- );
42
- });
43
- const TicketTierIcon = (props) => /* @__PURE__ */ jsx(
44
- Image,
45
- {
46
- src: "/icons/ticket-tier-form-icon.svg",
47
- alt: "Ticket Tier",
48
- width: 16,
49
- height: 16,
50
- className: props.className
51
- }
52
- );
53
- const CustomFormIcon = (props) => /* @__PURE__ */ jsx(
54
- Image,
55
- {
56
- src: "/icons/custom-form.svg",
57
- alt: "Custom Form",
58
- width: 16,
59
- height: 16,
60
- className: props.className
61
- }
62
- );
63
- function TicketTypeSelection({ selectedType, onSelect }) {
64
- return /* @__PURE__ */ jsxs("div", { className: "grid sm:grid-cols-2 gap-4", children: [
65
- /* @__PURE__ */ jsx(
66
- TypeSelectionCard,
67
- {
68
- isSelected: selectedType === "TICKET_TIER",
69
- onClick: () => onSelect("TICKET_TIER"),
70
- icon: TicketTierIcon,
71
- title: "Ticket tier",
72
- badgeClassName: "bg-green-50 text-green-700",
73
- description: "Ideal for concerts, workshops, and multi-access events."
74
- }
75
- ),
76
- /* @__PURE__ */ jsx(
77
- TypeSelectionCard,
78
- {
79
- isSelected: selectedType === "CUSTOM_FORM",
80
- onClick: () => onSelect("CUSTOM_FORM"),
81
- icon: CustomFormIcon,
82
- title: "Custom form",
83
- badgeClassName: "bg-orange-50 text-orange-700",
84
- description: "Ideal for MUNs and college or university events."
85
- }
86
- )
87
- ] });
88
- }
89
- const TicketTypeSelection$1 = memo(TicketTypeSelection);
90
- export {
91
- TicketTypeSelection$1 as default
92
- };
93
- //# sourceMappingURL=TicketTypeSelection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TicketTypeSelection.js","sources":["../../../../src/components/EventAddForm/components/TicketTypeSelection.tsx"],"sourcesContent":["import { Check, LucideIcon } from \"lucide-react\";\r\nimport { cn } from \"@/utils/utils\";\r\nimport Image from \"next/image\";\r\nimport { memo } from \"react\";\r\n\r\n\r\ninterface TypeSelectionCardProps {\r\n isSelected: boolean;\r\n onClick: () => void;\r\n icon: LucideIcon;\r\n title: string;\r\n badgeText?: string;\r\n badgeClassName?: string;\r\n description: string;\r\n}\r\n\r\nconst TypeSelectionCard = memo(function typeSelectionCard({\r\n isSelected,\r\n onClick,\r\n icon: Icon,\r\n title,\r\n badgeText,\r\n badgeClassName,\r\n description\r\n}: TypeSelectionCardProps) {\r\n return (\r\n <div\r\n onClick={onClick}\r\n className={`group cursor-pointer rounded-xl border flex-1 justify-between h-full transition-all duration-200 overflow-hidden ${isSelected\r\n ? \"border-primaryx-500 ring-1 ring-primaryx-500\"\r\n : \"input-border\"\r\n }`}\r\n >\r\n <div className={cn(\"flex-1 h-full flex flex-col\", isSelected ? \"\" : \"bg-white\")}>\r\n <div className={cn(\r\n \"flex justify-between items-center p-4 pb-0\",\r\n // isSelected ? \"\" : \"bg-white\"\r\n )}>\r\n <div className=\"flex items-center gap-2\">\r\n <div className=\"p-1.5 rounded-full bg-purple-900/5\">\r\n <div className=\"p-1.5 rounded-full bg-purple-900/10 text-purple-600\">\r\n <Icon className=\"w-4 h-4\" />\r\n </div>\r\n </div>\r\n <span className=\"font-semibold text-grey-900\">{title}</span>\r\n </div>\r\n <div className={`w-4 h-4 rounded-full border flex items-center justify-center ${isSelected ? \"border-primaryx-500\" : \"border-grey-300\"}`}>\r\n {isSelected ? <Check className=\"font-bold w-4 h-4 bg-primaryx-500 text-white rounded-full\" strokeWidth={2} /> : <div className=\"w-full h-full rounded-full input-border\" />}\r\n </div>\r\n </div>\r\n <div className={cn(\r\n \"flex-1 p-4\",\r\n // \"flex-1 p-4 space-y-4 bg-white\",\r\n // isSelected ? \"border-t border-primaryx-500 ring-1 ring-primaryx-500\" : \"input-border-t\"\r\n )}>\r\n {badgeText && <span className={`inline-block px-2 py-0.5 rounded-2xl text-xs font-medium ${badgeClassName}`}>\r\n {badgeText}\r\n </span>}\r\n <p className=\"text-sm text-grey-500 leading-[20px]\">\r\n {description}\r\n </p>\r\n </div>\r\n </div>\r\n </div>\r\n )\r\n});\r\n\r\nconst TicketTierIcon = (props: any) => (\r\n <Image\r\n src=\"/icons/ticket-tier-form-icon.svg\"\r\n alt=\"Ticket Tier\"\r\n width={16}\r\n height={16}\r\n className={props.className}\r\n />\r\n);\r\n\r\nconst CustomFormIcon = (props: any) => (\r\n <Image\r\n src=\"/icons/custom-form.svg\"\r\n alt=\"Custom Form\"\r\n width={16}\r\n height={16}\r\n className={props.className}\r\n />\r\n);\r\n\r\ninterface TicketTypeSelectionProps {\r\n selectedType: string;\r\n onSelect: (type: \"TICKET_TIER\" | \"CUSTOM_FORM\") => void;\r\n}\r\n\r\nfunction TicketTypeSelection({ selectedType, onSelect }: TicketTypeSelectionProps) {\r\n return (\r\n <div className=\"grid sm:grid-cols-2 gap-4\">\r\n <TypeSelectionCard\r\n isSelected={selectedType === \"TICKET_TIER\"}\r\n onClick={() => onSelect(\"TICKET_TIER\")}\r\n icon={TicketTierIcon as LucideIcon}\r\n title=\"Ticket tier\"\r\n // badgeText=\"Easy mode\"\r\n badgeClassName=\"bg-green-50 text-green-700\"\r\n description=\"Ideal for concerts, workshops, and multi-access events.\"\r\n />\r\n\r\n <TypeSelectionCard\r\n isSelected={selectedType === \"CUSTOM_FORM\"}\r\n onClick={() => onSelect(\"CUSTOM_FORM\")}\r\n icon={CustomFormIcon as LucideIcon}\r\n title=\"Custom form\"\r\n // badgeText=\"Advance mode\"\r\n badgeClassName=\"bg-orange-50 text-orange-700\"\r\n description=\"Ideal for MUNs and college or university events.\"\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport default memo(TicketTypeSelection)\r\n"],"names":[],"mappings":";;;;;AAgBA,MAAM,oBAAoB,KAAK,SAAS,kBAAkB;AAAA,EACtD;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,GAA2B;AACvB,SACI;AAAA,IAAC;AAAA,IAAA;AAAA,MACG;AAAA,MACA,WAAW,oHAAoH,aACzH,iDACA,cACF;AAAA,MAEJ,UAAA,qBAAC,SAAI,WAAW,GAAG,+BAA+B,aAAa,KAAK,UAAU,GAC1E,UAAA;AAAA,QAAA,qBAAC,SAAI,WAAW;AAAA,UACZ;AAAA;AAAA,QAAA,GAGA,UAAA;AAAA,UAAA,qBAAC,OAAA,EAAI,WAAU,2BACX,UAAA;AAAA,YAAA,oBAAC,OAAA,EAAI,WAAU,sCACX,UAAA,oBAAC,OAAA,EAAI,WAAU,uDACX,UAAA,oBAAC,MAAA,EAAK,WAAU,UAAA,CAAU,EAAA,CAC9B,GACJ;AAAA,YACA,oBAAC,QAAA,EAAK,WAAU,+BAA+B,UAAA,MAAA,CAAM;AAAA,UAAA,GACzD;AAAA,UACA,oBAAC,SAAI,WAAW,gEAAgE,aAAa,wBAAwB,iBAAiB,IACjI,UAAA,aAAa,oBAAC,SAAM,WAAU,6DAA4D,aAAa,EAAA,CAAG,wBAAM,OAAA,EAAI,WAAU,2CAA0C,EAAA,CAC7K;AAAA,QAAA,GACJ;AAAA,QACA,qBAAC,SAAI,WAAW;AAAA,UACZ;AAAA;AAAA;AAAA,QAAA,GAIC,UAAA;AAAA,UAAA,iCAAc,QAAA,EAAK,WAAW,4DAA4D,cAAc,IACpG,UAAA,WACL;AAAA,UACA,oBAAC,KAAA,EAAE,WAAU,wCACR,UAAA,YAAA,CACL;AAAA,QAAA,EAAA,CACJ;AAAA,MAAA,EAAA,CACJ;AAAA,IAAA;AAAA,EAAA;AAGZ,CAAC;AAED,MAAM,iBAAiB,CAAC,UACpB;AAAA,EAAC;AAAA,EAAA;AAAA,IACG,KAAI;AAAA,IACJ,KAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW,MAAM;AAAA,EAAA;AACrB;AAGJ,MAAM,iBAAiB,CAAC,UACpB;AAAA,EAAC;AAAA,EAAA;AAAA,IACG,KAAI;AAAA,IACJ,KAAI;AAAA,IACJ,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW,MAAM;AAAA,EAAA;AACrB;AAQJ,SAAS,oBAAoB,EAAE,cAAc,YAAsC;AAC/E,SACI,qBAAC,OAAA,EAAI,WAAU,6BACX,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,YAAY,iBAAiB;AAAA,QAC7B,SAAS,MAAM,SAAS,aAAa;AAAA,QACrC,MAAM;AAAA,QACN,OAAM;AAAA,QAEN,gBAAe;AAAA,QACf,aAAY;AAAA,MAAA;AAAA,IAAA;AAAA,IAGhB;AAAA,MAAC;AAAA,MAAA;AAAA,QACG,YAAY,iBAAiB;AAAA,QAC7B,SAAS,MAAM,SAAS,aAAa;AAAA,QACrC,MAAM;AAAA,QACN,OAAM;AAAA,QAEN,gBAAe;AAAA,QACf,aAAY;AAAA,MAAA;AAAA,IAAA;AAAA,EAChB,GACJ;AAER;AAEA,MAAA,wBAAe,KAAK,mBAAmB;"}