@scbt-ecom/ui 0.93.0 → 0.94.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (449) hide show
  1. package/README.md +1 -1
  2. package/dist/lib/configs/tailwindConfigBase.js.map +1 -1
  3. package/dist/lib/configs/tailwindPresets/resetPreset.js.map +1 -1
  4. package/dist/lib/next/utils/hasWidget.js.map +1 -1
  5. package/dist/lib/next/utils/hideWidgetsWithQueryParams.js.map +1 -1
  6. package/dist/lib/next/utils/orderWidgetWithQueryParams.js.map +1 -1
  7. package/dist/lib/shared/api/apiInstance.js.map +1 -1
  8. package/dist/lib/shared/hooks/useClickOutside.js.map +1 -1
  9. package/dist/lib/shared/hooks/useDebounce.js.map +1 -1
  10. package/dist/lib/shared/hooks/useDevice.js.map +1 -1
  11. package/dist/lib/shared/hooks/useFieldsProgress.js.map +1 -1
  12. package/dist/lib/shared/hooks/useFloating.js.map +1 -1
  13. package/dist/lib/shared/hooks/useObserverWidgets.js.map +1 -1
  14. package/dist/lib/shared/hooks/useOverflow.js.map +1 -1
  15. package/dist/lib/shared/ui/accordion/Accordion.js.map +1 -1
  16. package/dist/lib/shared/ui/calendar/Calendar.js.map +1 -1
  17. package/dist/lib/shared/ui/calendar/ui/MonthCaption.js.map +1 -1
  18. package/dist/lib/shared/ui/calendar/ui/Navigation.js.map +1 -1
  19. package/dist/lib/shared/ui/calendar/ui/selectDate/SelectDate.js.map +1 -1
  20. package/dist/lib/shared/ui/calendar/ui/selectDate/ui/SelectList.js.map +1 -1
  21. package/dist/lib/shared/ui/carousel/CarouselNative.js.map +1 -1
  22. package/dist/lib/shared/ui/carousel/model/hooks/useArrowNavigation.js.map +1 -1
  23. package/dist/lib/shared/ui/carousel/model/hooks/useCarousel.js.map +1 -1
  24. package/dist/lib/shared/ui/carousel/model/hooks/useDotsNavigation.js.map +1 -1
  25. package/dist/lib/shared/ui/carousel/ui/CarouselContent.js.map +1 -1
  26. package/dist/lib/shared/ui/dialog/Dialog.js.map +1 -1
  27. package/dist/lib/shared/ui/dropdownList/DropdownList.js.map +1 -1
  28. package/dist/lib/shared/ui/dropdownList/hooks/useKeyboardNavigation.js.map +1 -1
  29. package/dist/lib/shared/ui/dropdownList/ui/dropdownItem/DropdownItem.js.map +1 -1
  30. package/dist/lib/shared/ui/formElements/controlled/combobox/ComboboxControl.js.map +1 -1
  31. package/dist/lib/shared/ui/formElements/controlled/dadata/address/query.js.map +1 -1
  32. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/query.js.map +1 -1
  33. package/dist/lib/shared/ui/formElements/controlled/dadata/country/query.js.map +1 -1
  34. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/query.js.map +1 -1
  35. package/dist/lib/shared/ui/formElements/controlled/dadata/party/query.js.map +1 -1
  36. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.js.map +1 -1
  37. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/range.js.map +1 -1
  38. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/single.js.map +1 -1
  39. package/dist/lib/shared/ui/formElements/controlled/editor/model/config.js.map +1 -1
  40. package/dist/lib/shared/ui/formElements/controlled/editor/ui/Editor.js.map +1 -1
  41. package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/setCustomLink.js.map +1 -1
  42. package/dist/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.js.map +1 -1
  43. package/dist/lib/shared/ui/formElements/controlled/inputCurrency/model/useInputCurrency.js.map +1 -1
  44. package/dist/lib/shared/ui/formElements/controlled/select/SelectControl.js.map +1 -1
  45. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js.map +1 -1
  46. package/dist/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.js.map +1 -1
  47. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js.map +1 -1
  48. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/hooks/useCombobox.js.map +1 -1
  49. package/dist/lib/shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js.map +1 -1
  50. package/dist/lib/shared/ui/formElements/uncontrolled/input/Input.js.map +1 -1
  51. package/dist/lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js.map +1 -1
  52. package/dist/lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.js.map +1 -1
  53. package/dist/lib/shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js.map +1 -1
  54. package/dist/lib/shared/ui/formElements/uncontrolled/select/Select.js.map +1 -1
  55. package/dist/lib/shared/ui/formElements/uncontrolled/select/hooks/useSelectController.js.map +1 -1
  56. package/dist/lib/shared/ui/formElements/uncontrolled/select/ui/Chip.js.map +1 -1
  57. package/dist/lib/shared/ui/formElements/uncontrolled/select/ui/SelectItem.js.map +1 -1
  58. package/dist/lib/shared/ui/formElements/uncontrolled/slider/model/useLogarithmic.js.map +1 -1
  59. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/Slider.js.map +1 -1
  60. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js.map +1 -1
  61. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/useSliderAlgorithmic.js.map +1 -1
  62. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js.map +1 -1
  63. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/useSliderMarks.js.map +1 -1
  64. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js.map +1 -1
  65. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/hooks/useSliderStep.js.map +1 -1
  66. package/dist/lib/shared/ui/formElements/uncontrolled/switch/Switch.js.map +1 -1
  67. package/dist/lib/shared/ui/formElements/uncontrolled/textarea/Textarea.js.map +1 -1
  68. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.js.map +1 -1
  69. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/model/hooks/useUploader.js.map +1 -1
  70. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/ui/UploaderInput.js.map +1 -1
  71. package/dist/lib/shared/ui/modal/Modal.js.map +1 -1
  72. package/dist/lib/shared/ui/modal/ui/IframeModalContent.js.map +1 -1
  73. package/dist/lib/shared/ui/pagination/Pagination.js.map +1 -1
  74. package/dist/lib/shared/ui/providers/NotificationProvider.js.map +1 -1
  75. package/dist/lib/shared/ui/slot/Slot.js.map +1 -1
  76. package/dist/lib/shared/ui/slot/model/mergeProps.js.map +1 -1
  77. package/dist/lib/shared/ui/slot/ui/SlotClone.js.map +1 -1
  78. package/dist/lib/shared/ui/tabSwitcher/ui/TabContent.js.map +1 -1
  79. package/dist/lib/shared/ui/table/Mobile.js.map +1 -1
  80. package/dist/lib/shared/ui/table/model/TableUtils.js.map +1 -1
  81. package/dist/lib/shared/ui/table/ui/editableCell/EditableCell.js.map +1 -1
  82. package/dist/lib/shared/utils/localStorageActions.js.map +1 -1
  83. package/dist/lib/shared/utils/mergeRefs.js.map +1 -1
  84. package/dist/lib/shared/utils/scrollToElement.js.map +1 -1
  85. package/dist/lib/shared/utils/sessionStorage.js.map +1 -1
  86. package/dist/lib/shared/utils/typeGuards.js.map +1 -1
  87. package/dist/lib/shared/validation/base/base.constants.js.map +1 -1
  88. package/dist/lib/shared/validation/base/date.validators.js.map +1 -1
  89. package/dist/lib/shared/validation/base/phone.validators.js.map +1 -1
  90. package/dist/lib/shared/validation/base/select.validators.js.map +1 -1
  91. package/dist/lib/shared/validation/dadata/fio.validators.js.map +1 -1
  92. package/dist/lib/shared/validation/utils/zodUtils.js.map +1 -1
  93. package/dist/lib/widgets/breadcrumbs/Breadcrumbs.js.map +1 -1
  94. package/dist/lib/widgets/buttonWithHandlers/model/useButtonHandler.js.map +1 -1
  95. package/dist/lib/widgets/calculator/CalculatorView.js.map +1 -1
  96. package/dist/lib/widgets/calculator/ui/calculatorFields/hooks/useAdditionalSlider.js.map +1 -1
  97. package/dist/lib/widgets/dynamicForm/DynamicForm.js.map +1 -1
  98. package/dist/lib/widgets/dynamicFormDialog/DynamicFormDialog.js.map +1 -1
  99. package/dist/lib/widgets/fieldMapper/FieldMapper.js.map +1 -1
  100. package/dist/lib/widgets/footer/ui/Ligal.js.map +1 -1
  101. package/dist/lib/widgets/htmlParser/baseHtmlParser.js.map +1 -1
  102. package/dist/lib/widgets/htmlParser/htmlParser.js.map +1 -1
  103. package/dist/lib/widgets/htmlParser/reactHtmlParser.js.map +1 -1
  104. package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js.map +1 -1
  105. package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.js.map +1 -1
  106. package/dist/lib/widgets/seoHeader/ui/desktop/rootTab/RootTab.js.map +1 -1
  107. package/dist/lib/widgets/seoHeader/ui/desktop/tab/ui/content/TabContent.js.map +1 -1
  108. package/dist/lib/widgets/seoHeader/ui/mobile/menu/Menu.js.map +1 -1
  109. package/dist/lib/widgets/seoHeader/ui/mobile/menu/MenuItem.js.map +1 -1
  110. package/dist/lib/widgets/userFeedback/model/hooks/useRating.js.map +1 -1
  111. package/dist/lib/widgets/userFeedback/ui/FeedbackTrigger.js.map +1 -1
  112. package/dist/lib/widgets/userFeedback/ui/UserReview.js.map +1 -1
  113. package/dist/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  114. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js.map +1 -1
  115. package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +1 -1
  116. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js.map +1 -1
  117. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
  118. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -1
  119. package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -1
  120. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -1
  121. package/dist/node_modules/@date-fns/tz/date/index.js.map +1 -1
  122. package/dist/node_modules/@date-fns/tz/date/mini.js.map +1 -1
  123. package/dist/node_modules/@date-fns/tz/tzOffset/index.js.map +1 -1
  124. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -1
  125. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -1
  126. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.js.map +1 -1
  127. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js.map +1 -1
  128. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -1
  129. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -1
  130. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js.map +1 -1
  131. package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js.map +1 -1
  132. package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js.map +1 -1
  133. package/dist/node_modules/@headlessui/react/dist/internal/floating.js.map +1 -1
  134. package/dist/node_modules/@headlessui/react/node_modules/@floating-ui/react/dist/floating-ui.react.js.map +1 -1
  135. package/dist/node_modules/@headlessui/react/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js.map +1 -1
  136. package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -1
  137. package/dist/node_modules/@radix-ui/react-checkbox/dist/index.js.map +1 -1
  138. package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -1
  139. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -1
  140. package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -1
  141. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -1
  142. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -1
  143. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -1
  144. package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -1
  145. package/dist/node_modules/@radix-ui/react-popover/dist/index.js.map +1 -1
  146. package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
  147. package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -1
  148. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -1
  149. package/dist/node_modules/@radix-ui/react-radio-group/dist/index.js.map +1 -1
  150. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -1
  151. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
  152. package/dist/node_modules/@radix-ui/react-switch/dist/index.js.map +1 -1
  153. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js.map +1 -1
  154. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.js.map +1 -1
  155. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -1
  156. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -1
  157. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -1
  158. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -1
  159. package/dist/node_modules/@react-aria/focus/dist/useFocusRing.js.map +1 -1
  160. package/dist/node_modules/@react-aria/interactions/dist/useFocus.js.map +1 -1
  161. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.js.map +1 -1
  162. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.js.map +1 -1
  163. package/dist/node_modules/@react-aria/interactions/dist/useHover.js.map +1 -1
  164. package/dist/node_modules/@react-aria/interactions/dist/utils.js.map +1 -1
  165. package/dist/node_modules/@react-aria/utils/dist/DOMFunctions.js.map +1 -1
  166. package/dist/node_modules/@react-aria/utils/dist/useEffectEvent.js.map +1 -1
  167. package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.js.map +1 -1
  168. package/dist/node_modules/@react-aria/utils/dist/useLayoutEffect.js.map +1 -1
  169. package/dist/node_modules/@tanstack/query-core/build/modern/focusManager.js.map +1 -1
  170. package/dist/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js.map +1 -1
  171. package/dist/node_modules/@tanstack/query-core/build/modern/mutation.js.map +1 -1
  172. package/dist/node_modules/@tanstack/query-core/build/modern/mutationCache.js.map +1 -1
  173. package/dist/node_modules/@tanstack/query-core/build/modern/notifyManager.js.map +1 -1
  174. package/dist/node_modules/@tanstack/query-core/build/modern/onlineManager.js.map +1 -1
  175. package/dist/node_modules/@tanstack/query-core/build/modern/query.js.map +1 -1
  176. package/dist/node_modules/@tanstack/query-core/build/modern/queryCache.js.map +1 -1
  177. package/dist/node_modules/@tanstack/query-core/build/modern/queryClient.js.map +1 -1
  178. package/dist/node_modules/@tanstack/query-core/build/modern/queryObserver.js.map +1 -1
  179. package/dist/node_modules/@tanstack/query-core/build/modern/removable.js.map +1 -1
  180. package/dist/node_modules/@tanstack/query-core/build/modern/retryer.js.map +1 -1
  181. package/dist/node_modules/@tanstack/query-core/build/modern/subscribable.js.map +1 -1
  182. package/dist/node_modules/@tanstack/query-core/build/modern/thenable.js.map +1 -1
  183. package/dist/node_modules/@tanstack/query-core/build/modern/utils.js.map +1 -1
  184. package/dist/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js.map +1 -1
  185. package/dist/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js.map +1 -1
  186. package/dist/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js.map +1 -1
  187. package/dist/node_modules/@tanstack/react-query/build/modern/suspense.js.map +1 -1
  188. package/dist/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js.map +1 -1
  189. package/dist/node_modules/@tanstack/react-table/build/lib/index.js.map +1 -1
  190. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js.map +1 -1
  191. package/dist/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -1
  192. package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js.map +1 -1
  193. package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js.map +1 -1
  194. package/dist/node_modules/@tiptap/core/dist/index.js.map +1 -1
  195. package/dist/node_modules/@tiptap/extension-blockquote/dist/index.js.map +1 -1
  196. package/dist/node_modules/@tiptap/extension-bold/dist/index.js.map +1 -1
  197. package/dist/node_modules/@tiptap/extension-bullet-list/dist/index.js.map +1 -1
  198. package/dist/node_modules/@tiptap/extension-character-count/dist/index.js.map +1 -1
  199. package/dist/node_modules/@tiptap/extension-code/dist/index.js.map +1 -1
  200. package/dist/node_modules/@tiptap/extension-code-block/dist/index.js.map +1 -1
  201. package/dist/node_modules/@tiptap/extension-color/dist/index.js.map +1 -1
  202. package/dist/node_modules/@tiptap/extension-dropcursor/dist/index.js.map +1 -1
  203. package/dist/node_modules/@tiptap/extension-gapcursor/dist/index.js.map +1 -1
  204. package/dist/node_modules/@tiptap/extension-hard-break/dist/index.js.map +1 -1
  205. package/dist/node_modules/@tiptap/extension-heading/dist/index.js.map +1 -1
  206. package/dist/node_modules/@tiptap/extension-history/dist/index.js.map +1 -1
  207. package/dist/node_modules/@tiptap/extension-horizontal-rule/dist/index.js.map +1 -1
  208. package/dist/node_modules/@tiptap/extension-italic/dist/index.js.map +1 -1
  209. package/dist/node_modules/@tiptap/extension-link/dist/index.js.map +1 -1
  210. package/dist/node_modules/@tiptap/extension-list-item/dist/index.js.map +1 -1
  211. package/dist/node_modules/@tiptap/extension-ordered-list/dist/index.js.map +1 -1
  212. package/dist/node_modules/@tiptap/extension-paragraph/dist/index.js.map +1 -1
  213. package/dist/node_modules/@tiptap/extension-strike/dist/index.js.map +1 -1
  214. package/dist/node_modules/@tiptap/extension-text-style/dist/index.js.map +1 -1
  215. package/dist/node_modules/@tiptap/extension-underline/dist/index.js.map +1 -1
  216. package/dist/node_modules/@tiptap/react/dist/index.js.map +1 -1
  217. package/dist/node_modules/@tiptap/starter-kit/dist/index.js.map +1 -1
  218. package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -1
  219. package/dist/node_modules/class-variance-authority/dist/index.js.map +1 -1
  220. package/dist/node_modules/classnames/index.js.map +1 -1
  221. package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -1
  222. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -1
  223. package/dist/node_modules/date-fns/format.js.map +1 -1
  224. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -1
  225. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -1
  226. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -1
  227. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -1
  228. package/dist/node_modules/date-fns/locale/ru/_lib/formatRelative.js.map +1 -1
  229. package/dist/node_modules/date-fns/max.js.map +1 -1
  230. package/dist/node_modules/date-fns/min.js.map +1 -1
  231. package/dist/node_modules/date-fns/parse/_lib/Parser.js.map +1 -1
  232. package/dist/node_modules/date-fns/parse/_lib/Setter.js.map +1 -1
  233. package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js.map +1 -1
  234. package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js.map +1 -1
  235. package/dist/node_modules/date-fns/parse/_lib/parsers/DateParser.js.map +1 -1
  236. package/dist/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js.map +1 -1
  237. package/dist/node_modules/date-fns/parse/_lib/parsers/DayParser.js.map +1 -1
  238. package/dist/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js.map +1 -1
  239. package/dist/node_modules/date-fns/parse/_lib/parsers/EraParser.js.map +1 -1
  240. package/dist/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js.map +1 -1
  241. package/dist/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js.map +1 -1
  242. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js.map +1 -1
  243. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js.map +1 -1
  244. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js.map +1 -1
  245. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js.map +1 -1
  246. package/dist/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js.map +1 -1
  247. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js.map +1 -1
  248. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js.map +1 -1
  249. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js.map +1 -1
  250. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js.map +1 -1
  251. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js.map +1 -1
  252. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js.map +1 -1
  253. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js.map +1 -1
  254. package/dist/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js.map +1 -1
  255. package/dist/node_modules/date-fns/parse/_lib/parsers/MonthParser.js.map +1 -1
  256. package/dist/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js.map +1 -1
  257. package/dist/node_modules/date-fns/parse/_lib/parsers/SecondParser.js.map +1 -1
  258. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js.map +1 -1
  259. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js.map +1 -1
  260. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js.map +1 -1
  261. package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js.map +1 -1
  262. package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js.map +1 -1
  263. package/dist/node_modules/date-fns/parse/_lib/parsers/YearParser.js.map +1 -1
  264. package/dist/node_modules/date-fns/parse/_lib/utils.js.map +1 -1
  265. package/dist/node_modules/date-fns/parse.js.map +1 -1
  266. package/dist/node_modules/embla-carousel/esm/embla-carousel.esm.js.map +1 -1
  267. package/dist/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js.map +1 -1
  268. package/dist/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js.map +1 -1
  269. package/dist/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js.map +1 -1
  270. package/dist/node_modules/file-selector/dist/es2015/file-selector.js.map +1 -1
  271. package/dist/node_modules/file-selector/dist/es2015/file.js.map +1 -1
  272. package/dist/node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.js.map +1 -1
  273. package/dist/node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.js.map +1 -1
  274. package/dist/node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.js.map +1 -1
  275. package/dist/node_modules/framer-motion/dist/es/animation/generators/inertia.js.map +1 -1
  276. package/dist/node_modules/framer-motion/dist/es/animation/generators/spring/find.js.map +1 -1
  277. package/dist/node_modules/framer-motion/dist/es/animation/generators/spring/index.js.map +1 -1
  278. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.js.map +1 -1
  279. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.js.map +1 -1
  280. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.js.map +1 -1
  281. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element.js.map +1 -1
  282. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.js.map +1 -1
  283. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.js.map +1 -1
  284. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.js.map +1 -1
  285. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.js.map +1 -1
  286. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.js.map +1 -1
  287. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.js.map +1 -1
  288. package/dist/node_modules/framer-motion/dist/es/easing/utils/map.js.map +1 -1
  289. package/dist/node_modules/framer-motion/dist/es/frameloop/batcher.js.map +1 -1
  290. package/dist/node_modules/framer-motion/dist/es/frameloop/render-step.js.map +1 -1
  291. package/dist/node_modules/framer-motion/dist/es/frameloop/sync-time.js.map +1 -1
  292. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.js.map +1 -1
  293. package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.js.map +1 -1
  294. package/dist/node_modules/framer-motion/dist/es/gestures/focus.js.map +1 -1
  295. package/dist/node_modules/framer-motion/dist/es/gestures/hover.js.map +1 -1
  296. package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.js.map +1 -1
  297. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.js.map +1 -1
  298. package/dist/node_modules/framer-motion/dist/es/gestures/press.js.map +1 -1
  299. package/dist/node_modules/framer-motion/dist/es/motion/features/Feature.js.map +1 -1
  300. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.js.map +1 -1
  301. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.js.map +1 -1
  302. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.js.map +1 -1
  303. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.js.map +1 -1
  304. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.js.map +1 -1
  305. package/dist/node_modules/framer-motion/dist/es/motion/index.js.map +1 -1
  306. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.js.map +1 -1
  307. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.js.map +1 -1
  308. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.js.map +1 -1
  309. package/dist/node_modules/framer-motion/dist/es/projection/animation/mix-values.js.map +1 -1
  310. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.js.map +1 -1
  311. package/dist/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.js.map +1 -1
  312. package/dist/node_modules/framer-motion/dist/es/projection/node/create-projection-node.js.map +1 -1
  313. package/dist/node_modules/framer-motion/dist/es/projection/shared/stack.js.map +1 -1
  314. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.js.map +1 -1
  315. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.js.map +1 -1
  316. package/dist/node_modules/framer-motion/dist/es/projection/styles/transform.js.map +1 -1
  317. package/dist/node_modules/framer-motion/dist/es/render/VisualElement.js.map +1 -1
  318. package/dist/node_modules/framer-motion/dist/es/render/components/create-factory.js.map +1 -1
  319. package/dist/node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.js.map +1 -1
  320. package/dist/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.js.map +1 -1
  321. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.js.map +1 -1
  322. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.js.map +1 -1
  323. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.js.map +1 -1
  324. package/dist/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.js.map +1 -1
  325. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.js.map +1 -1
  326. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-styles.js.map +1 -1
  327. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-transform.js.map +1 -1
  328. package/dist/node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.js.map +1 -1
  329. package/dist/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.js.map +1 -1
  330. package/dist/node_modules/framer-motion/dist/es/render/svg/config-motion.js.map +1 -1
  331. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.js.map +1 -1
  332. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.js.map +1 -1
  333. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.js.map +1 -1
  334. package/dist/node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.js.map +1 -1
  335. package/dist/node_modules/framer-motion/dist/es/render/utils/animation-state.js.map +1 -1
  336. package/dist/node_modules/framer-motion/dist/es/render/utils/flat-tree.js.map +1 -1
  337. package/dist/node_modules/framer-motion/dist/es/render/utils/get-variant-context.js.map +1 -1
  338. package/dist/node_modules/framer-motion/dist/es/render/utils/motion-values.js.map +1 -1
  339. package/dist/node_modules/framer-motion/dist/es/render/utils/resolve-variants.js.map +1 -1
  340. package/dist/node_modules/framer-motion/dist/es/render/utils/setters.js.map +1 -1
  341. package/dist/node_modules/framer-motion/dist/es/utils/delay.js.map +1 -1
  342. package/dist/node_modules/framer-motion/dist/es/utils/hsla-to-rgba.js.map +1 -1
  343. package/dist/node_modules/framer-motion/dist/es/utils/interpolate.js.map +1 -1
  344. package/dist/node_modules/framer-motion/dist/es/utils/mix/complex.js.map +1 -1
  345. package/dist/node_modules/framer-motion/dist/es/utils/offsets/fill.js.map +1 -1
  346. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/index.js.map +1 -1
  347. package/dist/node_modules/framer-motion/dist/es/utils/subscription-manager.js.map +1 -1
  348. package/dist/node_modules/framer-motion/dist/es/value/index.js.map +1 -1
  349. package/dist/node_modules/framer-motion/dist/es/value/types/complex/filter.js.map +1 -1
  350. package/dist/node_modules/framer-motion/dist/es/value/types/complex/index.js.map +1 -1
  351. package/dist/node_modules/linkifyjs/dist/linkify.js.map +1 -1
  352. package/dist/node_modules/motion-dom/dist/es/animation/controls/BaseGroup.js.map +1 -1
  353. package/dist/node_modules/motion-dom/dist/es/animation/controls/Group.js.map +1 -1
  354. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.js.map +1 -1
  355. package/dist/node_modules/motion-dom/dist/es/gestures/hover.js.map +1 -1
  356. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.js.map +1 -1
  357. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.js.map +1 -1
  358. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.js.map +1 -1
  359. package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.js.map +1 -1
  360. package/dist/node_modules/motion-dom/dist/es/utils/supports/memo.js.map +1 -1
  361. package/dist/node_modules/orderedmap/dist/index.js.map +1 -1
  362. package/dist/node_modules/prosemirror-commands/dist/index.js.map +1 -1
  363. package/dist/node_modules/prosemirror-dropcursor/dist/index.js.map +1 -1
  364. package/dist/node_modules/prosemirror-gapcursor/dist/index.js.map +1 -1
  365. package/dist/node_modules/prosemirror-history/dist/index.js.map +1 -1
  366. package/dist/node_modules/prosemirror-keymap/dist/index.js.map +1 -1
  367. package/dist/node_modules/prosemirror-model/dist/index.js.map +1 -1
  368. package/dist/node_modules/prosemirror-schema-list/dist/index.js.map +1 -1
  369. package/dist/node_modules/prosemirror-state/dist/index.js.map +1 -1
  370. package/dist/node_modules/prosemirror-transform/dist/index.js.map +1 -1
  371. package/dist/node_modules/prosemirror-view/dist/index.js.map +1 -1
  372. package/dist/node_modules/rc-slider/es/Handles/Handle.js.map +1 -1
  373. package/dist/node_modules/rc-slider/es/Handles/index.js.map +1 -1
  374. package/dist/node_modules/rc-slider/es/Marks/Mark.js.map +1 -1
  375. package/dist/node_modules/rc-slider/es/Marks/index.js.map +1 -1
  376. package/dist/node_modules/rc-slider/es/Slider.js.map +1 -1
  377. package/dist/node_modules/rc-slider/es/Steps/index.js.map +1 -1
  378. package/dist/node_modules/rc-slider/es/Tracks/Track.js.map +1 -1
  379. package/dist/node_modules/rc-slider/es/Tracks/index.js.map +1 -1
  380. package/dist/node_modules/rc-slider/es/hooks/useDrag.js.map +1 -1
  381. package/dist/node_modules/rc-slider/es/hooks/useOffset.js.map +1 -1
  382. package/dist/node_modules/rc-slider/es/hooks/useRange.js.map +1 -1
  383. package/dist/node_modules/rc-util/es/hooks/useEvent.js.map +1 -1
  384. package/dist/node_modules/rc-util/es/hooks/useLayoutEffect.js.map +1 -1
  385. package/dist/node_modules/rc-util/es/hooks/useMergedState.js.map +1 -1
  386. package/dist/node_modules/rc-util/es/hooks/useState.js.map +1 -1
  387. package/dist/node_modules/rc-util/es/isEqual.js.map +1 -1
  388. package/dist/node_modules/react-day-picker/dist/esm/DayPicker.js +1 -1
  389. package/dist/node_modules/react-day-picker/dist/esm/DayPicker.js.map +1 -1
  390. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js.map +1 -1
  391. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js.map +1 -1
  392. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js.map +1 -1
  393. package/dist/node_modules/react-day-picker/dist/esm/classes/DateLib.js.map +1 -1
  394. package/dist/node_modules/react-day-picker/dist/esm/components/DayButton.js.map +1 -1
  395. package/dist/node_modules/react-day-picker/dist/esm/components/Nav.js.map +1 -1
  396. package/dist/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js.map +1 -1
  397. package/dist/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js +1 -1
  398. package/dist/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js.map +1 -1
  399. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js.map +1 -1
  400. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDates.js.map +1 -1
  401. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDays.js.map +1 -1
  402. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js.map +1 -1
  403. package/dist/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js +1 -1
  404. package/dist/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js.map +1 -1
  405. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js.map +1 -1
  406. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonths.js.map +1 -1
  407. package/dist/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js.map +1 -1
  408. package/dist/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js.map +1 -1
  409. package/dist/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js.map +1 -1
  410. package/dist/node_modules/react-day-picker/dist/esm/selection/useMulti.js.map +1 -1
  411. package/dist/node_modules/react-day-picker/dist/esm/selection/useRange.js.map +1 -1
  412. package/dist/node_modules/react-day-picker/dist/esm/selection/useSingle.js.map +1 -1
  413. package/dist/node_modules/react-day-picker/dist/esm/useAnimation.js.map +1 -1
  414. package/dist/node_modules/react-day-picker/dist/esm/useCalendar.js +1 -1
  415. package/dist/node_modules/react-day-picker/dist/esm/useCalendar.js.map +1 -1
  416. package/dist/node_modules/react-day-picker/dist/esm/useFocus.js.map +1 -1
  417. package/dist/node_modules/react-day-picker/dist/esm/utils/addToRange.js.map +1 -1
  418. package/dist/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js.map +1 -1
  419. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js.map +1 -1
  420. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js.map +1 -1
  421. package/dist/node_modules/react-dropzone/dist/es/index.js.map +1 -1
  422. package/dist/node_modules/react-dropzone/dist/es/utils/index.js.map +1 -1
  423. package/dist/node_modules/react-hook-form/dist/index.esm.js +1 -1
  424. package/dist/node_modules/react-hook-form/dist/index.esm.js.map +1 -1
  425. package/dist/node_modules/react-number-format/dist/react-number-format.es.js.map +1 -1
  426. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -1
  427. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -1
  428. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -1
  429. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -1
  430. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -1
  431. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -1
  432. package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -1
  433. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -1
  434. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -1
  435. package/dist/node_modules/rope-sequence/dist/index.js.map +1 -1
  436. package/dist/node_modules/tailwindcss/lib/public/create-plugin.js.map +1 -1
  437. package/dist/node_modules/tailwindcss/lib/util/createPlugin.js.map +1 -1
  438. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  439. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -1
  440. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -1
  441. package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -1
  442. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  443. package/dist/node_modules/zod/v3/ZodError.js.map +1 -1
  444. package/dist/node_modules/zod/v3/helpers/parseUtil.js.map +1 -1
  445. package/dist/node_modules/zod/v3/helpers/util.js.map +1 -1
  446. package/dist/node_modules/zod/v3/types.js.map +1 -1
  447. package/dist/src/shared/utils/getDynamicSchema.js.map +1 -1
  448. package/dist/stats.html +1 -1
  449. package/package.json +1 -1
package/README.md CHANGED
@@ -34,7 +34,7 @@ export default {
34
34
  - На проекте для unit тестирования используется vitest, документация — https://vitest.dev/
35
35
  - Все тесты лежат в папке test, она полностью должно дублировать структуру папки lib, собственно, что мы и тестируем
36
36
  - Снепшоты создаются также с помощью vitest, функция toMatchSnapshot(). Тут главное не нужно создавать на всё подряд их, желательно для реакт компонентов, каких-то больших и сложных объектов, конфигурационных файлов, API-ответов, сложных выходных данных
37
- - Чтобы обновить снепшоты введите.
37
+ - Чтобы обновить снепшоты введите:
38
38
 
39
39
  ```
40
40
  npx vitest -u
@@ -1 +1 @@
1
- {"version":3,"file":"tailwindConfigBase.js","sources":["../../../lib/configs/tailwindConfigBase.ts"],"sourcesContent":["import type { Config } from 'tailwindcss'\nimport plugin from 'tailwindcss/plugin'\nimport tailwindAnimation from 'tailwindcss-animate'\nimport {\n allowedBackgroundColors,\n allowedBackgroundDeg,\n allowedBannersBackgroundColors,\n allowedBorderRadius,\n allowedFontSize,\n allowedIconsColors,\n allowedLineHeight,\n allowedStrokeColors,\n allowedTextColors,\n allowedTextStyles\n} from '../shared/constants'\n\nexport const tailwindConfigBase: Omit<Config, 'content'> = {\n theme: {\n backgroundColor: {\n color: allowedBackgroundColors,\n banner: allowedBannersBackgroundColors,\n icon: allowedIconsColors\n },\n textColor: {\n icon: allowedIconsColors,\n color: allowedTextColors\n },\n fill: allowedIconsColors,\n stroke: allowedIconsColors,\n borderColor: allowedStrokeColors,\n outlineColor: allowedStrokeColors,\n borderRadius: allowedBorderRadius,\n fontFamily: { roboto: ['var(--ff-roboto)', 'sans-serif'] },\n fontSize: allowedFontSize,\n lineHeight: allowedLineHeight,\n gradientColorStops: allowedBackgroundColors,\n boxShadow: {\n sm: '0 8px 20px 0 rgba(0, 0, 0, 0.08)',\n md: '0 12px 20px 0 rgba(0, 33, 87, 0.10)',\n lg: '0 16px 24px 0 rgba(0, 33, 87, 0.16)'\n },\n extend: {\n bgGradientDeg: allowedBackgroundDeg,\n width: {\n 'popper-content': 'var(--radix-popover-content-available-width)',\n 'popper-trigger': 'var(--radix-popover-trigger-width)',\n 'autocomplete-input': 'var(--input-width)',\n 'select-trigger': 'var(--button-width)'\n },\n transitionDuration: {\n DEFAULT: '0.3s',\n 12: '0.12s',\n 15: '0.15s',\n 2: '2s'\n },\n transitionTimingFunction: {\n DEFAULT: 'ease-in-out'\n },\n keyframes: {\n 'scale-in': {\n from: { opacity: '0', scale: '0' },\n to: { opacity: '1', scale: '1' }\n },\n 'progress-loader': {\n '100%': {\n backgroundPosition: '100% 100%'\n }\n },\n 'caret-blink': {\n '0%,70%,100%': { opacity: '1' },\n '20%,50%': { opacity: '0' }\n },\n shine: {\n to: {\n 'background-position-x': '-200%'\n }\n }\n },\n animation: {\n 'scale-in': 'scale-in 0.3s ease-in-out',\n 'progress-loader': 'progress-loader 250s linear infinite',\n 'caret-blink': 'caret-blink 1.25s ease-out infinite'\n }\n }\n },\n plugins: [\n tailwindAnimation,\n plugin(({ addComponents }) => {\n addComponents(allowedTextStyles)\n }),\n plugin(function ({ matchUtilities, theme }) {\n matchUtilities(\n {\n 'bg-deg-gradient': (angle) => ({\n 'background-image': `linear-gradient(${angle}, var(--tw-gradient-stops))`\n })\n },\n {\n values: Object.assign(theme('bgGradientDeg', {}), {})\n }\n )\n })\n ]\n}\n"],"names":["tailwindConfigBase","allowedBackgroundColors","allowedBannersBackgroundColors","allowedIconsColors","allowedTextColors","allowedStrokeColors","allowedBorderRadius","allowedFontSize","allowedLineHeight","allowedBackgroundDeg","tailwindAnimation","plugin","addComponents","allowedTextStyles","matchUtilities","theme","angle"],"mappings":"sgBAgBO,MAAMA,EAA8C,CACzD,MAAO,CACL,gBAAiB,CACf,MAAOC,EACP,OAAQC,EACR,KAAMC,CAAA,EAER,UAAW,CACT,KAAMA,EACN,MAAOC,CAAA,EAET,KAAMD,EACN,OAAQA,EACR,YAAaE,EACb,aAAcA,EACd,aAAcC,EACd,WAAY,CAAE,OAAQ,CAAC,mBAAoB,YAAY,CAAA,EACvD,SAAUC,EACV,WAAYC,EACZ,mBAAoBP,EACpB,UAAW,CACT,GAAI,mCACJ,GAAI,sCACJ,GAAI,qCAAA,EAEN,OAAQ,CACN,cAAeQ,EACf,MAAO,CACL,iBAAkB,+CAClB,iBAAkB,qCAClB,qBAAsB,qBACtB,iBAAkB,qBAAA,EAEpB,mBAAoB,CAClB,QAAS,OACT,GAAI,QACJ,GAAI,QACJ,EAAG,IAAA,EAEL,yBAA0B,CACxB,QAAS,aAAA,EAEX,UAAW,CACT,WAAY,CACV,KAAM,CAAE,QAAS,IAAK,MAAO,GAAA,EAC7B,GAAI,CAAE,QAAS,IAAK,MAAO,GAAA,CAAI,EAEjC,kBAAmB,CACjB,OAAQ,CACN,mBAAoB,WAAA,CACtB,EAEF,cAAe,CACb,cAAe,CAAE,QAAS,GAAA,EAC1B,UAAW,CAAE,QAAS,GAAA,CAAI,EAE5B,MAAO,CACL,GAAI,CACF,wBAAyB,OAAA,CAC3B,CACF,EAEF,UAAW,CACT,WAAY,4BACZ,kBAAmB,uCACnB,cAAe,qCAAA,CACjB,CACF,EAEF,QAAS,CACPC,EACAC,EAAO,CAAC,CAAE,cAAAC,KAAoB,CAC5BA,EAAcC,CAAiB,CAAA,CAChC,EACDF,EAAO,SAAU,CAAE,eAAAG,EAAgB,MAAAC,GAAS,CAC1CD,EACE,CACE,kBAAoBE,IAAW,CAC7B,mBAAoB,mBAAmBA,CAAK,6BAAA,EAC9C,EAEF,CACE,OAAQ,OAAO,OAAOD,EAAM,gBAAiB,CAAA,CAAE,EAAG,CAAA,CAAE,CAAA,CACtD,CACF,CACD,CAAA,CAEL"}
1
+ {"version":3,"file":"tailwindConfigBase.js","sources":["../../../lib/configs/tailwindConfigBase.ts"],"sourcesContent":["import type { Config } from 'tailwindcss'\nimport plugin from 'tailwindcss/plugin'\nimport tailwindAnimation from 'tailwindcss-animate'\nimport {\n allowedBackgroundColors,\n allowedBackgroundDeg,\n allowedBannersBackgroundColors,\n allowedBorderRadius,\n allowedFontSize,\n allowedIconsColors,\n allowedLineHeight,\n allowedStrokeColors,\n allowedTextColors,\n allowedTextStyles\n} from '../shared/constants'\n\nexport const tailwindConfigBase: Omit<Config, 'content'> = {\n theme: {\n backgroundColor: {\n color: allowedBackgroundColors,\n banner: allowedBannersBackgroundColors,\n icon: allowedIconsColors\n },\n textColor: {\n icon: allowedIconsColors,\n color: allowedTextColors\n },\n fill: allowedIconsColors,\n stroke: allowedIconsColors,\n borderColor: allowedStrokeColors,\n outlineColor: allowedStrokeColors,\n borderRadius: allowedBorderRadius,\n fontFamily: { roboto: ['var(--ff-roboto)', 'sans-serif'] },\n fontSize: allowedFontSize,\n lineHeight: allowedLineHeight,\n gradientColorStops: allowedBackgroundColors,\n boxShadow: {\n sm: '0 8px 20px 0 rgba(0, 0, 0, 0.08)',\n md: '0 12px 20px 0 rgba(0, 33, 87, 0.10)',\n lg: '0 16px 24px 0 rgba(0, 33, 87, 0.16)'\n },\n extend: {\n bgGradientDeg: allowedBackgroundDeg,\n width: {\n 'popper-content': 'var(--radix-popover-content-available-width)',\n 'popper-trigger': 'var(--radix-popover-trigger-width)',\n 'autocomplete-input': 'var(--input-width)',\n 'select-trigger': 'var(--button-width)'\n },\n transitionDuration: {\n DEFAULT: '0.3s',\n 12: '0.12s',\n 15: '0.15s',\n 2: '2s'\n },\n transitionTimingFunction: {\n DEFAULT: 'ease-in-out'\n },\n keyframes: {\n 'scale-in': {\n from: { opacity: '0', scale: '0' },\n to: { opacity: '1', scale: '1' }\n },\n 'progress-loader': {\n '100%': {\n backgroundPosition: '100% 100%'\n }\n },\n 'caret-blink': {\n '0%,70%,100%': { opacity: '1' },\n '20%,50%': { opacity: '0' }\n },\n shine: {\n to: {\n 'background-position-x': '-200%'\n }\n }\n },\n animation: {\n 'scale-in': 'scale-in 0.3s ease-in-out',\n 'progress-loader': 'progress-loader 250s linear infinite',\n 'caret-blink': 'caret-blink 1.25s ease-out infinite'\n }\n }\n },\n plugins: [\n tailwindAnimation,\n plugin(({ addComponents }) => {\n addComponents(allowedTextStyles)\n }),\n plugin(function ({ matchUtilities, theme }) {\n matchUtilities(\n {\n 'bg-deg-gradient': (angle) => ({\n 'background-image': `linear-gradient(${angle}, var(--tw-gradient-stops))`\n })\n },\n {\n values: Object.assign(theme('bgGradientDeg', {}), {})\n }\n )\n })\n ]\n}\n"],"names":["tailwindConfigBase","allowedBackgroundColors","allowedBannersBackgroundColors","allowedIconsColors","allowedTextColors","allowedStrokeColors","allowedBorderRadius","allowedFontSize","allowedLineHeight","allowedBackgroundDeg","tailwindAnimation","plugin","addComponents","allowedTextStyles","matchUtilities","theme","angle"],"mappings":"sgBAgBO,MAAMA,EAA8C,CACzD,MAAO,CACL,gBAAiB,CACf,MAAOC,EACP,OAAQC,EACR,KAAMC,CAAA,EAER,UAAW,CACT,KAAMA,EACN,MAAOC,CAAA,EAET,KAAMD,EACN,OAAQA,EACR,YAAaE,EACb,aAAcA,EACd,aAAcC,EACd,WAAY,CAAE,OAAQ,CAAC,mBAAoB,YAAY,CAAA,EACvD,SAAUC,EACV,WAAYC,EACZ,mBAAoBP,EACpB,UAAW,CACT,GAAI,mCACJ,GAAI,sCACJ,GAAI,qCAAA,EAEN,OAAQ,CACN,cAAeQ,EACf,MAAO,CACL,iBAAkB,+CAClB,iBAAkB,qCAClB,qBAAsB,qBACtB,iBAAkB,qBAAA,EAEpB,mBAAoB,CAClB,QAAS,OACT,GAAI,QACJ,GAAI,QACJ,EAAG,IAAA,EAEL,yBAA0B,CACxB,QAAS,aAAA,EAEX,UAAW,CACT,WAAY,CACV,KAAM,CAAE,QAAS,IAAK,MAAO,GAAA,EAC7B,GAAI,CAAE,QAAS,IAAK,MAAO,GAAA,CAAI,EAEjC,kBAAmB,CACjB,OAAQ,CACN,mBAAoB,WAAA,CACtB,EAEF,cAAe,CACb,cAAe,CAAE,QAAS,GAAA,EAC1B,UAAW,CAAE,QAAS,GAAA,CAAI,EAE5B,MAAO,CACL,GAAI,CACF,wBAAyB,OAAA,CAC3B,CACF,EAEF,UAAW,CACT,WAAY,4BACZ,kBAAmB,uCACnB,cAAe,qCAAA,CACjB,CACF,EAEF,QAAS,CACPC,EACAC,EAAO,CAAC,CAAE,cAAAC,KAAoB,CAC5BA,EAAcC,CAAiB,CACjC,CAAC,EACDF,EAAO,SAAU,CAAE,eAAAG,EAAgB,MAAAC,GAAS,CAC1CD,EACE,CACE,kBAAoBE,IAAW,CAC7B,mBAAoB,mBAAmBA,CAAK,6BAAA,EAC9C,EAEF,CACE,OAAQ,OAAO,OAAOD,EAAM,gBAAiB,CAAA,CAAE,EAAG,CAAA,CAAE,CAAA,CACtD,CAEJ,CAAC,CAAA,CAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"resetPreset.js","sources":["../../../../lib/configs/tailwindPresets/resetPreset.ts"],"sourcesContent":["// Тут через алиасы не импортируй, иначе не будет работать\nimport type { Config } from 'tailwindcss'\nimport plugin from 'tailwindcss/plugin'\nimport tailwindAnimation from 'tailwindcss-animate'\nimport {\n allowedBackgroundColors,\n allowedBackgroundDeg,\n allowedBannersBackgroundColors,\n allowedBorderRadius,\n allowedFontSize,\n allowedIconsColors,\n allowedLineHeight,\n allowedStrokeColors,\n allowedTextColors,\n allowedTextStyles,\n allowedZIndex\n} from '../../shared/constants'\n\nexport const resetPreset: Omit<Config, 'content'> = {\n theme: {\n screens: {\n mobile: { max: '1187px' },\n desktop: '1188px'\n },\n backgroundColor: {\n color: allowedBackgroundColors,\n banner: allowedBannersBackgroundColors,\n icon: allowedIconsColors\n },\n textColor: {\n icon: allowedIconsColors,\n color: allowedTextColors\n },\n fill: allowedIconsColors,\n stroke: allowedIconsColors,\n borderColor: allowedStrokeColors,\n outlineColor: allowedStrokeColors,\n borderRadius: allowedBorderRadius,\n fontFamily: { roboto: ['var(--ff-roboto)', 'sans-serif'] },\n fontSize: allowedFontSize,\n lineHeight: allowedLineHeight,\n gradientColorStops: allowedBackgroundColors,\n boxShadow: {\n sm: '0 8px 20px 0 rgba(0, 0, 0, 0.08)',\n md: '0 12px 20px 0 rgba(0, 33, 87, 0.10)',\n lg: '0 16px 24px 0 rgba(0, 33, 87, 0.16)'\n },\n zIndex: allowedZIndex,\n extend: {\n bgGradientDeg: allowedBackgroundDeg\n }\n },\n plugins: [\n tailwindAnimation,\n plugin(({ addComponents }) => {\n addComponents(allowedTextStyles)\n }),\n plugin(function ({ matchUtilities, theme }) {\n matchUtilities(\n {\n 'bg-deg-gradient': (angle) => ({\n 'background-image': `linear-gradient(${angle}, var(--tw-gradient-stops))`\n })\n },\n {\n values: Object.assign(theme('bgGradientDeg', {}), {})\n }\n )\n })\n ]\n}\n"],"names":["resetPreset","allowedBackgroundColors","allowedBannersBackgroundColors","allowedIconsColors","allowedTextColors","allowedStrokeColors","allowedBorderRadius","allowedFontSize","allowedLineHeight","allowedZIndex","allowedBackgroundDeg","tailwindAnimation","plugin","addComponents","allowedTextStyles","matchUtilities","theme","angle"],"mappings":"qiBAkBO,MAAMA,EAAuC,CAClD,MAAO,CACL,QAAS,CACP,OAAQ,CAAE,IAAK,QAAA,EACf,QAAS,QAAA,EAEX,gBAAiB,CACf,MAAOC,EACP,OAAQC,EACR,KAAMC,CAAA,EAER,UAAW,CACT,KAAMA,EACN,MAAOC,CAAA,EAET,KAAMD,EACN,OAAQA,EACR,YAAaE,EACb,aAAcA,EACd,aAAcC,EACd,WAAY,CAAE,OAAQ,CAAC,mBAAoB,YAAY,CAAA,EACvD,SAAUC,EACV,WAAYC,EACZ,mBAAoBP,EACpB,UAAW,CACT,GAAI,mCACJ,GAAI,sCACJ,GAAI,qCAAA,EAEN,OAAQQ,EACR,OAAQ,CACN,cAAeC,CAAA,CACjB,EAEF,QAAS,CACPC,EACAC,EAAO,CAAC,CAAE,cAAAC,KAAoB,CAC5BA,EAAcC,CAAiB,CAAA,CAChC,EACDF,EAAO,SAAU,CAAE,eAAAG,EAAgB,MAAAC,GAAS,CAC1CD,EACE,CACE,kBAAoBE,IAAW,CAC7B,mBAAoB,mBAAmBA,CAAK,6BAAA,EAC9C,EAEF,CACE,OAAQ,OAAO,OAAOD,EAAM,gBAAiB,CAAA,CAAE,EAAG,CAAA,CAAE,CAAA,CACtD,CACF,CACD,CAAA,CAEL"}
1
+ {"version":3,"file":"resetPreset.js","sources":["../../../../lib/configs/tailwindPresets/resetPreset.ts"],"sourcesContent":["// Тут через алиасы не импортируй, иначе не будет работать\nimport type { Config } from 'tailwindcss'\nimport plugin from 'tailwindcss/plugin'\nimport tailwindAnimation from 'tailwindcss-animate'\nimport {\n allowedBackgroundColors,\n allowedBackgroundDeg,\n allowedBannersBackgroundColors,\n allowedBorderRadius,\n allowedFontSize,\n allowedIconsColors,\n allowedLineHeight,\n allowedStrokeColors,\n allowedTextColors,\n allowedTextStyles,\n allowedZIndex\n} from '../../shared/constants'\n\nexport const resetPreset: Omit<Config, 'content'> = {\n theme: {\n screens: {\n mobile: { max: '1187px' },\n desktop: '1188px'\n },\n backgroundColor: {\n color: allowedBackgroundColors,\n banner: allowedBannersBackgroundColors,\n icon: allowedIconsColors\n },\n textColor: {\n icon: allowedIconsColors,\n color: allowedTextColors\n },\n fill: allowedIconsColors,\n stroke: allowedIconsColors,\n borderColor: allowedStrokeColors,\n outlineColor: allowedStrokeColors,\n borderRadius: allowedBorderRadius,\n fontFamily: { roboto: ['var(--ff-roboto)', 'sans-serif'] },\n fontSize: allowedFontSize,\n lineHeight: allowedLineHeight,\n gradientColorStops: allowedBackgroundColors,\n boxShadow: {\n sm: '0 8px 20px 0 rgba(0, 0, 0, 0.08)',\n md: '0 12px 20px 0 rgba(0, 33, 87, 0.10)',\n lg: '0 16px 24px 0 rgba(0, 33, 87, 0.16)'\n },\n zIndex: allowedZIndex,\n extend: {\n bgGradientDeg: allowedBackgroundDeg\n }\n },\n plugins: [\n tailwindAnimation,\n plugin(({ addComponents }) => {\n addComponents(allowedTextStyles)\n }),\n plugin(function ({ matchUtilities, theme }) {\n matchUtilities(\n {\n 'bg-deg-gradient': (angle) => ({\n 'background-image': `linear-gradient(${angle}, var(--tw-gradient-stops))`\n })\n },\n {\n values: Object.assign(theme('bgGradientDeg', {}), {})\n }\n )\n })\n ]\n}\n"],"names":["resetPreset","allowedBackgroundColors","allowedBannersBackgroundColors","allowedIconsColors","allowedTextColors","allowedStrokeColors","allowedBorderRadius","allowedFontSize","allowedLineHeight","allowedZIndex","allowedBackgroundDeg","tailwindAnimation","plugin","addComponents","allowedTextStyles","matchUtilities","theme","angle"],"mappings":"qiBAkBO,MAAMA,EAAuC,CAClD,MAAO,CACL,QAAS,CACP,OAAQ,CAAE,IAAK,QAAA,EACf,QAAS,QAAA,EAEX,gBAAiB,CACf,MAAOC,EACP,OAAQC,EACR,KAAMC,CAAA,EAER,UAAW,CACT,KAAMA,EACN,MAAOC,CAAA,EAET,KAAMD,EACN,OAAQA,EACR,YAAaE,EACb,aAAcA,EACd,aAAcC,EACd,WAAY,CAAE,OAAQ,CAAC,mBAAoB,YAAY,CAAA,EACvD,SAAUC,EACV,WAAYC,EACZ,mBAAoBP,EACpB,UAAW,CACT,GAAI,mCACJ,GAAI,sCACJ,GAAI,qCAAA,EAEN,OAAQQ,EACR,OAAQ,CACN,cAAeC,CAAA,CACjB,EAEF,QAAS,CACPC,EACAC,EAAO,CAAC,CAAE,cAAAC,KAAoB,CAC5BA,EAAcC,CAAiB,CACjC,CAAC,EACDF,EAAO,SAAU,CAAE,eAAAG,EAAgB,MAAAC,GAAS,CAC1CD,EACE,CACE,kBAAoBE,IAAW,CAC7B,mBAAoB,mBAAmBA,CAAK,6BAAA,EAC9C,EAEF,CACE,OAAQ,OAAO,OAAOD,EAAM,gBAAiB,CAAA,CAAE,EAAG,CAAA,CAAE,CAAA,CACtD,CAEJ,CAAC,CAAA,CAEL"}
@@ -1 +1 @@
1
- {"version":3,"file":"hasWidget.js","sources":["../../../../lib/next/utils/hasWidget.ts"],"sourcesContent":["import type { AllowedWidgets, WidgetsListDTO } from '../../widgets'\n\nexport const hasWidget = (searchableWidget: AllowedWidgets, widgetsList: WidgetsListDTO): boolean => {\n if (!widgetsList || !Array.isArray(widgetsList)) return false\n\n const targetWidget = widgetsList.find((widget) => {\n if (!widget || !Array.isArray(widget)) return false\n const [widgetName, props] = widget\n return widgetName === searchableWidget && Boolean(props) && Object.keys(props).length > 0\n })\n\n return Boolean(targetWidget)\n}\n"],"names":["hasWidget","searchableWidget","widgetsList","widget","widgetName","props"],"mappings":"AAEO,MAAMA,EAAY,CAACC,EAAkCC,IACtD,CAACA,GAAe,CAAC,MAAM,QAAQA,CAAW,EAAU,GAQjD,EANcA,EAAY,KAAMC,GAAW,CAChD,GAAI,CAACA,GAAU,CAAC,MAAM,QAAQA,CAAM,EAAG,MAAO,GAC9C,KAAM,CAACC,EAAYC,CAAK,EAAIF,EAC5B,OAAOC,IAAeH,GAAoB,EAAQI,GAAU,OAAO,KAAKA,CAAK,EAAE,OAAS,CAAA,CACzF"}
1
+ {"version":3,"file":"hasWidget.js","sources":["../../../../lib/next/utils/hasWidget.ts"],"sourcesContent":["import type { AllowedWidgets, WidgetsListDTO } from '../../widgets'\n\nexport const hasWidget = (searchableWidget: AllowedWidgets, widgetsList: WidgetsListDTO): boolean => {\n if (!widgetsList || !Array.isArray(widgetsList)) return false\n\n const targetWidget = widgetsList.find((widget) => {\n if (!widget || !Array.isArray(widget)) return false\n const [widgetName, props] = widget\n return widgetName === searchableWidget && Boolean(props) && Object.keys(props).length > 0\n })\n\n return Boolean(targetWidget)\n}\n"],"names":["hasWidget","searchableWidget","widgetsList","widget","widgetName","props"],"mappings":"AAEO,MAAMA,EAAY,CAACC,EAAkCC,IACtD,CAACA,GAAe,CAAC,MAAM,QAAQA,CAAW,EAAU,GAQjD,EANcA,EAAY,KAAMC,GAAW,CAChD,GAAI,CAACA,GAAU,CAAC,MAAM,QAAQA,CAAM,EAAG,MAAO,GAC9C,KAAM,CAACC,EAAYC,CAAK,EAAIF,EAC5B,OAAOC,IAAeH,GAAoB,EAAQI,GAAU,OAAO,KAAKA,CAAK,EAAE,OAAS,CAC1F,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hideWidgetsWithQueryParams.js","sources":["../../../../lib/next/utils/hideWidgetsWithQueryParams.tsx"],"sourcesContent":["import type { WidgetsListDTO } from '../../widgets'\nimport { isEmptyWidgetList } from './isEmptyWidgetList'\n\n/**\n * Скрытие виджетов по query параметрам в URL\n * @extends searchParams наследуется от URLSearchParams, но использует ReadonlyURLSearchParams от next.js !!!\n * @example hidden widgets\n * sovcombank.ru/apply/credit/some-page?hide=calc-form-header\n * @returns WidgetsListDTO если в URL странице передан параметр hide, возвращается новый список исключающий скрытые виджеты, иначе исходный список\n */\n\nexport const hideWidgetsWithQueryParams = <Params extends URLSearchParams>(widgetsList: WidgetsListDTO, searchParams: Params) => {\n if (!widgetsList || isEmptyWidgetList(widgetsList)) return widgetsList\n\n let formattedWidgetList = [...widgetsList]\n\n const hideParam = searchParams.get('hide')\n if (hideParam) {\n const widgetIdsToHide = hideParam.split('-')\n\n formattedWidgetList = formattedWidgetList.filter((widget) => {\n if (!widget) return false\n const [widgetName] = widget\n return !widgetIdsToHide.includes(widgetName)\n })\n }\n\n return formattedWidgetList\n}\n"],"names":["hideWidgetsWithQueryParams","widgetsList","searchParams","isEmptyWidgetList","formattedWidgetList","hideParam","widgetIdsToHide","widget","widgetName"],"mappings":"2DAWO,MAAMA,EAA6B,CAAiCC,EAA6BC,IAAyB,CAC/H,GAAI,CAACD,GAAeE,EAAkBF,CAAW,EAAG,OAAOA,EAE3D,IAAIG,EAAsB,CAAC,GAAGH,CAAW,EAEzC,MAAMI,EAAYH,EAAa,IAAI,MAAM,EACzC,GAAIG,EAAW,CACb,MAAMC,EAAkBD,EAAU,MAAM,GAAG,EAE3CD,EAAsBA,EAAoB,OAAQG,GAAW,CAC3D,GAAI,CAACA,EAAQ,MAAO,GACpB,KAAM,CAACC,CAAU,EAAID,EACrB,MAAO,CAACD,EAAgB,SAASE,CAAU,CAAA,CAC5C,CAAA,CAGH,OAAOJ,CACT"}
1
+ {"version":3,"file":"hideWidgetsWithQueryParams.js","sources":["../../../../lib/next/utils/hideWidgetsWithQueryParams.tsx"],"sourcesContent":["import type { WidgetsListDTO } from '../../widgets'\nimport { isEmptyWidgetList } from './isEmptyWidgetList'\n\n/**\n * Скрытие виджетов по query параметрам в URL\n * @extends searchParams наследуется от URLSearchParams, но использует ReadonlyURLSearchParams от next.js !!!\n * @example hidden widgets\n * sovcombank.ru/apply/credit/some-page?hide=calc-form-header\n * @returns WidgetsListDTO если в URL странице передан параметр hide, возвращается новый список исключающий скрытые виджеты, иначе исходный список\n */\n\nexport const hideWidgetsWithQueryParams = <Params extends URLSearchParams>(widgetsList: WidgetsListDTO, searchParams: Params) => {\n if (!widgetsList || isEmptyWidgetList(widgetsList)) return widgetsList\n\n let formattedWidgetList = [...widgetsList]\n\n const hideParam = searchParams.get('hide')\n if (hideParam) {\n const widgetIdsToHide = hideParam.split('-')\n\n formattedWidgetList = formattedWidgetList.filter((widget) => {\n if (!widget) return false\n const [widgetName] = widget\n return !widgetIdsToHide.includes(widgetName)\n })\n }\n\n return formattedWidgetList\n}\n"],"names":["hideWidgetsWithQueryParams","widgetsList","searchParams","isEmptyWidgetList","formattedWidgetList","hideParam","widgetIdsToHide","widget","widgetName"],"mappings":"2DAWO,MAAMA,EAA6B,CAAiCC,EAA6BC,IAAyB,CAC/H,GAAI,CAACD,GAAeE,EAAkBF,CAAW,EAAG,OAAOA,EAE3D,IAAIG,EAAsB,CAAC,GAAGH,CAAW,EAEzC,MAAMI,EAAYH,EAAa,IAAI,MAAM,EACzC,GAAIG,EAAW,CACb,MAAMC,EAAkBD,EAAU,MAAM,GAAG,EAE3CD,EAAsBA,EAAoB,OAAQG,GAAW,CAC3D,GAAI,CAACA,EAAQ,MAAO,GACpB,KAAM,CAACC,CAAU,EAAID,EACrB,MAAO,CAACD,EAAgB,SAASE,CAAU,CAC7C,CAAC,CACH,CAEA,OAAOJ,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"orderWidgetWithQueryParams.js","sources":["../../../../lib/next/utils/orderWidgetWithQueryParams.ts"],"sourcesContent":["import type { WidgetsListDTO } from '../../widgets'\n\n/**\n * Смена расположения виджетов по query параметрам в URL\n * @extends searchParams наследуется от URLSearchParams, но использует ReadonlyURLSearchParams от next.js !!!\n * @example order widgets\n * sovcombank.ru/apply/credit/some-page?order=calculator-personalForm-header\n *\n * ['header', {}],\n * ['banner', {}],\n * ['calculator', {}],\n * ['personalForm', {}],\n * ['stepper', {}],\n * ---------------------\n * Вернется новый список\n * ---------------------\n * ['calculator', {}],\n * ['personalForm', {}],\n * ['header', {}],\n * ['banner', {}],\n * ['stepper', {}],\n * @returns WidgetsListDTO если в URL странице передан параметр order, возвращается новый список,\n * список выстраивается в приоритете переданных виджетов в query, в конец возвращает остальные виджеты\n */\n\nexport const orderWidgetWithQueryParams = <Params extends URLSearchParams>(widgetsList: WidgetsListDTO, searchParams: Params) => {\n const orderedParams = searchParams.get('order')\n const sorted = [] as unknown as WidgetsListDTO\n\n if (orderedParams) {\n const widgetIdsToOrder = orderedParams.split('-')\n\n for (const searchableWidget of widgetIdsToOrder) {\n const orderedWidget = widgetsList.find(([name]) => searchableWidget === name)\n\n if (orderedWidget) {\n sorted.push(orderedWidget)\n }\n }\n\n const withoutSort = widgetsList.filter(([name]) => !orderedParams.includes(name))\n return [...sorted, ...withoutSort]\n } else {\n return widgetsList\n }\n}\n"],"names":["orderWidgetWithQueryParams","widgetsList","searchParams","orderedParams","sorted","widgetIdsToOrder","searchableWidget","orderedWidget","name","withoutSort"],"mappings":"AAyBO,MAAMA,EAA6B,CAAiCC,EAA6BC,IAAyB,CAC/H,MAAMC,EAAgBD,EAAa,IAAI,OAAO,EACxCE,EAAS,CAAA,EAEf,GAAID,EAAe,CACjB,MAAME,EAAmBF,EAAc,MAAM,GAAG,EAEhD,UAAWG,KAAoBD,EAAkB,CAC/C,MAAME,EAAgBN,EAAY,KAAK,CAAC,CAACO,CAAI,IAAMF,IAAqBE,CAAI,EAExED,GACFH,EAAO,KAAKG,CAAa,CAC3B,CAGF,MAAME,EAAcR,EAAY,OAAO,CAAC,CAACO,CAAI,IAAM,CAACL,EAAc,SAASK,CAAI,CAAC,EAChF,MAAO,CAAC,GAAGJ,EAAQ,GAAGK,CAAW,CAAA,KAEjC,QAAOR,CAEX"}
1
+ {"version":3,"file":"orderWidgetWithQueryParams.js","sources":["../../../../lib/next/utils/orderWidgetWithQueryParams.ts"],"sourcesContent":["import type { WidgetsListDTO } from '../../widgets'\n\n/**\n * Смена расположения виджетов по query параметрам в URL\n * @extends searchParams наследуется от URLSearchParams, но использует ReadonlyURLSearchParams от next.js !!!\n * @example order widgets\n * sovcombank.ru/apply/credit/some-page?order=calculator-personalForm-header\n *\n * ['header', {}],\n * ['banner', {}],\n * ['calculator', {}],\n * ['personalForm', {}],\n * ['stepper', {}],\n * ---------------------\n * Вернется новый список\n * ---------------------\n * ['calculator', {}],\n * ['personalForm', {}],\n * ['header', {}],\n * ['banner', {}],\n * ['stepper', {}],\n * @returns WidgetsListDTO если в URL странице передан параметр order, возвращается новый список,\n * список выстраивается в приоритете переданных виджетов в query, в конец возвращает остальные виджеты\n */\n\nexport const orderWidgetWithQueryParams = <Params extends URLSearchParams>(widgetsList: WidgetsListDTO, searchParams: Params) => {\n const orderedParams = searchParams.get('order')\n const sorted = [] as unknown as WidgetsListDTO\n\n if (orderedParams) {\n const widgetIdsToOrder = orderedParams.split('-')\n\n for (const searchableWidget of widgetIdsToOrder) {\n const orderedWidget = widgetsList.find(([name]) => searchableWidget === name)\n\n if (orderedWidget) {\n sorted.push(orderedWidget)\n }\n }\n\n const withoutSort = widgetsList.filter(([name]) => !orderedParams.includes(name))\n return [...sorted, ...withoutSort]\n } else {\n return widgetsList\n }\n}\n"],"names":["orderWidgetWithQueryParams","widgetsList","searchParams","orderedParams","sorted","widgetIdsToOrder","searchableWidget","orderedWidget","name","withoutSort"],"mappings":"AAyBO,MAAMA,EAA6B,CAAiCC,EAA6BC,IAAyB,CAC/H,MAAMC,EAAgBD,EAAa,IAAI,OAAO,EACxCE,EAAS,CAAA,EAEf,GAAID,EAAe,CACjB,MAAME,EAAmBF,EAAc,MAAM,GAAG,EAEhD,UAAWG,KAAoBD,EAAkB,CAC/C,MAAME,EAAgBN,EAAY,KAAK,CAAC,CAACO,CAAI,IAAMF,IAAqBE,CAAI,EAExED,GACFH,EAAO,KAAKG,CAAa,CAE7B,CAEA,MAAME,EAAcR,EAAY,OAAO,CAAC,CAACO,CAAI,IAAM,CAACL,EAAc,SAASK,CAAI,CAAC,EAChF,MAAO,CAAC,GAAGJ,EAAQ,GAAGK,CAAW,CACnC,KACE,QAAOR,CAEX"}
@@ -1 +1 @@
1
- {"version":3,"file":"apiInstance.js","sources":["../../../../lib/shared/api/apiInstance.ts"],"sourcesContent":["export type RequestMethod = { method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' }\nexport type ApiInstance = {\n baseUrl: string\n url: string\n init?: RequestInit & RequestMethod\n}\n\nexport class ApiError extends Error {\n constructor(public response: Response) {\n super('ApiError: ' + response.status)\n }\n}\n\nexport const defaultHeaders = {\n 'Content-Type': 'application/json'\n}\n\nexport const apiInstance = async <T>({ url, init, baseUrl }: ApiInstance) => {\n const headers = init?.headers ?? {}\n const body = init?.body && init?.body\n\n const result = await fetch(`${baseUrl}${url}`, {\n headers: {\n ...defaultHeaders,\n ...headers\n },\n body,\n ...init\n })\n\n if (!result.ok) {\n throw new ApiError(result)\n }\n\n const data = (await result.json()) as Promise<T>\n return data\n}\n"],"names":["ApiError","response","defaultHeaders","apiInstance","url","init","baseUrl","headers","body","result"],"mappings":"AAOO,MAAMA,UAAiB,KAAM,CAClC,YAAmBC,EAAoB,CACrC,MAAM,aAAeA,EAAS,MAAM,EADnB,KAAA,SAAAA,CAAA,CAGrB,CAEO,MAAMC,EAAiB,CAC5B,eAAgB,kBAClB,EAEaC,EAAc,MAAU,CAAE,IAAAC,EAAK,KAAAC,EAAM,QAAAC,KAA2B,CAC3E,MAAMC,GAAUF,GAAA,YAAAA,EAAM,UAAW,CAAA,EAC3BG,GAAOH,GAAA,YAAAA,EAAM,QAAQA,GAAA,YAAAA,EAAM,MAE3BI,EAAS,MAAM,MAAM,GAAGH,CAAO,GAAGF,CAAG,GAAI,CAC7C,QAAS,CACP,GAAGF,EACH,GAAGK,CAAA,EAEL,KAAAC,EACA,GAAGH,CAAA,CACJ,EAED,GAAI,CAACI,EAAO,GACV,MAAM,IAAIT,EAASS,CAAM,EAI3B,OADc,MAAMA,EAAO,KAAA,CAE7B"}
1
+ {"version":3,"file":"apiInstance.js","sources":["../../../../lib/shared/api/apiInstance.ts"],"sourcesContent":["export type RequestMethod = { method: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH' }\nexport type ApiInstance = {\n baseUrl: string\n url: string\n init?: RequestInit & RequestMethod\n}\n\nexport class ApiError extends Error {\n constructor(public response: Response) {\n super('ApiError: ' + response.status)\n }\n}\n\nexport const defaultHeaders = {\n 'Content-Type': 'application/json'\n}\n\nexport const apiInstance = async <T>({ url, init, baseUrl }: ApiInstance) => {\n const headers = init?.headers ?? {}\n const body = init?.body && init?.body\n\n const result = await fetch(`${baseUrl}${url}`, {\n headers: {\n ...defaultHeaders,\n ...headers\n },\n body,\n ...init\n })\n\n if (!result.ok) {\n throw new ApiError(result)\n }\n\n const data = (await result.json()) as Promise<T>\n return data\n}\n"],"names":["ApiError","response","defaultHeaders","apiInstance","url","init","baseUrl","headers","body","result"],"mappings":"AAOO,MAAMA,UAAiB,KAAM,CAClC,YAAmBC,EAAoB,CACrC,MAAM,aAAeA,EAAS,MAAM,EADnB,KAAA,SAAAA,CAEnB,CACF,CAEO,MAAMC,EAAiB,CAC5B,eAAgB,kBAClB,EAEaC,EAAc,MAAU,CAAE,IAAAC,EAAK,KAAAC,EAAM,QAAAC,KAA2B,CAC3E,MAAMC,GAAUF,GAAA,YAAAA,EAAM,UAAW,CAAA,EAC3BG,GAAOH,GAAA,YAAAA,EAAM,QAAQA,GAAA,YAAAA,EAAM,MAE3BI,EAAS,MAAM,MAAM,GAAGH,CAAO,GAAGF,CAAG,GAAI,CAC7C,QAAS,CACP,GAAGF,EACH,GAAGK,CAAA,EAEL,KAAAC,EACA,GAAGH,CAAA,CACJ,EAED,GAAI,CAACI,EAAO,GACV,MAAM,IAAIT,EAASS,CAAM,EAI3B,OADc,MAAMA,EAAO,KAAA,CAE7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"useClickOutside.js","sources":["../../../../lib/shared/hooks/useClickOutside.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { isClient } from '../utils'\n\nexport const useClickOutside = (ref: React.RefObject<HTMLElement>, callback: () => void) => {\n const handleClickOutside = (event: MouseEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n callback()\n }\n }\n\n React.useEffect(() => {\n if (isClient) {\n globalThis?.document?.addEventListener('mousedown', handleClickOutside)\n return () => {\n globalThis?.document.removeEventListener('mousedown', handleClickOutside)\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, callback])\n}\n\n//\n"],"names":["useClickOutside","ref","callback","handleClickOutside","event","React","isClient","_a"],"mappings":"+FAKO,MAAMA,EAAkB,CAACC,EAAmCC,IAAyB,CAC1F,MAAMC,EAAsBC,GAAsB,CAC5CH,EAAI,SAAW,CAACA,EAAI,QAAQ,SAASG,EAAM,MAAc,GAC3DF,EAAA,CACF,EAGFG,EAAM,UAAU,IAAM,OACpB,GAAIC,EACF,OAAAC,EAAA,mCAAY,WAAZ,MAAAA,EAAsB,iBAAiB,YAAaJ,GAC7C,IAAM,CACX,6BAAY,SAAS,oBAAoB,YAAaA,EAAkB,CAE5E,EAEC,CAACF,EAAKC,CAAQ,CAAC,CACpB"}
1
+ {"version":3,"file":"useClickOutside.js","sources":["../../../../lib/shared/hooks/useClickOutside.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport { isClient } from '../utils'\n\nexport const useClickOutside = (ref: React.RefObject<HTMLElement>, callback: () => void) => {\n const handleClickOutside = (event: MouseEvent) => {\n if (ref.current && !ref.current.contains(event.target as Node)) {\n callback()\n }\n }\n\n React.useEffect(() => {\n if (isClient) {\n globalThis?.document?.addEventListener('mousedown', handleClickOutside)\n return () => {\n globalThis?.document.removeEventListener('mousedown', handleClickOutside)\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ref, callback])\n}\n\n//\n"],"names":["useClickOutside","ref","callback","handleClickOutside","event","React","isClient","_a"],"mappings":"+FAKO,MAAMA,EAAkB,CAACC,EAAmCC,IAAyB,CAC1F,MAAMC,EAAsBC,GAAsB,CAC5CH,EAAI,SAAW,CAACA,EAAI,QAAQ,SAASG,EAAM,MAAc,GAC3DF,EAAA,CAEJ,EAEAG,EAAM,UAAU,IAAM,OACpB,GAAIC,EACF,OAAAC,EAAA,mCAAY,WAAZ,MAAAA,EAAsB,iBAAiB,YAAaJ,GAC7C,IAAM,CACX,6BAAY,SAAS,oBAAoB,YAAaA,EACxD,CAGJ,EAAG,CAACF,EAAKC,CAAQ,CAAC,CACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDebounce.js","sources":["../../../../lib/shared/hooks/useDebounce.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\nexport const debounce = <Params extends unknown[]>(\n callback: (...args: Params) => void,\n delay: number\n): ((...args: Params) => void) => {\n let timer: ReturnType<typeof setTimeout>\n\n return function (...args: Params) {\n clearTimeout(timer)\n timer = setTimeout(() => callback(...args), delay)\n }\n}\n\nexport const useDebounceCallback = <Params extends unknown[], Return>(callback: (...args: Params) => Return, delay: number) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const debounced = React.useMemo(() => debounce(callback, delay), [delay])\n\n return debounced\n}\n\nexport const useDebounceValue = <Value>(value: Value, delay: number) => {\n const previousValueRef = React.useRef(value)\n const [debouncedValue, setDebounceValue] = React.useState(value)\n\n const debouncedSetState = useDebounceCallback(setDebounceValue, delay)\n\n React.useEffect(() => {\n if (previousValueRef.current === value) return\n debouncedSetState(value)\n previousValueRef.current = value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value])\n\n return debouncedValue\n}\n"],"names":["debounce","callback","delay","timer","args","useDebounceCallback","React","useDebounceValue","value","previousValueRef","debouncedValue","setDebounceValue","debouncedSetState"],"mappings":"wBAIO,MAAMA,EAAW,CACtBC,EACAC,IACgC,CAChC,IAAIC,EAEJ,OAAO,YAAaC,EAAc,CAChC,aAAaD,CAAK,EAClBA,EAAQ,WAAW,IAAMF,EAAS,GAAGG,CAAI,EAAGF,CAAK,CAAA,CAErD,EAEaG,EAAsB,CAAmCJ,EAAuCC,IAEzFI,EAAM,QAAQ,IAAMN,EAASC,EAAUC,CAAK,EAAG,CAACA,CAAK,CAAC,EAK7DK,EAAmB,CAAQC,EAAcN,IAAkB,CACtE,MAAMO,EAAmBH,EAAM,OAAOE,CAAK,EACrC,CAACE,EAAgBC,CAAgB,EAAIL,EAAM,SAASE,CAAK,EAEzDI,EAAoBP,EAAoBM,EAAkBT,CAAK,EAErE,OAAAI,EAAM,UAAU,IAAM,CAChBG,EAAiB,UAAYD,IACjCI,EAAkBJ,CAAK,EACvBC,EAAiB,QAAUD,EAAA,EAE1B,CAACA,CAAK,CAAC,EAEHE,CACT"}
1
+ {"version":3,"file":"useDebounce.js","sources":["../../../../lib/shared/hooks/useDebounce.ts"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\n\nexport const debounce = <Params extends unknown[]>(\n callback: (...args: Params) => void,\n delay: number\n): ((...args: Params) => void) => {\n let timer: ReturnType<typeof setTimeout>\n\n return function (...args: Params) {\n clearTimeout(timer)\n timer = setTimeout(() => callback(...args), delay)\n }\n}\n\nexport const useDebounceCallback = <Params extends unknown[], Return>(callback: (...args: Params) => Return, delay: number) => {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const debounced = React.useMemo(() => debounce(callback, delay), [delay])\n\n return debounced\n}\n\nexport const useDebounceValue = <Value>(value: Value, delay: number) => {\n const previousValueRef = React.useRef(value)\n const [debouncedValue, setDebounceValue] = React.useState(value)\n\n const debouncedSetState = useDebounceCallback(setDebounceValue, delay)\n\n React.useEffect(() => {\n if (previousValueRef.current === value) return\n debouncedSetState(value)\n previousValueRef.current = value\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value])\n\n return debouncedValue\n}\n"],"names":["debounce","callback","delay","timer","args","useDebounceCallback","React","useDebounceValue","value","previousValueRef","debouncedValue","setDebounceValue","debouncedSetState"],"mappings":"wBAIO,MAAMA,EAAW,CACtBC,EACAC,IACgC,CAChC,IAAIC,EAEJ,OAAO,YAAaC,EAAc,CAChC,aAAaD,CAAK,EAClBA,EAAQ,WAAW,IAAMF,EAAS,GAAGG,CAAI,EAAGF,CAAK,CACnD,CACF,EAEaG,EAAsB,CAAmCJ,EAAuCC,IAEzFI,EAAM,QAAQ,IAAMN,EAASC,EAAUC,CAAK,EAAG,CAACA,CAAK,CAAC,EAK7DK,EAAmB,CAAQC,EAAcN,IAAkB,CACtE,MAAMO,EAAmBH,EAAM,OAAOE,CAAK,EACrC,CAACE,EAAgBC,CAAgB,EAAIL,EAAM,SAASE,CAAK,EAEzDI,EAAoBP,EAAoBM,EAAkBT,CAAK,EAErE,OAAAI,EAAM,UAAU,IAAM,CAChBG,EAAiB,UAAYD,IACjCI,EAAkBJ,CAAK,EACvBC,EAAiB,QAAUD,EAE7B,EAAG,CAACA,CAAK,CAAC,EAEHE,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDevice.js","sources":["../../../../lib/shared/hooks/useDevice.ts"],"sourcesContent":["'use client'\nimport { useCallback, useSyncExternalStore } from 'react'\n\nconst getServerSnapshot = () => false\n\nexport const useDevice = () => {\n const isMobileQuery = '(max-width: 1187px)'\n const isDesktopQuery = '(min-width: 1188px)'\n\n const subscribeMobile = useCallback(\n (callback: () => void) => {\n const matchMedia = globalThis.matchMedia(isMobileQuery)\n matchMedia.addEventListener('change', callback)\n return () => {\n matchMedia.removeEventListener('change', callback)\n }\n },\n [isMobileQuery]\n )\n\n const subscribeDesktop = useCallback(\n (callback: () => void) => {\n const matchMedia = globalThis.matchMedia(isDesktopQuery)\n matchMedia.addEventListener('change', callback)\n return () => {\n matchMedia.removeEventListener('change', callback)\n }\n },\n [isDesktopQuery]\n )\n\n const getSnapshotMobile = () => globalThis.matchMedia(isMobileQuery).matches\n const getSnapshotDesktop = () => globalThis.matchMedia(isDesktopQuery).matches\n\n return {\n isMobile: useSyncExternalStore(subscribeMobile, getSnapshotMobile, getServerSnapshot),\n isDesktop: useSyncExternalStore(subscribeDesktop, getSnapshotDesktop, getServerSnapshot)\n }\n}\n"],"names":["getServerSnapshot","useDevice","isMobileQuery","isDesktopQuery","subscribeMobile","useCallback","callback","matchMedia","subscribeDesktop","getSnapshotMobile","getSnapshotDesktop","useSyncExternalStore"],"mappings":"8DAGA,MAAMA,EAAoB,IAAM,GAEnBC,EAAY,IAAM,CAC7B,MAAMC,EAAgB,sBAChBC,EAAiB,sBAEjBC,EAAkBC,EACrBC,GAAyB,CACxB,MAAMC,EAAa,WAAW,WAAWL,CAAa,EACtD,OAAAK,EAAW,iBAAiB,SAAUD,CAAQ,EACvC,IAAM,CACXC,EAAW,oBAAoB,SAAUD,CAAQ,CAAA,CACnD,EAEF,CAACJ,CAAa,CAAA,EAGVM,EAAmBH,EACtBC,GAAyB,CACxB,MAAMC,EAAa,WAAW,WAAWJ,CAAc,EACvD,OAAAI,EAAW,iBAAiB,SAAUD,CAAQ,EACvC,IAAM,CACXC,EAAW,oBAAoB,SAAUD,CAAQ,CAAA,CACnD,EAEF,CAACH,CAAc,CAAA,EAGXM,EAAoB,IAAM,WAAW,WAAWP,CAAa,EAAE,QAC/DQ,EAAqB,IAAM,WAAW,WAAWP,CAAc,EAAE,QAEvE,MAAO,CACL,SAAUQ,EAAqBP,EAAiBK,EAAmBT,CAAiB,EACpF,UAAWW,EAAqBH,EAAkBE,EAAoBV,CAAiB,CAAA,CAE3F"}
1
+ {"version":3,"file":"useDevice.js","sources":["../../../../lib/shared/hooks/useDevice.ts"],"sourcesContent":["'use client'\nimport { useCallback, useSyncExternalStore } from 'react'\n\nconst getServerSnapshot = () => false\n\nexport const useDevice = () => {\n const isMobileQuery = '(max-width: 1187px)'\n const isDesktopQuery = '(min-width: 1188px)'\n\n const subscribeMobile = useCallback(\n (callback: () => void) => {\n const matchMedia = globalThis.matchMedia(isMobileQuery)\n matchMedia.addEventListener('change', callback)\n return () => {\n matchMedia.removeEventListener('change', callback)\n }\n },\n [isMobileQuery]\n )\n\n const subscribeDesktop = useCallback(\n (callback: () => void) => {\n const matchMedia = globalThis.matchMedia(isDesktopQuery)\n matchMedia.addEventListener('change', callback)\n return () => {\n matchMedia.removeEventListener('change', callback)\n }\n },\n [isDesktopQuery]\n )\n\n const getSnapshotMobile = () => globalThis.matchMedia(isMobileQuery).matches\n const getSnapshotDesktop = () => globalThis.matchMedia(isDesktopQuery).matches\n\n return {\n isMobile: useSyncExternalStore(subscribeMobile, getSnapshotMobile, getServerSnapshot),\n isDesktop: useSyncExternalStore(subscribeDesktop, getSnapshotDesktop, getServerSnapshot)\n }\n}\n"],"names":["getServerSnapshot","useDevice","isMobileQuery","isDesktopQuery","subscribeMobile","useCallback","callback","matchMedia","subscribeDesktop","getSnapshotMobile","getSnapshotDesktop","useSyncExternalStore"],"mappings":"8DAGA,MAAMA,EAAoB,IAAM,GAEnBC,EAAY,IAAM,CAC7B,MAAMC,EAAgB,sBAChBC,EAAiB,sBAEjBC,EAAkBC,EACrBC,GAAyB,CACxB,MAAMC,EAAa,WAAW,WAAWL,CAAa,EACtD,OAAAK,EAAW,iBAAiB,SAAUD,CAAQ,EACvC,IAAM,CACXC,EAAW,oBAAoB,SAAUD,CAAQ,CACnD,CACF,EACA,CAACJ,CAAa,CAAA,EAGVM,EAAmBH,EACtBC,GAAyB,CACxB,MAAMC,EAAa,WAAW,WAAWJ,CAAc,EACvD,OAAAI,EAAW,iBAAiB,SAAUD,CAAQ,EACvC,IAAM,CACXC,EAAW,oBAAoB,SAAUD,CAAQ,CACnD,CACF,EACA,CAACH,CAAc,CAAA,EAGXM,EAAoB,IAAM,WAAW,WAAWP,CAAa,EAAE,QAC/DQ,EAAqB,IAAM,WAAW,WAAWP,CAAc,EAAE,QAEvE,MAAO,CACL,SAAUQ,EAAqBP,EAAiBK,EAAmBT,CAAiB,EACpF,UAAWW,EAAqBH,EAAkBE,EAAoBV,CAAiB,CAAA,CAE3F"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFieldsProgress.js","sources":["../../../../lib/shared/hooks/useFieldsProgress.ts"],"sourcesContent":["'use client'\n\nimport { useEffect, useState } from 'react'\nimport { type Control, type FieldValues, type Path, useWatch } from 'react-hook-form'\nimport { type ZodObject, type ZodRawShape } from 'zod'\n\nexport interface ISubscribedField<T extends FieldValues> {\n name: Path<T>\n progress: number\n maxPercent: number\n}\n\ntype TUseFieldsProgress<T extends FieldValues, S extends ZodRawShape> = {\n control: Control<T>\n schema: ZodObject<S>\n fields: ISubscribedField<T>[]\n}\n\nconst formatProgress = <T extends FieldValues>(subscribeFields: ISubscribedField<T>[]) => {\n return Object.values(subscribeFields)?.reduce((acc, value) => {\n return acc + value?.progress\n }, 0)\n}\n\nexport const useFieldsProgress = <T extends FieldValues, S extends ZodRawShape>({\n control,\n schema,\n fields\n}: TUseFieldsProgress<T, S>): number => {\n const [subscribeFields, setSubscribeFields] = useState<ISubscribedField<T>[]>(fields)\n const watchedFields = useWatch({ control })\n\n useEffect(() => {\n setSubscribeFields((prevFields) =>\n prevFields?.map((field) => {\n const fieldSchema = schema.shape[field.name]\n const result = fieldSchema.safeParse(watchedFields[field.name])\n if (result.success && watchedFields[field.name] && watchedFields[field.name] !== '') {\n return { ...field, progress: field.maxPercent }\n } else {\n return { ...field, progress: 0 }\n }\n })\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [watchedFields])\n\n return formatProgress(subscribeFields)\n}\n"],"names":["formatProgress","subscribeFields","_a","acc","value","useFieldsProgress","control","schema","fields","setSubscribeFields","useState","watchedFields","useWatch","useEffect","prevFields","field"],"mappings":"mIAkBA,MAAMA,EAAyCC,GAA2C,OACxF,OAAOC,EAAA,OAAO,OAAOD,CAAe,IAA7B,YAAAC,EAAgC,OAAO,CAACC,EAAKC,IAC3CD,GAAMC,GAAA,YAAAA,EAAO,UACnB,EACL,EAEaC,EAAoB,CAA+C,CAC9E,QAAAC,EACA,OAAAC,EACA,OAAAC,CACF,IAAwC,CACtC,KAAM,CAACP,EAAiBQ,CAAkB,EAAIC,EAAgCF,CAAM,EAC9EG,EAAgBC,EAAS,CAAE,QAAAN,EAAS,EAE1C,OAAAO,EAAU,IAAM,CACdJ,EAAoBK,GAClBA,GAAA,YAAAA,EAAY,IAAKC,GACKR,EAAO,MAAMQ,EAAM,IAAI,EAChB,UAAUJ,EAAcI,EAAM,IAAI,CAAC,EACnD,SAAWJ,EAAcI,EAAM,IAAI,GAAKJ,EAAcI,EAAM,IAAI,IAAM,GACxE,CAAE,GAAGA,EAAO,SAAUA,EAAM,UAAA,EAE5B,CAAE,GAAGA,EAAO,SAAU,CAAA,EAEhC,CACH,EAEC,CAACJ,CAAa,CAAC,EAEXX,EAAeC,CAAe,CACvC"}
1
+ {"version":3,"file":"useFieldsProgress.js","sources":["../../../../lib/shared/hooks/useFieldsProgress.ts"],"sourcesContent":["'use client'\n\nimport { useEffect, useState } from 'react'\nimport { type Control, type FieldValues, type Path, useWatch } from 'react-hook-form'\nimport { type ZodObject, type ZodRawShape } from 'zod'\n\nexport interface ISubscribedField<T extends FieldValues> {\n name: Path<T>\n progress: number\n maxPercent: number\n}\n\ntype TUseFieldsProgress<T extends FieldValues, S extends ZodRawShape> = {\n control: Control<T>\n schema: ZodObject<S>\n fields: ISubscribedField<T>[]\n}\n\nconst formatProgress = <T extends FieldValues>(subscribeFields: ISubscribedField<T>[]) => {\n return Object.values(subscribeFields)?.reduce((acc, value) => {\n return acc + value?.progress\n }, 0)\n}\n\nexport const useFieldsProgress = <T extends FieldValues, S extends ZodRawShape>({\n control,\n schema,\n fields\n}: TUseFieldsProgress<T, S>): number => {\n const [subscribeFields, setSubscribeFields] = useState<ISubscribedField<T>[]>(fields)\n const watchedFields = useWatch({ control })\n\n useEffect(() => {\n setSubscribeFields((prevFields) =>\n prevFields?.map((field) => {\n const fieldSchema = schema.shape[field.name]\n const result = fieldSchema.safeParse(watchedFields[field.name])\n if (result.success && watchedFields[field.name] && watchedFields[field.name] !== '') {\n return { ...field, progress: field.maxPercent }\n } else {\n return { ...field, progress: 0 }\n }\n })\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [watchedFields])\n\n return formatProgress(subscribeFields)\n}\n"],"names":["formatProgress","subscribeFields","_a","acc","value","useFieldsProgress","control","schema","fields","setSubscribeFields","useState","watchedFields","useWatch","useEffect","prevFields","field"],"mappings":"mIAkBA,MAAMA,EAAyCC,GAA2C,OACxF,OAAOC,EAAA,OAAO,OAAOD,CAAe,IAA7B,YAAAC,EAAgC,OAAO,CAACC,EAAKC,IAC3CD,GAAMC,GAAA,YAAAA,EAAO,UACnB,EACL,EAEaC,EAAoB,CAA+C,CAC9E,QAAAC,EACA,OAAAC,EACA,OAAAC,CACF,IAAwC,CACtC,KAAM,CAACP,EAAiBQ,CAAkB,EAAIC,EAAgCF,CAAM,EAC9EG,EAAgBC,EAAS,CAAE,QAAAN,EAAS,EAE1C,OAAAO,EAAU,IAAM,CACdJ,EAAoBK,GAClBA,GAAA,YAAAA,EAAY,IAAKC,GACKR,EAAO,MAAMQ,EAAM,IAAI,EAChB,UAAUJ,EAAcI,EAAM,IAAI,CAAC,EACnD,SAAWJ,EAAcI,EAAM,IAAI,GAAKJ,EAAcI,EAAM,IAAI,IAAM,GACxE,CAAE,GAAGA,EAAO,SAAUA,EAAM,UAAA,EAE5B,CAAE,GAAGA,EAAO,SAAU,CAAA,EAEhC,CAGL,EAAG,CAACJ,CAAa,CAAC,EAEXX,EAAeC,CAAe,CACvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useFloating.js","sources":["../../../../lib/shared/hooks/useFloating.ts"],"sourcesContent":["'use client'\n\nimport { useEffect, useState } from 'react'\n\ntype FloatingPosition = {\n top?: number\n left?: number\n width?: number\n transformOrigin?: string\n}\n\nexport const useFloating = (\n trigger: React.RefObject<HTMLElement>,\n list: React.RefObject<HTMLElement>,\n offset: number\n): FloatingPosition | null => {\n const [position, setPosition] = useState<FloatingPosition | null>(null)\n\n useEffect(() => {\n const updatePosition = () => {\n if (trigger.current && list.current) {\n const triggerRect = trigger.current.getBoundingClientRect()\n const listRect = list.current.getBoundingClientRect()\n const viewportHeight = window.innerHeight\n\n let top: number\n let transformOrigin: string\n\n const spaceBelow = viewportHeight - triggerRect.bottom\n const fitsBelow = spaceBelow >= listRect.height + offset\n\n if (fitsBelow) {\n top = triggerRect.bottom + offset\n transformOrigin = 'top'\n } else {\n const spaceAbove = triggerRect.top\n const fitsAbove = spaceAbove >= listRect.height + offset\n\n if (fitsAbove) {\n top = triggerRect.top - listRect.height - offset * 2\n transformOrigin = 'bottom'\n } else {\n top = triggerRect.bottom + offset\n transformOrigin = 'top'\n list.current.style.maxHeight = `${spaceBelow - offset}px`\n }\n }\n\n setPosition({\n top,\n width: triggerRect.width,\n left: triggerRect.left,\n transformOrigin\n })\n }\n }\n\n updatePosition()\n window.addEventListener('resize', updatePosition)\n window.addEventListener('orientationchange', updatePosition)\n\n return () => {\n window.removeEventListener('resize', updatePosition)\n window.removeEventListener('orientationchange', updatePosition)\n }\n }, [trigger.current, list.current, offset])\n\n return position\n}\n"],"names":["useFloating","trigger","list","offset","position","setPosition","useState","useEffect","updatePosition","triggerRect","listRect","viewportHeight","top","transformOrigin","spaceBelow"],"mappings":"gDAWO,MAAMA,EAAc,CACzBC,EACAC,EACAC,IAC4B,CAC5B,KAAM,CAACC,EAAUC,CAAW,EAAIC,EAAkC,IAAI,EAEtE,OAAAC,EAAU,IAAM,CACd,MAAMC,EAAiB,IAAM,CAC3B,GAAIP,EAAQ,SAAWC,EAAK,QAAS,CACnC,MAAMO,EAAcR,EAAQ,QAAQ,sBAAA,EAC9BS,EAAWR,EAAK,QAAQ,sBAAA,EACxBS,EAAiB,OAAO,YAE9B,IAAIC,EACAC,EAEJ,MAAMC,EAAaH,EAAiBF,EAAY,OAC9BK,GAAcJ,EAAS,OAASP,GAGhDS,EAAMH,EAAY,OAASN,EAC3BU,EAAkB,OAECJ,EAAY,KACCC,EAAS,OAASP,GAGhDS,EAAMH,EAAY,IAAMC,EAAS,OAASP,EAAS,EACnDU,EAAkB,WAElBD,EAAMH,EAAY,OAASN,EAC3BU,EAAkB,MAClBX,EAAK,QAAQ,MAAM,UAAY,GAAGY,EAAaX,CAAM,MAIzDE,EAAY,CACV,IAAAO,EACA,MAAOH,EAAY,MACnB,KAAMA,EAAY,KAClB,gBAAAI,CAAA,CACD,CAAA,CACH,EAGF,OAAAL,EAAA,EACA,OAAO,iBAAiB,SAAUA,CAAc,EAChD,OAAO,iBAAiB,oBAAqBA,CAAc,EAEpD,IAAM,CACX,OAAO,oBAAoB,SAAUA,CAAc,EACnD,OAAO,oBAAoB,oBAAqBA,CAAc,CAAA,CAChE,EACC,CAACP,EAAQ,QAASC,EAAK,QAASC,CAAM,CAAC,EAEnCC,CACT"}
1
+ {"version":3,"file":"useFloating.js","sources":["../../../../lib/shared/hooks/useFloating.ts"],"sourcesContent":["'use client'\n\nimport { useEffect, useState } from 'react'\n\ntype FloatingPosition = {\n top?: number\n left?: number\n width?: number\n transformOrigin?: string\n}\n\nexport const useFloating = (\n trigger: React.RefObject<HTMLElement>,\n list: React.RefObject<HTMLElement>,\n offset: number\n): FloatingPosition | null => {\n const [position, setPosition] = useState<FloatingPosition | null>(null)\n\n useEffect(() => {\n const updatePosition = () => {\n if (trigger.current && list.current) {\n const triggerRect = trigger.current.getBoundingClientRect()\n const listRect = list.current.getBoundingClientRect()\n const viewportHeight = window.innerHeight\n\n let top: number\n let transformOrigin: string\n\n const spaceBelow = viewportHeight - triggerRect.bottom\n const fitsBelow = spaceBelow >= listRect.height + offset\n\n if (fitsBelow) {\n top = triggerRect.bottom + offset\n transformOrigin = 'top'\n } else {\n const spaceAbove = triggerRect.top\n const fitsAbove = spaceAbove >= listRect.height + offset\n\n if (fitsAbove) {\n top = triggerRect.top - listRect.height - offset * 2\n transformOrigin = 'bottom'\n } else {\n top = triggerRect.bottom + offset\n transformOrigin = 'top'\n list.current.style.maxHeight = `${spaceBelow - offset}px`\n }\n }\n\n setPosition({\n top,\n width: triggerRect.width,\n left: triggerRect.left,\n transformOrigin\n })\n }\n }\n\n updatePosition()\n window.addEventListener('resize', updatePosition)\n window.addEventListener('orientationchange', updatePosition)\n\n return () => {\n window.removeEventListener('resize', updatePosition)\n window.removeEventListener('orientationchange', updatePosition)\n }\n }, [trigger.current, list.current, offset])\n\n return position\n}\n"],"names":["useFloating","trigger","list","offset","position","setPosition","useState","useEffect","updatePosition","triggerRect","listRect","viewportHeight","top","transformOrigin","spaceBelow"],"mappings":"gDAWO,MAAMA,EAAc,CACzBC,EACAC,EACAC,IAC4B,CAC5B,KAAM,CAACC,EAAUC,CAAW,EAAIC,EAAkC,IAAI,EAEtE,OAAAC,EAAU,IAAM,CACd,MAAMC,EAAiB,IAAM,CAC3B,GAAIP,EAAQ,SAAWC,EAAK,QAAS,CACnC,MAAMO,EAAcR,EAAQ,QAAQ,sBAAA,EAC9BS,EAAWR,EAAK,QAAQ,sBAAA,EACxBS,EAAiB,OAAO,YAE9B,IAAIC,EACAC,EAEJ,MAAMC,EAAaH,EAAiBF,EAAY,OAC9BK,GAAcJ,EAAS,OAASP,GAGhDS,EAAMH,EAAY,OAASN,EAC3BU,EAAkB,OAECJ,EAAY,KACCC,EAAS,OAASP,GAGhDS,EAAMH,EAAY,IAAMC,EAAS,OAASP,EAAS,EACnDU,EAAkB,WAElBD,EAAMH,EAAY,OAASN,EAC3BU,EAAkB,MAClBX,EAAK,QAAQ,MAAM,UAAY,GAAGY,EAAaX,CAAM,MAIzDE,EAAY,CACV,IAAAO,EACA,MAAOH,EAAY,MACnB,KAAMA,EAAY,KAClB,gBAAAI,CAAA,CACD,CACH,CACF,EAEA,OAAAL,EAAA,EACA,OAAO,iBAAiB,SAAUA,CAAc,EAChD,OAAO,iBAAiB,oBAAqBA,CAAc,EAEpD,IAAM,CACX,OAAO,oBAAoB,SAAUA,CAAc,EACnD,OAAO,oBAAoB,oBAAqBA,CAAc,CAChE,CACF,EAAG,CAACP,EAAQ,QAASC,EAAK,QAASC,CAAM,CAAC,EAEnCC,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"useObserverWidgets.js","sources":["../../../../lib/shared/hooks/useObserverWidgets.ts"],"sourcesContent":["'use client'\n\nimport { useEffect, useState } from 'react'\nimport type { AllowedWidgets } from '$/widgets'\n\nexport type UseObserverWidgets = {\n ids: AllowedWidgets[]\n options?: IntersectionObserverInit\n initialState?: boolean\n}\n\nexport const useObserverWidgets = ({ ids, options, initialState = false }: UseObserverWidgets) => {\n const [isVisible, setIsVisible] = useState(initialState)\n\n useEffect(() => {\n const observer = new IntersectionObserver((entries) => {\n const visibleIds = entries.filter((entry) => entry.isIntersecting).map((entry) => entry.target.id) as AllowedWidgets[]\n setIsVisible(visibleIds.some((id) => ids.includes(id)))\n }, options)\n\n const elementsMap = new Map<string, HTMLElement | null>()\n\n ids.forEach((id) => {\n const element = document.getElementById(id)\n elementsMap.set(id, element)\n if (element) {\n observer.observe(element)\n }\n })\n\n return () => {\n observer.disconnect()\n }\n }, [ids, options])\n\n return isVisible\n}\n"],"names":["useObserverWidgets","ids","options","initialState","isVisible","setIsVisible","useState","useEffect","observer","entries","visibleIds","entry","id","elementsMap","element"],"mappings":"gDAWO,MAAMA,EAAqB,CAAC,CAAE,IAAAC,EAAK,QAAAC,EAAS,aAAAC,EAAe,MAAgC,CAChG,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAASH,CAAY,EAEvD,OAAAI,EAAU,IAAM,CACd,MAAMC,EAAW,IAAI,qBAAsBC,GAAY,CACrD,MAAMC,EAAaD,EAAQ,OAAQE,GAAUA,EAAM,cAAc,EAAE,IAAKA,GAAUA,EAAM,OAAO,EAAE,EACjGN,EAAaK,EAAW,KAAME,GAAOX,EAAI,SAASW,CAAE,CAAC,CAAC,CAAA,EACrDV,CAAO,EAEJW,MAAkB,IAExB,OAAAZ,EAAI,QAASW,GAAO,CAClB,MAAME,EAAU,SAAS,eAAeF,CAAE,EAC1CC,EAAY,IAAID,EAAIE,CAAO,EACvBA,GACFN,EAAS,QAAQM,CAAO,CAC1B,CACD,EAEM,IAAM,CACXN,EAAS,WAAA,CAAW,CACtB,EACC,CAACP,EAAKC,CAAO,CAAC,EAEVE,CACT"}
1
+ {"version":3,"file":"useObserverWidgets.js","sources":["../../../../lib/shared/hooks/useObserverWidgets.ts"],"sourcesContent":["'use client'\n\nimport { useEffect, useState } from 'react'\nimport type { AllowedWidgets } from '$/widgets'\n\nexport type UseObserverWidgets = {\n ids: AllowedWidgets[]\n options?: IntersectionObserverInit\n initialState?: boolean\n}\n\nexport const useObserverWidgets = ({ ids, options, initialState = false }: UseObserverWidgets) => {\n const [isVisible, setIsVisible] = useState(initialState)\n\n useEffect(() => {\n const observer = new IntersectionObserver((entries) => {\n const visibleIds = entries.filter((entry) => entry.isIntersecting).map((entry) => entry.target.id) as AllowedWidgets[]\n setIsVisible(visibleIds.some((id) => ids.includes(id)))\n }, options)\n\n const elementsMap = new Map<string, HTMLElement | null>()\n\n ids.forEach((id) => {\n const element = document.getElementById(id)\n elementsMap.set(id, element)\n if (element) {\n observer.observe(element)\n }\n })\n\n return () => {\n observer.disconnect()\n }\n }, [ids, options])\n\n return isVisible\n}\n"],"names":["useObserverWidgets","ids","options","initialState","isVisible","setIsVisible","useState","useEffect","observer","entries","visibleIds","entry","id","elementsMap","element"],"mappings":"gDAWO,MAAMA,EAAqB,CAAC,CAAE,IAAAC,EAAK,QAAAC,EAAS,aAAAC,EAAe,MAAgC,CAChG,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAASH,CAAY,EAEvD,OAAAI,EAAU,IAAM,CACd,MAAMC,EAAW,IAAI,qBAAsBC,GAAY,CACrD,MAAMC,EAAaD,EAAQ,OAAQE,GAAUA,EAAM,cAAc,EAAE,IAAKA,GAAUA,EAAM,OAAO,EAAE,EACjGN,EAAaK,EAAW,KAAME,GAAOX,EAAI,SAASW,CAAE,CAAC,CAAC,CACxD,EAAGV,CAAO,EAEJW,MAAkB,IAExB,OAAAZ,EAAI,QAASW,GAAO,CAClB,MAAME,EAAU,SAAS,eAAeF,CAAE,EAC1CC,EAAY,IAAID,EAAIE,CAAO,EACvBA,GACFN,EAAS,QAAQM,CAAO,CAE5B,CAAC,EAEM,IAAM,CACXN,EAAS,WAAA,CACX,CACF,EAAG,CAACP,EAAKC,CAAO,CAAC,EAEVE,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOverflow.js","sources":["../../../../lib/shared/hooks/useOverflow.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nexport const useOverflow = (ref: React.RefObject<HTMLElement>) => {\n const [isOverflow, setIsOverflow] = useState(false)\n\n const trigger = useCallback(() => {\n const { current } = ref\n const hasOverflow = !!current && current.scrollWidth > current.clientWidth\n setIsOverflow(hasOverflow)\n }, [ref])\n\n useEffect(() => {\n trigger()\n window.addEventListener('resize', trigger)\n return () => {\n window.removeEventListener('resize', trigger)\n }\n }, [trigger])\n\n return isOverflow\n}\n"],"names":["useOverflow","ref","isOverflow","setIsOverflow","useState","trigger","useCallback","current","hasOverflow","useEffect"],"mappings":"iEAEO,MAAMA,EAAeC,GAAsC,CAChE,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAS,EAAK,EAE5CC,EAAUC,EAAY,IAAM,CAChC,KAAM,CAAE,QAAAC,GAAYN,EACdO,EAAc,CAAC,CAACD,GAAWA,EAAQ,YAAcA,EAAQ,YAC/DJ,EAAcK,CAAW,CAAA,EACxB,CAACP,CAAG,CAAC,EAER,OAAAQ,EAAU,KACRJ,EAAA,EACA,OAAO,iBAAiB,SAAUA,CAAO,EAClC,IAAM,CACX,OAAO,oBAAoB,SAAUA,CAAO,CAAA,GAE7C,CAACA,CAAO,CAAC,EAELH,CACT"}
1
+ {"version":3,"file":"useOverflow.js","sources":["../../../../lib/shared/hooks/useOverflow.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\n\nexport const useOverflow = (ref: React.RefObject<HTMLElement>) => {\n const [isOverflow, setIsOverflow] = useState(false)\n\n const trigger = useCallback(() => {\n const { current } = ref\n const hasOverflow = !!current && current.scrollWidth > current.clientWidth\n setIsOverflow(hasOverflow)\n }, [ref])\n\n useEffect(() => {\n trigger()\n window.addEventListener('resize', trigger)\n return () => {\n window.removeEventListener('resize', trigger)\n }\n }, [trigger])\n\n return isOverflow\n}\n"],"names":["useOverflow","ref","isOverflow","setIsOverflow","useState","trigger","useCallback","current","hasOverflow","useEffect"],"mappings":"iEAEO,MAAMA,EAAeC,GAAsC,CAChE,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAS,EAAK,EAE5CC,EAAUC,EAAY,IAAM,CAChC,KAAM,CAAE,QAAAC,GAAYN,EACdO,EAAc,CAAC,CAACD,GAAWA,EAAQ,YAAcA,EAAQ,YAC/DJ,EAAcK,CAAW,CAC3B,EAAG,CAACP,CAAG,CAAC,EAER,OAAAQ,EAAU,KACRJ,EAAA,EACA,OAAO,iBAAiB,SAAUA,CAAO,EAClC,IAAM,CACX,OAAO,oBAAoB,SAAUA,CAAO,CAC9C,GACC,CAACA,CAAO,CAAC,EAELH,CACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.js","sources":["../../../../../lib/shared/ui/accordion/Accordion.tsx"],"sourcesContent":["'use client'\n\nimport type * as React from 'react'\nimport { forwardRef, type ReactElement, useState } from 'react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { contentAnimation } from './model/helpers'\nimport { AccordionHeader, type AccordionHeaderClasses } from './ui/AccordionHeader'\nimport { cn } from '$/shared/utils'\n\nexport type AccordionClasses = {\n root?: string\n wrapper?: string\n content?: string\n contentInner?: string\n header?: AccordionHeaderClasses\n}\n\nexport interface AccordionProps {\n children: React.ReactNode\n label: string | ReactElement\n defaultOpen?: boolean\n icon?: React.ReactElement\n classes?: AccordionClasses\n}\n\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n ({ children, label, classes, defaultOpen = false, icon }, ref) => {\n const [isOpen, setIsOpen] = useState(defaultOpen)\n const toggleOpen = () => setIsOpen((prev) => !prev)\n\n return (\n <div className={cn('flex flex-col gap-5', classes?.root)}>\n <div className={cn('w-full disabled:text-color-dark', classes?.wrapper)}>\n <AccordionHeader icon={icon} classes={classes?.header} isOpen={isOpen} onClick={toggleOpen}>\n {label}\n </AccordionHeader>\n <AnimatePresence mode='sync' initial={false}>\n {isOpen && (\n <motion.div\n ref={ref}\n {...contentAnimation}\n className={cn(\n 'desk-body-regular-l max-w-[680px] overflow-hidden bg-color-transparent text-color-dark',\n classes?.content\n )}\n >\n <div className={cn('p-4 desktop:p-6', classes?.contentInner)}>{children}</div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n </div>\n )\n }\n)\n\nAccordion.displayName = 'Accordion'\n"],"names":["Accordion","forwardRef","children","label","classes","defaultOpen","icon","ref","isOpen","setIsOpen","useState","toggleOpen","prev","jsx","cn","jsxs","AccordionHeader","AnimatePresence","motion","contentAnimation"],"mappings":"ydAyBO,MAAMA,EAAYC,EACvB,CAAC,CAAE,SAAAC,EAAU,MAAAC,EAAO,QAAAC,EAAS,YAAAC,EAAc,GAAO,KAAAC,CAAA,EAAQC,IAAQ,CAChE,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAASL,CAAW,EAC1CM,EAAa,IAAMF,EAAWG,GAAS,CAACA,CAAI,EAElD,OACEC,EAAC,MAAA,CAAI,UAAWC,EAAG,sBAAuBV,GAAA,YAAAA,EAAS,IAAI,EACrD,SAAAW,EAAC,OAAI,UAAWD,EAAG,kCAAmCV,GAAA,YAAAA,EAAS,OAAO,EACpE,SAAA,CAAAS,EAACG,EAAA,CAAgB,KAAAV,EAAY,QAASF,GAAA,YAAAA,EAAS,OAAQ,OAAAI,EAAgB,QAASG,EAC7E,SAAAR,CAAA,CACH,IACCc,EAAA,CAAgB,KAAK,OAAO,QAAS,GACnC,SAAAT,GACCK,EAACK,EAAO,IAAP,CACC,IAAAX,EACC,GAAGY,EACJ,UAAWL,EACT,yFACAV,GAAA,YAAAA,EAAS,OAAA,EAGX,SAAAS,EAAC,OAAI,UAAWC,EAAG,kBAAmBV,GAAA,YAAAA,EAAS,YAAY,EAAI,SAAAF,CAAA,CAAS,CAAA,CAAA,CAC1E,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,CAAA,CAGN,EAEAF,EAAU,YAAc"}
1
+ {"version":3,"file":"Accordion.js","sources":["../../../../../lib/shared/ui/accordion/Accordion.tsx"],"sourcesContent":["'use client'\n\nimport type * as React from 'react'\nimport { forwardRef, type ReactElement, useState } from 'react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { contentAnimation } from './model/helpers'\nimport { AccordionHeader, type AccordionHeaderClasses } from './ui/AccordionHeader'\nimport { cn } from '$/shared/utils'\n\nexport type AccordionClasses = {\n root?: string\n wrapper?: string\n content?: string\n contentInner?: string\n header?: AccordionHeaderClasses\n}\n\nexport interface AccordionProps {\n children: React.ReactNode\n label: string | ReactElement\n defaultOpen?: boolean\n icon?: React.ReactElement\n classes?: AccordionClasses\n}\n\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n ({ children, label, classes, defaultOpen = false, icon }, ref) => {\n const [isOpen, setIsOpen] = useState(defaultOpen)\n const toggleOpen = () => setIsOpen((prev) => !prev)\n\n return (\n <div className={cn('flex flex-col gap-5', classes?.root)}>\n <div className={cn('w-full disabled:text-color-dark', classes?.wrapper)}>\n <AccordionHeader icon={icon} classes={classes?.header} isOpen={isOpen} onClick={toggleOpen}>\n {label}\n </AccordionHeader>\n <AnimatePresence mode='sync' initial={false}>\n {isOpen && (\n <motion.div\n ref={ref}\n {...contentAnimation}\n className={cn(\n 'desk-body-regular-l max-w-[680px] overflow-hidden bg-color-transparent text-color-dark',\n classes?.content\n )}\n >\n <div className={cn('p-4 desktop:p-6', classes?.contentInner)}>{children}</div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n </div>\n )\n }\n)\n\nAccordion.displayName = 'Accordion'\n"],"names":["Accordion","forwardRef","children","label","classes","defaultOpen","icon","ref","isOpen","setIsOpen","useState","toggleOpen","prev","jsx","cn","jsxs","AccordionHeader","AnimatePresence","motion","contentAnimation"],"mappings":"ydAyBO,MAAMA,EAAYC,EACvB,CAAC,CAAE,SAAAC,EAAU,MAAAC,EAAO,QAAAC,EAAS,YAAAC,EAAc,GAAO,KAAAC,CAAA,EAAQC,IAAQ,CAChE,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAASL,CAAW,EAC1CM,EAAa,IAAMF,EAAWG,GAAS,CAACA,CAAI,EAElD,OACEC,EAAC,MAAA,CAAI,UAAWC,EAAG,sBAAuBV,GAAA,YAAAA,EAAS,IAAI,EACrD,SAAAW,EAAC,OAAI,UAAWD,EAAG,kCAAmCV,GAAA,YAAAA,EAAS,OAAO,EACpE,SAAA,CAAAS,EAACG,EAAA,CAAgB,KAAAV,EAAY,QAASF,GAAA,YAAAA,EAAS,OAAQ,OAAAI,EAAgB,QAASG,EAC7E,SAAAR,CAAA,CACH,IACCc,EAAA,CAAgB,KAAK,OAAO,QAAS,GACnC,SAAAT,GACCK,EAACK,EAAO,IAAP,CACC,IAAAX,EACC,GAAGY,EACJ,UAAWL,EACT,yFACAV,GAAA,YAAAA,EAAS,OAAA,EAGX,SAAAS,EAAC,OAAI,UAAWC,EAAG,kBAAmBV,GAAA,YAAAA,EAAS,YAAY,EAAI,SAAAF,CAAA,CAAS,CAAA,CAAA,CAC1E,CAEJ,CAAA,CAAA,CACF,CAAA,CACF,CAEJ,CACF,EAEAF,EAAU,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.js","sources":["../../../../../lib/shared/ui/calendar/Calendar.tsx"],"sourcesContent":["import { type DetailedHTMLProps, forwardRef, type HTMLAttributes, type JSX, useMemo } from 'react'\nimport { type ClassNames, DayPicker, type DayPickerProps } from 'react-day-picker'\nimport { ru } from 'date-fns/locale'\nimport 'react-day-picker/style.css'\nimport { defaultClassNames } from './model'\nimport { Day, DayButton, Footer, MonthCaption, type SelectOptions, Weekday } from './ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = DayPickerProps & {\n navigation?: boolean\n renderFooter?: (props: DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>) => JSX.Element | string\n selectOptions?: SelectOptions\n disabledAfterToday?: boolean\n}\n\nexport const Calendar = forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n classNames,\n showOutsideDays = true,\n navigation = true,\n renderFooter,\n selectOptions,\n className,\n disabledAfterToday,\n style,\n ...props\n },\n ref\n ) => {\n const cls = useMemo<Partial<ClassNames>>(\n () => ({\n today: cn(defaultClassNames.today, classNames?.today),\n outside: cn(defaultClassNames.outside, classNames?.outside),\n selected: cn(defaultClassNames.selected, classNames?.selected),\n range_start: cn(defaultClassNames.range_outer, classNames?.range_start),\n range_middle: cn(defaultClassNames.range_middle, classNames?.range_middle),\n range_end: cn(defaultClassNames.range_outer, classNames?.range_end),\n month_grid: 'h-[280px]',\n day: cn(defaultClassNames.day, classNames?.day),\n ...classNames\n }),\n [classNames]\n )\n\n const startYear =\n selectOptions?.year && 'startFrom' in selectOptions.year && selectOptions.year.startFrom\n ? new Date(selectOptions.year.startFrom, 0)\n : undefined\n\n return (\n <div\n ref={ref}\n style={style}\n className={cn(\n 'relative flex flex-col gap-y-1 rounded-sm border-[1px] border-warm-grey-200',\n 'bg-color-white p-4 shadow-[0_16px_24px_0px_rgba(0,33,87,0.16)]',\n className\n )}\n >\n <DayPicker\n {...props}\n fixedWeeks\n captionLayout='dropdown'\n showOutsideDays={showOutsideDays}\n locale={ru}\n classNames={cls}\n startMonth={startYear}\n components={{\n Day: (props) => <Day {...props} disabledAfterToday={disabledAfterToday} />,\n DayButton: (props) => <DayButton {...props} />,\n Weekday: (props) => <Weekday {...props} />,\n Nav: () => <></>,\n MonthCaption: (props) => (navigation ? <MonthCaption {...props} selectOptions={selectOptions} /> : <></>)\n }}\n />\n {renderFooter && <Footer render={renderFooter} />}\n </div>\n )\n }\n)\nCalendar.displayName = 'Calendar'\n"],"names":["Calendar","forwardRef","classNames","showOutsideDays","navigation","renderFooter","selectOptions","className","disabledAfterToday","style","props","ref","cls","useMemo","cn","defaultClassNames","startYear","jsxs","jsx","DayPicker","ru","Day","DayButton","Weekday","Fragment","MonthCaption","Footer"],"mappings":"i5DAeO,MAAMA,EAAWC,EACtB,CACE,CACE,WAAAC,EACA,gBAAAC,EAAkB,GAClB,WAAAC,EAAa,GACb,aAAAC,EACA,cAAAC,EACA,UAAAC,EACA,mBAAAC,EACA,MAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAMC,EACV,KAAO,CACL,MAAOC,EAAGC,EAAkB,MAAOb,GAAA,YAAAA,EAAY,KAAK,EACpD,QAASY,EAAGC,EAAkB,QAASb,GAAA,YAAAA,EAAY,OAAO,EAC1D,SAAUY,EAAGC,EAAkB,SAAUb,GAAA,YAAAA,EAAY,QAAQ,EAC7D,YAAaY,EAAGC,EAAkB,YAAab,GAAA,YAAAA,EAAY,WAAW,EACtE,aAAcY,EAAGC,EAAkB,aAAcb,GAAA,YAAAA,EAAY,YAAY,EACzE,UAAWY,EAAGC,EAAkB,YAAab,GAAA,YAAAA,EAAY,SAAS,EAClE,WAAY,YACZ,IAAKY,EAAGC,EAAkB,IAAKb,GAAA,YAAAA,EAAY,GAAG,EAC9C,GAAGA,CAAA,GAEL,CAACA,CAAU,CAAA,EAGPc,EACJV,GAAA,MAAAA,EAAe,MAAQ,cAAeA,EAAc,MAAQA,EAAc,KAAK,UAC3E,IAAI,KAAKA,EAAc,KAAK,UAAW,CAAC,EACxC,OAEN,OACEW,EAAC,MAAA,CACC,IAAAN,EACA,MAAAF,EACA,UAAWK,EACT,8EACA,iEACAP,CAAA,EAGF,SAAA,CAAAW,EAACC,EAAA,CACE,GAAGT,EACJ,WAAU,GACV,cAAc,WACd,gBAAAP,EACA,OAAQiB,EACR,WAAYR,EACZ,WAAYI,EACZ,WAAY,CACV,IAAMN,KAAWW,EAAA,CAAK,GAAGX,EAAO,mBAAAF,EAAwC,EACxE,UAAYE,GAAUQ,EAACI,EAAA,CAAW,GAAGZ,EAAO,EAC5C,QAAUA,GAAUQ,EAACK,EAAA,CAAS,GAAGb,EAAO,EACxC,IAAK,IAAMQ,EAAAM,EAAA,EAAE,EACb,aAAed,GAAWN,EAAac,EAACO,GAAc,GAAGf,EAAO,cAAAJ,CAAA,CAA8B,EAAKY,EAAAM,EAAA,CAAA,CAAE,CAAA,CACvG,CAAA,EAEDnB,GAAgBa,EAACQ,EAAA,CAAO,OAAQrB,CAAA,CAAc,CAAA,CAAA,CAAA,CACjD,CAGN,EACAL,EAAS,YAAc"}
1
+ {"version":3,"file":"Calendar.js","sources":["../../../../../lib/shared/ui/calendar/Calendar.tsx"],"sourcesContent":["import { type DetailedHTMLProps, forwardRef, type HTMLAttributes, type JSX, useMemo } from 'react'\nimport { type ClassNames, DayPicker, type DayPickerProps } from 'react-day-picker'\nimport { ru } from 'date-fns/locale'\nimport 'react-day-picker/style.css'\nimport { defaultClassNames } from './model'\nimport { Day, DayButton, Footer, MonthCaption, type SelectOptions, Weekday } from './ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = DayPickerProps & {\n navigation?: boolean\n renderFooter?: (props: DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>) => JSX.Element | string\n selectOptions?: SelectOptions\n disabledAfterToday?: boolean\n}\n\nexport const Calendar = forwardRef<HTMLDivElement, CalendarProps>(\n (\n {\n classNames,\n showOutsideDays = true,\n navigation = true,\n renderFooter,\n selectOptions,\n className,\n disabledAfterToday,\n style,\n ...props\n },\n ref\n ) => {\n const cls = useMemo<Partial<ClassNames>>(\n () => ({\n today: cn(defaultClassNames.today, classNames?.today),\n outside: cn(defaultClassNames.outside, classNames?.outside),\n selected: cn(defaultClassNames.selected, classNames?.selected),\n range_start: cn(defaultClassNames.range_outer, classNames?.range_start),\n range_middle: cn(defaultClassNames.range_middle, classNames?.range_middle),\n range_end: cn(defaultClassNames.range_outer, classNames?.range_end),\n month_grid: 'h-[280px]',\n day: cn(defaultClassNames.day, classNames?.day),\n ...classNames\n }),\n [classNames]\n )\n\n const startYear =\n selectOptions?.year && 'startFrom' in selectOptions.year && selectOptions.year.startFrom\n ? new Date(selectOptions.year.startFrom, 0)\n : undefined\n\n return (\n <div\n ref={ref}\n style={style}\n className={cn(\n 'relative flex flex-col gap-y-1 rounded-sm border-[1px] border-warm-grey-200',\n 'bg-color-white p-4 shadow-[0_16px_24px_0px_rgba(0,33,87,0.16)]',\n className\n )}\n >\n <DayPicker\n {...props}\n fixedWeeks\n captionLayout='dropdown'\n showOutsideDays={showOutsideDays}\n locale={ru}\n classNames={cls}\n startMonth={startYear}\n components={{\n Day: (props) => <Day {...props} disabledAfterToday={disabledAfterToday} />,\n DayButton: (props) => <DayButton {...props} />,\n Weekday: (props) => <Weekday {...props} />,\n Nav: () => <></>,\n MonthCaption: (props) => (navigation ? <MonthCaption {...props} selectOptions={selectOptions} /> : <></>)\n }}\n />\n {renderFooter && <Footer render={renderFooter} />}\n </div>\n )\n }\n)\nCalendar.displayName = 'Calendar'\n"],"names":["Calendar","forwardRef","classNames","showOutsideDays","navigation","renderFooter","selectOptions","className","disabledAfterToday","style","props","ref","cls","useMemo","cn","defaultClassNames","startYear","jsxs","jsx","DayPicker","ru","Day","DayButton","Weekday","Fragment","MonthCaption","Footer"],"mappings":"i5DAeO,MAAMA,EAAWC,EACtB,CACE,CACE,WAAAC,EACA,gBAAAC,EAAkB,GAClB,WAAAC,EAAa,GACb,aAAAC,EACA,cAAAC,EACA,UAAAC,EACA,mBAAAC,EACA,MAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAMC,EACV,KAAO,CACL,MAAOC,EAAGC,EAAkB,MAAOb,GAAA,YAAAA,EAAY,KAAK,EACpD,QAASY,EAAGC,EAAkB,QAASb,GAAA,YAAAA,EAAY,OAAO,EAC1D,SAAUY,EAAGC,EAAkB,SAAUb,GAAA,YAAAA,EAAY,QAAQ,EAC7D,YAAaY,EAAGC,EAAkB,YAAab,GAAA,YAAAA,EAAY,WAAW,EACtE,aAAcY,EAAGC,EAAkB,aAAcb,GAAA,YAAAA,EAAY,YAAY,EACzE,UAAWY,EAAGC,EAAkB,YAAab,GAAA,YAAAA,EAAY,SAAS,EAClE,WAAY,YACZ,IAAKY,EAAGC,EAAkB,IAAKb,GAAA,YAAAA,EAAY,GAAG,EAC9C,GAAGA,CAAA,GAEL,CAACA,CAAU,CAAA,EAGPc,EACJV,GAAA,MAAAA,EAAe,MAAQ,cAAeA,EAAc,MAAQA,EAAc,KAAK,UAC3E,IAAI,KAAKA,EAAc,KAAK,UAAW,CAAC,EACxC,OAEN,OACEW,EAAC,MAAA,CACC,IAAAN,EACA,MAAAF,EACA,UAAWK,EACT,8EACA,iEACAP,CAAA,EAGF,SAAA,CAAAW,EAACC,EAAA,CACE,GAAGT,EACJ,WAAU,GACV,cAAc,WACd,gBAAAP,EACA,OAAQiB,EACR,WAAYR,EACZ,WAAYI,EACZ,WAAY,CACV,IAAMN,KAAWW,EAAA,CAAK,GAAGX,EAAO,mBAAAF,EAAwC,EACxE,UAAYE,GAAUQ,EAACI,EAAA,CAAW,GAAGZ,EAAO,EAC5C,QAAUA,GAAUQ,EAACK,EAAA,CAAS,GAAGb,EAAO,EACxC,IAAK,IAAMQ,EAAAM,EAAA,EAAE,EACb,aAAed,GAAWN,EAAac,EAACO,GAAc,GAAGf,EAAO,cAAAJ,CAAA,CAA8B,EAAKY,EAAAM,EAAA,CAAA,CAAE,CAAA,CACvG,CAAA,EAEDnB,GAAgBa,EAACQ,EAAA,CAAO,OAAQrB,CAAA,CAAc,CAAA,CAAA,CAAA,CAGrD,CACF,EACAL,EAAS,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"MonthCaption.js","sources":["../../../../../../lib/shared/ui/calendar/ui/MonthCaption.tsx"],"sourcesContent":["import { type ClassAttributes, type HTMLAttributes, useState } from 'react'\nimport { type CalendarMonth, useDayPicker } from 'react-day-picker'\nimport { defaultSelectOptions, getMonthsFrom, getYearsFrom, type SelectOptions } from './model'\nimport { Navigation } from './Navigation'\nimport { SelectDate } from './selectDate'\nimport { cn } from '$/shared/utils'\n\ntype MonthCaptionProps = ClassAttributes<HTMLDivElement> &\n HTMLAttributes<HTMLDivElement> & {\n calendarMonth: CalendarMonth\n displayIndex: number\n selectOptions?: SelectOptions | false\n }\n\nexport const MonthCaption = ({\n calendarMonth,\n // disable this rules cuz we do need this prop\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,unused-imports/no-unused-vars\n displayIndex,\n className,\n selectOptions,\n ...props\n}: MonthCaptionProps) => {\n const [selectOpen, setSelectOpen] = useState<'month' | 'year' | null>(null)\n const onSelectOpenChange = (key: typeof selectOpen) => {\n setSelectOpen((prev) => (prev === key ? null : key))\n }\n\n const { goToMonth } = useDayPicker()\n\n const month = selectOptions && selectOptions.month !== undefined ? selectOptions.month : defaultSelectOptions.month\n const year = selectOptions && selectOptions.year !== undefined ? selectOptions.year : defaultSelectOptions.year\n\n return (\n <div\n {...props}\n className={cn('relative mb-2 flex h-fit items-center justify-between border-b-[1px] border-warm-grey-200 pb-2', className)}\n >\n <div className='flex content-center justify-center'>\n {month && (\n <SelectDate\n dates={getMonthsFrom(month.startFrom, month.order)}\n currentMonth={calendarMonth}\n onMonthChange={goToMonth}\n mode='month'\n disabled={month?.disabled}\n open={selectOpen === 'month'}\n onOpenChange={() => onSelectOpenChange('month')}\n />\n )}\n {year && (\n <SelectDate\n dates={getYearsFrom(year.startFrom, year.order)}\n currentMonth={calendarMonth}\n onMonthChange={goToMonth}\n mode='year'\n disabled={year?.disabled}\n open={selectOpen === 'year'}\n onOpenChange={() => onSelectOpenChange('year')}\n />\n )}\n </div>\n <Navigation />\n </div>\n )\n}\n"],"names":["MonthCaption","calendarMonth","displayIndex","className","selectOptions","props","selectOpen","setSelectOpen","useState","onSelectOpenChange","key","prev","goToMonth","useDayPicker","month","defaultSelectOptions","year","jsxs","cn","jsx","SelectDate","getMonthsFrom","getYearsFrom","Navigation"],"mappings":"oaAcO,MAAMA,EAAe,CAAC,CAC3B,cAAAC,EAGA,aAAAC,EACA,UAAAC,EACA,cAAAC,EACA,GAAGC,CACL,IAAyB,CACvB,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAkC,IAAI,EACpEC,EAAsBC,GAA2B,CACrDH,EAAeI,GAAUA,IAASD,EAAM,KAAOA,CAAI,CAAA,EAG/C,CAAE,UAAAE,CAAA,EAAcC,EAAA,EAEhBC,EAAQV,GAAiBA,EAAc,QAAU,OAAYA,EAAc,MAAQW,EAAqB,MACxGC,EAAOZ,GAAiBA,EAAc,OAAS,OAAYA,EAAc,KAAOW,EAAqB,KAE3G,OACEE,EAAC,MAAA,CACE,GAAGZ,EACJ,UAAWa,EAAG,iGAAkGf,CAAS,EAEzH,SAAA,CAAAc,EAAC,MAAA,CAAI,UAAU,qCACZ,SAAA,CAAAH,GACCK,EAACC,EAAA,CACC,MAAOC,EAAcP,EAAM,UAAWA,EAAM,KAAK,EACjD,aAAcb,EACd,cAAeW,EACf,KAAK,QACL,SAAUE,GAAA,YAAAA,EAAO,SACjB,KAAMR,IAAe,QACrB,aAAc,IAAMG,EAAmB,OAAO,CAAA,CAAA,EAGjDO,GACCG,EAACC,EAAA,CACC,MAAOE,EAAaN,EAAK,UAAWA,EAAK,KAAK,EAC9C,aAAcf,EACd,cAAeW,EACf,KAAK,OACL,SAAUI,GAAA,YAAAA,EAAM,SAChB,KAAMV,IAAe,OACrB,aAAc,IAAMG,EAAmB,MAAM,CAAA,CAAA,CAC/C,EAEJ,IACCc,EAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAGlB"}
1
+ {"version":3,"file":"MonthCaption.js","sources":["../../../../../../lib/shared/ui/calendar/ui/MonthCaption.tsx"],"sourcesContent":["import { type ClassAttributes, type HTMLAttributes, useState } from 'react'\nimport { type CalendarMonth, useDayPicker } from 'react-day-picker'\nimport { defaultSelectOptions, getMonthsFrom, getYearsFrom, type SelectOptions } from './model'\nimport { Navigation } from './Navigation'\nimport { SelectDate } from './selectDate'\nimport { cn } from '$/shared/utils'\n\ntype MonthCaptionProps = ClassAttributes<HTMLDivElement> &\n HTMLAttributes<HTMLDivElement> & {\n calendarMonth: CalendarMonth\n displayIndex: number\n selectOptions?: SelectOptions | false\n }\n\nexport const MonthCaption = ({\n calendarMonth,\n // disable this rules cuz we do need this prop\n // eslint-disable-next-line @typescript-eslint/no-unused-vars,unused-imports/no-unused-vars\n displayIndex,\n className,\n selectOptions,\n ...props\n}: MonthCaptionProps) => {\n const [selectOpen, setSelectOpen] = useState<'month' | 'year' | null>(null)\n const onSelectOpenChange = (key: typeof selectOpen) => {\n setSelectOpen((prev) => (prev === key ? null : key))\n }\n\n const { goToMonth } = useDayPicker()\n\n const month = selectOptions && selectOptions.month !== undefined ? selectOptions.month : defaultSelectOptions.month\n const year = selectOptions && selectOptions.year !== undefined ? selectOptions.year : defaultSelectOptions.year\n\n return (\n <div\n {...props}\n className={cn('relative mb-2 flex h-fit items-center justify-between border-b-[1px] border-warm-grey-200 pb-2', className)}\n >\n <div className='flex content-center justify-center'>\n {month && (\n <SelectDate\n dates={getMonthsFrom(month.startFrom, month.order)}\n currentMonth={calendarMonth}\n onMonthChange={goToMonth}\n mode='month'\n disabled={month?.disabled}\n open={selectOpen === 'month'}\n onOpenChange={() => onSelectOpenChange('month')}\n />\n )}\n {year && (\n <SelectDate\n dates={getYearsFrom(year.startFrom, year.order)}\n currentMonth={calendarMonth}\n onMonthChange={goToMonth}\n mode='year'\n disabled={year?.disabled}\n open={selectOpen === 'year'}\n onOpenChange={() => onSelectOpenChange('year')}\n />\n )}\n </div>\n <Navigation />\n </div>\n )\n}\n"],"names":["MonthCaption","calendarMonth","displayIndex","className","selectOptions","props","selectOpen","setSelectOpen","useState","onSelectOpenChange","key","prev","goToMonth","useDayPicker","month","defaultSelectOptions","year","jsxs","cn","jsx","SelectDate","getMonthsFrom","getYearsFrom","Navigation"],"mappings":"oaAcO,MAAMA,EAAe,CAAC,CAC3B,cAAAC,EAGA,aAAAC,EACA,UAAAC,EACA,cAAAC,EACA,GAAGC,CACL,IAAyB,CACvB,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAkC,IAAI,EACpEC,EAAsBC,GAA2B,CACrDH,EAAeI,GAAUA,IAASD,EAAM,KAAOA,CAAI,CACrD,EAEM,CAAE,UAAAE,CAAA,EAAcC,EAAA,EAEhBC,EAAQV,GAAiBA,EAAc,QAAU,OAAYA,EAAc,MAAQW,EAAqB,MACxGC,EAAOZ,GAAiBA,EAAc,OAAS,OAAYA,EAAc,KAAOW,EAAqB,KAE3G,OACEE,EAAC,MAAA,CACE,GAAGZ,EACJ,UAAWa,EAAG,iGAAkGf,CAAS,EAEzH,SAAA,CAAAc,EAAC,MAAA,CAAI,UAAU,qCACZ,SAAA,CAAAH,GACCK,EAACC,EAAA,CACC,MAAOC,EAAcP,EAAM,UAAWA,EAAM,KAAK,EACjD,aAAcb,EACd,cAAeW,EACf,KAAK,QACL,SAAUE,GAAA,YAAAA,EAAO,SACjB,KAAMR,IAAe,QACrB,aAAc,IAAMG,EAAmB,OAAO,CAAA,CAAA,EAGjDO,GACCG,EAACC,EAAA,CACC,MAAOE,EAAaN,EAAK,UAAWA,EAAK,KAAK,EAC9C,aAAcf,EACd,cAAeW,EACf,KAAK,OACL,SAAUI,GAAA,YAAAA,EAAM,SAChB,KAAMV,IAAe,OACrB,aAAc,IAAMG,EAAmB,MAAM,CAAA,CAAA,CAC/C,EAEJ,IACCc,EAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAGlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.js","sources":["../../../../../../lib/shared/ui/calendar/ui/Navigation.tsx"],"sourcesContent":["import { type HTMLAttributes } from 'react'\nimport { useDayPicker } from 'react-day-picker'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype NavigationProps = HTMLAttributes<HTMLElement>\n\nexport const Navigation = ({ className, ...props }: NavigationProps) => {\n const { previousMonth, nextMonth, goToMonth } = useDayPicker()\n\n const onPreviousClick = () => {\n if (previousMonth) {\n goToMonth(previousMonth)\n }\n }\n\n const onNextClick = () => {\n if (nextMonth) {\n goToMonth(nextMonth)\n }\n }\n\n return (\n <nav {...props} className={cn('flex h-fit gap-x-3', className)}>\n <button\n type='button'\n onClick={onPreviousClick}\n disabled={!previousMonth}\n className={cn('rounded-sm', { 'hover:bg-color-primary-tr-hover': previousMonth })}\n >\n <Icon\n name='arrows/arrowRight'\n className={cn('rotate-180 text-icon-blue-grey-800', {\n 'text-icon-disabled': !previousMonth\n })}\n />\n </button>\n <button\n type='button'\n onClick={onNextClick}\n disabled={!nextMonth}\n className={cn('rounded-sm', { 'hover:bg-color-primary-tr-hover': nextMonth })}\n >\n <Icon\n name='arrows/arrowRight'\n className={cn('text-icon-blue-grey-800', {\n 'text-icon-disabled': !nextMonth\n })}\n />\n </button>\n </nav>\n )\n}\n"],"names":["Navigation","className","props","previousMonth","nextMonth","goToMonth","useDayPicker","onPreviousClick","onNextClick","jsxs","cn","jsx","Icon"],"mappings":"8nDAOO,MAAMA,EAAa,CAAC,CAAE,UAAAC,EAAW,GAAGC,KAA6B,CACtE,KAAM,CAAE,cAAAC,EAAe,UAAAC,EAAW,UAAAC,CAAA,EAAcC,EAAA,EAE1CC,EAAkB,IAAM,CACxBJ,GACFE,EAAUF,CAAa,CACzB,EAGIK,EAAc,IAAM,CACpBJ,GACFC,EAAUD,CAAS,CACrB,EAGF,OACEK,EAAC,OAAK,GAAGP,EAAO,UAAWQ,EAAG,qBAAsBT,CAAS,EAC3D,SAAA,CAAAU,EAAC,SAAA,CACC,KAAK,SACL,QAASJ,EACT,SAAU,CAACJ,EACX,UAAWO,EAAG,aAAc,CAAE,kCAAmCP,EAAe,EAEhF,SAAAQ,EAACC,EAAA,CACC,KAAK,oBACL,UAAWF,EAAG,qCAAsC,CAClD,qBAAsB,CAACP,CAAA,CACxB,CAAA,CAAA,CACH,CAAA,EAEFQ,EAAC,SAAA,CACC,KAAK,SACL,QAASH,EACT,SAAU,CAACJ,EACX,UAAWM,EAAG,aAAc,CAAE,kCAAmCN,EAAW,EAE5E,SAAAO,EAACC,EAAA,CACC,KAAK,oBACL,UAAWF,EAAG,0BAA2B,CACvC,qBAAsB,CAACN,CAAA,CACxB,CAAA,CAAA,CACH,CAAA,CACF,EACF,CAEJ"}
1
+ {"version":3,"file":"Navigation.js","sources":["../../../../../../lib/shared/ui/calendar/ui/Navigation.tsx"],"sourcesContent":["import { type HTMLAttributes } from 'react'\nimport { useDayPicker } from 'react-day-picker'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype NavigationProps = HTMLAttributes<HTMLElement>\n\nexport const Navigation = ({ className, ...props }: NavigationProps) => {\n const { previousMonth, nextMonth, goToMonth } = useDayPicker()\n\n const onPreviousClick = () => {\n if (previousMonth) {\n goToMonth(previousMonth)\n }\n }\n\n const onNextClick = () => {\n if (nextMonth) {\n goToMonth(nextMonth)\n }\n }\n\n return (\n <nav {...props} className={cn('flex h-fit gap-x-3', className)}>\n <button\n type='button'\n onClick={onPreviousClick}\n disabled={!previousMonth}\n className={cn('rounded-sm', { 'hover:bg-color-primary-tr-hover': previousMonth })}\n >\n <Icon\n name='arrows/arrowRight'\n className={cn('rotate-180 text-icon-blue-grey-800', {\n 'text-icon-disabled': !previousMonth\n })}\n />\n </button>\n <button\n type='button'\n onClick={onNextClick}\n disabled={!nextMonth}\n className={cn('rounded-sm', { 'hover:bg-color-primary-tr-hover': nextMonth })}\n >\n <Icon\n name='arrows/arrowRight'\n className={cn('text-icon-blue-grey-800', {\n 'text-icon-disabled': !nextMonth\n })}\n />\n </button>\n </nav>\n )\n}\n"],"names":["Navigation","className","props","previousMonth","nextMonth","goToMonth","useDayPicker","onPreviousClick","onNextClick","jsxs","cn","jsx","Icon"],"mappings":"8nDAOO,MAAMA,EAAa,CAAC,CAAE,UAAAC,EAAW,GAAGC,KAA6B,CACtE,KAAM,CAAE,cAAAC,EAAe,UAAAC,EAAW,UAAAC,CAAA,EAAcC,EAAA,EAE1CC,EAAkB,IAAM,CACxBJ,GACFE,EAAUF,CAAa,CAE3B,EAEMK,EAAc,IAAM,CACpBJ,GACFC,EAAUD,CAAS,CAEvB,EAEA,OACEK,EAAC,OAAK,GAAGP,EAAO,UAAWQ,EAAG,qBAAsBT,CAAS,EAC3D,SAAA,CAAAU,EAAC,SAAA,CACC,KAAK,SACL,QAASJ,EACT,SAAU,CAACJ,EACX,UAAWO,EAAG,aAAc,CAAE,kCAAmCP,EAAe,EAEhF,SAAAQ,EAACC,EAAA,CACC,KAAK,oBACL,UAAWF,EAAG,qCAAsC,CAClD,qBAAsB,CAACP,CAAA,CACxB,CAAA,CAAA,CACH,CAAA,EAEFQ,EAAC,SAAA,CACC,KAAK,SACL,QAASH,EACT,SAAU,CAACJ,EACX,UAAWM,EAAG,aAAc,CAAE,kCAAmCN,EAAW,EAE5E,SAAAO,EAACC,EAAA,CACC,KAAK,oBACL,UAAWF,EAAG,0BAA2B,CACvC,qBAAsB,CAACN,CAAA,CACxB,CAAA,CAAA,CACH,CAAA,CACF,EACF,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectDate.js","sources":["../../../../../../../lib/shared/ui/calendar/ui/selectDate/SelectDate.tsx"],"sourcesContent":["import { type HTMLAttributes } from 'react'\nimport { type CalendarMonth } from 'react-day-picker'\nimport { SelectList, Trigger } from './ui'\nimport { cn } from '$/shared/utils'\n\ntype SelectDateProps = HTMLAttributes<HTMLDivElement> & {\n dates: number[]\n currentMonth: CalendarMonth\n onMonthChange: (month: Date) => void\n mode: 'month' | 'year'\n disabled?: boolean\n open: boolean\n onOpenChange: () => void\n}\n\nexport const SelectDate = ({\n dates,\n currentMonth,\n onMonthChange,\n className,\n open,\n onOpenChange,\n mode,\n disabled,\n ...props\n}: SelectDateProps) => {\n const onItemSelect = (date: Date) => {\n onMonthChange(date)\n onOpenChange()\n }\n\n return (\n <div {...props} className={cn('', className)}>\n <Trigger currentDate={currentMonth.date} mode={mode} open={open} onOpenChange={onOpenChange} disabled={disabled} />\n {open && <SelectList dates={dates} selected={currentMonth.date} mode={mode} onSelect={onItemSelect} />}\n </div>\n )\n}\n"],"names":["SelectDate","dates","currentMonth","onMonthChange","className","open","onOpenChange","mode","disabled","props","onItemSelect","date","jsxs","cn","jsx","Trigger","SelectList"],"mappings":"yLAeO,MAAMA,EAAa,CAAC,CACzB,MAAAC,EACA,aAAAC,EACA,cAAAC,EACA,UAAAC,EACA,KAAAC,EACA,aAAAC,EACA,KAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAuB,CACrB,MAAMC,EAAgBC,GAAe,CACnCR,EAAcQ,CAAI,EAClBL,EAAA,CAAa,EAGf,OACEM,EAAC,OAAK,GAAGH,EAAO,UAAWI,EAAG,GAAIT,CAAS,EACzC,SAAA,CAAAU,EAACC,GAAQ,YAAab,EAAa,KAAM,KAAAK,EAAY,KAAAF,EAAY,aAAAC,EAA4B,SAAAE,EAAoB,EAChHH,KAASW,EAAA,CAAW,MAAAf,EAAc,SAAUC,EAAa,KAAM,KAAAK,EAAY,SAAUG,CAAA,CAAc,CAAA,EACtG,CAEJ"}
1
+ {"version":3,"file":"SelectDate.js","sources":["../../../../../../../lib/shared/ui/calendar/ui/selectDate/SelectDate.tsx"],"sourcesContent":["import { type HTMLAttributes } from 'react'\nimport { type CalendarMonth } from 'react-day-picker'\nimport { SelectList, Trigger } from './ui'\nimport { cn } from '$/shared/utils'\n\ntype SelectDateProps = HTMLAttributes<HTMLDivElement> & {\n dates: number[]\n currentMonth: CalendarMonth\n onMonthChange: (month: Date) => void\n mode: 'month' | 'year'\n disabled?: boolean\n open: boolean\n onOpenChange: () => void\n}\n\nexport const SelectDate = ({\n dates,\n currentMonth,\n onMonthChange,\n className,\n open,\n onOpenChange,\n mode,\n disabled,\n ...props\n}: SelectDateProps) => {\n const onItemSelect = (date: Date) => {\n onMonthChange(date)\n onOpenChange()\n }\n\n return (\n <div {...props} className={cn('', className)}>\n <Trigger currentDate={currentMonth.date} mode={mode} open={open} onOpenChange={onOpenChange} disabled={disabled} />\n {open && <SelectList dates={dates} selected={currentMonth.date} mode={mode} onSelect={onItemSelect} />}\n </div>\n )\n}\n"],"names":["SelectDate","dates","currentMonth","onMonthChange","className","open","onOpenChange","mode","disabled","props","onItemSelect","date","jsxs","cn","jsx","Trigger","SelectList"],"mappings":"yLAeO,MAAMA,EAAa,CAAC,CACzB,MAAAC,EACA,aAAAC,EACA,cAAAC,EACA,UAAAC,EACA,KAAAC,EACA,aAAAC,EACA,KAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAAuB,CACrB,MAAMC,EAAgBC,GAAe,CACnCR,EAAcQ,CAAI,EAClBL,EAAA,CACF,EAEA,OACEM,EAAC,OAAK,GAAGH,EAAO,UAAWI,EAAG,GAAIT,CAAS,EACzC,SAAA,CAAAU,EAACC,GAAQ,YAAab,EAAa,KAAM,KAAAK,EAAY,KAAAF,EAAY,aAAAC,EAA4B,SAAAE,EAAoB,EAChHH,KAASW,EAAA,CAAW,MAAAf,EAAc,SAAUC,EAAa,KAAM,KAAAK,EAAY,SAAUG,CAAA,CAAc,CAAA,EACtG,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectList.js","sources":["../../../../../../../../lib/shared/ui/calendar/ui/selectDate/ui/SelectList.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef } from 'react'\nimport { motion } from 'framer-motion'\nimport { formatDateToMonthString, formatDateToYearString } from '$/shared/ui/calendar'\nimport { cn } from '$/shared/utils'\n\ntype SelectListProps = Omit<ComponentPropsWithoutRef<typeof motion.ul>, 'onSelect'> & {\n dates: number[]\n selected: Date\n onSelect: (date: Date) => void\n mode: 'month' | 'year'\n}\n\nexport const SelectList = ({ dates, selected, onSelect, className, mode, ...props }: SelectListProps) => {\n return (\n <motion.ul\n {...props}\n layout\n initial={{ opacity: 0, translateY: -20 }}\n animate={{ opacity: 1, translateY: 8 }}\n exit={{ opacity: 0 }}\n className={cn(\n 'customScrollbar-y absolute left-0 top-[50px] z-10 max-h-[280px] w-full translate-y-2 list-none overflow-y-scroll bg-color-white pr-1.5',\n className\n )}\n >\n {dates.map((date, index) => {\n const d = new Date()\n\n if (mode === 'year') {\n d.setFullYear(date)\n } else {\n d.setMonth(date)\n }\n\n const label = mode === 'year' ? formatDateToYearString(d) : formatDateToMonthString(d)\n\n return (\n <motion.li key={index} initial={{ opacity: 0 }} animate={{ opacity: 1 }}>\n <button\n type='button'\n onClick={() => {\n const updatedDate = new Date(selected.getTime())\n\n if (mode === 'year') {\n updatedDate.setFullYear(date)\n } else {\n updatedDate.setMonth(date)\n }\n\n onSelect(updatedDate)\n }}\n className={cn(\n 'desk-body-regular-l h-10 w-full rounded-sm bg-color-white px-2 text-start',\n 'capitalize hover:bg-color-primary-tr-hover hover:text-color-primary-default',\n {\n 'bg-color-primary-tr-hover text-color-primary-default':\n mode === 'month' ? selected.getMonth() === date : selected.getFullYear() === date\n }\n )}\n >\n {label}\n </button>\n </motion.li>\n )\n })}\n </motion.ul>\n )\n}\n"],"names":["SelectList","dates","selected","onSelect","className","mode","props","jsx","motion","cn","date","index","d","label","formatDateToYearString","formatDateToMonthString","updatedDate"],"mappings":"sUAYO,MAAMA,EAAa,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,SAAAC,EAAU,UAAAC,EAAW,KAAAC,EAAM,GAAGC,KAExEC,EAACC,EAAO,GAAP,CACE,GAAGF,EACJ,OAAM,GACN,QAAS,CAAE,QAAS,EAAG,WAAY,GAAA,EACnC,QAAS,CAAE,QAAS,EAAG,WAAY,CAAA,EACnC,KAAM,CAAE,QAAS,CAAA,EACjB,UAAWG,EACT,yIACAL,CAAA,EAGD,SAAAH,EAAM,IAAI,CAACS,EAAMC,IAAU,CAC1B,MAAMC,MAAQ,KAEVP,IAAS,OACXO,EAAE,YAAYF,CAAI,EAElBE,EAAE,SAASF,CAAI,EAGjB,MAAMG,EAAQR,IAAS,OAASS,EAAuBF,CAAC,EAAIG,EAAwBH,CAAC,EAErF,OACEL,EAACC,EAAO,GAAP,CAAsB,QAAS,CAAE,QAAS,CAAA,EAAK,QAAS,CAAE,QAAS,GAClE,SAAAD,EAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM,CACb,MAAMS,EAAc,IAAI,KAAKd,EAAS,SAAS,EAE3CG,IAAS,OACXW,EAAY,YAAYN,CAAI,EAE5BM,EAAY,SAASN,CAAI,EAG3BP,EAASa,CAAW,CAAA,EAEtB,UAAWP,EACT,4EACA,8EACA,CACE,uDACEJ,IAAS,QAAUH,EAAS,aAAeQ,EAAOR,EAAS,gBAAkBQ,CAAA,CACjF,EAGD,SAAAG,CAAA,CAAA,GAvBWF,CAyBhB,CAAA,CAEH,CAAA,CAAA"}
1
+ {"version":3,"file":"SelectList.js","sources":["../../../../../../../../lib/shared/ui/calendar/ui/selectDate/ui/SelectList.tsx"],"sourcesContent":["import { type ComponentPropsWithoutRef } from 'react'\nimport { motion } from 'framer-motion'\nimport { formatDateToMonthString, formatDateToYearString } from '$/shared/ui/calendar'\nimport { cn } from '$/shared/utils'\n\ntype SelectListProps = Omit<ComponentPropsWithoutRef<typeof motion.ul>, 'onSelect'> & {\n dates: number[]\n selected: Date\n onSelect: (date: Date) => void\n mode: 'month' | 'year'\n}\n\nexport const SelectList = ({ dates, selected, onSelect, className, mode, ...props }: SelectListProps) => {\n return (\n <motion.ul\n {...props}\n layout\n initial={{ opacity: 0, translateY: -20 }}\n animate={{ opacity: 1, translateY: 8 }}\n exit={{ opacity: 0 }}\n className={cn(\n 'customScrollbar-y absolute left-0 top-[50px] z-10 max-h-[280px] w-full translate-y-2 list-none overflow-y-scroll bg-color-white pr-1.5',\n className\n )}\n >\n {dates.map((date, index) => {\n const d = new Date()\n\n if (mode === 'year') {\n d.setFullYear(date)\n } else {\n d.setMonth(date)\n }\n\n const label = mode === 'year' ? formatDateToYearString(d) : formatDateToMonthString(d)\n\n return (\n <motion.li key={index} initial={{ opacity: 0 }} animate={{ opacity: 1 }}>\n <button\n type='button'\n onClick={() => {\n const updatedDate = new Date(selected.getTime())\n\n if (mode === 'year') {\n updatedDate.setFullYear(date)\n } else {\n updatedDate.setMonth(date)\n }\n\n onSelect(updatedDate)\n }}\n className={cn(\n 'desk-body-regular-l h-10 w-full rounded-sm bg-color-white px-2 text-start',\n 'capitalize hover:bg-color-primary-tr-hover hover:text-color-primary-default',\n {\n 'bg-color-primary-tr-hover text-color-primary-default':\n mode === 'month' ? selected.getMonth() === date : selected.getFullYear() === date\n }\n )}\n >\n {label}\n </button>\n </motion.li>\n )\n })}\n </motion.ul>\n )\n}\n"],"names":["SelectList","dates","selected","onSelect","className","mode","props","jsx","motion","cn","date","index","d","label","formatDateToYearString","formatDateToMonthString","updatedDate"],"mappings":"sUAYO,MAAMA,EAAa,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,SAAAC,EAAU,UAAAC,EAAW,KAAAC,EAAM,GAAGC,KAExEC,EAACC,EAAO,GAAP,CACE,GAAGF,EACJ,OAAM,GACN,QAAS,CAAE,QAAS,EAAG,WAAY,GAAA,EACnC,QAAS,CAAE,QAAS,EAAG,WAAY,CAAA,EACnC,KAAM,CAAE,QAAS,CAAA,EACjB,UAAWG,EACT,yIACAL,CAAA,EAGD,SAAAH,EAAM,IAAI,CAACS,EAAMC,IAAU,CAC1B,MAAMC,MAAQ,KAEVP,IAAS,OACXO,EAAE,YAAYF,CAAI,EAElBE,EAAE,SAASF,CAAI,EAGjB,MAAMG,EAAQR,IAAS,OAASS,EAAuBF,CAAC,EAAIG,EAAwBH,CAAC,EAErF,OACEL,EAACC,EAAO,GAAP,CAAsB,QAAS,CAAE,QAAS,CAAA,EAAK,QAAS,CAAE,QAAS,GAClE,SAAAD,EAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM,CACb,MAAMS,EAAc,IAAI,KAAKd,EAAS,SAAS,EAE3CG,IAAS,OACXW,EAAY,YAAYN,CAAI,EAE5BM,EAAY,SAASN,CAAI,EAG3BP,EAASa,CAAW,CACtB,EACA,UAAWP,EACT,4EACA,8EACA,CACE,uDACEJ,IAAS,QAAUH,EAAS,aAAeQ,EAAOR,EAAS,gBAAkBQ,CAAA,CACjF,EAGD,SAAAG,CAAA,CAAA,GAvBWF,CAyBhB,CAEJ,CAAC,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselNative.js","sources":["../../../../../lib/shared/ui/carousel/CarouselNative.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport classNames from 'clsx'\nimport { motion } from 'framer-motion'\n\nexport interface CarouselNativeProps<Element> extends React.HTMLAttributes<HTMLDivElement> {\n items: Element[]\n renderComponent: (elementProps: Element) => React.JSX.Element\n columnGap?: number\n}\n\nexport const CarouselNative = <Element,>({\n className,\n items,\n renderComponent,\n columnGap = 10,\n ...props\n}: CarouselNativeProps<Element>) => {\n const [width, setWidth] = useState<number>(0)\n\n const carouselRef = useRef<HTMLDivElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n const listRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const carousel = carouselRef.current\n\n if (carousel) {\n setWidth(carousel.scrollWidth - carousel.offsetWidth)\n }\n }, [items])\n\n return (\n <div ref={containerRef} {...props} className='w-full max-w-[540px] overflow-hidden'>\n <motion.div\n ref={carouselRef}\n drag='x'\n dragElastic={0.15}\n dragConstraints={{ right: 0, left: -width }}\n dragTransition={{ bounceDamping: 30, power: 0.33 }}\n transition={{ duration: 0.2, ease: 'easeInOut' }}\n className='flex cursor-pointer flex-col gap-3'\n >\n <div className={classNames('inline-flex w-max flex-col', className)}>\n <div ref={listRef} className='flex' style={{ columnGap }}>\n {items.map((item, cellIndex) => (\n <motion.div key={`cell-${cellIndex}`} className='w-max'>\n {renderComponent(item)}\n </motion.div>\n ))}\n </div>\n </div>\n </motion.div>\n </div>\n )\n}\n"],"names":["CarouselNative","className","items","renderComponent","columnGap","props","width","setWidth","useState","carouselRef","useRef","containerRef","listRef","useEffect","carousel","jsx","motion","classNames","item","cellIndex"],"mappings":"gRAUO,MAAMA,EAAiB,CAAW,CACvC,UAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,UAAAC,EAAY,GACZ,GAAGC,CACL,IAAoC,CAClC,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAiB,CAAC,EAEtCC,EAAcC,EAAuB,IAAI,EACzCC,EAAeD,EAAuB,IAAI,EAC1CE,EAAUF,EAAuB,IAAI,EAE3C,OAAAG,EAAU,IAAM,CACd,MAAMC,EAAWL,EAAY,QAEzBK,GACFP,EAASO,EAAS,YAAcA,EAAS,WAAW,CACtD,EACC,CAACZ,CAAK,CAAC,IAGP,MAAA,CAAI,IAAKS,EAAe,GAAGN,EAAO,UAAU,uCAC3C,SAAAU,EAACC,EAAO,IAAP,CACC,IAAKP,EACL,KAAK,IACL,YAAa,IACb,gBAAiB,CAAE,MAAO,EAAG,KAAM,CAACH,CAAA,EACpC,eAAgB,CAAE,cAAe,GAAI,MAAO,GAAA,EAC5C,WAAY,CAAE,SAAU,GAAK,KAAM,WAAA,EACnC,UAAU,qCAEV,WAAC,MAAA,CAAI,UAAWW,EAAW,6BAA8BhB,CAAS,EAChE,SAAAc,EAAC,MAAA,CAAI,IAAKH,EAAS,UAAU,OAAO,MAAO,CAAE,UAAAR,GAC1C,SAAAF,EAAM,IAAI,CAACgB,EAAMC,IAChBJ,EAACC,EAAO,IAAP,CAAqC,UAAU,QAC7C,SAAAb,EAAgBe,CAAI,GADN,QAAQC,CAAS,EAElC,CACD,EACH,CAAA,CACF,CAAA,CAAA,EAEJ,CAEJ"}
1
+ {"version":3,"file":"CarouselNative.js","sources":["../../../../../lib/shared/ui/carousel/CarouselNative.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from 'react'\nimport classNames from 'clsx'\nimport { motion } from 'framer-motion'\n\nexport interface CarouselNativeProps<Element> extends React.HTMLAttributes<HTMLDivElement> {\n items: Element[]\n renderComponent: (elementProps: Element) => React.JSX.Element\n columnGap?: number\n}\n\nexport const CarouselNative = <Element,>({\n className,\n items,\n renderComponent,\n columnGap = 10,\n ...props\n}: CarouselNativeProps<Element>) => {\n const [width, setWidth] = useState<number>(0)\n\n const carouselRef = useRef<HTMLDivElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n const listRef = useRef<HTMLDivElement>(null)\n\n useEffect(() => {\n const carousel = carouselRef.current\n\n if (carousel) {\n setWidth(carousel.scrollWidth - carousel.offsetWidth)\n }\n }, [items])\n\n return (\n <div ref={containerRef} {...props} className='w-full max-w-[540px] overflow-hidden'>\n <motion.div\n ref={carouselRef}\n drag='x'\n dragElastic={0.15}\n dragConstraints={{ right: 0, left: -width }}\n dragTransition={{ bounceDamping: 30, power: 0.33 }}\n transition={{ duration: 0.2, ease: 'easeInOut' }}\n className='flex cursor-pointer flex-col gap-3'\n >\n <div className={classNames('inline-flex w-max flex-col', className)}>\n <div ref={listRef} className='flex' style={{ columnGap }}>\n {items.map((item, cellIndex) => (\n <motion.div key={`cell-${cellIndex}`} className='w-max'>\n {renderComponent(item)}\n </motion.div>\n ))}\n </div>\n </div>\n </motion.div>\n </div>\n )\n}\n"],"names":["CarouselNative","className","items","renderComponent","columnGap","props","width","setWidth","useState","carouselRef","useRef","containerRef","listRef","useEffect","carousel","jsx","motion","classNames","item","cellIndex"],"mappings":"gRAUO,MAAMA,EAAiB,CAAW,CACvC,UAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,UAAAC,EAAY,GACZ,GAAGC,CACL,IAAoC,CAClC,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAiB,CAAC,EAEtCC,EAAcC,EAAuB,IAAI,EACzCC,EAAeD,EAAuB,IAAI,EAC1CE,EAAUF,EAAuB,IAAI,EAE3C,OAAAG,EAAU,IAAM,CACd,MAAMC,EAAWL,EAAY,QAEzBK,GACFP,EAASO,EAAS,YAAcA,EAAS,WAAW,CAExD,EAAG,CAACZ,CAAK,CAAC,IAGP,MAAA,CAAI,IAAKS,EAAe,GAAGN,EAAO,UAAU,uCAC3C,SAAAU,EAACC,EAAO,IAAP,CACC,IAAKP,EACL,KAAK,IACL,YAAa,IACb,gBAAiB,CAAE,MAAO,EAAG,KAAM,CAACH,CAAA,EACpC,eAAgB,CAAE,cAAe,GAAI,MAAO,GAAA,EAC5C,WAAY,CAAE,SAAU,GAAK,KAAM,WAAA,EACnC,UAAU,qCAEV,WAAC,MAAA,CAAI,UAAWW,EAAW,6BAA8BhB,CAAS,EAChE,SAAAc,EAAC,MAAA,CAAI,IAAKH,EAAS,UAAU,OAAO,MAAO,CAAE,UAAAR,GAC1C,SAAAF,EAAM,IAAI,CAACgB,EAAMC,IAChBJ,EAACC,EAAO,IAAP,CAAqC,UAAU,QAC7C,SAAAb,EAAgBe,CAAI,GADN,QAAQC,CAAS,EAElC,CACD,EACH,CAAA,CACF,CAAA,CAAA,EAEJ,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"useArrowNavigation.js","sources":["../../../../../../../lib/shared/ui/carousel/model/hooks/useArrowNavigation.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\nimport type { EmblaCarouselType } from 'embla-carousel'\nimport type { NavigationMode } from '../types'\n\ntype UseArrowNavigationProps = {\n emblaApi: EmblaCarouselType | undefined\n navigationHandler?: (emblaApi: EmblaCarouselType) => void\n}\n\nexport const useArrowNavigation = ({ emblaApi, navigationHandler }: UseArrowNavigationProps) => {\n const [prevBtnDisabled, setPrevBtnDisabled] = useState(true)\n const [nextBtnDisabled, setNextBtnDisabled] = useState(true)\n\n const onClickNavigationButton = useCallback(\n (mode: NavigationMode) => {\n if (!emblaApi) return\n switch (mode) {\n case 'prev':\n emblaApi.scrollPrev()\n break\n case 'next':\n emblaApi.scrollNext()\n break\n }\n\n if (navigationHandler) {\n navigationHandler(emblaApi)\n }\n },\n [emblaApi, navigationHandler]\n )\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setPrevBtnDisabled(!emblaApi.canScrollPrev())\n setNextBtnDisabled(!emblaApi.canScrollNext())\n }, [])\n\n useEffect(() => {\n if (!emblaApi) return\n\n onSelect(emblaApi)\n emblaApi.on('reInit', onSelect).on('select', onSelect)\n }, [emblaApi, onSelect])\n\n return {\n prevBtnDisabled,\n nextBtnDisabled,\n onClickNavigationButton\n }\n}\n"],"names":["useArrowNavigation","emblaApi","navigationHandler","prevBtnDisabled","setPrevBtnDisabled","useState","nextBtnDisabled","setNextBtnDisabled","onClickNavigationButton","useCallback","mode","onSelect","useEffect"],"mappings":"iEASO,MAAMA,EAAqB,CAAC,CAAE,SAAAC,EAAU,kBAAAC,KAAiD,CAC9F,KAAM,CAACC,EAAiBC,CAAkB,EAAIC,EAAS,EAAI,EACrD,CAACC,EAAiBC,CAAkB,EAAIF,EAAS,EAAI,EAErDG,EAA0BC,EAC7BC,GAAyB,CACxB,GAAKT,EACL,QAAQS,EAAA,CACN,IAAK,OACHT,EAAS,WAAA,EACT,MACF,IAAK,OACHA,EAAS,WAAA,EACT,KAAA,CAGAC,GACFA,EAAkBD,CAAQ,EAC5B,EAEF,CAACA,EAAUC,CAAiB,CAAA,EAGxBS,EAAWF,EAAaR,GAAgC,CAC5DG,EAAmB,CAACH,EAAS,eAAe,EAC5CM,EAAmB,CAACN,EAAS,eAAe,CAAA,EAC3C,EAAE,EAEL,OAAAW,EAAU,IAAM,CACTX,IAELU,EAASV,CAAQ,EACjBA,EAAS,GAAG,SAAUU,CAAQ,EAAE,GAAG,SAAUA,CAAQ,EAAA,EACpD,CAACV,EAAUU,CAAQ,CAAC,EAEhB,CACL,gBAAAR,EACA,gBAAAG,EACA,wBAAAE,CAAA,CAEJ"}
1
+ {"version":3,"file":"useArrowNavigation.js","sources":["../../../../../../../lib/shared/ui/carousel/model/hooks/useArrowNavigation.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\nimport type { EmblaCarouselType } from 'embla-carousel'\nimport type { NavigationMode } from '../types'\n\ntype UseArrowNavigationProps = {\n emblaApi: EmblaCarouselType | undefined\n navigationHandler?: (emblaApi: EmblaCarouselType) => void\n}\n\nexport const useArrowNavigation = ({ emblaApi, navigationHandler }: UseArrowNavigationProps) => {\n const [prevBtnDisabled, setPrevBtnDisabled] = useState(true)\n const [nextBtnDisabled, setNextBtnDisabled] = useState(true)\n\n const onClickNavigationButton = useCallback(\n (mode: NavigationMode) => {\n if (!emblaApi) return\n switch (mode) {\n case 'prev':\n emblaApi.scrollPrev()\n break\n case 'next':\n emblaApi.scrollNext()\n break\n }\n\n if (navigationHandler) {\n navigationHandler(emblaApi)\n }\n },\n [emblaApi, navigationHandler]\n )\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setPrevBtnDisabled(!emblaApi.canScrollPrev())\n setNextBtnDisabled(!emblaApi.canScrollNext())\n }, [])\n\n useEffect(() => {\n if (!emblaApi) return\n\n onSelect(emblaApi)\n emblaApi.on('reInit', onSelect).on('select', onSelect)\n }, [emblaApi, onSelect])\n\n return {\n prevBtnDisabled,\n nextBtnDisabled,\n onClickNavigationButton\n }\n}\n"],"names":["useArrowNavigation","emblaApi","navigationHandler","prevBtnDisabled","setPrevBtnDisabled","useState","nextBtnDisabled","setNextBtnDisabled","onClickNavigationButton","useCallback","mode","onSelect","useEffect"],"mappings":"iEASO,MAAMA,EAAqB,CAAC,CAAE,SAAAC,EAAU,kBAAAC,KAAiD,CAC9F,KAAM,CAACC,EAAiBC,CAAkB,EAAIC,EAAS,EAAI,EACrD,CAACC,EAAiBC,CAAkB,EAAIF,EAAS,EAAI,EAErDG,EAA0BC,EAC7BC,GAAyB,CACxB,GAAKT,EACL,QAAQS,EAAA,CACN,IAAK,OACHT,EAAS,WAAA,EACT,MACF,IAAK,OACHA,EAAS,WAAA,EACT,KAAA,CAGAC,GACFA,EAAkBD,CAAQ,EAE9B,EACA,CAACA,EAAUC,CAAiB,CAAA,EAGxBS,EAAWF,EAAaR,GAAgC,CAC5DG,EAAmB,CAACH,EAAS,eAAe,EAC5CM,EAAmB,CAACN,EAAS,eAAe,CAC9C,EAAG,CAAA,CAAE,EAEL,OAAAW,EAAU,IAAM,CACTX,IAELU,EAASV,CAAQ,EACjBA,EAAS,GAAG,SAAUU,CAAQ,EAAE,GAAG,SAAUA,CAAQ,EACvD,EAAG,CAACV,EAAUU,CAAQ,CAAC,EAEhB,CACL,gBAAAR,EACA,gBAAAG,EACA,wBAAAE,CAAA,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"useCarousel.js","sources":["../../../../../../../lib/shared/ui/carousel/model/hooks/useCarousel.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport type { EmblaCarouselType, EmblaOptionsType } from 'embla-carousel'\nimport Autoplay, { type AutoplayOptionsType } from 'embla-carousel-autoplay'\nimport useEmblaCarousel from 'embla-carousel-react'\n\ntype UseCarouselProps = {\n carouselOptions: EmblaOptionsType\n autoPlayOptions?: AutoplayOptionsType\n}\n\nexport const useCarousel = ({ carouselOptions, autoPlayOptions }: UseCarouselProps) => {\n const [emblaRef, emblaApi] = useEmblaCarousel(carouselOptions, [Autoplay(autoPlayOptions)])\n\n const navigationHandler = useCallback((emblaApi: EmblaCarouselType) => {\n const autoplay = emblaApi?.plugins()?.autoplay\n if (!autoplay) return\n\n const resetOrStop = autoplay.options.stopOnInteraction === false ? autoplay.reset : autoplay.stop\n\n resetOrStop()\n }, [])\n\n return { emblaRef, emblaApi, navigationHandler }\n}\n"],"names":["useCarousel","carouselOptions","autoPlayOptions","emblaRef","emblaApi","useEmblaCarousel","Autoplay","navigationHandler","useCallback","autoplay"],"mappings":"gPAUO,MAAMA,EAAc,CAAC,CAAE,gBAAAC,EAAiB,gBAAAC,KAAwC,CACrF,KAAM,CAACC,EAAUC,CAAQ,EAAIC,EAAiBJ,EAAiB,CAACK,EAASJ,CAAe,CAAC,CAAC,EAEpFK,EAAoBC,EAAaJ,GAAgC,OACrE,MAAMK,GAAWL,EAAAA,GAAAA,YAAAA,EAAU,YAAVA,YAAAA,EAAqB,SACtC,GAAI,CAACK,EAAU,QAEKA,EAAS,QAAQ,oBAAsB,GAAQA,EAAS,MAAQA,EAAS,MAE7F,CAAY,EACX,EAAE,EAEL,MAAO,CAAE,SAAAN,EAAU,SAAAC,EAAU,kBAAAG,CAAA,CAC/B"}
1
+ {"version":3,"file":"useCarousel.js","sources":["../../../../../../../lib/shared/ui/carousel/model/hooks/useCarousel.ts"],"sourcesContent":["import { useCallback } from 'react'\nimport type { EmblaCarouselType, EmblaOptionsType } from 'embla-carousel'\nimport Autoplay, { type AutoplayOptionsType } from 'embla-carousel-autoplay'\nimport useEmblaCarousel from 'embla-carousel-react'\n\ntype UseCarouselProps = {\n carouselOptions: EmblaOptionsType\n autoPlayOptions?: AutoplayOptionsType\n}\n\nexport const useCarousel = ({ carouselOptions, autoPlayOptions }: UseCarouselProps) => {\n const [emblaRef, emblaApi] = useEmblaCarousel(carouselOptions, [Autoplay(autoPlayOptions)])\n\n const navigationHandler = useCallback((emblaApi: EmblaCarouselType) => {\n const autoplay = emblaApi?.plugins()?.autoplay\n if (!autoplay) return\n\n const resetOrStop = autoplay.options.stopOnInteraction === false ? autoplay.reset : autoplay.stop\n\n resetOrStop()\n }, [])\n\n return { emblaRef, emblaApi, navigationHandler }\n}\n"],"names":["useCarousel","carouselOptions","autoPlayOptions","emblaRef","emblaApi","useEmblaCarousel","Autoplay","navigationHandler","useCallback","autoplay"],"mappings":"gPAUO,MAAMA,EAAc,CAAC,CAAE,gBAAAC,EAAiB,gBAAAC,KAAwC,CACrF,KAAM,CAACC,EAAUC,CAAQ,EAAIC,EAAiBJ,EAAiB,CAACK,EAASJ,CAAe,CAAC,CAAC,EAEpFK,EAAoBC,EAAaJ,GAAgC,OACrE,MAAMK,GAAWL,EAAAA,GAAAA,YAAAA,EAAU,YAAVA,YAAAA,EAAqB,SACtC,GAAI,CAACK,EAAU,QAEKA,EAAS,QAAQ,oBAAsB,GAAQA,EAAS,MAAQA,EAAS,MAE7F,CACF,EAAG,CAAA,CAAE,EAEL,MAAO,CAAE,SAAAN,EAAU,SAAAC,EAAU,kBAAAG,CAAA,CAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDotsNavigation.js","sources":["../../../../../../../lib/shared/ui/carousel/model/hooks/useDotsNavigation.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\nimport type { EmblaCarouselType } from 'embla-carousel'\n\ntype UseDotsNavigationProps = {\n emblaApi: EmblaCarouselType | undefined\n navigationHandler: (emblaApi: EmblaCarouselType) => void\n setVisibleIndex: (index: number) => void\n}\n\nexport type UseDotsNavigationReturn = {\n scrollSnaps: number[]\n onClickDot: (index: number) => void\n}\n\nexport const useDotsNavigation = ({ emblaApi, navigationHandler, setVisibleIndex }: UseDotsNavigationProps) => {\n const [scrollSnaps, setScrollSnaps] = useState<number[]>([])\n\n const onClickDot = useCallback(\n (index: number) => {\n if (!emblaApi) return\n emblaApi.scrollTo(index)\n if (navigationHandler) {\n navigationHandler(emblaApi)\n }\n },\n [emblaApi, navigationHandler]\n )\n\n const onInit = useCallback((emblaApi: EmblaCarouselType) => {\n setScrollSnaps(emblaApi.scrollSnapList())\n }, [])\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setVisibleIndex(emblaApi.selectedScrollSnap())\n }, [])\n\n useEffect(() => {\n if (!emblaApi) return\n\n onInit(emblaApi)\n onSelect(emblaApi)\n emblaApi.on('reInit', onInit).on('reInit', onSelect).on('select', onSelect)\n }, [emblaApi, onInit, onSelect])\n\n return {\n scrollSnaps,\n onClickDot\n }\n}\n"],"names":["useDotsNavigation","emblaApi","navigationHandler","setVisibleIndex","scrollSnaps","setScrollSnaps","useState","onClickDot","useCallback","index","onInit","onSelect","useEffect"],"mappings":"iEAcO,MAAMA,EAAoB,CAAC,CAAE,SAAAC,EAAU,kBAAAC,EAAmB,gBAAAC,KAA8C,CAC7G,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAmB,CAAA,CAAE,EAErDC,EAAaC,EAChBC,GAAkB,CACZR,IACLA,EAAS,SAASQ,CAAK,EACnBP,GACFA,EAAkBD,CAAQ,EAC5B,EAEF,CAACA,EAAUC,CAAiB,CAAA,EAGxBQ,EAASF,EAAaP,GAAgC,CAC1DI,EAAeJ,EAAS,gBAAgB,CAAA,EACvC,EAAE,EAECU,EAAWH,EAAaP,GAAgC,CAC5DE,EAAgBF,EAAS,oBAAoB,CAAA,EAC5C,EAAE,EAEL,OAAAW,EAAU,IAAM,CACTX,IAELS,EAAOT,CAAQ,EACfU,EAASV,CAAQ,EACjBA,EAAS,GAAG,SAAUS,CAAM,EAAE,GAAG,SAAUC,CAAQ,EAAE,GAAG,SAAUA,CAAQ,EAAA,EACzE,CAACV,EAAUS,EAAQC,CAAQ,CAAC,EAExB,CACL,YAAAP,EACA,WAAAG,CAAA,CAEJ"}
1
+ {"version":3,"file":"useDotsNavigation.js","sources":["../../../../../../../lib/shared/ui/carousel/model/hooks/useDotsNavigation.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react'\nimport type { EmblaCarouselType } from 'embla-carousel'\n\ntype UseDotsNavigationProps = {\n emblaApi: EmblaCarouselType | undefined\n navigationHandler: (emblaApi: EmblaCarouselType) => void\n setVisibleIndex: (index: number) => void\n}\n\nexport type UseDotsNavigationReturn = {\n scrollSnaps: number[]\n onClickDot: (index: number) => void\n}\n\nexport const useDotsNavigation = ({ emblaApi, navigationHandler, setVisibleIndex }: UseDotsNavigationProps) => {\n const [scrollSnaps, setScrollSnaps] = useState<number[]>([])\n\n const onClickDot = useCallback(\n (index: number) => {\n if (!emblaApi) return\n emblaApi.scrollTo(index)\n if (navigationHandler) {\n navigationHandler(emblaApi)\n }\n },\n [emblaApi, navigationHandler]\n )\n\n const onInit = useCallback((emblaApi: EmblaCarouselType) => {\n setScrollSnaps(emblaApi.scrollSnapList())\n }, [])\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setVisibleIndex(emblaApi.selectedScrollSnap())\n }, [])\n\n useEffect(() => {\n if (!emblaApi) return\n\n onInit(emblaApi)\n onSelect(emblaApi)\n emblaApi.on('reInit', onInit).on('reInit', onSelect).on('select', onSelect)\n }, [emblaApi, onInit, onSelect])\n\n return {\n scrollSnaps,\n onClickDot\n }\n}\n"],"names":["useDotsNavigation","emblaApi","navigationHandler","setVisibleIndex","scrollSnaps","setScrollSnaps","useState","onClickDot","useCallback","index","onInit","onSelect","useEffect"],"mappings":"iEAcO,MAAMA,EAAoB,CAAC,CAAE,SAAAC,EAAU,kBAAAC,EAAmB,gBAAAC,KAA8C,CAC7G,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAmB,CAAA,CAAE,EAErDC,EAAaC,EAChBC,GAAkB,CACZR,IACLA,EAAS,SAASQ,CAAK,EACnBP,GACFA,EAAkBD,CAAQ,EAE9B,EACA,CAACA,EAAUC,CAAiB,CAAA,EAGxBQ,EAASF,EAAaP,GAAgC,CAC1DI,EAAeJ,EAAS,gBAAgB,CAC1C,EAAG,CAAA,CAAE,EAECU,EAAWH,EAAaP,GAAgC,CAC5DE,EAAgBF,EAAS,oBAAoB,CAC/C,EAAG,CAAA,CAAE,EAEL,OAAAW,EAAU,IAAM,CACTX,IAELS,EAAOT,CAAQ,EACfU,EAASV,CAAQ,EACjBA,EAAS,GAAG,SAAUS,CAAM,EAAE,GAAG,SAAUC,CAAQ,EAAE,GAAG,SAAUA,CAAQ,EAC5E,EAAG,CAACV,EAAUS,EAAQC,CAAQ,CAAC,EAExB,CACL,YAAAP,EACA,WAAAG,CAAA,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"CarouselContent.js","sources":["../../../../../../lib/shared/ui/carousel/ui/CarouselContent.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from 'react'\nimport type { DotsOptions, UseDotsNavigationReturn } from '../model'\nimport { DotsNavigations, type DotsNavigationsClasses } from './DotsNavigations'\nimport { useDevice } from '$/shared/hooks'\nimport { cn } from '$/shared/utils'\n\nexport type CarouselContentClasses = {\n dotsClasses?: DotsNavigationsClasses\n slidesOverlay?: string\n slidesWrapper?: string\n}\n\nexport interface CarouselContentProps {\n classes?: CarouselContentClasses\n children: ReactNode\n dotsProps: UseDotsNavigationReturn\n dotsOptions: DotsOptions\n visibleIndex: number\n}\n\nexport const CarouselContent = forwardRef<HTMLDivElement, CarouselContentProps>(\n ({ visibleIndex, classes, children, dotsProps, dotsOptions }, ref) => {\n const { isMobile, isDesktop } = useDevice()\n const { mobVisible, deskVisible, ...dotsRestOptions } = dotsOptions ?? {}\n\n //Отображения точек если переданы и мобильное разрешение\n const withDotsOnMob = mobVisible && isMobile\n //Отображения точек если переданы и полноэкранное разрешение\n const withDotsOnDesk = deskVisible && isDesktop\n\n const dotsFullProps = {\n visibleIndex,\n ...dotsProps\n }\n\n return (\n <div className={cn('mx-auto overflow-hidden', classes?.slidesOverlay)} ref={ref}>\n <div className={cn('flex touch-pan-y gap-6', classes?.slidesWrapper)}>{children}</div>\n {(withDotsOnDesk || withDotsOnMob) && <DotsNavigations {...dotsFullProps} {...dotsRestOptions} />}\n </div>\n )\n }\n)\n"],"names":["CarouselContent","forwardRef","visibleIndex","classes","children","dotsProps","dotsOptions","ref","isMobile","isDesktop","useDevice","mobVisible","deskVisible","dotsRestOptions","withDotsOnMob","withDotsOnDesk","dotsFullProps","jsxs","cn","jsx","DotsNavigations"],"mappings":"0QAoBO,MAAMA,EAAkBC,EAC7B,CAAC,CAAE,aAAAC,EAAc,QAAAC,EAAS,SAAAC,EAAU,UAAAC,EAAW,YAAAC,CAAA,EAAeC,IAAQ,CACpE,KAAM,CAAE,SAAAC,EAAU,UAAAC,CAAA,EAAcC,EAAA,EAC1B,CAAE,WAAAC,EAAY,YAAAC,EAAa,GAAGC,CAAA,EAAoBP,GAAe,CAAA,EAGjEQ,EAAgBH,GAAcH,EAE9BO,EAAiBH,GAAeH,EAEhCO,EAAgB,CACpB,aAAAd,EACA,GAAGG,CAAA,EAGL,OACEY,EAAC,OAAI,UAAWC,EAAG,0BAA2Bf,GAAA,YAAAA,EAAS,aAAa,EAAG,IAAAI,EACrE,SAAA,CAAAY,EAAC,OAAI,UAAWD,EAAG,yBAA0Bf,GAAA,YAAAA,EAAS,aAAa,EAAI,SAAAC,EAAS,GAC9EW,GAAkBD,IAAkBK,EAACC,GAAiB,GAAGJ,EAAgB,GAAGH,CAAA,CAAiB,CAAA,EACjG,CAAA,CAGN"}
1
+ {"version":3,"file":"CarouselContent.js","sources":["../../../../../../lib/shared/ui/carousel/ui/CarouselContent.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from 'react'\nimport type { DotsOptions, UseDotsNavigationReturn } from '../model'\nimport { DotsNavigations, type DotsNavigationsClasses } from './DotsNavigations'\nimport { useDevice } from '$/shared/hooks'\nimport { cn } from '$/shared/utils'\n\nexport type CarouselContentClasses = {\n dotsClasses?: DotsNavigationsClasses\n slidesOverlay?: string\n slidesWrapper?: string\n}\n\nexport interface CarouselContentProps {\n classes?: CarouselContentClasses\n children: ReactNode\n dotsProps: UseDotsNavigationReturn\n dotsOptions: DotsOptions\n visibleIndex: number\n}\n\nexport const CarouselContent = forwardRef<HTMLDivElement, CarouselContentProps>(\n ({ visibleIndex, classes, children, dotsProps, dotsOptions }, ref) => {\n const { isMobile, isDesktop } = useDevice()\n const { mobVisible, deskVisible, ...dotsRestOptions } = dotsOptions ?? {}\n\n //Отображения точек если переданы и мобильное разрешение\n const withDotsOnMob = mobVisible && isMobile\n //Отображения точек если переданы и полноэкранное разрешение\n const withDotsOnDesk = deskVisible && isDesktop\n\n const dotsFullProps = {\n visibleIndex,\n ...dotsProps\n }\n\n return (\n <div className={cn('mx-auto overflow-hidden', classes?.slidesOverlay)} ref={ref}>\n <div className={cn('flex touch-pan-y gap-6', classes?.slidesWrapper)}>{children}</div>\n {(withDotsOnDesk || withDotsOnMob) && <DotsNavigations {...dotsFullProps} {...dotsRestOptions} />}\n </div>\n )\n }\n)\n"],"names":["CarouselContent","forwardRef","visibleIndex","classes","children","dotsProps","dotsOptions","ref","isMobile","isDesktop","useDevice","mobVisible","deskVisible","dotsRestOptions","withDotsOnMob","withDotsOnDesk","dotsFullProps","jsxs","cn","jsx","DotsNavigations"],"mappings":"0QAoBO,MAAMA,EAAkBC,EAC7B,CAAC,CAAE,aAAAC,EAAc,QAAAC,EAAS,SAAAC,EAAU,UAAAC,EAAW,YAAAC,CAAA,EAAeC,IAAQ,CACpE,KAAM,CAAE,SAAAC,EAAU,UAAAC,CAAA,EAAcC,EAAA,EAC1B,CAAE,WAAAC,EAAY,YAAAC,EAAa,GAAGC,CAAA,EAAoBP,GAAe,CAAA,EAGjEQ,EAAgBH,GAAcH,EAE9BO,EAAiBH,GAAeH,EAEhCO,EAAgB,CACpB,aAAAd,EACA,GAAGG,CAAA,EAGL,OACEY,EAAC,OAAI,UAAWC,EAAG,0BAA2Bf,GAAA,YAAAA,EAAS,aAAa,EAAG,IAAAI,EACrE,SAAA,CAAAY,EAAC,OAAI,UAAWD,EAAG,yBAA0Bf,GAAA,YAAAA,EAAS,aAAa,EAAI,SAAAC,EAAS,GAC9EW,GAAkBD,IAAkBK,EAACC,GAAiB,GAAGJ,EAAgB,GAAGH,CAAA,CAAiB,CAAA,EACjG,CAEJ,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Dialog.js","sources":["../../../../../lib/shared/ui/dialog/Dialog.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { createPortal } from 'react-dom'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Heading, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface DialogProps extends React.DialogHTMLAttributes<HTMLDialogElement> {\n title?: string\n portal?: HTMLElement\n}\n\nexport const Dialog = ({ className, children, title, portal = globalThis?.document?.body, ...props }: DialogProps) => {\n const dialogRef = useRef<HTMLDialogElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n\n const onClose = () => {\n if (!dialogRef.current) return\n\n dialogRef.current.close()\n }\n\n useClickOutside(contentRef, onClose)\n\n const dialog = (\n <dialog\n ref={dialogRef}\n {...props}\n className='group z-10 border-none'\n onKeyDown={(event) => {\n if (event.key === 'Escape') {\n onClose()\n }\n }}\n >\n <div className='fixed inset-0 flex items-center justify-center bg-color-overlay'>\n <div\n ref={contentRef}\n className={cn(\n 'w-full bg-color-white px-4 py-6 shadow-sm desktop:max-w-[600px] desktop:rounded-md desktop:px-6 desktop:py-8',\n 'rounded-tl-md rounded-tr-md mobile:absolute mobile:bottom-0',\n className\n )}\n >\n <div className='flex items-start justify-between gap-4'>\n {title && (\n <Heading as='h3' className='flex-1 text-color-dark'>\n {title}\n </Heading>\n )}\n <Icon onClick={onClose} name='general/close' className='ml-auto size-6 cursor-pointer text-icon-dark-hover' />\n </div>\n <div className='mt-4'>{children}</div>\n </div>\n </div>\n </dialog>\n )\n\n return portal ? createPortal(dialog, portal) : dialog\n}\n"],"names":["Dialog","className","children","title","portal","_a","props","dialogRef","useRef","contentRef","onClose","useClickOutside","dialog","jsx","event","jsxs","cn","Heading","Icon","createPortal"],"mappings":"snDAWO,MAAMA,EAAS,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,MAAAC,EAAO,OAAAC,GAASC,MAAA,mCAAY,WAAZ,YAAAA,EAAsB,QAAM,GAAGC,CAAA,IAAyB,CACpH,MAAMC,EAAYC,EAA0B,IAAI,EAC1CC,EAAaD,EAAuB,IAAI,EAExCE,EAAU,IAAM,CACfH,EAAU,SAEfA,EAAU,QAAQ,MAAA,CAAM,EAG1BI,EAAgBF,EAAYC,CAAO,EAEnC,MAAME,EACJC,EAAC,SAAA,CACC,IAAKN,EACJ,GAAGD,EACJ,UAAU,yBACV,UAAYQ,GAAU,CAChBA,EAAM,MAAQ,UAChBJ,EAAA,CACF,EAGF,SAAAG,EAAC,MAAA,CAAI,UAAU,kEACb,SAAAE,EAAC,MAAA,CACC,IAAKN,EACL,UAAWO,EACT,+GACA,8DACAf,CAAA,EAGF,SAAA,CAAAc,EAAC,MAAA,CAAI,UAAU,yCACZ,SAAA,CAAAZ,KACEc,EAAA,CAAQ,GAAG,KAAK,UAAU,yBACxB,SAAAd,EACH,IAEDe,EAAA,CAAK,QAASR,EAAS,KAAK,gBAAgB,UAAU,oDAAA,CAAqD,CAAA,EAC9G,EACAG,EAAC,MAAA,CAAI,UAAU,OAAQ,SAAAX,CAAA,CAAS,CAAA,CAAA,CAAA,CAClC,CACF,CAAA,CAAA,EAIJ,OAAOE,EAASe,EAAaP,EAAQR,CAAM,EAAIQ,CACjD"}
1
+ {"version":3,"file":"Dialog.js","sources":["../../../../../lib/shared/ui/dialog/Dialog.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { createPortal } from 'react-dom'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Heading, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface DialogProps extends React.DialogHTMLAttributes<HTMLDialogElement> {\n title?: string\n portal?: HTMLElement\n}\n\nexport const Dialog = ({ className, children, title, portal = globalThis?.document?.body, ...props }: DialogProps) => {\n const dialogRef = useRef<HTMLDialogElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n\n const onClose = () => {\n if (!dialogRef.current) return\n\n dialogRef.current.close()\n }\n\n useClickOutside(contentRef, onClose)\n\n const dialog = (\n <dialog\n ref={dialogRef}\n {...props}\n className='group z-10 border-none'\n onKeyDown={(event) => {\n if (event.key === 'Escape') {\n onClose()\n }\n }}\n >\n <div className='fixed inset-0 flex items-center justify-center bg-color-overlay'>\n <div\n ref={contentRef}\n className={cn(\n 'w-full bg-color-white px-4 py-6 shadow-sm desktop:max-w-[600px] desktop:rounded-md desktop:px-6 desktop:py-8',\n 'rounded-tl-md rounded-tr-md mobile:absolute mobile:bottom-0',\n className\n )}\n >\n <div className='flex items-start justify-between gap-4'>\n {title && (\n <Heading as='h3' className='flex-1 text-color-dark'>\n {title}\n </Heading>\n )}\n <Icon onClick={onClose} name='general/close' className='ml-auto size-6 cursor-pointer text-icon-dark-hover' />\n </div>\n <div className='mt-4'>{children}</div>\n </div>\n </div>\n </dialog>\n )\n\n return portal ? createPortal(dialog, portal) : dialog\n}\n"],"names":["Dialog","className","children","title","portal","_a","props","dialogRef","useRef","contentRef","onClose","useClickOutside","dialog","jsx","event","jsxs","cn","Heading","Icon","createPortal"],"mappings":"snDAWO,MAAMA,EAAS,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,MAAAC,EAAO,OAAAC,GAASC,MAAA,mCAAY,WAAZ,YAAAA,EAAsB,QAAM,GAAGC,CAAA,IAAyB,CACpH,MAAMC,EAAYC,EAA0B,IAAI,EAC1CC,EAAaD,EAAuB,IAAI,EAExCE,EAAU,IAAM,CACfH,EAAU,SAEfA,EAAU,QAAQ,MAAA,CACpB,EAEAI,EAAgBF,EAAYC,CAAO,EAEnC,MAAME,EACJC,EAAC,SAAA,CACC,IAAKN,EACJ,GAAGD,EACJ,UAAU,yBACV,UAAYQ,GAAU,CAChBA,EAAM,MAAQ,UAChBJ,EAAA,CAEJ,EAEA,SAAAG,EAAC,MAAA,CAAI,UAAU,kEACb,SAAAE,EAAC,MAAA,CACC,IAAKN,EACL,UAAWO,EACT,+GACA,8DACAf,CAAA,EAGF,SAAA,CAAAc,EAAC,MAAA,CAAI,UAAU,yCACZ,SAAA,CAAAZ,KACEc,EAAA,CAAQ,GAAG,KAAK,UAAU,yBACxB,SAAAd,EACH,IAEDe,EAAA,CAAK,QAASR,EAAS,KAAK,gBAAgB,UAAU,oDAAA,CAAqD,CAAA,EAC9G,EACAG,EAAC,MAAA,CAAI,UAAU,OAAQ,SAAAX,CAAA,CAAS,CAAA,CAAA,CAAA,CAClC,CACF,CAAA,CAAA,EAIJ,OAAOE,EAASe,EAAaP,EAAQR,CAAM,EAAIQ,CACjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownList.js","sources":["../../../../../lib/shared/ui/dropdownList/DropdownList.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { useKeyboardNavigation } from './hooks'\nimport { isOptionActive } from './model'\nimport { DropdownItem, type DropdownItemClasses, type DropdownItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { cn } from '$/shared/utils'\n\nexport type DropdownListClasses = {\n root?: string\n item?: DropdownItemClasses\n}\n\nexport interface DropdownListProps<Multi extends boolean> extends React.HTMLAttributes<HTMLUListElement> {\n options: DropdownItemOption[]\n /**\n * Значения выбранные по умолчанию\n */\n value?: Multi extends true ? DropdownItemOption[] : DropdownItemOption | null\n /**\n * Функция при выборе значения из списка\n * @param item\n */\n onPick?: (item: DropdownItemOption) => void\n /**\n * Поддержка множественного выбора\n */\n multiple: Multi\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: DropdownItemOption) => string\n /**\n * Дополнительные стили\n */\n classes?: DropdownListClasses\n}\n\nexport const DropdownList = <Multi extends boolean>({\n options,\n multiple,\n onPick,\n value,\n className,\n displayValue,\n classes,\n ...props\n}: DropdownListProps<Multi>) => {\n const ref = useRef<HTMLUListElement>(null)\n\n const { refs, focusedIndex, setFocusedIndex } = useKeyboardNavigation<HTMLUListElement, HTMLLIElement>({\n options,\n multiple,\n onPick\n })\n\n useClickOutside(ref, () => setFocusedIndex(-1))\n\n return (\n <ul\n {...props}\n ref={refs.setRoot()}\n className={cn(\n 'customScrollbar-y mt-1 max-h-[264px] w-full overflow-y-auto scroll-smooth rounded-md bg-color-white p-1 shadow-[0_8px_20px_0px_rgba(41,41,41,0.08)]',\n classes?.root,\n className\n )}\n >\n {options.map((option, index) => {\n const active = isOptionActive(option, value)\n\n return (\n <DropdownItem\n ref={refs.setReference}\n key={index}\n item={option}\n active={active}\n focused={focusedIndex === index}\n multiple={multiple}\n onPick={onPick}\n displayValue={displayValue}\n onMouseEnter={() => setFocusedIndex(index)}\n onMouseLeave={() => setFocusedIndex(-1)}\n classes={classes?.item}\n />\n )\n })}\n </ul>\n )\n}\n"],"names":["DropdownList","options","multiple","onPick","value","className","displayValue","classes","props","ref","useRef","refs","focusedIndex","setFocusedIndex","useKeyboardNavigation","useClickOutside","jsx","cn","option","index","active","isOptionActive","DropdownItem"],"mappings":"uYAqCO,MAAMA,EAAe,CAAwB,CAClD,QAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EACA,UAAAC,EACA,aAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAAgC,CAC9B,MAAMC,EAAMC,EAAyB,IAAI,EAEnC,CAAE,KAAAC,EAAM,aAAAC,EAAc,gBAAAC,CAAA,EAAoBC,EAAuD,CACrG,QAAAb,EACA,SAAAC,EACA,OAAAC,CAAA,CACD,EAED,OAAAY,EAAgBN,EAAK,IAAMI,EAAgB,EAAE,CAAC,EAG5CG,EAAC,KAAA,CACE,GAAGR,EACJ,IAAKG,EAAK,QAAA,EACV,UAAWM,EACT,sJACAV,GAAA,YAAAA,EAAS,KACTF,CAAA,EAGD,SAAAJ,EAAQ,IAAI,CAACiB,EAAQC,IAAU,CAC9B,MAAMC,EAASC,EAAeH,EAAQd,CAAK,EAE3C,OACEY,EAACM,EAAA,CACC,IAAKX,EAAK,aAEV,KAAMO,EACN,OAAAE,EACA,QAASR,IAAiBO,EAC1B,SAAAjB,EACA,OAAAC,EACA,aAAAG,EACA,aAAc,IAAMO,EAAgBM,CAAK,EACzC,aAAc,IAAMN,EAAgB,EAAE,EACtC,QAASN,GAAA,YAAAA,EAAS,IAAA,EATbY,CAAA,CAUP,CAEH,CAAA,CAAA,CAGP"}
1
+ {"version":3,"file":"DropdownList.js","sources":["../../../../../lib/shared/ui/dropdownList/DropdownList.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { useKeyboardNavigation } from './hooks'\nimport { isOptionActive } from './model'\nimport { DropdownItem, type DropdownItemClasses, type DropdownItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { cn } from '$/shared/utils'\n\nexport type DropdownListClasses = {\n root?: string\n item?: DropdownItemClasses\n}\n\nexport interface DropdownListProps<Multi extends boolean> extends React.HTMLAttributes<HTMLUListElement> {\n options: DropdownItemOption[]\n /**\n * Значения выбранные по умолчанию\n */\n value?: Multi extends true ? DropdownItemOption[] : DropdownItemOption | null\n /**\n * Функция при выборе значения из списка\n * @param item\n */\n onPick?: (item: DropdownItemOption) => void\n /**\n * Поддержка множественного выбора\n */\n multiple: Multi\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: DropdownItemOption) => string\n /**\n * Дополнительные стили\n */\n classes?: DropdownListClasses\n}\n\nexport const DropdownList = <Multi extends boolean>({\n options,\n multiple,\n onPick,\n value,\n className,\n displayValue,\n classes,\n ...props\n}: DropdownListProps<Multi>) => {\n const ref = useRef<HTMLUListElement>(null)\n\n const { refs, focusedIndex, setFocusedIndex } = useKeyboardNavigation<HTMLUListElement, HTMLLIElement>({\n options,\n multiple,\n onPick\n })\n\n useClickOutside(ref, () => setFocusedIndex(-1))\n\n return (\n <ul\n {...props}\n ref={refs.setRoot()}\n className={cn(\n 'customScrollbar-y mt-1 max-h-[264px] w-full overflow-y-auto scroll-smooth rounded-md bg-color-white p-1 shadow-[0_8px_20px_0px_rgba(41,41,41,0.08)]',\n classes?.root,\n className\n )}\n >\n {options.map((option, index) => {\n const active = isOptionActive(option, value)\n\n return (\n <DropdownItem\n ref={refs.setReference}\n key={index}\n item={option}\n active={active}\n focused={focusedIndex === index}\n multiple={multiple}\n onPick={onPick}\n displayValue={displayValue}\n onMouseEnter={() => setFocusedIndex(index)}\n onMouseLeave={() => setFocusedIndex(-1)}\n classes={classes?.item}\n />\n )\n })}\n </ul>\n )\n}\n"],"names":["DropdownList","options","multiple","onPick","value","className","displayValue","classes","props","ref","useRef","refs","focusedIndex","setFocusedIndex","useKeyboardNavigation","useClickOutside","jsx","cn","option","index","active","isOptionActive","DropdownItem"],"mappings":"uYAqCO,MAAMA,EAAe,CAAwB,CAClD,QAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EACA,UAAAC,EACA,aAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAAgC,CAC9B,MAAMC,EAAMC,EAAyB,IAAI,EAEnC,CAAE,KAAAC,EAAM,aAAAC,EAAc,gBAAAC,CAAA,EAAoBC,EAAuD,CACrG,QAAAb,EACA,SAAAC,EACA,OAAAC,CAAA,CACD,EAED,OAAAY,EAAgBN,EAAK,IAAMI,EAAgB,EAAE,CAAC,EAG5CG,EAAC,KAAA,CACE,GAAGR,EACJ,IAAKG,EAAK,QAAA,EACV,UAAWM,EACT,sJACAV,GAAA,YAAAA,EAAS,KACTF,CAAA,EAGD,SAAAJ,EAAQ,IAAI,CAACiB,EAAQC,IAAU,CAC9B,MAAMC,EAASC,EAAeH,EAAQd,CAAK,EAE3C,OACEY,EAACM,EAAA,CACC,IAAKX,EAAK,aAEV,KAAMO,EACN,OAAAE,EACA,QAASR,IAAiBO,EAC1B,SAAAjB,EACA,OAAAC,EACA,aAAAG,EACA,aAAc,IAAMO,EAAgBM,CAAK,EACzC,aAAc,IAAMN,EAAgB,EAAE,EACtC,QAASN,GAAA,YAAAA,EAAS,IAAA,EATbY,CAAA,CAYX,CAAC,CAAA,CAAA,CAGP"}
@@ -1 +1 @@
1
- {"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../../../lib/shared/ui/dropdownList/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react'\nimport { listNavigate } from '../model'\nimport { type DropdownItemOption } from '../ui/dropdownItem'\n\nexport type UseKeyboardNavigationProps = {\n options: DropdownItemOption[]\n multiple?: boolean\n onPick?: (option: DropdownItemOption) => void\n}\n\nconst ELEMENT_OFFSET = 4\n\nexport const useKeyboardNavigation = <Container extends HTMLElement, Element extends HTMLElement>({\n options,\n multiple,\n onPick\n}: UseKeyboardNavigationProps) => {\n const [focusedIndex, setFocusedIndex] = useState<number>(-1)\n\n const containerRef = useRef<Container>(null)\n const itemRefs = useRef<Element[]>([])\n\n const refs = useMemo(\n () => ({\n setReference: (node: Element | null) => {\n if (node) itemRefs.current.push(node)\n },\n setRoot: () => containerRef\n }),\n []\n )\n\n useEffect(() => {\n if (!containerRef.current) return\n\n const abortController = new AbortController()\n const container = containerRef.current\n\n window.addEventListener(\n 'keydown',\n ({ key }) => {\n let direction: 1 | -1 = -1\n\n switch (key) {\n case 'ArrowUp':\n direction = -1\n break\n case 'ArrowDown':\n direction = 1\n break\n case ' ':\n if (focusedIndex < 0) return\n\n const selectedItem = options[focusedIndex]\n onPick?.(selectedItem)\n if (!multiple) setFocusedIndex(-1)\n\n return\n default:\n return\n }\n\n let currentIndex = listNavigate(focusedIndex, direction, options.length)\n\n while (options[currentIndex].disabled) {\n currentIndex = listNavigate(currentIndex, direction, options.length)\n }\n\n const scrollElement = itemRefs.current[currentIndex]\n\n const containerTop = container.scrollTop\n const containerBottom = container.scrollTop + container.clientHeight\n\n if (scrollElement.offsetTop < containerTop || scrollElement.offsetTop > containerBottom) {\n const scrollTop = scrollElement.offsetTop - container.offsetTop - ELEMENT_OFFSET\n\n container.scrollTo({\n top: scrollTop,\n behavior: 'smooth'\n })\n }\n\n setFocusedIndex(currentIndex)\n },\n { signal: abortController.signal }\n )\n\n return () => {\n abortController.abort()\n }\n }, [focusedIndex, options])\n\n return { refs, focusedIndex, setFocusedIndex }\n}\n"],"names":["ELEMENT_OFFSET","useKeyboardNavigation","options","multiple","onPick","focusedIndex","setFocusedIndex","useState","containerRef","useRef","itemRefs","refs","useMemo","node","useEffect","abortController","container","key","direction","selectedItem","currentIndex","listNavigate","scrollElement","containerTop","containerBottom","scrollTop"],"mappings":"0HAUA,MAAMA,EAAiB,EAEVC,EAAwB,CAA6D,CAChG,QAAAC,EACA,SAAAC,EACA,OAAAC,CACF,IAAkC,CAChC,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAiB,EAAE,EAErDC,EAAeC,EAAkB,IAAI,EACrCC,EAAWD,EAAkB,EAAE,EAE/BE,EAAOC,EACX,KAAO,CACL,aAAeC,GAAyB,CAClCA,GAAMH,EAAS,QAAQ,KAAKG,CAAI,CAAA,EAEtC,QAAS,IAAML,CAAA,GAEjB,CAAA,CAAC,EAGH,OAAAM,EAAU,IAAM,CACd,GAAI,CAACN,EAAa,QAAS,OAE3B,MAAMO,EAAkB,IAAI,gBACtBC,EAAYR,EAAa,QAE/B,cAAO,iBACL,UACA,CAAC,CAAE,IAAAS,CAAA,IAAU,CACX,IAAIC,EAAoB,GAExB,OAAQD,EAAA,CACN,IAAK,UACHC,EAAY,GACZ,MACF,IAAK,YACHA,EAAY,EACZ,MACF,IAAK,IACH,GAAIb,EAAe,EAAG,OAEtB,MAAMc,EAAejB,EAAQG,CAAY,EACzCD,GAAA,MAAAA,EAASe,GACJhB,GAAUG,EAAgB,EAAE,EAEjC,OACF,QACE,MAAA,CAGJ,IAAIc,EAAeC,EAAahB,EAAca,EAAWhB,EAAQ,MAAM,EAEvE,KAAOA,EAAQkB,CAAY,EAAE,UAC3BA,EAAeC,EAAaD,EAAcF,EAAWhB,EAAQ,MAAM,EAGrE,MAAMoB,EAAgBZ,EAAS,QAAQU,CAAY,EAE7CG,EAAeP,EAAU,UACzBQ,EAAkBR,EAAU,UAAYA,EAAU,aAExD,GAAIM,EAAc,UAAYC,GAAgBD,EAAc,UAAYE,EAAiB,CACvF,MAAMC,EAAYH,EAAc,UAAYN,EAAU,UAAYhB,EAElEgB,EAAU,SAAS,CACjB,IAAKS,EACL,SAAU,QAAA,CACX,CAAA,CAGHnB,EAAgBc,CAAY,CAAA,EAE9B,CAAE,OAAQL,EAAgB,MAAA,CAAO,EAG5B,IAAM,CACXA,EAAgB,MAAA,CAAM,CACxB,EACC,CAACV,EAAcH,CAAO,CAAC,EAEnB,CAAE,KAAAS,EAAM,aAAAN,EAAc,gBAAAC,CAAA,CAC/B"}
1
+ {"version":3,"file":"useKeyboardNavigation.js","sources":["../../../../../../lib/shared/ui/dropdownList/hooks/useKeyboardNavigation.ts"],"sourcesContent":["import { useEffect, useMemo, useRef, useState } from 'react'\nimport { listNavigate } from '../model'\nimport { type DropdownItemOption } from '../ui/dropdownItem'\n\nexport type UseKeyboardNavigationProps = {\n options: DropdownItemOption[]\n multiple?: boolean\n onPick?: (option: DropdownItemOption) => void\n}\n\nconst ELEMENT_OFFSET = 4\n\nexport const useKeyboardNavigation = <Container extends HTMLElement, Element extends HTMLElement>({\n options,\n multiple,\n onPick\n}: UseKeyboardNavigationProps) => {\n const [focusedIndex, setFocusedIndex] = useState<number>(-1)\n\n const containerRef = useRef<Container>(null)\n const itemRefs = useRef<Element[]>([])\n\n const refs = useMemo(\n () => ({\n setReference: (node: Element | null) => {\n if (node) itemRefs.current.push(node)\n },\n setRoot: () => containerRef\n }),\n []\n )\n\n useEffect(() => {\n if (!containerRef.current) return\n\n const abortController = new AbortController()\n const container = containerRef.current\n\n window.addEventListener(\n 'keydown',\n ({ key }) => {\n let direction: 1 | -1 = -1\n\n switch (key) {\n case 'ArrowUp':\n direction = -1\n break\n case 'ArrowDown':\n direction = 1\n break\n case ' ':\n if (focusedIndex < 0) return\n\n const selectedItem = options[focusedIndex]\n onPick?.(selectedItem)\n if (!multiple) setFocusedIndex(-1)\n\n return\n default:\n return\n }\n\n let currentIndex = listNavigate(focusedIndex, direction, options.length)\n\n while (options[currentIndex].disabled) {\n currentIndex = listNavigate(currentIndex, direction, options.length)\n }\n\n const scrollElement = itemRefs.current[currentIndex]\n\n const containerTop = container.scrollTop\n const containerBottom = container.scrollTop + container.clientHeight\n\n if (scrollElement.offsetTop < containerTop || scrollElement.offsetTop > containerBottom) {\n const scrollTop = scrollElement.offsetTop - container.offsetTop - ELEMENT_OFFSET\n\n container.scrollTo({\n top: scrollTop,\n behavior: 'smooth'\n })\n }\n\n setFocusedIndex(currentIndex)\n },\n { signal: abortController.signal }\n )\n\n return () => {\n abortController.abort()\n }\n }, [focusedIndex, options])\n\n return { refs, focusedIndex, setFocusedIndex }\n}\n"],"names":["ELEMENT_OFFSET","useKeyboardNavigation","options","multiple","onPick","focusedIndex","setFocusedIndex","useState","containerRef","useRef","itemRefs","refs","useMemo","node","useEffect","abortController","container","key","direction","selectedItem","currentIndex","listNavigate","scrollElement","containerTop","containerBottom","scrollTop"],"mappings":"0HAUA,MAAMA,EAAiB,EAEVC,EAAwB,CAA6D,CAChG,QAAAC,EACA,SAAAC,EACA,OAAAC,CACF,IAAkC,CAChC,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAiB,EAAE,EAErDC,EAAeC,EAAkB,IAAI,EACrCC,EAAWD,EAAkB,EAAE,EAE/BE,EAAOC,EACX,KAAO,CACL,aAAeC,GAAyB,CAClCA,GAAMH,EAAS,QAAQ,KAAKG,CAAI,CACtC,EACA,QAAS,IAAML,CAAA,GAEjB,CAAA,CAAC,EAGH,OAAAM,EAAU,IAAM,CACd,GAAI,CAACN,EAAa,QAAS,OAE3B,MAAMO,EAAkB,IAAI,gBACtBC,EAAYR,EAAa,QAE/B,cAAO,iBACL,UACA,CAAC,CAAE,IAAAS,CAAA,IAAU,CACX,IAAIC,EAAoB,GAExB,OAAQD,EAAA,CACN,IAAK,UACHC,EAAY,GACZ,MACF,IAAK,YACHA,EAAY,EACZ,MACF,IAAK,IACH,GAAIb,EAAe,EAAG,OAEtB,MAAMc,EAAejB,EAAQG,CAAY,EACzCD,GAAA,MAAAA,EAASe,GACJhB,GAAUG,EAAgB,EAAE,EAEjC,OACF,QACE,MAAA,CAGJ,IAAIc,EAAeC,EAAahB,EAAca,EAAWhB,EAAQ,MAAM,EAEvE,KAAOA,EAAQkB,CAAY,EAAE,UAC3BA,EAAeC,EAAaD,EAAcF,EAAWhB,EAAQ,MAAM,EAGrE,MAAMoB,EAAgBZ,EAAS,QAAQU,CAAY,EAE7CG,EAAeP,EAAU,UACzBQ,EAAkBR,EAAU,UAAYA,EAAU,aAExD,GAAIM,EAAc,UAAYC,GAAgBD,EAAc,UAAYE,EAAiB,CACvF,MAAMC,EAAYH,EAAc,UAAYN,EAAU,UAAYhB,EAElEgB,EAAU,SAAS,CACjB,IAAKS,EACL,SAAU,QAAA,CACX,CACH,CAEAnB,EAAgBc,CAAY,CAC9B,EACA,CAAE,OAAQL,EAAgB,MAAA,CAAO,EAG5B,IAAM,CACXA,EAAgB,MAAA,CAClB,CACF,EAAG,CAACV,EAAcH,CAAO,CAAC,EAEnB,CAAE,KAAAS,EAAM,aAAAN,EAAc,gBAAAC,CAAA,CAC/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownItem.js","sources":["../../../../../../../lib/shared/ui/dropdownList/ui/dropdownItem/DropdownItem.tsx"],"sourcesContent":["import { forwardRef, Fragment, memo } from 'react'\nimport type { DropdownItemOption } from './model'\nimport { CheckboxBase } from '$/shared/ui/formElements/uncontrolled/checkbox'\nimport { cn } from '$/shared/utils'\n\nexport type DropdownItemClasses = {\n root?: string\n}\n\nexport interface DropdownItemProps extends Omit<React.HTMLAttributes<HTMLLIElement>, 'children'> {\n item: DropdownItemOption\n onPick?: (value: DropdownItemOption, event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void\n multiple?: boolean\n active?: boolean\n focused?: boolean\n disabled?: boolean\n displayValue?: (option: DropdownItemOption) => string\n classes?: DropdownItemClasses\n}\n\nconst InnerComponent = forwardRef<HTMLLIElement, DropdownItemProps>(\n ({ item, className, onPick, multiple = false, active = false, focused = false, displayValue, classes, ...props }, ref) => {\n const { label, helperText, disabled, attachment } = item\n const ContentWrapper = multiple || attachment || helperText ? 'div' : Fragment\n\n return (\n <li\n {...props}\n ref={ref}\n role='listitem'\n onClick={(event) => onPick?.(item, event)}\n data-focused={focused}\n data-active={active}\n className={cn(\n 'desk-body-regular-l w-full cursor-pointer list-none truncate rounded-sm bg-color-white px-2',\n 'flex h-12 items-center gap-x-4 text-color-dark',\n '[&:not(:disabled)]:cursor-pointer [&:not(:last-child)]:mb-1 [&>p]:hover:text-color-secondary',\n 'data-[active=\"true\"]:bg-color-primary-tr-hover data-[active=\"true\"]:text-color-primary-hover',\n 'data-[focused=\"true\"]:bg-color-primary-tr-hover data-[focused=\"true\"]:text-color-primary-hover',\n {\n 'pointer-events-none text-color-disabled': disabled,\n 'flex items-center gap-x-4': multiple,\n 'gap-x-3': attachment && attachment.left\n },\n classes?.root,\n className\n )}\n >\n {multiple ? <CheckboxBase checked={active} disabled={disabled} /> : attachment && attachment.left}\n <ContentWrapper>\n {displayValue ? displayValue(item) : label}\n {helperText && (\n <p\n className={cn('desk-body-regular-s text-color-tetriary', {\n 'text-color-disabled': disabled\n })}\n >\n {helperText}\n </p>\n )}\n </ContentWrapper>\n {attachment && attachment.right && <div className='ml-auto'>{attachment.right}</div>}\n </li>\n )\n }\n)\n\nexport const DropdownItem = memo(InnerComponent, (prevProps, nextProps) => {\n return prevProps.focused === nextProps.focused && prevProps.active === nextProps.active\n})\n"],"names":["InnerComponent","forwardRef","item","className","onPick","multiple","active","focused","displayValue","classes","props","ref","label","helperText","disabled","attachment","ContentWrapper","Fragment","jsxs","event","cn","CheckboxBase","jsx","DropdownItem","memo","prevProps","nextProps"],"mappings":"iPAoBA,MAAMA,EAAiBC,EACrB,CAAC,CAAE,KAAAC,EAAM,UAAAC,EAAW,OAAAC,EAAQ,SAAAC,EAAW,GAAO,OAAAC,EAAS,GAAO,QAAAC,EAAU,GAAO,aAAAC,EAAc,QAAAC,EAAS,GAAGC,CAAA,EAASC,IAAQ,CACxH,KAAM,CAAE,MAAAC,EAAO,WAAAC,EAAY,SAAAC,EAAU,WAAAC,GAAeb,EAC9Cc,EAAiBX,GAAYU,GAAcF,EAAa,MAAQI,EAEtE,OACEC,EAAC,KAAA,CACE,GAAGR,EACJ,IAAAC,EACA,KAAK,WACL,QAAUQ,GAAUf,GAAA,YAAAA,EAASF,EAAMiB,GACnC,eAAcZ,EACd,cAAaD,EACb,UAAWc,EACT,8FACA,iDACA,+FACA,+FACA,iGACA,CACE,0CAA2CN,EAC3C,4BAA6BT,EAC7B,UAAWU,GAAcA,EAAW,IAAA,EAEtCN,GAAA,YAAAA,EAAS,KACTN,CAAA,EAGD,SAAA,CAAAE,IAAYgB,EAAA,CAAa,QAASf,EAAQ,SAAAQ,EAAoB,EAAKC,GAAcA,EAAW,OAC5FC,EAAA,CACE,SAAA,CAAAR,EAAeA,EAAaN,CAAI,EAAIU,EACpCC,GACCS,EAAC,IAAA,CACC,UAAWF,EAAG,0CAA2C,CACvD,sBAAuBN,CAAA,CACxB,EAEA,SAAAD,CAAA,CAAA,CACH,EAEJ,EACCE,GAAcA,EAAW,OAASO,EAAC,OAAI,UAAU,UAAW,WAAW,KAAA,CAAM,CAAA,CAAA,CAAA,CAChF,CAGN,EAEaC,EAAeC,EAAKxB,EAAgB,CAACyB,EAAWC,IACpDD,EAAU,UAAYC,EAAU,SAAWD,EAAU,SAAWC,EAAU,MAClF"}
1
+ {"version":3,"file":"DropdownItem.js","sources":["../../../../../../../lib/shared/ui/dropdownList/ui/dropdownItem/DropdownItem.tsx"],"sourcesContent":["import { forwardRef, Fragment, memo } from 'react'\nimport type { DropdownItemOption } from './model'\nimport { CheckboxBase } from '$/shared/ui/formElements/uncontrolled/checkbox'\nimport { cn } from '$/shared/utils'\n\nexport type DropdownItemClasses = {\n root?: string\n}\n\nexport interface DropdownItemProps extends Omit<React.HTMLAttributes<HTMLLIElement>, 'children'> {\n item: DropdownItemOption\n onPick?: (value: DropdownItemOption, event: React.MouseEvent<HTMLLIElement, MouseEvent>) => void\n multiple?: boolean\n active?: boolean\n focused?: boolean\n disabled?: boolean\n displayValue?: (option: DropdownItemOption) => string\n classes?: DropdownItemClasses\n}\n\nconst InnerComponent = forwardRef<HTMLLIElement, DropdownItemProps>(\n ({ item, className, onPick, multiple = false, active = false, focused = false, displayValue, classes, ...props }, ref) => {\n const { label, helperText, disabled, attachment } = item\n const ContentWrapper = multiple || attachment || helperText ? 'div' : Fragment\n\n return (\n <li\n {...props}\n ref={ref}\n role='listitem'\n onClick={(event) => onPick?.(item, event)}\n data-focused={focused}\n data-active={active}\n className={cn(\n 'desk-body-regular-l w-full cursor-pointer list-none truncate rounded-sm bg-color-white px-2',\n 'flex h-12 items-center gap-x-4 text-color-dark',\n '[&:not(:disabled)]:cursor-pointer [&:not(:last-child)]:mb-1 [&>p]:hover:text-color-secondary',\n 'data-[active=\"true\"]:bg-color-primary-tr-hover data-[active=\"true\"]:text-color-primary-hover',\n 'data-[focused=\"true\"]:bg-color-primary-tr-hover data-[focused=\"true\"]:text-color-primary-hover',\n {\n 'pointer-events-none text-color-disabled': disabled,\n 'flex items-center gap-x-4': multiple,\n 'gap-x-3': attachment && attachment.left\n },\n classes?.root,\n className\n )}\n >\n {multiple ? <CheckboxBase checked={active} disabled={disabled} /> : attachment && attachment.left}\n <ContentWrapper>\n {displayValue ? displayValue(item) : label}\n {helperText && (\n <p\n className={cn('desk-body-regular-s text-color-tetriary', {\n 'text-color-disabled': disabled\n })}\n >\n {helperText}\n </p>\n )}\n </ContentWrapper>\n {attachment && attachment.right && <div className='ml-auto'>{attachment.right}</div>}\n </li>\n )\n }\n)\n\nexport const DropdownItem = memo(InnerComponent, (prevProps, nextProps) => {\n return prevProps.focused === nextProps.focused && prevProps.active === nextProps.active\n})\n"],"names":["InnerComponent","forwardRef","item","className","onPick","multiple","active","focused","displayValue","classes","props","ref","label","helperText","disabled","attachment","ContentWrapper","Fragment","jsxs","event","cn","CheckboxBase","jsx","DropdownItem","memo","prevProps","nextProps"],"mappings":"iPAoBA,MAAMA,EAAiBC,EACrB,CAAC,CAAE,KAAAC,EAAM,UAAAC,EAAW,OAAAC,EAAQ,SAAAC,EAAW,GAAO,OAAAC,EAAS,GAAO,QAAAC,EAAU,GAAO,aAAAC,EAAc,QAAAC,EAAS,GAAGC,CAAA,EAASC,IAAQ,CACxH,KAAM,CAAE,MAAAC,EAAO,WAAAC,EAAY,SAAAC,EAAU,WAAAC,GAAeb,EAC9Cc,EAAiBX,GAAYU,GAAcF,EAAa,MAAQI,EAEtE,OACEC,EAAC,KAAA,CACE,GAAGR,EACJ,IAAAC,EACA,KAAK,WACL,QAAUQ,GAAUf,GAAA,YAAAA,EAASF,EAAMiB,GACnC,eAAcZ,EACd,cAAaD,EACb,UAAWc,EACT,8FACA,iDACA,+FACA,+FACA,iGACA,CACE,0CAA2CN,EAC3C,4BAA6BT,EAC7B,UAAWU,GAAcA,EAAW,IAAA,EAEtCN,GAAA,YAAAA,EAAS,KACTN,CAAA,EAGD,SAAA,CAAAE,IAAYgB,EAAA,CAAa,QAASf,EAAQ,SAAAQ,EAAoB,EAAKC,GAAcA,EAAW,OAC5FC,EAAA,CACE,SAAA,CAAAR,EAAeA,EAAaN,CAAI,EAAIU,EACpCC,GACCS,EAAC,IAAA,CACC,UAAWF,EAAG,0CAA2C,CACvD,sBAAuBN,CAAA,CACxB,EAEA,SAAAD,CAAA,CAAA,CACH,EAEJ,EACCE,GAAcA,EAAW,OAASO,EAAC,OAAI,UAAU,UAAW,WAAW,KAAA,CAAM,CAAA,CAAA,CAAA,CAGpF,CACF,EAEaC,EAAeC,EAAKxB,EAAgB,CAACyB,EAAWC,IACpDD,EAAU,UAAYC,EAAU,SAAWD,EAAU,SAAWC,EAAU,MAClF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboboxControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/combobox/ComboboxControl.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport {\n type ChangeHandler,\n Combobox,\n type ComboboxClasses,\n type ComboboxItemOption,\n type ComboboxProps,\n type ComboboxValue\n} from '../../uncontrolled/combobox'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn, TypeGuards } from '$/shared/utils'\n\nexport type ComboboxControlClasses = {\n root?: string\n message?: string\n combobox?: ComboboxClasses\n}\n\nexport type ComboboxControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n ComboboxProps<false> & {\n control: Control<TFieldValues>\n helperText?: string\n returnValue?: (option: ComboboxItemOption) => string | null\n classes?: ComboboxControlClasses\n }\n\nexport const ComboboxControl = <TFieldValues extends FieldValues>({\n control,\n className,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue,\n options,\n helperText,\n returnValue,\n classes,\n ...props\n}: ComboboxControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue\n })\n\n const { error, invalid } = fieldState\n const { value, onChange, ...restField } = field\n\n const { root, combobox, message } = classes ?? {}\n\n const onValueChange: ChangeHandler<false> = (value) => {\n if (TypeGuards.isArray(value)) return\n\n onChange(returnValue && value ? returnValue(value) : (value?.value ?? null))\n }\n\n const selected = useMemo<ComboboxValue<false>>(() => {\n if (TypeGuards.isArray(value)) return null\n\n return options.find((option) => (returnValue ? returnValue(option) : option.value) === value) ?? null\n }, [options, value])\n\n return (\n <div className={cn('w-full items-start gap-y-2', root, className)}>\n <Combobox\n {...props}\n {...restField}\n options={options}\n value={selected}\n onChange={onValueChange}\n invalid={invalid}\n disabled={disabled}\n multiple={false}\n classes={combobox}\n />\n <MessageView\n text={error ? error.message : helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["ComboboxControl","control","className","name","rules","shouldUnregister","disabled","defaultValue","options","helperText","returnValue","classes","props","field","fieldState","useController","error","invalid","value","onChange","restField","root","combobox","message","onValueChange","TypeGuards","selected","useMemo","option","cn","jsx","Combobox","MessageView"],"mappings":"qnDA8BO,MAAMA,GAAkB,CAAmC,CAChE,QAAAC,EACA,UAAAC,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,EACA,QAAAC,EACA,WAAAC,EACA,YAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAA0C,CACxC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAd,EACA,KAAAE,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,CAAA,CACD,EAEK,CAAE,MAAAS,EAAO,QAAAC,CAAA,EAAYH,EACrB,CAAE,MAAAI,EAAO,SAAAC,EAAU,GAAGC,GAAcP,EAEpC,CAAE,KAAAQ,EAAM,SAAAC,EAAU,QAAAC,CAAA,EAAYZ,GAAW,CAAA,EAEzCa,EAAuCN,GAAU,CACjDO,EAAW,QAAQP,CAAK,GAE5BC,EAAST,GAAeQ,EAAQR,EAAYQ,CAAK,GAAKA,GAAAA,YAAAA,EAAO,QAAS,IAAK,CAAA,EAGvEQ,EAAWC,EAA8B,IACzCF,EAAW,QAAQP,CAAK,EAAU,KAE/BV,EAAQ,KAAMoB,IAAYlB,EAAcA,EAAYkB,CAAM,EAAIA,EAAO,SAAWV,CAAK,GAAK,KAChG,CAACV,EAASU,CAAK,CAAC,EAEnB,SACG,MAAA,CAAI,UAAWW,EAAG,6BAA8BR,EAAMnB,CAAS,EAC9D,SAAA,CAAA4B,EAACC,EAAA,CACE,GAAGnB,EACH,GAAGQ,EACJ,QAAAZ,EACA,MAAOkB,EACP,SAAUF,EACV,QAAAP,EACA,SAAAX,EACA,SAAU,GACV,QAASgB,CAAA,CAAA,EAEXQ,EAACE,EAAA,CACC,KAAMhB,EAAQA,EAAM,QAAUP,EAC9B,UAAWc,EACX,OAAQP,EAAQ,QAAU,SAC1B,SAAAV,CAAA,CAAA,CACF,EACF,CAEJ"}
1
+ {"version":3,"file":"ComboboxControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/combobox/ComboboxControl.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport {\n type ChangeHandler,\n Combobox,\n type ComboboxClasses,\n type ComboboxItemOption,\n type ComboboxProps,\n type ComboboxValue\n} from '../../uncontrolled/combobox'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn, TypeGuards } from '$/shared/utils'\n\nexport type ComboboxControlClasses = {\n root?: string\n message?: string\n combobox?: ComboboxClasses\n}\n\nexport type ComboboxControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n ComboboxProps<false> & {\n control: Control<TFieldValues>\n helperText?: string\n returnValue?: (option: ComboboxItemOption) => string | null\n classes?: ComboboxControlClasses\n }\n\nexport const ComboboxControl = <TFieldValues extends FieldValues>({\n control,\n className,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue,\n options,\n helperText,\n returnValue,\n classes,\n ...props\n}: ComboboxControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue\n })\n\n const { error, invalid } = fieldState\n const { value, onChange, ...restField } = field\n\n const { root, combobox, message } = classes ?? {}\n\n const onValueChange: ChangeHandler<false> = (value) => {\n if (TypeGuards.isArray(value)) return\n\n onChange(returnValue && value ? returnValue(value) : (value?.value ?? null))\n }\n\n const selected = useMemo<ComboboxValue<false>>(() => {\n if (TypeGuards.isArray(value)) return null\n\n return options.find((option) => (returnValue ? returnValue(option) : option.value) === value) ?? null\n }, [options, value])\n\n return (\n <div className={cn('w-full items-start gap-y-2', root, className)}>\n <Combobox\n {...props}\n {...restField}\n options={options}\n value={selected}\n onChange={onValueChange}\n invalid={invalid}\n disabled={disabled}\n multiple={false}\n classes={combobox}\n />\n <MessageView\n text={error ? error.message : helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["ComboboxControl","control","className","name","rules","shouldUnregister","disabled","defaultValue","options","helperText","returnValue","classes","props","field","fieldState","useController","error","invalid","value","onChange","restField","root","combobox","message","onValueChange","TypeGuards","selected","useMemo","option","cn","jsx","Combobox","MessageView"],"mappings":"qnDA8BO,MAAMA,GAAkB,CAAmC,CAChE,QAAAC,EACA,UAAAC,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,EACA,QAAAC,EACA,WAAAC,EACA,YAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAA0C,CACxC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAd,EACA,KAAAE,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,CAAA,CACD,EAEK,CAAE,MAAAS,EAAO,QAAAC,CAAA,EAAYH,EACrB,CAAE,MAAAI,EAAO,SAAAC,EAAU,GAAGC,GAAcP,EAEpC,CAAE,KAAAQ,EAAM,SAAAC,EAAU,QAAAC,CAAA,EAAYZ,GAAW,CAAA,EAEzCa,EAAuCN,GAAU,CACjDO,EAAW,QAAQP,CAAK,GAE5BC,EAAST,GAAeQ,EAAQR,EAAYQ,CAAK,GAAKA,GAAAA,YAAAA,EAAO,QAAS,IAAK,CAC7E,EAEMQ,EAAWC,EAA8B,IACzCF,EAAW,QAAQP,CAAK,EAAU,KAE/BV,EAAQ,KAAMoB,IAAYlB,EAAcA,EAAYkB,CAAM,EAAIA,EAAO,SAAWV,CAAK,GAAK,KAChG,CAACV,EAASU,CAAK,CAAC,EAEnB,SACG,MAAA,CAAI,UAAWW,EAAG,6BAA8BR,EAAMnB,CAAS,EAC9D,SAAA,CAAA4B,EAACC,EAAA,CACE,GAAGnB,EACH,GAAGQ,EACJ,QAAAZ,EACA,MAAOkB,EACP,SAAUF,EACV,QAAAP,EACA,SAAAX,EACA,SAAU,GACV,QAASgB,CAAA,CAAA,EAEXQ,EAACE,EAAA,CACC,KAAMhB,EAAQA,EAAM,QAAUP,EAC9B,UAAWc,EACX,OAAQP,EAAQ,QAAU,SAC1B,SAAAV,CAAA,CAAA,CACF,EACF,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/address/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataCacheOption } from '../types'\n\nexport const useDadataQueryAddress = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataCacheOption<unknown>[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['address', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/address`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('address', data) as IDadataCacheOption<unknown>[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryAddress","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAwB,CACnCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,UAAWJ,CAAK,EAC3B,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,WAAY,CACrD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,UAAWD,CAAI,CAAA,EAE5C,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
1
+ {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/address/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataCacheOption } from '../types'\n\nexport const useDadataQueryAddress = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataCacheOption<unknown>[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['address', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/address`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('address', data) as IDadataCacheOption<unknown>[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryAddress","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAwB,CACnCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,UAAWJ,CAAK,EAC3B,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,WAAY,CACrD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,UAAWD,CAAI,CAC5C,EACA,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/auto/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataAutoOption } from '../types'\n\nexport const useDadataQueryAuto = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataAutoOption[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['auto', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/auto`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('auto', data) as IDadataAutoOption[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryAuto","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAqB,CAChCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,OAAQJ,CAAK,EACxB,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,QAAS,CAClD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,OAAQD,CAAI,CAAA,EAEzC,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}
1
+ {"version":3,"file":"query.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dadata/auto/query.ts"],"sourcesContent":["import { type QueryClient, useQuery, type UseQueryOptions } from '@tanstack/react-query'\nimport { getDataByDadataType } from '../helpers'\nimport { type IDadataAutoOption } from '../types'\n\nexport const useDadataQueryAuto = (\n query: string,\n dadataBaseUrl: string,\n options?: Partial<UseQueryOptions<IDadataAutoOption[]>>,\n queryClient?: QueryClient\n) =>\n useQuery(\n {\n queryKey: ['auto', query],\n queryFn: async () => {\n const result = await fetch(`${dadataBaseUrl}/auto`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({ query })\n })\n const data = await result.json()\n return getDataByDadataType('auto', data) as IDadataAutoOption[]\n },\n staleTime: 5 * 60 * 1000,\n gcTime: 0,\n placeholderData: (prev) => prev,\n enabled: Boolean(query),\n ...options\n },\n queryClient\n )\n"],"names":["useDadataQueryAuto","query","dadataBaseUrl","options","queryClient","useQuery","data","getDataByDadataType","prev"],"mappings":"gKAIO,MAAMA,EAAqB,CAChCC,EACAC,EACAC,EACAC,IAEAC,EACE,CACE,SAAU,CAAC,OAAQJ,CAAK,EACxB,QAAS,SAAY,CAQnB,MAAMK,EAAO,MAPE,MAAM,MAAM,GAAGJ,CAAa,QAAS,CAClD,OAAQ,OACR,QAAS,CACP,eAAgB,kBAAA,EAElB,KAAM,KAAK,UAAU,CAAE,MAAAD,EAAO,CAAA,CAC/B,GACyB,KAAA,EAC1B,OAAOM,EAAoB,OAAQD,CAAI,CACzC,EACA,UAAW,EAAI,GAAK,IACpB,OAAQ,EACR,gBAAkBE,GAASA,EAC3B,QAAS,EAAQP,EACjB,GAAGE,CAAA,EAELC,CACF"}