@licklist/design 0.69.1 → 0.69.3-dev.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 (517) hide show
  1. package/.prettierrc +5 -1
  2. package/dist/affiliate/form/AffiliateForm.d.ts.map +1 -1
  3. package/dist/auth/Login/LoginComponent.js +2 -1
  4. package/dist/events/edit-event-modal/IntervalInput.js +1 -1
  5. package/dist/events/edit-event-modal/component/EditEventForm/EditEventForm.d.ts +2 -1
  6. package/dist/events/edit-event-modal/component/EditEventForm/EditEventForm.d.ts.map +1 -1
  7. package/dist/events/edit-event-modal/component/EditEventForm/EditEventForm.js +3 -2
  8. package/dist/events/edit-event-modal/component/SelectEventProductSet/SelectEventProductSet.d.ts +2 -1
  9. package/dist/events/edit-event-modal/component/SelectEventProductSet/SelectEventProductSet.d.ts.map +1 -1
  10. package/dist/events/edit-event-modal/component/SelectEventProductSet/SelectEventProductSet.js +55 -26
  11. package/dist/events/edit-event-modal/component/SelectEventProductSet/component/EditEventProductSet.js +1 -0
  12. package/dist/events/edit-event-modal/utils/getDefaultProductSet.d.ts.map +1 -1
  13. package/dist/events/edit-event-modal/utils/getDefaultProductSet.js +3 -2
  14. package/dist/iframe/activity-card/ActivityCard.d.ts +5 -4
  15. package/dist/iframe/activity-card/ActivityCard.d.ts.map +1 -1
  16. package/dist/iframe/activity-card/ActivityCard.js +52 -40
  17. package/dist/iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.d.ts.map +1 -1
  18. package/dist/iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.js +13 -0
  19. package/dist/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.d.ts.map +1 -1
  20. package/dist/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.js +2 -0
  21. package/dist/iframe/order-process/components/Timer/Timer.js +1 -1
  22. package/dist/iframe/payment/order-items-table/utils/paymentSummary.d.ts.map +1 -1
  23. package/dist/iframe/ryft/RyftPaymentForm.d.ts +2 -2
  24. package/dist/iframe/ryft/RyftPaymentForm.d.ts.map +1 -1
  25. package/dist/iframe/ryft/RyftPaymentForm.js +8 -2
  26. package/dist/iframe/ryft/utils/ryft-form.d.ts +2 -1
  27. package/dist/iframe/ryft/utils/ryft-form.d.ts.map +1 -1
  28. package/dist/iframe/ryft/utils/ryft-form.js +20 -1
  29. package/dist/index.js +1 -0
  30. package/dist/layout/DropDown.d.ts +2 -1
  31. package/dist/layout/DropDown.d.ts.map +1 -1
  32. package/dist/modals/confirmation/ConfirmModal.d.ts +3 -1
  33. package/dist/modals/confirmation/ConfirmModal.d.ts.map +1 -1
  34. package/dist/modals/confirmation/ConfirmModal.js +172 -8
  35. package/dist/modals/dialog/Dialog.js +2 -2
  36. package/dist/notification/email-template/control/EmailTemplateControl.d.ts.map +1 -1
  37. package/dist/notification/email-template/control/EmailTemplateControl.js +3 -0
  38. package/dist/product-set/card/ProductSetCard.d.ts +6 -2
  39. package/dist/product-set/card/ProductSetCard.d.ts.map +1 -1
  40. package/dist/product-set/card/ProductSetCard.js +30 -11
  41. package/dist/product-set/control/DateInput.d.ts.map +1 -1
  42. package/dist/product-set/control/DateInput.js +2 -2
  43. package/dist/product-set/control/ProductSetControl.d.ts +4 -0
  44. package/dist/product-set/control/ProductSetControl.d.ts.map +1 -1
  45. package/dist/product-set/control/ProductSetControl.js +24 -3
  46. package/dist/product-set/control/ProductSetImageControl.d.ts +2 -0
  47. package/dist/product-set/control/ProductSetImageControl.d.ts.map +1 -0
  48. package/dist/product-set/control/ProductSetImageControl.js +279 -0
  49. package/dist/product-set/form/MobileFooter.d.ts.map +1 -1
  50. package/dist/product-set/form/ProductCategoriesControl.d.ts.map +1 -1
  51. package/dist/product-set/form/ProductCategoriesControl.js +48 -2
  52. package/dist/product-set/form/ProductSetForm.d.ts +4 -1
  53. package/dist/product-set/form/ProductSetForm.d.ts.map +1 -1
  54. package/dist/product-set/form/ProductSetForm.js +64 -1
  55. package/dist/product-set/form/ProductSetNameControl.d.ts +6 -0
  56. package/dist/product-set/form/ProductSetNameControl.d.ts.map +1 -0
  57. package/dist/product-set/form/ProductSetNameControl.js +35 -0
  58. package/dist/product-set/form/ProductZonesControl.d.ts.map +1 -1
  59. package/dist/product-set/form/ProductZonesControl.js +0 -2
  60. package/dist/product-set/form/ProductsControl.js +1 -0
  61. package/dist/product-set/form/SelectCategoryModal.d.ts +12 -0
  62. package/dist/product-set/form/SelectCategoryModal.d.ts.map +1 -1
  63. package/dist/product-set/form/SelectCategoryModal.js +1 -1
  64. package/dist/product-set/form/SubProductsControl.d.ts.map +1 -1
  65. package/dist/product-set/form/SubProductsControl.js +0 -3
  66. package/dist/product-set/form/VenueMapsControl.d.ts.map +1 -1
  67. package/dist/product-set/form/VenueMapsControl.js +0 -3
  68. package/dist/product-set/form/index.d.ts +1 -0
  69. package/dist/product-set/form/index.d.ts.map +1 -1
  70. package/dist/product-set/product/ProductControl.d.ts.map +1 -1
  71. package/dist/product-set/product/booking-management/ProductBookingManagementControl.d.ts.map +1 -1
  72. package/dist/product-set/product/booking-management/ProductBookingManagementControl.js +6 -0
  73. package/dist/product-set/product/deposit/ProductDepositControl.d.ts.map +1 -1
  74. package/dist/product-set/product/deposit/ProductDepositControl.js +3 -0
  75. package/dist/product-set/product/duration/ProductDurationControl.d.ts.map +1 -1
  76. package/dist/product-set/product/duration/ProductDurationControl.js +6 -0
  77. package/dist/product-set/product/price/ProductPriceControl.d.ts.map +1 -1
  78. package/dist/product-set/product/price/ProductPriceControl.js +3 -0
  79. package/dist/product-set/product/quantity/ProductQuantityConstantControl.d.ts.map +1 -1
  80. package/dist/product-set/product/quantity/ProductQuantityConstantControl.js +6 -0
  81. package/dist/product-set/product/quantity/ProductQuantityControl.d.ts.map +1 -1
  82. package/dist/product-set/product/quantity/ProductQuantityControl.js +6 -0
  83. package/dist/product-set/product/quantity/ProductQuantityRechargingControl.d.ts.map +1 -1
  84. package/dist/product-set/product/quantity/ProductQuantityRechargingControl.js +4 -1
  85. package/dist/product-set/product-category/ProductCategoryControl.d.ts.map +1 -1
  86. package/dist/product-set/product-category/ProductCategoryControl.js +12 -0
  87. package/dist/product-set/utils/index.d.ts +7 -0
  88. package/dist/product-set/utils/index.d.ts.map +1 -1
  89. package/dist/product-set/utils/index.js +10 -1
  90. package/dist/recurrence-input/RecurrenceEndInput.d.ts.map +1 -1
  91. package/dist/recurrence-input/RecurrenceEndInput.js +3 -0
  92. package/dist/recurring-date-picker-input/RecurrenceEndInput.d.ts.map +1 -1
  93. package/dist/recurring-date-picker-input/utils.js +6 -4
  94. package/dist/resource/form/components/CapacityControl.d.ts.map +1 -1
  95. package/dist/resource/form/components/CapacityControl.js +3 -0
  96. package/dist/resource/form/components/SortControl.d.ts.map +1 -1
  97. package/dist/resource/form/components/SortControl.js +3 -0
  98. package/dist/root.css +51 -51
  99. package/dist/sales/booking/results/components/ResultCard.d.ts.map +1 -1
  100. package/dist/sales/booking/results/components/ResultCard.js +0 -2
  101. package/dist/sales/coupon/control/CouponFormControl.d.ts.map +1 -1
  102. package/dist/sales/coupon/control/CouponFormControl.js +21 -0
  103. package/dist/sales/manual-booking/search-user/SearchUser.js +1 -1
  104. package/dist/setting/admin/PaymentFeeForm.d.ts.map +1 -1
  105. package/dist/setting/admin/PaymentFeeForm.js +16 -1
  106. package/dist/setting/dashboard/DashboardSettingForm.d.ts.map +1 -1
  107. package/dist/setting/dashboard/DashboardSettingForm.js +4 -1
  108. package/dist/snippet/snippet-template/preview/Preview.d.ts.map +1 -1
  109. package/dist/snippet/snippet-template/preview/Preview.js +6 -0
  110. package/dist/sortable-tree/SortableTreeItem.d.ts +2 -1
  111. package/dist/sortable-tree/SortableTreeItem.d.ts.map +1 -1
  112. package/dist/sortable-tree/SortableTreeItem.js +10 -4
  113. package/dist/static/CurrencyNumberInput.d.ts.map +1 -1
  114. package/dist/static/CurrencyNumberInput.js +3 -0
  115. package/dist/static/form-number-input/FormNumberInput.d.ts.map +1 -1
  116. package/dist/static/form-number-input/FormNumberInput.js +3 -0
  117. package/dist/static/number-input/NumberInput.d.ts.map +1 -1
  118. package/dist/static/number-input/NumberInput.js +3 -0
  119. package/dist/styles/activity-card/{GridActivitiesCard.scss → ActivitiesCard.scss} +19 -5
  120. package/dist/styles/activity-card/ListActivitiesCard.scss +12 -42
  121. package/dist/styles/activity-card/_index.scss +1 -1
  122. package/dist/styles/iframe-external-modal/IframeExternalModal.scss +2 -2
  123. package/dist/styles/product-set/ProductSetForm.scss +22 -0
  124. package/dist/styles/ryft-payment-form/RyftPaymentForm.scss +28 -1
  125. package/dist/styles/sales/BookingResults.scss +1 -1
  126. package/dist/tiptap-editor/TipTapMenu/extensions/constants.d.ts.map +1 -1
  127. package/dist/tiptap-editor/TipTapMenu/extensions/constants.js +1 -1
  128. package/dist/tiptap-editor/TipTapMenu/extensions/utils.js +1 -1
  129. package/dist/typeahead/Typeahead.d.ts +5 -1
  130. package/dist/typeahead/Typeahead.d.ts.map +1 -1
  131. package/dist/typeahead/Typeahead.js +9 -2
  132. package/dist/zone/form/components/GameDurationControl.d.ts.map +1 -1
  133. package/dist/zone/form/components/GameDurationControl.js +3 -0
  134. package/dist/zone/form/components/SortControl.d.ts.map +1 -1
  135. package/dist/zone/form/components/SortControl.js +3 -0
  136. package/package.json +9 -7
  137. package/postcss.config.cjs +2 -2
  138. package/src/affiliate/card/AffiliateCard.tsx +15 -15
  139. package/src/affiliate/form/AffiliateControl.tsx +8 -8
  140. package/src/affiliate/form/AffiliateForm.tsx +6 -5
  141. package/src/auth/AccessDenied/AccessDenied.tsx +8 -8
  142. package/src/auth/ChangePassword/ChangePasswordComponent.tsx +4 -4
  143. package/src/auth/ChangePassword/ChangePasswordFormComponent.tsx +14 -14
  144. package/src/auth/Layout/AuthNavComponent.tsx +6 -6
  145. package/src/auth/Layout/UserNavComponent.tsx +2 -2
  146. package/src/auth/Layout/UserNavDropDown.tsx +1 -1
  147. package/src/auth/Login/LoginComponent.tsx +9 -9
  148. package/src/auth/Login/LoginFormComponent.tsx +15 -15
  149. package/src/auth/Logout/Logout.stories.tsx +2 -2
  150. package/src/auth/Register/BirthDateFormComponent.tsx +17 -17
  151. package/src/auth/Register/RegisterComponent.tsx +7 -7
  152. package/src/auth/Register/RegisterFormComponent.tsx +56 -56
  153. package/src/auth/ResetPassword/ResetPasswordComponent.tsx +3 -3
  154. package/src/auth/ResetPassword/ResetPasswordFormComponent.tsx +13 -13
  155. package/src/auth/Social/SocialCallbackComponent.tsx +3 -3
  156. package/src/auth/Social/SocialFormComponent.tsx +4 -4
  157. package/src/availability-indicator/AvailabilityIndicator.tsx +1 -1
  158. package/src/calendar/Calendar.tsx +2 -2
  159. package/src/calendar/components/CalendarDates/CalendarDates.tsx +2 -2
  160. package/src/calendar/components/CalendarSelect/CalendarSelect.tsx +2 -2
  161. package/src/calendar/components/CalendarWeekdays/CalendarWeekdays.tsx +2 -2
  162. package/src/collapsible-input-group/CollapsibleInputGroup.tsx +6 -6
  163. package/src/custom-fields/CustomFields.stories.tsx +1 -1
  164. package/src/custom-fields/field/FieldItem.tsx +1 -1
  165. package/src/custom-fields/field/SelectFieldModal.tsx +4 -4
  166. package/src/custom-fields/field-set/components/CustomFieldSet/CustomFieldSet.tsx +8 -8
  167. package/src/custom-fields/forms/DropdownForm.tsx +16 -16
  168. package/src/custom-fields/forms/TextInputForm.tsx +6 -6
  169. package/src/customers/components/filter/CustomerFilter.tsx +3 -3
  170. package/src/date-time-button/DateContent.tsx +1 -1
  171. package/src/date-time-button/DateTimeButton.tsx +2 -2
  172. package/src/error/ErrorFallback.tsx +1 -1
  173. package/src/events/edit-event-modal/IntervalInput.tsx +15 -15
  174. package/src/events/edit-event-modal/component/EditEventForm/EditEventForm.stories.tsx +2 -2
  175. package/src/events/edit-event-modal/component/EditEventForm/EditEventForm.tsx +27 -26
  176. package/src/events/edit-event-modal/component/ProductSetShortForm/ProductSetShortForm.tsx +3 -3
  177. package/src/events/edit-event-modal/component/SaleDeadline/SaleDeadline.tsx +11 -11
  178. package/src/events/edit-event-modal/component/SelectEventProductSet/SelectEventProductSet.tsx +94 -89
  179. package/src/events/edit-event-modal/component/SelectEventProductSet/component/EditEventProductSet.tsx +5 -5
  180. package/src/events/edit-event-modal/utils/getDefaultProductSet.ts +2 -1
  181. package/src/events/edit-recurrent-event-modal/EditRecurrentEventModal.stories.tsx +1 -1
  182. package/src/events/edit-recurrent-event-modal/EditRecurrentEventModal.tsx +16 -16
  183. package/src/events/event-card/EventCard.stories.tsx +5 -5
  184. package/src/events/event-card/EventCard.tsx +30 -30
  185. package/src/events/event-card/EventCardSkeleton.tsx +10 -10
  186. package/src/events/event-statistic-modal/EventStatisticModal.stories.tsx +1 -1
  187. package/src/events/event-statistic-modal/EventStatisticModal.tsx +8 -8
  188. package/src/events/event-venue-map/components/Dropdown/Dropdown.tsx +1 -1
  189. package/src/events/event-venue-map/components/Dropdown/components/DropdownWrapper/DropdownWrapper.tsx +3 -3
  190. package/src/events/event-venue-map/components/Dropdown/components/ProductsControl/ProductsControl.tsx +5 -5
  191. package/src/events/event-venue-map/components/Dropdown/components/SelectControl/SelectControl.tsx +10 -10
  192. package/src/events/event-venue-map/components/MapPoint/components/DeleteIcon/DeleteIcon.tsx +1 -1
  193. package/src/events/event-venue-map/components/MapPoint/components/EditIcon/EditIcon.tsx +1 -1
  194. package/src/events/event-venue-map/components/MapPoint/components/PointIcon/PointIcon.tsx +2 -2
  195. package/src/events/event-venue-map/components/MapPoint/components/ProductIcon/ProductIcon.tsx +1 -1
  196. package/src/events/event-venue-map/components/Scrollbars/Scrollbars.tsx +5 -5
  197. package/src/events/event-venue-map/components/VenueMap/VenueMap.tsx +3 -3
  198. package/src/events/event-venue-map/components/ZoomButtons/ZoomButtons.tsx +4 -4
  199. package/src/file-upload/FilePreview.tsx +8 -8
  200. package/src/file-upload/FileUpload.tsx +8 -8
  201. package/src/header/BookeditHeader.tsx +1 -1
  202. package/src/header/Header.stories.tsx +16 -16
  203. package/src/header/Header.tsx +11 -11
  204. package/src/header/LicklistHeader.tsx +1 -1
  205. package/src/header/elements/CompanySelector.tsx +6 -6
  206. package/src/help/example/Example.tsx +12 -12
  207. package/src/help/popover/HelpPopover.tsx +5 -5
  208. package/src/iframe/activity-card/ActivityCard.tsx +38 -27
  209. package/src/iframe/back-button/BackButton.tsx +3 -3
  210. package/src/iframe/custom-fields/components/CustomDateField.stories.tsx +1 -1
  211. package/src/iframe/custom-fields/components/CustomDateField.tsx +7 -7
  212. package/src/iframe/event/event-booking-form/EventBookingForm.tsx +14 -14
  213. package/src/iframe/event/event-booking-products/EventBookingProducts.tsx +3 -3
  214. package/src/iframe/event/event-booking-products/components/AccordionItem/AccordionItem.tsx +10 -10
  215. package/src/iframe/event/event-booking-view/EventBookingView.tsx +1 -1
  216. package/src/iframe/event/event-card/IframeEventCard.stories.tsx +6 -6
  217. package/src/iframe/event/event-card/IframeEventCardSkeleton.tsx +20 -20
  218. package/src/iframe/event/event-card/IframeEventCards.stories.tsx +2 -2
  219. package/src/iframe/event/event-description/EventDescription.stories.tsx +3 -3
  220. package/src/iframe/event/event-description/EventDescription.tsx +10 -10
  221. package/src/iframe/event/event-navigation-footer/EventNavigationFooter.tsx +6 -6
  222. package/src/iframe/event/event-order-short-summary/EventOrderShortSummary.tsx +2 -2
  223. package/src/iframe/event/event-order-short-summary/components/Summary/Summary.tsx +4 -4
  224. package/src/iframe/event/event-order-summary/EventOrderSummary.stories.tsx +1 -1
  225. package/src/iframe/event/event-order-summary/EventOrderSummary.tsx +5 -5
  226. package/src/iframe/event/event-product-sets/EventProductSets.stories.tsx +1 -1
  227. package/src/iframe/event/event-product-sets/EventProductSets.tsx +1 -1
  228. package/src/iframe/event/event-product-sets/components/EventProductSet.tsx +1 -1
  229. package/src/iframe/event/event-step-venue-map-zones/EventStepVenueMapZones.tsx +1 -1
  230. package/src/iframe/event/event-step-venue-map-zones/components/EventStepVenueMapZone.tsx +3 -3
  231. package/src/iframe/event/event-tables/EventTables.stories.tsx +1 -1
  232. package/src/iframe/event/event-tables/EventTables.tsx +5 -5
  233. package/src/iframe/event/event-venue-map/IframeEventVenueMap.stories.tsx +4 -4
  234. package/src/iframe/event/event-venue-map/IframeEventVenueMap.tsx +1 -1
  235. package/src/iframe/event/ticket-description/TicketDescription.stories.tsx +6 -6
  236. package/src/iframe/event/ticket-description/TicketDescription.tsx +7 -7
  237. package/src/iframe/external-modal/ExternalModal.tsx +7 -7
  238. package/src/iframe/order-process/components/BookingSummary/BookingSummary.stories.tsx +8 -8
  239. package/src/iframe/order-process/components/BookingSummary/BookingSummary.tsx +23 -23
  240. package/src/iframe/order-process/components/BookingSummary/components/BookingSummaryAccordion/BookingSummaryAccordion.tsx +1 -1
  241. package/src/iframe/order-process/components/BookingSummary/components/ProductSummary/ProductSummary.tsx +6 -6
  242. package/src/iframe/order-process/components/BookingSummary/components/ProductsByMenuStep/ProductsByMenuStep.tsx +3 -3
  243. package/src/iframe/order-process/components/BookingSummary/components/SummaryTotal/SummaryTotal.tsx +1 -1
  244. package/src/iframe/order-process/components/BookingSummary/components/SummaryTotal/components/SummaryTotalBlock.tsx +2 -2
  245. package/src/iframe/order-process/components/BookingSummary/components/ToggleHeader/ToggleHeader.tsx +9 -9
  246. package/src/iframe/order-process/components/BookingSummaryFooter/BookingSummaryFooter.tsx +3 -3
  247. package/src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.stories.tsx +5 -5
  248. package/src/iframe/order-process/components/CalendarStepsForm/CalendarStepsForm.tsx +3 -3
  249. package/src/iframe/order-process/components/CalendarStepsForm/components/Category.tsx +1 -1
  250. package/src/iframe/order-process/components/CalendarStepsForm/components/CategoryProductModal.tsx +3 -3
  251. package/src/iframe/order-process/components/CategoryProduct/CategoryProduct.tsx +7 -7
  252. package/src/iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.stories.tsx +1 -1
  253. package/src/iframe/order-process/components/CategoryProduct/components/NumberInput/NumberInput.tsx +13 -4
  254. package/src/iframe/order-process/components/CategoryProduct/components/ProductQuantityInput/ProductQuantityInput.tsx +3 -2
  255. package/src/iframe/order-process/components/ErrorModal/ErrorModal.tsx +8 -8
  256. package/src/iframe/order-process/components/NavigationFooter/NavigationFooter.tsx +4 -4
  257. package/src/iframe/order-process/components/NavigationSteps/NavigationSteps.stories.tsx +1 -1
  258. package/src/iframe/order-process/components/NavigationSteps/NavigationSteps.tsx +6 -6
  259. package/src/iframe/order-process/components/PaymentCard/PaymentCard.stories.tsx +2 -2
  260. package/src/iframe/order-process/components/PaymentCard/PaymentCard.tsx +9 -9
  261. package/src/iframe/order-process/components/Timer/Timer.stories.tsx +2 -2
  262. package/src/iframe/order-process/components/Timer/Timer.tsx +6 -6
  263. package/src/iframe/page/Page.stories.tsx +4 -4
  264. package/src/iframe/page/Page.tsx +1 -1
  265. package/src/iframe/page/components/PageBody/components/LeftBlock/LeftBlock.tsx +2 -2
  266. package/src/iframe/page/components/PageBody/components/RightBlock/RightBlock.tsx +2 -2
  267. package/src/iframe/page/components/PageHeader/PageHeader.tsx +6 -6
  268. package/src/iframe/payment/order-items-table/OrderItemsTable.stories.tsx +2 -2
  269. package/src/iframe/payment/order-items-table/OrderItemsTable.tsx +2 -2
  270. package/src/iframe/payment/order-items-table/hooks/useTableData.tsx +3 -3
  271. package/src/iframe/payment/order-items-table/utils/paymentSummary.tsx +1 -0
  272. package/src/iframe/payment/payment-form/PaymentForm.stories.tsx +5 -5
  273. package/src/iframe/payment/payment-form/PaymentForm.tsx +12 -12
  274. package/src/iframe/payment/payment-page/PaymentPage.tsx +5 -5
  275. package/src/iframe/payment/payment-status-header/PaymentStatusHeader.stories.tsx +2 -2
  276. package/src/iframe/payment/payment-status-header/PaymentStatusHeader.tsx +2 -2
  277. package/src/iframe/payment/payment-status-page/PaymentStatusComponent.stories.tsx +2 -2
  278. package/src/iframe/payment/payment-status-page/PaymentStatusPage.tsx +2 -2
  279. package/src/iframe/payment/status-body/StatusBody.tsx +3 -3
  280. package/src/iframe/powered-by/PoweredBy.tsx +4 -4
  281. package/src/iframe/ryft/RyftPaymentForm.tsx +24 -16
  282. package/src/iframe/ryft/utils/ryft-form.ts +26 -2
  283. package/src/image-radio-input/ImageRadioInput.tsx +5 -5
  284. package/src/layout/BackgroundVideoContainer.tsx +2 -2
  285. package/src/layout/Container.tsx +1 -1
  286. package/src/layout/DropDown.tsx +1 -1
  287. package/src/layout/Layout.stories.tsx +5 -5
  288. package/src/logo/Logo.tsx +2 -2
  289. package/src/modals/confirmation/ConfirmModal.tsx +32 -16
  290. package/src/modals/dialog/Dialog.tsx +10 -10
  291. package/src/modals/fullscreen/FullscreenModal.tsx +10 -10
  292. package/src/modals/fullscreen/FulscreenModal.stories.tsx +2 -2
  293. package/src/notification/components/NotificationPlaceholders.tsx +5 -5
  294. package/src/notification/email-template/card/EmailTemplateCard.tsx +10 -10
  295. package/src/notification/email-template/control/EmailTemplateControl.tsx +30 -29
  296. package/src/notification/email-template/form/EmailTemplateForm.tsx +3 -3
  297. package/src/notification/send-email-template/SendEmailTemplateForm.tsx +11 -11
  298. package/src/notification/sms-template/card/SmsTemplateCard.tsx +9 -9
  299. package/src/notification/sms-template/control/SmsTemplateControl.tsx +15 -15
  300. package/src/notification/sms-template/form/SmsTemplateForm.tsx +1 -1
  301. package/src/number-of-people-input/components/RenderNumberOfPeopleInputComponent.tsx +6 -6
  302. package/src/product-set/card/ProductSetCard.tsx +63 -24
  303. package/src/product-set/control/DateAndRecurrenceInput.tsx +10 -10
  304. package/src/product-set/control/DateInput.tsx +12 -11
  305. package/src/product-set/control/ProductSetControl.stories.tsx +2 -2
  306. package/src/product-set/control/ProductSetControl.tsx +66 -72
  307. package/src/product-set/control/ProductSetImageControl.tsx +97 -0
  308. package/src/product-set/control/ProductSetRecurrenceControl.stories.tsx +1 -1
  309. package/src/product-set/control/ProductSetRecurrenceControl.tsx +10 -10
  310. package/src/product-set/control/ProductSetRecurrenceOverridesControl.tsx +9 -9
  311. package/src/product-set/control/TutorialGifCard.tsx +10 -10
  312. package/src/product-set/deposit-paid/ProductSetDepositPaid.stories.tsx +2 -2
  313. package/src/product-set/deposit-paid/ProductSetDepositPaidControl.tsx +9 -9
  314. package/src/product-set/elements/DeleteFieldButton.tsx +3 -3
  315. package/src/product-set/form/MobileFooter.tsx +3 -4
  316. package/src/product-set/form/ProductCategoriesControl.tsx +43 -7
  317. package/src/product-set/form/ProductSetForm.tsx +28 -6
  318. package/src/product-set/form/ProductSetFormPopover.tsx +4 -4
  319. package/src/product-set/form/ProductSetNameControl.tsx +27 -0
  320. package/src/product-set/form/ProductZonesControl.tsx +5 -8
  321. package/src/product-set/form/ProductsControl.tsx +4 -4
  322. package/src/product-set/form/SelectCategoryModal.tsx +24 -24
  323. package/src/product-set/form/StepsControl.tsx +5 -5
  324. package/src/product-set/form/SubProductsControl.tsx +1 -4
  325. package/src/product-set/form/VenueMapSetModal.tsx +16 -16
  326. package/src/product-set/form/VenueMapsControl.tsx +9 -12
  327. package/src/product-set/form/index.ts +1 -0
  328. package/src/product-set/item/CreateProductSetItem.tsx +2 -2
  329. package/src/product-set/popover/ProductSetPopover.stories.tsx +7 -7
  330. package/src/product-set/popover/ProductSetPopover.tsx +5 -5
  331. package/src/product-set/product/Product.stories.tsx +4 -4
  332. package/src/product-set/product/ProductControl.tsx +19 -20
  333. package/src/product-set/product/advanced-options/AdvancedOptions.tsx +11 -11
  334. package/src/product-set/product/booking-management/ProductBookingManagement.stories.tsx +1 -1
  335. package/src/product-set/product/booking-management/ProductBookingManagementControl.tsx +11 -9
  336. package/src/product-set/product/deposit/ProductDeposit.stories.tsx +1 -1
  337. package/src/product-set/product/deposit/ProductDepositControl.tsx +5 -4
  338. package/src/product-set/product/duration/ProductDurationControl.stories.tsx +1 -1
  339. package/src/product-set/product/duration/ProductDurationControl.tsx +12 -10
  340. package/src/product-set/product/fixed-duration-fields/FixedDurationOptions.tsx +1 -1
  341. package/src/product-set/product/price/ProductPrice.stories.tsx +1 -1
  342. package/src/product-set/product/price/ProductPriceControl.tsx +5 -4
  343. package/src/product-set/product/quantity/ProductQuantity.stories.tsx +3 -3
  344. package/src/product-set/product/quantity/ProductQuantityConstantControl.tsx +12 -10
  345. package/src/product-set/product/quantity/ProductQuantityControl.tsx +10 -8
  346. package/src/product-set/product/quantity/ProductQuantityRechargingControl.tsx +4 -3
  347. package/src/product-set/product-category/ProductCategory.stories.tsx +4 -4
  348. package/src/product-set/product-category/ProductCategoryControl.tsx +31 -27
  349. package/src/product-set/product-zone/ProductZoneControl.tsx +7 -7
  350. package/src/product-set/step/Step.stories.tsx +1 -1
  351. package/src/product-set/step/StepControl.tsx +5 -5
  352. package/src/product-set/tabs/ProductSetTabs.stories.tsx +3 -3
  353. package/src/product-set/tabs/ProductSetTabs.tsx +1 -1
  354. package/src/product-set/utils/index.ts +11 -0
  355. package/src/provider/categories-input/CategoriesInput.tsx +9 -9
  356. package/src/provider/categories-input/CategoriesInputDescription.tsx +4 -4
  357. package/src/provider/company/user-form/UserForm.tsx +9 -9
  358. package/src/provider/location-input/LocationInput.tsx +11 -11
  359. package/src/provider/location-input/LocationInputDescription.tsx +1 -1
  360. package/src/provider/location-input/components/FormGroupControll.tsx +1 -1
  361. package/src/provider/provider-details-input/ProviderDetailsInput.tsx +18 -18
  362. package/src/provider/provider-form/ProviderForm.tsx +11 -11
  363. package/src/provider/provider-links-input/ProviderLinksInput.tsx +4 -4
  364. package/src/provider/venue-form/VenueForm.tsx +12 -12
  365. package/src/provider/working-hours-input/WorkingHoursInput.tsx +13 -13
  366. package/src/provider/working-hours-input/WorkingHoursInputDescription.tsx +1 -1
  367. package/src/radio-card/RadioCard.tsx +3 -3
  368. package/src/recurrence-input/RecurrenceEndInput.tsx +13 -12
  369. package/src/recurrence-input/RecurrenceIntervalAndFrequencyInput.tsx +6 -6
  370. package/src/recurrence-input/RecurrenceMonthlyRepeatByInput.tsx +4 -4
  371. package/src/recurrence-input/RecurrenceWeekdaysInput.tsx +4 -4
  372. package/src/recurring-date-picker-input/DatePickerInput.tsx +3 -3
  373. package/src/recurring-date-picker-input/RecurrenceAndFrequencyInput.tsx +8 -8
  374. package/src/recurring-date-picker-input/RecurrenceEndInput.tsx +13 -12
  375. package/src/recurring-date-picker-input/RecurrenceIntervalAndFrequencyInput.tsx +10 -10
  376. package/src/recurring-date-picker-input/RecurrenceMonthlyRepeatByInput.tsx +4 -4
  377. package/src/recurring-date-picker-input/RecurrenceWeekdaysInput.tsx +6 -6
  378. package/src/recurring-date-picker-input/RecurringDatePickerInput.tsx +4 -4
  379. package/src/recurring-date-picker-input/utils.ts +4 -4
  380. package/src/report/DataFieldsSelector/DataFieldsSelector.tsx +6 -6
  381. package/src/report/ReportRunnerModal/ReportRunnerModal.tsx +23 -23
  382. package/src/report/ReportTypeSelect/ReportTypeSelect.tsx +9 -9
  383. package/src/report/card/ReportCard.tsx +3 -3
  384. package/src/report/form/ReportForm.tsx +9 -9
  385. package/src/resource/form/ResourceForm.tsx +4 -4
  386. package/src/resource/form/components/CapacityControl.tsx +3 -2
  387. package/src/resource/form/components/NameControl.tsx +1 -1
  388. package/src/resource/form/components/SortControl.tsx +3 -2
  389. package/src/resource/form/components/ZoneControl.tsx +3 -3
  390. package/src/root.css +51 -51
  391. package/src/sales/booking/results/BookingResults.tsx +2 -2
  392. package/src/sales/booking/results/components/ResultCard.tsx +8 -10
  393. package/src/sales/coupon/control/CouponFormControl.tsx +31 -24
  394. package/src/sales/coupon/form/CouponFrom.tsx +3 -3
  395. package/src/sales/filters/SaleFilters.tsx +3 -3
  396. package/src/sales/guest-profile/previous-bookings/PreviousBookings.tsx +12 -12
  397. package/src/sales/guest-profile/profile/Profile.tsx +6 -6
  398. package/src/sales/guest-profile/profile/components/ImageHolder/ImageHolder.tsx +1 -1
  399. package/src/sales/guest-profile/user-metrics/UserMetrics.tsx +34 -34
  400. package/src/sales/guest-profile/visited-providers/VisitedProviders.tsx +10 -10
  401. package/src/sales/life-time-sales/LifeTimeSalesChart.tsx +8 -8
  402. package/src/sales/manual-booking/number-input-horizontal/NumberInputHorizontal.stories.tsx +1 -1
  403. package/src/sales/manual-booking/number-input-horizontal/NumberInputHorizontal.tsx +3 -3
  404. package/src/sales/manual-booking/search-user/SearchUser.tsx +8 -8
  405. package/src/sales/manual-booking/select-date-type-control/SelectDateTypeControl.tsx +10 -10
  406. package/src/sales/manual-booking/select-event/SelectEvent.tsx +13 -13
  407. package/src/sales/manual-booking/select-menu/SelectMenu.tsx +5 -5
  408. package/src/sales/manual-booking/select-menu/components/MenuButton.tsx +2 -2
  409. package/src/sales/manual-booking/summary/ManualBookingSummary.tsx +11 -11
  410. package/src/sales/modals/payment-modal/PaymentModal.tsx +10 -10
  411. package/src/sales/modals/refund-modal/RefundModal.stories.tsx +1 -1
  412. package/src/sales/modals/refund-modal/RefundModal.tsx +11 -11
  413. package/src/sales/notes/NotesTable.tsx +5 -5
  414. package/src/sales/notes/NotesTableRow.tsx +13 -13
  415. package/src/sales/notes/note-form/NoteForm.tsx +11 -11
  416. package/src/sales/payment-form/SalePaymentForm.tsx +5 -5
  417. package/src/sales/payment-form/components/RyftPayment/RyftPayment.tsx +9 -9
  418. package/src/sales/sales-and-views/SalesAndViewsChart.tsx +19 -19
  419. package/src/sales/source-of-sales/SourceOfSalesChart.tsx +9 -9
  420. package/src/sales/statistics-chart/StatisticsChart.tsx +4 -4
  421. package/src/setting/admin/AdminSettingForm.tsx +14 -14
  422. package/src/setting/admin/PaymentFeeForm.tsx +33 -28
  423. package/src/setting/dashboard/DashboardSettingForm.tsx +17 -16
  424. package/src/setting/dashboard/EventSettingForm.tsx +3 -3
  425. package/src/setting/dashboard/FinancialDataForm.tsx +5 -5
  426. package/src/setting/dashboard/OtherSettingForm.tsx +29 -29
  427. package/src/setting/dashboard/ProviderSettingForm.tsx +3 -3
  428. package/src/setting/dashboard/components/IpInput.tsx +10 -10
  429. package/src/setting/dashboard/payments/payments-form/PaymentsForm.tsx +8 -8
  430. package/src/setting/dashboard/payments/payments-modal/PaymentsModal.tsx +4 -4
  431. package/src/setting/dashboard/snippet-templates/card/SnippetTemplateCard.tsx +8 -8
  432. package/src/setting/dashboard/snippets/card/SnippetCard.tsx +16 -16
  433. package/src/setting/system/SystemSettingForm.tsx +8 -8
  434. package/src/sidebar/elements/Elements.stories.tsx +1 -1
  435. package/src/sidebar/elements/ReturnBack.tsx +3 -3
  436. package/src/slide-curtain/SlideCurtain.stories.tsx +1 -1
  437. package/src/slide-curtain/SlideCurtain.tsx +4 -4
  438. package/src/snippet/snippet-template/SnippetTemplate.tsx +3 -3
  439. package/src/snippet/snippet-template/context/snippetTemplate.tsx +2 -2
  440. package/src/snippet/snippet-template/control/PropertyControl.tsx +8 -8
  441. package/src/snippet/snippet-template/form/SnippetTemplateForm.tsx +7 -7
  442. package/src/snippet/snippet-template/preview/Preview.tsx +72 -66
  443. package/src/snippet/snippet-template/settings/SettingButton.tsx +2 -2
  444. package/src/sortable-fields/SortableFieldItem.tsx +2 -2
  445. package/src/sortable-list/CreateSortableListItem.tsx +3 -3
  446. package/src/sortable-tree/SortableTreeItem.stories.tsx +2 -2
  447. package/src/sortable-tree/SortableTreeItem.tsx +46 -40
  448. package/src/sorting-select/SortingSelect.tsx +4 -4
  449. package/src/static/CountryCodeSelect.tsx +4 -4
  450. package/src/static/CountrySelect.tsx +5 -5
  451. package/src/static/CurrencyNumberInput.tsx +6 -5
  452. package/src/static/RestrictedAccess.tsx +6 -6
  453. package/src/static/SocialButton.tsx +1 -1
  454. package/src/static/Static.stories.tsx +24 -24
  455. package/src/static/UserBadge.tsx +7 -7
  456. package/src/static/WarningMessage.tsx +2 -2
  457. package/src/static/date-range-input/DateRangeInput.stories.tsx +1 -1
  458. package/src/static/date-range-input/DateRangeInput.tsx +12 -12
  459. package/src/static/form-number-input/FormNumberInput.stories.tsx +1 -1
  460. package/src/static/form-number-input/FormNumberInput.tsx +5 -4
  461. package/src/static/images/Images.stories.tsx +1 -1
  462. package/src/static/loader/BlockLoader.tsx +2 -2
  463. package/src/static/loader/ButtonLoader.tsx +1 -1
  464. package/src/static/loader/Loader.stories.tsx +2 -2
  465. package/src/static/loader/PaymentLoader.tsx +4 -4
  466. package/src/static/loader/SnippetLoader.tsx +2 -2
  467. package/src/static/manual-date-picker/ManualDatePicker.tsx +9 -9
  468. package/src/static/number-input/NumberInput.tsx +7 -6
  469. package/src/static/switch/Switch.stories.tsx +3 -3
  470. package/src/static/switch/Switch.tsx +4 -4
  471. package/src/static/tabs/Tabs.tsx +1 -1
  472. package/src/static/text-expand/TextExpand.tsx +3 -3
  473. package/src/striped-static-table/StripedStaticTable.tsx +2 -2
  474. package/src/styles/activity-card/{GridActivitiesCard.scss → ActivitiesCard.scss} +19 -5
  475. package/src/styles/activity-card/ListActivitiesCard.scss +12 -42
  476. package/src/styles/activity-card/_index.scss +1 -1
  477. package/src/styles/iframe-external-modal/IframeExternalModal.scss +2 -2
  478. package/src/styles/product-set/ProductSetForm.scss +22 -0
  479. package/src/styles/ryft-payment-form/RyftPaymentForm.scss +28 -1
  480. package/src/styles/sales/BookingResults.scss +1 -1
  481. package/src/table/FilterHelperComponent.tsx +10 -10
  482. package/src/table/MenuButton.tsx +1 -1
  483. package/src/table/PaginationHelperComponent.tsx +7 -7
  484. package/src/table/PerPageHelperComponent.tsx +5 -5
  485. package/src/table/ReactTableHelperComponent.tsx +1 -1
  486. package/src/table/TableHelperComponent.tsx +1 -1
  487. package/src/theme/Theme.stories.tsx +36 -36
  488. package/src/tiptap-editor/TipTapEditor.tsx +1 -1
  489. package/src/tiptap-editor/TipTapMenu/TipTapMenu.tsx +21 -21
  490. package/src/tiptap-editor/TipTapMenu/components/TipTapMenuItem.tsx +2 -2
  491. package/src/tiptap-editor/TipTapMenu/extensions/constants.ts +2 -1
  492. package/src/tiptap-editor/TipTapMenu/extensions/utils.ts +2 -2
  493. package/src/typeahead/Typeahead.stories.tsx +3 -3
  494. package/src/typeahead/Typeahead.tsx +15 -1
  495. package/src/typeahead-helper/TypeaheadHelperComponent.tsx +4 -4
  496. package/src/venue-map-sets/card/VenueMapSetCard.tsx +14 -14
  497. package/src/venue-map-sets/form/VenueMapSetForm.tsx +3 -3
  498. package/src/venue-map-sets/form/components/NameControl.tsx +1 -1
  499. package/src/venue-map-sets/form/components/VenueMapControl.tsx +8 -8
  500. package/src/venue-map-sets/form/components/VenueMapImageControl.tsx +5 -5
  501. package/src/venue-map-sets/form/components/VenueMapModal.tsx +16 -16
  502. package/src/venue-map-sets/form/components/VenueMapsControl.tsx +1 -1
  503. package/src/virtualized/components/VirtualizedGrid.tsx +1 -1
  504. package/src/zone/card/ZoneCard.tsx +14 -14
  505. package/src/zone/form/ZoneForm.tsx +3 -3
  506. package/src/zone/form/components/AvailableTimesControl.tsx +4 -4
  507. package/src/zone/form/components/DescriptionControl.tsx +2 -2
  508. package/src/zone/form/components/GameDurationControl.tsx +3 -2
  509. package/src/zone/form/components/NameControl.tsx +1 -1
  510. package/src/zone/form/components/SortControl.tsx +3 -2
  511. package/src/zone/form/components/ZoneControl.tsx +1 -1
  512. package/src/zone/form/components/ZoneImageControl.tsx +3 -3
  513. package/src/zone/form/components/ZoneRecurrenceControl.tsx +10 -10
  514. package/src/zone/form/components/ZoneRecurrencesControl.tsx +10 -10
  515. package/src/zone/form/components/ZoneTypeControl.tsx +2 -2
  516. package/tailwind.config.js +3 -6
  517. package/yarn.lock +95 -69
@@ -217,8 +217,8 @@ export const DateAndRecurrenceInput = ({
217
217
  <OverlayTrigger
218
218
  show={isDatePopoverVisible}
219
219
  overlay={
220
- <Popover id={popoverId} className="rounded">
221
- <Popover.Content className="shadow-lg rounded" ref={popoverRef}>
220
+ <Popover id={popoverId} className='rounded'>
221
+ <Popover.Content className='shadow-lg rounded' ref={popoverRef}>
222
222
  <RecurringDatePickerInput
223
223
  defaultValues={editState.values}
224
224
  onChange={handleRecurringDateChange}
@@ -247,11 +247,11 @@ export const DateAndRecurrenceInput = ({
247
247
  </Popover.Content>
248
248
  </Popover>
249
249
  }
250
- trigger="click"
251
- placement="bottom"
250
+ trigger='click'
251
+ placement='bottom'
252
252
  popperConfig={{ modifiers: [sameWidthPopperModifier] }}
253
253
  >
254
- <div className="product-set-recurrences">
254
+ <div className='product-set-recurrences'>
255
255
  <DndContext
256
256
  onDragEnd={handleOnDragEnd}
257
257
  modifiers={[restrictToVerticalAxis]}
@@ -279,22 +279,22 @@ export const DateAndRecurrenceInput = ({
279
279
 
280
280
  {(!isEventEditProductSet || fields?.length < 1) && (
281
281
  <div
282
- className="product-set-recurrence-icon-wrapper"
283
- role="button"
282
+ className='product-set-recurrence-icon-wrapper'
283
+ role='button'
284
284
  tabIndex={0}
285
285
  onClick={handleOnAdd}
286
286
  onKeyDown={handleOnAdd}
287
287
  >
288
288
  <FaPlusCircle
289
289
  size={16}
290
- className="product-set-recurrence-icon-add mr-2"
290
+ className='product-set-recurrence-icon-add mr-2'
291
291
  />
292
292
  {t('addDates')}
293
293
  </div>
294
294
  )}
295
295
 
296
296
  <Form.Control
297
- type="hidden"
297
+ type='hidden'
298
298
  {...register('menuRecurrences', {
299
299
  required: {
300
300
  value: true,
@@ -306,7 +306,7 @@ export const DateAndRecurrenceInput = ({
306
306
  })}
307
307
  />
308
308
 
309
- <div className="manual-form-error">
309
+ <div className='manual-form-error'>
310
310
  {errors.menuRecurrences?.message}
311
311
  </div>
312
312
  </div>
@@ -208,8 +208,8 @@ export const DateInput = ({
208
208
  <OverlayTrigger
209
209
  show={isDatePopoverVisible}
210
210
  overlay={
211
- <Popover id={popoverId} className="rounded">
212
- <Popover.Content className="shadow-lg rounded" ref={popoverRef}>
211
+ <Popover id={popoverId} className='rounded'>
212
+ <Popover.Content className='shadow-lg rounded' ref={popoverRef}>
213
213
  <DatePickerInput
214
214
  defaultValues={editState.values}
215
215
  onChange={handleRecurringDateChange}
@@ -236,32 +236,33 @@ export const DateInput = ({
236
236
  </Popover.Content>
237
237
  </Popover>
238
238
  }
239
- trigger="click"
240
- placement="bottom"
239
+ trigger='click'
240
+ placement='bottom'
241
241
  popperConfig={{ modifiers: [sameWidthPopperModifier] }}
242
242
  >
243
- <div className="product-set-recurrences">
243
+ <div className='product-set-recurrences'>
244
244
  {fields.map((menuRecurrence, index) => (
245
245
  <ProductSetRecurrenceOverridesControl
246
246
  key={menuRecurrence._id}
247
247
  menuRecurrence={menuRecurrence}
248
248
  onEdit={() => handleOnEdit(menuRecurrence, index)}
249
249
  errorMessage={
250
- errors?.menuRecurrences?.[`${index}`]?.availableTimes?.message
250
+ errors?.menuRecurrences?.[`${index}`]?.availableTimes
251
+ ?.message || errors?.menuRecurrences?.[`${index}`]?.message
251
252
  }
252
253
  />
253
254
  ))}
254
255
  {fields.length < MAX_QUANTITY_RECURRENCE_DATE_IN_OVERRIDE && (
255
256
  <div
256
- className="product-set-recurrence-icon-wrapper"
257
- role="button"
257
+ className='product-set-recurrence-icon-wrapper'
258
+ role='button'
258
259
  tabIndex={0}
259
260
  onClick={handleOnAdd}
260
261
  onKeyDown={handleOnAdd}
261
262
  >
262
263
  <FaPlusCircle
263
264
  size={16}
264
- className="product-set-recurrence-icon-add mr-2"
265
+ className='product-set-recurrence-icon-add mr-2'
265
266
  />
266
267
 
267
268
  {t('addDates')}
@@ -269,7 +270,7 @@ export const DateInput = ({
269
270
  )}
270
271
 
271
272
  <Form.Control
272
- type="hidden"
273
+ type='hidden'
273
274
  {...register('menuRecurrences', {
274
275
  required: {
275
276
  value: true,
@@ -281,7 +282,7 @@ export const DateInput = ({
281
282
  })}
282
283
  />
283
284
 
284
- <div className="manual-form-error">
285
+ <div className='manual-form-error'>
285
286
  {errors.menuRecurrences?.message}
286
287
  </div>
287
288
  </div>
@@ -28,7 +28,7 @@ export const Default: Story<DefaultProductSetControl> = (args) => {
28
28
  return (
29
29
  <FormProvider {...form}>
30
30
  <Form
31
- className="d-flex flex-column"
31
+ className='d-flex flex-column'
32
32
  noValidate
33
33
  onSubmit={form.handleSubmit(onSubmit)}
34
34
  >
@@ -49,7 +49,7 @@ export const Empty: Story<DefaultProductSetControl> = (args) => {
49
49
  return (
50
50
  <FormProvider {...form}>
51
51
  <Form
52
- className="d-flex flex-column"
52
+ className='d-flex flex-column'
53
53
  noValidate
54
54
  onSubmit={form.handleSubmit(onSubmit)}
55
55
  >
@@ -22,12 +22,11 @@ import HookFormService from '@licklist/plugins/dist/services/Form/HookFormServic
22
22
  import { ruleForUrlWithProtocol } from '@licklist/plugins/dist/validation/Rules/urlRule'
23
23
  import { WorkHour } from '@licklist/core/dist/DataMapper/Provider/WorkHourDataMapper'
24
24
  import { checkIfZoneCategory } from '@licklist/plugins'
25
+ import { Image } from '@licklist/core/dist/DataMapper/Media/ImageDataMapper'
25
26
  import { WarningMessage } from '../../static'
26
27
  import { SelectItem } from '../../types/generic/SelectItem'
27
28
  import {
28
29
  DateAndRecurrenceInput,
29
- // TODO: Show Date Component, when reccurent date bugs are fixed
30
- // DateAndRecurrenceInput,
31
30
  DateAndRecurrenceInputValues,
32
31
  } from './DateAndRecurrenceInput'
33
32
  import TutorialGifCard from './TutorialGifCard'
@@ -35,6 +34,7 @@ import { Step } from '../types'
35
34
  import { StepsControl } from '../form/StepsControl'
36
35
  import { Typeahead } from '../../typeahead'
37
36
  import { DateInput } from './DateInput'
37
+ import { ProductSetImageControl } from './ProductSetImageControl'
38
38
 
39
39
  const OPERATIONAL_COST_TITLES = {
40
40
  [OPERATIONAL_COST_PROVIDER]: 'operationalCostProvider',
@@ -47,6 +47,8 @@ const RELY_ON_PEOPLE_TYPE_TITLES = {
47
47
  [RELY_ON_PEOPLE_QUANTITY]: 'peopleQuantity',
48
48
  }
49
49
 
50
+ const MAX_DESCRIPTION_LENGTH = 500
51
+
50
52
  export interface TemplateItem {
51
53
  id: string
52
54
  value: EmailTemplate | SmsTemplate
@@ -55,6 +57,8 @@ export interface TemplateItem {
55
57
 
56
58
  export interface ProductSetControlValues extends DateAndRecurrenceInputValues {
57
59
  name: string
60
+ description?: string
61
+ image?: Image
58
62
  type: ProductSetType
59
63
  termsAndConditions: string
60
64
  thankYouPageUrl: string
@@ -65,6 +69,7 @@ export interface ProductSetControlValues extends DateAndRecurrenceInputValues {
65
69
  steps: Step[]
66
70
  emailTemplates?: TemplateItem[]
67
71
  smsTemplates?: TemplateItem[]
72
+ localImageBlobURL?: string
68
73
  }
69
74
 
70
75
  export interface ProductSetControlShared {
@@ -122,6 +127,7 @@ export function ProductSetControl({
122
127
  const steps = watch('steps')
123
128
 
124
129
  const nameId = useId()
130
+ const descriptionId = useId()
125
131
  const termsAndConditionsId = useId()
126
132
  const relyOnPeopleTypeId = useId()
127
133
 
@@ -139,7 +145,7 @@ export function ProductSetControl({
139
145
  isEventEditProductSet && 'event-edit-product-set'
140
146
  }`}
141
147
  >
142
- <Col md={6} sm={12} className="pr-5">
148
+ <Col md={6} sm={12} className='pr-5'>
143
149
  <Form.Group controlId={nameId}>
144
150
  <Form.Label>{t('Design:name')}*</Form.Label>
145
151
  <Form.Control
@@ -169,11 +175,27 @@ export function ProductSetControl({
169
175
  placeholder={t('Design:placeholderProductSetName')}
170
176
  isInvalid={Boolean(errors.name)}
171
177
  />
172
- <Form.Control.Feedback type="invalid">
178
+ <Form.Control.Feedback type='invalid'>
173
179
  {errors.name?.message}
174
180
  </Form.Control.Feedback>
175
181
  </Form.Group>
176
182
 
183
+ <Form.Group controlId={descriptionId}>
184
+ <Form.Label>{t('Design:description')}</Form.Label>
185
+ <Form.Control
186
+ {...register('description', {
187
+ maxLength: MAX_DESCRIPTION_LENGTH,
188
+ })}
189
+ as='textarea'
190
+ isInvalid={Boolean(errors.description)}
191
+ />
192
+ <Form.Control.Feedback type='invalid'>
193
+ {errors.description?.message}
194
+ </Form.Control.Feedback>
195
+ </Form.Group>
196
+
197
+ <ProductSetImageControl />
198
+
177
199
  {showDateSelector ? (
178
200
  <DateInput
179
201
  workHours={isZoneAdded ? workHours : undefined}
@@ -194,7 +216,7 @@ export function ProductSetControl({
194
216
  </>
195
217
  )}
196
218
 
197
- <div className="divider" />
219
+ <div className='divider' />
198
220
 
199
221
  <TutorialGifCard isOverrides={isOverrides} />
200
222
 
@@ -206,34 +228,13 @@ export function ProductSetControl({
206
228
  />
207
229
  </Col>
208
230
  <Col md={6} sm={12}>
209
- <div className="second-column">
210
- {/* <Controller
211
- control={control}
212
- name="type"
213
- render={({ field }) => (
214
- <Form.Group className="d-flex flex-column flex-grow-1 align-items-start">
215
- <Form.Label>{t("Design:checkoutType")}</Form.Label>
216
- <Switch
217
- name={field.name}
218
- options={PRODUCT_SET_TYPES.map((type) => ({
219
- key: type,
220
- id: type,
221
- value: t(type),
222
- }))}
223
- value={field.value}
224
- onChange={field.onChange}
225
- disabled={isLoading}
226
- />
227
- </Form.Group>
228
- )}
229
- /> */}
230
-
231
+ <div className='second-column'>
231
232
  <Form.Group>
232
- <Form.Label className="mb-0">
233
+ <Form.Label className='mb-0'>
233
234
  {t('Design:operationalCost')}
234
235
  </Form.Label>
235
- <div className="d-flex">
236
- <span className="booking-fee-text">
236
+ <div className='d-flex'>
237
+ <span className='booking-fee-text'>
237
238
  {t('bookingFeePaid', {
238
239
  fee,
239
240
  })}
@@ -241,7 +242,7 @@ export function ProductSetControl({
241
242
  </div>
242
243
  <Form.Control
243
244
  {...register('operationalCost', { required: true })}
244
- as="select"
245
+ as='select'
245
246
  defaultValue={OPERATIONAL_COST_PROVIDER}
246
247
  disabled={isOverrides}
247
248
  isInvalid={HookFormService.isInvalid('operationalCost', errors)}
@@ -262,7 +263,7 @@ export function ProductSetControl({
262
263
  </option>
263
264
  ))}
264
265
  </Form.Control>
265
- <Form.Control.Feedback type="invalid">
266
+ <Form.Control.Feedback type='invalid'>
266
267
  {HookFormService.getErrors('operationalCost', errors)}
267
268
  </Form.Control.Feedback>
268
269
  </Form.Group>
@@ -271,12 +272,12 @@ export function ProductSetControl({
271
272
  <Form.Label>{t('peopleQuantityType')}</Form.Label>
272
273
  <Form.Control
273
274
  {...register('relyOnPeopleType')}
274
- as="select"
275
+ as='select'
275
276
  defaultValue={null}
276
277
  disabled={isOverrides}
277
278
  isInvalid={HookFormService.isInvalid('relyOnPeopleType', errors)}
278
279
  >
279
- <option value="">{t('notRequired')} </option>
280
+ <option value=''>{t('notRequired')} </option>
280
281
  {Object.keys(RELY_ON_PEOPLE_TYPES).map((relyOnPeopleType) => (
281
282
  <option
282
283
  value={RELY_ON_PEOPLE_TYPES[relyOnPeopleType]}
@@ -290,7 +291,7 @@ export function ProductSetControl({
290
291
  </option>
291
292
  ))}
292
293
  </Form.Control>
293
- <Form.Control.Feedback type="invalid">
294
+ <Form.Control.Feedback type='invalid'>
294
295
  {HookFormService.getErrors('relyOnPeopleType', errors)}
295
296
  </Form.Control.Feedback>
296
297
  </Form.Group>
@@ -299,7 +300,7 @@ export function ProductSetControl({
299
300
  <Form.Label>{t('Design:termsAndConditions')}</Form.Label>
300
301
  <Form.Control
301
302
  {...register('termsAndConditions')}
302
- as="textarea"
303
+ as='textarea'
303
304
  rows={2}
304
305
  disabled={isLoading || isOverrides}
305
306
  isInvalid={HookFormService.isInvalid(
@@ -307,19 +308,19 @@ export function ProductSetControl({
307
308
  errors,
308
309
  )}
309
310
  />
310
- <Form.Control.Feedback type="invalid">
311
+ <Form.Control.Feedback type='invalid'>
311
312
  {HookFormService.getErrors('termsAndConditions', errors)}
312
313
  </Form.Control.Feedback>
313
314
  </Form.Group>
314
315
 
315
316
  <Form.Group>
316
- <Form.Label className="mt-4">
317
+ <Form.Label className='mt-4'>
317
318
  {t('Design:emailTemplate')}
318
319
  </Form.Label>
319
320
  <>
320
321
  {showEmailTemplateSelector ? (
321
322
  <Typeahead
322
- name="emailTemplates"
323
+ name='emailTemplates'
323
324
  options={emailTemplates}
324
325
  isMultipleChoise
325
326
  placeholder={t('Design:choose')}
@@ -343,7 +344,7 @@ export function ProductSetControl({
343
344
  </Form.Label>
344
345
  {showSmsTemplateSelector ? (
345
346
  <Typeahead
346
- name="smsTemplates"
347
+ name='smsTemplates'
347
348
  options={smsTemplates}
348
349
  isMultipleChoise
349
350
  placeholder={t('Design:choose')}
@@ -363,40 +364,33 @@ export function ProductSetControl({
363
364
  <Form.Group>
364
365
  <Controller
365
366
  control={control}
366
- name="fieldSetId"
367
- render={({ field }) => {
368
- const fieldValue = Number(field.value)
369
-
370
- return (
371
- <>
372
- <Form.Label>{t('Design:customFields')}</Form.Label>
373
- <Form.Control
374
- onChange={field.onChange}
375
- value={fieldValue}
376
- as="select"
377
- disabled={isOverrides}
378
- isInvalid={HookFormService.isInvalid(
379
- 'fieldSetId',
380
- errors,
381
- )}
382
- >
383
- <option value="">{t('Design:choose')}</option>
384
- {fieldSets?.map((fieldSet) => (
385
- <option value={fieldSet.id} key={fieldSet.id}>
386
- {fieldSet.name}
387
- </option>
388
- ))}
389
- </Form.Control>
390
- <Form.Control.Feedback type="invalid">
391
- {HookFormService.getErrors('fieldSetId', errors)}
392
- </Form.Control.Feedback>
393
- </>
394
- )
395
- }}
367
+ name='fieldSetId'
368
+ render={({ field }) => (
369
+ <>
370
+ <Form.Label>{t('Design:customFields')}</Form.Label>
371
+ <Form.Control
372
+ onChange={field.onChange}
373
+ value={Number(field.value)}
374
+ as='select'
375
+ disabled={isOverrides}
376
+ isInvalid={HookFormService.isInvalid('fieldSetId', errors)}
377
+ >
378
+ <option value=''>{t('Design:choose')}</option>
379
+ {fieldSets?.map((fieldSet) => (
380
+ <option value={fieldSet.id} key={fieldSet.id}>
381
+ {fieldSet.name}
382
+ </option>
383
+ ))}
384
+ </Form.Control>
385
+ <Form.Control.Feedback type='invalid'>
386
+ {HookFormService.getErrors('fieldSetId', errors)}
387
+ </Form.Control.Feedback>
388
+ </>
389
+ )}
396
390
  />
397
391
  </Form.Group>
398
392
 
399
- <Form.Group controlId="thankYouPageUrlId">
393
+ <Form.Group controlId='thankYouPageUrlId'>
400
394
  <Form.Label>{t('thankYouPageUrl')}</Form.Label>
401
395
 
402
396
  <Form.Control
@@ -413,7 +407,7 @@ export function ProductSetControl({
413
407
  isInvalid={HookFormService.isInvalid('thankYouPageUrl', errors)}
414
408
  />
415
409
 
416
- <Form.Control.Feedback type="invalid">
410
+ <Form.Control.Feedback type='invalid'>
417
411
  {HookFormService.getErrors('thankYouPageUrl', errors)}
418
412
  </Form.Control.Feedback>
419
413
  </Form.Group>
@@ -0,0 +1,97 @@
1
+ import { useFormContext } from 'react-hook-form'
2
+ import { HookFormService, useImages } from '@licklist/plugins'
3
+ import { IMAGE_TYPE_IMAGE } from '@licklist/core/dist/DataMapper/Media/ImageDataMapper'
4
+ import { useCallback, useEffect } from 'react'
5
+ import { Form } from 'react-bootstrap'
6
+ import { FileUpload } from 'src/file-upload'
7
+ import { useTranslation } from 'react-i18next'
8
+ import { isEqual } from 'lodash'
9
+ import { ProductSetControlValues } from '..'
10
+
11
+ export const ProductSetImageControl = () => {
12
+ const { t } = useTranslation('Design')
13
+
14
+ const {
15
+ formState: { errors },
16
+ setValue,
17
+ watch,
18
+ clearErrors,
19
+ } = useFormContext<ProductSetControlValues>()
20
+ const currentProductSet: ProductSetControlValues = watch()
21
+
22
+ const {
23
+ images,
24
+ handleImageRemove,
25
+ handleImageUploading,
26
+ isLoading: isImageUploading,
27
+ setImages,
28
+ } = useImages(null)
29
+
30
+ const onFilesChange = useCallback(
31
+ async (files: File[]) => {
32
+ const uploadedFiles = await handleImageUploading(files, IMAGE_TYPE_IMAGE)
33
+
34
+ if (!uploadedFiles) return
35
+
36
+ setValue('localImageBlobURL', URL.createObjectURL(files[0]) as never)
37
+ },
38
+ // eslint-disable-next-line react-hooks/exhaustive-deps
39
+ [handleImageUploading],
40
+ )
41
+
42
+ const onImageRemove = useCallback(
43
+ (id, path) => {
44
+ handleImageRemove(id, path)
45
+ setValue('localImageBlobURL', undefined as never)
46
+ },
47
+ // eslint-disable-next-line react-hooks/exhaustive-deps
48
+ [handleImageRemove],
49
+ )
50
+
51
+ useEffect(() => {
52
+ if (!currentProductSet || !currentProductSet.image) return
53
+
54
+ setImages([
55
+ {
56
+ ...currentProductSet.image,
57
+ url:
58
+ currentProductSet.image.url || currentProductSet?.localImageBlobURL,
59
+ },
60
+ ])
61
+ // eslint-disable-next-line react-hooks/exhaustive-deps
62
+ }, [currentProductSet?.image])
63
+
64
+ useEffect(() => {
65
+ if (isEqual(images[0], currentProductSet?.image)) return
66
+
67
+ setValue('image', (images[0] || null) as never)
68
+
69
+ if (images[0]) {
70
+ clearErrors('image')
71
+ }
72
+ // eslint-disable-next-line react-hooks/exhaustive-deps
73
+ }, [images])
74
+
75
+ return (
76
+ <Form.Group controlId='name'>
77
+ <Form.Control
78
+ isInvalid={HookFormService.isInvalid('image', errors)}
79
+ hidden
80
+ />
81
+ <FileUpload
82
+ onFilesChange={onFilesChange}
83
+ allowedExtensions={['jpeg', 'jpg', 'png']}
84
+ subTitle='.jpeg .jpg .png'
85
+ enablePreview
86
+ onFileRemove={onImageRemove}
87
+ defaultFiles={images}
88
+ isLoading={isImageUploading}
89
+ withIcon
90
+ title={t('Design:addImage')}
91
+ />
92
+ <Form.Control.Feedback type='invalid'>
93
+ {HookFormService.getErrors('image', errors)}
94
+ </Form.Control.Feedback>
95
+ </Form.Group>
96
+ )
97
+ }
@@ -38,7 +38,7 @@ export const Default: Story<ProductSetRecurrences> = (args) => {
38
38
  }
39
39
 
40
40
  return (
41
- <div className="product-set-recurrences">
41
+ <div className='product-set-recurrences'>
42
42
  <DndContext onDragEnd={onDragEnd}>
43
43
  <SortableContext
44
44
  items={items.map((menuRecurrence) => ({
@@ -30,7 +30,7 @@ export const ProductSetRecurrenceControl = ({
30
30
 
31
31
  return (
32
32
  <div
33
- className="sortable-tree-root flex-column"
33
+ className='sortable-tree-root flex-column'
34
34
  style={{
35
35
  transform: CSS.Translate.toString(transform),
36
36
  transition,
@@ -38,20 +38,20 @@ export const ProductSetRecurrenceControl = ({
38
38
  {...attributes}
39
39
  {...listeners}
40
40
  ref={setNodeRef}
41
- role="button"
41
+ role='button'
42
42
  tabIndex={0}
43
43
  >
44
44
  <div
45
45
  key={menuRecurrence.rrule}
46
- className="product-set-recurrence d-flex flex-column mr-0 mb-3 p-3 px-4 flex-grow-1"
46
+ className='product-set-recurrence d-flex flex-column mr-0 mb-3 p-3 px-4 flex-grow-1'
47
47
  >
48
- <span className="d-flex flex-row align-items-center">
48
+ <span className='d-flex flex-row align-items-center'>
49
49
  <FaCalendar
50
50
  size={16}
51
- className="product-set-recurrence-icon-calendar"
51
+ className='product-set-recurrence-icon-calendar'
52
52
  />
53
53
 
54
- <span className="product-set-recurrence-title d-flex flex-grow-1">
54
+ <span className='product-set-recurrence-title d-flex flex-grow-1'>
55
55
  {t('from')}{' '}
56
56
  {formatDate(menuRecurrence.startDate, {
57
57
  dateStyle: 'medium',
@@ -67,19 +67,19 @@ export const ProductSetRecurrenceControl = ({
67
67
  </span>
68
68
 
69
69
  <div
70
- className="d-inline-flex"
71
- role="button"
70
+ className='d-inline-flex'
71
+ role='button'
72
72
  tabIndex={0}
73
73
  onClick={() => onEdit(menuRecurrence)}
74
74
  onKeyDown={() => onEdit(menuRecurrence)}
75
75
  >
76
76
  <FaEllipsisH
77
77
  size={16}
78
- className="product-set-recurrence-icon-more"
78
+ className='product-set-recurrence-icon-more'
79
79
  />
80
80
  </div>
81
81
  </span>
82
- <span className="product-set-recurrence-description">
82
+ <span className='product-set-recurrence-description'>
83
83
  {getHumanReadableDate(menuRecurrence)}
84
84
  </span>
85
85
  </div>
@@ -16,36 +16,36 @@ export const ProductSetRecurrenceOverridesControl = ({
16
16
  const { formatDate } = useIntl()
17
17
 
18
18
  return (
19
- <div className="sortable-tree-root flex-column" role="button" tabIndex={0}>
19
+ <div className='sortable-tree-root flex-column' role='button' tabIndex={0}>
20
20
  <div
21
21
  key={menuRecurrence.rrule}
22
- className="product-set-recurrence d-flex flex-column mr-0 mb-3 p-3 px-4 flex-grow-1"
22
+ className='product-set-recurrence d-flex flex-column mr-0 mb-3 p-3 px-4 flex-grow-1'
23
23
  >
24
- <span className="d-flex flex-row align-items-center">
24
+ <span className='d-flex flex-row align-items-center'>
25
25
  <FaCalendar
26
26
  size={16}
27
- className="product-set-recurrence-icon-calendar"
27
+ className='product-set-recurrence-icon-calendar'
28
28
  />
29
- <span className="product-set-recurrence-title d-flex flex-grow-1">
29
+ <span className='product-set-recurrence-title d-flex flex-grow-1'>
30
30
  {formatDate(menuRecurrence.startDate, {
31
31
  dateStyle: 'medium',
32
32
  })}{' '}
33
33
  </span>
34
34
 
35
35
  <div
36
- className="d-inline-flex"
37
- role="button"
36
+ className='d-inline-flex'
37
+ role='button'
38
38
  tabIndex={0}
39
39
  onClick={() => onEdit(menuRecurrence)}
40
40
  onKeyDown={() => onEdit(menuRecurrence)}
41
41
  >
42
42
  <FaEllipsisH
43
43
  size={16}
44
- className="product-set-recurrence-icon-more"
44
+ className='product-set-recurrence-icon-more'
45
45
  />
46
46
  </div>
47
47
  </span>
48
- <span className="product-set-recurrence-description">
48
+ <span className='product-set-recurrence-description'>
49
49
  {formatDate(menuRecurrence.startDate, {
50
50
  dateStyle: 'medium',
51
51
  })}{' '}