@123usmanhaider321/ui 0.1.8 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (545) hide show
  1. package/README.md +416 -31
  2. package/dist/images/icon/1LINK.svg +50 -0
  3. package/dist/images/icon/CreditCard.svg +83 -0
  4. package/dist/images/icon/Easypaisa.png +0 -0
  5. package/dist/images/icon/MobileWallet.png +0 -0
  6. package/dist/images/icon/Raast-Logo.png +0 -0
  7. package/dist/images/icon/VISA.png +0 -0
  8. package/dist/images/icon/add-circle-1.svg +5 -0
  9. package/dist/images/icon/check-circle-broken.svg +3 -0
  10. package/dist/images/icon/close-circle.svg +5 -0
  11. package/dist/images/icon/jazzcash.png +0 -0
  12. package/dist/images/icon/loading_icon.json +3347 -0
  13. package/dist/images/icon/mastercard-logo.webp +0 -0
  14. package/dist/images/icon/paymo.jpeg +0 -0
  15. package/dist/images/icon/preview-svgrepo-com.svg +36 -0
  16. package/dist/images/icon/trash.svg +7 -0
  17. package/dist/images/icon/unionpay-logo.svg +9 -0
  18. package/dist/index-87FQZHOs.js +11119 -0
  19. package/dist/index-87FQZHOs.js.map +1 -0
  20. package/dist/index-Tl9g213f.js +60475 -0
  21. package/dist/index-Tl9g213f.js.map +1 -0
  22. package/dist/index.d.ts +1 -10
  23. package/dist/index.es-CpgTaa1Y.js +16734 -0
  24. package/dist/index.es-CpgTaa1Y.js.map +1 -0
  25. package/dist/index.js +40 -12
  26. package/dist/index.js.map +1 -1
  27. package/dist/loading_icon-n5H5dQBl.js +3375 -0
  28. package/dist/loading_icon-n5H5dQBl.js.map +1 -0
  29. package/dist/src/components/Alert/ErrorAlert.d.ts +6 -0
  30. package/dist/src/components/Alert/SuccessAlert.d.ts +6 -0
  31. package/dist/{components → src/components}/FormBuilder/DiscountInput.d.ts +3 -6
  32. package/dist/{components → src/components}/FormBuilder/FormBuilder.d.ts +2 -11
  33. package/dist/{components → src/components}/FormBuilder/QuestionCard.d.ts +0 -5
  34. package/dist/{components → src/components}/FormBuilder/QuestionEditor.d.ts +0 -5
  35. package/dist/{components → src/components}/FormBuilder/SortableQuestionList.d.ts +0 -5
  36. package/dist/src/components/FormBuilder/questionIcons.d.ts +5 -0
  37. package/dist/{components/EventAddForm → src/components/NewAddEvent}/AddEventLayout.d.ts +2 -1
  38. package/dist/{components/EventAddForm → src/components/NewAddEvent}/AddEventStepper.d.ts +2 -2
  39. package/dist/{components/EventAddForm → src/components/NewAddEvent}/common/ConfirmationModal.d.ts +1 -1
  40. package/dist/src/components/NewAddEvent/components/EventSubmissionConfirmationModal.d.ts +14 -0
  41. package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/StepTwo/TicketTierSection.d.ts +1 -1
  42. package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/TicketTierForm.d.ts +1 -1
  43. package/dist/{components/EventAddForm → src/components/NewAddEvent}/hooks/useStepperForm.d.ts +22 -22
  44. package/dist/{components/EventAddForm → src/components/NewAddEvent}/hooks/useTicketTierForm.d.ts +63 -15
  45. package/dist/src/components/NewAddEvent/schemas/step1.d.ts +211 -0
  46. package/dist/src/components/NewAddEvent/schemas/step2.d.ts +411 -0
  47. package/dist/{components/EventAddForm → src/components/NewAddEvent}/schemas/utils.d.ts +8 -2
  48. package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/IndividualFormStep.d.ts +1 -1
  49. package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/SocialProfilesStep.d.ts +1 -1
  50. package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/TeamFormStep.d.ts +1 -1
  51. package/dist/src/components/Spinner/spinner.d.ts +4 -0
  52. package/dist/src/components/TicketlyUIProvider.d.ts +35 -0
  53. package/dist/src/components/common/Loader/index.d.ts +8 -0
  54. package/dist/src/components/common/Modals/ConfirmationModal.d.ts +7 -0
  55. package/dist/{components/FormInput → src/components/ui}/FormInput.d.ts +1 -1
  56. package/dist/src/components/ui/Loader.d.ts +4 -0
  57. package/dist/{components/Button/Button.d.ts → src/components/ui/button.d.ts} +1 -1
  58. package/dist/src/index.d.ts +10 -0
  59. package/dist/{lib → src/lib}/actions.d.ts +0 -126
  60. package/dist/src/lib/dom-utils.d.ts +2 -0
  61. package/dist/src/lib/storage-utils.d.ts +5 -0
  62. package/dist/src/lib/types.d.ts +258 -0
  63. package/dist/src/redux/baseQuery.d.ts +16 -0
  64. package/dist/{services → src/redux/features}/eventApi.d.ts +1053 -1745
  65. package/dist/src/redux/features/globalSlice.d.ts +17 -0
  66. package/dist/{services → src/redux/features/single-event}/single-event-api.d.ts +856 -1190
  67. package/dist/src/redux/types.d.ts +2 -0
  68. package/dist/src/services/library-services.d.ts +15 -0
  69. package/dist/src/services/remote-config.d.ts +27 -0
  70. package/dist/{services → src/services}/utils.d.ts +1 -1
  71. package/dist/src/theme/colors.d.ts +127 -0
  72. package/dist/src/theme/typography.d.ts +13 -0
  73. package/dist/src/types/api.d.ts +18 -0
  74. package/dist/style.css +2984 -0
  75. package/dist/styles.css +3758 -4012
  76. package/package.json +78 -68
  77. package/dist/_virtual/_commonjsHelpers.js +0 -9
  78. package/dist/_virtual/_commonjsHelpers.js.map +0 -1
  79. package/dist/_virtual/customParseFormat.js +0 -5
  80. package/dist/_virtual/customParseFormat.js.map +0 -1
  81. package/dist/_virtual/dayjs.min.js +0 -5
  82. package/dist/_virtual/dayjs.min.js.map +0 -1
  83. package/dist/_virtual/duration.js +0 -5
  84. package/dist/_virtual/duration.js.map +0 -1
  85. package/dist/_virtual/index.js +0 -5
  86. package/dist/_virtual/index.js.map +0 -1
  87. package/dist/_virtual/isBetween.js +0 -5
  88. package/dist/_virtual/isBetween.js.map +0 -1
  89. package/dist/_virtual/relativeTime.js +0 -5
  90. package/dist/_virtual/relativeTime.js.map +0 -1
  91. package/dist/_virtual/use-sync-external-store-shim.development.js +0 -5
  92. package/dist/_virtual/use-sync-external-store-shim.development.js.map +0 -1
  93. package/dist/_virtual/use-sync-external-store-shim.production.js +0 -5
  94. package/dist/_virtual/use-sync-external-store-shim.production.js.map +0 -1
  95. package/dist/_virtual/with-selector.development.js +0 -5
  96. package/dist/_virtual/with-selector.development.js.map +0 -1
  97. package/dist/_virtual/with-selector.js +0 -5
  98. package/dist/_virtual/with-selector.js.map +0 -1
  99. package/dist/_virtual/with-selector.production.js +0 -5
  100. package/dist/_virtual/with-selector.production.js.map +0 -1
  101. package/dist/components/Alert/Alert.js +0 -51
  102. package/dist/components/Alert/Alert.js.map +0 -1
  103. package/dist/components/Button/Button.js +0 -52
  104. package/dist/components/Button/Button.js.map +0 -1
  105. package/dist/components/Button/Button.test.d.ts +0 -1
  106. package/dist/components/Button/index.d.ts +0 -1
  107. package/dist/components/Checkbox/Checkbox.js +0 -50
  108. package/dist/components/Checkbox/Checkbox.js.map +0 -1
  109. package/dist/components/Checkbox/Checkbox.test.d.ts +0 -1
  110. package/dist/components/Checkbox/index.d.ts +0 -1
  111. package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +0 -25
  112. package/dist/components/CheckboxGroup/CheckboxGroup.js +0 -99
  113. package/dist/components/CheckboxGroup/CheckboxGroup.js.map +0 -1
  114. package/dist/components/ConfirmationModal/ConfirmationModal.d.ts +0 -15
  115. package/dist/components/ConfirmationModal/ConfirmationModal.js +0 -136
  116. package/dist/components/ConfirmationModal/ConfirmationModal.js.map +0 -1
  117. package/dist/components/ConfirmationModal/index.d.ts +0 -2
  118. package/dist/components/CustomSelect/CustomSelect.js +0 -259
  119. package/dist/components/CustomSelect/CustomSelect.js.map +0 -1
  120. package/dist/components/EventAddForm/AddEventLayout.js +0 -227
  121. package/dist/components/EventAddForm/AddEventLayout.js.map +0 -1
  122. package/dist/components/EventAddForm/AddEventStepper.js +0 -719
  123. package/dist/components/EventAddForm/AddEventStepper.js.map +0 -1
  124. package/dist/components/EventAddForm/common/ConfirmationModal.js +0 -136
  125. package/dist/components/EventAddForm/common/ConfirmationModal.js.map +0 -1
  126. package/dist/components/EventAddForm/common/DescriptionModal.js +0 -70
  127. package/dist/components/EventAddForm/common/DescriptionModal.js.map +0 -1
  128. package/dist/components/EventAddForm/components/AnimatedBackground.d.ts +0 -8
  129. package/dist/components/EventAddForm/components/ApprovalConfirmationModal.d.ts +0 -7
  130. package/dist/components/EventAddForm/components/CheckboxGroup.js +0 -92
  131. package/dist/components/EventAddForm/components/CheckboxGroup.js.map +0 -1
  132. package/dist/components/EventAddForm/components/CustomMeetingForm.js +0 -237
  133. package/dist/components/EventAddForm/components/CustomMeetingForm.js.map +0 -1
  134. package/dist/components/EventAddForm/components/DateTimeField.js +0 -173
  135. package/dist/components/EventAddForm/components/DateTimeField.js.map +0 -1
  136. package/dist/components/EventAddForm/components/EventSubmissionConfirmationModal.d.ts +0 -33
  137. package/dist/components/EventAddForm/components/EventSubmissionConfirmationModal.js +0 -366
  138. package/dist/components/EventAddForm/components/EventSubmissionConfirmationModal.js.map +0 -1
  139. package/dist/components/EventAddForm/components/FileUpload.js +0 -412
  140. package/dist/components/EventAddForm/components/FileUpload.js.map +0 -1
  141. package/dist/components/EventAddForm/components/FormBuilderProceedModal.js +0 -197
  142. package/dist/components/EventAddForm/components/FormBuilderProceedModal.js.map +0 -1
  143. package/dist/components/EventAddForm/components/GoogleMapsAutocompleteInput.js +0 -1179
  144. package/dist/components/EventAddForm/components/GoogleMapsAutocompleteInput.js.map +0 -1
  145. package/dist/components/EventAddForm/components/InputField.d.ts +0 -15
  146. package/dist/components/EventAddForm/components/RadioGroupButton.d.ts +0 -14
  147. package/dist/components/EventAddForm/components/SelectField.d.ts +0 -19
  148. package/dist/components/EventAddForm/components/SingleDateTimeInput.js +0 -102
  149. package/dist/components/EventAddForm/components/SingleDateTimeInput.js.map +0 -1
  150. package/dist/components/EventAddForm/components/StepTwo/CustomFormSection.js +0 -277
  151. package/dist/components/EventAddForm/components/StepTwo/CustomFormSection.js.map +0 -1
  152. package/dist/components/EventAddForm/components/StepTwo/TicketTierSection.js +0 -148
  153. package/dist/components/EventAddForm/components/StepTwo/TicketTierSection.js.map +0 -1
  154. package/dist/components/EventAddForm/components/TicketTierForm.js +0 -418
  155. package/dist/components/EventAddForm/components/TicketTierForm.js.map +0 -1
  156. package/dist/components/EventAddForm/components/TicketTypeSelection.js +0 -93
  157. package/dist/components/EventAddForm/components/TicketTypeSelection.js.map +0 -1
  158. package/dist/components/EventAddForm/hooks/useStepperForm.js +0 -371
  159. package/dist/components/EventAddForm/hooks/useStepperForm.js.map +0 -1
  160. package/dist/components/EventAddForm/hooks/useTicketTierForm.js +0 -237
  161. package/dist/components/EventAddForm/hooks/useTicketTierForm.js.map +0 -1
  162. package/dist/components/EventAddForm/index.d.ts +0 -3
  163. package/dist/components/EventAddForm/index.js +0 -41
  164. package/dist/components/EventAddForm/index.js.map +0 -1
  165. package/dist/components/EventAddForm/schemas/index.d.ts +0 -2
  166. package/dist/components/EventAddForm/schemas/step1.d.ts +0 -47
  167. package/dist/components/EventAddForm/schemas/step1.js +0 -135
  168. package/dist/components/EventAddForm/schemas/step1.js.map +0 -1
  169. package/dist/components/EventAddForm/schemas/step2.d.ts +0 -138
  170. package/dist/components/EventAddForm/schemas/step2.js +0 -94
  171. package/dist/components/EventAddForm/schemas/step2.js.map +0 -1
  172. package/dist/components/EventAddForm/schemas/utils.js +0 -28
  173. package/dist/components/EventAddForm/schemas/utils.js.map +0 -1
  174. package/dist/components/EventAddForm/steps/IndividualFormStep.js +0 -85
  175. package/dist/components/EventAddForm/steps/IndividualFormStep.js.map +0 -1
  176. package/dist/components/EventAddForm/steps/SocialProfilesStep.js +0 -123
  177. package/dist/components/EventAddForm/steps/SocialProfilesStep.js.map +0 -1
  178. package/dist/components/EventAddForm/steps/StepOne.js +0 -462
  179. package/dist/components/EventAddForm/steps/StepOne.js.map +0 -1
  180. package/dist/components/EventAddForm/steps/StepTwo.js +0 -173
  181. package/dist/components/EventAddForm/steps/StepTwo.js.map +0 -1
  182. package/dist/components/EventAddForm/steps/TeamFormStep.js +0 -13
  183. package/dist/components/EventAddForm/steps/TeamFormStep.js.map +0 -1
  184. package/dist/components/FormBuilder/CategoryList.js +0 -242
  185. package/dist/components/FormBuilder/CategoryList.js.map +0 -1
  186. package/dist/components/FormBuilder/DiscountInput.js +0 -366
  187. package/dist/components/FormBuilder/DiscountInput.js.map +0 -1
  188. package/dist/components/FormBuilder/FormBuilder.js +0 -918
  189. package/dist/components/FormBuilder/FormBuilder.js.map +0 -1
  190. package/dist/components/FormBuilder/OptionList.js +0 -120
  191. package/dist/components/FormBuilder/OptionList.js.map +0 -1
  192. package/dist/components/FormBuilder/PaymentPreview.d.ts +0 -12
  193. package/dist/components/FormBuilder/PaymentPreview.js +0 -70
  194. package/dist/components/FormBuilder/PaymentPreview.js.map +0 -1
  195. package/dist/components/FormBuilder/PreviewInput.d.ts +0 -10
  196. package/dist/components/FormBuilder/PreviewInput.js +0 -143
  197. package/dist/components/FormBuilder/PreviewInput.js.map +0 -1
  198. package/dist/components/FormBuilder/QuestionCard.js +0 -252
  199. package/dist/components/FormBuilder/QuestionCard.js.map +0 -1
  200. package/dist/components/FormBuilder/QuestionEditor.js +0 -166
  201. package/dist/components/FormBuilder/QuestionEditor.js.map +0 -1
  202. package/dist/components/FormBuilder/RequiredToggle.js +0 -43
  203. package/dist/components/FormBuilder/RequiredToggle.js.map +0 -1
  204. package/dist/components/FormBuilder/SortableQuestionList.js +0 -137
  205. package/dist/components/FormBuilder/SortableQuestionList.js.map +0 -1
  206. package/dist/components/FormBuilder/index.d.ts +0 -4
  207. package/dist/components/FormBuilder/utils.js +0 -229
  208. package/dist/components/FormBuilder/utils.js.map +0 -1
  209. package/dist/components/FormInput/FormInput.js +0 -126
  210. package/dist/components/FormInput/FormInput.js.map +0 -1
  211. package/dist/components/FormInput/FormInput.test.d.ts +0 -1
  212. package/dist/components/FormInput/index.d.ts +0 -2
  213. package/dist/components/ImageCropModal/index.js +0 -464
  214. package/dist/components/ImageCropModal/index.js.map +0 -1
  215. package/dist/components/InformationPopover/InformationPopover.d.ts +0 -7
  216. package/dist/components/InformationPopover/InformationPopover.js +0 -19
  217. package/dist/components/InformationPopover/InformationPopover.js.map +0 -1
  218. package/dist/components/InformationPopover.js +0 -19
  219. package/dist/components/InformationPopover.js.map +0 -1
  220. package/dist/components/InputErrorMessage/InputErrorMessage.js +0 -21
  221. package/dist/components/InputErrorMessage/InputErrorMessage.js.map +0 -1
  222. package/dist/components/Modal/Modal.d.ts +0 -15
  223. package/dist/components/Modal/Modal.js +0 -73
  224. package/dist/components/Modal/Modal.js.map +0 -1
  225. package/dist/components/Radio/Radio.js +0 -35
  226. package/dist/components/Radio/Radio.js.map +0 -1
  227. package/dist/components/Spinner/spinner.d.ts +0 -2
  228. package/dist/components/Spinner/spinner.js +0 -22
  229. package/dist/components/Spinner/spinner.js.map +0 -1
  230. package/dist/components/Toggle/Toggle.d.ts +0 -16
  231. package/dist/components/Toggle/index.d.ts +0 -2
  232. package/dist/components/Tooltip/Tooltip.d.ts +0 -12
  233. package/dist/components/Tooltip/Tooltip.js +0 -134
  234. package/dist/components/Tooltip/Tooltip.js.map +0 -1
  235. package/dist/components/common/FallbackImage.js +0 -47
  236. package/dist/components/common/FallbackImage.js.map +0 -1
  237. package/dist/components/ui/Calendar/calendar-utils.js +0 -51
  238. package/dist/components/ui/Calendar/calendar-utils.js.map +0 -1
  239. package/dist/components/ui/Calendar/index.js +0 -142
  240. package/dist/components/ui/Calendar/index.js.map +0 -1
  241. package/dist/components/ui/Checkbox.d.ts +0 -9
  242. package/dist/components/ui/Checkbox.js +0 -50
  243. package/dist/components/ui/Checkbox.js.map +0 -1
  244. package/dist/components/ui/DatePicker/index.js +0 -188
  245. package/dist/components/ui/DatePicker/index.js.map +0 -1
  246. package/dist/components/ui/FormInput.js +0 -129
  247. package/dist/components/ui/FormInput.js.map +0 -1
  248. package/dist/components/ui/InputErrorMessage.d.ts +0 -7
  249. package/dist/components/ui/InputErrorMessage.js +0 -21
  250. package/dist/components/ui/InputErrorMessage.js.map +0 -1
  251. package/dist/components/ui/Modal/index.js +0 -73
  252. package/dist/components/ui/Modal/index.js.map +0 -1
  253. package/dist/components/ui/Radio.d.ts +0 -6
  254. package/dist/components/ui/Radio.js +0 -35
  255. package/dist/components/ui/Radio.js.map +0 -1
  256. package/dist/components/ui/RichTextEditor.js +0 -242
  257. package/dist/components/ui/RichTextEditor.js.map +0 -1
  258. package/dist/components/ui/TimePicker/index.js +0 -215
  259. package/dist/components/ui/TimePicker/index.js.map +0 -1
  260. package/dist/components/ui/TimeSelector/index.js +0 -138
  261. package/dist/components/ui/TimeSelector/index.js.map +0 -1
  262. package/dist/components/ui/Tooltip.d.ts +0 -12
  263. package/dist/components/ui/Tooltip.js +0 -136
  264. package/dist/components/ui/Tooltip.js.map +0 -1
  265. package/dist/hooks/useDropdownPosition.d.ts +0 -11
  266. package/dist/hooks/useFirebaseAuthState.d.ts +0 -6
  267. package/dist/hooks/useFirebaseAuthState.js +0 -23
  268. package/dist/hooks/useFirebaseAuthState.js.map +0 -1
  269. package/dist/hooks/useTicketTierForm.d.ts +0 -61
  270. package/dist/lib/actions.js +0 -32
  271. package/dist/lib/actions.js.map +0 -1
  272. package/dist/lib/cropImage.js +0 -113
  273. package/dist/lib/cropImage.js.map +0 -1
  274. package/dist/lib/imageAnalysis.js +0 -58
  275. package/dist/lib/imageAnalysis.js.map +0 -1
  276. package/dist/lib/utils.js +0 -9
  277. package/dist/lib/utils.js.map +0 -1
  278. package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +0 -60
  279. package/dist/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js.map +0 -1
  280. package/dist/node_modules/@dnd-kit/core/dist/core.esm.js +0 -3458
  281. package/dist/node_modules/@dnd-kit/core/dist/core.esm.js.map +0 -1
  282. package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +0 -593
  283. package/dist/node_modules/@dnd-kit/sortable/dist/sortable.esm.js.map +0 -1
  284. package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +0 -302
  285. package/dist/node_modules/@dnd-kit/utilities/dist/utilities.esm.js.map +0 -1
  286. package/dist/node_modules/@firebase/app/dist/esm/index.esm.js +0 -768
  287. package/dist/node_modules/@firebase/app/dist/esm/index.esm.js.map +0 -1
  288. package/dist/node_modules/@firebase/component/dist/esm/index.esm.js +0 -340
  289. package/dist/node_modules/@firebase/component/dist/esm/index.esm.js.map +0 -1
  290. package/dist/node_modules/@firebase/logger/dist/esm/index.esm.js +0 -123
  291. package/dist/node_modules/@firebase/logger/dist/esm/index.esm.js.map +0 -1
  292. package/dist/node_modules/@firebase/storage/dist/index.esm.js +0 -2623
  293. package/dist/node_modules/@firebase/storage/dist/index.esm.js.map +0 -1
  294. package/dist/node_modules/@firebase/util/dist/index.esm.js +0 -658
  295. package/dist/node_modules/@firebase/util/dist/index.esm.js.map +0 -1
  296. package/dist/node_modules/@firebase/util/dist/postinstall.js +0 -5
  297. package/dist/node_modules/@firebase/util/dist/postinstall.js.map +0 -1
  298. package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.js +0 -3179
  299. package/dist/node_modules/@fortawesome/fontawesome-svg-core/index.js.map +0 -1
  300. package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.js +0 -60
  301. package/dist/node_modules/@fortawesome/free-solid-svg-icons/index.js.map +0 -1
  302. package/dist/node_modules/@fortawesome/react-fontawesome/dist/index.js +0 -400
  303. package/dist/node_modules/@fortawesome/react-fontawesome/dist/index.js.map +0 -1
  304. package/dist/node_modules/@heroicons/react/20/solid/esm/CheckIcon.js +0 -27
  305. package/dist/node_modules/@heroicons/react/20/solid/esm/CheckIcon.js.map +0 -1
  306. package/dist/node_modules/@heroicons/react/20/solid/esm/ChevronDownIcon.js +0 -27
  307. package/dist/node_modules/@heroicons/react/20/solid/esm/ChevronDownIcon.js.map +0 -1
  308. package/dist/node_modules/@heroicons/react/24/outline/esm/ArrowRightIcon.js +0 -29
  309. package/dist/node_modules/@heroicons/react/24/outline/esm/ArrowRightIcon.js.map +0 -1
  310. package/dist/node_modules/@heroicons/react/24/outline/esm/ClockIcon.js +0 -29
  311. package/dist/node_modules/@heroicons/react/24/outline/esm/ClockIcon.js.map +0 -1
  312. package/dist/node_modules/@heroicons/react/24/outline/esm/DocumentDuplicateIcon.js +0 -29
  313. package/dist/node_modules/@heroicons/react/24/outline/esm/DocumentDuplicateIcon.js.map +0 -1
  314. package/dist/node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js +0 -29
  315. package/dist/node_modules/@heroicons/react/24/outline/esm/InformationCircleIcon.js.map +0 -1
  316. package/dist/node_modules/@heroicons/react/24/outline/esm/LinkIcon.js +0 -29
  317. package/dist/node_modules/@heroicons/react/24/outline/esm/LinkIcon.js.map +0 -1
  318. package/dist/node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js +0 -29
  319. package/dist/node_modules/@heroicons/react/24/outline/esm/MagnifyingGlassIcon.js.map +0 -1
  320. package/dist/node_modules/@heroicons/react/24/outline/esm/MapPinIcon.js +0 -33
  321. package/dist/node_modules/@heroicons/react/24/outline/esm/MapPinIcon.js.map +0 -1
  322. package/dist/node_modules/@heroicons/react/24/outline/esm/VideoCameraIcon.js +0 -29
  323. package/dist/node_modules/@heroicons/react/24/outline/esm/VideoCameraIcon.js.map +0 -1
  324. package/dist/node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js +0 -29
  325. package/dist/node_modules/@heroicons/react/24/outline/esm/XMarkIcon.js.map +0 -1
  326. package/dist/node_modules/@tiptap/core/dist/index.js +0 -5446
  327. package/dist/node_modules/@tiptap/core/dist/index.js.map +0 -1
  328. package/dist/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js +0 -21
  329. package/dist/node_modules/@tiptap/core/dist/jsx-runtime/jsx-runtime.js.map +0 -1
  330. package/dist/node_modules/@tiptap/extension-blockquote/dist/index.js +0 -78
  331. package/dist/node_modules/@tiptap/extension-blockquote/dist/index.js.map +0 -1
  332. package/dist/node_modules/@tiptap/extension-bold/dist/index.js +0 -100
  333. package/dist/node_modules/@tiptap/extension-bold/dist/index.js.map +0 -1
  334. package/dist/node_modules/@tiptap/extension-code/dist/index.js +0 -70
  335. package/dist/node_modules/@tiptap/extension-code/dist/index.js.map +0 -1
  336. package/dist/node_modules/@tiptap/extension-code-block/dist/index.js +0 -317
  337. package/dist/node_modules/@tiptap/extension-code-block/dist/index.js.map +0 -1
  338. package/dist/node_modules/@tiptap/extension-document/dist/index.js +0 -16
  339. package/dist/node_modules/@tiptap/extension-document/dist/index.js.map +0 -1
  340. package/dist/node_modules/@tiptap/extension-hard-break/dist/index.js +0 -66
  341. package/dist/node_modules/@tiptap/extension-hard-break/dist/index.js.map +0 -1
  342. package/dist/node_modules/@tiptap/extension-heading/dist/index.js +0 -86
  343. package/dist/node_modules/@tiptap/extension-heading/dist/index.js.map +0 -1
  344. package/dist/node_modules/@tiptap/extension-horizontal-rule/dist/index.js +0 -80
  345. package/dist/node_modules/@tiptap/extension-horizontal-rule/dist/index.js.map +0 -1
  346. package/dist/node_modules/@tiptap/extension-italic/dist/index.js +0 -98
  347. package/dist/node_modules/@tiptap/extension-italic/dist/index.js.map +0 -1
  348. package/dist/node_modules/@tiptap/extension-link/dist/index.js +0 -423
  349. package/dist/node_modules/@tiptap/extension-link/dist/index.js.map +0 -1
  350. package/dist/node_modules/@tiptap/extension-list/dist/index.js +0 -1039
  351. package/dist/node_modules/@tiptap/extension-list/dist/index.js.map +0 -1
  352. package/dist/node_modules/@tiptap/extension-paragraph/dist/index.js +0 -61
  353. package/dist/node_modules/@tiptap/extension-paragraph/dist/index.js.map +0 -1
  354. package/dist/node_modules/@tiptap/extension-placeholder/dist/index.js +0 -7
  355. package/dist/node_modules/@tiptap/extension-placeholder/dist/index.js.map +0 -1
  356. package/dist/node_modules/@tiptap/extension-strike/dist/index.js +0 -79
  357. package/dist/node_modules/@tiptap/extension-strike/dist/index.js.map +0 -1
  358. package/dist/node_modules/@tiptap/extension-text/dist/index.js +0 -16
  359. package/dist/node_modules/@tiptap/extension-text/dist/index.js.map +0 -1
  360. package/dist/node_modules/@tiptap/extension-underline/dist/index.js +0 -76
  361. package/dist/node_modules/@tiptap/extension-underline/dist/index.js.map +0 -1
  362. package/dist/node_modules/@tiptap/extensions/dist/index.js +0 -376
  363. package/dist/node_modules/@tiptap/extensions/dist/index.js.map +0 -1
  364. package/dist/node_modules/@tiptap/react/dist/index.js +0 -650
  365. package/dist/node_modules/@tiptap/react/dist/index.js.map +0 -1
  366. package/dist/node_modules/@tiptap/starter-kit/dist/index.js +0 -97
  367. package/dist/node_modules/@tiptap/starter-kit/dist/index.js.map +0 -1
  368. package/dist/node_modules/dayjs/dayjs.min.js +0 -283
  369. package/dist/node_modules/dayjs/dayjs.min.js.map +0 -1
  370. package/dist/node_modules/dayjs/plugin/customParseFormat.js +0 -130
  371. package/dist/node_modules/dayjs/plugin/customParseFormat.js.map +0 -1
  372. package/dist/node_modules/dayjs/plugin/duration.js +0 -137
  373. package/dist/node_modules/dayjs/plugin/duration.js.map +0 -1
  374. package/dist/node_modules/dayjs/plugin/isBetween.js +0 -20
  375. package/dist/node_modules/dayjs/plugin/isBetween.js.map +0 -1
  376. package/dist/node_modules/dayjs/plugin/relativeTime.js +0 -49
  377. package/dist/node_modules/dayjs/plugin/relativeTime.js.map +0 -1
  378. package/dist/node_modules/fast-equals/dist/es/index.js +0 -442
  379. package/dist/node_modules/fast-equals/dist/es/index.js.map +0 -1
  380. package/dist/node_modules/idb/build/index.js +0 -70
  381. package/dist/node_modules/idb/build/index.js.map +0 -1
  382. package/dist/node_modules/idb/build/wrap-idb-value.js +0 -149
  383. package/dist/node_modules/idb/build/wrap-idb-value.js.map +0 -1
  384. package/dist/node_modules/linkifyjs/dist/linkify.js +0 -1159
  385. package/dist/node_modules/linkifyjs/dist/linkify.js.map +0 -1
  386. package/dist/node_modules/orderedmap/dist/index.js +0 -120
  387. package/dist/node_modules/orderedmap/dist/index.js.map +0 -1
  388. package/dist/node_modules/prosemirror-commands/dist/index.js +0 -527
  389. package/dist/node_modules/prosemirror-commands/dist/index.js.map +0 -1
  390. package/dist/node_modules/prosemirror-dropcursor/dist/index.js +0 -137
  391. package/dist/node_modules/prosemirror-dropcursor/dist/index.js.map +0 -1
  392. package/dist/node_modules/prosemirror-gapcursor/dist/index.js +0 -221
  393. package/dist/node_modules/prosemirror-gapcursor/dist/index.js.map +0 -1
  394. package/dist/node_modules/prosemirror-history/dist/index.js +0 -357
  395. package/dist/node_modules/prosemirror-history/dist/index.js.map +0 -1
  396. package/dist/node_modules/prosemirror-keymap/dist/index.js +0 -84
  397. package/dist/node_modules/prosemirror-keymap/dist/index.js.map +0 -1
  398. package/dist/node_modules/prosemirror-model/dist/index.js +0 -3209
  399. package/dist/node_modules/prosemirror-model/dist/index.js.map +0 -1
  400. package/dist/node_modules/prosemirror-schema-list/dist/index.js +0 -131
  401. package/dist/node_modules/prosemirror-schema-list/dist/index.js.map +0 -1
  402. package/dist/node_modules/prosemirror-state/dist/index.js +0 -936
  403. package/dist/node_modules/prosemirror-state/dist/index.js.map +0 -1
  404. package/dist/node_modules/prosemirror-transform/dist/index.js +0 -1881
  405. package/dist/node_modules/prosemirror-transform/dist/index.js.map +0 -1
  406. package/dist/node_modules/prosemirror-view/dist/index.js +0 -5232
  407. package/dist/node_modules/prosemirror-view/dist/index.js.map +0 -1
  408. package/dist/node_modules/rope-sequence/dist/index.js +0 -184
  409. package/dist/node_modules/rope-sequence/dist/index.js.map +0 -1
  410. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +0 -82
  411. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +0 -1
  412. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +0 -78
  413. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +0 -1
  414. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +0 -78
  415. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +0 -1
  416. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +0 -63
  417. package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +0 -1
  418. package/dist/node_modules/use-sync-external-store/shim/index.js +0 -13
  419. package/dist/node_modules/use-sync-external-store/shim/index.js.map +0 -1
  420. package/dist/node_modules/use-sync-external-store/shim/with-selector.js +0 -13
  421. package/dist/node_modules/use-sync-external-store/shim/with-selector.js.map +0 -1
  422. package/dist/node_modules/w3c-keyname/index.js +0 -106
  423. package/dist/node_modules/w3c-keyname/index.js.map +0 -1
  424. package/dist/node_modules/zod/v4/classic/coerce.js +0 -10
  425. package/dist/node_modules/zod/v4/classic/coerce.js.map +0 -1
  426. package/dist/node_modules/zod/v4/classic/compat.js +0 -8
  427. package/dist/node_modules/zod/v4/classic/compat.js.map +0 -1
  428. package/dist/node_modules/zod/v4/classic/errors.js +0 -45
  429. package/dist/node_modules/zod/v4/classic/errors.js.map +0 -1
  430. package/dist/node_modules/zod/v4/classic/iso.js +0 -44
  431. package/dist/node_modules/zod/v4/classic/iso.js.map +0 -1
  432. package/dist/node_modules/zod/v4/classic/parse.js +0 -30
  433. package/dist/node_modules/zod/v4/classic/parse.js.map +0 -1
  434. package/dist/node_modules/zod/v4/classic/schemas.js +0 -711
  435. package/dist/node_modules/zod/v4/classic/schemas.js.map +0 -1
  436. package/dist/node_modules/zod/v4/core/api.js +0 -588
  437. package/dist/node_modules/zod/v4/core/api.js.map +0 -1
  438. package/dist/node_modules/zod/v4/core/checks.js +0 -411
  439. package/dist/node_modules/zod/v4/core/checks.js.map +0 -1
  440. package/dist/node_modules/zod/v4/core/core.js +0 -75
  441. package/dist/node_modules/zod/v4/core/core.js.map +0 -1
  442. package/dist/node_modules/zod/v4/core/doc.js +0 -38
  443. package/dist/node_modules/zod/v4/core/doc.js.map +0 -1
  444. package/dist/node_modules/zod/v4/core/errors.js +0 -73
  445. package/dist/node_modules/zod/v4/core/errors.js.map +0 -1
  446. package/dist/node_modules/zod/v4/core/json-schema-processors.js +0 -359
  447. package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +0 -1
  448. package/dist/node_modules/zod/v4/core/parse.js +0 -96
  449. package/dist/node_modules/zod/v4/core/parse.js.map +0 -1
  450. package/dist/node_modules/zod/v4/core/regexes.js +0 -84
  451. package/dist/node_modules/zod/v4/core/regexes.js.map +0 -1
  452. package/dist/node_modules/zod/v4/core/registries.js +0 -52
  453. package/dist/node_modules/zod/v4/core/registries.js.map +0 -1
  454. package/dist/node_modules/zod/v4/core/schemas.js +0 -1391
  455. package/dist/node_modules/zod/v4/core/schemas.js.map +0 -1
  456. package/dist/node_modules/zod/v4/core/to-json-schema.js +0 -363
  457. package/dist/node_modules/zod/v4/core/to-json-schema.js.map +0 -1
  458. package/dist/node_modules/zod/v4/core/util.js +0 -431
  459. package/dist/node_modules/zod/v4/core/util.js.map +0 -1
  460. package/dist/node_modules/zod/v4/core/versions.js +0 -9
  461. package/dist/node_modules/zod/v4/core/versions.js.map +0 -1
  462. package/dist/redux/baseQuery.d.ts +0 -1
  463. package/dist/redux/baseQuery.js +0 -24
  464. package/dist/redux/baseQuery.js.map +0 -1
  465. package/dist/services/eventApi.js +0 -411
  466. package/dist/services/eventApi.js.map +0 -1
  467. package/dist/services/helpers.js +0 -115
  468. package/dist/services/helpers.js.map +0 -1
  469. package/dist/services/initialize-firebase.d.ts +0 -2
  470. package/dist/services/initialize-firebase.js +0 -20
  471. package/dist/services/initialize-firebase.js.map +0 -1
  472. package/dist/services/process-image-on-server.js +0 -30
  473. package/dist/services/process-image-on-server.js.map +0 -1
  474. package/dist/services/remote-config.d.ts +0 -5
  475. package/dist/services/remote-config.js +0 -9
  476. package/dist/services/remote-config.js.map +0 -1
  477. package/dist/services/single-event-api.js +0 -301
  478. package/dist/services/single-event-api.js.map +0 -1
  479. package/dist/services/utils.js +0 -107
  480. package/dist/services/utils.js.map +0 -1
  481. package/dist/setupTests.d.ts +0 -1
  482. package/dist/stories/Alert.stories.d.ts +0 -10
  483. package/dist/stories/Button.stories.d.ts +0 -13
  484. package/dist/types/redux-types.d.ts +0 -15
  485. package/dist/types/types.d.ts +0 -60
  486. package/dist/types/types.js +0 -10
  487. package/dist/types/types.js.map +0 -1
  488. package/dist/utils/cn.d.ts +0 -6
  489. package/dist/utils/cn.js +0 -9
  490. package/dist/utils/cn.js.map +0 -1
  491. package/dist/utils/date-range.d.ts +0 -4
  492. package/dist/utils/date-range.js +0 -13
  493. package/dist/utils/date-range.js.map +0 -1
  494. package/dist/utils/single-event-helpers.d.ts +0 -50
  495. package/dist/utils/single-event-helpers.js +0 -18
  496. package/dist/utils/single-event-helpers.js.map +0 -1
  497. package/dist/utils/social-validation.js +0 -42
  498. package/dist/utils/social-validation.js.map +0 -1
  499. package/dist/utils/utils.js +0 -20
  500. package/dist/utils/utils.js.map +0 -1
  501. /package/dist/{components/Alert/Alert.d.ts → src/components/Alert/index.d.ts} +0 -0
  502. /package/dist/{components → src/components}/FormBuilder/CategoryList.d.ts +0 -0
  503. /package/dist/{components → src/components}/FormBuilder/OptionList.d.ts +0 -0
  504. /package/dist/{components → src/components}/FormBuilder/RequiredToggle.d.ts +0 -0
  505. /package/dist/{components → src/components}/FormBuilder/types.d.ts +0 -0
  506. /package/dist/{components → src/components}/FormBuilder/utils.d.ts +0 -0
  507. /package/dist/{components → src/components}/ImageCropModal/index.d.ts +0 -0
  508. /package/dist/{components → src/components}/InformationPopover.d.ts +0 -0
  509. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/common/DescriptionModal.d.ts +0 -0
  510. /package/dist/{components/ui/FormInput.d.ts → src/components/NewAddEvent/components/AddEventFormInput.d.ts} +0 -0
  511. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/CheckboxGroup.d.ts +0 -0
  512. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/CustomMeetingForm.d.ts +0 -0
  513. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/DateTimeField.d.ts +0 -0
  514. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/FileUpload.d.ts +0 -0
  515. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/FormBuilderProceedModal.d.ts +0 -0
  516. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/GoogleMapsAutocompleteInput.d.ts +0 -0
  517. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/SingleDateTimeInput.d.ts +0 -0
  518. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/StepTwo/CustomFormSection.d.ts +0 -0
  519. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/components/TicketTypeSelection.d.ts +0 -0
  520. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/StepOne.d.ts +0 -0
  521. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/steps/StepTwo.d.ts +0 -0
  522. /package/dist/{components/EventAddForm → src/components/NewAddEvent}/types.d.ts +0 -0
  523. /package/dist/{components → src/components}/common/FallbackImage.d.ts +0 -0
  524. /package/dist/{components → src/components}/ui/Calendar/calendar-utils.d.ts +0 -0
  525. /package/dist/{components → src/components}/ui/Calendar/index.d.ts +0 -0
  526. /package/dist/{components/Checkbox → src/components/ui}/Checkbox.d.ts +0 -0
  527. /package/dist/{components/CustomSelect → src/components/ui}/CustomSelect.d.ts +0 -0
  528. /package/dist/{components → src/components}/ui/DatePicker/index.d.ts +0 -0
  529. /package/dist/{components/InputErrorMessage → src/components/ui}/InputErrorMessage.d.ts +0 -0
  530. /package/dist/{components → src/components}/ui/Modal/index.d.ts +0 -0
  531. /package/dist/{components/Radio → src/components/ui}/Radio.d.ts +0 -0
  532. /package/dist/{components → src/components}/ui/RichTextEditor.d.ts +0 -0
  533. /package/dist/{components → src/components}/ui/TimePicker/index.d.ts +0 -0
  534. /package/dist/{components → src/components}/ui/TimeSelector/index.d.ts +0 -0
  535. /package/dist/{components → src/components}/ui/Tooltip/index.d.ts +0 -0
  536. /package/dist/{lib → src/lib}/constants.d.ts +0 -0
  537. /package/dist/{lib → src/lib}/cropImage.d.ts +0 -0
  538. /package/dist/{lib → src/lib}/imageAnalysis.d.ts +0 -0
  539. /package/dist/{utils → src/lib}/social-validation.d.ts +0 -0
  540. /package/dist/{lib/utils.d.ts → src/lib/tailwind-merge.d.ts} +0 -0
  541. /package/dist/{utils → src/lib}/utils.d.ts +0 -0
  542. /package/dist/{services → src/redux/features/single-event}/helpers.d.ts +0 -0
  543. /package/dist/{services → src/services}/process-image-on-server.d.ts +0 -0
  544. /package/dist/{types → src/types}/events.d.ts +0 -0
  545. /package/dist/{types → src/types}/question.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/ui/TimeSelector/index.tsx"],"sourcesContent":["import { useEffect, useRef, memo, ReactNode } from \"react\";\r\nimport { cn } from \"@/lib/utils\";\r\nimport Tooltip from \"@/components/ui/Tooltip\";\r\n\r\ninterface TimeSelectorProps {\r\n value?: string;\r\n onChange: (time: string) => void;\r\n minTime?: string;\r\n maxTime?: string;\r\n className?: string;\r\n renderExtra?: (time: string) => React.ReactNode;\r\n step?: number;\r\n}\r\n\r\nconst formatTo12HourParts = (time: string) => {\r\n if (!time || typeof time !== 'string' || time === 'Invalid Date' || time.includes('undefined')) {\r\n return { hour: '12', minute: '00', period: 'AM' };\r\n }\r\n const parts = time.split(':');\r\n const h = Number(parts[0]);\r\n const m = parts.length > 1 ? Number(parts[1]) : 0;\r\n\r\n const period = h >= 12 ? 'PM' : 'AM';\r\n const hour12 = h % 12 || 12;\r\n return {\r\n hour: String(hour12),\r\n minute: String(m || 0).padStart(2, '0'),\r\n period\r\n };\r\n};\r\n\r\nconst TimeSelector = ({\r\n value,\r\n onChange,\r\n minTime,\r\n maxTime,\r\n className,\r\n renderExtra,\r\n step = 30\r\n}: TimeSelectorProps) => {\r\n const parts = formatTo12HourParts(value || '12:00');\r\n\r\n const hours = Array.from({ length: 12 }, (_, i) => String(i + 1));\r\n const minutes = Array.from({ length: 60 / step }, (_, i) => String(i * step).padStart(2, '0'));\r\n const periods = ['AM', 'PM'];\r\n\r\n const parentScrollRef = useRef<HTMLDivElement>(null);\r\n\r\n // Auto-scroll on mount and value change (only for the parent container based on Hour)\r\n useEffect(() => {\r\n const scrollToSelected = () => {\r\n const container = parentScrollRef.current;\r\n if (!container) return;\r\n // Find the selected hour button\r\n const selectedElement = container.querySelector(`[data-type=\"hour\"][data-value=\"${parts.hour}\"]`) as HTMLElement;\r\n if (selectedElement) {\r\n // Scroll the parent container to center the selected hour\r\n const centerOffset = selectedElement.offsetTop - (container.clientHeight / 2) + (selectedElement.clientHeight / 2);\r\n container.scrollTop = centerOffset;\r\n }\r\n };\r\n\r\n const timer = setTimeout(scrollToSelected, 100);\r\n return () => clearTimeout(timer);\r\n }, [value, parts.hour]);\r\n\r\n\r\n const handlePartChange = (type: 'hour' | 'minute' | 'period', newValue: string) => {\r\n let { hour, minute, period } = parts;\r\n\r\n if (type === 'hour') hour = newValue;\r\n if (type === 'minute') minute = newValue;\r\n if (type === 'period') period = newValue;\r\n\r\n let h = parseInt(hour);\r\n if (period === 'PM' && h !== 12) h += 12;\r\n if (period === 'AM' && h === 12) h = 0;\r\n\r\n const time24 = `${String(h).padStart(2, '0')}:${minute}`;\r\n onChange(time24);\r\n };\r\n\r\n const isSlotDisabled = (type: 'hour' | 'minute' | 'period', val: string) => {\r\n if (!minTime && !maxTime) return false;\r\n\r\n let { hour, minute, period } = parts;\r\n if (type === 'hour') hour = val;\r\n if (type === 'minute') minute = val;\r\n if (type === 'period') period = val;\r\n\r\n let h = parseInt(hour);\r\n if (period === 'PM' && h !== 12) h += 12;\r\n if (period === 'AM' && h === 12) h = 0;\r\n\r\n const time24 = `${String(h).padStart(2, '0')}:${minute}`;\r\n\r\n if (minTime && time24 < minTime) return true;\r\n if (maxTime && time24 > maxTime) return true;\r\n return false;\r\n };\r\n\r\n const renderColumn = (title: string, items: string[], currentVal: string, type: 'hour' | 'minute' | 'period', isSticky: boolean = false) => (\r\n <div className={cn(\"flex flex-col flex-1 min-w-[70px]\", isSticky && \"sticky top-0 h-fit bg-white z-20 pb-2\")}>\r\n <div className=\"text-[10px] uppercase font-bold text-grey-400 px-2 mb-2 text-center tracking-wider\">{title}</div>\r\n <div\r\n className=\"flex-1 p-1 space-y-1 relative\"\r\n >\r\n {items.map((item: string) => {\r\n const isSelected = currentVal === item;\r\n const disabled = isSlotDisabled(type, item);\r\n\r\n const button = (\r\n <button\r\n key={item}\r\n data-value={item}\r\n data-type={type}\r\n type=\"button\"\r\n disabled={disabled}\r\n onClick={() => !disabled && handlePartChange(type, item)}\r\n className={cn(\r\n \"w-full py-2 text-sm rounded-lg transition-all duration-200\",\r\n isSelected\r\n ? \"bg-primaryx-500 text-white font-bold shadow-md\"\r\n : disabled\r\n ? \"text-grey-300 cursor-not-allowed opacity-40\"\r\n : \"text-grey-600 hover:bg-grey-100\"\r\n )}\r\n >\r\n {item}\r\n </button>\r\n );\r\n\r\n if (disabled) {\r\n return (\r\n <Tooltip key={item} content={type === 'hour' ? \"Hour is outside allowed range\" : \"Time slot unavailable\"} placement=\"right\" >\r\n {button}\r\n </Tooltip>\r\n );\r\n }\r\n\r\n return button;\r\n })}\r\n </div>\r\n </div>\r\n );\r\n\r\n const getFinalTime24 = () => {\r\n let h = parseInt(parts.hour);\r\n if (parts.period === 'PM' && h !== 12) h += 12;\r\n if (parts.period === 'AM' && h === 12) h = 0;\r\n return `${String(h).padStart(2, '0')}:${parts.minute}`;\r\n };\r\n\r\n return (\r\n <div className={cn(\"bg-white rounded-2xl shadow-2xl border border-grey-200 w-[260px] flex flex-col overflow-hidden z-50\", className)}>\r\n <div ref={parentScrollRef} className=\"flex p-2 pr-3 border-b border-grey-100 max-h-[280px] overflow-y-auto overflow-x-hidden bg-white relative\">\r\n {renderColumn(\"Hour\", hours, parts.hour, \"hour\", false)}\r\n <div className=\"w-px bg-grey-100 my-4 shrink-0 mx-1\" />\r\n {renderColumn(\"Min\", minutes, parts.minute, \"minute\", true)}\r\n <div className=\"w-px bg-grey-100 my-4 shrink-0 mx-1\" />\r\n {renderColumn(\"Period\", periods, parts.period, \"period\", true)}\r\n </div>\r\n\r\n {/* Summary Area */}\r\n <div className=\"bg-grey-50 p-3 flex items-center justify-between border-t border-grey-100\">\r\n <div className=\"flex flex-col\">\r\n <span className=\"text-[10px] text-grey-400 font-bold uppercase tracking-tight\">Selection</span>\r\n <span className=\"text-sm font-extrabold text-primaryx-600\">\r\n {parts.hour}:{parts.minute} {parts.period}\r\n </span>\r\n </div>\r\n {renderExtra && (\r\n <div className=\"text-[11px] font-bold text-grey-500 bg-white px-2.5 py-1.5 rounded-full border border-grey-200 shadow-sm animate-in fade-in zoom-in duration-300\">\r\n {renderExtra(getFinalTime24())}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default memo(TimeSelector);\r\n"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { default as React, ReactNode } from 'react';
2
-
3
- interface TooltipProps {
4
- children: ReactNode;
5
- content: ReactNode;
6
- placement?: "top" | "bottom" | "left" | "right";
7
- className?: string;
8
- triggerClassName?: string;
9
- disabled?: boolean;
10
- }
11
- declare const _default: React.MemoExoticComponent<({ children, content, placement, className, triggerClassName, disabled, }: TooltipProps) => import("react/jsx-runtime").JSX.Element>;
12
- export default _default;
@@ -1,136 +0,0 @@
1
- import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
- import { memo, useState, useRef, useEffect } from "react";
3
- import { createPortal } from "react-dom";
4
- import { AnimatePresence, motion } from "framer-motion";
5
- import { cn } from "../../lib/utils.js";
6
- const Tooltip = ({
7
- children,
8
- content,
9
- placement = "top",
10
- className,
11
- triggerClassName,
12
- disabled = true
13
- }) => {
14
- const [isVisible, setIsVisible] = useState(false);
15
- const [coords, setCoords] = useState({
16
- top: 0,
17
- left: 0
18
- });
19
- const [actualPlacement, setActualPlacement] = useState(placement);
20
- const triggerRef = useRef(null);
21
- const tooltipRef = useRef(null);
22
- const updatePosition = () => {
23
- var _a;
24
- if (!triggerRef.current) return;
25
- const triggerRect = triggerRef.current.getBoundingClientRect();
26
- const tooltipRect = ((_a = tooltipRef.current) == null ? void 0 : _a.getBoundingClientRect()) || {
27
- width: 0,
28
- height: 0
29
- };
30
- let top = 0;
31
- let left = 0;
32
- const gap = 8;
33
- let targetPlacement = placement;
34
- if (window.innerWidth < 768 && (placement === "left" || placement === "right")) {
35
- if (triggerRect.top > tooltipRect.height + gap + 10) {
36
- targetPlacement = "top";
37
- } else {
38
- targetPlacement = "bottom";
39
- }
40
- }
41
- switch (targetPlacement) {
42
- case "top":
43
- top = triggerRect.top - tooltipRect.height - gap;
44
- left = triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;
45
- break;
46
- case "bottom":
47
- top = triggerRect.bottom + gap;
48
- left = triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;
49
- break;
50
- case "left":
51
- top = triggerRect.top + triggerRect.height / 2 - tooltipRect.height / 2;
52
- left = triggerRect.left - tooltipRect.width - gap;
53
- break;
54
- case "right":
55
- top = triggerRect.top + triggerRect.height / 2 - tooltipRect.height / 2;
56
- left = triggerRect.right + gap;
57
- break;
58
- }
59
- setCoords({ top, left });
60
- setActualPlacement(targetPlacement);
61
- };
62
- useEffect(() => {
63
- if (isVisible) {
64
- updatePosition();
65
- window.addEventListener("scroll", updatePosition, true);
66
- window.addEventListener("resize", updatePosition);
67
- }
68
- return () => {
69
- window.removeEventListener("scroll", updatePosition, true);
70
- window.removeEventListener("resize", updatePosition);
71
- };
72
- }, [isVisible]);
73
- useEffect(() => {
74
- if (isVisible) {
75
- const timer = setTimeout(updatePosition, 0);
76
- return () => clearTimeout(timer);
77
- }
78
- }, [isVisible, content, placement]);
79
- return /* @__PURE__ */ jsxs(Fragment, { children: [
80
- /* @__PURE__ */ jsx(
81
- "div",
82
- {
83
- ref: triggerRef,
84
- className: cn("inline-block", triggerClassName),
85
- onMouseEnter: () => setIsVisible(true),
86
- onMouseLeave: () => setIsVisible(false),
87
- children
88
- }
89
- ),
90
- disabled && createPortal(
91
- /* @__PURE__ */ jsx(AnimatePresence, { children: isVisible && content && /* @__PURE__ */ jsxs(
92
- motion.div,
93
- {
94
- ref: tooltipRef,
95
- initial: { opacity: 0, scale: 0.95 },
96
- animate: { opacity: 1, scale: 1 },
97
- exit: { opacity: 0, scale: 0.95 },
98
- transition: { duration: 0.1 },
99
- style: {
100
- position: "fixed",
101
- top: coords.top,
102
- left: coords.left,
103
- zIndex: 1e5
104
- // Ensure it's on top of everything (even popovers)
105
- },
106
- className: cn(
107
- "bg-[#1A1F2C] text-white text-center text-xs px-3 py-2 rounded-lg shadow-lg max-w-xs pointer-events-none",
108
- // "pointer-events-none", // Optional: prevent tooltip from blocking clicks if it overlaps
109
- className
110
- ),
111
- children: [
112
- content,
113
- /* @__PURE__ */ jsx(
114
- "div",
115
- {
116
- className: cn(
117
- "absolute w-0 h-0 border-4 border-transparent",
118
- actualPlacement === "top" && "top-full left-1/2 -translate-x-1/2 border-t-[#1A1F2C]",
119
- actualPlacement === "bottom" && "bottom-full left-1/2 -translate-x-1/2 border-b-[#1A1F2C]",
120
- actualPlacement === "left" && "left-full top-1/2 -translate-y-1/2 border-l-[#1A1F2C]",
121
- actualPlacement === "right" && "right-full top-1/2 -translate-y-1/2 border-r-[#1A1F2C]"
122
- )
123
- }
124
- )
125
- ]
126
- }
127
- ) }),
128
- document.body
129
- )
130
- ] });
131
- };
132
- const Tooltip$1 = memo(Tooltip);
133
- export {
134
- Tooltip$1 as default
135
- };
136
- //# sourceMappingURL=Tooltip.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../src/components/ui/Tooltip.tsx"],"sourcesContent":["import React, { useState, useRef, useEffect, ReactNode, memo } from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\nimport { AnimatePresence, motion } from \"framer-motion\";\r\nimport { cn } from \"@/lib/utils\";\r\n\r\ninterface TooltipProps {\r\n children: ReactNode;\r\n content: ReactNode;\r\n placement?: \"top\" | \"bottom\" | \"left\" | \"right\";\r\n className?: string; // For the tooltip content container\r\n triggerClassName?: string; // For the trigger wrapper\r\n disabled?: boolean;\r\n}\r\n\r\nconst Tooltip = ({\r\n children,\r\n content,\r\n placement = \"top\",\r\n className,\r\n triggerClassName,\r\n disabled = true,\r\n}: TooltipProps) => {\r\n const [isVisible, setIsVisible] = useState(false);\r\n const [coords, setCoords] = useState<{ top: number; left: number }>({\r\n top: 0,\r\n left: 0,\r\n });\r\n const [actualPlacement, setActualPlacement] = useState(placement);\r\n const triggerRef = useRef<HTMLDivElement>(null);\r\n const tooltipRef = useRef<HTMLDivElement>(null);\r\n\r\n const updatePosition = () => {\r\n if (!triggerRef.current) return;\r\n\r\n const triggerRect = triggerRef.current.getBoundingClientRect();\r\n const tooltipRect = tooltipRef.current?.getBoundingClientRect() || {\r\n width: 0,\r\n height: 0,\r\n };\r\n\r\n let top = 0;\r\n let left = 0;\r\n const gap = 8; // Distance between trigger and tooltip\r\n let targetPlacement = placement;\r\n\r\n // Responsive check\r\n if (window.innerWidth < 768 && (placement === \"left\" || placement === \"right\")) {\r\n // Check space above\r\n if (triggerRect.top > tooltipRect.height + gap + 10) {\r\n targetPlacement = \"top\";\r\n } else {\r\n targetPlacement = \"bottom\";\r\n }\r\n }\r\n\r\n switch (targetPlacement) {\r\n case \"top\":\r\n top = triggerRect.top - tooltipRect.height - gap;\r\n left = triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;\r\n break;\r\n case \"bottom\":\r\n top = triggerRect.bottom + gap;\r\n left = triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;\r\n break;\r\n case \"left\":\r\n top = triggerRect.top + triggerRect.height / 2 - tooltipRect.height / 2;\r\n left = triggerRect.left - tooltipRect.width - gap;\r\n break;\r\n case \"right\":\r\n top = triggerRect.top + triggerRect.height / 2 - tooltipRect.height / 2;\r\n left = triggerRect.right + gap;\r\n break;\r\n }\r\n\r\n setCoords({ top, left });\r\n setActualPlacement(targetPlacement);\r\n };\r\n\r\n useEffect(() => {\r\n if (isVisible) {\r\n updatePosition();\r\n // Update position on scroll/resize\r\n window.addEventListener(\"scroll\", updatePosition, true);\r\n window.addEventListener(\"resize\", updatePosition);\r\n }\r\n return () => {\r\n window.removeEventListener(\"scroll\", updatePosition, true);\r\n window.removeEventListener(\"resize\", updatePosition);\r\n };\r\n }, [isVisible]);\r\n\r\n // Recalculate when content or placement changes\r\n useEffect(() => {\r\n if (isVisible) {\r\n // Small timeout to allow render\r\n const timer = setTimeout(updatePosition, 0);\r\n return () => clearTimeout(timer);\r\n }\r\n }, [isVisible, content, placement]);\r\n\r\n return (\r\n <>\r\n <div\r\n ref={triggerRef}\r\n className={cn(\"inline-block\", triggerClassName)}\r\n onMouseEnter={() => setIsVisible(true)}\r\n onMouseLeave={() => setIsVisible(false)}\r\n >\r\n {children}\r\n </div>\r\n {disabled && createPortal(\r\n <AnimatePresence>\r\n {isVisible && content && (\r\n <motion.div\r\n ref={tooltipRef}\r\n initial={{ opacity: 0, scale: 0.95 }}\r\n animate={{ opacity: 1, scale: 1 }}\r\n exit={{ opacity: 0, scale: 0.95 }}\r\n transition={{ duration: 0.1 }}\r\n style={{\r\n position: \"fixed\",\r\n top: coords.top,\r\n left: coords.left,\r\n zIndex: 100000, // Ensure it's on top of everything (even popovers)\r\n }}\r\n className={cn(\r\n \"bg-[#1A1F2C] text-white text-center text-xs px-3 py-2 rounded-lg shadow-lg max-w-xs pointer-events-none\",\r\n // \"pointer-events-none\", // Optional: prevent tooltip from blocking clicks if it overlaps\r\n className\r\n )}\r\n >\r\n {content}\r\n {/* Arrow */}\r\n <div\r\n className={cn(\r\n \"absolute w-0 h-0 border-4 border-transparent\",\r\n actualPlacement === \"top\" &&\r\n \"top-full left-1/2 -translate-x-1/2 border-t-[#1A1F2C]\",\r\n actualPlacement === \"bottom\" &&\r\n \"bottom-full left-1/2 -translate-x-1/2 border-b-[#1A1F2C]\",\r\n actualPlacement === \"left\" &&\r\n \"left-full top-1/2 -translate-y-1/2 border-l-[#1A1F2C]\",\r\n actualPlacement === \"right\" &&\r\n \"right-full top-1/2 -translate-y-1/2 border-r-[#1A1F2C]\"\r\n )}\r\n />\r\n </motion.div>\r\n )}\r\n </AnimatePresence>,\r\n document.body\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default memo(Tooltip);\r\n"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { RefObject } from 'react';
2
-
3
- type Position = 'top' | 'bottom';
4
- interface UseDropdownPositionOptions {
5
- triggerRef: RefObject<HTMLElement | null>;
6
- isOpen: boolean;
7
- dropdownHeight?: number;
8
- offset?: number;
9
- }
10
- export declare const useDropdownPosition: ({ triggerRef, isOpen, dropdownHeight, offset }: UseDropdownPositionOptions) => Position;
11
- export {};
@@ -1,6 +0,0 @@
1
- import { User } from 'firebase/auth';
2
-
3
- export default function useFirebaseAuthState(): {
4
- user: User;
5
- isLoading: boolean;
6
- };
@@ -1,23 +0,0 @@
1
- import { auth } from "../services/initialize-firebase.js";
2
- import { onAuthStateChanged } from "firebase/auth";
3
- import { useState, useEffect } from "react";
4
- function useFirebaseAuthState() {
5
- const [isLoading, setIsLoading] = useState(true);
6
- const [user, setUser] = useState(null);
7
- useEffect(() => {
8
- const unsub = onAuthStateChanged(auth, (authState) => {
9
- if (authState) {
10
- setUser(authState);
11
- } else {
12
- setUser(null);
13
- }
14
- setIsLoading(false);
15
- });
16
- return () => unsub();
17
- }, []);
18
- return { user, isLoading };
19
- }
20
- export {
21
- useFirebaseAuthState as default
22
- };
23
- //# sourceMappingURL=useFirebaseAuthState.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFirebaseAuthState.js","sources":["../../src/hooks/useFirebaseAuthState.tsx"],"sourcesContent":["import { auth } from \"../services/initialize-firebase\";\r\nimport { onAuthStateChanged, User } from \"firebase/auth\";\r\nimport { useEffect, useState } from \"react\";\r\n\r\nexport default function useFirebaseAuthState() {\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [user, setUser] = useState<User | null>(null);\r\n\r\n useEffect(() => {\r\n const unsub = onAuthStateChanged(auth, (authState) => {\r\n if (authState) {\r\n setUser(authState);\r\n }\r\n else {\r\n setUser(null);\r\n }\r\n setIsLoading(false);\r\n })\r\n\r\n return () => unsub();\r\n }, [])\r\n\r\n return { user, isLoading };\r\n}\r\n"],"names":[],"mappings":";;;AAIA,SAAwB,uBAAuB;AAC3C,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,IAAI;AAC/C,QAAM,CAAC,MAAM,OAAO,IAAI,SAAsB,IAAI;AAElD,YAAU,MAAM;AACZ,UAAM,QAAQ,mBAAmB,MAAM,CAAC,cAAc;AAClD,UAAI,WAAW;AACX,gBAAQ,SAAS;AAAA,MACrB,OACK;AACD,gBAAQ,IAAI;AAAA,MAChB;AACA,mBAAa,KAAK;AAAA,IACtB,CAAC;AAED,WAAO,MAAM,MAAA;AAAA,EACjB,GAAG,CAAA,CAAE;AAEL,SAAO,EAAE,MAAM,UAAA;AACnB;"}
@@ -1,61 +0,0 @@
1
- import { z } from 'zod';
2
- import { TicketTierAvailabilityType } from '../types/events';
3
-
4
- export declare const getTicketTierSchema: (existingTierNames?: string[]) => z.ZodObject<{
5
- name: z.ZodString;
6
- description: z.ZodOptional<z.ZodString>;
7
- price: z.ZodCoercedNumber<unknown>;
8
- discounted_price: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
9
- discount_valid_till: z.ZodObject<{
10
- date: z.ZodOptional<z.ZodString>;
11
- time: z.ZodOptional<z.ZodString>;
12
- }, z.core.$strip>;
13
- capacity: z.ZodCoercedNumber<unknown>;
14
- members: z.ZodCoercedNumber<unknown>;
15
- availability_type: z.ZodEnum<typeof TicketTierAvailabilityType>;
16
- availability_schedule: z.ZodArray<z.ZodString>;
17
- }, z.core.$strip>;
18
- export type TicketTierFormState = z.infer<ReturnType<typeof getTicketTierSchema>>;
19
- interface UseTicketTierFormProps {
20
- initialData?: Partial<TicketTierFormState>;
21
- defaultState: TicketTierFormState;
22
- existingTierNames?: string[];
23
- }
24
- export declare const useTicketTierForm: ({ initialData, defaultState, existingTierNames }: UseTicketTierFormProps) => {
25
- formState: {
26
- name: string;
27
- price: number;
28
- discount_valid_till: {
29
- date?: string;
30
- time?: string;
31
- };
32
- capacity: number;
33
- members: number;
34
- availability_type: TicketTierAvailabilityType;
35
- availability_schedule: string[];
36
- description?: string;
37
- discounted_price?: number;
38
- };
39
- setField: (field: keyof TicketTierFormState, value: any) => void;
40
- handleBlur: (field: keyof TicketTierFormState) => void;
41
- handleSubmit: (onSubmit: (data: TicketTierFormState) => void) => Promise<void>;
42
- errors: Record<string, string>;
43
- setErrors: import('react').Dispatch<import('react').SetStateAction<Record<string, string>>>;
44
- isSubmitting: boolean;
45
- setFormState: import('react').Dispatch<import('react').SetStateAction<{
46
- name: string;
47
- price: number;
48
- discount_valid_till: {
49
- date?: string;
50
- time?: string;
51
- };
52
- capacity: number;
53
- members: number;
54
- availability_type: TicketTierAvailabilityType;
55
- availability_schedule: string[];
56
- description?: string;
57
- discounted_price?: number;
58
- }>>;
59
- resetForm: () => void;
60
- };
61
- export {};
@@ -1,32 +0,0 @@
1
- import { fetchWrapper } from "../services/utils.js";
2
- async function createEvent(data, token) {
3
- return fetchWrapper("/api/v1/vendor-app/create-event", { method: "POST", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } });
4
- }
5
- async function editEvent(data, token) {
6
- return fetchWrapper("/api/v1/vendor-app/update-event", { method: "POST", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } });
7
- }
8
- async function addQuestionToEventForm(data, token) {
9
- return fetchWrapper("/api/v1/vendor-app/add-question-to-event-form", { method: "POST", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } });
10
- }
11
- async function editQuestionInEventForm(data, token) {
12
- return fetchWrapper("/api/v1/vendor-app/edit-question-from-event-form", { method: "POST", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } });
13
- }
14
- async function deleteQuestionFromEventForm(data, token) {
15
- return fetchWrapper("/api/v1/vendor-app/delete-question-from-event-form", { method: "POST", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } });
16
- }
17
- async function updateQuestionsOrder(data, token) {
18
- return fetchWrapper("/api/v1/vendor-app/update-questions-order", { method: "POST", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } });
19
- }
20
- async function submitEventForApproval(data, token) {
21
- return fetchWrapper("/api/v1/vendor-app/submit-event-for-approval", { method: "PATCH", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } });
22
- }
23
- export {
24
- addQuestionToEventForm,
25
- createEvent,
26
- deleteQuestionFromEventForm,
27
- editEvent,
28
- editQuestionInEventForm,
29
- submitEventForApproval,
30
- updateQuestionsOrder
31
- };
32
- //# sourceMappingURL=actions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actions.js","sources":["../../src/lib/actions.ts"],"sourcesContent":["\"use server\";\r\n\r\nimport { fetchWrapper } from \"@/services/utils\";\r\n\r\n// -------------------- AUTH API Calls ---------------------------------------\r\nexport async function initiateEmailVerification(data: any) {\r\n return fetchWrapper(\"/api/v1/vendor-app/auth/initiate-email-verification\", { method: \"POST\", body: JSON.stringify(data) }, true)\r\n}\r\n\r\nexport async function verifyEmail(data: any) {\r\n return fetchWrapper(\"/api/v1/vendor-app/auth/verify-email\", { method: \"POST\", body: JSON.stringify(data) }, true)\r\n}\r\n\r\nexport async function createUser(data: any) {\r\n return fetchWrapper(\"/api/v1/vendor-app/auth/create-user\", { method: \"POST\", body: data instanceof FormData ? data : JSON.stringify(data) }, true)\r\n}\r\n\r\nexport async function initiateAccountVerification(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/initiate-account-verification\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } }, true)\r\n}\r\n\r\nexport async function verifyAccount(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/verify-account\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } }, true)\r\n}\r\n\r\n// -------------------- EVENT_ORGANIZER API Calls ---------------------------------------\r\n\r\nexport async function createEvent(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/create-event\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function editEvent(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/update-event\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function addQuestionToEventForm(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/add-question-to-event-form\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function editQuestionInEventForm(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/edit-question-from-event-form\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function deleteQuestionFromEventForm(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/delete-question-from-event-form\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function updateQuestionsOrder(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/update-questions-order\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function submitEventForApproval(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/submit-event-for-approval\", { method: \"PATCH\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\n\r\nexport async function updateUserRegistration(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/update-user-registration\", { method: \"PUT\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function archiveEvent(data: { event_id: string }, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/archive-event\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function deleteEvent(data: { event_id: string }, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/delete-event\", { method: \"DELETE\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function restoreEvent(data: { event_id: string }, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/restore-archived-event\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\n// -------------------------- EVENT ADMIN API calls ---------------------------------\r\n\r\nexport async function changeEventStatus(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/admin/update-event-status\", { method: \"PUT\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function markEventAsCancelled(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/admin/cancel-event\", { method: \"PUT\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\n// -------------------------- VENDOR API calls ---------------------------------\r\n\r\nexport async function getTitle(data: any, token: string) {\r\n return fetchWrapper(\"/api/bop/v1/title-fetch-reconcile-vendor\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function reconcile(data: any, token: string) {\r\n return fetchWrapper(\"/api/bop/v1/reconcile\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function executeOfflineQRTransaction(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/execute-offline-qr-transaction\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\nexport async function executeTopUpTransaction(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/execute-top-up-transaction\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\n// ---------------- MISC API calls ---------------------------\r\n\r\nexport async function executeTransaction(data: any) {\r\n return fetchWrapper(\"/api/v1/paymo-pg/execute-transaction\", { method: \"POST\", body: JSON.stringify(data) })\r\n}\r\n\r\nexport async function getTransactionStatus(data: any) {\r\n return fetchWrapper(\"/api/v1/payment-status\", { method: \"POST\", body: JSON.stringify(data) }, false, process.env.TICKETING_PORTAL_HEADER_KEY, process.env.TICKETING_PORTAL_BODY_KEY)\r\n}\r\n\r\n\r\n// --------------- Toggle Registration ---------------------\r\n\r\nexport async function toggleRegistrations(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/change-event-registration-open-state\", { method: \"PUT\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n\r\n// --------------- Social Profiles ---------------------\r\n\r\nexport async function updateEventSocialProfiles(data: any, token: string) {\r\n return fetchWrapper(\"/api/v1/vendor-app/update-event-social-profiles\", { method: \"POST\", body: JSON.stringify(data), headers: { Authorization: `Bearer ${token}` } })\r\n}\r\n"],"names":[],"mappings":";AA2BA,eAAsB,YAAY,MAAW,OAAe;AACxD,SAAO,aAAa,mCAAmC,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,IAAI,GAAG,SAAS,EAAE,eAAe,UAAU,KAAK,GAAA,GAAM;AACxJ;AAEA,eAAsB,UAAU,MAAW,OAAe;AACtD,SAAO,aAAa,mCAAmC,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,IAAI,GAAG,SAAS,EAAE,eAAe,UAAU,KAAK,GAAA,GAAM;AACxJ;AAEA,eAAsB,uBAAuB,MAAW,OAAe;AACnE,SAAO,aAAa,iDAAiD,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,IAAI,GAAG,SAAS,EAAE,eAAe,UAAU,KAAK,GAAA,GAAM;AACtK;AAEA,eAAsB,wBAAwB,MAAW,OAAe;AACpE,SAAO,aAAa,oDAAoD,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,IAAI,GAAG,SAAS,EAAE,eAAe,UAAU,KAAK,GAAA,GAAM;AACzK;AAEA,eAAsB,4BAA4B,MAAW,OAAe;AACxE,SAAO,aAAa,sDAAsD,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,IAAI,GAAG,SAAS,EAAE,eAAe,UAAU,KAAK,GAAA,GAAM;AAC3K;AAEA,eAAsB,qBAAqB,MAAW,OAAe;AACjE,SAAO,aAAa,6CAA6C,EAAE,QAAQ,QAAQ,MAAM,KAAK,UAAU,IAAI,GAAG,SAAS,EAAE,eAAe,UAAU,KAAK,GAAA,GAAM;AAClK;AAEA,eAAsB,uBAAuB,MAAW,OAAe;AACnE,SAAO,aAAa,gDAAgD,EAAE,QAAQ,SAAS,MAAM,KAAK,UAAU,IAAI,GAAG,SAAS,EAAE,eAAe,UAAU,KAAK,GAAA,GAAM;AACtK;"}
@@ -1,113 +0,0 @@
1
- const createImage = (url) => new Promise((resolve, reject) => {
2
- const image = new Image();
3
- image.addEventListener("load", () => resolve(image));
4
- image.addEventListener("error", (error) => reject(error));
5
- image.setAttribute("crossOrigin", "anonymous");
6
- image.src = url;
7
- });
8
- function getRadianAngle(degreeValue) {
9
- return degreeValue * Math.PI / 180;
10
- }
11
- function rotateSize(width, height, rotation) {
12
- const rotRad = getRadianAngle(rotation);
13
- return {
14
- width: Math.abs(Math.cos(rotRad) * width) + Math.abs(Math.sin(rotRad) * height),
15
- height: Math.abs(Math.sin(rotRad) * width) + Math.abs(Math.cos(rotRad) * height)
16
- };
17
- }
18
- async function getCroppedImage(imageSrc, pixelCrop, rotation = 0, flip = { horizontal: false, vertical: false }, backgroundColor = "transparent", watermark, enableBlurredBackground = false, maxDimension = 2500, quality = 0.85) {
19
- const image = await createImage(imageSrc);
20
- const canvas = document.createElement("canvas");
21
- const ctx = canvas.getContext("2d");
22
- if (!ctx) {
23
- throw new Error("No 2d context");
24
- }
25
- const rotRad = getRadianAngle(rotation);
26
- const { width: bBoxWidth, height: bBoxHeight } = rotateSize(
27
- image.width,
28
- image.height,
29
- rotation
30
- );
31
- canvas.width = bBoxWidth;
32
- canvas.height = bBoxHeight;
33
- ctx.translate(bBoxWidth / 2, bBoxHeight / 2);
34
- ctx.rotate(rotRad);
35
- ctx.scale(flip.horizontal ? -1 : 1, flip.vertical ? -1 : 1);
36
- ctx.translate(-image.width / 2, -image.height / 2);
37
- ctx.drawImage(image, 0, 0);
38
- const croppedCanvas = document.createElement("canvas");
39
- const croppedCtx = croppedCanvas.getContext("2d");
40
- if (!croppedCtx) {
41
- throw new Error("No 2d context");
42
- }
43
- let targetWidth = pixelCrop.width;
44
- let targetHeight = pixelCrop.height;
45
- if (maxDimension && (targetWidth > maxDimension || targetHeight > maxDimension)) {
46
- const scale = Math.min(maxDimension / targetWidth, maxDimension / targetHeight);
47
- targetWidth = targetWidth * scale;
48
- targetHeight = targetHeight * scale;
49
- }
50
- croppedCanvas.width = targetWidth;
51
- croppedCanvas.height = targetHeight;
52
- if (enableBlurredBackground) {
53
- const scale = Math.max(croppedCanvas.width / image.width, croppedCanvas.height / image.height);
54
- const x = croppedCanvas.width / 2 - image.width / 2 * scale;
55
- const y = croppedCanvas.height / 2 - image.height / 2 * scale;
56
- croppedCtx.save();
57
- croppedCtx.filter = "blur(20px) brightness(0.9)";
58
- croppedCtx.drawImage(
59
- image,
60
- x,
61
- y,
62
- image.width * scale,
63
- image.height * scale
64
- );
65
- croppedCtx.restore();
66
- } else {
67
- croppedCtx.fillStyle = backgroundColor;
68
- croppedCtx.fillRect(0, 0, croppedCanvas.width, croppedCanvas.height);
69
- }
70
- croppedCtx.drawImage(
71
- canvas,
72
- pixelCrop.x,
73
- pixelCrop.y,
74
- pixelCrop.width,
75
- pixelCrop.height,
76
- 0,
77
- 0,
78
- targetWidth,
79
- targetHeight
80
- );
81
- if (watermark) {
82
- try {
83
- const watermarkImg = await createImage(watermark.url);
84
- const scaleX = targetWidth / pixelCrop.width;
85
- const scaleY = targetHeight / pixelCrop.height;
86
- croppedCtx.drawImage(
87
- watermarkImg,
88
- watermark.x * scaleX,
89
- watermark.y * scaleY,
90
- watermark.width * scaleX,
91
- watermark.height * scaleY
92
- );
93
- } catch (e) {
94
- console.error("Failed to load watermark image", e);
95
- }
96
- }
97
- return new Promise((resolve, reject) => {
98
- croppedCanvas.toBlob((blob) => {
99
- if (blob) {
100
- resolve(blob);
101
- } else {
102
- reject(new Error("Canvas is empty"));
103
- }
104
- }, "image/jpeg", quality);
105
- });
106
- }
107
- export {
108
- createImage,
109
- getCroppedImage as default,
110
- getRadianAngle,
111
- rotateSize
112
- };
113
- //# sourceMappingURL=cropImage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cropImage.js","sources":["../../src/lib/cropImage.ts"],"sourcesContent":["export const createImage = (url: string): Promise<HTMLImageElement> =>\r\n new Promise((resolve, reject) => {\r\n const image = new Image()\r\n image.addEventListener('load', () => resolve(image))\r\n image.addEventListener('error', (error) => reject(error))\r\n image.setAttribute('crossOrigin', 'anonymous')\r\n image.src = url\r\n })\r\n\r\nexport function getRadianAngle(degreeValue: number) {\r\n return (degreeValue * Math.PI) / 180\r\n}\r\n\r\n/**\r\n * Returns the new bounding area of a rotated rectangle.\r\n */\r\nexport function rotateSize(width: number, height: number, rotation: number) {\r\n const rotRad = getRadianAngle(rotation)\r\n\r\n return {\r\n width:\r\n Math.abs(Math.cos(rotRad) * width) + Math.abs(Math.sin(rotRad) * height),\r\n height:\r\n Math.abs(Math.sin(rotRad) * width) + Math.abs(Math.cos(rotRad) * height),\r\n }\r\n}\r\n\r\n/**\r\n * This function was adapted from the one in the ReadMe of https://github.com/DominicTobias/react-image-crop\r\n */\r\nexport default async function getCroppedImage(\r\n imageSrc: string,\r\n pixelCrop: { x: number; y: number; width: number; height: number },\r\n rotation = 0,\r\n flip = { horizontal: false, vertical: false },\r\n backgroundColor = 'transparent',\r\n watermark?: { url: string; x: number; y: number; width: number; height: number },\r\n enableBlurredBackground = false,\r\n maxDimension = 2500, // Cap resolution to prevent massive blobs\r\n quality = 0.85 // Default quality\r\n): Promise<Blob> {\r\n const image = await createImage(imageSrc)\r\n const canvas = document.createElement('canvas')\r\n const ctx = canvas.getContext('2d')\r\n\r\n if (!ctx) {\r\n throw new Error('No 2d context')\r\n }\r\n\r\n const rotRad = getRadianAngle(rotation)\r\n\r\n // calculate bounding box of the rotated image\r\n const { width: bBoxWidth, height: bBoxHeight } = rotateSize(\r\n image.width,\r\n image.height,\r\n rotation\r\n )\r\n\r\n // set canvas size to match the bounding box\r\n canvas.width = bBoxWidth\r\n canvas.height = bBoxHeight\r\n\r\n // translate canvas context to a central location to allow rotating and flipping around the center\r\n ctx.translate(bBoxWidth / 2, bBoxHeight / 2)\r\n ctx.rotate(rotRad)\r\n ctx.scale(flip.horizontal ? -1 : 1, flip.vertical ? -1 : 1)\r\n ctx.translate(-image.width / 2, -image.height / 2)\r\n\r\n // draw rotated image\r\n ctx.drawImage(image, 0, 0)\r\n\r\n const croppedCanvas = document.createElement('canvas')\r\n const croppedCtx = croppedCanvas.getContext('2d')\r\n\r\n if (!croppedCtx) {\r\n throw new Error('No 2d context')\r\n }\r\n\r\n // Determine target size based on maxDimension scaling\r\n let targetWidth = pixelCrop.width\r\n let targetHeight = pixelCrop.height\r\n\r\n if (maxDimension && (targetWidth > maxDimension || targetHeight > maxDimension)) {\r\n const scale = Math.min(maxDimension / targetWidth, maxDimension / targetHeight)\r\n targetWidth = targetWidth * scale\r\n targetHeight = targetHeight * scale\r\n }\r\n\r\n // Set the size of the cropped canvas\r\n croppedCanvas.width = targetWidth\r\n croppedCanvas.height = targetHeight\r\n\r\n // Draw background\r\n if (enableBlurredBackground) {\r\n // Draw blurred background\r\n // We want the background to be the same image, but zoomed to cover, and blurred.\r\n\r\n // 1. Draw image to cover\r\n // Calculate scale to cover\r\n const scale = Math.max(croppedCanvas.width / image.width, croppedCanvas.height / image.height)\r\n const x = (croppedCanvas.width / 2) - (image.width / 2) * scale\r\n const y = (croppedCanvas.height / 2) - (image.height / 2) * scale\r\n\r\n // Save context\r\n croppedCtx.save()\r\n croppedCtx.filter = 'blur(20px) brightness(0.9)'\r\n // Draw the full image scaled to cover\r\n croppedCtx.drawImage(\r\n image,\r\n x,\r\n y,\r\n image.width * scale,\r\n image.height * scale\r\n )\r\n // Restore context (remove blur for next draws)\r\n croppedCtx.restore()\r\n\r\n } else {\r\n // Draw solid background color\r\n croppedCtx.fillStyle = backgroundColor\r\n croppedCtx.fillRect(0, 0, croppedCanvas.width, croppedCanvas.height)\r\n }\r\n\r\n // Draw the cropped image onto the new canvas, scaling it if target size changed\r\n croppedCtx.drawImage(\r\n canvas,\r\n pixelCrop.x,\r\n pixelCrop.y,\r\n pixelCrop.width,\r\n pixelCrop.height,\r\n 0,\r\n 0,\r\n targetWidth,\r\n targetHeight\r\n )\r\n\r\n // Draw watermark if exists\r\n if (watermark) {\r\n try {\r\n const watermarkImg = await createImage(watermark.url)\r\n // Scale watermark positions proportionally if target size changed\r\n const scaleX = targetWidth / pixelCrop.width\r\n const scaleY = targetHeight / pixelCrop.height\r\n\r\n croppedCtx.drawImage(\r\n watermarkImg,\r\n watermark.x * scaleX,\r\n watermark.y * scaleY,\r\n watermark.width * scaleX,\r\n watermark.height * scaleY\r\n )\r\n } catch (e) {\r\n console.error('Failed to load watermark image', e)\r\n }\r\n }\r\n\r\n // As Blob\r\n return new Promise((resolve, reject) => {\r\n croppedCanvas.toBlob((blob) => {\r\n if (blob) {\r\n resolve(blob)\r\n } else {\r\n reject(new Error('Canvas is empty'))\r\n }\r\n }, 'image/jpeg', quality)\r\n })\r\n}\r\n"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- const getImageLuminance = (imageSrc) => {
2
- return new Promise((resolve, reject) => {
3
- const img = new Image();
4
- img.crossOrigin = "anonymous";
5
- img.src = imageSrc;
6
- img.onload = () => {
7
- const canvas = document.createElement("canvas");
8
- const ctx = canvas.getContext("2d");
9
- if (!ctx) {
10
- resolve(0);
11
- return;
12
- }
13
- canvas.width = 50;
14
- canvas.height = 50;
15
- ctx.drawImage(img, 0, 0, 50, 50);
16
- const imageData = ctx.getImageData(0, 0, 50, 50);
17
- const data = imageData.data;
18
- let r, g, b, avg;
19
- let colorSum = 0;
20
- for (let x = 0, len = data.length; x < len; x += 4) {
21
- r = data[x];
22
- g = data[x + 1];
23
- b = data[x + 2];
24
- avg = Math.floor((r + g + b) / 3);
25
- colorSum += avg;
26
- }
27
- const brightness = Math.floor(colorSum / (50 * 50));
28
- resolve(brightness);
29
- };
30
- img.onerror = (err) => reject(err);
31
- });
32
- };
33
- const calculateInitialZoom = ({
34
- containerSize,
35
- mediaSize,
36
- cropSize,
37
- allowBothFitting
38
- }) => {
39
- const scaleX = containerSize.width / mediaSize.naturalWidth;
40
- const scaleY = containerSize.height / mediaSize.naturalHeight;
41
- const fitScale = Math.min(scaleX, scaleY);
42
- const displayW = mediaSize.naturalWidth * fitScale;
43
- const displayH = mediaSize.naturalHeight * fitScale;
44
- let targetZoom = 1;
45
- if (allowBothFitting) {
46
- const zoomToFillWidth = cropSize.width / displayW;
47
- const zoomToFillHeight = cropSize.height / displayH;
48
- targetZoom = Math.max(zoomToFillWidth, zoomToFillHeight);
49
- } else {
50
- targetZoom = cropSize.width / displayW;
51
- }
52
- return targetZoom;
53
- };
54
- export {
55
- calculateInitialZoom,
56
- getImageLuminance
57
- };
58
- //# sourceMappingURL=imageAnalysis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"imageAnalysis.js","sources":["../../src/lib/imageAnalysis.ts"],"sourcesContent":["export const getImageLuminance = (imageSrc: string): Promise<number> => {\r\n return new Promise((resolve, reject) => {\r\n const img = new Image()\r\n img.crossOrigin = 'anonymous'\r\n img.src = imageSrc\r\n img.onload = () => {\r\n const canvas = document.createElement('canvas')\r\n const ctx = canvas.getContext('2d')\r\n if (!ctx) {\r\n resolve(0)\r\n return\r\n }\r\n\r\n // Resize to small size for faster processing\r\n canvas.width = 50\r\n canvas.height = 50\r\n\r\n ctx.drawImage(img, 0, 0, 50, 50)\r\n\r\n const imageData = ctx.getImageData(0, 0, 50, 50)\r\n const data = imageData.data\r\n\r\n let r, g, b, avg\r\n let colorSum = 0\r\n\r\n for (let x = 0, len = data.length; x < len; x += 4) {\r\n r = data[x]\r\n g = data[x + 1]\r\n b = data[x + 2]\r\n\r\n avg = Math.floor((r + g + b) / 3)\r\n colorSum += avg\r\n }\r\n\r\n const brightness = Math.floor(colorSum / (50 * 50))\r\n resolve(brightness)\r\n }\r\n img.onerror = (err) => reject(err)\r\n })\r\n}\r\n\r\n\r\nexport const calculateInitialZoom = ({\r\n containerSize,\r\n mediaSize,\r\n cropSize,\r\n allowBothFitting\r\n}: {\r\n containerSize: { width: number; height: number },\r\n mediaSize: { naturalWidth: number; naturalHeight: number },\r\n cropSize: { width: number; height: number },\r\n allowBothFitting: boolean\r\n}): number => {\r\n // 1. Calculate displayed dimensions at Zoom=1 (fit to container)\r\n // react-easy-crop uses 'contain' logic: fits the largest dimension\r\n const scaleX = containerSize.width / mediaSize.naturalWidth\r\n const scaleY = containerSize.height / mediaSize.naturalHeight\r\n const fitScale = Math.min(scaleX, scaleY)\r\n\r\n const displayW = mediaSize.naturalWidth * fitScale\r\n const displayH = mediaSize.naturalHeight * fitScale\r\n\r\n let targetZoom = 1\r\n\r\n if (allowBothFitting) {\r\n // Cover Mode: Fill both dimensions (Logic: max of width/height ratios)\r\n const zoomToFillWidth = cropSize.width / displayW\r\n const zoomToFillHeight = cropSize.height / displayH\r\n\r\n // We want to ensure NO gaps, so we must satisfy the larger requirement\r\n targetZoom = Math.max(zoomToFillWidth, zoomToFillHeight)\r\n } else {\r\n targetZoom = cropSize.width / displayW\r\n }\r\n\r\n return targetZoom\r\n}\r\n\r\n"],"names":[],"mappings":"AAAO,MAAM,oBAAoB,CAAC,aAAsC;AACpE,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,UAAM,MAAM,IAAI,MAAA;AAChB,QAAI,cAAc;AAClB,QAAI,MAAM;AACV,QAAI,SAAS,MAAM;AACf,YAAM,SAAS,SAAS,cAAc,QAAQ;AAC9C,YAAM,MAAM,OAAO,WAAW,IAAI;AAClC,UAAI,CAAC,KAAK;AACN,gBAAQ,CAAC;AACT;AAAA,MACJ;AAGA,aAAO,QAAQ;AACf,aAAO,SAAS;AAEhB,UAAI,UAAU,KAAK,GAAG,GAAG,IAAI,EAAE;AAE/B,YAAM,YAAY,IAAI,aAAa,GAAG,GAAG,IAAI,EAAE;AAC/C,YAAM,OAAO,UAAU;AAEvB,UAAI,GAAG,GAAG,GAAG;AACb,UAAI,WAAW;AAEf,eAAS,IAAI,GAAG,MAAM,KAAK,QAAQ,IAAI,KAAK,KAAK,GAAG;AAChD,YAAI,KAAK,CAAC;AACV,YAAI,KAAK,IAAI,CAAC;AACd,YAAI,KAAK,IAAI,CAAC;AAEd,cAAM,KAAK,OAAO,IAAI,IAAI,KAAK,CAAC;AAChC,oBAAY;AAAA,MAChB;AAEA,YAAM,aAAa,KAAK,MAAM,YAAY,KAAK,GAAG;AAClD,cAAQ,UAAU;AAAA,IACtB;AACA,QAAI,UAAU,CAAC,QAAQ,OAAO,GAAG;AAAA,EACrC,CAAC;AACL;AAGO,MAAM,uBAAuB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAKc;AAGV,QAAM,SAAS,cAAc,QAAQ,UAAU;AAC/C,QAAM,SAAS,cAAc,SAAS,UAAU;AAChD,QAAM,WAAW,KAAK,IAAI,QAAQ,MAAM;AAExC,QAAM,WAAW,UAAU,eAAe;AAC1C,QAAM,WAAW,UAAU,gBAAgB;AAE3C,MAAI,aAAa;AAEjB,MAAI,kBAAkB;AAElB,UAAM,kBAAkB,SAAS,QAAQ;AACzC,UAAM,mBAAmB,SAAS,SAAS;AAG3C,iBAAa,KAAK,IAAI,iBAAiB,gBAAgB;AAAA,EAC3D,OAAO;AACH,iBAAa,SAAS,QAAQ;AAAA,EAClC;AAEA,SAAO;AACX;"}
package/dist/lib/utils.js DELETED
@@ -1,9 +0,0 @@
1
- import { clsx } from "clsx";
2
- import { twMerge } from "tailwind-merge";
3
- function cn(...inputs) {
4
- return twMerge(clsx(inputs));
5
- }
6
- export {
7
- cn
8
- };
9
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sources":["../../src/lib/utils.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx';\r\nimport { twMerge } from 'tailwind-merge';\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs));\r\n}\r\n"],"names":[],"mappings":";;AAGO,SAAS,MAAM,QAAsB;AAC1C,SAAO,QAAQ,KAAK,MAAM,CAAC;AAC7B;"}
@@ -1,60 +0,0 @@
1
- import React__default, { useState, useCallback } from "react";
2
- const hiddenStyles = {
3
- display: "none"
4
- };
5
- function HiddenText(_ref) {
6
- let {
7
- id,
8
- value
9
- } = _ref;
10
- return React__default.createElement("div", {
11
- id,
12
- style: hiddenStyles
13
- }, value);
14
- }
15
- function LiveRegion(_ref) {
16
- let {
17
- id,
18
- announcement,
19
- ariaLiveType = "assertive"
20
- } = _ref;
21
- const visuallyHidden = {
22
- position: "fixed",
23
- top: 0,
24
- left: 0,
25
- width: 1,
26
- height: 1,
27
- margin: -1,
28
- border: 0,
29
- padding: 0,
30
- overflow: "hidden",
31
- clip: "rect(0 0 0 0)",
32
- clipPath: "inset(100%)",
33
- whiteSpace: "nowrap"
34
- };
35
- return React__default.createElement("div", {
36
- id,
37
- style: visuallyHidden,
38
- role: "status",
39
- "aria-live": ariaLiveType,
40
- "aria-atomic": true
41
- }, announcement);
42
- }
43
- function useAnnouncement() {
44
- const [announcement, setAnnouncement] = useState("");
45
- const announce = useCallback((value) => {
46
- if (value != null) {
47
- setAnnouncement(value);
48
- }
49
- }, []);
50
- return {
51
- announce,
52
- announcement
53
- };
54
- }
55
- export {
56
- HiddenText,
57
- LiveRegion,
58
- useAnnouncement
59
- };
60
- //# sourceMappingURL=accessibility.esm.js.map