@licklist/design 0.68.5 → 0.68.6-dev.1

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