@scbt-ecom/ui 0.152.4 → 0.152.6

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 (281) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +2 -0
  2. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/dist/_virtual/index.js +2 -0
  4. package/dist/_virtual/index.js.map +1 -0
  5. package/dist/lib/exports/widget.js +1 -1
  6. package/dist/lib/shared/hocs/withBoundary/withBoundary.js +1 -1
  7. package/dist/lib/shared/hocs/withBoundary/withBoundary.js.map +1 -1
  8. package/dist/lib/shared/hooks/useClickOutside.js +1 -1
  9. package/dist/lib/shared/hooks/useClickOutside.js.map +1 -1
  10. package/dist/lib/shared/hooks/useClickOutsideMany.js +1 -1
  11. package/dist/lib/shared/hooks/useClickOutsideMany.js.map +1 -1
  12. package/dist/lib/shared/ui/brandLogos/BrandLogos.js +1 -1
  13. package/dist/lib/shared/ui/brandLogos/BrandLogos.js.map +1 -1
  14. package/dist/lib/shared/ui/calendar/Calendar.js +1 -1
  15. package/dist/lib/shared/ui/calendar/Calendar.js.map +1 -1
  16. package/dist/lib/shared/ui/calendar/ui/Navigation.js +1 -1
  17. package/dist/lib/shared/ui/calendar/ui/Navigation.js.map +1 -1
  18. package/dist/lib/shared/ui/calendar/ui/selectDate/ui/Trigger.js +1 -1
  19. package/dist/lib/shared/ui/calendar/ui/selectDate/ui/Trigger.js.map +1 -1
  20. package/dist/lib/shared/ui/carousel/CarouselNative.js +1 -1
  21. package/dist/lib/shared/ui/carousel/CarouselNative.js.map +1 -1
  22. package/dist/lib/shared/ui/carousel/model/helpers.js +1 -1
  23. package/dist/lib/shared/ui/carousel/model/helpers.js.map +1 -1
  24. package/dist/lib/shared/ui/dialog/Dialog.js +1 -1
  25. package/dist/lib/shared/ui/dialog/Dialog.js.map +1 -1
  26. package/dist/lib/shared/ui/formElements/controlled/autocomplete/AutocompleteControl.js +1 -1
  27. package/dist/lib/shared/ui/formElements/controlled/autocomplete/AutocompleteControl.js.map +1 -1
  28. package/dist/lib/shared/ui/formElements/controlled/checkbox/CheckboxControl.js +1 -1
  29. package/dist/lib/shared/ui/formElements/controlled/checkbox/CheckboxControl.js.map +1 -1
  30. package/dist/lib/shared/ui/formElements/controlled/combobox/ComboboxControl.js +1 -1
  31. package/dist/lib/shared/ui/formElements/controlled/combobox/ComboboxControl.js.map +1 -1
  32. package/dist/lib/shared/ui/formElements/controlled/combobox/hooks/useComboboxControl.js +1 -1
  33. package/dist/lib/shared/ui/formElements/controlled/combobox/hooks/useComboboxControl.js.map +1 -1
  34. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.js +1 -1
  35. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.js.map +1 -1
  36. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.js +1 -1
  37. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.js.map +1 -1
  38. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/range.js +1 -1
  39. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/range.js.map +1 -1
  40. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/single.js +1 -1
  41. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/single.js.map +1 -1
  42. package/dist/lib/shared/ui/formElements/controlled/editor/model/helper.js +1 -1
  43. package/dist/lib/shared/ui/formElements/controlled/editor/model/helper.js.map +1 -1
  44. package/dist/lib/shared/ui/formElements/controlled/editor/ui/Editor.js +1 -1
  45. package/dist/lib/shared/ui/formElements/controlled/editor/ui/Editor.js.map +1 -1
  46. package/dist/lib/shared/ui/formElements/controlled/editor/ui/EditorModal.js +1 -1
  47. package/dist/lib/shared/ui/formElements/controlled/editor/ui/EditorModal.js.map +1 -1
  48. package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/SetColor.js +1 -1
  49. package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/SetColor.js.map +1 -1
  50. package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/SetCoreCommands.js +1 -1
  51. package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/SetCoreCommands.js.map +1 -1
  52. package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/SetFontSize.js +1 -1
  53. package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/SetFontSize.js.map +1 -1
  54. package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/setCustomLink.js +1 -1
  55. package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/setCustomLink.js.map +1 -1
  56. package/dist/lib/shared/ui/formElements/controlled/input/InputControl.js +1 -1
  57. package/dist/lib/shared/ui/formElements/controlled/input/InputControl.js.map +1 -1
  58. package/dist/lib/shared/ui/formElements/controlled/input/MaskInputControl.js +1 -1
  59. package/dist/lib/shared/ui/formElements/controlled/input/MaskInputControl.js.map +1 -1
  60. package/dist/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.js +1 -1
  61. package/dist/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.js.map +1 -1
  62. package/dist/lib/shared/ui/formElements/controlled/inputOtp/InputOtpControl.js +1 -1
  63. package/dist/lib/shared/ui/formElements/controlled/inputOtp/InputOtpControl.js.map +1 -1
  64. package/dist/lib/shared/ui/formElements/controlled/radio/RadioGroupControl.js +1 -1
  65. package/dist/lib/shared/ui/formElements/controlled/radio/RadioGroupControl.js.map +1 -1
  66. package/dist/lib/shared/ui/formElements/controlled/slider/SliderControl.js +1 -1
  67. package/dist/lib/shared/ui/formElements/controlled/slider/SliderControl.js.map +1 -1
  68. package/dist/lib/shared/ui/formElements/controlled/switch/SwitchControl.js +1 -1
  69. package/dist/lib/shared/ui/formElements/controlled/switch/SwitchControl.js.map +1 -1
  70. package/dist/lib/shared/ui/formElements/controlled/textarea/TextareaControl.js +1 -1
  71. package/dist/lib/shared/ui/formElements/controlled/textarea/TextareaControl.js.map +1 -1
  72. package/dist/lib/shared/ui/formElements/controlled/uploader/UploaderControl.js +1 -1
  73. package/dist/lib/shared/ui/formElements/controlled/uploader/UploaderControl.js.map +1 -1
  74. package/dist/lib/shared/ui/formElements/ui/fieldAttachment/ui/ValidateSlot.js +1 -1
  75. package/dist/lib/shared/ui/formElements/ui/fieldAttachment/ui/ValidateSlot.js.map +1 -1
  76. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js +1 -1
  77. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js.map +1 -1
  78. package/dist/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.js +1 -1
  79. package/dist/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.js.map +1 -1
  80. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js +1 -1
  81. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js.map +1 -1
  82. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/hooks/useCombobox.js +1 -1
  83. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/hooks/useCombobox.js.map +1 -1
  84. package/dist/lib/shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js +1 -1
  85. package/dist/lib/shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js.map +1 -1
  86. package/dist/lib/shared/ui/formElements/uncontrolled/index.js +1 -1
  87. package/dist/lib/shared/ui/formElements/uncontrolled/index.js.map +1 -1
  88. package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/ui/CurrencyIcon.js +1 -1
  89. package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/ui/CurrencyIcon.js.map +1 -1
  90. package/dist/lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.js +1 -1
  91. package/dist/lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.js.map +1 -1
  92. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/Slider.js +1 -1
  93. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/Slider.js.map +1 -1
  94. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js +1 -1
  95. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js.map +1 -1
  96. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js +1 -1
  97. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js.map +1 -1
  98. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js +1 -1
  99. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js.map +1 -1
  100. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.js +1 -1
  101. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.js.map +1 -1
  102. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/model/hooks/useUploader.js +1 -1
  103. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/model/hooks/useUploader.js.map +1 -1
  104. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/ui/UploaderFile.js +1 -1
  105. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/ui/UploaderFile.js.map +1 -1
  106. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/ui/UploaderFilename.js +1 -1
  107. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/ui/UploaderFilename.js.map +1 -1
  108. package/dist/lib/shared/ui/modal/ui/ModalHeader.js +1 -1
  109. package/dist/lib/shared/ui/modal/ui/ModalHeader.js.map +1 -1
  110. package/dist/lib/shared/ui/popover/Popover.js +1 -1
  111. package/dist/lib/shared/ui/popover/Popover.js.map +1 -1
  112. package/dist/lib/shared/ui/slot/ui/SlotClone.js +1 -1
  113. package/dist/lib/shared/ui/slot/ui/SlotClone.js.map +1 -1
  114. package/dist/lib/shared/ui/table/Desktop.js +1 -1
  115. package/dist/lib/shared/ui/table/Desktop.js.map +1 -1
  116. package/dist/lib/shared/ui/table/Horizontal.js +1 -1
  117. package/dist/lib/shared/ui/table/Horizontal.js.map +1 -1
  118. package/dist/lib/shared/ui/table/Table.js +1 -1
  119. package/dist/lib/shared/ui/table/Table.js.map +1 -1
  120. package/dist/lib/shared/ui/table/model/TableUtils.js +1 -1
  121. package/dist/lib/shared/ui/table/model/TableUtils.js.map +1 -1
  122. package/dist/lib/shared/ui/table/ui/editableCell/EditableCell.js +1 -1
  123. package/dist/lib/shared/ui/table/ui/editableCell/EditableCell.js.map +1 -1
  124. package/dist/lib/shared/utils/cn.js +1 -1
  125. package/dist/lib/shared/utils/cn.js.map +1 -1
  126. package/dist/lib/shared/validation/base/base.constants.js +1 -1
  127. package/dist/lib/shared/validation/base/base.constants.js.map +1 -1
  128. package/dist/lib/shared/validation/base/currency.validators.js +1 -1
  129. package/dist/lib/shared/validation/base/currency.validators.js.map +1 -1
  130. package/dist/lib/shared/validation/base/date.validators.js +1 -1
  131. package/dist/lib/shared/validation/base/date.validators.js.map +1 -1
  132. package/dist/lib/shared/validation/base/email.validators.js +1 -1
  133. package/dist/lib/shared/validation/base/email.validators.js.map +1 -1
  134. package/dist/lib/shared/validation/base/phone.validators.js +1 -1
  135. package/dist/lib/shared/validation/base/phone.validators.js.map +1 -1
  136. package/dist/lib/shared/validation/base/regex.validators.js +1 -1
  137. package/dist/lib/shared/validation/base/regex.validators.js.map +1 -1
  138. package/dist/lib/shared/validation/base/url.validators.js +1 -1
  139. package/dist/lib/shared/validation/base/url.validators.js.map +1 -1
  140. package/dist/lib/widgets/authProvider/AuthProvider.js +1 -1
  141. package/dist/lib/widgets/authProvider/AuthProvider.js.map +1 -1
  142. package/dist/lib/widgets/authProvider/ui/Esia.js +1 -1
  143. package/dist/lib/widgets/authProvider/ui/Esia.js.map +1 -1
  144. package/dist/lib/widgets/authProvider/ui/MobileId.js +1 -1
  145. package/dist/lib/widgets/authProvider/ui/MobileId.js.map +1 -1
  146. package/dist/lib/widgets/authProvider/ui/ui/AuthWrapper.js +1 -1
  147. package/dist/lib/widgets/authProvider/ui/ui/AuthWrapper.js.map +1 -1
  148. package/dist/lib/widgets/banner/index.js +1 -1
  149. package/dist/lib/widgets/banner/ui/banners/BannerImageFull.js +1 -1
  150. package/dist/lib/widgets/banner/ui/banners/BannerImageFull.js.map +1 -1
  151. package/dist/lib/widgets/banner/ui/banners/BannerWithSeparateImg.js +1 -1
  152. package/dist/lib/widgets/banner/ui/banners/BannerWithSeparateImg.js.map +1 -1
  153. package/dist/lib/widgets/banner/ui/banners/ui/Advantages.js +1 -1
  154. package/dist/lib/widgets/banner/ui/banners/ui/Advantages.js.map +1 -1
  155. package/dist/lib/widgets/benefit/Benefit.js +1 -1
  156. package/dist/lib/widgets/benefit/Benefit.js.map +1 -1
  157. package/dist/lib/widgets/breadcrumbs/Breadcrumbs.js +1 -1
  158. package/dist/lib/widgets/breadcrumbs/Breadcrumbs.js.map +1 -1
  159. package/dist/lib/widgets/buttonWithHandlers/ButtonWithHandlers.js +1 -1
  160. package/dist/lib/widgets/buttonWithHandlers/ButtonWithHandlers.js.map +1 -1
  161. package/dist/lib/widgets/buttonWithHandlers/model/useButtonHandler.js +1 -1
  162. package/dist/lib/widgets/buttonWithHandlers/model/useButtonHandler.js.map +1 -1
  163. package/dist/lib/widgets/calculator/Calculator.js +1 -1
  164. package/dist/lib/widgets/calculator/Calculator.js.map +1 -1
  165. package/dist/lib/widgets/calculator/CalculatorView.js +1 -1
  166. package/dist/lib/widgets/calculator/CalculatorView.js.map +1 -1
  167. package/dist/lib/widgets/calculator/model/helpers.js +1 -1
  168. package/dist/lib/widgets/calculator/model/helpers.js.map +1 -1
  169. package/dist/lib/widgets/calculator/ui/calculatorFields/hooks/useAdditionalSlider.js +1 -1
  170. package/dist/lib/widgets/calculator/ui/calculatorFields/hooks/useAdditionalSlider.js.map +1 -1
  171. package/dist/lib/widgets/calculator/ui/calculatorFields/ui/AdditionalSlider.js +1 -1
  172. package/dist/lib/widgets/calculator/ui/calculatorFields/ui/AdditionalSlider.js.map +1 -1
  173. package/dist/lib/widgets/calculator/ui/calculatorFields/ui/CalculatorModal.js +1 -1
  174. package/dist/lib/widgets/calculator/ui/calculatorFields/ui/CalculatorModal.js.map +1 -1
  175. package/dist/lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.js +1 -1
  176. package/dist/lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.js.map +1 -1
  177. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/AssistHint.js +1 -1
  178. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/AssistHint.js.map +1 -1
  179. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoHead.js +1 -1
  180. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoHead.js.map +1 -1
  181. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.js +1 -1
  182. package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.js.map +1 -1
  183. package/dist/lib/widgets/conditionBlock/ConditionBlock.js +1 -1
  184. package/dist/lib/widgets/conditionBlock/ConditionBlock.js.map +1 -1
  185. package/dist/lib/widgets/dynamicForm/DynamicForm.js +1 -1
  186. package/dist/lib/widgets/dynamicForm/DynamicForm.js.map +1 -1
  187. package/dist/lib/widgets/dynamicForm/model/helpers.js +1 -1
  188. package/dist/lib/widgets/dynamicForm/model/helpers.js.map +1 -1
  189. package/dist/lib/widgets/dynamicFormDialog/DynamicFormDialog.js +1 -1
  190. package/dist/lib/widgets/dynamicFormDialog/DynamicFormDialog.js.map +1 -1
  191. package/dist/lib/widgets/errorPage/ErrorPage.js +1 -1
  192. package/dist/lib/widgets/errorPage/ErrorPage.js.map +1 -1
  193. package/dist/lib/widgets/fallbacksView/FallbacksView.js +1 -1
  194. package/dist/lib/widgets/fallbacksView/FallbacksView.js.map +1 -1
  195. package/dist/lib/widgets/fallbacksView/model/helpers.js +1 -1
  196. package/dist/lib/widgets/fallbacksView/model/helpers.js.map +1 -1
  197. package/dist/lib/widgets/fieldMapper/FieldMapper.js +1 -1
  198. package/dist/lib/widgets/fieldMapper/FieldMapper.js.map +1 -1
  199. package/dist/lib/widgets/footer/Footer.js +1 -1
  200. package/dist/lib/widgets/footer/Footer.js.map +1 -1
  201. package/dist/lib/widgets/footer/ui/FooterLogo.js +1 -1
  202. package/dist/lib/widgets/footer/ui/FooterLogo.js.map +1 -1
  203. package/dist/lib/widgets/footer/ui/NavLinks.js +1 -1
  204. package/dist/lib/widgets/footer/ui/NavLinks.js.map +1 -1
  205. package/dist/lib/widgets/footer/ui/PhonesBlock.js +1 -1
  206. package/dist/lib/widgets/footer/ui/PhonesBlock.js.map +1 -1
  207. package/dist/lib/widgets/footer/ui/SiteMap.js +1 -1
  208. package/dist/lib/widgets/footer/ui/SiteMap.js.map +1 -1
  209. package/dist/lib/widgets/footer/ui/SocialLinks.js +1 -1
  210. package/dist/lib/widgets/footer/ui/SocialLinks.js.map +1 -1
  211. package/dist/lib/widgets/header/Header.js +1 -1
  212. package/dist/lib/widgets/header/Header.js.map +1 -1
  213. package/dist/lib/widgets/header/model/helpers.js +1 -1
  214. package/dist/lib/widgets/header/model/helpers.js.map +1 -1
  215. package/dist/lib/widgets/index.js +1 -1
  216. package/dist/lib/widgets/infoBlock/InfoBlock.js +1 -1
  217. package/dist/lib/widgets/infoBlock/InfoBlock.js.map +1 -1
  218. package/dist/lib/widgets/infoBlock/ui/LinksList.js +1 -1
  219. package/dist/lib/widgets/infoBlock/ui/LinksList.js.map +1 -1
  220. package/dist/lib/widgets/infoBlock/ui/RootContent.js +1 -1
  221. package/dist/lib/widgets/infoBlock/ui/RootContent.js.map +1 -1
  222. package/dist/lib/widgets/interLinking/InterLinking.js +1 -1
  223. package/dist/lib/widgets/interLinking/InterLinking.js.map +1 -1
  224. package/dist/lib/widgets/interLinking/ui/ColumnGroup.js +1 -1
  225. package/dist/lib/widgets/interLinking/ui/ColumnGroup.js.map +1 -1
  226. package/dist/lib/widgets/interLinking/ui/LinksList.js +1 -1
  227. package/dist/lib/widgets/interLinking/ui/LinksList.js.map +1 -1
  228. package/dist/lib/widgets/longBanner/LongBanner.js +1 -1
  229. package/dist/lib/widgets/longBanner/LongBanner.js.map +1 -1
  230. package/dist/lib/widgets/longBanner/ui/TextItem.js +1 -1
  231. package/dist/lib/widgets/longBanner/ui/TextItem.js.map +1 -1
  232. package/dist/lib/widgets/model/helpers.js +2 -2
  233. package/dist/lib/widgets/model/helpers.js.map +1 -1
  234. package/dist/lib/widgets/seoHeader/SeoHeader.js +1 -1
  235. package/dist/lib/widgets/seoHeader/SeoHeader.js.map +1 -1
  236. package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js +1 -1
  237. package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js.map +1 -1
  238. package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.js +1 -1
  239. package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.js.map +1 -1
  240. package/dist/lib/widgets/seoHeader/ui/desktop/tab/ui/content/TabContent.js +1 -1
  241. package/dist/lib/widgets/seoHeader/ui/desktop/tab/ui/content/TabContent.js.map +1 -1
  242. package/dist/lib/widgets/seoHeader/ui/mobile/CategoriesMobile.js +1 -1
  243. package/dist/lib/widgets/seoHeader/ui/mobile/CategoriesMobile.js.map +1 -1
  244. package/dist/lib/widgets/seoHeader/ui/mobile/menu/Menu.js +1 -1
  245. package/dist/lib/widgets/seoHeader/ui/mobile/menu/Menu.js.map +1 -1
  246. package/dist/lib/widgets/seoHeader/ui/mobile/menu/MenuItem.js +1 -1
  247. package/dist/lib/widgets/seoHeader/ui/mobile/menu/MenuItem.js.map +1 -1
  248. package/dist/lib/widgets/stepper/Stepper.js +1 -1
  249. package/dist/lib/widgets/stepper/Stepper.js.map +1 -1
  250. package/dist/lib/widgets/stepper/ui/StepperCarousel.js +1 -1
  251. package/dist/lib/widgets/stepper/ui/StepperCarousel.js.map +1 -1
  252. package/dist/lib/widgets/table/InfoTable.js +1 -1
  253. package/dist/lib/widgets/table/InfoTable.js.map +1 -1
  254. package/dist/lib/widgets/table/model/utils.js +1 -1
  255. package/dist/lib/widgets/table/model/utils.js.map +1 -1
  256. package/dist/lib/widgets/usefulInfo/UsefulInfo.js +1 -1
  257. package/dist/lib/widgets/usefulInfo/UsefulInfo.js.map +1 -1
  258. package/dist/lib/widgets/usefulInfo/ui/subEntities/documents/Documents.js +1 -1
  259. package/dist/lib/widgets/usefulInfo/ui/subEntities/documents/Documents.js.map +1 -1
  260. package/dist/lib/widgets/usefulInfo/ui/subEntities/documents/ui/document/Document.js +1 -1
  261. package/dist/lib/widgets/usefulInfo/ui/subEntities/documents/ui/document/Document.js.map +1 -1
  262. package/dist/lib/widgets/usefulInfo/ui/subEntities/experts/Experts.js +1 -1
  263. package/dist/lib/widgets/usefulInfo/ui/subEntities/experts/Experts.js.map +1 -1
  264. package/dist/lib/widgets/usefulInfo/ui/subEntities/html/Html.js +1 -1
  265. package/dist/lib/widgets/usefulInfo/ui/subEntities/html/Html.js.map +1 -1
  266. package/dist/lib/widgets/usefulInfo/ui/subEntities/table/Table.js +1 -1
  267. package/dist/lib/widgets/usefulInfo/ui/subEntities/table/Table.js.map +1 -1
  268. package/dist/lib/widgets/userFeedback/UserFeedback.js +1 -1
  269. package/dist/lib/widgets/userFeedback/UserFeedback.js.map +1 -1
  270. package/dist/lib/widgets/userFeedback/ui/FeedbackTrigger.js +1 -1
  271. package/dist/lib/widgets/userFeedback/ui/FeedbackTrigger.js.map +1 -1
  272. package/dist/lib/widgets/userFeedback/ui/Finally.js +1 -1
  273. package/dist/lib/widgets/userFeedback/ui/Finally.js.map +1 -1
  274. package/dist/lib/widgets/userFeedback/ui/SelectRating.js +1 -1
  275. package/dist/lib/widgets/userFeedback/ui/SelectRating.js.map +1 -1
  276. package/dist/lib/widgets/userFeedback/ui/UserReview.js +1 -1
  277. package/dist/lib/widgets/userFeedback/ui/UserReview.js.map +1 -1
  278. package/dist/src/shared/utils/getDynamicSchema.js +1 -1
  279. package/dist/src/shared/utils/getDynamicSchema.js.map +1 -1
  280. package/dist/stats.html +1 -1
  281. package/package.json +2 -1
@@ -1,2 +1,2 @@
1
- import{jsxs as P,jsx as r}from"react/jsx-runtime";import{useState as S}from"react";import{useController as j}from"react-hook-form";import{SingleDayPicker as k}from"./single.js";import{cn as y}from"../../../../utils/cn.js";import"uuid";import"../../../button/Button.js";import"../../../button/model/helpers.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../loader/model/helpers.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"@hookform/resolvers/zod";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../notification/ui/CustomToast.js";import"../../../table/ui/primitives/Primitives.js";import"@tanstack/react-table";import"../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../carousel/ui/CarouselContent.js";import"../../../customLink/model/helpers.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/combobox/combobox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import"@tanstack/react-query";import"../../../../../../src/configs/api.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"classnames";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as N}from"../../ui/MessageView.js";const yt=({control:i,name:m,disabled:o,rules:p,shouldUnregister:e,defaultValue:s,inputProps:n,helperText:a,classes:l,...c})=>{const{field:f,fieldState:g}=j({control:i,name:m,defaultValue:s,disabled:o,rules:p,shouldUnregister:e}),{value:u,onChange:h,...d}=f,{error:t,invalid:C}=g,{message:v,container:x,...w}=l||{},[D,M]=S(new Date);return P("div",{className:y("w-full",x),children:[r(k,{...c,value:u??"",onChange:h,month:D,onMonthChange:M,classes:w,inputProps:{...n,...d,invalid:C,"data-error-message":t==null?void 0:t.message}}),r(N,{text:(t==null?void 0:t.message)||a,className:v,intent:t?"error":"simple",disabled:o})]})};export{yt as DayPickerControl};
1
+ import{jsxs as P,jsx as r}from"react/jsx-runtime";import{useState as S}from"react";import{useController as j}from"react-hook-form";import{SingleDayPicker as k}from"./single.js";import{cn as y}from"../../../../utils/cn.js";import"uuid";import"../../../button/Button.js";import"../../../button/model/helpers.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../loader/model/helpers.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"@hookform/resolvers/zod";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../notification/ui/CustomToast.js";import"../../../table/ui/primitives/Primitives.js";import"@tanstack/react-table";import"../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../carousel/ui/CarouselContent.js";import"../../../customLink/model/helpers.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/combobox/combobox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import"@tanstack/react-query";import"../../../../../../src/configs/api.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"../../../../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as N}from"../../ui/MessageView.js";const yt=({control:i,name:m,disabled:o,rules:p,shouldUnregister:e,defaultValue:s,inputProps:n,helperText:a,classes:l,...c})=>{const{field:f,fieldState:g}=j({control:i,name:m,defaultValue:s,disabled:o,rules:p,shouldUnregister:e}),{value:u,onChange:h,...d}=f,{error:t,invalid:C}=g,{message:v,container:x,...w}=l||{},[D,M]=S(new Date);return P("div",{className:y("w-full",x),children:[r(k,{...c,value:u??"",onChange:h,month:D,onMonthChange:M,classes:w,inputProps:{...n,...d,invalid:C,"data-error-message":t==null?void 0:t.message}}),r(N,{text:(t==null?void 0:t.message)||a,className:v,intent:t?"error":"simple",disabled:o})]})};export{yt as DayPickerControl};
2
2
  //# sourceMappingURL=dayPickerControl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dayPickerControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.tsx"],"sourcesContent":["'use client'\n\nimport { useState } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport type { DataLayers } from '../../../../types'\nimport { SingleDayPicker } from './single'\nimport { type Calendar, type MaskInputProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\ntype DayPickerControlClasses = MaskInputProps['classes'] & {\n message?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type DayPickerControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<CalendarProps, 'selected' | 'onSelect' | 'mode'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Свойства отображаемого Input поля\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Дополнительный текст\n */\n helperText?: string\n /**\n * Дополнительные стили компонента\n */\n classes?: DayPickerControlClasses\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n }\n\nexport const DayPickerControl = <T extends FieldValues = FieldValues>({\n control,\n name,\n disabled,\n rules,\n shouldUnregister,\n defaultValue,\n inputProps,\n helperText,\n classes,\n ...props\n}: DayPickerControlProps<T>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister\n })\n\n const { value, onChange, ...restField } = field\n const { error, invalid } = fieldState\n const { message, container, ...restClasses } = classes || {}\n\n const [month, setMonth] = useState<Date>(new Date())\n\n return (\n <div className={cn('w-full', container)}>\n <SingleDayPicker\n {...props}\n value={value ?? ''}\n onChange={onChange}\n month={month}\n onMonthChange={setMonth}\n classes={restClasses}\n inputProps={{\n ...inputProps,\n ...restField,\n invalid,\n ['data-error-message']: error?.message\n }}\n />\n <MessageView\n text={error?.message || helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["DayPickerControl","control","name","disabled","rules","shouldUnregister","defaultValue","inputProps","helperText","classes","props","field","fieldState","useController","value","onChange","restField","error","invalid","message","container","restClasses","month","setMonth","useState","cn","jsx","SingleDayPicker","MessageView"],"mappings":"wjEAqDO,MAAMA,GAAmB,CAAsC,CACpE,QAAAC,EACA,KAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,WAAAC,EACA,WAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAAgC,CAC9B,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAZ,EACA,KAAAC,EACA,aAAAI,EACA,SAAAH,EACA,MAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAS,EAAO,SAAAC,EAAU,GAAGC,GAAcL,EACpC,CAAE,MAAAM,EAAO,QAAAC,CAAA,EAAYN,EACrB,CAAE,QAAAO,EAAS,UAAAC,EAAW,GAAGC,CAAA,EAAgBZ,GAAW,CAAA,EAEpD,CAACa,EAAOC,CAAQ,EAAIC,EAAe,IAAI,IAAM,EAEnD,SACG,MAAA,CAAI,UAAWC,EAAG,SAAUL,CAAS,EACpC,SAAA,CAAAM,EAACC,EAAA,CACE,GAAGjB,EACJ,MAAOI,GAAS,GAChB,SAAAC,EACA,MAAAO,EACA,cAAeC,EACf,QAASF,EACT,WAAY,CACV,GAAGd,EACH,GAAGS,EACH,QAAAE,EACC,qBAAuBD,GAAA,YAAAA,EAAO,OAAA,CACjC,CAAA,EAEFS,EAACE,EAAA,CACC,MAAMX,GAAA,YAAAA,EAAO,UAAWT,EACxB,UAAWW,EACX,OAAQF,EAAQ,QAAU,SAC1B,SAAAd,CAAA,CAAA,CACF,EACF,CAEJ"}
1
+ {"version":3,"file":"dayPickerControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.tsx"],"sourcesContent":["'use client'\n\nimport { useState } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport type { DataLayers } from '../../../../types'\nimport { SingleDayPicker } from './single'\nimport { type Calendar, type MaskInputProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\ntype DayPickerControlClasses = MaskInputProps['classes'] & {\n message?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type DayPickerControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<CalendarProps, 'selected' | 'onSelect' | 'mode'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Свойства отображаемого Input поля\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Дополнительный текст\n */\n helperText?: string\n /**\n * Дополнительные стили компонента\n */\n classes?: DayPickerControlClasses\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n }\n\nexport const DayPickerControl = <T extends FieldValues = FieldValues>({\n control,\n name,\n disabled,\n rules,\n shouldUnregister,\n defaultValue,\n inputProps,\n helperText,\n classes,\n ...props\n}: DayPickerControlProps<T>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister\n })\n\n const { value, onChange, ...restField } = field\n const { error, invalid } = fieldState\n const { message, container, ...restClasses } = classes || {}\n\n const [month, setMonth] = useState<Date>(new Date())\n\n return (\n <div className={cn('w-full', container)}>\n <SingleDayPicker\n {...props}\n value={value ?? ''}\n onChange={onChange}\n month={month}\n onMonthChange={setMonth}\n classes={restClasses}\n inputProps={{\n ...inputProps,\n ...restField,\n invalid,\n ['data-error-message']: error?.message\n }}\n />\n <MessageView\n text={error?.message || helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["DayPickerControl","control","name","disabled","rules","shouldUnregister","defaultValue","inputProps","helperText","classes","props","field","fieldState","useController","value","onChange","restField","error","invalid","message","container","restClasses","month","setMonth","useState","cn","jsx","SingleDayPicker","MessageView"],"mappings":"ooEAqDO,MAAMA,GAAmB,CAAsC,CACpE,QAAAC,EACA,KAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,WAAAC,EACA,WAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAAgC,CAC9B,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAZ,EACA,KAAAC,EACA,aAAAI,EACA,SAAAH,EACA,MAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAS,EAAO,SAAAC,EAAU,GAAGC,GAAcL,EACpC,CAAE,MAAAM,EAAO,QAAAC,CAAA,EAAYN,EACrB,CAAE,QAAAO,EAAS,UAAAC,EAAW,GAAGC,CAAA,EAAgBZ,GAAW,CAAA,EAEpD,CAACa,EAAOC,CAAQ,EAAIC,EAAe,IAAI,IAAM,EAEnD,SACG,MAAA,CAAI,UAAWC,EAAG,SAAUL,CAAS,EACpC,SAAA,CAAAM,EAACC,EAAA,CACE,GAAGjB,EACJ,MAAOI,GAAS,GAChB,SAAAC,EACA,MAAAO,EACA,cAAeC,EACf,QAASF,EACT,WAAY,CACV,GAAGd,EACH,GAAGS,EACH,QAAAE,EACC,qBAAuBD,GAAA,YAAAA,EAAO,OAAA,CACjC,CAAA,EAEFS,EAACE,EAAA,CACC,MAAMX,GAAA,YAAAA,EAAO,UAAWT,EACxB,UAAWW,EACX,OAAQF,EAAQ,QAAU,SAC1B,SAAAd,CAAA,CAAA,CACF,EACF,CAEJ"}
@@ -1,2 +1,2 @@
1
- import"react/jsx-runtime";import"classnames";import"tailwind-merge";import"uuid";import"react";import"../../../../button/Button.js";import"../../../../button/model/helpers.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../loader/model/helpers.js";import"../../../../calendar/Calendar.js";import{formatDateToLocaleString as p}from"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../notification/ui/CustomToast.js";import"../../../../table/ui/primitives/Primitives.js";import"@tanstack/react-table";import"../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../carousel/ui/CarouselContent.js";import"../../../../customLink/model/helpers.js";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../../editor/ui/Editor.js";import"../../input/MaskInputControl.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";function et(o,t){switch(o){case"range":const[r,i]=Object.values(t).map(e=>new Date(e));return[r?p(r):void 0,i?p(i):void 0].join("-");case"single":default:const m=t?new Date(t):new Date;return t?p(m):""}}function nt(o,t){switch(o){case"range":if(t){const r=Object.entries(t).map(([i,m])=>[i,new Date(m)]);return Object.fromEntries(r)}return{};case"single":default:return t?new Date(t):new Date}}export{nt as getCurrentDate,et as getInitialValue};
1
+ import"react/jsx-runtime";import"../../../../../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js";import"tailwind-merge";import"uuid";import"react";import"../../../../button/Button.js";import"../../../../button/model/helpers.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../loader/model/helpers.js";import"../../../../calendar/Calendar.js";import{formatDateToLocaleString as p}from"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../notification/ui/CustomToast.js";import"../../../../table/ui/primitives/Primitives.js";import"@tanstack/react-table";import"../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../carousel/ui/CarouselContent.js";import"../../../../customLink/model/helpers.js";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../../editor/ui/Editor.js";import"../../input/MaskInputControl.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";function et(o,t){switch(o){case"range":const[r,i]=Object.values(t).map(e=>new Date(e));return[r?p(r):void 0,i?p(i):void 0].join("-");case"single":default:const m=t?new Date(t):new Date;return t?p(m):""}}function nt(o,t){switch(o){case"range":if(t){const r=Object.entries(t).map(([i,m])=>[i,new Date(m)]);return Object.fromEntries(r)}return{};case"single":default:return t?new Date(t):new Date}}export{nt as getCurrentDate,et as getInitialValue};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.ts"],"sourcesContent":["import type { DateRange } from 'react-day-picker'\nimport { formatDateToLocaleString } from '$/shared/ui'\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\n/**\n * Функция для получения инит состояния поля ввода\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n */\nexport function getInitialValue(mode: 'single', value?: string): string\nexport function getInitialValue(mode: 'range', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'multiple', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'single' | 'multiple' | 'range', value?: IsoDateRange | string) {\n switch (mode) {\n case 'range':\n const [from, to] = Object.values(value as IsoDateRange).map((date) => new Date(date))\n\n return [from ? formatDateToLocaleString(from) : undefined, to ? formatDateToLocaleString(to) : undefined].join('-')\n case 'single':\n default:\n const date = value ? new Date(value as string) : new Date()\n\n return value ? formatDateToLocaleString(date) : ''\n }\n}\n\n/**\n * Функция для получения объекта даты по текущему состоянию\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n *\n * @returns Date если mode 'single'\n * @returns DateRange если mode 'range'\n */\nexport function getCurrentDate(mode: 'single', value?: string): Date\nexport function getCurrentDate(mode: 'range', value?: IsoDateRange): DateRange\nexport function getCurrentDate(mode: 'multiple', value?: IsoDateRange): Date\nexport function getCurrentDate(mode: 'single' | 'multiple' | 'range', value?: string | IsoDateRange): Date | DateRange {\n switch (mode) {\n case 'range':\n if (value) {\n const entries = Object.entries(value as IsoDateRange).map(([key, value]) => [key, new Date(value)])\n\n return Object.fromEntries(entries)\n }\n\n return {} as DateRange\n case 'single':\n default:\n return value ? new Date(value as string) : new Date()\n }\n}\n"],"names":["getInitialValue","mode","value","from","to","date","formatDateToLocaleString","getCurrentDate","entries","key"],"mappings":"6kEAgBO,SAASA,GAAgBC,EAAuCC,EAA+B,CACpG,OAAQD,EAAA,CACN,IAAK,QACH,KAAM,CAACE,EAAMC,CAAE,EAAI,OAAO,OAAOF,CAAqB,EAAE,IAAKG,GAAS,IAAI,KAAKA,CAAI,CAAC,EAEpF,MAAO,CAACF,EAAOG,EAAyBH,CAAI,EAAI,OAAWC,EAAKE,EAAyBF,CAAE,EAAI,MAAS,EAAE,KAAK,GAAG,EACpH,IAAK,SACL,QACE,MAAMC,EAAOH,EAAQ,IAAI,KAAKA,CAAe,MAAQ,KAErD,OAAOA,EAAQI,EAAyBD,CAAI,EAAI,EAAA,CAEtD,CAaO,SAASE,GAAeN,EAAuCC,EAAiD,CACrH,OAAQD,EAAA,CACN,IAAK,QACH,GAAIC,EAAO,CACT,MAAMM,EAAU,OAAO,QAAQN,CAAqB,EAAE,IAAI,CAAC,CAACO,EAAKP,CAAK,IAAM,CAACO,EAAK,IAAI,KAAKP,CAAK,CAAC,CAAC,EAElG,OAAO,OAAO,YAAYM,CAAO,CACnC,CAEA,MAAO,CAAA,EACT,IAAK,SACL,QACE,OAAON,EAAQ,IAAI,KAAKA,CAAe,MAAQ,IAAK,CAE1D"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.ts"],"sourcesContent":["import type { DateRange } from 'react-day-picker'\nimport { formatDateToLocaleString } from '$/shared/ui'\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\n/**\n * Функция для получения инит состояния поля ввода\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n */\nexport function getInitialValue(mode: 'single', value?: string): string\nexport function getInitialValue(mode: 'range', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'multiple', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'single' | 'multiple' | 'range', value?: IsoDateRange | string) {\n switch (mode) {\n case 'range':\n const [from, to] = Object.values(value as IsoDateRange).map((date) => new Date(date))\n\n return [from ? formatDateToLocaleString(from) : undefined, to ? formatDateToLocaleString(to) : undefined].join('-')\n case 'single':\n default:\n const date = value ? new Date(value as string) : new Date()\n\n return value ? formatDateToLocaleString(date) : ''\n }\n}\n\n/**\n * Функция для получения объекта даты по текущему состоянию\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n *\n * @returns Date если mode 'single'\n * @returns DateRange если mode 'range'\n */\nexport function getCurrentDate(mode: 'single', value?: string): Date\nexport function getCurrentDate(mode: 'range', value?: IsoDateRange): DateRange\nexport function getCurrentDate(mode: 'multiple', value?: IsoDateRange): Date\nexport function getCurrentDate(mode: 'single' | 'multiple' | 'range', value?: string | IsoDateRange): Date | DateRange {\n switch (mode) {\n case 'range':\n if (value) {\n const entries = Object.entries(value as IsoDateRange).map(([key, value]) => [key, new Date(value)])\n\n return Object.fromEntries(entries)\n }\n\n return {} as DateRange\n case 'single':\n default:\n return value ? new Date(value as string) : new Date()\n }\n}\n"],"names":["getInitialValue","mode","value","from","to","date","formatDateToLocaleString","getCurrentDate","entries","key"],"mappings":"4pEAgBO,SAASA,GAAgBC,EAAuCC,EAA+B,CACpG,OAAQD,EAAA,CACN,IAAK,QACH,KAAM,CAACE,EAAMC,CAAE,EAAI,OAAO,OAAOF,CAAqB,EAAE,IAAKG,GAAS,IAAI,KAAKA,CAAI,CAAC,EAEpF,MAAO,CAACF,EAAOG,EAAyBH,CAAI,EAAI,OAAWC,EAAKE,EAAyBF,CAAE,EAAI,MAAS,EAAE,KAAK,GAAG,EACpH,IAAK,SACL,QACE,MAAMC,EAAOH,EAAQ,IAAI,KAAKA,CAAe,MAAQ,KAErD,OAAOA,EAAQI,EAAyBD,CAAI,EAAI,EAAA,CAEtD,CAaO,SAASE,GAAeN,EAAuCC,EAAiD,CACrH,OAAQD,EAAA,CACN,IAAK,QACH,GAAIC,EAAO,CACT,MAAMM,EAAU,OAAO,QAAQN,CAAqB,EAAE,IAAI,CAAC,CAACO,EAAKP,CAAK,IAAM,CAACO,EAAK,IAAI,KAAKP,CAAK,CAAC,CAAC,EAElG,OAAO,OAAO,YAAYM,CAAO,CACnC,CAEA,MAAO,CAAA,EACT,IAAK,SACL,QACE,OAAON,EAAQ,IAAI,KAAKA,CAAe,MAAQ,IAAK,CAE1D"}
@@ -1,2 +1,2 @@
1
- import{jsxs as _,jsx as l}from"react/jsx-runtime";import{useRef as j,useState as c}from"react";import{parse as d,isValid as x,format as h}from"date-fns";import{RANGE_MASK as T,SINGLE_VALIDATION_REGEX as y}from"./model/constants.js";import{getCurrentDate as G,getInitialValue as L}from"./model/utils.js";import{useClickOutside as P}from"../../../../hooks/useClickOutside.js";import"react-hook-form";import"@hookform/resolvers/zod";import{cn as I}from"../../../../utils/cn.js";import"uuid";import"../../../button/Button.js";import"../../../button/model/helpers.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../loader/model/helpers.js";import{Calendar as $}from"../../../calendar/Calendar.js";import{DATE_VISIBLE_PATTERN as p}from"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../notification/ui/CustomToast.js";import"../../../table/ui/primitives/Primitives.js";import{Icon as q}from"../../../icon/Icon.js";import"@tanstack/react-table";import"../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../carousel/ui/CarouselContent.js";import"../../../customLink/model/helpers.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/combobox/combobox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import{MaskInput as w}from"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import"../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../src/configs/api.js";import"@floating-ui/react";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"classnames";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";const Xt=({inputProps:C,classes:m,value:f,onChange:a,...R})=>{const u=j(null),{calendar:E,...O}=m||{},[S,n]=c(!1),V=()=>{n(t=>!t)},[b,s]=c(new Date),D=G("range",f),[N,g]=c(L("range",f));P(u,()=>n(!1));const A=t=>{const{value:r}=t.target;if(g(r),!r.length)return a({from:"",to:""});const e=r.split("-");if(e.some(o=>!y.test(o)))return;const i=[["from",d(e[0],p,new Date)],["to",d(e[1],p,new Date)]];if(i.every(([,o])=>x(o))){const o=Object.fromEntries(i.map(([k,v])=>[k,v.toISOString()]));a(o),s(i[Math.round(Math.random())][1])}},M=t=>{s(t.from||t.to||new Date);const r=Object.entries(t).reduce((e,[i,o])=>({...e,[i]:o?o.toISOString():""}),{});a(r),g(`${h(r.from||"",p)}-${h(r.to||"",p)}`),t.from&&t.to&&n(!1)};return _("div",{ref:u,className:I("relative w-full",m==null?void 0:m.container),children:[l(w,{mask:T,...C,classes:O,value:N,onChange:A,onFocus:()=>n(!0),attachmentProps:{icon:l(q,{name:"general/calendar",className:"text-icon-blue-grey-600"}),onClickIcon:V}}),S&&l($,{...R,required:!0,mode:"range",month:b,onMonthChange:s,selected:D,onSelect:M,className:I("absolute right-0 top-full",E)})]})};export{Xt as RangeDayPicker};
1
+ import{jsxs as _,jsx as l}from"react/jsx-runtime";import{useRef as j,useState as c}from"react";import{parse as d,isValid as x,format as h}from"date-fns";import{RANGE_MASK as T,SINGLE_VALIDATION_REGEX as y}from"./model/constants.js";import{getCurrentDate as G,getInitialValue as L}from"./model/utils.js";import{useClickOutside as P}from"../../../../hooks/useClickOutside.js";import"react-hook-form";import"@hookform/resolvers/zod";import{cn as I}from"../../../../utils/cn.js";import"uuid";import"../../../button/Button.js";import"../../../button/model/helpers.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../loader/model/helpers.js";import{Calendar as $}from"../../../calendar/Calendar.js";import{DATE_VISIBLE_PATTERN as p}from"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../notification/ui/CustomToast.js";import"../../../table/ui/primitives/Primitives.js";import{Icon as q}from"../../../icon/Icon.js";import"@tanstack/react-table";import"../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../carousel/ui/CarouselContent.js";import"../../../customLink/model/helpers.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/combobox/combobox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import{MaskInput as w}from"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import"../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../src/configs/api.js";import"@floating-ui/react";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"../../../../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";const Xt=({inputProps:C,classes:m,value:f,onChange:a,...R})=>{const u=j(null),{calendar:E,...O}=m||{},[S,n]=c(!1),V=()=>{n(t=>!t)},[b,s]=c(new Date),D=G("range",f),[N,g]=c(L("range",f));P(u,()=>n(!1));const A=t=>{const{value:r}=t.target;if(g(r),!r.length)return a({from:"",to:""});const e=r.split("-");if(e.some(o=>!y.test(o)))return;const i=[["from",d(e[0],p,new Date)],["to",d(e[1],p,new Date)]];if(i.every(([,o])=>x(o))){const o=Object.fromEntries(i.map(([k,v])=>[k,v.toISOString()]));a(o),s(i[Math.round(Math.random())][1])}},M=t=>{s(t.from||t.to||new Date);const r=Object.entries(t).reduce((e,[i,o])=>({...e,[i]:o?o.toISOString():""}),{});a(r),g(`${h(r.from||"",p)}-${h(r.to||"",p)}`),t.from&&t.to&&n(!1)};return _("div",{ref:u,className:I("relative w-full",m==null?void 0:m.container),children:[l(w,{mask:T,...C,classes:O,value:N,onChange:A,onFocus:()=>n(!0),attachmentProps:{icon:l(q,{name:"general/calendar",className:"text-icon-blue-grey-600"}),onClickIcon:V}}),S&&l($,{...R,required:!0,mode:"range",month:b,onMonthChange:s,selected:D,onSelect:M,className:I("absolute right-0 top-full",E)})]})};export{Xt as RangeDayPicker};
2
2
  //# sourceMappingURL=range.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"range.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/range.tsx"],"sourcesContent":["'use client'\n\nimport { useRef, useState } from 'react'\nimport { type DateRange } from 'react-day-picker'\nimport { format, isValid, parse } from 'date-fns'\nimport { getCurrentDate, getInitialValue, RANGE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype RangeDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\ntype RangeDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: RangeDayPickerClasses\n /**\n * Управляемое значение\n */\n value: IsoDateRange\n /**\n * Функция для управления значением\n */\n onChange: (value: IsoDateRange) => void\n}\n\nexport const RangeDayPicker = ({ inputProps, classes, value, onChange, ...props }: RangeDayPickerProps) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const [month, setMonth] = useState<Date>(new Date())\n const date = getCurrentDate('range', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('range', value))\n\n useClickOutside(containerRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (!value.length) {\n return onChange({\n from: '',\n to: ''\n })\n }\n\n const isoDateRange = value.split('-')\n\n if (isoDateRange.some((date) => !SINGLE_VALIDATION_REGEX.test(date))) {\n return\n }\n\n const dateRangeEntries = [\n ['from', parse(isoDateRange[0], DATE_VISIBLE_PATTERN, new Date())],\n ['to', parse(isoDateRange[1], DATE_VISIBLE_PATTERN, new Date())]\n ] as [string, Date][]\n\n if (dateRangeEntries.every(([, date]) => isValid(date))) {\n const dateRange = Object.fromEntries(dateRangeEntries.map(([key, value]) => [key, value.toISOString()]))\n\n onChange(dateRange)\n setMonth(dateRangeEntries[Math.round(Math.random())][1])\n }\n }\n\n const onDateChange = (newDate: DateRange) => {\n setMonth(newDate.from || newDate.to || new Date())\n\n const isoDateRange = Object.entries(newDate).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: value ? value.toISOString() : ''\n }),\n {} as IsoDateRange\n )\n\n onChange(isoDateRange)\n setVisibleValue(\n `${format(isoDateRange.from || '', DATE_VISIBLE_PATTERN)}-${format(isoDateRange.to || '', DATE_VISIBLE_PATTERN)}`\n )\n\n if (newDate.from && newDate.to) {\n setCalendarOpen(false)\n }\n }\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={RANGE_MASK}\n {...inputProps}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n onFocus={() => setCalendarOpen(true)}\n attachmentProps={{\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange\n }}\n />\n {calendarOpen && (\n <Calendar\n {...props}\n required\n mode='range'\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n className={cn('absolute right-0 top-full', calendar)}\n />\n )}\n </div>\n )\n}\n"],"names":["RangeDayPicker","inputProps","classes","value","onChange","props","containerRef","useRef","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","month","setMonth","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useClickOutside","onVisibleValueChange","event","isoDateRange","SINGLE_VALIDATION_REGEX","dateRangeEntries","parse","DATE_VISIBLE_PATTERN","isValid","dateRange","key","onDateChange","newDate","acc","format","jsxs","cn","jsx","MaskInput","RANGE_MASK","Icon","Calendar"],"mappings":"64EAwCO,MAAMA,GAAiB,CAAC,CAAE,WAAAC,EAAY,QAAAC,EAAS,MAAAC,EAAO,SAAAC,EAAU,GAAGC,KAAiC,CACzG,MAAMC,EAAeC,EAAuB,IAAI,EAC1C,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAgBP,GAAW,CAAA,EAE1C,CAACQ,EAAcC,CAAe,EAAIC,EAAkB,EAAK,EACzDC,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CACjC,EAEM,CAACC,EAAOC,CAAQ,EAAIJ,EAAe,IAAI,IAAM,EAC7CK,EAAOC,EAAe,QAASf,CAAK,EAEpC,CAACgB,EAAcC,CAAe,EAAIR,EAAiBS,EAAgB,QAASlB,CAAK,CAAC,EAExFmB,EAAgBhB,EAAc,IAAMK,EAAgB,EAAK,CAAC,EAE1D,MAAMY,EAAwBC,GAA+C,CAC3E,KAAM,CAAE,MAAArB,CAAAA,EAAUqB,EAAM,OAIxB,GAFAJ,EAAgBjB,CAAK,EAEjB,CAACA,EAAM,OACT,OAAOC,EAAS,CACd,KAAM,GACN,GAAI,EAAA,CACL,EAGH,MAAMqB,EAAetB,EAAM,MAAM,GAAG,EAEpC,GAAIsB,EAAa,KAAMR,GAAS,CAACS,EAAwB,KAAKT,CAAI,CAAC,EACjE,OAGF,MAAMU,EAAmB,CACvB,CAAC,OAAQC,EAAMH,EAAa,CAAC,EAAGI,EAAsB,IAAI,IAAM,CAAC,EACjE,CAAC,KAAMD,EAAMH,EAAa,CAAC,EAAGI,EAAsB,IAAI,IAAM,CAAC,CAAA,EAGjE,GAAIF,EAAiB,MAAM,CAAC,CAAA,CAAGV,CAAI,IAAMa,EAAQb,CAAI,CAAC,EAAG,CACvD,MAAMc,EAAY,OAAO,YAAYJ,EAAiB,IAAI,CAAC,CAACK,EAAK7B,CAAK,IAAM,CAAC6B,EAAK7B,EAAM,YAAA,CAAa,CAAC,CAAC,EAEvGC,EAAS2B,CAAS,EAClBf,EAASW,EAAiB,KAAK,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CACzD,CACF,EAEMM,EAAgBC,GAAuB,CAC3ClB,EAASkB,EAAQ,MAAQA,EAAQ,IAAM,IAAI,IAAM,EAEjD,MAAMT,EAAe,OAAO,QAAQS,CAAO,EAAE,OAC3C,CAACC,EAAK,CAACH,EAAK7B,CAAK,KAAO,CACtB,GAAGgC,EACH,CAACH,CAAG,EAAG7B,EAAQA,EAAM,cAAgB,EAAA,GAEvC,CAAA,CAAC,EAGHC,EAASqB,CAAY,EACrBL,EACE,GAAGgB,EAAOX,EAAa,MAAQ,GAAII,CAAoB,CAAC,IAAIO,EAAOX,EAAa,IAAM,GAAII,CAAoB,CAAC,EAAA,EAG7GK,EAAQ,MAAQA,EAAQ,IAC1BvB,EAAgB,EAAK,CAEzB,EAEA,OACE0B,EAAC,OAAI,IAAK/B,EAAc,UAAWgC,EAAG,kBAAmBpC,GAAA,YAAAA,EAAS,SAAS,EACzE,SAAA,CAAAqC,EAACC,EAAA,CACC,KAAMC,EACL,GAAGxC,EACJ,QAASQ,EACT,MAAOU,EACP,SAAUI,EACV,QAAS,IAAMZ,EAAgB,EAAI,EACnC,gBAAiB,CACf,KAAM4B,EAACG,EAAA,CAAK,KAAK,mBAAmB,UAAU,0BAA0B,EACxE,YAAa7B,CAAA,CACf,CAAA,EAEDH,GACC6B,EAACI,EAAA,CACE,GAAGtC,EACJ,SAAQ,GACR,KAAK,QACL,MAAAU,EACA,cAAeC,EACf,SAAUC,EACV,SAAUgB,EACV,UAAWK,EAAG,4BAA6B9B,CAAQ,CAAA,CAAA,CACrD,EAEJ,CAEJ"}
1
+ {"version":3,"file":"range.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/range.tsx"],"sourcesContent":["'use client'\n\nimport { useRef, useState } from 'react'\nimport { type DateRange } from 'react-day-picker'\nimport { format, isValid, parse } from 'date-fns'\nimport { getCurrentDate, getInitialValue, RANGE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype RangeDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\ntype RangeDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: RangeDayPickerClasses\n /**\n * Управляемое значение\n */\n value: IsoDateRange\n /**\n * Функция для управления значением\n */\n onChange: (value: IsoDateRange) => void\n}\n\nexport const RangeDayPicker = ({ inputProps, classes, value, onChange, ...props }: RangeDayPickerProps) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const [month, setMonth] = useState<Date>(new Date())\n const date = getCurrentDate('range', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('range', value))\n\n useClickOutside(containerRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (!value.length) {\n return onChange({\n from: '',\n to: ''\n })\n }\n\n const isoDateRange = value.split('-')\n\n if (isoDateRange.some((date) => !SINGLE_VALIDATION_REGEX.test(date))) {\n return\n }\n\n const dateRangeEntries = [\n ['from', parse(isoDateRange[0], DATE_VISIBLE_PATTERN, new Date())],\n ['to', parse(isoDateRange[1], DATE_VISIBLE_PATTERN, new Date())]\n ] as [string, Date][]\n\n if (dateRangeEntries.every(([, date]) => isValid(date))) {\n const dateRange = Object.fromEntries(dateRangeEntries.map(([key, value]) => [key, value.toISOString()]))\n\n onChange(dateRange)\n setMonth(dateRangeEntries[Math.round(Math.random())][1])\n }\n }\n\n const onDateChange = (newDate: DateRange) => {\n setMonth(newDate.from || newDate.to || new Date())\n\n const isoDateRange = Object.entries(newDate).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: value ? value.toISOString() : ''\n }),\n {} as IsoDateRange\n )\n\n onChange(isoDateRange)\n setVisibleValue(\n `${format(isoDateRange.from || '', DATE_VISIBLE_PATTERN)}-${format(isoDateRange.to || '', DATE_VISIBLE_PATTERN)}`\n )\n\n if (newDate.from && newDate.to) {\n setCalendarOpen(false)\n }\n }\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={RANGE_MASK}\n {...inputProps}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n onFocus={() => setCalendarOpen(true)}\n attachmentProps={{\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange\n }}\n />\n {calendarOpen && (\n <Calendar\n {...props}\n required\n mode='range'\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n className={cn('absolute right-0 top-full', calendar)}\n />\n )}\n </div>\n )\n}\n"],"names":["RangeDayPicker","inputProps","classes","value","onChange","props","containerRef","useRef","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","month","setMonth","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useClickOutside","onVisibleValueChange","event","isoDateRange","SINGLE_VALIDATION_REGEX","dateRangeEntries","parse","DATE_VISIBLE_PATTERN","isValid","dateRange","key","onDateChange","newDate","acc","format","jsxs","cn","jsx","MaskInput","RANGE_MASK","Icon","Calendar"],"mappings":"y9EAwCO,MAAMA,GAAiB,CAAC,CAAE,WAAAC,EAAY,QAAAC,EAAS,MAAAC,EAAO,SAAAC,EAAU,GAAGC,KAAiC,CACzG,MAAMC,EAAeC,EAAuB,IAAI,EAC1C,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAgBP,GAAW,CAAA,EAE1C,CAACQ,EAAcC,CAAe,EAAIC,EAAkB,EAAK,EACzDC,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CACjC,EAEM,CAACC,EAAOC,CAAQ,EAAIJ,EAAe,IAAI,IAAM,EAC7CK,EAAOC,EAAe,QAASf,CAAK,EAEpC,CAACgB,EAAcC,CAAe,EAAIR,EAAiBS,EAAgB,QAASlB,CAAK,CAAC,EAExFmB,EAAgBhB,EAAc,IAAMK,EAAgB,EAAK,CAAC,EAE1D,MAAMY,EAAwBC,GAA+C,CAC3E,KAAM,CAAE,MAAArB,CAAAA,EAAUqB,EAAM,OAIxB,GAFAJ,EAAgBjB,CAAK,EAEjB,CAACA,EAAM,OACT,OAAOC,EAAS,CACd,KAAM,GACN,GAAI,EAAA,CACL,EAGH,MAAMqB,EAAetB,EAAM,MAAM,GAAG,EAEpC,GAAIsB,EAAa,KAAMR,GAAS,CAACS,EAAwB,KAAKT,CAAI,CAAC,EACjE,OAGF,MAAMU,EAAmB,CACvB,CAAC,OAAQC,EAAMH,EAAa,CAAC,EAAGI,EAAsB,IAAI,IAAM,CAAC,EACjE,CAAC,KAAMD,EAAMH,EAAa,CAAC,EAAGI,EAAsB,IAAI,IAAM,CAAC,CAAA,EAGjE,GAAIF,EAAiB,MAAM,CAAC,CAAA,CAAGV,CAAI,IAAMa,EAAQb,CAAI,CAAC,EAAG,CACvD,MAAMc,EAAY,OAAO,YAAYJ,EAAiB,IAAI,CAAC,CAACK,EAAK7B,CAAK,IAAM,CAAC6B,EAAK7B,EAAM,YAAA,CAAa,CAAC,CAAC,EAEvGC,EAAS2B,CAAS,EAClBf,EAASW,EAAiB,KAAK,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CACzD,CACF,EAEMM,EAAgBC,GAAuB,CAC3ClB,EAASkB,EAAQ,MAAQA,EAAQ,IAAM,IAAI,IAAM,EAEjD,MAAMT,EAAe,OAAO,QAAQS,CAAO,EAAE,OAC3C,CAACC,EAAK,CAACH,EAAK7B,CAAK,KAAO,CACtB,GAAGgC,EACH,CAACH,CAAG,EAAG7B,EAAQA,EAAM,cAAgB,EAAA,GAEvC,CAAA,CAAC,EAGHC,EAASqB,CAAY,EACrBL,EACE,GAAGgB,EAAOX,EAAa,MAAQ,GAAII,CAAoB,CAAC,IAAIO,EAAOX,EAAa,IAAM,GAAII,CAAoB,CAAC,EAAA,EAG7GK,EAAQ,MAAQA,EAAQ,IAC1BvB,EAAgB,EAAK,CAEzB,EAEA,OACE0B,EAAC,OAAI,IAAK/B,EAAc,UAAWgC,EAAG,kBAAmBpC,GAAA,YAAAA,EAAS,SAAS,EACzE,SAAA,CAAAqC,EAACC,EAAA,CACC,KAAMC,EACL,GAAGxC,EACJ,QAASQ,EACT,MAAOU,EACP,SAAUI,EACV,QAAS,IAAMZ,EAAgB,EAAI,EACnC,gBAAiB,CACf,KAAM4B,EAACG,EAAA,CAAK,KAAK,mBAAmB,UAAU,0BAA0B,EACxE,YAAa7B,CAAA,CACf,CAAA,EAEDH,GACC6B,EAACI,EAAA,CACE,GAAGtC,EACJ,SAAQ,GACR,KAAK,QACL,MAAAU,EACA,cAAeC,EACf,SAAUC,EACV,SAAUgB,EACV,UAAWK,EAAG,4BAA6B9B,CAAQ,CAAA,CAAA,CACrD,EAEJ,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsxs as _,jsx as c}from"react/jsx-runtime";import{useRef as G,useState as E,useEffect as P}from"react";import{createPortal as j}from"react-dom";import{useFloating as K,autoUpdate as q,flip as B,offset as H}from"@floating-ui/react";import{parse as U,isValid as X,format as v}from"date-fns";import{SINGLE_MASK as z,SINGLE_VALIDATION_REGEX as J}from"./model/constants.js";import{getCurrentDate as Q,getInitialValue as I}from"./model/utils.js";import{useClickOutside as W}from"../../../../hooks/useClickOutside.js";import"react-hook-form";import"@hookform/resolvers/zod";import{cn as b}from"../../../../utils/cn.js";import{mergeRefs as Y}from"../../../../utils/mergeRefs.js";import{TypeGuards as O}from"../../../../utils/typeGuards.js";import"uuid";import"../../../button/Button.js";import"../../../button/model/helpers.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../loader/model/helpers.js";import{Calendar as Z}from"../../../calendar/Calendar.js";import{DATE_VISIBLE_PATTERN as V}from"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"framer-motion";import"../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../notification/ui/CustomToast.js";import"../../../table/ui/primitives/Primitives.js";import{Icon as $}from"../../../icon/Icon.js";import"@tanstack/react-table";import"../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../carousel/ui/CarouselContent.js";import"../../../customLink/model/helpers.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/combobox/combobox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import{MaskInput as h}from"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import"../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../src/configs/api.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"classnames";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";const or=({inputProps:s,classes:o,value:r,onChange:p,externalHandlers:x,month:D,onMonthChange:e,...m})=>{const{onChange:a,onFocus:d,...A}=x||{},u=G(null),{refs:g,floatingStyles:N}=K({placement:"bottom-end",middleware:[B({boundary:"clippingAncestors",crossAxis:!1}),H(0)],whileElementsMounted:q}),{calendar:k,...C}=o||{},[L,n]=E(!1),S=()=>{n(t=>!t)},R=Q("single",r),[w,l]=E(I("single",r));P(()=>{r&&!O.isStringEmpty(r)&&(l(I("single",r)),e&&e(new Date(r)))},[r]),W(u,()=>n(!1));const F=t=>{const{value:i}=t.target;if(l(i),O.isStringEmpty(i))return p("");if(!J.test(i))return;const f=U(i,V,new Date);if(X(f)){const y=f.toISOString();p(y),e&&e(f),a&&a(y)}},T=t=>{e&&e(t);const i=t.toISOString();p(i),l(v(t,V)),n(!1),a&&a(i)};return _("div",{ref:g.setReference,className:b("relative w-full",o==null?void 0:o.container),children:[c(h,{mask:z,...s,...A,classes:C,value:w,onChange:F,autoComplete:"off",onFocus:t=>{n(!0),d&&d(t)},onKeyDown:t=>{t.key==="Enter"&&S()},attachmentProps:{disabled:s.disabled,icon:c($,{name:"general/calendar",className:"text-icon-blue-grey-600"}),onClickIcon:S,...s.attachmentProps},dataLayers:m==null?void 0:m.dataLayers}),L&&j(c(Z,{ref:Y(u,g.setFloating),...m,required:!0,mode:"single",style:{...N,width:"max-content"},month:D,onMonthChange:e,selected:R,onSelect:T,className:b(k),"data-id":"calendar"}),document.body)]})};export{or as SingleDayPicker};
1
+ import{jsxs as _,jsx as c}from"react/jsx-runtime";import{useRef as G,useState as E,useEffect as P}from"react";import{createPortal as j}from"react-dom";import{useFloating as K,autoUpdate as q,flip as B,offset as H}from"@floating-ui/react";import{parse as U,isValid as X,format as v}from"date-fns";import{SINGLE_MASK as z,SINGLE_VALIDATION_REGEX as J}from"./model/constants.js";import{getCurrentDate as Q,getInitialValue as I}from"./model/utils.js";import{useClickOutside as W}from"../../../../hooks/useClickOutside.js";import"react-hook-form";import"@hookform/resolvers/zod";import{cn as b}from"../../../../utils/cn.js";import{mergeRefs as Y}from"../../../../utils/mergeRefs.js";import{TypeGuards as O}from"../../../../utils/typeGuards.js";import"uuid";import"../../../button/Button.js";import"../../../button/model/helpers.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../loader/model/helpers.js";import{Calendar as Z}from"../../../calendar/Calendar.js";import{DATE_VISIBLE_PATTERN as V}from"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"framer-motion";import"../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../notification/ui/CustomToast.js";import"../../../table/ui/primitives/Primitives.js";import{Icon as $}from"../../../icon/Icon.js";import"@tanstack/react-table";import"../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../carousel/ui/CarouselContent.js";import"../../../customLink/model/helpers.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/combobox/combobox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import{MaskInput as h}from"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../../uncontrolled/inputCurrency/InputCurrency.js";import"../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../src/configs/api.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"../../../../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";const or=({inputProps:s,classes:o,value:r,onChange:p,externalHandlers:x,month:D,onMonthChange:e,...m})=>{const{onChange:a,onFocus:d,...A}=x||{},u=G(null),{refs:g,floatingStyles:N}=K({placement:"bottom-end",middleware:[B({boundary:"clippingAncestors",crossAxis:!1}),H(0)],whileElementsMounted:q}),{calendar:k,...C}=o||{},[L,n]=E(!1),S=()=>{n(t=>!t)},R=Q("single",r),[w,l]=E(I("single",r));P(()=>{r&&!O.isStringEmpty(r)&&(l(I("single",r)),e&&e(new Date(r)))},[r]),W(u,()=>n(!1));const F=t=>{const{value:i}=t.target;if(l(i),O.isStringEmpty(i))return p("");if(!J.test(i))return;const f=U(i,V,new Date);if(X(f)){const y=f.toISOString();p(y),e&&e(f),a&&a(y)}},T=t=>{e&&e(t);const i=t.toISOString();p(i),l(v(t,V)),n(!1),a&&a(i)};return _("div",{ref:g.setReference,className:b("relative w-full",o==null?void 0:o.container),children:[c(h,{mask:z,...s,...A,classes:C,value:w,onChange:F,autoComplete:"off",onFocus:t=>{n(!0),d&&d(t)},onKeyDown:t=>{t.key==="Enter"&&S()},attachmentProps:{disabled:s.disabled,icon:c($,{name:"general/calendar",className:"text-icon-blue-grey-600"}),onClickIcon:S,...s.attachmentProps},dataLayers:m==null?void 0:m.dataLayers}),L&&j(c(Z,{ref:Y(u,g.setFloating),...m,required:!0,mode:"single",style:{...N,width:"max-content"},month:D,onMonthChange:e,selected:R,onSelect:T,className:b(k),"data-id":"calendar"}),document.body)]})};export{or as SingleDayPicker};
2
2
  //# sourceMappingURL=single.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"single.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/single.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { format, isValid, parse } from 'date-fns'\nimport { type DataLayers } from '../../../../types'\nimport { type ExternalHandlers } from './dayPickerControl'\nimport { getCurrentDate, getInitialValue, SINGLE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn, mergeRefs, TypeGuards } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype SingleDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype SingleDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: SingleDayPickerClasses\n /**\n * Управляемое значение\n */\n value: string\n /**\n * Функция для управления значением\n */\n onChange: (value: string) => void\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n}\n\nexport const SingleDayPicker = ({\n inputProps,\n classes,\n value,\n onChange,\n externalHandlers,\n month,\n onMonthChange,\n ...props\n}: SingleDayPickerProps) => {\n const { onChange: externalOnChange, onFocus: externalOnFocus, ...restHandlers } = externalHandlers || {}\n\n const calendarRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating({\n placement: 'bottom-end',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(0)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const date = getCurrentDate('single', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('single', value))\n\n useEffect(() => {\n if (value && !TypeGuards.isStringEmpty(value)) {\n setVisibleValue(getInitialValue('single', value))\n if (onMonthChange) onMonthChange(new Date(value))\n }\n }, [value])\n\n useClickOutside(calendarRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (TypeGuards.isStringEmpty(value)) {\n return onChange('')\n }\n\n if (!SINGLE_VALIDATION_REGEX.test(value)) {\n return\n }\n\n const date = parse(value, DATE_VISIBLE_PATTERN, new Date())\n\n if (isValid(date)) {\n const isoDate = date.toISOString()\n\n onChange(isoDate)\n if (onMonthChange) onMonthChange(date)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n }\n\n const onDateChange = (newDate: Date) => {\n if (onMonthChange) onMonthChange(newDate)\n\n const isoDate = newDate.toISOString()\n\n onChange(isoDate)\n setVisibleValue(format(newDate, DATE_VISIBLE_PATTERN))\n setCalendarOpen(false)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={SINGLE_MASK}\n {...inputProps}\n {...restHandlers}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n autoComplete='off'\n onFocus={(event) => {\n setCalendarOpen(true)\n if (externalOnFocus) externalOnFocus(event)\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n onCalendarOpenChange()\n }\n }}\n attachmentProps={{\n disabled: inputProps.disabled,\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange,\n ...inputProps.attachmentProps\n }}\n dataLayers={props?.dataLayers}\n />\n {calendarOpen &&\n createPortal(\n <Calendar\n // @ts-expect-error asdf\n ref={mergeRefs(calendarRef, refs.setFloating)}\n {...props}\n required\n mode='single'\n style={{\n ...floatingStyles,\n width: 'max-content'\n }}\n month={month}\n onMonthChange={onMonthChange}\n selected={date}\n onSelect={onDateChange}\n className={cn(calendar)}\n data-id='calendar'\n />,\n document.body\n )}\n </div>\n )\n}\n"],"names":["SingleDayPicker","inputProps","classes","value","onChange","externalHandlers","month","onMonthChange","props","externalOnChange","externalOnFocus","restHandlers","calendarRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useEffect","TypeGuards","useClickOutside","onVisibleValueChange","event","SINGLE_VALIDATION_REGEX","parse","DATE_VISIBLE_PATTERN","isValid","isoDate","onDateChange","newDate","format","jsxs","cn","jsx","MaskInput","SINGLE_MASK","Icon","createPortal","Calendar","mergeRefs"],"mappings":"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"}
1
+ {"version":3,"file":"single.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/single.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { format, isValid, parse } from 'date-fns'\nimport { type DataLayers } from '../../../../types'\nimport { type ExternalHandlers } from './dayPickerControl'\nimport { getCurrentDate, getInitialValue, SINGLE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn, mergeRefs, TypeGuards } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype SingleDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype SingleDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: SingleDayPickerClasses\n /**\n * Управляемое значение\n */\n value: string\n /**\n * Функция для управления значением\n */\n onChange: (value: string) => void\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Даталееры\n */\n dataLayers?: DataLayers\n}\n\nexport const SingleDayPicker = ({\n inputProps,\n classes,\n value,\n onChange,\n externalHandlers,\n month,\n onMonthChange,\n ...props\n}: SingleDayPickerProps) => {\n const { onChange: externalOnChange, onFocus: externalOnFocus, ...restHandlers } = externalHandlers || {}\n\n const calendarRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating({\n placement: 'bottom-end',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(0)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const date = getCurrentDate('single', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('single', value))\n\n useEffect(() => {\n if (value && !TypeGuards.isStringEmpty(value)) {\n setVisibleValue(getInitialValue('single', value))\n if (onMonthChange) onMonthChange(new Date(value))\n }\n }, [value])\n\n useClickOutside(calendarRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (TypeGuards.isStringEmpty(value)) {\n return onChange('')\n }\n\n if (!SINGLE_VALIDATION_REGEX.test(value)) {\n return\n }\n\n const date = parse(value, DATE_VISIBLE_PATTERN, new Date())\n\n if (isValid(date)) {\n const isoDate = date.toISOString()\n\n onChange(isoDate)\n if (onMonthChange) onMonthChange(date)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n }\n\n const onDateChange = (newDate: Date) => {\n if (onMonthChange) onMonthChange(newDate)\n\n const isoDate = newDate.toISOString()\n\n onChange(isoDate)\n setVisibleValue(format(newDate, DATE_VISIBLE_PATTERN))\n setCalendarOpen(false)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={SINGLE_MASK}\n {...inputProps}\n {...restHandlers}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n autoComplete='off'\n onFocus={(event) => {\n setCalendarOpen(true)\n if (externalOnFocus) externalOnFocus(event)\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n onCalendarOpenChange()\n }\n }}\n attachmentProps={{\n disabled: inputProps.disabled,\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange,\n ...inputProps.attachmentProps\n }}\n dataLayers={props?.dataLayers}\n />\n {calendarOpen &&\n createPortal(\n <Calendar\n // @ts-expect-error asdf\n ref={mergeRefs(calendarRef, refs.setFloating)}\n {...props}\n required\n mode='single'\n style={{\n ...floatingStyles,\n width: 'max-content'\n }}\n month={month}\n onMonthChange={onMonthChange}\n selected={date}\n onSelect={onDateChange}\n className={cn(calendar)}\n data-id='calendar'\n />,\n document.body\n )}\n </div>\n )\n}\n"],"names":["SingleDayPicker","inputProps","classes","value","onChange","externalHandlers","month","onMonthChange","props","externalOnChange","externalOnFocus","restHandlers","calendarRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useEffect","TypeGuards","useClickOutside","onVisibleValueChange","event","SINGLE_VALIDATION_REGEX","parse","DATE_VISIBLE_PATTERN","isValid","isoDate","onDateChange","newDate","format","jsxs","cn","jsx","MaskInput","SINGLE_MASK","Icon","createPortal","Calendar","mergeRefs"],"mappings":"orFA8CO,MAAMA,GAAkB,CAAC,CAC9B,WAAAC,EACA,QAAAC,EACA,MAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,MAAAC,EACA,cAAAC,EACA,GAAGC,CACL,IAA4B,CAC1B,KAAM,CAAE,SAAUC,EAAkB,QAASC,EAAiB,GAAGC,CAAA,EAAiBN,GAAoB,CAAA,EAEhGO,EAAcC,EAAuB,IAAI,EAEzC,CAAE,KAAAC,EAAM,eAAAC,CAAA,EAAmBC,EAAY,CAC3C,UAAW,aACX,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,EAAO,CAAC,CAAA,EAEV,qBAAsBC,CAAA,CACvB,EAEK,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAgBnB,GAAW,CAAA,EAE1C,CAACoB,EAAcC,CAAe,EAAIC,EAAkB,EAAK,EAEzDC,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CACjC,EAEMC,EAAOC,EAAe,SAAUzB,CAAK,EAErC,CAAC0B,EAAcC,CAAe,EAAIN,EAAiBO,EAAgB,SAAU5B,CAAK,CAAC,EAEzF6B,EAAU,IAAM,CACV7B,GAAS,CAAC8B,EAAW,cAAc9B,CAAK,IAC1C2B,EAAgBC,EAAgB,SAAU5B,CAAK,CAAC,EAC5CI,GAAeA,EAAc,IAAI,KAAKJ,CAAK,CAAC,EAEpD,EAAG,CAACA,CAAK,CAAC,EAEV+B,EAAgBtB,EAAa,IAAMW,EAAgB,EAAK,CAAC,EAEzD,MAAMY,EAAwBC,GAA+C,CAC3E,KAAM,CAAE,MAAAjC,CAAAA,EAAUiC,EAAM,OAIxB,GAFAN,EAAgB3B,CAAK,EAEjB8B,EAAW,cAAc9B,CAAK,EAChC,OAAOC,EAAS,EAAE,EAGpB,GAAI,CAACiC,EAAwB,KAAKlC,CAAK,EACrC,OAGF,MAAMwB,EAAOW,EAAMnC,EAAOoC,EAAsB,IAAI,IAAM,EAE1D,GAAIC,EAAQb,CAAI,EAAG,CACjB,MAAMc,EAAUd,EAAK,YAAA,EAErBvB,EAASqC,CAAO,EACZlC,KAA6BoB,CAAI,EAEjClB,KAAmCgC,CAAO,CAChD,CACF,EAEMC,EAAgBC,GAAkB,CAClCpC,KAA6BoC,CAAO,EAExC,MAAMF,EAAUE,EAAQ,YAAA,EAExBvC,EAASqC,CAAO,EAChBX,EAAgBc,EAAOD,EAASJ,CAAoB,CAAC,EACrDhB,EAAgB,EAAK,EAEjBd,KAAmCgC,CAAO,CAChD,EAEA,OACEI,EAAC,MAAA,CAAI,IAAK/B,EAAK,aAAc,UAAWgC,EAAG,kBAAmB5C,GAAA,YAAAA,EAAS,SAAS,EAC9E,SAAA,CAAA6C,EAACC,EAAA,CACC,KAAMC,EACL,GAAGhD,EACH,GAAGU,EACJ,QAASU,EACT,MAAOQ,EACP,SAAUM,EACV,aAAa,MACb,QAAUC,GAAU,CAClBb,EAAgB,EAAI,EAChBb,KAAiC0B,CAAK,CAC5C,EACA,UAAYA,GAAU,CAChBA,EAAM,MAAQ,SAChBX,EAAA,CAEJ,EACA,gBAAiB,CACf,SAAUxB,EAAW,SACrB,KAAM8C,EAACG,EAAA,CAAK,KAAK,mBAAmB,UAAU,0BAA0B,EACxE,YAAazB,EACb,GAAGxB,EAAW,eAAA,EAEhB,WAAYO,GAAA,YAAAA,EAAO,UAAA,CAAA,EAEpBc,GACC6B,EACEJ,EAACK,EAAA,CAEC,IAAKC,EAAUzC,EAAaE,EAAK,WAAW,EAC3C,GAAGN,EACJ,SAAQ,GACR,KAAK,SACL,MAAO,CACL,GAAGO,EACH,MAAO,aAAA,EAET,MAAAT,EACA,cAAAC,EACA,SAAUoB,EACV,SAAUe,EACV,UAAWI,EAAG1B,CAAQ,EACtB,UAAQ,UAAA,CAAA,EAEV,SAAS,IAAA,CACX,EACJ,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsx as o}from"react/jsx-runtime";import"classnames";import"tailwind-merge";import"uuid";import"react";import"../../../../button/Button.js";import"../../../../button/model/helpers.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../loader/model/helpers.js";import"../../../../calendar/Calendar.js";import"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../notification/ui/CustomToast.js";import"../../../../table/ui/primitives/Primitives.js";import{Icon as e}from"../../../../icon/Icon.js";import"@tanstack/react-table";import"../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../carousel/ui/CarouselContent.js";import"../../../../customLink/model/helpers.js";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../ui/Editor.js";import"../../input/MaskInputControl.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const li=[1,2,3,4],ti={1:"mob-headline-bold-m desktop:desk-headline-bold-l",2:"mob-headline-bold-s desktop:desk-headline-bold-m",3:"mob-title-bold-l desktop:desk-title-bold-l",4:"mob-title-bold-m desktop:desk-title-bold-s"},ri=()=>[{label:"br",handler:i=>i.chain().focus().setHardBreak().run()},{label:"br 🖥️",handler:i=>i.chain().focus().setHardBreakDesktop().run()},{label:"br 📱",handler:i=>i.chain().focus().setHardBreakMobile().run()}],ai=[{label:"12px",value:"12px"},{label:"14px",value:"14px"},{label:"16px",value:"16px"},{label:"18px",value:"18px"},{label:"20px",value:"20px"},{label:"24px",value:"24px"}],ni=["#292929","#FFFFFF","#40465A","#5A6E85","#A9B6C5","#94A4B7","#003790","#042E73","#809BC7","#76BC21","#F49F00","#F42500"],si=i=>[{label:"Жирный текст",icon:o(e,{name:"editor/bold",className:"size-4"}),onClick:()=>i.chain().focus().toggleBold().run(),isActive:i.isActive("bold")},{label:"Курсивный текст",icon:o(e,{name:"editor/italic",className:"size-4"}),onClick:()=>i.chain().focus().toggleItalic().run(),isActive:i.isActive("italic")},{label:"Подчеркнутый текст",icon:o(e,{name:"editor/underline",className:"size-4"}),onClick:()=>i.chain().focus().toggleUnderline().run(),isActive:i.isActive("underline")},{label:"Зачеркнутый текст",icon:o(e,{name:"editor/strikethrough",className:"size-4"}),onClick:()=>i.chain().focus().toggleStrike().run(),isActive:i.isActive("strike")},{label:"Обычный текст",icon:o(e,{name:"editor/typography",className:"size-4"}),onClick:()=>i.chain().focus().setParagraph().run()},{label:"Маркированный список",icon:o(e,{name:"editor/list",className:"size-4"}),onClick:()=>i.chain().focus().toggleBulletList().run(),isActive:i.isActive("bulletList")},{label:"Отменить",icon:o(e,{name:"editor/undo",className:"size-4"}),onClick:()=>i.chain().focus().undo().run()},{label:"Вернуть",icon:o(e,{name:"editor/redo",className:"size-4"}),onClick:()=>i.chain().focus().redo().run()},{label:"Очистить стили и теги",icon:o(e,{name:"editor/removeFormatting",className:"size-4"}),onClick:()=>i.chain().focus().clearNodes().unsetAllMarks().run()},{label:"Удалить все",icon:o(e,{name:"general/close",className:"size-4"}),onClick:()=>i.commands.clearContent()},{label:"Добавить неразрывной пробел &nbsp;",icon:o(e,{name:"editor/nbsp",className:"size-4"}),onClick:()=>i.chain().focus().insertContent(" ").run()}];export{ri as brOptions,ni as editorAllowedColors,ti as editorHeadingClasses,ai as fontSizesOptions,li as headingsOptions,si as renderEditorPanel};
1
+ import{jsx as o}from"react/jsx-runtime";import"../../../../../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js";import"tailwind-merge";import"uuid";import"react";import"../../../../button/Button.js";import"../../../../button/model/helpers.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../loader/model/helpers.js";import"../../../../calendar/Calendar.js";import"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../notification/ui/CustomToast.js";import"../../../../table/ui/primitives/Primitives.js";import{Icon as e}from"../../../../icon/Icon.js";import"@tanstack/react-table";import"../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../carousel/ui/CarouselContent.js";import"../../../../customLink/model/helpers.js";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../ui/Editor.js";import"../../input/MaskInputControl.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const li=[1,2,3,4],ti={1:"mob-headline-bold-m desktop:desk-headline-bold-l",2:"mob-headline-bold-s desktop:desk-headline-bold-m",3:"mob-title-bold-l desktop:desk-title-bold-l",4:"mob-title-bold-m desktop:desk-title-bold-s"},ri=()=>[{label:"br",handler:i=>i.chain().focus().setHardBreak().run()},{label:"br 🖥️",handler:i=>i.chain().focus().setHardBreakDesktop().run()},{label:"br 📱",handler:i=>i.chain().focus().setHardBreakMobile().run()}],ai=[{label:"12px",value:"12px"},{label:"14px",value:"14px"},{label:"16px",value:"16px"},{label:"18px",value:"18px"},{label:"20px",value:"20px"},{label:"24px",value:"24px"}],ni=["#292929","#FFFFFF","#40465A","#5A6E85","#A9B6C5","#94A4B7","#003790","#042E73","#809BC7","#76BC21","#F49F00","#F42500"],si=i=>[{label:"Жирный текст",icon:o(e,{name:"editor/bold",className:"size-4"}),onClick:()=>i.chain().focus().toggleBold().run(),isActive:i.isActive("bold")},{label:"Курсивный текст",icon:o(e,{name:"editor/italic",className:"size-4"}),onClick:()=>i.chain().focus().toggleItalic().run(),isActive:i.isActive("italic")},{label:"Подчеркнутый текст",icon:o(e,{name:"editor/underline",className:"size-4"}),onClick:()=>i.chain().focus().toggleUnderline().run(),isActive:i.isActive("underline")},{label:"Зачеркнутый текст",icon:o(e,{name:"editor/strikethrough",className:"size-4"}),onClick:()=>i.chain().focus().toggleStrike().run(),isActive:i.isActive("strike")},{label:"Обычный текст",icon:o(e,{name:"editor/typography",className:"size-4"}),onClick:()=>i.chain().focus().setParagraph().run()},{label:"Маркированный список",icon:o(e,{name:"editor/list",className:"size-4"}),onClick:()=>i.chain().focus().toggleBulletList().run(),isActive:i.isActive("bulletList")},{label:"Отменить",icon:o(e,{name:"editor/undo",className:"size-4"}),onClick:()=>i.chain().focus().undo().run()},{label:"Вернуть",icon:o(e,{name:"editor/redo",className:"size-4"}),onClick:()=>i.chain().focus().redo().run()},{label:"Очистить стили и теги",icon:o(e,{name:"editor/removeFormatting",className:"size-4"}),onClick:()=>i.chain().focus().clearNodes().unsetAllMarks().run()},{label:"Удалить все",icon:o(e,{name:"general/close",className:"size-4"}),onClick:()=>i.commands.clearContent()},{label:"Добавить неразрывной пробел &nbsp;",icon:o(e,{name:"editor/nbsp",className:"size-4"}),onClick:()=>i.chain().focus().insertContent(" ").run()}];export{ri as brOptions,ni as editorAllowedColors,ti as editorHeadingClasses,ai as fontSizesOptions,li as headingsOptions,si as renderEditorPanel};
2
2
  //# sourceMappingURL=helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helper.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/model/helper.tsx"],"sourcesContent":["import type { Editor } from '@tiptap/react'\nimport { type ColorOption, type HeadingLevel } from './types'\nimport { Icon } from '$/shared/ui'\n\nexport const headingsOptions: HeadingLevel[] = [1, 2, 3, 4]\n\nexport const editorHeadingClasses: Record<number, string> = {\n 1: 'mob-headline-bold-m desktop:desk-headline-bold-l',\n 2: 'mob-headline-bold-s desktop:desk-headline-bold-m',\n 3: 'mob-title-bold-l desktop:desk-title-bold-l',\n 4: 'mob-title-bold-m desktop:desk-title-bold-s'\n}\n\n// TODO: пофиксить типы\nexport const brOptions = () => [\n {\n label: 'br',\n handler: (editor: any) => editor.chain().focus().setHardBreak().run()\n },\n {\n label: 'br 🖥️',\n handler: (editor: any) => editor.chain().focus().setHardBreakDesktop().run()\n },\n {\n label: 'br 📱',\n handler: (editor: any) => editor.chain().focus().setHardBreakMobile().run()\n }\n]\n\nexport const fontSizesOptions = [\n { label: '12px', value: '12px' },\n { label: '14px', value: '14px' },\n { label: '16px', value: '16px' },\n { label: '18px', value: '18px' },\n { label: '20px', value: '20px' },\n { label: '24px', value: '24px' }\n]\n\nexport const editorAllowedColors: ColorOption[] = [\n '#292929',\n '#FFFFFF',\n '#40465A',\n '#5A6E85',\n '#A9B6C5',\n '#94A4B7',\n '#003790',\n '#042E73',\n '#809BC7',\n '#76BC21',\n '#F49F00',\n '#F42500'\n]\n\nexport const renderEditorPanel = (editor: Editor) => [\n {\n label: 'Жирный текст',\n icon: <Icon name='editor/bold' className='size-4' />,\n onClick: () => editor.chain().focus().toggleBold().run(),\n isActive: editor.isActive('bold')\n },\n {\n label: 'Курсивный текст',\n icon: <Icon name='editor/italic' className='size-4' />,\n onClick: () => editor.chain().focus().toggleItalic().run(),\n isActive: editor.isActive('italic')\n },\n {\n label: 'Подчеркнутый текст',\n icon: <Icon name='editor/underline' className='size-4' />,\n onClick: () => editor.chain().focus().toggleUnderline().run(),\n isActive: editor.isActive('underline')\n },\n {\n label: 'Зачеркнутый текст',\n icon: <Icon name='editor/strikethrough' className='size-4' />,\n onClick: () => editor.chain().focus().toggleStrike().run(),\n isActive: editor.isActive('strike')\n },\n {\n label: 'Обычный текст',\n icon: <Icon name='editor/typography' className='size-4' />,\n onClick: () => editor.chain().focus().setParagraph().run()\n },\n {\n label: 'Маркированный список',\n icon: <Icon name='editor/list' className='size-4' />,\n onClick: () => editor.chain().focus().toggleBulletList().run(),\n isActive: editor.isActive('bulletList')\n },\n {\n label: 'Отменить',\n icon: <Icon name='editor/undo' className='size-4' />,\n onClick: () => editor.chain().focus().undo().run()\n },\n {\n label: 'Вернуть',\n icon: <Icon name='editor/redo' className='size-4' />,\n onClick: () => editor.chain().focus().redo().run()\n },\n {\n label: 'Очистить стили и теги',\n icon: <Icon name='editor/removeFormatting' className='size-4' />,\n onClick: () => editor.chain().focus().clearNodes().unsetAllMarks().run()\n },\n {\n label: 'Удалить все',\n icon: <Icon name='general/close' className='size-4' />,\n onClick: () => editor.commands.clearContent()\n },\n {\n label: 'Добавить неразрывной пробел &nbsp;',\n icon: <Icon name='editor/nbsp' className='size-4' />,\n onClick: () => editor.chain().focus().insertContent(' ').run()\n }\n]\n"],"names":["headingsOptions","editorHeadingClasses","brOptions","editor","fontSizesOptions","editorAllowedColors","renderEditorPanel","jsx","Icon"],"mappings":"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"}
1
+ {"version":3,"file":"helper.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/model/helper.tsx"],"sourcesContent":["import type { Editor } from '@tiptap/react'\nimport { type ColorOption, type HeadingLevel } from './types'\nimport { Icon } from '$/shared/ui'\n\nexport const headingsOptions: HeadingLevel[] = [1, 2, 3, 4]\n\nexport const editorHeadingClasses: Record<number, string> = {\n 1: 'mob-headline-bold-m desktop:desk-headline-bold-l',\n 2: 'mob-headline-bold-s desktop:desk-headline-bold-m',\n 3: 'mob-title-bold-l desktop:desk-title-bold-l',\n 4: 'mob-title-bold-m desktop:desk-title-bold-s'\n}\n\n// TODO: пофиксить типы\nexport const brOptions = () => [\n {\n label: 'br',\n handler: (editor: any) => editor.chain().focus().setHardBreak().run()\n },\n {\n label: 'br 🖥️',\n handler: (editor: any) => editor.chain().focus().setHardBreakDesktop().run()\n },\n {\n label: 'br 📱',\n handler: (editor: any) => editor.chain().focus().setHardBreakMobile().run()\n }\n]\n\nexport const fontSizesOptions = [\n { label: '12px', value: '12px' },\n { label: '14px', value: '14px' },\n { label: '16px', value: '16px' },\n { label: '18px', value: '18px' },\n { label: '20px', value: '20px' },\n { label: '24px', value: '24px' }\n]\n\nexport const editorAllowedColors: ColorOption[] = [\n '#292929',\n '#FFFFFF',\n '#40465A',\n '#5A6E85',\n '#A9B6C5',\n '#94A4B7',\n '#003790',\n '#042E73',\n '#809BC7',\n '#76BC21',\n '#F49F00',\n '#F42500'\n]\n\nexport const renderEditorPanel = (editor: Editor) => [\n {\n label: 'Жирный текст',\n icon: <Icon name='editor/bold' className='size-4' />,\n onClick: () => editor.chain().focus().toggleBold().run(),\n isActive: editor.isActive('bold')\n },\n {\n label: 'Курсивный текст',\n icon: <Icon name='editor/italic' className='size-4' />,\n onClick: () => editor.chain().focus().toggleItalic().run(),\n isActive: editor.isActive('italic')\n },\n {\n label: 'Подчеркнутый текст',\n icon: <Icon name='editor/underline' className='size-4' />,\n onClick: () => editor.chain().focus().toggleUnderline().run(),\n isActive: editor.isActive('underline')\n },\n {\n label: 'Зачеркнутый текст',\n icon: <Icon name='editor/strikethrough' className='size-4' />,\n onClick: () => editor.chain().focus().toggleStrike().run(),\n isActive: editor.isActive('strike')\n },\n {\n label: 'Обычный текст',\n icon: <Icon name='editor/typography' className='size-4' />,\n onClick: () => editor.chain().focus().setParagraph().run()\n },\n {\n label: 'Маркированный список',\n icon: <Icon name='editor/list' className='size-4' />,\n onClick: () => editor.chain().focus().toggleBulletList().run(),\n isActive: editor.isActive('bulletList')\n },\n {\n label: 'Отменить',\n icon: <Icon name='editor/undo' className='size-4' />,\n onClick: () => editor.chain().focus().undo().run()\n },\n {\n label: 'Вернуть',\n icon: <Icon name='editor/redo' className='size-4' />,\n onClick: () => editor.chain().focus().redo().run()\n },\n {\n label: 'Очистить стили и теги',\n icon: <Icon name='editor/removeFormatting' className='size-4' />,\n onClick: () => editor.chain().focus().clearNodes().unsetAllMarks().run()\n },\n {\n label: 'Удалить все',\n icon: <Icon name='general/close' className='size-4' />,\n onClick: () => editor.commands.clearContent()\n },\n {\n label: 'Добавить неразрывной пробел &nbsp;',\n icon: <Icon name='editor/nbsp' className='size-4' />,\n onClick: () => editor.chain().focus().insertContent(' ').run()\n }\n]\n"],"names":["headingsOptions","editorHeadingClasses","brOptions","editor","fontSizesOptions","editorAllowedColors","renderEditorPanel","jsx","Icon"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import{jsxs as d,jsx as p}from"react/jsx-runtime";import{forwardRef as T,useEffect as C}from"react";import M from"@tiptap/extension-character-count";import{useEditor as y,EditorContent as L}from"@tiptap/react";import{cn as e}from"../../../../../utils/cn.js";import"uuid";import"../../../../button/Button.js";import"../../../../button/model/helpers.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../loader/model/helpers.js";import"../../../../calendar/Calendar.js";import"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../notification/ui/CustomToast.js";import"../../../../table/ui/primitives/Primitives.js";import"@tanstack/react-table";import"../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../carousel/ui/CarouselContent.js";import"../../../../customLink/model/helpers.js";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../../uncontrolled/inputCurrency/InputCurrency.js";import"@tanstack/react-query";import"../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../../input/MaskInputControl.js";import"classnames";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as U}from"../../../ui/MessageView.js";import"../model/extensions.js";import{editorConfig as k}from"../model/config.js";import{Toolbar as A}from"./Toolbar.js";const I=Number.MAX_SAFE_INTEGER,Ht=T(({onChange:u,value:m="",label:x,limit:n,error:r,classes:t,editable:f,helperText:b,shouldRerenderOnTransaction:c=!0,externalHandlers:g,small:h,...E},w)=>{const{onUpdate:a}=g||{},o=y({extensions:[...k,M.configure({limit:n??I})],editable:f,content:m,parseOptions:{preserveWhitespace:!0},onUpdate:l=>{const{editor:i}=l,N=i!=null&&i.getText()?i==null?void 0:i.getHTML():"";u(N),a&&a(l)},editorProps:{attributes:{spellcheck:"false",class:e("p-4 outline-none bg-color-blue-grey-100 min-h-[240px] !static max-h-[500px] customScrollbar-y overflow-y-auto break-keep",t==null?void 0:t.editor,{"max-h-[80px] min-h-full":h})}},shouldRerenderOnTransaction:c,...E});return C(()=>{o&&o.getHTML()!==m&&o.commands.setContent(m)},[o,m]),o?d("div",{className:e("flex w-full flex-col",t==null?void 0:t.root),children:[d("div",{className:e("relative flex w-full flex-col rounded-md border border-solid border-warm-grey-200",t==null?void 0:t.wrapper),children:[p(A,{editor:o}),!m&&p("p",{className:e("absolute left-4 top-16 text-color-disabled",t==null?void 0:t.label),children:x}),p(L,{ref:w,editor:o}),n&&d("p",{className:"absolute bottom-4 right-4 text-color-disabled",children:[o.storage.characterCount.characters()," / ",n," символов"]})]}),p(U,{className:t==null?void 0:t.message,intent:r!=null&&r.message?"error":"simple",text:(r==null?void 0:r.message)||b,disabled:!f})]}):null});export{Ht as Editor};
1
+ import{jsxs as d,jsx as p}from"react/jsx-runtime";import{forwardRef as T,useEffect as C}from"react";import M from"@tiptap/extension-character-count";import{useEditor as y,EditorContent as L}from"@tiptap/react";import{cn as e}from"../../../../../utils/cn.js";import"uuid";import"../../../../button/Button.js";import"../../../../button/model/helpers.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../loader/model/helpers.js";import"../../../../calendar/Calendar.js";import"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../notification/ui/CustomToast.js";import"../../../../table/ui/primitives/Primitives.js";import"@tanstack/react-table";import"../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../carousel/ui/CarouselContent.js";import"../../../../customLink/model/helpers.js";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../../uncontrolled/inputCurrency/InputCurrency.js";import"@tanstack/react-query";import"../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../../input/MaskInputControl.js";import"../../../../../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as U}from"../../../ui/MessageView.js";import"../model/extensions.js";import{editorConfig as k}from"../model/config.js";import{Toolbar as A}from"./Toolbar.js";const I=Number.MAX_SAFE_INTEGER,Ht=T(({onChange:u,value:m="",label:x,limit:n,error:r,classes:t,editable:f,helperText:b,shouldRerenderOnTransaction:c=!0,externalHandlers:g,small:h,...E},w)=>{const{onUpdate:a}=g||{},o=y({extensions:[...k,M.configure({limit:n??I})],editable:f,content:m,parseOptions:{preserveWhitespace:!0},onUpdate:l=>{const{editor:i}=l,N=i!=null&&i.getText()?i==null?void 0:i.getHTML():"";u(N),a&&a(l)},editorProps:{attributes:{spellcheck:"false",class:e("p-4 outline-none bg-color-blue-grey-100 min-h-[240px] !static max-h-[500px] customScrollbar-y overflow-y-auto break-keep",t==null?void 0:t.editor,{"max-h-[80px] min-h-full":h})}},shouldRerenderOnTransaction:c,...E});return C(()=>{o&&o.getHTML()!==m&&o.commands.setContent(m)},[o,m]),o?d("div",{className:e("flex w-full flex-col",t==null?void 0:t.root),children:[d("div",{className:e("relative flex w-full flex-col rounded-md border border-solid border-warm-grey-200",t==null?void 0:t.wrapper),children:[p(A,{editor:o}),!m&&p("p",{className:e("absolute left-4 top-16 text-color-disabled",t==null?void 0:t.label),children:x}),p(L,{ref:w,editor:o}),n&&d("p",{className:"absolute bottom-4 right-4 text-color-disabled",children:[o.storage.characterCount.characters()," / ",n," символов"]})]}),p(U,{className:t==null?void 0:t.message,intent:r!=null&&r.message?"error":"simple",text:(r==null?void 0:r.message)||b,disabled:!f})]}):null});export{Ht as Editor};
2
2
  //# sourceMappingURL=Editor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Editor.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/Editor.tsx"],"sourcesContent":["import { forwardRef, type ReactElement, useEffect } from 'react'\nimport { type FieldError } from 'react-hook-form'\nimport CharacterCount from '@tiptap/extension-character-count'\nimport { EditorContent, type EditorEvents, useEditor, type UseEditorOptions } from '@tiptap/react'\nimport { MessageView } from '../../../ui'\nimport { type EditorControlClasses } from '../EditorControl'\nimport { editorConfig } from '../model'\nimport { Toolbar } from './Toolbar'\nimport { cn } from '$/shared/utils'\ntype ExternalHandlers = {\n onUpdate?: (editor: EditorEvents['update']) => void\n}\n\ninterface EditorProps extends Partial<UseEditorOptions> {\n onChange: (value: string) => void\n value: string\n error?: FieldError\n classes?: EditorControlClasses\n externalHandlers?: ExternalHandlers\n label?: string\n helperText?: string | ReactElement\n /**\n * Лимит символов\n */\n limit?: number\n /**\n * Сделать текстовый редактор маленьким\n */\n small?: boolean\n}\n\ntype EditorRef = React.ElementRef<typeof EditorContent>\n\nconst DEFAULT_LIMIT = Number.MAX_SAFE_INTEGER\n\nexport const Editor = forwardRef<EditorRef, EditorProps>(\n (\n {\n onChange,\n value = '',\n label,\n limit,\n error,\n classes,\n editable,\n helperText,\n shouldRerenderOnTransaction = true,\n externalHandlers,\n small,\n ...props\n },\n ref\n ) => {\n const { onUpdate: externalOnUpdate } = externalHandlers || {}\n\n const editor = useEditor({\n extensions: [\n ...editorConfig,\n CharacterCount.configure({\n limit: limit ?? DEFAULT_LIMIT\n })\n ],\n editable: editable,\n content: value,\n parseOptions: {\n preserveWhitespace: true\n },\n onUpdate: (props) => {\n const { editor } = props\n const content = editor?.getText() ? editor?.getHTML() : ''\n onChange(content)\n\n if (externalOnUpdate) {\n externalOnUpdate(props)\n }\n },\n editorProps: {\n // TODO: спросить у Рустема\n // transformPastedText(text) {\n // return text.replace(/\\xA0/g, ' ')\n // },\n // transformPastedHTML(html) {\n // return html.replace(/\\xA0/g, ' ')\n // },\n attributes: {\n spellcheck: 'false',\n class: cn(\n 'p-4 outline-none bg-color-blue-grey-100 min-h-[240px] !static max-h-[500px] customScrollbar-y overflow-y-auto break-keep',\n classes?.editor,\n { 'max-h-[80px] min-h-full': small }\n )\n }\n },\n shouldRerenderOnTransaction,\n ...props\n })\n\n useEffect(() => {\n if (editor && editor.getHTML() !== value) {\n editor.commands.setContent(value)\n }\n }, [editor, value])\n\n if (!editor) {\n return null\n }\n\n return (\n <div className={cn('flex w-full flex-col', classes?.root)}>\n <div\n className={cn('relative flex w-full flex-col rounded-md border border-solid border-warm-grey-200', classes?.wrapper)}\n >\n <Toolbar editor={editor} />\n {!value && <p className={cn('absolute left-4 top-16 text-color-disabled', classes?.label)}>{label}</p>}\n <EditorContent ref={ref} editor={editor} />\n {limit && (\n <p className='absolute bottom-4 right-4 text-color-disabled'>\n {editor.storage.characterCount.characters()} / {limit} символов\n </p>\n )}\n </div>\n\n <MessageView\n className={classes?.message}\n intent={error?.message ? 'error' : 'simple'}\n text={error?.message || helperText}\n disabled={!editable}\n />\n </div>\n )\n }\n)\n"],"names":["DEFAULT_LIMIT","Editor","forwardRef","onChange","value","label","limit","error","classes","editable","helperText","shouldRerenderOnTransaction","externalHandlers","small","props","ref","externalOnUpdate","editor","useEditor","editorConfig","CharacterCount","content","cn","useEffect","jsxs","jsx","Toolbar","EditorContent","MessageView"],"mappings":"y1EAiCA,MAAMA,EAAgB,OAAO,iBAEhBC,GAASC,EACpB,CACE,CACE,SAAAC,EACA,MAAAC,EAAQ,GACR,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,4BAAAC,EAA8B,GAC9B,iBAAAC,EACA,MAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAAE,SAAUC,CAAA,EAAqBJ,GAAoB,CAAA,EAErDK,EAASC,EAAU,CACvB,WAAY,CACV,GAAGC,EACHC,EAAe,UAAU,CACvB,MAAOd,GAASN,CAAA,CACjB,CAAA,EAEH,SAAAS,EACA,QAASL,EACT,aAAc,CACZ,mBAAoB,EAAA,EAEtB,SAAWU,GAAU,CACnB,KAAM,CAAE,OAAAG,CAAAA,EAAWH,EACbO,EAAUJ,GAAAA,MAAAA,EAAQ,UAAYA,GAAAA,YAAAA,EAAQ,UAAY,GACxDd,EAASkB,CAAO,EAEZL,GACFA,EAAiBF,CAAK,CAE1B,EACA,YAAa,CAQX,WAAY,CACV,WAAY,QACZ,MAAOQ,EACL,2HACAd,GAAA,YAAAA,EAAS,OACT,CAAE,0BAA2BK,CAAA,CAAM,CACrC,CACF,EAEF,4BAAAF,EACA,GAAGG,CAAA,CACJ,EAQD,OANAS,EAAU,IAAM,CACVN,GAAUA,EAAO,QAAA,IAAcb,GACjCa,EAAO,SAAS,WAAWb,CAAK,CAEpC,EAAG,CAACa,EAAQb,CAAK,CAAC,EAEba,IAKF,MAAA,CAAI,UAAWK,EAAG,uBAAwBd,GAAA,YAAAA,EAAS,IAAI,EACtD,SAAA,CAAAgB,EAAC,MAAA,CACC,UAAWF,EAAG,oFAAqFd,GAAA,YAAAA,EAAS,OAAO,EAEnH,SAAA,CAAAiB,EAACC,GAAQ,OAAAT,EAAgB,EACxB,CAACb,GAASqB,EAAC,IAAA,CAAE,UAAWH,EAAG,6CAA8Cd,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAH,CAAA,CAAM,EAClGoB,EAACE,EAAA,CAAc,IAAAZ,EAAU,OAAAE,CAAA,CAAgB,EACxCX,GACCkB,EAAC,IAAA,CAAE,UAAU,gDACV,SAAA,CAAAP,EAAO,QAAQ,eAAe,WAAA,EAAa,MAAIX,EAAM,WAAA,CAAA,CACxD,CAAA,CAAA,CAAA,EAIJmB,EAACG,EAAA,CACC,UAAWpB,GAAA,YAAAA,EAAS,QACpB,OAAQD,GAAA,MAAAA,EAAO,QAAU,QAAU,SACnC,MAAMA,GAAA,YAAAA,EAAO,UAAWG,EACxB,SAAU,CAACD,CAAA,CAAA,CACb,EACF,EAxBO,IA0BX,CACF"}
1
+ {"version":3,"file":"Editor.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/Editor.tsx"],"sourcesContent":["import { forwardRef, type ReactElement, useEffect } from 'react'\nimport { type FieldError } from 'react-hook-form'\nimport CharacterCount from '@tiptap/extension-character-count'\nimport { EditorContent, type EditorEvents, useEditor, type UseEditorOptions } from '@tiptap/react'\nimport { MessageView } from '../../../ui'\nimport { type EditorControlClasses } from '../EditorControl'\nimport { editorConfig } from '../model'\nimport { Toolbar } from './Toolbar'\nimport { cn } from '$/shared/utils'\ntype ExternalHandlers = {\n onUpdate?: (editor: EditorEvents['update']) => void\n}\n\ninterface EditorProps extends Partial<UseEditorOptions> {\n onChange: (value: string) => void\n value: string\n error?: FieldError\n classes?: EditorControlClasses\n externalHandlers?: ExternalHandlers\n label?: string\n helperText?: string | ReactElement\n /**\n * Лимит символов\n */\n limit?: number\n /**\n * Сделать текстовый редактор маленьким\n */\n small?: boolean\n}\n\ntype EditorRef = React.ElementRef<typeof EditorContent>\n\nconst DEFAULT_LIMIT = Number.MAX_SAFE_INTEGER\n\nexport const Editor = forwardRef<EditorRef, EditorProps>(\n (\n {\n onChange,\n value = '',\n label,\n limit,\n error,\n classes,\n editable,\n helperText,\n shouldRerenderOnTransaction = true,\n externalHandlers,\n small,\n ...props\n },\n ref\n ) => {\n const { onUpdate: externalOnUpdate } = externalHandlers || {}\n\n const editor = useEditor({\n extensions: [\n ...editorConfig,\n CharacterCount.configure({\n limit: limit ?? DEFAULT_LIMIT\n })\n ],\n editable: editable,\n content: value,\n parseOptions: {\n preserveWhitespace: true\n },\n onUpdate: (props) => {\n const { editor } = props\n const content = editor?.getText() ? editor?.getHTML() : ''\n onChange(content)\n\n if (externalOnUpdate) {\n externalOnUpdate(props)\n }\n },\n editorProps: {\n // TODO: спросить у Рустема\n // transformPastedText(text) {\n // return text.replace(/\\xA0/g, ' ')\n // },\n // transformPastedHTML(html) {\n // return html.replace(/\\xA0/g, ' ')\n // },\n attributes: {\n spellcheck: 'false',\n class: cn(\n 'p-4 outline-none bg-color-blue-grey-100 min-h-[240px] !static max-h-[500px] customScrollbar-y overflow-y-auto break-keep',\n classes?.editor,\n { 'max-h-[80px] min-h-full': small }\n )\n }\n },\n shouldRerenderOnTransaction,\n ...props\n })\n\n useEffect(() => {\n if (editor && editor.getHTML() !== value) {\n editor.commands.setContent(value)\n }\n }, [editor, value])\n\n if (!editor) {\n return null\n }\n\n return (\n <div className={cn('flex w-full flex-col', classes?.root)}>\n <div\n className={cn('relative flex w-full flex-col rounded-md border border-solid border-warm-grey-200', classes?.wrapper)}\n >\n <Toolbar editor={editor} />\n {!value && <p className={cn('absolute left-4 top-16 text-color-disabled', classes?.label)}>{label}</p>}\n <EditorContent ref={ref} editor={editor} />\n {limit && (\n <p className='absolute bottom-4 right-4 text-color-disabled'>\n {editor.storage.characterCount.characters()} / {limit} символов\n </p>\n )}\n </div>\n\n <MessageView\n className={classes?.message}\n intent={error?.message ? 'error' : 'simple'}\n text={error?.message || helperText}\n disabled={!editable}\n />\n </div>\n )\n }\n)\n"],"names":["DEFAULT_LIMIT","Editor","forwardRef","onChange","value","label","limit","error","classes","editable","helperText","shouldRerenderOnTransaction","externalHandlers","small","props","ref","externalOnUpdate","editor","useEditor","editorConfig","CharacterCount","content","cn","useEffect","jsxs","jsx","Toolbar","EditorContent","MessageView"],"mappings":"w6EAiCA,MAAMA,EAAgB,OAAO,iBAEhBC,GAASC,EACpB,CACE,CACE,SAAAC,EACA,MAAAC,EAAQ,GACR,MAAAC,EACA,MAAAC,EACA,MAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,4BAAAC,EAA8B,GAC9B,iBAAAC,EACA,MAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAAE,SAAUC,CAAA,EAAqBJ,GAAoB,CAAA,EAErDK,EAASC,EAAU,CACvB,WAAY,CACV,GAAGC,EACHC,EAAe,UAAU,CACvB,MAAOd,GAASN,CAAA,CACjB,CAAA,EAEH,SAAAS,EACA,QAASL,EACT,aAAc,CACZ,mBAAoB,EAAA,EAEtB,SAAWU,GAAU,CACnB,KAAM,CAAE,OAAAG,CAAAA,EAAWH,EACbO,EAAUJ,GAAAA,MAAAA,EAAQ,UAAYA,GAAAA,YAAAA,EAAQ,UAAY,GACxDd,EAASkB,CAAO,EAEZL,GACFA,EAAiBF,CAAK,CAE1B,EACA,YAAa,CAQX,WAAY,CACV,WAAY,QACZ,MAAOQ,EACL,2HACAd,GAAA,YAAAA,EAAS,OACT,CAAE,0BAA2BK,CAAA,CAAM,CACrC,CACF,EAEF,4BAAAF,EACA,GAAGG,CAAA,CACJ,EAQD,OANAS,EAAU,IAAM,CACVN,GAAUA,EAAO,QAAA,IAAcb,GACjCa,EAAO,SAAS,WAAWb,CAAK,CAEpC,EAAG,CAACa,EAAQb,CAAK,CAAC,EAEba,IAKF,MAAA,CAAI,UAAWK,EAAG,uBAAwBd,GAAA,YAAAA,EAAS,IAAI,EACtD,SAAA,CAAAgB,EAAC,MAAA,CACC,UAAWF,EAAG,oFAAqFd,GAAA,YAAAA,EAAS,OAAO,EAEnH,SAAA,CAAAiB,EAACC,GAAQ,OAAAT,EAAgB,EACxB,CAACb,GAASqB,EAAC,IAAA,CAAE,UAAWH,EAAG,6CAA8Cd,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAH,CAAA,CAAM,EAClGoB,EAACE,EAAA,CAAc,IAAAZ,EAAU,OAAAE,CAAA,CAAgB,EACxCX,GACCkB,EAAC,IAAA,CAAE,UAAU,gDACV,SAAA,CAAAP,EAAO,QAAQ,eAAe,WAAA,EAAa,MAAIX,EAAM,WAAA,CAAA,CACxD,CAAA,CAAA,CAAA,EAIJmB,EAACG,EAAA,CACC,UAAWpB,GAAA,YAAAA,EAAS,QACpB,OAAQD,GAAA,MAAAA,EAAO,QAAU,QAAU,SACnC,MAAMA,GAAA,YAAAA,EAAO,UAAWG,EACxB,SAAU,CAACD,CAAA,CAAA,CACb,EACF,EAxBO,IA0BX,CACF"}
@@ -1,2 +1,2 @@
1
- import{jsxs as a,Fragment as c,jsx as m}from"react/jsx-runtime";import{useState as d}from"react";import{Icon as x}from"../../../../icon/Icon.js";import{Modal as f}from"../../../../modal/Modal.js";import{cn as u}from"../../../../../utils/cn.js";import"uuid";import"../../../../button/Button.js";import"../../../../button/model/helpers.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../loader/model/helpers.js";import"../../../../calendar/Calendar.js";import"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-hot-toast";import"../../../../notification/ui/CustomToast.js";import"../../../../table/ui/primitives/Primitives.js";import"@tanstack/react-table";import"../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../carousel/ui/CarouselContent.js";import"react-dom";import"../../../../customLink/model/helpers.js";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import{InputBase as g}from"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../../uncontrolled/inputCurrency/InputCurrency.js";import"@tanstack/react-query";import"../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import{Editor as M}from"./Editor.js";import"../../input/MaskInputControl.js";import"classnames";import"framer-motion";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as h}from"../../../ui/MessageView.js";const vt=({label:s,classes:o,editable:i,helperText:r,field:p,error:t,...l})=>{const[n,e]=d(!1);return a(c,{children:[a("div",{className:"flex flex-1 flex-col",children:[m(g,{readOnly:!0,label:s,classes:{},...p,renderValues:()=>m("div",{className:u("customScrollbar-y peer max-h-[70px] w-full !overflow-auto truncate p-4 pb-[9px] pt-[27px]"),dangerouslySetInnerHTML:{__html:p.value}}),attachmentProps:{icon:m(x,{name:"general/edit",className:"size-5 text-color-tetriary"})},onClick:()=>i&&e(!0)}),m(h,{className:o==null?void 0:o.message,intent:t!=null&&t.message?"error":"simple",text:(t==null?void 0:t.message)||r,disabled:!i})]}),m(f,{classes:{modal:"max-w-[700px]"},isModalOpen:n,closeModal:()=>e(!1),children:m(M,{...p,editable:i,error:t,helperText:r,classes:{editor:"min-h-[350px]",...o},...l})})]})};export{vt as EditorModal};
1
+ import{jsxs as a,Fragment as c,jsx as m}from"react/jsx-runtime";import{useState as d}from"react";import{Icon as x}from"../../../../icon/Icon.js";import{Modal as f}from"../../../../modal/Modal.js";import{cn as u}from"../../../../../utils/cn.js";import"uuid";import"../../../../button/Button.js";import"../../../../button/model/helpers.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../loader/model/helpers.js";import"../../../../calendar/Calendar.js";import"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-hot-toast";import"../../../../notification/ui/CustomToast.js";import"../../../../table/ui/primitives/Primitives.js";import"@tanstack/react-table";import"../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../carousel/ui/CarouselContent.js";import"react-dom";import"../../../../customLink/model/helpers.js";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import{InputBase as g}from"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../../uncontrolled/inputCurrency/InputCurrency.js";import"@tanstack/react-query";import"../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import{Editor as M}from"./Editor.js";import"../../input/MaskInputControl.js";import"../../../../../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js";import"framer-motion";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as h}from"../../../ui/MessageView.js";const vt=({label:s,classes:o,editable:i,helperText:r,field:p,error:t,...l})=>{const[n,e]=d(!1);return a(c,{children:[a("div",{className:"flex flex-1 flex-col",children:[m(g,{readOnly:!0,label:s,classes:{},...p,renderValues:()=>m("div",{className:u("customScrollbar-y peer max-h-[70px] w-full !overflow-auto truncate p-4 pb-[9px] pt-[27px]"),dangerouslySetInnerHTML:{__html:p.value}}),attachmentProps:{icon:m(x,{name:"general/edit",className:"size-5 text-color-tetriary"})},onClick:()=>i&&e(!0)}),m(h,{className:o==null?void 0:o.message,intent:t!=null&&t.message?"error":"simple",text:(t==null?void 0:t.message)||r,disabled:!i})]}),m(f,{classes:{modal:"max-w-[700px]"},isModalOpen:n,closeModal:()=>e(!1),children:m(M,{...p,editable:i,error:t,helperText:r,classes:{editor:"min-h-[350px]",...o},...l})})]})};export{vt as EditorModal};
2
2
  //# sourceMappingURL=EditorModal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EditorModal.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/EditorModal.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { type ControllerRenderProps, type FieldError, type FieldValues } from 'react-hook-form'\nimport { Icon } from '../../../../icon'\nimport { Modal } from '../../../../modal'\nimport { MessageView } from '../../../ui'\nimport { InputBase } from '../../../uncontrolled/input'\nimport { type EditorControlProps } from '../EditorControl'\nimport { Editor } from './Editor'\nimport { cn } from '$/shared/utils'\n\nexport interface EditorModalProps<T extends FieldValues>\n extends Pick<EditorControlProps<T>, 'label' | 'classes' | 'editable' | 'helperText'> {\n field: ControllerRenderProps<T>\n error?: FieldError\n}\n\nexport const EditorModal = <T extends FieldValues>({\n label,\n classes,\n editable,\n helperText,\n field,\n error,\n ...props\n}: EditorModalProps<T>) => {\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n return (\n <>\n <div className='flex flex-1 flex-col'>\n <InputBase\n readOnly\n label={label}\n classes={{}}\n {...field}\n renderValues={() => (\n <div\n className={cn('customScrollbar-y peer max-h-[70px] w-full !overflow-auto truncate p-4 pb-[9px] pt-[27px]')}\n dangerouslySetInnerHTML={{ __html: field.value }}\n />\n )}\n attachmentProps={{\n icon: <Icon name='general/edit' className='size-5 text-color-tetriary' />\n }}\n onClick={() => editable && setIsModalOpen(true)}\n />\n <MessageView\n className={classes?.message}\n intent={error?.message ? 'error' : 'simple'}\n text={error?.message || helperText}\n disabled={!editable}\n />\n </div>\n <Modal\n classes={{\n modal: 'max-w-[700px]'\n }}\n isModalOpen={isModalOpen}\n closeModal={() => setIsModalOpen(false)}\n >\n <Editor\n {...field}\n editable={editable}\n error={error}\n helperText={helperText}\n classes={{\n editor: 'min-h-[350px]',\n ...classes\n }}\n {...props}\n />\n </Modal>\n </>\n )\n}\n"],"names":["EditorModal","label","classes","editable","helperText","field","error","props","isModalOpen","setIsModalOpen","useState","jsxs","Fragment","jsx","InputBase","cn","Icon","MessageView","Modal","Editor"],"mappings":"ytEAgBO,MAAMA,GAAc,CAAwB,CACjD,MAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,MAAAC,EACA,MAAAC,EACA,GAAGC,CACL,IAA2B,CACzB,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAS,EAAK,EAEpD,OACEC,EAAAC,EAAA,CACE,SAAA,CAAAD,EAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAE,EAACC,EAAA,CACC,SAAQ,GACR,MAAAb,EACA,QAAS,CAAA,EACR,GAAGI,EACJ,aAAc,IACZQ,EAAC,MAAA,CACC,UAAWE,EAAG,2FAA2F,EACzG,wBAAyB,CAAE,OAAQV,EAAM,KAAA,CAAM,CAAA,EAGnD,gBAAiB,CACf,KAAMQ,EAACG,EAAA,CAAK,KAAK,eAAe,UAAU,4BAAA,CAA6B,CAAA,EAEzE,QAAS,IAAMb,GAAYM,EAAe,EAAI,CAAA,CAAA,EAEhDI,EAACI,EAAA,CACC,UAAWf,GAAA,YAAAA,EAAS,QACpB,OAAQI,GAAA,MAAAA,EAAO,QAAU,QAAU,SACnC,MAAMA,GAAA,YAAAA,EAAO,UAAWF,EACxB,SAAU,CAACD,CAAA,CAAA,CACb,EACF,EACAU,EAACK,EAAA,CACC,QAAS,CACP,MAAO,eAAA,EAET,YAAAV,EACA,WAAY,IAAMC,EAAe,EAAK,EAEtC,SAAAI,EAACM,EAAA,CACE,GAAGd,EACJ,SAAAF,EACA,MAAAG,EACA,WAAAF,EACA,QAAS,CACP,OAAQ,gBACR,GAAGF,CAAA,EAEJ,GAAGK,CAAA,CAAA,CACN,CAAA,CACF,EACF,CAEJ"}
1
+ {"version":3,"file":"EditorModal.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/EditorModal.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { type ControllerRenderProps, type FieldError, type FieldValues } from 'react-hook-form'\nimport { Icon } from '../../../../icon'\nimport { Modal } from '../../../../modal'\nimport { MessageView } from '../../../ui'\nimport { InputBase } from '../../../uncontrolled/input'\nimport { type EditorControlProps } from '../EditorControl'\nimport { Editor } from './Editor'\nimport { cn } from '$/shared/utils'\n\nexport interface EditorModalProps<T extends FieldValues>\n extends Pick<EditorControlProps<T>, 'label' | 'classes' | 'editable' | 'helperText'> {\n field: ControllerRenderProps<T>\n error?: FieldError\n}\n\nexport const EditorModal = <T extends FieldValues>({\n label,\n classes,\n editable,\n helperText,\n field,\n error,\n ...props\n}: EditorModalProps<T>) => {\n const [isModalOpen, setIsModalOpen] = useState(false)\n\n return (\n <>\n <div className='flex flex-1 flex-col'>\n <InputBase\n readOnly\n label={label}\n classes={{}}\n {...field}\n renderValues={() => (\n <div\n className={cn('customScrollbar-y peer max-h-[70px] w-full !overflow-auto truncate p-4 pb-[9px] pt-[27px]')}\n dangerouslySetInnerHTML={{ __html: field.value }}\n />\n )}\n attachmentProps={{\n icon: <Icon name='general/edit' className='size-5 text-color-tetriary' />\n }}\n onClick={() => editable && setIsModalOpen(true)}\n />\n <MessageView\n className={classes?.message}\n intent={error?.message ? 'error' : 'simple'}\n text={error?.message || helperText}\n disabled={!editable}\n />\n </div>\n <Modal\n classes={{\n modal: 'max-w-[700px]'\n }}\n isModalOpen={isModalOpen}\n closeModal={() => setIsModalOpen(false)}\n >\n <Editor\n {...field}\n editable={editable}\n error={error}\n helperText={helperText}\n classes={{\n editor: 'min-h-[350px]',\n ...classes\n }}\n {...props}\n />\n </Modal>\n </>\n )\n}\n"],"names":["EditorModal","label","classes","editable","helperText","field","error","props","isModalOpen","setIsModalOpen","useState","jsxs","Fragment","jsx","InputBase","cn","Icon","MessageView","Modal","Editor"],"mappings":"wyEAgBO,MAAMA,GAAc,CAAwB,CACjD,MAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,MAAAC,EACA,MAAAC,EACA,GAAGC,CACL,IAA2B,CACzB,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAS,EAAK,EAEpD,OACEC,EAAAC,EAAA,CACE,SAAA,CAAAD,EAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAE,EAACC,EAAA,CACC,SAAQ,GACR,MAAAb,EACA,QAAS,CAAA,EACR,GAAGI,EACJ,aAAc,IACZQ,EAAC,MAAA,CACC,UAAWE,EAAG,2FAA2F,EACzG,wBAAyB,CAAE,OAAQV,EAAM,KAAA,CAAM,CAAA,EAGnD,gBAAiB,CACf,KAAMQ,EAACG,EAAA,CAAK,KAAK,eAAe,UAAU,4BAAA,CAA6B,CAAA,EAEzE,QAAS,IAAMb,GAAYM,EAAe,EAAI,CAAA,CAAA,EAEhDI,EAACI,EAAA,CACC,UAAWf,GAAA,YAAAA,EAAS,QACpB,OAAQI,GAAA,MAAAA,EAAO,QAAU,QAAU,SACnC,MAAMA,GAAA,YAAAA,EAAO,UAAWF,EACxB,SAAU,CAACD,CAAA,CAAA,CACb,EACF,EACAU,EAACK,EAAA,CACC,QAAS,CACP,MAAO,eAAA,EAET,YAAAV,EACA,WAAY,IAAMC,EAAe,EAAK,EAEtC,SAAAI,EAACM,EAAA,CACE,GAAGd,EACJ,SAAAF,EACA,MAAAG,EACA,WAAAF,EACA,QAAS,CACP,OAAQ,gBACR,GAAGF,CAAA,EAEJ,GAAGK,CAAA,CAAA,CACN,CAAA,CACF,EACF,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsx as r}from"react/jsx-runtime";import"../../model/extensions.js";import"../../model/config.js";import{editorAllowedColors as i}from"../../model/helper.js";import{cn as m}from"../../../../../../utils/cn.js";import"uuid";import"react";import"../../../../../button/Button.js";import"../../../../../button/model/helpers.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../loader/model/helpers.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import{Popover as e}from"../../../../../popover/Popover.js";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../../notification/ui/CustomToast.js";import"../../../../../table/ui/primitives/Primitives.js";import{Icon as p}from"../../../../../icon/Icon.js";import"@tanstack/react-table";import"../../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../customLink/model/helpers.js";import"../../../../../slot/Slot.js";import"../../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../../uncontrolled/checkbox/Checkbox.js";import"../../../../uncontrolled/combobox/combobox.js";import"../../../../uncontrolled/dayPicker/DayPicker.js";import"../../../../uncontrolled/input/Input.js";import"../../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../../uncontrolled/maskInput/MaskInput.js";import"../../../../uncontrolled/radio/RadioGroup.js";import"../../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../../uncontrolled/slider/SliderBase.js";import"../../../../uncontrolled/switch/Switch.js";import"../../../../uncontrolled/textarea/Textarea.js";import"../../../../uncontrolled/uploader/UploaderBase.js";import"../../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../Editor.js";import"../../../input/MaskInputControl.js";import"classnames";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const ar=({editor:t})=>r(e,{classes:{content:"w-full max-w-[500px] bg-color-blue-grey-200 border border-solid border-warm-grey-300",arrowIcon:"fill-dark-hover"},triggerElement:r("span",{title:"Добавить цвет текста",className:"flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white",children:r(p,{name:"editor/palette",className:"size-4"})}),children:r("div",{className:"grid grid-cols-6 gap-3",children:i.map(o=>r("button",{type:"button",style:{background:o},onClick:()=>t.chain().focus().setColor(o).run(),className:m("desk-body-regular-m size-6 cursor-pointer rounded-full border border-solid border-transparent text-left outline-none transition-transform hover:scale-105",{"border-warm-grey-300":o==="#FFFFFF"})},o))})});export{ar as SetColor};
1
+ import{jsx as r}from"react/jsx-runtime";import"../../model/extensions.js";import"../../model/config.js";import{editorAllowedColors as i}from"../../model/helper.js";import{cn as m}from"../../../../../../utils/cn.js";import"uuid";import"react";import"../../../../../button/Button.js";import"../../../../../button/model/helpers.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../loader/model/helpers.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import{Popover as e}from"../../../../../popover/Popover.js";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../../notification/ui/CustomToast.js";import"../../../../../table/ui/primitives/Primitives.js";import{Icon as p}from"../../../../../icon/Icon.js";import"@tanstack/react-table";import"../../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../customLink/model/helpers.js";import"../../../../../slot/Slot.js";import"../../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../../uncontrolled/checkbox/Checkbox.js";import"../../../../uncontrolled/combobox/combobox.js";import"../../../../uncontrolled/dayPicker/DayPicker.js";import"../../../../uncontrolled/input/Input.js";import"../../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../../uncontrolled/maskInput/MaskInput.js";import"../../../../uncontrolled/radio/RadioGroup.js";import"../../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../../uncontrolled/slider/SliderBase.js";import"../../../../uncontrolled/switch/Switch.js";import"../../../../uncontrolled/textarea/Textarea.js";import"../../../../uncontrolled/uploader/UploaderBase.js";import"../../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../Editor.js";import"../../../input/MaskInputControl.js";import"../../../../../../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const ar=({editor:t})=>r(e,{classes:{content:"w-full max-w-[500px] bg-color-blue-grey-200 border border-solid border-warm-grey-300",arrowIcon:"fill-dark-hover"},triggerElement:r("span",{title:"Добавить цвет текста",className:"flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white",children:r(p,{name:"editor/palette",className:"size-4"})}),children:r("div",{className:"grid grid-cols-6 gap-3",children:i.map(o=>r("button",{type:"button",style:{background:o},onClick:()=>t.chain().focus().setColor(o).run(),className:m("desk-body-regular-m size-6 cursor-pointer rounded-full border border-solid border-transparent text-left outline-none transition-transform hover:scale-105",{"border-warm-grey-300":o==="#FFFFFF"})},o))})});export{ar as SetColor};
2
2
  //# sourceMappingURL=SetColor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SetColor.js","sources":["../../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/commands/SetColor.tsx"],"sourcesContent":["import type { Editor } from '@tiptap/react'\nimport { editorAllowedColors } from '../../model'\nimport { Icon, Popover } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ninterface ISetColorProps {\n editor: Editor\n}\n\nexport const SetColor = ({ editor }: ISetColorProps) => {\n return (\n <Popover\n classes={{\n content: 'w-full max-w-[500px] bg-color-blue-grey-200 border border-solid border-warm-grey-300',\n arrowIcon: 'fill-dark-hover'\n }}\n triggerElement={\n <span\n title='Добавить цвет текста'\n className='flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white'\n >\n <Icon name='editor/palette' className='size-4' />\n </span>\n }\n >\n <div className='grid grid-cols-6 gap-3'>\n {editorAllowedColors.map((color) => (\n <button\n key={color}\n type='button'\n style={{ background: color }}\n onClick={() => editor.chain().focus().setColor(color).run()}\n className={cn(\n 'desk-body-regular-m size-6 cursor-pointer rounded-full border border-solid border-transparent text-left outline-none transition-transform hover:scale-105',\n { 'border-warm-grey-300': color === '#FFFFFF' }\n )}\n />\n ))}\n </div>\n </Popover>\n )\n}\n"],"names":["SetColor","editor","jsx","Popover","Icon","editorAllowedColors","color","cn"],"mappings":"k3EASO,MAAMA,GAAW,CAAC,CAAE,OAAAC,KAEvBC,EAACC,EAAA,CACC,QAAS,CACP,QAAS,uFACT,UAAW,iBAAA,EAEb,eACED,EAAC,OAAA,CACC,MAAM,uBACN,UAAU,4KAEV,SAAAA,EAACE,EAAA,CAAK,KAAK,iBAAiB,UAAU,QAAA,CAAS,CAAA,CAAA,EAInD,WAAC,MAAA,CAAI,UAAU,yBACZ,SAAAC,EAAoB,IAAKC,GACxBJ,EAAC,SAAA,CAEC,KAAK,SACL,MAAO,CAAE,WAAYI,CAAA,EACrB,QAAS,IAAML,EAAO,MAAA,EAAQ,QAAQ,SAASK,CAAK,EAAE,IAAA,EACtD,UAAWC,EACT,4JACA,CAAE,uBAAwBD,IAAU,SAAA,CAAU,CAChD,EAPKA,CAAA,CASR,CAAA,CACH,CAAA,CAAA"}
1
+ {"version":3,"file":"SetColor.js","sources":["../../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/commands/SetColor.tsx"],"sourcesContent":["import type { Editor } from '@tiptap/react'\nimport { editorAllowedColors } from '../../model'\nimport { Icon, Popover } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ninterface ISetColorProps {\n editor: Editor\n}\n\nexport const SetColor = ({ editor }: ISetColorProps) => {\n return (\n <Popover\n classes={{\n content: 'w-full max-w-[500px] bg-color-blue-grey-200 border border-solid border-warm-grey-300',\n arrowIcon: 'fill-dark-hover'\n }}\n triggerElement={\n <span\n title='Добавить цвет текста'\n className='flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white'\n >\n <Icon name='editor/palette' className='size-4' />\n </span>\n }\n >\n <div className='grid grid-cols-6 gap-3'>\n {editorAllowedColors.map((color) => (\n <button\n key={color}\n type='button'\n style={{ background: color }}\n onClick={() => editor.chain().focus().setColor(color).run()}\n className={cn(\n 'desk-body-regular-m size-6 cursor-pointer rounded-full border border-solid border-transparent text-left outline-none transition-transform hover:scale-105',\n { 'border-warm-grey-300': color === '#FFFFFF' }\n )}\n />\n ))}\n </div>\n </Popover>\n )\n}\n"],"names":["SetColor","editor","jsx","Popover","Icon","editorAllowedColors","color","cn"],"mappings":"o8EASO,MAAMA,GAAW,CAAC,CAAE,OAAAC,KAEvBC,EAACC,EAAA,CACC,QAAS,CACP,QAAS,uFACT,UAAW,iBAAA,EAEb,eACED,EAAC,OAAA,CACC,MAAM,uBACN,UAAU,4KAEV,SAAAA,EAACE,EAAA,CAAK,KAAK,iBAAiB,UAAU,QAAA,CAAS,CAAA,CAAA,EAInD,WAAC,MAAA,CAAI,UAAU,yBACZ,SAAAC,EAAoB,IAAKC,GACxBJ,EAAC,SAAA,CAEC,KAAK,SACL,MAAO,CAAE,WAAYI,CAAA,EACrB,QAAS,IAAML,EAAO,MAAA,EAAQ,QAAQ,SAASK,CAAK,EAAE,IAAA,EACtD,UAAWC,EACT,4JACA,CAAE,uBAAwBD,IAAU,SAAA,CAAU,CAChD,EAPKA,CAAA,CASR,CAAA,CACH,CAAA,CAAA"}
@@ -1,2 +1,2 @@
1
- import{jsx as r}from"react/jsx-runtime";import"../../model/extensions.js";import"../../model/config.js";import{renderEditorPanel as s}from"../../model/helper.js";import{cn as c}from"../../../../../../utils/cn.js";import"uuid";import"react";import"../../../../../button/Button.js";import"../../../../../button/model/helpers.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../loader/model/helpers.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import{Hint as n}from"../../../../../hint/Hint.js";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../../notification/ui/CustomToast.js";import"../../../../../table/ui/primitives/Primitives.js";import"react-hook-form";import"@hookform/resolvers/zod";import"@tanstack/react-table";import"../../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../customLink/model/helpers.js";import"../../../../../slot/Slot.js";import"../../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../../uncontrolled/checkbox/Checkbox.js";import"../../../../uncontrolled/combobox/combobox.js";import"../../../../uncontrolled/dayPicker/DayPicker.js";import"../../../../uncontrolled/input/Input.js";import"../../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../../uncontrolled/maskInput/MaskInput.js";import"../../../../uncontrolled/radio/RadioGroup.js";import"../../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../../uncontrolled/slider/SliderBase.js";import"../../../../uncontrolled/switch/Switch.js";import"../../../../uncontrolled/textarea/Textarea.js";import"../../../../uncontrolled/uploader/UploaderBase.js";import"../../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../Editor.js";import"../../../input/MaskInputControl.js";import"classnames";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const dr=({editor:i})=>{var o;return r("div",{className:"flex items-center gap-2",children:(o=s(i))==null?void 0:o.map(({label:t,icon:m,onClick:p,isActive:e})=>r(n,{sideOffset:12,classes:{content:"w-max border border-warm-grey-200 desk-body-regular-s py-1 px-3"},triggerElement:r("span",{onClick:p,className:c("flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white focus:bg-color-primary-focus focus:text-color-white",{"!bg-color-primary-hover !text-color-white":e}),children:m}),children:t},t))})};export{dr as SetCoreCommands};
1
+ import{jsx as r}from"react/jsx-runtime";import"../../model/extensions.js";import"../../model/config.js";import{renderEditorPanel as s}from"../../model/helper.js";import{cn as c}from"../../../../../../utils/cn.js";import"uuid";import"react";import"../../../../../button/Button.js";import"../../../../../button/model/helpers.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../loader/model/helpers.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import{Hint as n}from"../../../../../hint/Hint.js";import"@radix-ui/react-popover";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../../notification/ui/CustomToast.js";import"../../../../../table/ui/primitives/Primitives.js";import"react-hook-form";import"@hookform/resolvers/zod";import"@tanstack/react-table";import"../../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../customLink/model/helpers.js";import"../../../../../slot/Slot.js";import"../../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../../uncontrolled/checkbox/Checkbox.js";import"../../../../uncontrolled/combobox/combobox.js";import"../../../../uncontrolled/dayPicker/DayPicker.js";import"../../../../uncontrolled/input/Input.js";import"../../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../../uncontrolled/maskInput/MaskInput.js";import"../../../../uncontrolled/radio/RadioGroup.js";import"../../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../../uncontrolled/slider/SliderBase.js";import"../../../../uncontrolled/switch/Switch.js";import"../../../../uncontrolled/textarea/Textarea.js";import"../../../../uncontrolled/uploader/UploaderBase.js";import"../../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../Editor.js";import"../../../input/MaskInputControl.js";import"../../../../../../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const dr=({editor:i})=>{var o;return r("div",{className:"flex items-center gap-2",children:(o=s(i))==null?void 0:o.map(({label:t,icon:m,onClick:p,isActive:e})=>r(n,{sideOffset:12,classes:{content:"w-max border border-warm-grey-200 desk-body-regular-s py-1 px-3"},triggerElement:r("span",{onClick:p,className:c("flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white focus:bg-color-primary-focus focus:text-color-white",{"!bg-color-primary-hover !text-color-white":e}),children:m}),children:t},t))})};export{dr as SetCoreCommands};
2
2
  //# sourceMappingURL=SetCoreCommands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SetCoreCommands.js","sources":["../../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/commands/SetCoreCommands.tsx"],"sourcesContent":["import { type Editor } from '@tiptap/react'\nimport { renderEditorPanel } from '../../model'\nimport { Hint } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ninterface ISetCoreCommandsProps {\n editor: Editor\n}\n\nexport const SetCoreCommands = ({ editor }: ISetCoreCommandsProps) => {\n return (\n <div className='flex items-center gap-2'>\n {renderEditorPanel(editor)?.map(({ label, icon, onClick, isActive }) => (\n <Hint\n key={label}\n sideOffset={12}\n classes={{\n content: 'w-max border border-warm-grey-200 desk-body-regular-s py-1 px-3'\n }}\n triggerElement={\n <span\n onClick={onClick}\n className={cn(\n 'flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white focus:bg-color-primary-focus focus:text-color-white',\n { '!bg-color-primary-hover !text-color-white': isActive }\n )}\n >\n {icon}\n </span>\n }\n >\n {label}\n </Hint>\n ))}\n </div>\n )\n}\n"],"names":["SetCoreCommands","editor","jsx","label","icon","onClick","isActive","Hint","cn"],"mappings":"ozEASO,MAAMA,GAAkB,CAAC,CAAE,OAAAC,KAAoC,OACpE,OACEC,EAAC,MAAA,CAAI,UAAU,0BACZ,cAAkBD,CAAM,kBAAG,IAAI,CAAC,CAAE,MAAAE,EAAO,KAAAC,EAAM,QAAAC,EAAS,SAAAC,KACvDJ,EAACK,EAAA,CAEC,WAAY,GACZ,QAAS,CACP,QAAS,iEAAA,EAEX,eACEL,EAAC,OAAA,CACC,QAAAG,EACA,UAAWG,EACT,gOACA,CAAE,4CAA6CF,CAAA,CAAS,EAGzD,SAAAF,CAAA,CAAA,EAIJ,SAAAD,CAAA,EAjBIA,CAAA,GAoBX,CAEJ"}
1
+ {"version":3,"file":"SetCoreCommands.js","sources":["../../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/commands/SetCoreCommands.tsx"],"sourcesContent":["import { type Editor } from '@tiptap/react'\nimport { renderEditorPanel } from '../../model'\nimport { Hint } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ninterface ISetCoreCommandsProps {\n editor: Editor\n}\n\nexport const SetCoreCommands = ({ editor }: ISetCoreCommandsProps) => {\n return (\n <div className='flex items-center gap-2'>\n {renderEditorPanel(editor)?.map(({ label, icon, onClick, isActive }) => (\n <Hint\n key={label}\n sideOffset={12}\n classes={{\n content: 'w-max border border-warm-grey-200 desk-body-regular-s py-1 px-3'\n }}\n triggerElement={\n <span\n onClick={onClick}\n className={cn(\n 'flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white focus:bg-color-primary-focus focus:text-color-white',\n { '!bg-color-primary-hover !text-color-white': isActive }\n )}\n >\n {icon}\n </span>\n }\n >\n {label}\n </Hint>\n ))}\n </div>\n )\n}\n"],"names":["SetCoreCommands","editor","jsx","label","icon","onClick","isActive","Hint","cn"],"mappings":"s4EASO,MAAMA,GAAkB,CAAC,CAAE,OAAAC,KAAoC,OACpE,OACEC,EAAC,MAAA,CAAI,UAAU,0BACZ,cAAkBD,CAAM,kBAAG,IAAI,CAAC,CAAE,MAAAE,EAAO,KAAAC,EAAM,QAAAC,EAAS,SAAAC,KACvDJ,EAACK,EAAA,CAEC,WAAY,GACZ,QAAS,CACP,QAAS,iEAAA,EAEX,eACEL,EAAC,OAAA,CACC,QAAAG,EACA,UAAWG,EACT,gOACA,CAAE,4CAA6CF,CAAA,CAAS,EAGzD,SAAAF,CAAA,CAAA,EAIJ,SAAAD,CAAA,EAjBIA,CAAA,GAoBX,CAEJ"}
@@ -1,2 +1,2 @@
1
- import{jsx as r,jsxs as l}from"react/jsx-runtime";import{useState as a,useEffect as u}from"react";import"../../model/extensions.js";import"../../model/config.js";import{fontSizesOptions as f}from"../../model/helper.js";import{cn as h}from"../../../../../../utils/cn.js";import"uuid";import{Button as z}from"../../../../../button/Button.js";import"../../../../../button/model/helpers.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../loader/model/helpers.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import{Popover as S}from"../../../../../popover/Popover.js";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../../notification/ui/CustomToast.js";import"../../../../../table/ui/primitives/Primitives.js";import{Icon as d}from"../../../../../icon/Icon.js";import"@tanstack/react-table";import"../../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../customLink/model/helpers.js";import"../../../../../slot/Slot.js";import"../../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../../uncontrolled/checkbox/Checkbox.js";import"../../../../uncontrolled/combobox/combobox.js";import"../../../../uncontrolled/dayPicker/DayPicker.js";import"../../../../uncontrolled/input/Input.js";import"../../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../../uncontrolled/maskInput/MaskInput.js";import"../../../../uncontrolled/radio/RadioGroup.js";import"../../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../../uncontrolled/slider/SliderBase.js";import"../../../../uncontrolled/switch/Switch.js";import"../../../../uncontrolled/textarea/Textarea.js";import"../../../../uncontrolled/uploader/UploaderBase.js";import"../../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../Editor.js";import"../../../input/MaskInputControl.js";import"classnames";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const Ct=({editor:o})=>{const[e,n]=a(null),i=()=>{const t=s();n(t)};u(()=>{if(!o)return;i();const t=()=>i();return o.on("selectionUpdate",t),o.on("transaction",t),()=>{o.off("selectionUpdate",t),o.off("transaction",t)}},[o]);const m=t=>o.chain().focus().setFontSize(t).run(),p=()=>o.chain().focus().unsetFontSize().run(),s=()=>{const{fontSize:t}=o.getAttributes("textStyle");return t||"16px"};return r(S,{classes:{content:"w-full"},triggerElement:r("span",{title:"Размер шрифта",className:"flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white",children:r(d,{name:"editor/fonts",className:"size-4"})}),children:l("div",{className:"flex flex-col gap-3",children:[f.map(({value:t,label:c})=>r("button",{type:"button",onClick:()=>m(t),className:h("text-left",{"text-color-primary-default":e===t}),children:r("span",{children:c})},t)),r(z,{intent:"secondary",size:"sm",type:"button",onClick:p,children:"Сбросить"})]})})};export{Ct as SetFontSize};
1
+ import{jsx as r,jsxs as l}from"react/jsx-runtime";import{useState as a,useEffect as u}from"react";import"../../model/extensions.js";import"../../model/config.js";import{fontSizesOptions as f}from"../../model/helper.js";import{cn as h}from"../../../../../../utils/cn.js";import"uuid";import{Button as z}from"../../../../../button/Button.js";import"../../../../../button/model/helpers.js";import"../../../../../buttonIcon/ButtonIcon.js";import"../../../../../loader/model/helpers.js";import"../../../../../calendar/Calendar.js";import"../../../../../calendar/model/utils.js";import"../../../../../accordion/Accordion.js";import"@radix-ui/react-tooltip";import"react-hook-form";import"@hookform/resolvers/zod";import{Popover as S}from"../../../../../popover/Popover.js";import"@radix-ui/react-tabs";import"react-dom";import"framer-motion";import"../../../../../modal/ui/IframeModalContent.js";import"react-hot-toast";import"../../../../../notification/ui/CustomToast.js";import"../../../../../table/ui/primitives/Primitives.js";import{Icon as d}from"../../../../../icon/Icon.js";import"@tanstack/react-table";import"../../../../../heading/Heading.js";import"embla-carousel-autoplay";import"embla-carousel-react";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../customLink/model/helpers.js";import"../../../../../slot/Slot.js";import"../../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../../uncontrolled/checkbox/Checkbox.js";import"../../../../uncontrolled/combobox/combobox.js";import"../../../../uncontrolled/dayPicker/DayPicker.js";import"../../../../uncontrolled/input/Input.js";import"../../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../../uncontrolled/maskInput/MaskInput.js";import"../../../../uncontrolled/radio/RadioGroup.js";import"../../../../uncontrolled/radio/ui/RadioItem.js";import"@radix-ui/react-radio-group";import"../../../../uncontrolled/slider/SliderBase.js";import"../../../../uncontrolled/switch/Switch.js";import"../../../../uncontrolled/textarea/Textarea.js";import"../../../../uncontrolled/uploader/UploaderBase.js";import"../../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../../ui/MessageView.js";import"@tanstack/react-query";import"../../../../../../../../src/configs/api.js";import"@floating-ui/react";import"date-fns";import"../Editor.js";import"../../../input/MaskInputControl.js";import"../../../../../../../../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const Ct=({editor:o})=>{const[e,n]=a(null),i=()=>{const t=s();n(t)};u(()=>{if(!o)return;i();const t=()=>i();return o.on("selectionUpdate",t),o.on("transaction",t),()=>{o.off("selectionUpdate",t),o.off("transaction",t)}},[o]);const m=t=>o.chain().focus().setFontSize(t).run(),p=()=>o.chain().focus().unsetFontSize().run(),s=()=>{const{fontSize:t}=o.getAttributes("textStyle");return t||"16px"};return r(S,{classes:{content:"w-full"},triggerElement:r("span",{title:"Размер шрифта",className:"flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white",children:r(d,{name:"editor/fonts",className:"size-4"})}),children:l("div",{className:"flex flex-col gap-3",children:[f.map(({value:t,label:c})=>r("button",{type:"button",onClick:()=>m(t),className:h("text-left",{"text-color-primary-default":e===t}),children:r("span",{children:c})},t)),r(z,{intent:"secondary",size:"sm",type:"button",onClick:p,children:"Сбросить"})]})})};export{Ct as SetFontSize};
2
2
  //# sourceMappingURL=SetFontSize.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SetFontSize.js","sources":["../../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/commands/SetFontSize.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport type { Editor } from '@tiptap/react'\nimport { fontSizesOptions } from '../../model'\nimport { Button, Icon, Popover } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface SetFontSizeProps {\n editor: Editor\n}\n\nexport const SetFontSize = ({ editor }: SetFontSizeProps) => {\n const [currentSize, setCurrentSize] = useState<string | null>(null)\n\n const updateCurrentSize = () => {\n const size = getCurrentFontSize()\n setCurrentSize(size)\n }\n\n useEffect(() => {\n if (!editor) return\n updateCurrentSize()\n const handleUpdate = () => updateCurrentSize()\n\n editor.on('selectionUpdate', handleUpdate)\n editor.on('transaction', handleUpdate)\n\n return () => {\n editor.off('selectionUpdate', handleUpdate)\n editor.off('transaction', handleUpdate)\n }\n }, [editor])\n\n const handleFontSizeChange = (size: string) => editor.chain().focus().setFontSize(size).run()\n\n const handleRemoveFontSize = () => editor.chain().focus().unsetFontSize().run()\n\n const getCurrentFontSize = () => {\n const { fontSize } = editor.getAttributes('textStyle')\n return fontSize || '16px'\n }\n\n return (\n <Popover\n classes={{ content: 'w-full' }}\n triggerElement={\n <span\n title='Размер шрифта'\n className='flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white'\n >\n <Icon name='editor/fonts' className='size-4' />\n </span>\n }\n >\n <div className='flex flex-col gap-3'>\n {fontSizesOptions.map(({ value, label }) => {\n const isActive = currentSize === value\n return (\n <button\n type='button'\n key={value}\n onClick={() => handleFontSizeChange(value)}\n className={cn('text-left', {\n 'text-color-primary-default': isActive\n })}\n >\n <span>{label}</span>\n </button>\n )\n })}\n\n <Button intent='secondary' size='sm' type='button' onClick={handleRemoveFontSize}>\n Сбросить\n </Button>\n </div>\n </Popover>\n )\n}\n"],"names":["SetFontSize","editor","currentSize","setCurrentSize","useState","updateCurrentSize","size","getCurrentFontSize","useEffect","handleUpdate","handleFontSizeChange","handleRemoveFontSize","fontSize","jsx","Popover","Icon","jsxs","fontSizesOptions","value","label","cn","Button"],"mappings":"46EAUO,MAAMA,GAAc,CAAC,CAAE,OAAAC,KAA+B,CAC3D,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAwB,IAAI,EAE5DC,EAAoB,IAAM,CAC9B,MAAMC,EAAOC,EAAA,EACbJ,EAAeG,CAAI,CACrB,EAEAE,EAAU,IAAM,CACd,GAAI,CAACP,EAAQ,OACbI,EAAA,EACA,MAAMI,EAAe,IAAMJ,EAAA,EAE3B,OAAAJ,EAAO,GAAG,kBAAmBQ,CAAY,EACzCR,EAAO,GAAG,cAAeQ,CAAY,EAE9B,IAAM,CACXR,EAAO,IAAI,kBAAmBQ,CAAY,EAC1CR,EAAO,IAAI,cAAeQ,CAAY,CACxC,CACF,EAAG,CAACR,CAAM,CAAC,EAEX,MAAMS,EAAwBJ,GAAiBL,EAAO,MAAA,EAAQ,MAAA,EAAQ,YAAYK,CAAI,EAAE,IAAA,EAElFK,EAAuB,IAAMV,EAAO,MAAA,EAAQ,QAAQ,cAAA,EAAgB,IAAA,EAEpEM,EAAqB,IAAM,CAC/B,KAAM,CAAE,SAAAK,CAAA,EAAaX,EAAO,cAAc,WAAW,EACrD,OAAOW,GAAY,MACrB,EAEA,OACEC,EAACC,EAAA,CACC,QAAS,CAAE,QAAS,QAAA,EACpB,eACED,EAAC,OAAA,CACC,MAAM,gBACN,UAAU,4KAEV,SAAAA,EAACE,EAAA,CAAK,KAAK,eAAe,UAAU,QAAA,CAAS,CAAA,CAAA,EAIjD,SAAAC,EAAC,MAAA,CAAI,UAAU,sBACZ,SAAA,CAAAC,EAAiB,IAAI,CAAC,CAAE,MAAAC,EAAO,MAAAC,KAG5BN,EAAC,SAAA,CACC,KAAK,SAEL,QAAS,IAAMH,EAAqBQ,CAAK,EACzC,UAAWE,EAAG,YAAa,CACzB,6BAPWlB,IAAgBgB,CAOG,CAC/B,EAED,SAAAL,EAAC,QAAM,SAAAM,CAAA,CAAM,CAAA,EANRD,CAAA,CASV,EAEDL,EAACQ,EAAA,CAAO,OAAO,YAAY,KAAK,KAAK,KAAK,SAAS,QAASV,EAAsB,SAAA,UAAA,CAElF,CAAA,CAAA,CACF,CAAA,CAAA,CAGN"}
1
+ {"version":3,"file":"SetFontSize.js","sources":["../../../../../../../../../lib/shared/ui/formElements/controlled/editor/ui/commands/SetFontSize.tsx"],"sourcesContent":["import { useEffect, useState } from 'react'\nimport type { Editor } from '@tiptap/react'\nimport { fontSizesOptions } from '../../model'\nimport { Button, Icon, Popover } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface SetFontSizeProps {\n editor: Editor\n}\n\nexport const SetFontSize = ({ editor }: SetFontSizeProps) => {\n const [currentSize, setCurrentSize] = useState<string | null>(null)\n\n const updateCurrentSize = () => {\n const size = getCurrentFontSize()\n setCurrentSize(size)\n }\n\n useEffect(() => {\n if (!editor) return\n updateCurrentSize()\n const handleUpdate = () => updateCurrentSize()\n\n editor.on('selectionUpdate', handleUpdate)\n editor.on('transaction', handleUpdate)\n\n return () => {\n editor.off('selectionUpdate', handleUpdate)\n editor.off('transaction', handleUpdate)\n }\n }, [editor])\n\n const handleFontSizeChange = (size: string) => editor.chain().focus().setFontSize(size).run()\n\n const handleRemoveFontSize = () => editor.chain().focus().unsetFontSize().run()\n\n const getCurrentFontSize = () => {\n const { fontSize } = editor.getAttributes('textStyle')\n return fontSize || '16px'\n }\n\n return (\n <Popover\n classes={{ content: 'w-full' }}\n triggerElement={\n <span\n title='Размер шрифта'\n className='flex size-7 cursor-pointer items-center justify-center rounded-sm text-color-secondary outline-none transition-colors hover:bg-color-primary-hover hover:text-color-white'\n >\n <Icon name='editor/fonts' className='size-4' />\n </span>\n }\n >\n <div className='flex flex-col gap-3'>\n {fontSizesOptions.map(({ value, label }) => {\n const isActive = currentSize === value\n return (\n <button\n type='button'\n key={value}\n onClick={() => handleFontSizeChange(value)}\n className={cn('text-left', {\n 'text-color-primary-default': isActive\n })}\n >\n <span>{label}</span>\n </button>\n )\n })}\n\n <Button intent='secondary' size='sm' type='button' onClick={handleRemoveFontSize}>\n Сбросить\n </Button>\n </div>\n </Popover>\n )\n}\n"],"names":["SetFontSize","editor","currentSize","setCurrentSize","useState","updateCurrentSize","size","getCurrentFontSize","useEffect","handleUpdate","handleFontSizeChange","handleRemoveFontSize","fontSize","jsx","Popover","Icon","jsxs","fontSizesOptions","value","label","cn","Button"],"mappings":"8/EAUO,MAAMA,GAAc,CAAC,CAAE,OAAAC,KAA+B,CAC3D,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAwB,IAAI,EAE5DC,EAAoB,IAAM,CAC9B,MAAMC,EAAOC,EAAA,EACbJ,EAAeG,CAAI,CACrB,EAEAE,EAAU,IAAM,CACd,GAAI,CAACP,EAAQ,OACbI,EAAA,EACA,MAAMI,EAAe,IAAMJ,EAAA,EAE3B,OAAAJ,EAAO,GAAG,kBAAmBQ,CAAY,EACzCR,EAAO,GAAG,cAAeQ,CAAY,EAE9B,IAAM,CACXR,EAAO,IAAI,kBAAmBQ,CAAY,EAC1CR,EAAO,IAAI,cAAeQ,CAAY,CACxC,CACF,EAAG,CAACR,CAAM,CAAC,EAEX,MAAMS,EAAwBJ,GAAiBL,EAAO,MAAA,EAAQ,MAAA,EAAQ,YAAYK,CAAI,EAAE,IAAA,EAElFK,EAAuB,IAAMV,EAAO,MAAA,EAAQ,QAAQ,cAAA,EAAgB,IAAA,EAEpEM,EAAqB,IAAM,CAC/B,KAAM,CAAE,SAAAK,CAAA,EAAaX,EAAO,cAAc,WAAW,EACrD,OAAOW,GAAY,MACrB,EAEA,OACEC,EAACC,EAAA,CACC,QAAS,CAAE,QAAS,QAAA,EACpB,eACED,EAAC,OAAA,CACC,MAAM,gBACN,UAAU,4KAEV,SAAAA,EAACE,EAAA,CAAK,KAAK,eAAe,UAAU,QAAA,CAAS,CAAA,CAAA,EAIjD,SAAAC,EAAC,MAAA,CAAI,UAAU,sBACZ,SAAA,CAAAC,EAAiB,IAAI,CAAC,CAAE,MAAAC,EAAO,MAAAC,KAG5BN,EAAC,SAAA,CACC,KAAK,SAEL,QAAS,IAAMH,EAAqBQ,CAAK,EACzC,UAAWE,EAAG,YAAa,CACzB,6BAPWlB,IAAgBgB,CAOG,CAC/B,EAED,SAAAL,EAAC,QAAM,SAAAM,CAAA,CAAM,CAAA,EANRD,CAAA,CASV,EAEDL,EAACQ,EAAA,CAAO,OAAO,YAAY,KAAK,KAAK,KAAK,SAAS,QAASV,EAAsB,SAAA,UAAA,CAElF,CAAA,CAAA,CACF,CAAA,CAAA,CAGN"}