@scbt-ecom/ui 0.93.0 → 0.95.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 (474) 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/DadataAddress.js +1 -1
  32. package/dist/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.js.map +1 -1
  33. package/dist/lib/shared/ui/formElements/controlled/dadata/address/query.js.map +1 -1
  34. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js +1 -1
  35. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.js.map +1 -1
  36. package/dist/lib/shared/ui/formElements/controlled/dadata/auto/query.js.map +1 -1
  37. package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js +1 -1
  38. package/dist/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.js.map +1 -1
  39. package/dist/lib/shared/ui/formElements/controlled/dadata/country/query.js.map +1 -1
  40. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js +1 -1
  41. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.js.map +1 -1
  42. package/dist/lib/shared/ui/formElements/controlled/dadata/fio/query.js.map +1 -1
  43. package/dist/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.js.map +1 -1
  44. package/dist/lib/shared/ui/formElements/controlled/dadata/party/query.js.map +1 -1
  45. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.js.map +1 -1
  46. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/range.js.map +1 -1
  47. package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/single.js.map +1 -1
  48. package/dist/lib/shared/ui/formElements/controlled/editor/model/config.js.map +1 -1
  49. package/dist/lib/shared/ui/formElements/controlled/editor/ui/Editor.js.map +1 -1
  50. package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/setCustomLink.js.map +1 -1
  51. package/dist/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.js.map +1 -1
  52. package/dist/lib/shared/ui/formElements/controlled/inputCurrency/model/useInputCurrency.js.map +1 -1
  53. package/dist/lib/shared/ui/formElements/controlled/select/SelectControl.js.map +1 -1
  54. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js.map +1 -1
  55. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/types.js +2 -0
  56. package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/types.js.map +1 -0
  57. package/dist/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.js.map +1 -1
  58. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js.map +1 -1
  59. package/dist/lib/shared/ui/formElements/uncontrolled/combobox/hooks/useCombobox.js.map +1 -1
  60. package/dist/lib/shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js.map +1 -1
  61. package/dist/lib/shared/ui/formElements/uncontrolled/index.js.map +1 -1
  62. package/dist/lib/shared/ui/formElements/uncontrolled/input/Input.js.map +1 -1
  63. package/dist/lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.js.map +1 -1
  64. package/dist/lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.js.map +1 -1
  65. package/dist/lib/shared/ui/formElements/uncontrolled/radio/ui/RadioItem.js.map +1 -1
  66. package/dist/lib/shared/ui/formElements/uncontrolled/select/Select.js.map +1 -1
  67. package/dist/lib/shared/ui/formElements/uncontrolled/select/hooks/useSelectController.js.map +1 -1
  68. package/dist/lib/shared/ui/formElements/uncontrolled/select/ui/Chip.js.map +1 -1
  69. package/dist/lib/shared/ui/formElements/uncontrolled/select/ui/SelectItem.js.map +1 -1
  70. package/dist/lib/shared/ui/formElements/uncontrolled/slider/model/useLogarithmic.js.map +1 -1
  71. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/Slider.js.map +1 -1
  72. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js.map +1 -1
  73. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/useSliderAlgorithmic.js.map +1 -1
  74. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js.map +1 -1
  75. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/useSliderMarks.js.map +1 -1
  76. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js.map +1 -1
  77. package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/hooks/useSliderStep.js.map +1 -1
  78. package/dist/lib/shared/ui/formElements/uncontrolled/switch/Switch.js.map +1 -1
  79. package/dist/lib/shared/ui/formElements/uncontrolled/textarea/Textarea.js.map +1 -1
  80. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.js.map +1 -1
  81. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/model/hooks/useUploader.js.map +1 -1
  82. package/dist/lib/shared/ui/formElements/uncontrolled/uploader/ui/UploaderInput.js.map +1 -1
  83. package/dist/lib/shared/ui/modal/Modal.js.map +1 -1
  84. package/dist/lib/shared/ui/modal/ui/IframeModalContent.js.map +1 -1
  85. package/dist/lib/shared/ui/pagination/Pagination.js.map +1 -1
  86. package/dist/lib/shared/ui/providers/NotificationProvider.js.map +1 -1
  87. package/dist/lib/shared/ui/slot/Slot.js.map +1 -1
  88. package/dist/lib/shared/ui/slot/model/mergeProps.js.map +1 -1
  89. package/dist/lib/shared/ui/slot/ui/SlotClone.js.map +1 -1
  90. package/dist/lib/shared/ui/tabSwitcher/ui/TabContent.js.map +1 -1
  91. package/dist/lib/shared/ui/table/Mobile.js.map +1 -1
  92. package/dist/lib/shared/ui/table/model/TableUtils.js.map +1 -1
  93. package/dist/lib/shared/ui/table/ui/editableCell/EditableCell.js.map +1 -1
  94. package/dist/lib/shared/utils/localStorageActions.js.map +1 -1
  95. package/dist/lib/shared/utils/mergeRefs.js.map +1 -1
  96. package/dist/lib/shared/utils/scrollToElement.js.map +1 -1
  97. package/dist/lib/shared/utils/sessionStorage.js.map +1 -1
  98. package/dist/lib/shared/utils/typeGuards.js.map +1 -1
  99. package/dist/lib/shared/validation/base/base.constants.js.map +1 -1
  100. package/dist/lib/shared/validation/base/date.validators.js.map +1 -1
  101. package/dist/lib/shared/validation/base/phone.validators.js.map +1 -1
  102. package/dist/lib/shared/validation/base/select.validators.js.map +1 -1
  103. package/dist/lib/shared/validation/dadata/fio.validators.js.map +1 -1
  104. package/dist/lib/shared/validation/utils/zodUtils.js.map +1 -1
  105. package/dist/lib/widgets/breadcrumbs/Breadcrumb.js +1 -1
  106. package/dist/lib/widgets/breadcrumbs/Breadcrumb.js.map +1 -1
  107. package/dist/lib/widgets/breadcrumbs/Breadcrumbs.js +1 -1
  108. package/dist/lib/widgets/breadcrumbs/Breadcrumbs.js.map +1 -1
  109. package/dist/lib/widgets/buttonWithHandlers/model/useButtonHandler.js.map +1 -1
  110. package/dist/lib/widgets/calculator/CalculatorView.js.map +1 -1
  111. package/dist/lib/widgets/calculator/ui/calculatorFields/hooks/useAdditionalSlider.js.map +1 -1
  112. package/dist/lib/widgets/dynamicForm/DynamicForm.js.map +1 -1
  113. package/dist/lib/widgets/dynamicFormDialog/DynamicFormDialog.js.map +1 -1
  114. package/dist/lib/widgets/fieldMapper/FieldMapper.js.map +1 -1
  115. package/dist/lib/widgets/footer/ui/Ligal.js.map +1 -1
  116. package/dist/lib/widgets/htmlParser/baseHtmlParser.js.map +1 -1
  117. package/dist/lib/widgets/htmlParser/htmlParser.js.map +1 -1
  118. package/dist/lib/widgets/htmlParser/reactHtmlParser.js.map +1 -1
  119. package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js.map +1 -1
  120. package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.js.map +1 -1
  121. package/dist/lib/widgets/seoHeader/ui/desktop/rootTab/RootTab.js.map +1 -1
  122. package/dist/lib/widgets/seoHeader/ui/desktop/tab/ui/content/TabContent.js.map +1 -1
  123. package/dist/lib/widgets/seoHeader/ui/mobile/menu/Menu.js.map +1 -1
  124. package/dist/lib/widgets/seoHeader/ui/mobile/menu/MenuItem.js.map +1 -1
  125. package/dist/lib/widgets/userFeedback/model/hooks/useRating.js.map +1 -1
  126. package/dist/lib/widgets/userFeedback/ui/FeedbackTrigger.js.map +1 -1
  127. package/dist/lib/widgets/userFeedback/ui/UserReview.js.map +1 -1
  128. package/dist/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
  129. package/dist/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js.map +1 -1
  130. package/dist/node_modules/@babel/runtime/helpers/esm/objectSpread2.js.map +1 -1
  131. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js.map +1 -1
  132. package/dist/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
  133. package/dist/node_modules/@babel/runtime/helpers/esm/toPrimitive.js.map +1 -1
  134. package/dist/node_modules/@babel/runtime/helpers/esm/typeof.js.map +1 -1
  135. package/dist/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js.map +1 -1
  136. package/dist/node_modules/@date-fns/tz/date/index.js.map +1 -1
  137. package/dist/node_modules/@date-fns/tz/date/mini.js.map +1 -1
  138. package/dist/node_modules/@date-fns/tz/tzOffset/index.js.map +1 -1
  139. package/dist/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -1
  140. package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -1
  141. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.js.map +1 -1
  142. package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js.map +1 -1
  143. package/dist/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +1 -1
  144. package/dist/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -1
  145. package/dist/node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js.map +1 -1
  146. package/dist/node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js.map +1 -1
  147. package/dist/node_modules/@headlessui/react/dist/hooks/use-transition.js.map +1 -1
  148. package/dist/node_modules/@headlessui/react/dist/internal/floating.js.map +1 -1
  149. package/dist/node_modules/@headlessui/react/node_modules/@floating-ui/react/dist/floating-ui.react.js.map +1 -1
  150. package/dist/node_modules/@headlessui/react/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js.map +1 -1
  151. package/dist/node_modules/@radix-ui/primitive/dist/index.js.map +1 -1
  152. package/dist/node_modules/@radix-ui/react-checkbox/dist/index.js.map +1 -1
  153. package/dist/node_modules/@radix-ui/react-collection/dist/index.js.map +1 -1
  154. package/dist/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +1 -1
  155. package/dist/node_modules/@radix-ui/react-context/dist/index.js.map +1 -1
  156. package/dist/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +1 -1
  157. package/dist/node_modules/@radix-ui/react-focus-guards/dist/index.js.map +1 -1
  158. package/dist/node_modules/@radix-ui/react-focus-scope/dist/index.js.map +1 -1
  159. package/dist/node_modules/@radix-ui/react-id/dist/index.js.map +1 -1
  160. package/dist/node_modules/@radix-ui/react-popover/dist/index.js.map +1 -1
  161. package/dist/node_modules/@radix-ui/react-popper/dist/index.js.map +1 -1
  162. package/dist/node_modules/@radix-ui/react-presence/dist/index.js.map +1 -1
  163. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js.map +1 -1
  164. package/dist/node_modules/@radix-ui/react-radio-group/dist/index.js.map +1 -1
  165. package/dist/node_modules/@radix-ui/react-roving-focus/dist/index.js.map +1 -1
  166. package/dist/node_modules/@radix-ui/react-slot/dist/index.js.map +1 -1
  167. package/dist/node_modules/@radix-ui/react-switch/dist/index.js.map +1 -1
  168. package/dist/node_modules/@radix-ui/react-tabs/dist/index.js.map +1 -1
  169. package/dist/node_modules/@radix-ui/react-tooltip/dist/index.js.map +1 -1
  170. package/dist/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +1 -1
  171. package/dist/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +1 -1
  172. package/dist/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +1 -1
  173. package/dist/node_modules/@radix-ui/react-use-size/dist/index.js.map +1 -1
  174. package/dist/node_modules/@react-aria/focus/dist/useFocusRing.js.map +1 -1
  175. package/dist/node_modules/@react-aria/interactions/dist/useFocus.js.map +1 -1
  176. package/dist/node_modules/@react-aria/interactions/dist/useFocusVisible.js.map +1 -1
  177. package/dist/node_modules/@react-aria/interactions/dist/useFocusWithin.js.map +1 -1
  178. package/dist/node_modules/@react-aria/interactions/dist/useHover.js.map +1 -1
  179. package/dist/node_modules/@react-aria/interactions/dist/utils.js.map +1 -1
  180. package/dist/node_modules/@react-aria/utils/dist/DOMFunctions.js.map +1 -1
  181. package/dist/node_modules/@react-aria/utils/dist/useEffectEvent.js.map +1 -1
  182. package/dist/node_modules/@react-aria/utils/dist/useGlobalListeners.js.map +1 -1
  183. package/dist/node_modules/@react-aria/utils/dist/useLayoutEffect.js.map +1 -1
  184. package/dist/node_modules/@tanstack/query-core/build/modern/focusManager.js.map +1 -1
  185. package/dist/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js.map +1 -1
  186. package/dist/node_modules/@tanstack/query-core/build/modern/mutation.js.map +1 -1
  187. package/dist/node_modules/@tanstack/query-core/build/modern/mutationCache.js.map +1 -1
  188. package/dist/node_modules/@tanstack/query-core/build/modern/notifyManager.js.map +1 -1
  189. package/dist/node_modules/@tanstack/query-core/build/modern/onlineManager.js.map +1 -1
  190. package/dist/node_modules/@tanstack/query-core/build/modern/query.js.map +1 -1
  191. package/dist/node_modules/@tanstack/query-core/build/modern/queryCache.js.map +1 -1
  192. package/dist/node_modules/@tanstack/query-core/build/modern/queryClient.js.map +1 -1
  193. package/dist/node_modules/@tanstack/query-core/build/modern/queryObserver.js.map +1 -1
  194. package/dist/node_modules/@tanstack/query-core/build/modern/removable.js.map +1 -1
  195. package/dist/node_modules/@tanstack/query-core/build/modern/retryer.js.map +1 -1
  196. package/dist/node_modules/@tanstack/query-core/build/modern/subscribable.js.map +1 -1
  197. package/dist/node_modules/@tanstack/query-core/build/modern/thenable.js.map +1 -1
  198. package/dist/node_modules/@tanstack/query-core/build/modern/utils.js.map +1 -1
  199. package/dist/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js.map +1 -1
  200. package/dist/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js.map +1 -1
  201. package/dist/node_modules/@tanstack/react-query/build/modern/errorBoundaryUtils.js.map +1 -1
  202. package/dist/node_modules/@tanstack/react-query/build/modern/suspense.js.map +1 -1
  203. package/dist/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js.map +1 -1
  204. package/dist/node_modules/@tanstack/react-table/build/lib/index.js.map +1 -1
  205. package/dist/node_modules/@tanstack/react-virtual/dist/esm/index.js.map +1 -1
  206. package/dist/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -1
  207. package/dist/node_modules/@tanstack/virtual-core/dist/esm/index.js.map +1 -1
  208. package/dist/node_modules/@tanstack/virtual-core/dist/esm/utils.js.map +1 -1
  209. package/dist/node_modules/@tiptap/core/dist/index.js.map +1 -1
  210. package/dist/node_modules/@tiptap/extension-blockquote/dist/index.js.map +1 -1
  211. package/dist/node_modules/@tiptap/extension-bold/dist/index.js.map +1 -1
  212. package/dist/node_modules/@tiptap/extension-bullet-list/dist/index.js.map +1 -1
  213. package/dist/node_modules/@tiptap/extension-character-count/dist/index.js.map +1 -1
  214. package/dist/node_modules/@tiptap/extension-code/dist/index.js.map +1 -1
  215. package/dist/node_modules/@tiptap/extension-code-block/dist/index.js.map +1 -1
  216. package/dist/node_modules/@tiptap/extension-color/dist/index.js.map +1 -1
  217. package/dist/node_modules/@tiptap/extension-dropcursor/dist/index.js.map +1 -1
  218. package/dist/node_modules/@tiptap/extension-gapcursor/dist/index.js.map +1 -1
  219. package/dist/node_modules/@tiptap/extension-hard-break/dist/index.js.map +1 -1
  220. package/dist/node_modules/@tiptap/extension-heading/dist/index.js.map +1 -1
  221. package/dist/node_modules/@tiptap/extension-history/dist/index.js.map +1 -1
  222. package/dist/node_modules/@tiptap/extension-horizontal-rule/dist/index.js.map +1 -1
  223. package/dist/node_modules/@tiptap/extension-italic/dist/index.js.map +1 -1
  224. package/dist/node_modules/@tiptap/extension-link/dist/index.js.map +1 -1
  225. package/dist/node_modules/@tiptap/extension-list-item/dist/index.js.map +1 -1
  226. package/dist/node_modules/@tiptap/extension-ordered-list/dist/index.js.map +1 -1
  227. package/dist/node_modules/@tiptap/extension-paragraph/dist/index.js.map +1 -1
  228. package/dist/node_modules/@tiptap/extension-strike/dist/index.js.map +1 -1
  229. package/dist/node_modules/@tiptap/extension-text-style/dist/index.js.map +1 -1
  230. package/dist/node_modules/@tiptap/extension-underline/dist/index.js.map +1 -1
  231. package/dist/node_modules/@tiptap/react/dist/index.js.map +1 -1
  232. package/dist/node_modules/@tiptap/starter-kit/dist/index.js.map +1 -1
  233. package/dist/node_modules/aria-hidden/dist/es2015/index.js.map +1 -1
  234. package/dist/node_modules/class-variance-authority/dist/index.js.map +1 -1
  235. package/dist/node_modules/classnames/index.js.map +1 -1
  236. package/dist/node_modules/date-fns/_lib/format/formatters.js.map +1 -1
  237. package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +1 -1
  238. package/dist/node_modules/date-fns/format.js.map +1 -1
  239. package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +1 -1
  240. package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +1 -1
  241. package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +1 -1
  242. package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +1 -1
  243. package/dist/node_modules/date-fns/locale/ru/_lib/formatRelative.js.map +1 -1
  244. package/dist/node_modules/date-fns/max.js.map +1 -1
  245. package/dist/node_modules/date-fns/min.js.map +1 -1
  246. package/dist/node_modules/date-fns/parse/_lib/Parser.js.map +1 -1
  247. package/dist/node_modules/date-fns/parse/_lib/Setter.js.map +1 -1
  248. package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js.map +1 -1
  249. package/dist/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js.map +1 -1
  250. package/dist/node_modules/date-fns/parse/_lib/parsers/DateParser.js.map +1 -1
  251. package/dist/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js.map +1 -1
  252. package/dist/node_modules/date-fns/parse/_lib/parsers/DayParser.js.map +1 -1
  253. package/dist/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js.map +1 -1
  254. package/dist/node_modules/date-fns/parse/_lib/parsers/EraParser.js.map +1 -1
  255. package/dist/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js.map +1 -1
  256. package/dist/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js.map +1 -1
  257. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js.map +1 -1
  258. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js.map +1 -1
  259. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js.map +1 -1
  260. package/dist/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js.map +1 -1
  261. package/dist/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js.map +1 -1
  262. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js.map +1 -1
  263. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js.map +1 -1
  264. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js.map +1 -1
  265. package/dist/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js.map +1 -1
  266. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js.map +1 -1
  267. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js.map +1 -1
  268. package/dist/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js.map +1 -1
  269. package/dist/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js.map +1 -1
  270. package/dist/node_modules/date-fns/parse/_lib/parsers/MonthParser.js.map +1 -1
  271. package/dist/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js.map +1 -1
  272. package/dist/node_modules/date-fns/parse/_lib/parsers/SecondParser.js.map +1 -1
  273. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js.map +1 -1
  274. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js.map +1 -1
  275. package/dist/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js.map +1 -1
  276. package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js.map +1 -1
  277. package/dist/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js.map +1 -1
  278. package/dist/node_modules/date-fns/parse/_lib/parsers/YearParser.js.map +1 -1
  279. package/dist/node_modules/date-fns/parse/_lib/utils.js.map +1 -1
  280. package/dist/node_modules/date-fns/parse.js.map +1 -1
  281. package/dist/node_modules/embla-carousel/esm/embla-carousel.esm.js.map +1 -1
  282. package/dist/node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js.map +1 -1
  283. package/dist/node_modules/embla-carousel-react/esm/embla-carousel-react.esm.js.map +1 -1
  284. package/dist/node_modules/embla-carousel-reactive-utils/esm/embla-carousel-reactive-utils.esm.js.map +1 -1
  285. package/dist/node_modules/file-selector/dist/es2015/file-selector.js.map +1 -1
  286. package/dist/node_modules/file-selector/dist/es2015/file.js.map +1 -1
  287. package/dist/node_modules/framer-motion/dist/es/animation/animators/AcceleratedAnimation.js.map +1 -1
  288. package/dist/node_modules/framer-motion/dist/es/animation/animators/BaseAnimation.js.map +1 -1
  289. package/dist/node_modules/framer-motion/dist/es/animation/animators/MainThreadAnimation.js.map +1 -1
  290. package/dist/node_modules/framer-motion/dist/es/animation/generators/inertia.js.map +1 -1
  291. package/dist/node_modules/framer-motion/dist/es/animation/generators/spring/find.js.map +1 -1
  292. package/dist/node_modules/framer-motion/dist/es/animation/generators/spring/index.js.map +1 -1
  293. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/motion-value.js.map +1 -1
  294. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-target.js.map +1 -1
  295. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element-variant.js.map +1 -1
  296. package/dist/node_modules/framer-motion/dist/es/animation/interfaces/visual-element.js.map +1 -1
  297. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.js.map +1 -1
  298. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.js.map +1 -1
  299. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/index.js.map +1 -1
  300. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.js.map +1 -1
  301. package/dist/node_modules/framer-motion/dist/es/components/AnimatePresence/utils.js.map +1 -1
  302. package/dist/node_modules/framer-motion/dist/es/context/MotionContext/utils.js.map +1 -1
  303. package/dist/node_modules/framer-motion/dist/es/easing/utils/map.js.map +1 -1
  304. package/dist/node_modules/framer-motion/dist/es/frameloop/batcher.js.map +1 -1
  305. package/dist/node_modules/framer-motion/dist/es/frameloop/render-step.js.map +1 -1
  306. package/dist/node_modules/framer-motion/dist/es/frameloop/sync-time.js.map +1 -1
  307. package/dist/node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.js.map +1 -1
  308. package/dist/node_modules/framer-motion/dist/es/gestures/drag/index.js.map +1 -1
  309. package/dist/node_modules/framer-motion/dist/es/gestures/focus.js.map +1 -1
  310. package/dist/node_modules/framer-motion/dist/es/gestures/hover.js.map +1 -1
  311. package/dist/node_modules/framer-motion/dist/es/gestures/pan/PanSession.js.map +1 -1
  312. package/dist/node_modules/framer-motion/dist/es/gestures/pan/index.js.map +1 -1
  313. package/dist/node_modules/framer-motion/dist/es/gestures/press.js.map +1 -1
  314. package/dist/node_modules/framer-motion/dist/es/motion/features/Feature.js.map +1 -1
  315. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/exit.js.map +1 -1
  316. package/dist/node_modules/framer-motion/dist/es/motion/features/animation/index.js.map +1 -1
  317. package/dist/node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.js.map +1 -1
  318. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/index.js.map +1 -1
  319. package/dist/node_modules/framer-motion/dist/es/motion/features/viewport/observers.js.map +1 -1
  320. package/dist/node_modules/framer-motion/dist/es/motion/index.js.map +1 -1
  321. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.js.map +1 -1
  322. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-element.js.map +1 -1
  323. package/dist/node_modules/framer-motion/dist/es/motion/utils/use-visual-state.js.map +1 -1
  324. package/dist/node_modules/framer-motion/dist/es/projection/animation/mix-values.js.map +1 -1
  325. package/dist/node_modules/framer-motion/dist/es/projection/geometry/delta-apply.js.map +1 -1
  326. package/dist/node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.js.map +1 -1
  327. package/dist/node_modules/framer-motion/dist/es/projection/node/create-projection-node.js.map +1 -1
  328. package/dist/node_modules/framer-motion/dist/es/projection/shared/stack.js.map +1 -1
  329. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.js.map +1 -1
  330. package/dist/node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.js.map +1 -1
  331. package/dist/node_modules/framer-motion/dist/es/projection/styles/transform.js.map +1 -1
  332. package/dist/node_modules/framer-motion/dist/es/render/VisualElement.js.map +1 -1
  333. package/dist/node_modules/framer-motion/dist/es/render/components/create-factory.js.map +1 -1
  334. package/dist/node_modules/framer-motion/dist/es/render/dom/DOMKeyframesResolver.js.map +1 -1
  335. package/dist/node_modules/framer-motion/dist/es/render/dom/DOMVisualElement.js.map +1 -1
  336. package/dist/node_modules/framer-motion/dist/es/render/dom/use-render.js.map +1 -1
  337. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.js.map +1 -1
  338. package/dist/node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.js.map +1 -1
  339. package/dist/node_modules/framer-motion/dist/es/render/html/HTMLVisualElement.js.map +1 -1
  340. package/dist/node_modules/framer-motion/dist/es/render/html/use-props.js.map +1 -1
  341. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-styles.js.map +1 -1
  342. package/dist/node_modules/framer-motion/dist/es/render/html/utils/build-transform.js.map +1 -1
  343. package/dist/node_modules/framer-motion/dist/es/render/html/utils/make-none-animatable.js.map +1 -1
  344. package/dist/node_modules/framer-motion/dist/es/render/svg/SVGVisualElement.js.map +1 -1
  345. package/dist/node_modules/framer-motion/dist/es/render/svg/config-motion.js.map +1 -1
  346. package/dist/node_modules/framer-motion/dist/es/render/svg/use-props.js.map +1 -1
  347. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.js.map +1 -1
  348. package/dist/node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.js.map +1 -1
  349. package/dist/node_modules/framer-motion/dist/es/render/utils/KeyframesResolver.js.map +1 -1
  350. package/dist/node_modules/framer-motion/dist/es/render/utils/animation-state.js.map +1 -1
  351. package/dist/node_modules/framer-motion/dist/es/render/utils/flat-tree.js.map +1 -1
  352. package/dist/node_modules/framer-motion/dist/es/render/utils/get-variant-context.js.map +1 -1
  353. package/dist/node_modules/framer-motion/dist/es/render/utils/motion-values.js.map +1 -1
  354. package/dist/node_modules/framer-motion/dist/es/render/utils/resolve-variants.js.map +1 -1
  355. package/dist/node_modules/framer-motion/dist/es/render/utils/setters.js.map +1 -1
  356. package/dist/node_modules/framer-motion/dist/es/utils/delay.js.map +1 -1
  357. package/dist/node_modules/framer-motion/dist/es/utils/hsla-to-rgba.js.map +1 -1
  358. package/dist/node_modules/framer-motion/dist/es/utils/interpolate.js.map +1 -1
  359. package/dist/node_modules/framer-motion/dist/es/utils/mix/complex.js.map +1 -1
  360. package/dist/node_modules/framer-motion/dist/es/utils/offsets/fill.js.map +1 -1
  361. package/dist/node_modules/framer-motion/dist/es/utils/reduced-motion/index.js.map +1 -1
  362. package/dist/node_modules/framer-motion/dist/es/utils/subscription-manager.js.map +1 -1
  363. package/dist/node_modules/framer-motion/dist/es/value/index.js.map +1 -1
  364. package/dist/node_modules/framer-motion/dist/es/value/types/complex/filter.js.map +1 -1
  365. package/dist/node_modules/framer-motion/dist/es/value/types/complex/index.js.map +1 -1
  366. package/dist/node_modules/linkifyjs/dist/linkify.js.map +1 -1
  367. package/dist/node_modules/motion-dom/dist/es/animation/controls/BaseGroup.js.map +1 -1
  368. package/dist/node_modules/motion-dom/dist/es/animation/controls/Group.js.map +1 -1
  369. package/dist/node_modules/motion-dom/dist/es/gestures/drag/state/set-active.js.map +1 -1
  370. package/dist/node_modules/motion-dom/dist/es/gestures/hover.js.map +1 -1
  371. package/dist/node_modules/motion-dom/dist/es/gestures/press/index.js.map +1 -1
  372. package/dist/node_modules/motion-dom/dist/es/gestures/press/utils/keyboard.js.map +1 -1
  373. package/dist/node_modules/motion-dom/dist/es/utils/resolve-elements.js.map +1 -1
  374. package/dist/node_modules/motion-dom/dist/es/utils/supports/linear-easing.js.map +1 -1
  375. package/dist/node_modules/motion-dom/dist/es/utils/supports/memo.js.map +1 -1
  376. package/dist/node_modules/orderedmap/dist/index.js.map +1 -1
  377. package/dist/node_modules/prosemirror-commands/dist/index.js.map +1 -1
  378. package/dist/node_modules/prosemirror-dropcursor/dist/index.js.map +1 -1
  379. package/dist/node_modules/prosemirror-gapcursor/dist/index.js.map +1 -1
  380. package/dist/node_modules/prosemirror-history/dist/index.js.map +1 -1
  381. package/dist/node_modules/prosemirror-keymap/dist/index.js.map +1 -1
  382. package/dist/node_modules/prosemirror-model/dist/index.js.map +1 -1
  383. package/dist/node_modules/prosemirror-schema-list/dist/index.js.map +1 -1
  384. package/dist/node_modules/prosemirror-state/dist/index.js.map +1 -1
  385. package/dist/node_modules/prosemirror-transform/dist/index.js.map +1 -1
  386. package/dist/node_modules/prosemirror-view/dist/index.js.map +1 -1
  387. package/dist/node_modules/rc-slider/es/Handles/Handle.js.map +1 -1
  388. package/dist/node_modules/rc-slider/es/Handles/index.js.map +1 -1
  389. package/dist/node_modules/rc-slider/es/Marks/Mark.js.map +1 -1
  390. package/dist/node_modules/rc-slider/es/Marks/index.js.map +1 -1
  391. package/dist/node_modules/rc-slider/es/Slider.js.map +1 -1
  392. package/dist/node_modules/rc-slider/es/Steps/index.js.map +1 -1
  393. package/dist/node_modules/rc-slider/es/Tracks/Track.js.map +1 -1
  394. package/dist/node_modules/rc-slider/es/Tracks/index.js.map +1 -1
  395. package/dist/node_modules/rc-slider/es/hooks/useDrag.js.map +1 -1
  396. package/dist/node_modules/rc-slider/es/hooks/useOffset.js.map +1 -1
  397. package/dist/node_modules/rc-slider/es/hooks/useRange.js.map +1 -1
  398. package/dist/node_modules/rc-util/es/hooks/useEvent.js.map +1 -1
  399. package/dist/node_modules/rc-util/es/hooks/useLayoutEffect.js.map +1 -1
  400. package/dist/node_modules/rc-util/es/hooks/useMergedState.js.map +1 -1
  401. package/dist/node_modules/rc-util/es/hooks/useState.js.map +1 -1
  402. package/dist/node_modules/rc-util/es/isEqual.js.map +1 -1
  403. package/dist/node_modules/react-day-picker/dist/esm/DayPicker.js +1 -1
  404. package/dist/node_modules/react-day-picker/dist/esm/DayPicker.js.map +1 -1
  405. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarDay.js.map +1 -1
  406. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarMonth.js.map +1 -1
  407. package/dist/node_modules/react-day-picker/dist/esm/classes/CalendarWeek.js.map +1 -1
  408. package/dist/node_modules/react-day-picker/dist/esm/classes/DateLib.js.map +1 -1
  409. package/dist/node_modules/react-day-picker/dist/esm/components/DayButton.js.map +1 -1
  410. package/dist/node_modules/react-day-picker/dist/esm/components/Nav.js.map +1 -1
  411. package/dist/node_modules/react-day-picker/dist/esm/helpers/calculateFocusTarget.js.map +1 -1
  412. package/dist/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js +1 -1
  413. package/dist/node_modules/react-day-picker/dist/esm/helpers/createGetModifiers.js.map +1 -1
  414. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDataAttributes.js.map +1 -1
  415. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDates.js.map +1 -1
  416. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDays.js.map +1 -1
  417. package/dist/node_modules/react-day-picker/dist/esm/helpers/getDisplayMonths.js.map +1 -1
  418. package/dist/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js +1 -1
  419. package/dist/node_modules/react-day-picker/dist/esm/helpers/getInitialMonth.js.map +1 -1
  420. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonthOptions.js.map +1 -1
  421. package/dist/node_modules/react-day-picker/dist/esm/helpers/getMonths.js.map +1 -1
  422. package/dist/node_modules/react-day-picker/dist/esm/helpers/getStyleForModifiers.js.map +1 -1
  423. package/dist/node_modules/react-day-picker/dist/esm/helpers/getWeekdays.js.map +1 -1
  424. package/dist/node_modules/react-day-picker/dist/esm/helpers/getYearOptions.js.map +1 -1
  425. package/dist/node_modules/react-day-picker/dist/esm/selection/useMulti.js.map +1 -1
  426. package/dist/node_modules/react-day-picker/dist/esm/selection/useRange.js.map +1 -1
  427. package/dist/node_modules/react-day-picker/dist/esm/selection/useSingle.js.map +1 -1
  428. package/dist/node_modules/react-day-picker/dist/esm/useAnimation.js.map +1 -1
  429. package/dist/node_modules/react-day-picker/dist/esm/useCalendar.js +1 -1
  430. package/dist/node_modules/react-day-picker/dist/esm/useCalendar.js.map +1 -1
  431. package/dist/node_modules/react-day-picker/dist/esm/useFocus.js.map +1 -1
  432. package/dist/node_modules/react-day-picker/dist/esm/utils/addToRange.js.map +1 -1
  433. package/dist/node_modules/react-day-picker/dist/esm/utils/dateMatchModifiers.js.map +1 -1
  434. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsDayOfWeek.js.map +1 -1
  435. package/dist/node_modules/react-day-picker/dist/esm/utils/rangeContainsModifiers.js.map +1 -1
  436. package/dist/node_modules/react-dropzone/dist/es/index.js.map +1 -1
  437. package/dist/node_modules/react-dropzone/dist/es/utils/index.js.map +1 -1
  438. package/dist/node_modules/react-hook-form/dist/index.esm.js +1 -1
  439. package/dist/node_modules/react-hook-form/dist/index.esm.js.map +1 -1
  440. package/dist/node_modules/react-number-format/dist/react-number-format.es.js.map +1 -1
  441. package/dist/node_modules/react-remove-scroll/dist/es2015/Combination.js.map +1 -1
  442. package/dist/node_modules/react-remove-scroll/dist/es2015/SideEffect.js.map +1 -1
  443. package/dist/node_modules/react-remove-scroll/dist/es2015/aggresiveCapture.js.map +1 -1
  444. package/dist/node_modules/react-remove-scroll/dist/es2015/handleScroll.js.map +1 -1
  445. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/component.js.map +1 -1
  446. package/dist/node_modules/react-remove-scroll-bar/dist/es2015/utils.js.map +1 -1
  447. package/dist/node_modules/react-style-singleton/dist/es2015/component.js.map +1 -1
  448. package/dist/node_modules/react-style-singleton/dist/es2015/hook.js.map +1 -1
  449. package/dist/node_modules/react-style-singleton/dist/es2015/singleton.js.map +1 -1
  450. package/dist/node_modules/rope-sequence/dist/index.js.map +1 -1
  451. package/dist/node_modules/tailwindcss/lib/public/create-plugin.js.map +1 -1
  452. package/dist/node_modules/tailwindcss/lib/util/createPlugin.js.map +1 -1
  453. package/dist/node_modules/tslib/tslib.es6.js.map +1 -1
  454. package/dist/node_modules/use-callback-ref/dist/es2015/useMergeRef.js.map +1 -1
  455. package/dist/node_modules/use-callback-ref/dist/es2015/useRef.js.map +1 -1
  456. package/dist/node_modules/use-sidecar/dist/es2015/medium.js.map +1 -1
  457. package/dist/node_modules/uuid/dist/esm-browser/rng.js.map +1 -1
  458. package/dist/node_modules/zod/v3/ZodError.js.map +1 -1
  459. package/dist/node_modules/zod/v3/helpers/parseUtil.js.map +1 -1
  460. package/dist/node_modules/zod/v3/helpers/util.js.map +1 -1
  461. package/dist/node_modules/zod/v3/types.js.map +1 -1
  462. package/dist/src/shared/utils/getDynamicSchema.js.map +1 -1
  463. package/dist/stats.html +1 -1
  464. package/dist/types/lib/shared/ui/formElements/controlled/dadata/address/DadataAddress.d.ts +2 -2
  465. package/dist/types/lib/shared/ui/formElements/controlled/dadata/auto/DadataAuto.d.ts +2 -2
  466. package/dist/types/lib/shared/ui/formElements/controlled/dadata/country/DadataCountry.d.ts +2 -2
  467. package/dist/types/lib/shared/ui/formElements/controlled/dadata/fio/DadataFio.d.ts +2 -2
  468. package/dist/types/lib/shared/ui/formElements/controlled/dadata/party/DadataOrganization.d.ts +2 -2
  469. package/dist/types/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.d.ts +3 -2
  470. package/dist/types/lib/shared/ui/formElements/uncontrolled/autocomplete/index.d.ts +1 -0
  471. package/dist/types/lib/shared/ui/formElements/uncontrolled/autocomplete/types.d.ts +4 -0
  472. package/dist/types/lib/shared/ui/formElements/uncontrolled/index.d.ts +1 -1
  473. package/dist/types/lib/widgets/breadcrumbs/Breadcrumb.d.ts +3 -2
  474. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DayPicker.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/dayPicker/DayPicker.tsx"],"sourcesContent":["import { forwardRef, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { format, isValid, parse } from 'date-fns'\nimport { AnimatePresence } from 'framer-motion'\nimport { type InputBaseClasses } from '../input/Input'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type DayPickerClasses = {\n root?: string\n input?: InputBaseClasses\n}\n\nexport type DayPickerProps = Omit<MaskInputProps, 'value' | 'onChange' | 'mask' | 'classes'> & {\n /**\n * Указывает, открыт ли календарь по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Значение поля\n */\n value?: string\n /**\n * Функция изменения значения\n */\n onChange?: (value: string) => void\n /**\n * Внешние классы которыми можно поменять стили\n */\n classes?: DayPickerClasses\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const DayPickerBase = forwardRef<HTMLInputElement, DayPickerProps>(\n ({ defaultOpen = false, value, onChange, disabled, externalHandlers, classes, ...props }, ref) => {\n const { onChange: externalOnChange, onFocus: externalOnFocus, ...restHandlers } = externalHandlers || {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(defaultOpen)\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const [month, setMonth] = useState<Date>(new Date())\n const [visibleValue, setVisibleValue] = useState<string>(format(new Date(), DATE_VISIBLE_PATTERN))\n\n useClickOutside(containerRef, () => setCalendarOpen(false))\n\n const date = value ? new Date(value) : new Date()\n\n const onValueChange = (value: string) => {\n setVisibleValue(value)\n\n const dateRegex = /^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/\n\n if (!dateRegex.test(value)) {\n return\n }\n\n const parsedDate = parse(value, DATE_VISIBLE_PATTERN, new Date())\n\n if (isValid(parsedDate)) {\n const isoDate = parsedDate.toISOString()\n\n if (onChange) onChange(isoDate)\n if (externalOnChange) externalOnChange(isoDate)\n setMonth(parsedDate)\n }\n }\n\n const onDateChange = (date: Date) => {\n setMonth(date)\n\n const isoDate = date.toISOString()\n\n if (onChange) onChange(isoDate)\n if (externalOnChange) externalOnChange(isoDate)\n\n setVisibleValue(format(date, DATE_VISIBLE_PATTERN))\n setCalendarOpen(false)\n }\n\n const { root, input } = classes || {}\n\n return (\n <div ref={containerRef} className={cn('relative w-full', root)}>\n <AnimatePresence mode='sync'>\n <MaskInput\n ref={ref}\n {...props}\n {...restHandlers}\n disabled={disabled}\n mask='##.##.####'\n classes={input}\n value={visibleValue}\n onChange={(event) => onValueChange(event.target.value)}\n autoComplete='off'\n onFocus={(event) => {\n setCalendarOpen(true)\n if (externalOnFocus) externalOnFocus(event)\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n onCalendarOpenChange()\n }\n }}\n attachmentProps={{\n ...props.attachmentProps,\n icon: (\n <Icon name='general/calendar' className={cn('text-icon-blue-grey-600', { 'text-icon-disabled': disabled })} />\n ),\n onClickIcon: onCalendarOpenChange,\n disabled\n }}\n />\n {calendarOpen &&\n createPortal(\n <Calendar\n required\n mode='single'\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n className='absolute right-0 top-full'\n />,\n document.body\n )}\n </AnimatePresence>\n </div>\n )\n }\n)\nDayPickerBase.displayName = 'DayPickerBase'\n"],"names":["DayPickerBase","forwardRef","defaultOpen","value","onChange","disabled","externalHandlers","classes","props","ref","externalOnChange","externalOnFocus","restHandlers","containerRef","useRef","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","month","setMonth","visibleValue","setVisibleValue","format","DATE_VISIBLE_PATTERN","useClickOutside","date","onValueChange","parsedDate","parse","isValid","isoDate","onDateChange","root","input","jsx","cn","jsxs","AnimatePresence","MaskInput","event","Icon","createPortal","Calendar"],"mappings":"stDA4CO,MAAMA,EAAgBC,EAC3B,CAAC,CAAE,YAAAC,EAAc,GAAO,MAAAC,EAAO,SAAAC,EAAU,SAAAC,EAAU,iBAAAC,EAAkB,QAAAC,EAAS,GAAGC,CAAA,EAASC,IAAQ,CAChG,KAAM,CAAE,SAAUC,EAAkB,QAASC,EAAiB,GAAGC,CAAA,EAAiBN,GAAoB,CAAA,EAEhGO,EAAeC,EAAuB,IAAI,EAE1C,CAACC,EAAcC,CAAe,EAAIC,EAAkBf,CAAW,EAC/DgB,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CAAA,EAG3B,CAACC,EAAOC,CAAQ,EAAIJ,EAAe,IAAI,IAAM,EAC7C,CAACK,EAAcC,CAAe,EAAIN,EAAiBO,EAAO,IAAI,KAAQC,CAAoB,CAAC,EAEjGC,EAAgBb,EAAc,IAAMG,EAAgB,EAAK,CAAC,EAE1D,MAAMW,EAAOxB,EAAQ,IAAI,KAAKA,CAAK,MAAQ,KAErCyB,EAAiBzB,GAAkB,CAKvC,GAJAoB,EAAgBpB,CAAK,EAIjB,CAFc,8BAEH,KAAKA,CAAK,EACvB,OAGF,MAAM0B,EAAaC,EAAM3B,EAAOsB,EAAsB,IAAI,IAAM,EAEhE,GAAIM,EAAQF,CAAU,EAAG,CACvB,MAAMG,EAAUH,EAAW,YAAA,EAEvBzB,KAAmB4B,CAAO,EAC1BtB,KAAmCsB,CAAO,EAC9CX,EAASQ,CAAU,CAAA,CACrB,EAGII,EAAgBN,GAAe,CACnCN,EAASM,CAAI,EAEb,MAAMK,EAAUL,EAAK,YAAA,EAEjBvB,KAAmB4B,CAAO,EAC1BtB,KAAmCsB,CAAO,EAE9CT,EAAgBC,EAAOG,EAAMF,CAAoB,CAAC,EAClDT,EAAgB,EAAK,CAAA,EAGjB,CAAE,KAAAkB,EAAM,MAAAC,CAAA,EAAU5B,GAAW,CAAA,EAEnC,OACE6B,EAAC,MAAA,CAAI,IAAKvB,EAAc,UAAWwB,EAAG,kBAAmBH,CAAI,EAC3D,SAAAI,EAACC,EAAA,CAAgB,KAAK,OACpB,SAAA,CAAAH,EAACI,EAAA,CACC,IAAA/B,EACC,GAAGD,EACH,GAAGI,EACJ,SAAAP,EACA,KAAK,aACL,QAAS8B,EACT,MAAOb,EACP,SAAWmB,GAAUb,EAAca,EAAM,OAAO,KAAK,EACrD,aAAa,MACb,QAAUA,GAAU,CAClBzB,EAAgB,EAAI,EAChBL,KAAiC8B,CAAK,CAAA,EAE5C,UAAYA,GAAU,EAChBA,EAAM,MAAQ,SAAWA,EAAM,MAAQ,MACzCvB,EAAA,CACF,EAEF,gBAAiB,CACf,GAAGV,EAAM,gBACT,KACE4B,EAACM,EAAA,CAAK,KAAK,mBAAmB,UAAWL,EAAG,0BAA2B,CAAE,qBAAsBhC,CAAA,CAAU,CAAA,CAAG,EAE9G,YAAaa,EACb,SAAAb,CAAA,CACF,CAAA,EAEDU,GACC4B,EACEP,EAACQ,EAAA,CACC,SAAQ,GACR,KAAK,SACL,MAAAxB,EACA,cAAeC,EACf,SAAUM,EACV,SAAUM,EACV,UAAU,2BAAA,CAAA,EAEZ,SAAS,IAAA,CACX,CAAA,CACJ,CAAA,CACF,CAAA,CAGN,EACAjC,EAAc,YAAc"}
1
+ {"version":3,"file":"DayPicker.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/dayPicker/DayPicker.tsx"],"sourcesContent":["import { forwardRef, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { format, isValid, parse } from 'date-fns'\nimport { AnimatePresence } from 'framer-motion'\nimport { type InputBaseClasses } from '../input/Input'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type DayPickerClasses = {\n root?: string\n input?: InputBaseClasses\n}\n\nexport type DayPickerProps = Omit<MaskInputProps, 'value' | 'onChange' | 'mask' | 'classes'> & {\n /**\n * Указывает, открыт ли календарь по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Значение поля\n */\n value?: string\n /**\n * Функция изменения значения\n */\n onChange?: (value: string) => void\n /**\n * Внешние классы которыми можно поменять стили\n */\n classes?: DayPickerClasses\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const DayPickerBase = forwardRef<HTMLInputElement, DayPickerProps>(\n ({ defaultOpen = false, value, onChange, disabled, externalHandlers, classes, ...props }, ref) => {\n const { onChange: externalOnChange, onFocus: externalOnFocus, ...restHandlers } = externalHandlers || {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(defaultOpen)\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const [month, setMonth] = useState<Date>(new Date())\n const [visibleValue, setVisibleValue] = useState<string>(format(new Date(), DATE_VISIBLE_PATTERN))\n\n useClickOutside(containerRef, () => setCalendarOpen(false))\n\n const date = value ? new Date(value) : new Date()\n\n const onValueChange = (value: string) => {\n setVisibleValue(value)\n\n const dateRegex = /^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/\n\n if (!dateRegex.test(value)) {\n return\n }\n\n const parsedDate = parse(value, DATE_VISIBLE_PATTERN, new Date())\n\n if (isValid(parsedDate)) {\n const isoDate = parsedDate.toISOString()\n\n if (onChange) onChange(isoDate)\n if (externalOnChange) externalOnChange(isoDate)\n setMonth(parsedDate)\n }\n }\n\n const onDateChange = (date: Date) => {\n setMonth(date)\n\n const isoDate = date.toISOString()\n\n if (onChange) onChange(isoDate)\n if (externalOnChange) externalOnChange(isoDate)\n\n setVisibleValue(format(date, DATE_VISIBLE_PATTERN))\n setCalendarOpen(false)\n }\n\n const { root, input } = classes || {}\n\n return (\n <div ref={containerRef} className={cn('relative w-full', root)}>\n <AnimatePresence mode='sync'>\n <MaskInput\n ref={ref}\n {...props}\n {...restHandlers}\n disabled={disabled}\n mask='##.##.####'\n classes={input}\n value={visibleValue}\n onChange={(event) => onValueChange(event.target.value)}\n autoComplete='off'\n onFocus={(event) => {\n setCalendarOpen(true)\n if (externalOnFocus) externalOnFocus(event)\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n onCalendarOpenChange()\n }\n }}\n attachmentProps={{\n ...props.attachmentProps,\n icon: (\n <Icon name='general/calendar' className={cn('text-icon-blue-grey-600', { 'text-icon-disabled': disabled })} />\n ),\n onClickIcon: onCalendarOpenChange,\n disabled\n }}\n />\n {calendarOpen &&\n createPortal(\n <Calendar\n required\n mode='single'\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n className='absolute right-0 top-full'\n />,\n document.body\n )}\n </AnimatePresence>\n </div>\n )\n }\n)\nDayPickerBase.displayName = 'DayPickerBase'\n"],"names":["DayPickerBase","forwardRef","defaultOpen","value","onChange","disabled","externalHandlers","classes","props","ref","externalOnChange","externalOnFocus","restHandlers","containerRef","useRef","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","month","setMonth","visibleValue","setVisibleValue","format","DATE_VISIBLE_PATTERN","useClickOutside","date","onValueChange","parsedDate","parse","isValid","isoDate","onDateChange","root","input","jsx","cn","jsxs","AnimatePresence","MaskInput","event","Icon","createPortal","Calendar"],"mappings":"stDA4CO,MAAMA,EAAgBC,EAC3B,CAAC,CAAE,YAAAC,EAAc,GAAO,MAAAC,EAAO,SAAAC,EAAU,SAAAC,EAAU,iBAAAC,EAAkB,QAAAC,EAAS,GAAGC,CAAA,EAASC,IAAQ,CAChG,KAAM,CAAE,SAAUC,EAAkB,QAASC,EAAiB,GAAGC,CAAA,EAAiBN,GAAoB,CAAA,EAEhGO,EAAeC,EAAuB,IAAI,EAE1C,CAACC,EAAcC,CAAe,EAAIC,EAAkBf,CAAW,EAC/DgB,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CACjC,EAEM,CAACC,EAAOC,CAAQ,EAAIJ,EAAe,IAAI,IAAM,EAC7C,CAACK,EAAcC,CAAe,EAAIN,EAAiBO,EAAO,IAAI,KAAQC,CAAoB,CAAC,EAEjGC,EAAgBb,EAAc,IAAMG,EAAgB,EAAK,CAAC,EAE1D,MAAMW,EAAOxB,EAAQ,IAAI,KAAKA,CAAK,MAAQ,KAErCyB,EAAiBzB,GAAkB,CAKvC,GAJAoB,EAAgBpB,CAAK,EAIjB,CAFc,8BAEH,KAAKA,CAAK,EACvB,OAGF,MAAM0B,EAAaC,EAAM3B,EAAOsB,EAAsB,IAAI,IAAM,EAEhE,GAAIM,EAAQF,CAAU,EAAG,CACvB,MAAMG,EAAUH,EAAW,YAAA,EAEvBzB,KAAmB4B,CAAO,EAC1BtB,KAAmCsB,CAAO,EAC9CX,EAASQ,CAAU,CACrB,CACF,EAEMI,EAAgBN,GAAe,CACnCN,EAASM,CAAI,EAEb,MAAMK,EAAUL,EAAK,YAAA,EAEjBvB,KAAmB4B,CAAO,EAC1BtB,KAAmCsB,CAAO,EAE9CT,EAAgBC,EAAOG,EAAMF,CAAoB,CAAC,EAClDT,EAAgB,EAAK,CACvB,EAEM,CAAE,KAAAkB,EAAM,MAAAC,CAAA,EAAU5B,GAAW,CAAA,EAEnC,OACE6B,EAAC,MAAA,CAAI,IAAKvB,EAAc,UAAWwB,EAAG,kBAAmBH,CAAI,EAC3D,SAAAI,EAACC,EAAA,CAAgB,KAAK,OACpB,SAAA,CAAAH,EAACI,EAAA,CACC,IAAA/B,EACC,GAAGD,EACH,GAAGI,EACJ,SAAAP,EACA,KAAK,aACL,QAAS8B,EACT,MAAOb,EACP,SAAWmB,GAAUb,EAAca,EAAM,OAAO,KAAK,EACrD,aAAa,MACb,QAAUA,GAAU,CAClBzB,EAAgB,EAAI,EAChBL,KAAiC8B,CAAK,CAC5C,EACA,UAAYA,GAAU,EAChBA,EAAM,MAAQ,SAAWA,EAAM,MAAQ,MACzCvB,EAAA,CAEJ,EACA,gBAAiB,CACf,GAAGV,EAAM,gBACT,KACE4B,EAACM,EAAA,CAAK,KAAK,mBAAmB,UAAWL,EAAG,0BAA2B,CAAE,qBAAsBhC,CAAA,CAAU,CAAA,CAAG,EAE9G,YAAaa,EACb,SAAAb,CAAA,CACF,CAAA,EAEDU,GACC4B,EACEP,EAACQ,EAAA,CACC,SAAQ,GACR,KAAK,SACL,MAAAxB,EACA,cAAeC,EACf,SAAUM,EACV,SAAUM,EACV,UAAU,2BAAA,CAAA,EAEZ,SAAS,IAAA,CACX,CAAA,CACJ,CAAA,CACF,CAEJ,CACF,EACAjC,EAAc,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../../lib/shared/ui/formElements/uncontrolled/index.ts"],"sourcesContent":["import { InputBase } from './input'\nexport type { InputBaseProps } from './input'\nimport { MaskInput } from './maskInput'\nexport type { MaskInputProps } from './maskInput'\nimport { SelectBase } from './select'\nexport type { SelectBaseProps, SelectItemOption } from './select'\nimport { CheckboxBase } from './checkbox'\nexport type { CheckboxBaseProps, CheckedState } from './checkbox'\nimport { DayPickerBase } from './dayPicker'\nexport type { DayPickerProps } from './dayPicker'\nimport { SwitchBase } from './switch'\nexport type { SwitchBaseProps } from './switch'\nimport { AutocompleteBase } from './autocomplete'\nimport { SliderBase } from './slider'\nexport type { AutocompleteBaseProps } from './autocomplete'\nimport { RadioGroupBase } from './radio'\nexport type { RadioGroupBaseProps, RadioOption } from './radio'\nimport { TextareaBase } from './textarea'\nimport { UploaderBase } from './uploader'\nexport type { TextareaBaseProps } from './textarea'\nexport { isSingleOption } from './select'\nimport { InputOtpBase } from './inputOtp'\nexport type { InputOtpBaseProps } from './inputOtp'\nimport { Combobox } from './combobox'\nexport type { ComboboxProps, ComboboxItemOption } from './combobox'\n\n/**\n * @example\n * ```ts\n * It's ok\n * import { InputBase } from '@scbt-ecom/ui'\n *\n * Not ok (tree shaking doesn't work)\n * import { Uncontrolled } from '@scbt-ecom/ui'\n * ```\n * @deprecated use Select instead\n */\nexport const Uncontrolled = {\n InputBase,\n SliderBase,\n AutocompleteBase,\n MaskInput,\n SelectBase,\n CheckboxBase,\n DayPickerBase,\n SwitchBase,\n RadioGroupBase,\n TextareaBase,\n InputOtpBase,\n UploaderBase,\n Combobox\n}\n"],"names":["Uncontrolled","InputBase","SliderBase","AutocompleteBase","MaskInput","SelectBase","CheckboxBase","DayPickerBase","SwitchBase","RadioGroupBase","TextareaBase","InputOtpBase","UploaderBase","Combobox"],"mappings":"u1BAqCO,MAAMA,EAAe,CAC1B,UAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,UAAAC,EACA,WAAAC,EACA,aAAAC,EACA,cAAAC,EACA,WAAAC,EACA,eAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,SAAAC,CACF"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../../lib/shared/ui/formElements/uncontrolled/index.ts"],"sourcesContent":["import { InputBase } from './input'\nexport type { InputBaseProps } from './input'\nimport { MaskInput } from './maskInput'\nexport type { MaskInputProps } from './maskInput'\nimport { SelectBase } from './select'\nexport type { SelectBaseProps, SelectItemOption } from './select'\nimport { CheckboxBase } from './checkbox'\nexport type { CheckboxBaseProps, CheckedState } from './checkbox'\nimport { DayPickerBase } from './dayPicker'\nexport type { DayPickerProps } from './dayPicker'\nimport { SwitchBase } from './switch'\nexport type { SwitchBaseProps } from './switch'\nimport { AutocompleteBase } from './autocomplete'\nimport { SliderBase } from './slider'\nexport type { AutocompleteBaseProps, AutocompleteItemOption } from './autocomplete'\nimport { RadioGroupBase } from './radio'\nexport type { RadioGroupBaseProps, RadioOption } from './radio'\nimport { TextareaBase } from './textarea'\nimport { UploaderBase } from './uploader'\nexport type { TextareaBaseProps } from './textarea'\nexport { isSingleOption } from './select'\nimport { InputOtpBase } from './inputOtp'\nexport type { InputOtpBaseProps } from './inputOtp'\nimport { Combobox } from './combobox'\nexport type { ComboboxProps, ComboboxItemOption } from './combobox'\n\n/**\n * @example\n * ```ts\n * It's ok\n * import { InputBase } from '@scbt-ecom/ui'\n *\n * Not ok (tree shaking doesn't work)\n * import { Uncontrolled } from '@scbt-ecom/ui'\n * ```\n * @deprecated use Select instead\n */\nexport const Uncontrolled = {\n InputBase,\n SliderBase,\n AutocompleteBase,\n MaskInput,\n SelectBase,\n CheckboxBase,\n DayPickerBase,\n SwitchBase,\n RadioGroupBase,\n TextareaBase,\n InputOtpBase,\n UploaderBase,\n Combobox\n}\n"],"names":["Uncontrolled","InputBase","SliderBase","AutocompleteBase","MaskInput","SelectBase","CheckboxBase","DayPickerBase","SwitchBase","RadioGroupBase","TextareaBase","InputOtpBase","UploaderBase","Combobox"],"mappings":"u1BAqCO,MAAMA,EAAe,CAC1B,UAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,UAAAC,EACA,WAAAC,EACA,aAAAC,EACA,cAAAC,EACA,WAAAC,EACA,eAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,SAAAC,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Input.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/input/Input.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\nimport { FieldAttachment } from '../../ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\nexport type InputBaseClasses = {\n container?: string\n input?: string\n label?: string\n renderWrapper?: string\n}\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type InputBaseProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'placeholder' | 'size'> & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: InputBaseClasses\n /**\n * Отображаемый placeholder\n */\n label: string\n /**\n * Отображение не валидного поля\n */\n invalid?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Рендер дополнительных значений вместо базового ввода\n */\n renderValues?: () => React.JSX.Element | null\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const InputBase = forwardRef<HTMLInputElement, InputBaseProps>(\n ({ label, value, invalid, disabled, classes, renderValues, attachmentProps, externalHandlers, onChange, ...props }, ref) => {\n const id = useId()\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) onChange(event)\n if (externalOnChange) externalOnChange(event)\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full gap-x-4 rounded-sm bg-color-blue-grey-100',\n '[&_label]:focus-within:top-[9px] [&_label]:focus-within:translate-y-0',\n '[&_label]:focus-within:desk-body-regular-s',\n '[&_label]:focus-within:text-color-tetriary',\n 'hover:bg-color-blue-grey-200',\n 'border-[1px] border-transparent focus-within:border-blue-grey-800',\n {\n 'border-secondary-default': invalid\n },\n classes?.container\n )}\n data-test-id='input-root'\n >\n {renderValues ? (\n <div\n onClick={props.onClick}\n onBlur={props.onBlur}\n className={cn(\n 'peer desk-body-regular-l min-h-[54px] w-full bg-color-transparent [&_input]:px-4 [&_input]:pb-[6px] [&_input]:pt-[28px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n 'flex flex-row flex-wrap gap-2',\n classes?.renderWrapper\n )}\n >\n {renderValues()}\n </div>\n ) : (\n <input\n {...props}\n {...restHandlers}\n onChange={onValueChange}\n disabled={disabled}\n value={value ?? ''}\n placeholder={label}\n aria-placeholder={label}\n aria-invalid={invalid}\n ref={ref}\n id={id}\n className={cn(\n 'peer desk-body-regular-l w-full bg-color-transparent px-4 pb-[9px] pt-[25px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n {\n hidden: Boolean(renderValues)\n },\n classes?.input\n )}\n />\n )}\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-l pointer-events-none absolute left-4 w-[80%] truncate text-start',\n 'top-1/2 -translate-y-1/2 text-color-blue-grey-600 duration-100',\n {\n 'desk-body-regular-s top-[9px] translate-y-0 text-color-tetriary': Boolean(value),\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n {attachmentProps && <FieldAttachment {...attachmentProps} />}\n </div>\n )\n }\n)\nInputBase.displayName = 'InputBase'\n"],"names":["InputBase","forwardRef","label","value","invalid","disabled","classes","renderValues","attachmentProps","externalHandlers","onChange","props","ref","id","useId","externalOnChange","restHandlers","onValueChange","event","jsxs","cn","jsx","FieldAttachment"],"mappings":"2NAgDO,MAAMA,EAAYC,EACvB,CAAC,CAAE,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,aAAAC,EAAc,gBAAAC,EAAiB,iBAAAC,EAAkB,SAAAC,EAAU,GAAGC,CAAA,EAASC,IAAQ,CAC1H,MAAMC,EAAKC,EAAA,EAEL,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBP,GAAoB,CAAA,EAEtEQ,EAAiBC,GAA+C,CAChER,KAAmBQ,CAAK,EACxBH,KAAmCG,CAAK,CAAA,EAG9C,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,iEACA,wEACA,6CACA,6CACA,+BACA,oEACA,CACE,2BAA4BhB,CAAA,EAE9BE,GAAA,YAAAA,EAAS,SAAA,EAEX,eAAa,aAEZ,SAAA,CAAAC,EACCc,EAAC,MAAA,CACC,QAASV,EAAM,QACf,OAAQA,EAAM,OACd,UAAWS,EACT,0HACA,kEACA,gCACAd,GAAA,YAAAA,EAAS,aAAA,EAGV,SAAAC,EAAA,CAAa,CAAA,EAGhBc,EAAC,QAAA,CACE,GAAGV,EACH,GAAGK,EACJ,SAAUC,EACV,SAAAZ,EACA,MAAOF,GAAS,GAChB,YAAaD,EACb,mBAAkBA,EAClB,eAAcE,EACd,IAAAQ,EACA,GAAAC,EACA,UAAWO,EACT,+EACA,kEACA,CACE,OAAQ,EAAQb,CAAY,EAE9BD,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,EAGJe,EAAC,QAAA,CACC,QAASR,EACT,UAAWO,EACT,sFACA,iEACA,CACE,kEAAmE,EAAQjB,EAC3E,sBAAuBE,CAAA,EAEzBC,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAJ,CAAA,CAAA,EAEFM,GAAmBa,EAACC,EAAA,CAAiB,GAAGd,CAAA,CAAiB,CAAA,CAAA,CAAA,CAC5D,CAGN,EACAR,EAAU,YAAc"}
1
+ {"version":3,"file":"Input.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/input/Input.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\nimport { FieldAttachment } from '../../ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\nexport type InputBaseClasses = {\n container?: string\n input?: string\n label?: string\n renderWrapper?: string\n}\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type InputBaseProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'placeholder' | 'size'> & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: InputBaseClasses\n /**\n * Отображаемый placeholder\n */\n label: string\n /**\n * Отображение не валидного поля\n */\n invalid?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Рендер дополнительных значений вместо базового ввода\n */\n renderValues?: () => React.JSX.Element | null\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const InputBase = forwardRef<HTMLInputElement, InputBaseProps>(\n ({ label, value, invalid, disabled, classes, renderValues, attachmentProps, externalHandlers, onChange, ...props }, ref) => {\n const id = useId()\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) onChange(event)\n if (externalOnChange) externalOnChange(event)\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full gap-x-4 rounded-sm bg-color-blue-grey-100',\n '[&_label]:focus-within:top-[9px] [&_label]:focus-within:translate-y-0',\n '[&_label]:focus-within:desk-body-regular-s',\n '[&_label]:focus-within:text-color-tetriary',\n 'hover:bg-color-blue-grey-200',\n 'border-[1px] border-transparent focus-within:border-blue-grey-800',\n {\n 'border-secondary-default': invalid\n },\n classes?.container\n )}\n data-test-id='input-root'\n >\n {renderValues ? (\n <div\n onClick={props.onClick}\n onBlur={props.onBlur}\n className={cn(\n 'peer desk-body-regular-l min-h-[54px] w-full bg-color-transparent [&_input]:px-4 [&_input]:pb-[6px] [&_input]:pt-[28px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n 'flex flex-row flex-wrap gap-2',\n classes?.renderWrapper\n )}\n >\n {renderValues()}\n </div>\n ) : (\n <input\n {...props}\n {...restHandlers}\n onChange={onValueChange}\n disabled={disabled}\n value={value ?? ''}\n placeholder={label}\n aria-placeholder={label}\n aria-invalid={invalid}\n ref={ref}\n id={id}\n className={cn(\n 'peer desk-body-regular-l w-full bg-color-transparent px-4 pb-[9px] pt-[25px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n {\n hidden: Boolean(renderValues)\n },\n classes?.input\n )}\n />\n )}\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-l pointer-events-none absolute left-4 w-[80%] truncate text-start',\n 'top-1/2 -translate-y-1/2 text-color-blue-grey-600 duration-100',\n {\n 'desk-body-regular-s top-[9px] translate-y-0 text-color-tetriary': Boolean(value),\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n {attachmentProps && <FieldAttachment {...attachmentProps} />}\n </div>\n )\n }\n)\nInputBase.displayName = 'InputBase'\n"],"names":["InputBase","forwardRef","label","value","invalid","disabled","classes","renderValues","attachmentProps","externalHandlers","onChange","props","ref","id","useId","externalOnChange","restHandlers","onValueChange","event","jsxs","cn","jsx","FieldAttachment"],"mappings":"2NAgDO,MAAMA,EAAYC,EACvB,CAAC,CAAE,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,aAAAC,EAAc,gBAAAC,EAAiB,iBAAAC,EAAkB,SAAAC,EAAU,GAAGC,CAAA,EAASC,IAAQ,CAC1H,MAAMC,EAAKC,EAAA,EAEL,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBP,GAAoB,CAAA,EAEtEQ,EAAiBC,GAA+C,CAChER,KAAmBQ,CAAK,EACxBH,KAAmCG,CAAK,CAC9C,EAEA,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,iEACA,wEACA,6CACA,6CACA,+BACA,oEACA,CACE,2BAA4BhB,CAAA,EAE9BE,GAAA,YAAAA,EAAS,SAAA,EAEX,eAAa,aAEZ,SAAA,CAAAC,EACCc,EAAC,MAAA,CACC,QAASV,EAAM,QACf,OAAQA,EAAM,OACd,UAAWS,EACT,0HACA,kEACA,gCACAd,GAAA,YAAAA,EAAS,aAAA,EAGV,SAAAC,EAAA,CAAa,CAAA,EAGhBc,EAAC,QAAA,CACE,GAAGV,EACH,GAAGK,EACJ,SAAUC,EACV,SAAAZ,EACA,MAAOF,GAAS,GAChB,YAAaD,EACb,mBAAkBA,EAClB,eAAcE,EACd,IAAAQ,EACA,GAAAC,EACA,UAAWO,EACT,+EACA,kEACA,CACE,OAAQ,EAAQb,CAAY,EAE9BD,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,EAGJe,EAAC,QAAA,CACC,QAASR,EACT,UAAWO,EACT,sFACA,iEACA,CACE,kEAAmE,EAAQjB,EAC3E,sBAAuBE,CAAA,EAEzBC,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAJ,CAAA,CAAA,EAEFM,GAAmBa,EAACC,EAAA,CAAiB,GAAGd,CAAA,CAAiB,CAAA,CAAA,CAAA,CAGhE,CACF,EACAR,EAAU,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"InputOtpBase.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef } from 'react'\nimport { OTPInput, type OTPInputProps, REGEXP_ONLY_DIGITS } from 'input-otp'\nimport { InputOTPSlot, type InputOTPSlotClasses } from './ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type InputOtpBaseClasses = {\n input?: string\n inputContainer?: string\n container?: string\n slot?: InputOTPSlotClasses\n}\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLDivElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLDivElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void\n}\n\nexport type InputOtpBaseProps = Omit<OTPInputProps, 'render'> & {\n /**\n * Внешние классы которыми можно поменять стили\n */\n classes?: InputOtpBaseClasses\n /**\n * Изначальный автофокус\n */\n initialFocus?: boolean\n /**\n * Внешние handlers\n */\n externalHandlers?: ExternalHandlers\n /**\n * Для aria-invalid валидное или не валидное поле\n */\n invalid?: boolean\n}\n\nexport const InputOtpBase = forwardRef<HTMLInputElement, InputOtpBaseProps>(\n ({ value, onChange, classes, maxLength = 4, initialFocus = true, externalHandlers, invalid, ...props }, ref) => {\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (inputRef.current && initialFocus) {\n inputRef.current.focus()\n }\n }, [initialFocus])\n\n return (\n <>\n <OTPInput\n pattern={REGEXP_ONLY_DIGITS}\n value={value ?? ''}\n onChange={(newValue) => {\n onChange?.(newValue)\n externalHandlers?.onChange?.(newValue)\n }}\n ref={mergeRefs(inputRef, ref)}\n containerClassName={cn('flex items-center w-full', classes?.inputContainer)}\n className={cn('disabled:cursor-not-allowed', classes?.input)}\n onClick={externalHandlers?.onClick}\n maxLength={maxLength}\n onBlur={externalHandlers?.onBlur}\n aria-invalid={invalid}\n onFocus={externalHandlers?.onFocus}\n {...props}\n >\n <div className={cn('m-auto flex w-max items-center gap-4', classes?.container)}>\n {maxLength > 0 &&\n Array.from({ length: maxLength }, (_, inputIndex) => (\n <InputOTPSlot key={inputIndex} invalid={invalid} index={inputIndex} />\n ))}\n </div>\n </OTPInput>\n </>\n )\n }\n)\n"],"names":["InputOtpBase","forwardRef","value","onChange","classes","maxLength","initialFocus","externalHandlers","invalid","props","ref","inputRef","useRef","useEffect","jsx","Fragment","OTPInput","REGEXP_ONLY_DIGITS","newValue","_a","mergeRefs","cn","_","inputIndex","InputOTPSlot"],"mappings":"0XAsCO,MAAMA,EAAeC,EAC1B,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,QAAAC,EAAS,UAAAC,EAAY,EAAG,aAAAC,EAAe,GAAM,iBAAAC,EAAkB,QAAAC,EAAS,GAAGC,CAAA,EAASC,IAAQ,CAC9G,MAAMC,EAAWC,EAAyB,IAAI,EAE9C,OAAAC,EAAU,IAAM,CACVF,EAAS,SAAWL,GACtBK,EAAS,QAAQ,MAAA,CACnB,EACC,CAACL,CAAY,CAAC,EAGfQ,EAAAC,EAAA,CACE,SAAAD,EAACE,EAAA,CACC,QAASC,EACT,MAAOf,GAAS,GAChB,SAAWgB,GAAa,OACtBf,GAAA,MAAAA,EAAWe,IACXC,EAAAZ,GAAA,YAAAA,EAAkB,WAAlB,MAAAY,EAAA,KAAAZ,EAA6BW,EAAQ,EAEvC,IAAKE,EAAUT,EAAUD,CAAG,EAC5B,mBAAoBW,EAAG,2BAA4BjB,GAAA,YAAAA,EAAS,cAAc,EAC1E,UAAWiB,EAAG,8BAA+BjB,GAAA,YAAAA,EAAS,KAAK,EAC3D,QAASG,GAAA,YAAAA,EAAkB,QAC3B,UAAAF,EACA,OAAQE,GAAA,YAAAA,EAAkB,OAC1B,eAAcC,EACd,QAASD,GAAA,YAAAA,EAAkB,QAC1B,GAAGE,EAEJ,SAAAK,EAAC,MAAA,CAAI,UAAWO,EAAG,uCAAwCjB,GAAA,YAAAA,EAAS,SAAS,EAC1E,SAAAC,EAAY,GACX,MAAM,KAAK,CAAE,OAAQA,CAAA,EAAa,CAACiB,EAAGC,IACpCT,EAACU,EAAA,CAA8B,QAAAhB,EAAkB,MAAOe,CAAA,EAArCA,CAAiD,CACrE,CAAA,CACL,CAAA,CAAA,EAEJ,CAAA,CAGN"}
1
+ {"version":3,"file":"InputOtpBase.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/inputOtp/InputOtpBase.tsx"],"sourcesContent":["import { forwardRef, useEffect, useRef } from 'react'\nimport { OTPInput, type OTPInputProps, REGEXP_ONLY_DIGITS } from 'input-otp'\nimport { InputOTPSlot, type InputOTPSlotClasses } from './ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type InputOtpBaseClasses = {\n input?: string\n inputContainer?: string\n container?: string\n slot?: InputOTPSlotClasses\n}\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLDivElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLDivElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void\n}\n\nexport type InputOtpBaseProps = Omit<OTPInputProps, 'render'> & {\n /**\n * Внешние классы которыми можно поменять стили\n */\n classes?: InputOtpBaseClasses\n /**\n * Изначальный автофокус\n */\n initialFocus?: boolean\n /**\n * Внешние handlers\n */\n externalHandlers?: ExternalHandlers\n /**\n * Для aria-invalid валидное или не валидное поле\n */\n invalid?: boolean\n}\n\nexport const InputOtpBase = forwardRef<HTMLInputElement, InputOtpBaseProps>(\n ({ value, onChange, classes, maxLength = 4, initialFocus = true, externalHandlers, invalid, ...props }, ref) => {\n const inputRef = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (inputRef.current && initialFocus) {\n inputRef.current.focus()\n }\n }, [initialFocus])\n\n return (\n <>\n <OTPInput\n pattern={REGEXP_ONLY_DIGITS}\n value={value ?? ''}\n onChange={(newValue) => {\n onChange?.(newValue)\n externalHandlers?.onChange?.(newValue)\n }}\n ref={mergeRefs(inputRef, ref)}\n containerClassName={cn('flex items-center w-full', classes?.inputContainer)}\n className={cn('disabled:cursor-not-allowed', classes?.input)}\n onClick={externalHandlers?.onClick}\n maxLength={maxLength}\n onBlur={externalHandlers?.onBlur}\n aria-invalid={invalid}\n onFocus={externalHandlers?.onFocus}\n {...props}\n >\n <div className={cn('m-auto flex w-max items-center gap-4', classes?.container)}>\n {maxLength > 0 &&\n Array.from({ length: maxLength }, (_, inputIndex) => (\n <InputOTPSlot key={inputIndex} invalid={invalid} index={inputIndex} />\n ))}\n </div>\n </OTPInput>\n </>\n )\n }\n)\n"],"names":["InputOtpBase","forwardRef","value","onChange","classes","maxLength","initialFocus","externalHandlers","invalid","props","ref","inputRef","useRef","useEffect","jsx","Fragment","OTPInput","REGEXP_ONLY_DIGITS","newValue","_a","mergeRefs","cn","_","inputIndex","InputOTPSlot"],"mappings":"0XAsCO,MAAMA,EAAeC,EAC1B,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,QAAAC,EAAS,UAAAC,EAAY,EAAG,aAAAC,EAAe,GAAM,iBAAAC,EAAkB,QAAAC,EAAS,GAAGC,CAAA,EAASC,IAAQ,CAC9G,MAAMC,EAAWC,EAAyB,IAAI,EAE9C,OAAAC,EAAU,IAAM,CACVF,EAAS,SAAWL,GACtBK,EAAS,QAAQ,MAAA,CAErB,EAAG,CAACL,CAAY,CAAC,EAGfQ,EAAAC,EAAA,CACE,SAAAD,EAACE,EAAA,CACC,QAASC,EACT,MAAOf,GAAS,GAChB,SAAWgB,GAAa,OACtBf,GAAA,MAAAA,EAAWe,IACXC,EAAAZ,GAAA,YAAAA,EAAkB,WAAlB,MAAAY,EAAA,KAAAZ,EAA6BW,EAC/B,EACA,IAAKE,EAAUT,EAAUD,CAAG,EAC5B,mBAAoBW,EAAG,2BAA4BjB,GAAA,YAAAA,EAAS,cAAc,EAC1E,UAAWiB,EAAG,8BAA+BjB,GAAA,YAAAA,EAAS,KAAK,EAC3D,QAASG,GAAA,YAAAA,EAAkB,QAC3B,UAAAF,EACA,OAAQE,GAAA,YAAAA,EAAkB,OAC1B,eAAcC,EACd,QAASD,GAAA,YAAAA,EAAkB,QAC1B,GAAGE,EAEJ,SAAAK,EAAC,MAAA,CAAI,UAAWO,EAAG,uCAAwCjB,GAAA,YAAAA,EAAS,SAAS,EAC1E,SAAAC,EAAY,GACX,MAAM,KAAK,CAAE,OAAQA,CAAA,EAAa,CAACiB,EAAGC,IACpCT,EAACU,EAAA,CAA8B,QAAAhB,EAAkB,MAAOe,CAAA,EAArCA,CAAiD,CACrE,CAAA,CACL,CAAA,CAAA,EAEJ,CAEJ,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type RadioGroupProps as RadioGroupPrimitiveProps, Root } from '@radix-ui/react-radio-group'\nimport { RadioItem, type RadioOption } from './ui'\nimport { type RadioItemClasses } from './ui/RadioItem'\nimport { cn } from '$/shared/utils'\n\ntype RadioGroupClasses = {\n root?: string\n list?: string\n radioItem?: RadioItemClasses\n}\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type RenderComponentProps = { item: RadioOption; classes?: RadioItemClasses } & Pick<\n RadioGroupBaseProps,\n 'displayValue' | 'returnValue' | 'invalid' | 'disabled'\n>\n\nexport type RadioGroupBaseProps = Omit<RadioGroupPrimitiveProps, 'children'> & {\n /**\n * Список отображаемых опций\n */\n options: RadioOption[]\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: RadioOption) => string\n /**\n * Функция для управления возвращаемым значением\n */\n returnValue?: (option: RadioOption) => string\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: RadioGroupClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Отрисовка компонента из вне\n */\n renderComponent?: (props: RadioGroupBaseProps) => React.JSX.Element\n}\n\nexport const RadioGroupBase = forwardRef<HTMLDivElement, RadioGroupBaseProps>(\n (\n {\n options,\n displayValue,\n returnValue,\n invalid,\n className,\n disabled,\n classes,\n externalHandlers,\n onValueChange,\n renderComponent,\n ...props\n },\n ref\n ) => {\n const { root, list, radioItem } = classes || {}\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onChange = (value: string) => {\n if (onValueChange) onValueChange(value)\n if (externalOnChange) externalOnChange(value)\n }\n\n return (\n <Root\n {...props}\n onValueChange={onChange}\n aria-invalid={invalid}\n disabled={disabled}\n ref={ref}\n className={cn('w-full', className, root)}\n >\n <>\n {renderComponent ? (\n renderComponent({ options, returnValue, displayValue, invalid, disabled })\n ) : (\n <ul className={cn('w-full', list)}>\n {options.map((option, index) => (\n <RadioItem\n {...restHandlers}\n key={option.value}\n data-test-id={`radio-item-${index}`}\n item={option}\n invalid={invalid}\n disabled={disabled || option?.disabled}\n classes={radioItem}\n returnValue={returnValue}\n displayValue={displayValue}\n />\n ))}\n </ul>\n )}\n </>\n </Root>\n )\n }\n)\n"],"names":["RadioGroupBase","forwardRef","options","displayValue","returnValue","invalid","className","disabled","classes","externalHandlers","onValueChange","renderComponent","props","ref","root","list","radioItem","externalOnChange","restHandlers","jsx","Root","value","cn","Fragment","option","index","createElement","RadioItem"],"mappings":"uSAuDO,MAAMA,EAAiBC,EAC5B,CACE,CACE,QAAAC,EACA,aAAAC,EACA,YAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAAE,KAAAC,EAAM,KAAAC,EAAM,UAAAC,CAAA,EAAcR,GAAW,CAAA,EAEvC,CAAE,SAAUS,EAAkB,GAAGC,CAAA,EAAiBT,GAAoB,CAAA,EAO5E,OACEU,EAACC,EAAA,CACE,GAAGR,EACJ,cARcS,GAAkB,CAC9BX,KAA6BW,CAAK,EAClCJ,KAAmCI,CAAK,CAAA,EAO1C,eAAchB,EACd,SAAAE,EACA,IAAAM,EACA,UAAWS,EAAG,SAAUhB,EAAWQ,CAAI,EAEvC,SAAAK,EAAAI,EAAA,CACG,WACCZ,EAAgB,CAAE,QAAAT,EAAS,YAAAE,EAAa,aAAAD,EAAc,QAAAE,EAAS,SAAAE,CAAA,CAAU,IAExE,KAAA,CAAG,UAAWe,EAAG,SAAUP,CAAI,EAC7B,SAAAb,EAAQ,IAAI,CAACsB,EAAQC,IACpBC,EAACC,EAAA,CACE,GAAGT,EACJ,IAAKM,EAAO,MACZ,eAAc,cAAcC,CAAK,GACjC,KAAMD,EACN,QAAAnB,EACA,SAAUE,IAAYiB,GAAA,YAAAA,EAAQ,UAC9B,QAASR,EACT,YAAAZ,EACA,aAAAD,CAAA,CAAA,CAEH,EACH,CAAA,CAEJ,CAAA,CAAA,CACF,CAGN"}
1
+ {"version":3,"file":"RadioGroup.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/radio/RadioGroup.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type RadioGroupProps as RadioGroupPrimitiveProps, Root } from '@radix-ui/react-radio-group'\nimport { RadioItem, type RadioOption } from './ui'\nimport { type RadioItemClasses } from './ui/RadioItem'\nimport { cn } from '$/shared/utils'\n\ntype RadioGroupClasses = {\n root?: string\n list?: string\n radioItem?: RadioItemClasses\n}\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type RenderComponentProps = { item: RadioOption; classes?: RadioItemClasses } & Pick<\n RadioGroupBaseProps,\n 'displayValue' | 'returnValue' | 'invalid' | 'disabled'\n>\n\nexport type RadioGroupBaseProps = Omit<RadioGroupPrimitiveProps, 'children'> & {\n /**\n * Список отображаемых опций\n */\n options: RadioOption[]\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: RadioOption) => string\n /**\n * Функция для управления возвращаемым значением\n */\n returnValue?: (option: RadioOption) => string\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: RadioGroupClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n /**\n * Отрисовка компонента из вне\n */\n renderComponent?: (props: RadioGroupBaseProps) => React.JSX.Element\n}\n\nexport const RadioGroupBase = forwardRef<HTMLDivElement, RadioGroupBaseProps>(\n (\n {\n options,\n displayValue,\n returnValue,\n invalid,\n className,\n disabled,\n classes,\n externalHandlers,\n onValueChange,\n renderComponent,\n ...props\n },\n ref\n ) => {\n const { root, list, radioItem } = classes || {}\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onChange = (value: string) => {\n if (onValueChange) onValueChange(value)\n if (externalOnChange) externalOnChange(value)\n }\n\n return (\n <Root\n {...props}\n onValueChange={onChange}\n aria-invalid={invalid}\n disabled={disabled}\n ref={ref}\n className={cn('w-full', className, root)}\n >\n <>\n {renderComponent ? (\n renderComponent({ options, returnValue, displayValue, invalid, disabled })\n ) : (\n <ul className={cn('w-full', list)}>\n {options.map((option, index) => (\n <RadioItem\n {...restHandlers}\n key={option.value}\n data-test-id={`radio-item-${index}`}\n item={option}\n invalid={invalid}\n disabled={disabled || option?.disabled}\n classes={radioItem}\n returnValue={returnValue}\n displayValue={displayValue}\n />\n ))}\n </ul>\n )}\n </>\n </Root>\n )\n }\n)\n"],"names":["RadioGroupBase","forwardRef","options","displayValue","returnValue","invalid","className","disabled","classes","externalHandlers","onValueChange","renderComponent","props","ref","root","list","radioItem","externalOnChange","restHandlers","jsx","Root","value","cn","Fragment","option","index","createElement","RadioItem"],"mappings":"uSAuDO,MAAMA,EAAiBC,EAC5B,CACE,CACE,QAAAC,EACA,aAAAC,EACA,YAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAAE,KAAAC,EAAM,KAAAC,EAAM,UAAAC,CAAA,EAAcR,GAAW,CAAA,EAEvC,CAAE,SAAUS,EAAkB,GAAGC,CAAA,EAAiBT,GAAoB,CAAA,EAO5E,OACEU,EAACC,EAAA,CACE,GAAGR,EACJ,cARcS,GAAkB,CAC9BX,KAA6BW,CAAK,EAClCJ,KAAmCI,CAAK,CAC9C,EAMI,eAAchB,EACd,SAAAE,EACA,IAAAM,EACA,UAAWS,EAAG,SAAUhB,EAAWQ,CAAI,EAEvC,SAAAK,EAAAI,EAAA,CACG,WACCZ,EAAgB,CAAE,QAAAT,EAAS,YAAAE,EAAa,aAAAD,EAAc,QAAAE,EAAS,SAAAE,CAAA,CAAU,IAExE,KAAA,CAAG,UAAWe,EAAG,SAAUP,CAAI,EAC7B,SAAAb,EAAQ,IAAI,CAACsB,EAAQC,IACpBC,EAACC,EAAA,CACE,GAAGT,EACJ,IAAKM,EAAO,MACZ,eAAc,cAAcC,CAAK,GACjC,KAAMD,EACN,QAAAnB,EACA,SAAUE,IAAYiB,GAAA,YAAAA,EAAQ,UAC9B,QAASR,EACT,YAAAZ,EACA,aAAAD,CAAA,CAAA,CAEH,EACH,CAAA,CAEJ,CAAA,CAAA,CAGN,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"RadioItem.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/radio/ui/RadioItem.tsx"],"sourcesContent":["import { memo, useId } from 'react'\nimport { Indicator, Item, type RadioGroupItemProps } from '@radix-ui/react-radio-group'\nimport { AdditionalContent, type AdditionalContentClasses, type AdditionalContentProps } from './AdditionalContent'\nimport { cn } from '$/shared/utils'\n\nexport type RadioOption = {\n id: number | string\n value: string\n label: string\n disabled?: boolean\n additionalContent?: AdditionalContentProps\n}\n\nexport type RadioItemClasses = {\n root?: string\n item?: string\n indicator?: string\n label?: string\n additionalContent?: AdditionalContentClasses\n}\n\nexport type RadioItemProps = Omit<RadioGroupItemProps, 'value'> & {\n /**\n * Опция списка\n */\n item: RadioOption\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: RadioOption) => string\n /**\n * Функция для управления возвращаемым значением\n */\n returnValue?: (option: RadioOption) => string\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: RadioItemClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n}\n\nexport const RadioItem = memo(\n ({ item, disabled, displayValue, returnValue, classes, className, invalid, ...props }: RadioItemProps) => {\n const label = displayValue ? displayValue(item) : item.label\n const value = returnValue ? returnValue(item) : item.value\n\n const id = useId()\n\n return (\n <Item {...props} asChild disabled={disabled} value={value} id={id}>\n <li\n className={cn(\n 'group flex items-center gap-x-3',\n 'w-full min-w-[200px] [&:not(:last-child)]:mb-4',\n '[&:not(:disabled)]:cursor-pointer',\n {\n 'pointer-events-none text-color-disabled': disabled\n },\n className,\n classes?.root\n )}\n >\n <div\n className={cn(\n 'after:left-1/2 after:top-1/2 after:h-10 after:w-10',\n 'after:-translate-x-1/2 after:-translate-y-1/2 after:content-[\"\"]',\n 'after:absolute after:rounded-full [&:not(:disabled)]:hover:after:bg-color-primary-tr-hover',\n 'after:duration-100 [&:not(:disabled)]:active:after:bg-color-primary-tr-pressed',\n 'after:-z-10 [&:not(:disabled)]:focus:after:bg-color-primary-tr-focus',\n 'relative h-6 w-6 rounded-full border-2 border-blue-grey-700',\n 'group-data-[state=checked]:border-primary-default',\n {\n 'border-negative': invalid,\n 'group-data-[state=unchecked]:border-0 group-data-[state=checked]:border-primary-disabled group-data-[state=unchecked]:bg-color-blue-grey-300':\n disabled\n },\n classes?.item\n )}\n >\n <Indicator\n className={cn(\n 'absolute left-1/2 top-1/2 h-3 w-3 -translate-x-1/2 -translate-y-1/2 rounded-full bg-color-primary-default',\n 'group-disabled:group-data-[state=checked]:bg-color-negative',\n {\n 'group-data-[state=checked]:bg-color-primary-disabled': disabled\n },\n classes?.indicator\n )}\n />\n </div>\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-l capitalize text-color-dark',\n {\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n {item?.additionalContent && (\n <AdditionalContent disabled={disabled} {...item?.additionalContent} classes={classes?.additionalContent} />\n )}\n </li>\n </Item>\n )\n }\n)\n"],"names":["RadioItem","memo","item","disabled","displayValue","returnValue","classes","className","invalid","props","label","value","id","useId","jsx","Item","jsxs","cn","Indicator","AdditionalContent"],"mappings":"uTA4CO,MAAMA,EAAYC,EACvB,CAAC,CAAE,KAAAC,EAAM,SAAAC,EAAU,aAAAC,EAAc,YAAAC,EAAa,QAAAC,EAAS,UAAAC,EAAW,QAAAC,EAAS,GAAGC,KAA4B,CACxG,MAAMC,EAAQN,EAAeA,EAAaF,CAAI,EAAIA,EAAK,MACjDS,EAAQN,EAAcA,EAAYH,CAAI,EAAIA,EAAK,MAE/CU,EAAKC,EAAA,EAEX,OACEC,EAACC,GAAM,GAAGN,EAAO,QAAO,GAAC,SAAAN,EAAoB,MAAAQ,EAAc,GAAAC,EACzD,SAAAI,EAAC,KAAA,CACC,UAAWC,EACT,kCACA,iDACA,oCACA,CACE,0CAA2Cd,CAAA,EAE7CI,EACAD,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAA,CAAAQ,EAAC,MAAA,CACC,UAAWG,EACT,qDACA,mEACA,6FACA,iFACA,uEACA,8DACA,oDACA,CACE,kBAAmBT,EACnB,+IACEL,CAAA,EAEJG,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAAQ,EAACI,EAAA,CACC,UAAWD,EACT,4GACA,8DACA,CACE,uDAAwDd,CAAA,EAE1DG,GAAA,YAAAA,EAAS,SAAA,CACX,CAAA,CACF,CAAA,EAEFQ,EAAC,QAAA,CACC,QAASF,EACT,UAAWK,EACT,iDACA,CACE,sBAAuBd,CAAA,EAEzBG,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAI,CAAA,CAAA,GAEFR,GAAA,YAAAA,EAAM,oBACLY,EAACK,EAAA,CAAkB,SAAAhB,EAAqB,GAAGD,GAAA,YAAAA,EAAM,kBAAmB,QAASI,GAAA,YAAAA,EAAS,iBAAA,CAAmB,CAAA,CAAA,CAAA,EAG/G,CAAA,CAGN"}
1
+ {"version":3,"file":"RadioItem.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/radio/ui/RadioItem.tsx"],"sourcesContent":["import { memo, useId } from 'react'\nimport { Indicator, Item, type RadioGroupItemProps } from '@radix-ui/react-radio-group'\nimport { AdditionalContent, type AdditionalContentClasses, type AdditionalContentProps } from './AdditionalContent'\nimport { cn } from '$/shared/utils'\n\nexport type RadioOption = {\n id: number | string\n value: string\n label: string\n disabled?: boolean\n additionalContent?: AdditionalContentProps\n}\n\nexport type RadioItemClasses = {\n root?: string\n item?: string\n indicator?: string\n label?: string\n additionalContent?: AdditionalContentClasses\n}\n\nexport type RadioItemProps = Omit<RadioGroupItemProps, 'value'> & {\n /**\n * Опция списка\n */\n item: RadioOption\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: RadioOption) => string\n /**\n * Функция для управления возвращаемым значением\n */\n returnValue?: (option: RadioOption) => string\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: RadioItemClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n}\n\nexport const RadioItem = memo(\n ({ item, disabled, displayValue, returnValue, classes, className, invalid, ...props }: RadioItemProps) => {\n const label = displayValue ? displayValue(item) : item.label\n const value = returnValue ? returnValue(item) : item.value\n\n const id = useId()\n\n return (\n <Item {...props} asChild disabled={disabled} value={value} id={id}>\n <li\n className={cn(\n 'group flex items-center gap-x-3',\n 'w-full min-w-[200px] [&:not(:last-child)]:mb-4',\n '[&:not(:disabled)]:cursor-pointer',\n {\n 'pointer-events-none text-color-disabled': disabled\n },\n className,\n classes?.root\n )}\n >\n <div\n className={cn(\n 'after:left-1/2 after:top-1/2 after:h-10 after:w-10',\n 'after:-translate-x-1/2 after:-translate-y-1/2 after:content-[\"\"]',\n 'after:absolute after:rounded-full [&:not(:disabled)]:hover:after:bg-color-primary-tr-hover',\n 'after:duration-100 [&:not(:disabled)]:active:after:bg-color-primary-tr-pressed',\n 'after:-z-10 [&:not(:disabled)]:focus:after:bg-color-primary-tr-focus',\n 'relative h-6 w-6 rounded-full border-2 border-blue-grey-700',\n 'group-data-[state=checked]:border-primary-default',\n {\n 'border-negative': invalid,\n 'group-data-[state=unchecked]:border-0 group-data-[state=checked]:border-primary-disabled group-data-[state=unchecked]:bg-color-blue-grey-300':\n disabled\n },\n classes?.item\n )}\n >\n <Indicator\n className={cn(\n 'absolute left-1/2 top-1/2 h-3 w-3 -translate-x-1/2 -translate-y-1/2 rounded-full bg-color-primary-default',\n 'group-disabled:group-data-[state=checked]:bg-color-negative',\n {\n 'group-data-[state=checked]:bg-color-primary-disabled': disabled\n },\n classes?.indicator\n )}\n />\n </div>\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-l capitalize text-color-dark',\n {\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n {item?.additionalContent && (\n <AdditionalContent disabled={disabled} {...item?.additionalContent} classes={classes?.additionalContent} />\n )}\n </li>\n </Item>\n )\n }\n)\n"],"names":["RadioItem","memo","item","disabled","displayValue","returnValue","classes","className","invalid","props","label","value","id","useId","jsx","Item","jsxs","cn","Indicator","AdditionalContent"],"mappings":"uTA4CO,MAAMA,EAAYC,EACvB,CAAC,CAAE,KAAAC,EAAM,SAAAC,EAAU,aAAAC,EAAc,YAAAC,EAAa,QAAAC,EAAS,UAAAC,EAAW,QAAAC,EAAS,GAAGC,KAA4B,CACxG,MAAMC,EAAQN,EAAeA,EAAaF,CAAI,EAAIA,EAAK,MACjDS,EAAQN,EAAcA,EAAYH,CAAI,EAAIA,EAAK,MAE/CU,EAAKC,EAAA,EAEX,OACEC,EAACC,GAAM,GAAGN,EAAO,QAAO,GAAC,SAAAN,EAAoB,MAAAQ,EAAc,GAAAC,EACzD,SAAAI,EAAC,KAAA,CACC,UAAWC,EACT,kCACA,iDACA,oCACA,CACE,0CAA2Cd,CAAA,EAE7CI,EACAD,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAA,CAAAQ,EAAC,MAAA,CACC,UAAWG,EACT,qDACA,mEACA,6FACA,iFACA,uEACA,8DACA,oDACA,CACE,kBAAmBT,EACnB,+IACEL,CAAA,EAEJG,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAAQ,EAACI,EAAA,CACC,UAAWD,EACT,4GACA,8DACA,CACE,uDAAwDd,CAAA,EAE1DG,GAAA,YAAAA,EAAS,SAAA,CACX,CAAA,CACF,CAAA,EAEFQ,EAAC,QAAA,CACC,QAASF,EACT,UAAWK,EACT,iDACA,CACE,sBAAuBd,CAAA,EAEzBG,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAI,CAAA,CAAA,GAEFR,GAAA,YAAAA,EAAM,oBACLY,EAACK,EAAA,CAAkB,SAAAhB,EAAqB,GAAGD,GAAA,YAAAA,EAAM,kBAAmB,QAASI,GAAA,YAAAA,EAAS,iBAAA,CAAmB,CAAA,CAAA,CAAA,EAG/G,CAEJ,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/select/Select.tsx"],"sourcesContent":["import { forwardRef, useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { Combobox, ComboboxButton, ComboboxInput, ComboboxOptions, type ComboboxProps } from '@headlessui/react'\nimport { useSelectController } from './hooks'\nimport { type SelectItemOption } from './model'\nimport { SelectItem, type SelectItemProps } from './ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon, InputBase } from '$/shared/ui'\nimport type { FieldAttachment } from '$/shared/ui/formElements/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\nexport type SelectClasses = SelectItemProps['classes'] & {\n root?: string\n list?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value?: SelectItemOption | SelectItemOption[]) => void\n onClick?: (event: React.MouseEvent<HTMLElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLElement>) => void\n onInputChange?: (value: string) => void\n}\n\nexport type SelectBaseProps<Multi extends boolean> = Omit<\n ComboboxProps<SelectItemOption, Multi, 'li'>,\n 'multiple' | 'onChange' | 'by' | 'className' | 'virtual'\n> & {\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Поддержка множественного выбора\n */\n isMulti?: Multi\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Свойство управляющее поиском\n */\n isSearchable?: boolean\n /**\n * Список отображаемых значений\n */\n options: SelectItemOption[]\n /**\n * Дополнительные стили каждого внутреннего элемента\n */\n classes?: SelectClasses\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: SelectItemOption) => string\n /**\n * Функция для изменения значения\n */\n onChange?: (value: (Multi extends true ? SelectItemOption[] : SelectItemOption) | undefined) => void\n /**\n * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Включение виртуализации списка\n */\n virtual?: boolean\n /**\n * Свойство для выключения фильтрации по поиску\n */\n filterDisabled?: boolean\n /**\n * Внешние handlers которые можно прокинуть из вне\n */\n externalHandlers?: ExternalHandlers\n /**\n * Кастомизация отображения текста при пустом списке\n */\n emptyList?: (query?: string) => React.ReactNode\n /**\n * Добавляет option который, позволяет очистить значение селекта\n */\n reset?: string\n}\n\nconst LIST_OFFSET = 4\n\nexport const SelectBase = forwardRef<HTMLInputElement, SelectBaseProps<boolean>>(\n (\n {\n label,\n invalid,\n isMulti = false,\n isSearchable,\n options: initialOptions,\n classes,\n displayValue,\n value,\n onChange,\n attachmentProps,\n virtual = false,\n filterDisabled = false,\n inputValue: externalInputValue,\n onInputChange: externalOnInputChange,\n externalHandlers,\n disabled,\n emptyList,\n reset,\n ...props\n },\n ref\n ) => {\n const { root, list, ...innerClasses } = classes || {}\n\n const { refs, floatingStyles } = useFloating({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(LIST_OFFSET)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const triggerRef = useRef<HTMLDivElement>(null)\n\n const { options, inputValue, onValueChange, onInputValueChange, selectDisplayValue } = useSelectController({\n options: initialOptions,\n isSearchable,\n isMulti,\n displayValue,\n onChange,\n filterDisabled,\n externalInputValue,\n externalOnInputChange,\n externalHandlers\n })\n\n return (\n <Combobox\n {...props}\n virtual={\n virtual\n ? {\n options\n }\n : undefined\n }\n // @ts-expect-error headless ui issue\n by='value'\n onBlur={externalHandlers?.onBlur}\n onFocus={externalHandlers?.onFocus}\n onClick={externalHandlers?.onClick}\n value={(value ? value : isMulti ? [] : '') as typeof value}\n onChange={onValueChange}\n multiple={isMulti}\n // immediate\n disabled={disabled}\n aria-invalid={invalid}\n >\n {({ disabled, open, value }) => {\n const getDisplayValue = () => {\n if (isMulti && isSearchable) {\n return selectDisplayValue(value)\n } else if (isSearchable) {\n return inputValue\n } else {\n return selectDisplayValue(value)\n }\n }\n\n return (\n <div ref={triggerRef} className={cn('relative w-full', root)}>\n <ComboboxButton className='w-full'>\n <ComboboxInput\n // @ts-expect-error asdf\n ref={mergeRefs(ref, refs.setReference)}\n data-test-id='select-input'\n as={InputBase}\n label={label}\n disabled={disabled}\n readOnly={!isSearchable}\n value={externalInputValue || getDisplayValue()}\n autoComplete='off'\n onKeyDown={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopPropagation()\n }}\n onChange={(event) => {\n const { value } = event.target\n\n if (isSearchable) {\n if (externalOnInputChange) externalOnInputChange(value)\n if (externalHandlers?.onInputChange) externalHandlers.onInputChange(value)\n if (onInputValueChange) onInputValueChange(event)\n }\n }}\n invalid={invalid}\n classes={{\n input: isMulti || !isSearchable ? 'cursor-pointer' : undefined\n }}\n // TODO: think about it\n // renderValues={\n // isMulti\n // ? (ref) => (\n // <ChipList\n // ref={ref}\n // values={value}\n // onDeleteItem={(option) => onDeleteItem(value, option)}\n // inputValue={inputValue}\n // onInputValueChange={onInputValueChange}\n // />\n // )\n // : undefined\n // }\n attachmentProps={{\n icon: (\n <ComboboxButton as='span'>\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n </ComboboxButton>\n ),\n ...attachmentProps\n }}\n />\n </ComboboxButton>\n <ComboboxOptions\n portal\n data-test-id='select-list'\n ref={refs.setFloating}\n as='ul'\n style={{\n ...floatingStyles,\n width: triggerRef.current?.getBoundingClientRect().width\n }}\n className={cn(\n 'customScrollbar-y z-10 mt-1',\n 'max-h-[264px] w-full overflow-y-auto bg-color-white',\n 'rounded-md p-1 shadow-[0_8px_20px_0px_rgba(41,41,41,0.08)]',\n list\n )}\n >\n {virtual ? (\n ({ option }) => (\n <SelectItem\n key={option.value}\n option={option}\n isMulti={isMulti}\n classes={{\n item: 'w-[calc(100%-16px)]',\n ...innerClasses\n }}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n )\n ) : options.length > 0 ? (\n <>\n {reset && !isMulti && (\n <SelectItem\n data-test-id='select-item-empty'\n option={{ value: null, label: reset }}\n isMulti={isMulti}\n classes={innerClasses}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n )}\n {options.map((option, index) => (\n <SelectItem\n data-test-id={`select-item-${index}`}\n key={option.value}\n option={option}\n isMulti={isMulti}\n classes={innerClasses}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n ))}\n </>\n ) : emptyList ? (\n emptyList(externalInputValue || inputValue)\n ) : (\n <p className='py-4 text-center align-middle'>Ничего не найдено</p>\n )}\n </ComboboxOptions>\n </div>\n )\n }}\n </Combobox>\n )\n }\n)\n"],"names":["LIST_OFFSET","SelectBase","forwardRef","label","invalid","isMulti","isSearchable","initialOptions","classes","displayValue","value","onChange","attachmentProps","virtual","filterDisabled","externalInputValue","externalOnInputChange","externalHandlers","disabled","emptyList","reset","props","ref","root","list","innerClasses","refs","floatingStyles","useFloating","flip","offset","autoUpdate","triggerRef","useRef","options","inputValue","onValueChange","onInputValueChange","selectDisplayValue","useSelectController","jsx","Combobox","open","getDisplayValue","jsxs","cn","ComboboxButton","ComboboxInput","mergeRefs","InputBase","event","Icon","ComboboxOptions","_a","option","SelectItem","Fragment","index"],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/select/Select.tsx"],"sourcesContent":["import { forwardRef, useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { Combobox, ComboboxButton, ComboboxInput, ComboboxOptions, type ComboboxProps } from '@headlessui/react'\nimport { useSelectController } from './hooks'\nimport { type SelectItemOption } from './model'\nimport { SelectItem, type SelectItemProps } from './ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon, InputBase } from '$/shared/ui'\nimport type { FieldAttachment } from '$/shared/ui/formElements/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\nexport type SelectClasses = SelectItemProps['classes'] & {\n root?: string\n list?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value?: SelectItemOption | SelectItemOption[]) => void\n onClick?: (event: React.MouseEvent<HTMLElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLElement>) => void\n onInputChange?: (value: string) => void\n}\n\nexport type SelectBaseProps<Multi extends boolean> = Omit<\n ComboboxProps<SelectItemOption, Multi, 'li'>,\n 'multiple' | 'onChange' | 'by' | 'className' | 'virtual'\n> & {\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Поддержка множественного выбора\n */\n isMulti?: Multi\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Свойство управляющее поиском\n */\n isSearchable?: boolean\n /**\n * Список отображаемых значений\n */\n options: SelectItemOption[]\n /**\n * Дополнительные стили каждого внутреннего элемента\n */\n classes?: SelectClasses\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: SelectItemOption) => string\n /**\n * Функция для изменения значения\n */\n onChange?: (value: (Multi extends true ? SelectItemOption[] : SelectItemOption) | undefined) => void\n /**\n * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Включение виртуализации списка\n */\n virtual?: boolean\n /**\n * Свойство для выключения фильтрации по поиску\n */\n filterDisabled?: boolean\n /**\n * Внешние handlers которые можно прокинуть из вне\n */\n externalHandlers?: ExternalHandlers\n /**\n * Кастомизация отображения текста при пустом списке\n */\n emptyList?: (query?: string) => React.ReactNode\n /**\n * Добавляет option который, позволяет очистить значение селекта\n */\n reset?: string\n}\n\nconst LIST_OFFSET = 4\n\nexport const SelectBase = forwardRef<HTMLInputElement, SelectBaseProps<boolean>>(\n (\n {\n label,\n invalid,\n isMulti = false,\n isSearchable,\n options: initialOptions,\n classes,\n displayValue,\n value,\n onChange,\n attachmentProps,\n virtual = false,\n filterDisabled = false,\n inputValue: externalInputValue,\n onInputChange: externalOnInputChange,\n externalHandlers,\n disabled,\n emptyList,\n reset,\n ...props\n },\n ref\n ) => {\n const { root, list, ...innerClasses } = classes || {}\n\n const { refs, floatingStyles } = useFloating({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(LIST_OFFSET)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const triggerRef = useRef<HTMLDivElement>(null)\n\n const { options, inputValue, onValueChange, onInputValueChange, selectDisplayValue } = useSelectController({\n options: initialOptions,\n isSearchable,\n isMulti,\n displayValue,\n onChange,\n filterDisabled,\n externalInputValue,\n externalOnInputChange,\n externalHandlers\n })\n\n return (\n <Combobox\n {...props}\n virtual={\n virtual\n ? {\n options\n }\n : undefined\n }\n // @ts-expect-error headless ui issue\n by='value'\n onBlur={externalHandlers?.onBlur}\n onFocus={externalHandlers?.onFocus}\n onClick={externalHandlers?.onClick}\n value={(value ? value : isMulti ? [] : '') as typeof value}\n onChange={onValueChange}\n multiple={isMulti}\n // immediate\n disabled={disabled}\n aria-invalid={invalid}\n >\n {({ disabled, open, value }) => {\n const getDisplayValue = () => {\n if (isMulti && isSearchable) {\n return selectDisplayValue(value)\n } else if (isSearchable) {\n return inputValue\n } else {\n return selectDisplayValue(value)\n }\n }\n\n return (\n <div ref={triggerRef} className={cn('relative w-full', root)}>\n <ComboboxButton className='w-full'>\n <ComboboxInput\n // @ts-expect-error asdf\n ref={mergeRefs(ref, refs.setReference)}\n data-test-id='select-input'\n as={InputBase}\n label={label}\n disabled={disabled}\n readOnly={!isSearchable}\n value={externalInputValue || getDisplayValue()}\n autoComplete='off'\n onKeyDown={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopPropagation()\n }}\n onChange={(event) => {\n const { value } = event.target\n\n if (isSearchable) {\n if (externalOnInputChange) externalOnInputChange(value)\n if (externalHandlers?.onInputChange) externalHandlers.onInputChange(value)\n if (onInputValueChange) onInputValueChange(event)\n }\n }}\n invalid={invalid}\n classes={{\n input: isMulti || !isSearchable ? 'cursor-pointer' : undefined\n }}\n // TODO: think about it\n // renderValues={\n // isMulti\n // ? (ref) => (\n // <ChipList\n // ref={ref}\n // values={value}\n // onDeleteItem={(option) => onDeleteItem(value, option)}\n // inputValue={inputValue}\n // onInputValueChange={onInputValueChange}\n // />\n // )\n // : undefined\n // }\n attachmentProps={{\n icon: (\n <ComboboxButton as='span'>\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n </ComboboxButton>\n ),\n ...attachmentProps\n }}\n />\n </ComboboxButton>\n <ComboboxOptions\n portal\n data-test-id='select-list'\n ref={refs.setFloating}\n as='ul'\n style={{\n ...floatingStyles,\n width: triggerRef.current?.getBoundingClientRect().width\n }}\n className={cn(\n 'customScrollbar-y z-10 mt-1',\n 'max-h-[264px] w-full overflow-y-auto bg-color-white',\n 'rounded-md p-1 shadow-[0_8px_20px_0px_rgba(41,41,41,0.08)]',\n list\n )}\n >\n {virtual ? (\n ({ option }) => (\n <SelectItem\n key={option.value}\n option={option}\n isMulti={isMulti}\n classes={{\n item: 'w-[calc(100%-16px)]',\n ...innerClasses\n }}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n )\n ) : options.length > 0 ? (\n <>\n {reset && !isMulti && (\n <SelectItem\n data-test-id='select-item-empty'\n option={{ value: null, label: reset }}\n isMulti={isMulti}\n classes={innerClasses}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n )}\n {options.map((option, index) => (\n <SelectItem\n data-test-id={`select-item-${index}`}\n key={option.value}\n option={option}\n isMulti={isMulti}\n classes={innerClasses}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n ))}\n </>\n ) : emptyList ? (\n emptyList(externalInputValue || inputValue)\n ) : (\n <p className='py-4 text-center align-middle'>Ничего не найдено</p>\n )}\n </ComboboxOptions>\n </div>\n )\n }}\n </Combobox>\n )\n }\n)\n"],"names":["LIST_OFFSET","SelectBase","forwardRef","label","invalid","isMulti","isSearchable","initialOptions","classes","displayValue","value","onChange","attachmentProps","virtual","filterDisabled","externalInputValue","externalOnInputChange","externalHandlers","disabled","emptyList","reset","props","ref","root","list","innerClasses","refs","floatingStyles","useFloating","flip","offset","autoUpdate","triggerRef","useRef","options","inputValue","onValueChange","onInputValueChange","selectDisplayValue","useSelectController","jsx","Combobox","open","getDisplayValue","jsxs","cn","ComboboxButton","ComboboxInput","mergeRefs","InputBase","event","Icon","ComboboxOptions","_a","option","SelectItem","Fragment","index"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectController.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/select/hooks/useSelectController.ts"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport type { SelectItemOption } from '../model'\nimport { type ExternalHandlers } from '$/shared/ui/formElements/uncontrolled/select/Select'\n\ntype UseSelectControllerProps = {\n options: SelectItemOption[]\n isMulti?: boolean\n isSearchable?: boolean\n displayValue?: (option: SelectItemOption) => string\n onChange?: (value: SelectItemOption | SelectItemOption[] | undefined) => void\n filterDisabled: boolean\n externalInputValue?: string\n externalOnInputChange?: (value: string) => void\n externalHandlers?: ExternalHandlers\n}\n\nexport const useSelectController = ({\n options: initialOptions,\n displayValue,\n isSearchable = false,\n onChange,\n filterDisabled,\n externalInputValue,\n externalOnInputChange,\n externalHandlers\n}: UseSelectControllerProps) => {\n const [inputValue, setInputValue] = useState<string>('')\n\n const withDisplayValue = (option: SelectItemOption) => {\n return displayValue ? displayValue(option) : option.label\n }\n\n const onInputValueChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const { value } = event.target\n\n setInputValue(value)\n }\n\n const options = useMemo<SelectItemOption[]>(() => {\n if (filterDisabled) {\n return initialOptions\n }\n\n if (!isSearchable) {\n return initialOptions\n }\n\n return initialOptions.filter((option) =>\n withDisplayValue(option)\n .toLowerCase()\n .includes(externalInputValue ? externalInputValue.toLowerCase() : inputValue.toLowerCase())\n )\n }, [isSearchable, initialOptions, withDisplayValue, inputValue, externalInputValue, filterDisabled])\n\n const resetValue = () => {\n if (onChange) onChange(undefined)\n if (externalHandlers?.onChange) externalHandlers?.onChange(undefined)\n }\n\n const onValueChange = (value: SelectItemOption | SelectItemOption[] | null) => {\n if (!value) {\n return\n }\n\n if (!Array.isArray(value)) {\n if (!value.value) {\n return resetValue()\n }\n\n const label = withDisplayValue(value)\n setInputValue(label)\n if (externalOnInputChange) externalOnInputChange(label)\n if (externalHandlers?.onInputChange) externalHandlers?.onInputChange(label)\n }\n\n if (onChange) onChange(value)\n if (externalHandlers?.onChange) externalHandlers?.onChange(value)\n }\n\n const selectDisplayValue = (value: SelectItemOption | SelectItemOption[] | null) => {\n if (!value) return\n\n if (Array.isArray(value)) {\n return value.map((item) => withDisplayValue(item)).join(', ')\n } else {\n return withDisplayValue(value)\n }\n }\n\n const onDeleteItem = (values: SelectItemOption | SelectItemOption[], option: SelectItemOption) => {\n const filteredOptions =\n (Array.isArray(values) && values.filter((value: SelectItemOption) => value.value !== option.value)) || []\n\n onValueChange(filteredOptions)\n }\n\n return { options, inputValue, onInputValueChange, onValueChange, onDeleteItem, selectDisplayValue }\n}\n"],"names":["useSelectController","initialOptions","displayValue","isSearchable","onChange","filterDisabled","externalInputValue","externalOnInputChange","externalHandlers","inputValue","setInputValue","useState","withDisplayValue","option","onInputValueChange","event","value","options","useMemo","resetValue","onValueChange","label","values","filteredOptions","item"],"mappings":"8CAgBO,MAAMA,EAAsB,CAAC,CAClC,QAASC,EACT,aAAAC,EACA,aAAAC,EAAe,GACf,SAAAC,EACA,eAAAC,EACA,mBAAAC,EACA,sBAAAC,EACA,iBAAAC,CACF,IAAgC,CAC9B,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAiB,EAAE,EAEjDC,EAAoBC,GACjBX,EAAeA,EAAaW,CAAM,EAAIA,EAAO,MAGhDC,EAAkEC,GAAU,CAChF,KAAM,CAAE,MAAAC,GAAUD,EAAM,OAExBL,EAAcM,CAAK,CAAA,EAGfC,EAAUC,EAA4B,IACtCb,GAIA,CAACF,EACIF,EAGFA,EAAe,OAAQY,GAC5BD,EAAiBC,CAAM,EACpB,YAAA,EACA,SAASP,EAAqBA,EAAmB,cAAgBG,EAAW,aAAa,CAAA,EAE7F,CAACN,EAAcF,EAAgBW,EAAkBH,EAAYH,EAAoBD,CAAc,CAAC,EAE7Fc,EAAa,IAAM,CACnBf,KAAmB,MAAS,EAC5BI,GAAA,MAAAA,EAAkB,WAAUA,GAAA,MAAAA,EAAkB,SAAS,QAAS,EAGhEY,EAAiBJ,GAAwD,CAC7E,GAAKA,EAIL,IAAI,CAAC,MAAM,QAAQA,CAAK,EAAG,CACzB,GAAI,CAACA,EAAM,MACT,OAAOG,EAAA,EAGT,MAAME,EAAQT,EAAiBI,CAAK,EACpCN,EAAcW,CAAK,EACfd,KAA6Cc,CAAK,EAClDb,GAAA,MAAAA,EAAkB,gBAAeA,GAAA,MAAAA,EAAkB,cAAca,GAAK,CAGxEjB,KAAmBY,CAAK,EACxBR,GAAA,MAAAA,EAAkB,WAAUA,GAAA,MAAAA,EAAkB,SAASQ,IAAK,EAoBlE,MAAO,CAAE,QAAAC,EAAS,WAAAR,EAAY,mBAAAK,EAAoB,cAAAM,EAAe,aAP5C,CAACE,EAA+CT,IAA6B,CAChG,MAAMU,EACH,MAAM,QAAQD,CAAM,GAAKA,EAAO,OAAQN,GAA4BA,EAAM,QAAUH,EAAO,KAAK,GAAM,CAAA,EAEzGO,EAAcG,CAAe,CAAA,EAGgD,mBAjBnDP,GAAwD,CAClF,GAAKA,EAEL,OAAI,MAAM,QAAQA,CAAK,EACdA,EAAM,IAAKQ,GAASZ,EAAiBY,CAAI,CAAC,EAAE,KAAK,IAAI,EAErDZ,EAAiBI,CAAK,CAC/B,CAU6E,CACjF"}
1
+ {"version":3,"file":"useSelectController.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/select/hooks/useSelectController.ts"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport type { SelectItemOption } from '../model'\nimport { type ExternalHandlers } from '$/shared/ui/formElements/uncontrolled/select/Select'\n\ntype UseSelectControllerProps = {\n options: SelectItemOption[]\n isMulti?: boolean\n isSearchable?: boolean\n displayValue?: (option: SelectItemOption) => string\n onChange?: (value: SelectItemOption | SelectItemOption[] | undefined) => void\n filterDisabled: boolean\n externalInputValue?: string\n externalOnInputChange?: (value: string) => void\n externalHandlers?: ExternalHandlers\n}\n\nexport const useSelectController = ({\n options: initialOptions,\n displayValue,\n isSearchable = false,\n onChange,\n filterDisabled,\n externalInputValue,\n externalOnInputChange,\n externalHandlers\n}: UseSelectControllerProps) => {\n const [inputValue, setInputValue] = useState<string>('')\n\n const withDisplayValue = (option: SelectItemOption) => {\n return displayValue ? displayValue(option) : option.label\n }\n\n const onInputValueChange: React.ChangeEventHandler<HTMLInputElement> = (event) => {\n const { value } = event.target\n\n setInputValue(value)\n }\n\n const options = useMemo<SelectItemOption[]>(() => {\n if (filterDisabled) {\n return initialOptions\n }\n\n if (!isSearchable) {\n return initialOptions\n }\n\n return initialOptions.filter((option) =>\n withDisplayValue(option)\n .toLowerCase()\n .includes(externalInputValue ? externalInputValue.toLowerCase() : inputValue.toLowerCase())\n )\n }, [isSearchable, initialOptions, withDisplayValue, inputValue, externalInputValue, filterDisabled])\n\n const resetValue = () => {\n if (onChange) onChange(undefined)\n if (externalHandlers?.onChange) externalHandlers?.onChange(undefined)\n }\n\n const onValueChange = (value: SelectItemOption | SelectItemOption[] | null) => {\n if (!value) {\n return\n }\n\n if (!Array.isArray(value)) {\n if (!value.value) {\n return resetValue()\n }\n\n const label = withDisplayValue(value)\n setInputValue(label)\n if (externalOnInputChange) externalOnInputChange(label)\n if (externalHandlers?.onInputChange) externalHandlers?.onInputChange(label)\n }\n\n if (onChange) onChange(value)\n if (externalHandlers?.onChange) externalHandlers?.onChange(value)\n }\n\n const selectDisplayValue = (value: SelectItemOption | SelectItemOption[] | null) => {\n if (!value) return\n\n if (Array.isArray(value)) {\n return value.map((item) => withDisplayValue(item)).join(', ')\n } else {\n return withDisplayValue(value)\n }\n }\n\n const onDeleteItem = (values: SelectItemOption | SelectItemOption[], option: SelectItemOption) => {\n const filteredOptions =\n (Array.isArray(values) && values.filter((value: SelectItemOption) => value.value !== option.value)) || []\n\n onValueChange(filteredOptions)\n }\n\n return { options, inputValue, onInputValueChange, onValueChange, onDeleteItem, selectDisplayValue }\n}\n"],"names":["useSelectController","initialOptions","displayValue","isSearchable","onChange","filterDisabled","externalInputValue","externalOnInputChange","externalHandlers","inputValue","setInputValue","useState","withDisplayValue","option","onInputValueChange","event","value","options","useMemo","resetValue","onValueChange","label","values","filteredOptions","item"],"mappings":"8CAgBO,MAAMA,EAAsB,CAAC,CAClC,QAASC,EACT,aAAAC,EACA,aAAAC,EAAe,GACf,SAAAC,EACA,eAAAC,EACA,mBAAAC,EACA,sBAAAC,EACA,iBAAAC,CACF,IAAgC,CAC9B,KAAM,CAACC,EAAYC,CAAa,EAAIC,EAAiB,EAAE,EAEjDC,EAAoBC,GACjBX,EAAeA,EAAaW,CAAM,EAAIA,EAAO,MAGhDC,EAAkEC,GAAU,CAChF,KAAM,CAAE,MAAAC,GAAUD,EAAM,OAExBL,EAAcM,CAAK,CACrB,EAEMC,EAAUC,EAA4B,IACtCb,GAIA,CAACF,EACIF,EAGFA,EAAe,OAAQY,GAC5BD,EAAiBC,CAAM,EACpB,YAAA,EACA,SAASP,EAAqBA,EAAmB,cAAgBG,EAAW,aAAa,CAAA,EAE7F,CAACN,EAAcF,EAAgBW,EAAkBH,EAAYH,EAAoBD,CAAc,CAAC,EAE7Fc,EAAa,IAAM,CACnBf,KAAmB,MAAS,EAC5BI,GAAA,MAAAA,EAAkB,WAAUA,GAAA,MAAAA,EAAkB,SAAS,QAC7D,EAEMY,EAAiBJ,GAAwD,CAC7E,GAAKA,EAIL,IAAI,CAAC,MAAM,QAAQA,CAAK,EAAG,CACzB,GAAI,CAACA,EAAM,MACT,OAAOG,EAAA,EAGT,MAAME,EAAQT,EAAiBI,CAAK,EACpCN,EAAcW,CAAK,EACfd,KAA6Cc,CAAK,EAClDb,GAAA,MAAAA,EAAkB,gBAAeA,GAAA,MAAAA,EAAkB,cAAca,GACvE,CAEIjB,KAAmBY,CAAK,EACxBR,GAAA,MAAAA,EAAkB,WAAUA,GAAA,MAAAA,EAAkB,SAASQ,IAC7D,EAmBA,MAAO,CAAE,QAAAC,EAAS,WAAAR,EAAY,mBAAAK,EAAoB,cAAAM,EAAe,aAP5C,CAACE,EAA+CT,IAA6B,CAChG,MAAMU,EACH,MAAM,QAAQD,CAAM,GAAKA,EAAO,OAAQN,GAA4BA,EAAM,QAAUH,EAAO,KAAK,GAAM,CAAA,EAEzGO,EAAcG,CAAe,CAC/B,EAE+E,mBAjBnDP,GAAwD,CAClF,GAAKA,EAEL,OAAI,MAAM,QAAQA,CAAK,EACdA,EAAM,IAAKQ,GAASZ,EAAiBY,CAAI,CAAC,EAAE,KAAK,IAAI,EAErDZ,EAAiBI,CAAK,CAEjC,CAS+E,CACjF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/select/ui/Chip.tsx"],"sourcesContent":["import type { SelectItemOption } from '../model'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype ControlChipClasses = {\n chip?: string\n}\n\nexport interface ControlChipProps extends React.HTMLAttributes<HTMLDivElement> {\n displayValue?: (option: SelectItemOption) => string\n data: SelectItemOption\n classes?: ControlChipClasses\n onDeleteItem: (option: SelectItemOption) => void\n}\n\nexport const ControlChip = ({ data, displayValue, classes, onDeleteItem, ...props }: ControlChipProps) => (\n <div\n {...props}\n className={cn(\n 'mob-body-regular-l flex w-fit items-center gap-x-1 whitespace-nowrap',\n 'rounded-sm bg-color-primary-tr-hover px-1 text-color-primary-default',\n classes?.chip\n )}\n >\n {displayValue ? displayValue(data) : data.label}\n <Icon\n name='general/close'\n className='size-3.5 cursor-pointer'\n onClick={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopPropagation()\n\n onDeleteItem(data)\n }}\n />\n </div>\n)\n"],"names":["ControlChip","data","displayValue","classes","onDeleteItem","props","jsxs","cn","jsx","Icon","event"],"mappings":"+wCAeO,MAAMA,EAAc,CAAC,CAAE,KAAAC,EAAM,aAAAC,EAAc,QAAAC,EAAS,aAAAC,EAAc,GAAGC,CAAA,IAC1EC,EAAC,MAAA,CACE,GAAGD,EACJ,UAAWE,EACT,uEACA,uEACAJ,GAAA,YAAAA,EAAS,IAAA,EAGV,SAAA,CAAAD,EAAeA,EAAaD,CAAI,EAAIA,EAAK,MAC1CO,EAACC,EAAA,CACC,KAAK,gBACL,UAAU,0BACV,QAAUC,GAAU,CAClBA,EAAM,gBAAA,EACNA,EAAM,YAAY,gBAAA,EAElBN,EAAaH,CAAI,CAAA,CACnB,CAAA,CACF,CAAA,CACF"}
1
+ {"version":3,"file":"Chip.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/select/ui/Chip.tsx"],"sourcesContent":["import type { SelectItemOption } from '../model'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype ControlChipClasses = {\n chip?: string\n}\n\nexport interface ControlChipProps extends React.HTMLAttributes<HTMLDivElement> {\n displayValue?: (option: SelectItemOption) => string\n data: SelectItemOption\n classes?: ControlChipClasses\n onDeleteItem: (option: SelectItemOption) => void\n}\n\nexport const ControlChip = ({ data, displayValue, classes, onDeleteItem, ...props }: ControlChipProps) => (\n <div\n {...props}\n className={cn(\n 'mob-body-regular-l flex w-fit items-center gap-x-1 whitespace-nowrap',\n 'rounded-sm bg-color-primary-tr-hover px-1 text-color-primary-default',\n classes?.chip\n )}\n >\n {displayValue ? displayValue(data) : data.label}\n <Icon\n name='general/close'\n className='size-3.5 cursor-pointer'\n onClick={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopPropagation()\n\n onDeleteItem(data)\n }}\n />\n </div>\n)\n"],"names":["ControlChip","data","displayValue","classes","onDeleteItem","props","jsxs","cn","jsx","Icon","event"],"mappings":"+wCAeO,MAAMA,EAAc,CAAC,CAAE,KAAAC,EAAM,aAAAC,EAAc,QAAAC,EAAS,aAAAC,EAAc,GAAGC,CAAA,IAC1EC,EAAC,MAAA,CACE,GAAGD,EACJ,UAAWE,EACT,uEACA,uEACAJ,GAAA,YAAAA,EAAS,IAAA,EAGV,SAAA,CAAAD,EAAeA,EAAaD,CAAI,EAAIA,EAAK,MAC1CO,EAACC,EAAA,CACC,KAAK,gBACL,UAAU,0BACV,QAAUC,GAAU,CAClBA,EAAM,gBAAA,EACNA,EAAM,YAAY,gBAAA,EAElBN,EAAaH,CAAI,CACnB,CAAA,CAAA,CACF,CAAA,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectItem.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/select/ui/SelectItem.tsx"],"sourcesContent":["import React, { forwardRef, Fragment } from 'react'\nimport { ComboboxOption, type ComboboxOptionProps } from '@headlessui/react'\nimport { motion } from 'framer-motion'\nimport { CheckboxBase, type CheckboxBaseClasses } from '../../checkbox/Checkbox'\nimport type { SelectItemOption } from '../model'\nimport { cn } from '$/shared/utils'\n\ntype SelectItemClasses = {\n item?: string\n helperText?: string\n checkbox?: CheckboxBaseClasses\n}\n\nexport type SelectItemProps = Omit<ComboboxOptionProps, 'className' | 'value'> & {\n option: SelectItemOption\n isMulti?: boolean\n classes?: SelectItemClasses\n displayValue?: (option: SelectItemOption) => string\n motionProps?: React.ComponentPropsWithoutRef<typeof motion.li>\n}\n\nexport const SelectItem = forwardRef<HTMLLIElement, SelectItemProps>(\n ({ option, classes, displayValue, isMulti, motionProps, ...props }, ref) => {\n const label = displayValue ? displayValue(option) : option.label\n\n const { item, helperText, checkbox } = classes || {}\n\n const ContentWrapper = isMulti || option.attachment || option.helperText ? 'div' : Fragment\n\n return (\n <ComboboxOption {...props} as={Fragment} disabled={option.disabled} value={option}>\n {({ disabled, selected }) => (\n <motion.li\n {...motionProps}\n ref={ref}\n className={cn(\n 'unset-all-apply desk-body-regular-l cursor-pointer truncate rounded-sm bg-color-white px-2',\n 'flex h-12 items-center gap-x-4 text-color-dark hover:bg-color-primary-tr-hover hover:text-color-primary-hover',\n '[&:not(:disabled)]:cursor-pointer [&:not(:last-child)]:mb-1 [&>p]:hover:text-color-secondary',\n 'data-[selected]:bg-color-primary-tr-hover data-[selected]:text-color-primary-hover',\n 'data-[focus]:bg-color-primary-tr-hover data-[focus]:text-color-primary-hover',\n {\n 'pointer-events-none !text-color-disabled': disabled,\n '!flex items-center gap-x-4': isMulti,\n 'gap-x-3': option.attachment && option.attachment.left\n },\n item\n )}\n >\n {isMulti ? (\n <CheckboxBase checked={selected} disabled={disabled} classes={{ root: 'z-10', ...checkbox }} />\n ) : (\n option.attachment && option.attachment.left\n )}\n <ContentWrapper>\n {label}\n {option.helperText && (\n <p\n className={cn(\n 'desk-body-regular-s text-color-tetriary',\n {\n 'text-color-disabled': disabled\n },\n helperText\n )}\n >\n {option.helperText}\n </p>\n )}\n </ContentWrapper>\n <div className='ml-auto'>{option.attachment && option.attachment.right}</div>\n </motion.li>\n )}\n </ComboboxOption>\n )\n }\n)\n"],"names":["SelectItem","forwardRef","option","classes","displayValue","isMulti","motionProps","props","ref","label","item","helperText","checkbox","ContentWrapper","Fragment","jsx","ComboboxOption","disabled","selected","jsxs","motion","cn","CheckboxBase"],"mappings":"0bAqBO,MAAMA,EAAaC,EACxB,CAAC,CAAE,OAAAC,EAAQ,QAAAC,EAAS,aAAAC,EAAc,QAAAC,EAAS,YAAAC,EAAa,GAAGC,CAAA,EAASC,IAAQ,CAC1E,MAAMC,EAAQL,EAAeA,EAAaF,CAAM,EAAIA,EAAO,MAErD,CAAE,KAAAQ,EAAM,WAAAC,EAAY,SAAAC,CAAA,EAAaT,GAAW,CAAA,EAE5CU,EAAiBR,GAAWH,EAAO,YAAcA,EAAO,WAAa,MAAQY,EAEnF,OACEC,EAACC,EAAA,CAAgB,GAAGT,EAAO,GAAIO,EAAU,SAAUZ,EAAO,SAAU,MAAOA,EACxE,SAAA,CAAC,CAAE,SAAAe,EAAU,SAAAC,KACZC,EAACC,EAAO,GAAP,CACE,GAAGd,EACJ,IAAAE,EACA,UAAWa,EACT,6FACA,gHACA,+FACA,qFACA,+EACA,CACE,2CAA4CJ,EAC5C,6BAA8BZ,EAC9B,UAAWH,EAAO,YAAcA,EAAO,WAAW,IAAA,EAEpDQ,CAAA,EAGD,SAAA,CAAAL,IACEiB,EAAA,CAAa,QAASJ,EAAU,SAAAD,EAAoB,QAAS,CAAE,KAAM,OAAQ,GAAGL,GAAY,EAE7FV,EAAO,YAAcA,EAAO,WAAW,OAExCW,EAAA,CACE,SAAA,CAAAJ,EACAP,EAAO,YACNa,EAAC,IAAA,CACC,UAAWM,EACT,0CACA,CACE,sBAAuBJ,CAAA,EAEzBN,CAAA,EAGD,SAAAT,EAAO,UAAA,CAAA,CACV,EAEJ,EACAa,EAAC,OAAI,UAAU,UAAW,WAAO,YAAcb,EAAO,WAAW,KAAA,CAAM,CAAA,CAAA,CAAA,EAG7E,CAAA,CAGN"}
1
+ {"version":3,"file":"SelectItem.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/select/ui/SelectItem.tsx"],"sourcesContent":["import React, { forwardRef, Fragment } from 'react'\nimport { ComboboxOption, type ComboboxOptionProps } from '@headlessui/react'\nimport { motion } from 'framer-motion'\nimport { CheckboxBase, type CheckboxBaseClasses } from '../../checkbox/Checkbox'\nimport type { SelectItemOption } from '../model'\nimport { cn } from '$/shared/utils'\n\ntype SelectItemClasses = {\n item?: string\n helperText?: string\n checkbox?: CheckboxBaseClasses\n}\n\nexport type SelectItemProps = Omit<ComboboxOptionProps, 'className' | 'value'> & {\n option: SelectItemOption\n isMulti?: boolean\n classes?: SelectItemClasses\n displayValue?: (option: SelectItemOption) => string\n motionProps?: React.ComponentPropsWithoutRef<typeof motion.li>\n}\n\nexport const SelectItem = forwardRef<HTMLLIElement, SelectItemProps>(\n ({ option, classes, displayValue, isMulti, motionProps, ...props }, ref) => {\n const label = displayValue ? displayValue(option) : option.label\n\n const { item, helperText, checkbox } = classes || {}\n\n const ContentWrapper = isMulti || option.attachment || option.helperText ? 'div' : Fragment\n\n return (\n <ComboboxOption {...props} as={Fragment} disabled={option.disabled} value={option}>\n {({ disabled, selected }) => (\n <motion.li\n {...motionProps}\n ref={ref}\n className={cn(\n 'unset-all-apply desk-body-regular-l cursor-pointer truncate rounded-sm bg-color-white px-2',\n 'flex h-12 items-center gap-x-4 text-color-dark hover:bg-color-primary-tr-hover hover:text-color-primary-hover',\n '[&:not(:disabled)]:cursor-pointer [&:not(:last-child)]:mb-1 [&>p]:hover:text-color-secondary',\n 'data-[selected]:bg-color-primary-tr-hover data-[selected]:text-color-primary-hover',\n 'data-[focus]:bg-color-primary-tr-hover data-[focus]:text-color-primary-hover',\n {\n 'pointer-events-none !text-color-disabled': disabled,\n '!flex items-center gap-x-4': isMulti,\n 'gap-x-3': option.attachment && option.attachment.left\n },\n item\n )}\n >\n {isMulti ? (\n <CheckboxBase checked={selected} disabled={disabled} classes={{ root: 'z-10', ...checkbox }} />\n ) : (\n option.attachment && option.attachment.left\n )}\n <ContentWrapper>\n {label}\n {option.helperText && (\n <p\n className={cn(\n 'desk-body-regular-s text-color-tetriary',\n {\n 'text-color-disabled': disabled\n },\n helperText\n )}\n >\n {option.helperText}\n </p>\n )}\n </ContentWrapper>\n <div className='ml-auto'>{option.attachment && option.attachment.right}</div>\n </motion.li>\n )}\n </ComboboxOption>\n )\n }\n)\n"],"names":["SelectItem","forwardRef","option","classes","displayValue","isMulti","motionProps","props","ref","label","item","helperText","checkbox","ContentWrapper","Fragment","jsx","ComboboxOption","disabled","selected","jsxs","motion","cn","CheckboxBase"],"mappings":"0bAqBO,MAAMA,EAAaC,EACxB,CAAC,CAAE,OAAAC,EAAQ,QAAAC,EAAS,aAAAC,EAAc,QAAAC,EAAS,YAAAC,EAAa,GAAGC,CAAA,EAASC,IAAQ,CAC1E,MAAMC,EAAQL,EAAeA,EAAaF,CAAM,EAAIA,EAAO,MAErD,CAAE,KAAAQ,EAAM,WAAAC,EAAY,SAAAC,CAAA,EAAaT,GAAW,CAAA,EAE5CU,EAAiBR,GAAWH,EAAO,YAAcA,EAAO,WAAa,MAAQY,EAEnF,OACEC,EAACC,EAAA,CAAgB,GAAGT,EAAO,GAAIO,EAAU,SAAUZ,EAAO,SAAU,MAAOA,EACxE,SAAA,CAAC,CAAE,SAAAe,EAAU,SAAAC,KACZC,EAACC,EAAO,GAAP,CACE,GAAGd,EACJ,IAAAE,EACA,UAAWa,EACT,6FACA,gHACA,+FACA,qFACA,+EACA,CACE,2CAA4CJ,EAC5C,6BAA8BZ,EAC9B,UAAWH,EAAO,YAAcA,EAAO,WAAW,IAAA,EAEpDQ,CAAA,EAGD,SAAA,CAAAL,IACEiB,EAAA,CAAa,QAASJ,EAAU,SAAAD,EAAoB,QAAS,CAAE,KAAM,OAAQ,GAAGL,GAAY,EAE7FV,EAAO,YAAcA,EAAO,WAAW,OAExCW,EAAA,CACE,SAAA,CAAAJ,EACAP,EAAO,YACNa,EAAC,IAAA,CACC,UAAWM,EACT,0CACA,CACE,sBAAuBJ,CAAA,EAEzBN,CAAA,EAGD,SAAAT,EAAO,UAAA,CAAA,CACV,EAEJ,EACAa,EAAC,OAAI,UAAU,UAAW,WAAO,YAAcb,EAAO,WAAW,KAAA,CAAM,CAAA,CAAA,CAAA,EAG7E,CAEJ,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLogarithmic.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/model/useLogarithmic.ts"],"sourcesContent":["interface UseLogarithmicProps {\n min: number\n max: number\n defaultSum: number\n}\n\nexport const useLogarithmic = ({ min, max, defaultSum }: UseLogarithmicProps) => {\n const initSum = Math.ceil((max - min) * 0.2 + min)\n const startSum = initSum > defaultSum ? defaultSum : initSum\n\n const fromSlider = (value: number) => {\n return round(Math.round(Math.pow(10, value)), 2)\n }\n\n const toSlider = (value: number | undefined) => {\n if (!value) return 0\n\n return Math.log(value) / Math.log(10)\n }\n\n const round = (sum: number, threshold = 2) => {\n const fixedSum = sum.toFixed(0)\n const digits = fixedSum.length\n\n let out = fixedSum.slice(0, Math.min(digits, threshold))\n\n if (digits > threshold) {\n out = out + '000000000000'.slice(0, digits - threshold)\n }\n\n return parseInt(out, 10)\n }\n\n return {\n min,\n max,\n initSum,\n startSum,\n fromSlider,\n toSlider,\n round\n }\n}\n"],"names":["useLogarithmic","min","max","defaultSum","initSum","startSum","fromSlider","value","round","toSlider","sum","threshold","fixedSum","digits","out"],"mappings":"AAMO,MAAMA,EAAiB,CAAC,CAAE,IAAAC,EAAK,IAAAC,EAAK,WAAAC,KAAsC,CAC/E,MAAMC,EAAU,KAAK,MAAMF,EAAMD,GAAO,GAAMA,CAAG,EAC3CI,EAAWD,EAAUD,EAAaA,EAAaC,EAE/CE,EAAcC,GACXC,EAAM,KAAK,MAAM,KAAK,IAAI,GAAID,CAAK,CAAC,EAAG,CAAC,EAG3CE,EAAYF,GACXA,EAEE,KAAK,IAAIA,CAAK,EAAI,KAAK,IAAI,EAAE,EAFjB,EAKfC,EAAQ,CAACE,EAAaC,EAAY,IAAM,CAC5C,MAAMC,EAAWF,EAAI,QAAQ,CAAC,EACxBG,EAASD,EAAS,OAExB,IAAIE,EAAMF,EAAS,MAAM,EAAG,KAAK,IAAIC,EAAQF,CAAS,CAAC,EAEvD,OAAIE,EAASF,IACXG,EAAMA,EAAM,eAAe,MAAM,EAAGD,EAASF,CAAS,GAGjD,SAASG,EAAK,EAAE,CAAA,EAGzB,MAAO,CACL,IAAAb,EACA,IAAAC,EACA,QAAAE,EACA,SAAAC,EACA,WAAAC,EACA,SAAAG,EACA,MAAAD,CAAA,CAEJ"}
1
+ {"version":3,"file":"useLogarithmic.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/model/useLogarithmic.ts"],"sourcesContent":["interface UseLogarithmicProps {\n min: number\n max: number\n defaultSum: number\n}\n\nexport const useLogarithmic = ({ min, max, defaultSum }: UseLogarithmicProps) => {\n const initSum = Math.ceil((max - min) * 0.2 + min)\n const startSum = initSum > defaultSum ? defaultSum : initSum\n\n const fromSlider = (value: number) => {\n return round(Math.round(Math.pow(10, value)), 2)\n }\n\n const toSlider = (value: number | undefined) => {\n if (!value) return 0\n\n return Math.log(value) / Math.log(10)\n }\n\n const round = (sum: number, threshold = 2) => {\n const fixedSum = sum.toFixed(0)\n const digits = fixedSum.length\n\n let out = fixedSum.slice(0, Math.min(digits, threshold))\n\n if (digits > threshold) {\n out = out + '000000000000'.slice(0, digits - threshold)\n }\n\n return parseInt(out, 10)\n }\n\n return {\n min,\n max,\n initSum,\n startSum,\n fromSlider,\n toSlider,\n round\n }\n}\n"],"names":["useLogarithmic","min","max","defaultSum","initSum","startSum","fromSlider","value","round","toSlider","sum","threshold","fixedSum","digits","out"],"mappings":"AAMO,MAAMA,EAAiB,CAAC,CAAE,IAAAC,EAAK,IAAAC,EAAK,WAAAC,KAAsC,CAC/E,MAAMC,EAAU,KAAK,MAAMF,EAAMD,GAAO,GAAMA,CAAG,EAC3CI,EAAWD,EAAUD,EAAaA,EAAaC,EAE/CE,EAAcC,GACXC,EAAM,KAAK,MAAM,KAAK,IAAI,GAAID,CAAK,CAAC,EAAG,CAAC,EAG3CE,EAAYF,GACXA,EAEE,KAAK,IAAIA,CAAK,EAAI,KAAK,IAAI,EAAE,EAFjB,EAKfC,EAAQ,CAACE,EAAaC,EAAY,IAAM,CAC5C,MAAMC,EAAWF,EAAI,QAAQ,CAAC,EACxBG,EAASD,EAAS,OAExB,IAAIE,EAAMF,EAAS,MAAM,EAAG,KAAK,IAAIC,EAAQF,CAAS,CAAC,EAEvD,OAAIE,EAASF,IACXG,EAAMA,EAAM,eAAe,MAAM,EAAGD,EAASF,CAAS,GAGjD,SAASG,EAAK,EAAE,CACzB,EAEA,MAAO,CACL,IAAAb,EACA,IAAAC,EACA,QAAAE,EACA,SAAAC,EACA,WAAAC,EACA,SAAAG,EACA,MAAAD,CAAA,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/Slider.tsx"],"sourcesContent":["import Slider from 'rc-slider'\nimport { type ExternalHandlers } from '../model'\nimport { cn } from '$/shared/utils'\n\nexport type SliderClasses = {\n track?: string\n rail?: string\n handle?: string\n tracks?: string\n}\n\nexport interface SliderInnerProps {\n classes?: SliderClasses\n onChange: (value: number) => void\n value: number\n disabled?: boolean\n min?: number\n max?: number\n step?: number | null\n marks?: number[]\n externalHandlers?: ExternalHandlers\n}\n\nexport const SliderInner = ({\n classes,\n min,\n max,\n value,\n step,\n marks,\n disabled,\n onChange,\n externalHandlers,\n ...props\n}: SliderInnerProps) => {\n const { track, rail, handle } = classes || {}\n\n const handleChangeSlider = (value: number | number[]) => {\n const newValue = Array.isArray(value) ? value[0] : value\n onChange(newValue)\n if (externalHandlers?.onChange) externalHandlers.onChange(newValue)\n }\n\n const convertedMarks = marks?.reduce(\n (acc, value) => {\n acc[value] = <></>\n return acc\n },\n {} as Record<number, JSX.Element>\n )\n\n return (\n <div className='absolute bottom-0 w-full'>\n <Slider\n {...props}\n className='relative h-[4px]'\n value={value}\n marks={convertedMarks}\n disabled={disabled}\n min={min}\n max={max}\n onChange={handleChangeSlider}\n step={step}\n classNames={{\n track: cn('absolute bg-color-primary-default size-[3px]', track),\n rail: cn('absolute w-full size-[3px]', rail),\n handle: cn(\n 'absolute top-1/2 !-translate-y-1/2 left-1/2 !-translate-x-1/2 ',\n\n 'ring-offset-background block h-4 w-4 cursor-pointer rounded-full bg-color-primary-default transition-colors focus:outline-none disabled:pointer-events-none disabled:opacity-50',\n\n 'before:absolute before:left-1/2 before:top-1/2 before:size-8 before:-translate-x-1/2 before:-translate-y-1/2 before:rounded-full before:bg-color-transparent before:content-[\"\"]',\n\n 'hover:before:bg-color-primary-tr-hover',\n\n 'focus:before:bg-color-primary-tr-pressed',\n handle\n )\n }}\n />\n </div>\n )\n}\n"],"names":["SliderInner","classes","min","max","value","step","marks","disabled","onChange","externalHandlers","props","track","rail","handle","handleChangeSlider","newValue","convertedMarks","acc","jsx","Fragment","Slider","cn"],"mappings":"4LAuBO,MAAMA,EAAc,CAAC,CAC1B,QAAAC,EACA,IAAAC,EACA,IAAAC,EACA,MAAAC,EACA,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,GAAGC,CACL,IAAwB,CACtB,KAAM,CAAE,MAAAC,EAAO,KAAAC,EAAM,OAAAC,CAAA,EAAWZ,GAAW,CAAA,EAErCa,EAAsBV,GAA6B,CACvD,MAAMW,EAAW,MAAM,QAAQX,CAAK,EAAIA,EAAM,CAAC,EAAIA,EACnDI,EAASO,CAAQ,EACbN,GAAA,MAAAA,EAAkB,UAAUA,EAAiB,SAASM,CAAQ,CAAA,EAG9DC,EAAiBV,GAAA,YAAAA,EAAO,OAC5B,CAACW,EAAKb,KACJa,EAAIb,CAAK,EAAIc,EAAAC,EAAA,CAAA,CAAE,EACRF,GAET,CAAA,GAGF,OACEC,EAAC,MAAA,CAAI,UAAU,2BACb,SAAAA,EAACE,EAAA,CACE,GAAGV,EACJ,UAAU,mBACV,MAAAN,EACA,MAAOY,EACP,SAAAT,EACA,IAAAL,EACA,IAAAC,EACA,SAAUW,EACV,KAAAT,EACA,WAAY,CACV,MAAOgB,EAAG,+CAAgDV,CAAK,EAC/D,KAAMU,EAAG,6BAA8BT,CAAI,EAC3C,OAAQS,EACN,iEAEA,kLAEA,mLAEA,yCAEA,2CACAR,CAAA,CACF,CACF,CAAA,EAEJ,CAEJ"}
1
+ {"version":3,"file":"Slider.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/Slider.tsx"],"sourcesContent":["import Slider from 'rc-slider'\nimport { type ExternalHandlers } from '../model'\nimport { cn } from '$/shared/utils'\n\nexport type SliderClasses = {\n track?: string\n rail?: string\n handle?: string\n tracks?: string\n}\n\nexport interface SliderInnerProps {\n classes?: SliderClasses\n onChange: (value: number) => void\n value: number\n disabled?: boolean\n min?: number\n max?: number\n step?: number | null\n marks?: number[]\n externalHandlers?: ExternalHandlers\n}\n\nexport const SliderInner = ({\n classes,\n min,\n max,\n value,\n step,\n marks,\n disabled,\n onChange,\n externalHandlers,\n ...props\n}: SliderInnerProps) => {\n const { track, rail, handle } = classes || {}\n\n const handleChangeSlider = (value: number | number[]) => {\n const newValue = Array.isArray(value) ? value[0] : value\n onChange(newValue)\n if (externalHandlers?.onChange) externalHandlers.onChange(newValue)\n }\n\n const convertedMarks = marks?.reduce(\n (acc, value) => {\n acc[value] = <></>\n return acc\n },\n {} as Record<number, JSX.Element>\n )\n\n return (\n <div className='absolute bottom-0 w-full'>\n <Slider\n {...props}\n className='relative h-[4px]'\n value={value}\n marks={convertedMarks}\n disabled={disabled}\n min={min}\n max={max}\n onChange={handleChangeSlider}\n step={step}\n classNames={{\n track: cn('absolute bg-color-primary-default size-[3px]', track),\n rail: cn('absolute w-full size-[3px]', rail),\n handle: cn(\n 'absolute top-1/2 !-translate-y-1/2 left-1/2 !-translate-x-1/2 ',\n\n 'ring-offset-background block h-4 w-4 cursor-pointer rounded-full bg-color-primary-default transition-colors focus:outline-none disabled:pointer-events-none disabled:opacity-50',\n\n 'before:absolute before:left-1/2 before:top-1/2 before:size-8 before:-translate-x-1/2 before:-translate-y-1/2 before:rounded-full before:bg-color-transparent before:content-[\"\"]',\n\n 'hover:before:bg-color-primary-tr-hover',\n\n 'focus:before:bg-color-primary-tr-pressed',\n handle\n )\n }}\n />\n </div>\n )\n}\n"],"names":["SliderInner","classes","min","max","value","step","marks","disabled","onChange","externalHandlers","props","track","rail","handle","handleChangeSlider","newValue","convertedMarks","acc","jsx","Fragment","Slider","cn"],"mappings":"4LAuBO,MAAMA,EAAc,CAAC,CAC1B,QAAAC,EACA,IAAAC,EACA,IAAAC,EACA,MAAAC,EACA,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,GAAGC,CACL,IAAwB,CACtB,KAAM,CAAE,MAAAC,EAAO,KAAAC,EAAM,OAAAC,CAAA,EAAWZ,GAAW,CAAA,EAErCa,EAAsBV,GAA6B,CACvD,MAAMW,EAAW,MAAM,QAAQX,CAAK,EAAIA,EAAM,CAAC,EAAIA,EACnDI,EAASO,CAAQ,EACbN,GAAA,MAAAA,EAAkB,UAAUA,EAAiB,SAASM,CAAQ,CACpE,EAEMC,EAAiBV,GAAA,YAAAA,EAAO,OAC5B,CAACW,EAAKb,KACJa,EAAIb,CAAK,EAAIc,EAAAC,EAAA,CAAA,CAAE,EACRF,GAET,CAAA,GAGF,OACEC,EAAC,MAAA,CAAI,UAAU,2BACb,SAAAA,EAACE,EAAA,CACE,GAAGV,EACJ,UAAU,mBACV,MAAAN,EACA,MAAOY,EACP,SAAAT,EACA,IAAAL,EACA,IAAAC,EACA,SAAUW,EACV,KAAAT,EACA,WAAY,CACV,MAAOgB,EAAG,+CAAgDV,CAAK,EAC/D,KAAMU,EAAG,6BAA8BT,CAAI,EAC3C,OAAQS,EACN,iEAEA,kLAEA,mLAEA,yCAEA,2CACAR,CAAA,CACF,CACF,CAAA,EAEJ,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"SliderAlgorithmic.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { type SliderAlgorithmicProps } from '../../model/types'\nimport { SliderInner } from '../Slider'\nimport { useSliderAlgorithmic } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderAlgorithmic = forwardRef<HTMLInputElement, SliderAlgorithmicProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { handleBlur, sliderValue, sliderStep, sliderMin, sliderMax, handleChangeSlider } = useSliderAlgorithmic({\n min,\n max,\n defaultValue: 0,\n value,\n onChange\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n handleBlur(value)\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue !== undefined) {\n if (onChange) onChange(floatValue)\n externalHandlers?.onInputChange?.(floatValue)\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={sliderValue}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n externalHandlers={externalHandlers}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderAlgorithmic","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","attachmentProps","additionalSuffix","readOnly","componentType","props","ref","inputId","React","inputRef","handleIconClick","_a","handleBlur","sliderValue","sliderStep","sliderMin","sliderMax","handleChangeSlider","useSliderAlgorithmic","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"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"}
1
+ {"version":3,"file":"SliderAlgorithmic.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { type SliderAlgorithmicProps } from '../../model/types'\nimport { SliderInner } from '../Slider'\nimport { useSliderAlgorithmic } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderAlgorithmic = forwardRef<HTMLInputElement, SliderAlgorithmicProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { handleBlur, sliderValue, sliderStep, sliderMin, sliderMax, handleChangeSlider } = useSliderAlgorithmic({\n min,\n max,\n defaultValue: 0,\n value,\n onChange\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n handleBlur(value)\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue !== undefined) {\n if (onChange) onChange(floatValue)\n externalHandlers?.onInputChange?.(floatValue)\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={sliderValue}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n externalHandlers={externalHandlers}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderAlgorithmic","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","attachmentProps","additionalSuffix","readOnly","componentType","props","ref","inputId","React","inputRef","handleIconClick","_a","handleBlur","sliderValue","sliderStep","sliderMin","sliderMax","handleChangeSlider","useSliderAlgorithmic","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSliderAlgorithmic.js","sources":["../../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/useSliderAlgorithmic.ts"],"sourcesContent":["import { useLogarithmic } from '../../../model/useLogarithmic'\n\ninterface UseSliderAlgorithmic {\n min: number\n max: number\n defaultValue: number\n value: number | undefined\n onChange?: (value: number) => void\n}\n\nexport const useSliderAlgorithmic = ({ min, max, defaultValue, value, onChange }: UseSliderAlgorithmic) => {\n const { fromSlider, toSlider, round } = useLogarithmic({ min, max, defaultSum: defaultValue })\n\n const sliderValue = toSlider(value)\n\n const sliderStep = 0.01\n\n const sliderMin = toSlider(min)\n const sliderMax = toSlider(max)\n\n const handleBlur = (value: number | undefined) => {\n if (!value) return\n\n if (value > max) {\n if (onChange) onChange(max)\n }\n if (value < min) {\n if (onChange) onChange(min)\n }\n }\n\n const handleChangeSlider = (value?: number) => {\n if (!value) {\n return\n }\n if (onChange) onChange(round(fromSlider(value)))\n }\n\n return {\n handleBlur,\n handleChangeSlider,\n toSlider,\n fromSlider,\n sliderValue,\n sliderStep,\n sliderMin,\n sliderMax\n }\n}\n"],"names":["useSliderAlgorithmic","min","max","defaultValue","value","onChange","fromSlider","toSlider","round","useLogarithmic","sliderValue","sliderStep","sliderMin","sliderMax"],"mappings":"kEAUO,MAAMA,EAAuB,CAAC,CAAE,IAAAC,EAAK,IAAAC,EAAK,aAAAC,EAAc,MAAAC,EAAO,SAAAC,KAAqC,CACzG,KAAM,CAAE,WAAAC,EAAY,SAAAC,EAAU,MAAAC,GAAUC,EAAe,CAAE,IAAAR,EAAK,IAAAC,EAAK,WAAYC,EAAc,EAEvFO,EAAcH,EAASH,CAAK,EAE5BO,EAAa,IAEbC,EAAYL,EAASN,CAAG,EACxBY,EAAYN,EAASL,CAAG,EAoB9B,MAAO,CACL,WAnBkBE,GAA8B,CAC3CA,IAEDA,EAAQF,GACNG,KAAmBH,CAAG,EAExBE,EAAQH,GACNI,KAAmBJ,CAAG,EAC5B,EAYA,mBAT0BG,GAAmB,CACxCA,GAGDC,GAAUA,EAASG,EAAMF,EAAWF,CAAK,CAAC,CAAC,CAAA,EAM/C,SAAAG,EACA,WAAAD,EACA,YAAAI,EACA,WAAAC,EACA,UAAAC,EACA,UAAAC,CAAA,CAEJ"}
1
+ {"version":3,"file":"useSliderAlgorithmic.js","sources":["../../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/hooks/useSliderAlgorithmic.ts"],"sourcesContent":["import { useLogarithmic } from '../../../model/useLogarithmic'\n\ninterface UseSliderAlgorithmic {\n min: number\n max: number\n defaultValue: number\n value: number | undefined\n onChange?: (value: number) => void\n}\n\nexport const useSliderAlgorithmic = ({ min, max, defaultValue, value, onChange }: UseSliderAlgorithmic) => {\n const { fromSlider, toSlider, round } = useLogarithmic({ min, max, defaultSum: defaultValue })\n\n const sliderValue = toSlider(value)\n\n const sliderStep = 0.01\n\n const sliderMin = toSlider(min)\n const sliderMax = toSlider(max)\n\n const handleBlur = (value: number | undefined) => {\n if (!value) return\n\n if (value > max) {\n if (onChange) onChange(max)\n }\n if (value < min) {\n if (onChange) onChange(min)\n }\n }\n\n const handleChangeSlider = (value?: number) => {\n if (!value) {\n return\n }\n if (onChange) onChange(round(fromSlider(value)))\n }\n\n return {\n handleBlur,\n handleChangeSlider,\n toSlider,\n fromSlider,\n sliderValue,\n sliderStep,\n sliderMin,\n sliderMax\n }\n}\n"],"names":["useSliderAlgorithmic","min","max","defaultValue","value","onChange","fromSlider","toSlider","round","useLogarithmic","sliderValue","sliderStep","sliderMin","sliderMax"],"mappings":"kEAUO,MAAMA,EAAuB,CAAC,CAAE,IAAAC,EAAK,IAAAC,EAAK,aAAAC,EAAc,MAAAC,EAAO,SAAAC,KAAqC,CACzG,KAAM,CAAE,WAAAC,EAAY,SAAAC,EAAU,MAAAC,GAAUC,EAAe,CAAE,IAAAR,EAAK,IAAAC,EAAK,WAAYC,EAAc,EAEvFO,EAAcH,EAASH,CAAK,EAE5BO,EAAa,IAEbC,EAAYL,EAASN,CAAG,EACxBY,EAAYN,EAASL,CAAG,EAoB9B,MAAO,CACL,WAnBkBE,GAA8B,CAC3CA,IAEDA,EAAQF,GACNG,KAAmBH,CAAG,EAExBE,EAAQH,GACNI,KAAmBJ,CAAG,EAE9B,EAWE,mBAT0BG,GAAmB,CACxCA,GAGDC,GAAUA,EAASG,EAAMF,EAAWF,CAAK,CAAC,CAAC,CACjD,EAKE,SAAAG,EACA,WAAAD,EACA,YAAAI,EACA,WAAAC,EACA,UAAAC,EACA,UAAAC,CAAA,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"SliderMarks.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { type SliderMarksProps } from '../../model/types'\nimport { SliderInner } from '../../ui/Slider'\nimport { useSliderMarks } from './hooks/useSliderMarks'\nimport { InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport const SliderMarks = forwardRef<HTMLInputElement, SliderMarksProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n suffix,\n label,\n marks,\n attachmentProps,\n additionalSuffix,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const { sliderMin, sliderMax, handleChangeSlider, handleBlur } = useSliderMarks({\n marks,\n onChange,\n value\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n onBlur={(e) => {\n if (externalHandlers?.onBlur) {\n externalHandlers?.onBlur(e)\n }\n handleBlur()\n }}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n marks={marks}\n step={null}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {sliderMin && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, sliderMin, false)}\n </span>\n )}\n {sliderMax && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, sliderMax, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["SliderMarks","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","suffix","label","marks","attachmentProps","additionalSuffix","componentType","props","ref","inputId","React","inputRef","sliderMin","sliderMax","handleChangeSlider","handleBlur","useSliderMarks","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","jsx","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"muDAUO,MAAMA,GAAcC,EACzB,CACE,CACE,QAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUC,EAAM,MAAA,EAEhBC,EAAWD,EAAM,OAAyB,IAAI,EAE9C,CAAE,UAAAE,EAAW,UAAAC,EAAW,mBAAAC,EAAoB,WAAAC,CAAA,EAAeC,EAAe,CAC9E,MAAAb,EACA,SAAAH,EACA,MAAAD,CAAA,CACD,EAEK,CAAE,KAAAkB,EAAM,OAAAC,EAAQ,SAAAC,EAAU,UAAAC,EAAW,UAAAC,EAAW,cAAAC,EAAe,MAAAC,EAAO,MAAAC,CAAA,EAAU7B,GAAW,CAAA,EACjG,OACE8B,EAAC,OAAI,aAAYnB,EAAe,UAAWoB,EAAG,6BAA8BT,CAAI,EAC9E,SAAA,CAAAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,8BAA+BF,CAAK,EACrD,SAAA,CAAAG,EAACC,EAAA,CACC,MAAA1B,EACA,MAAAH,EACA,gBAAiB,CACf,GAAGK,CAAA,EAEL,QAAS,CACP,UAAW,qFACX,GAAGiB,CAAA,EAEL,QAASxB,GAAA,YAAAA,EAAkB,QAC3B,QAASA,GAAA,YAAAA,EAAkB,OAC3B,OAASgC,GAAM,CACThC,GAAA,MAAAA,EAAkB,SACpBA,GAAA,MAAAA,EAAkB,OAAOgC,IAE3Bd,EAAA,CAAW,EAEb,aAAc,IACZY,EAACG,EAAA,CACC,GAAIrB,EACJ,SAAQ,GACR,eAAcb,EAAU,OAAS,QACjC,MAAAG,EACA,SAAAD,EACA,OAAQ,IAAIiC,EAAqB9B,EAAQF,CAAK,CAAC,IAAIM,GAAoB,EAAE,GACzE,oBAAoB,WACpB,kBAAmB,IACnB,cAAe,GACf,YAAa2B,EAAUrB,EAAUH,CAAG,EACpC,cAAe,CAAC,CAAE,WAAAyB,KAAiB,CAC7BA,IACEjC,KAAmBiC,CAAU,EAC7BpC,GAAA,MAAAA,EAAkB,eACpBA,EAAiB,cAAcoC,CAAU,EAE7C,EAEF,eAAa,SACb,UAAWP,EACT,yGACAH,CAAA,EAED,GAAGhB,CAAA,CAAA,CACN,CAAA,EAGJoB,EAACO,EAAA,CACC,QAAS,CAAE,GAAGhB,CAAA,EACd,MAAAf,EACA,KAAM,KACN,MAAOJ,GAAS,EAChB,SAAAD,EACA,IAAK,OAAOc,CAAS,EACrB,IAAK,OAAOC,CAAS,EACrB,SAAUC,CAAA,CAAA,CACZ,EACF,IACC,MAAA,CAAI,UAAWY,EAAG,uBAAwBJ,CAAa,EACrD,SAAA,CAAAV,GACCe,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CP,CAAQ,EACpE,SAAAY,EAAqB9B,EAAQW,EAAW,EAAK,CAAA,CAChD,EAEDC,GACCc,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CN,CAAS,EACrE,SAAAW,EAAqB9B,EAAQY,EAAW,EAAK,CAAA,CAChD,CAAA,CAAA,CAEJ,CAAA,EACF,CAAA,CAGN"}
1
+ {"version":3,"file":"SliderMarks.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { type SliderMarksProps } from '../../model/types'\nimport { SliderInner } from '../../ui/Slider'\nimport { useSliderMarks } from './hooks/useSliderMarks'\nimport { InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport const SliderMarks = forwardRef<HTMLInputElement, SliderMarksProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n suffix,\n label,\n marks,\n attachmentProps,\n additionalSuffix,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const { sliderMin, sliderMax, handleChangeSlider, handleBlur } = useSliderMarks({\n marks,\n onChange,\n value\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n onBlur={(e) => {\n if (externalHandlers?.onBlur) {\n externalHandlers?.onBlur(e)\n }\n handleBlur()\n }}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n marks={marks}\n step={null}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {sliderMin && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, sliderMin, false)}\n </span>\n )}\n {sliderMax && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, sliderMax, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["SliderMarks","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","suffix","label","marks","attachmentProps","additionalSuffix","componentType","props","ref","inputId","React","inputRef","sliderMin","sliderMax","handleChangeSlider","handleBlur","useSliderMarks","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","jsx","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"muDAUO,MAAMA,GAAcC,EACzB,CACE,CACE,QAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUC,EAAM,MAAA,EAEhBC,EAAWD,EAAM,OAAyB,IAAI,EAE9C,CAAE,UAAAE,EAAW,UAAAC,EAAW,mBAAAC,EAAoB,WAAAC,CAAA,EAAeC,EAAe,CAC9E,MAAAb,EACA,SAAAH,EACA,MAAAD,CAAA,CACD,EAEK,CAAE,KAAAkB,EAAM,OAAAC,EAAQ,SAAAC,EAAU,UAAAC,EAAW,UAAAC,EAAW,cAAAC,EAAe,MAAAC,EAAO,MAAAC,CAAA,EAAU7B,GAAW,CAAA,EACjG,OACE8B,EAAC,OAAI,aAAYnB,EAAe,UAAWoB,EAAG,6BAA8BT,CAAI,EAC9E,SAAA,CAAAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,8BAA+BF,CAAK,EACrD,SAAA,CAAAG,EAACC,EAAA,CACC,MAAA1B,EACA,MAAAH,EACA,gBAAiB,CACf,GAAGK,CAAA,EAEL,QAAS,CACP,UAAW,qFACX,GAAGiB,CAAA,EAEL,QAASxB,GAAA,YAAAA,EAAkB,QAC3B,QAASA,GAAA,YAAAA,EAAkB,OAC3B,OAASgC,GAAM,CACThC,GAAA,MAAAA,EAAkB,SACpBA,GAAA,MAAAA,EAAkB,OAAOgC,IAE3Bd,EAAA,CACF,EACA,aAAc,IACZY,EAACG,EAAA,CACC,GAAIrB,EACJ,SAAQ,GACR,eAAcb,EAAU,OAAS,QACjC,MAAAG,EACA,SAAAD,EACA,OAAQ,IAAIiC,EAAqB9B,EAAQF,CAAK,CAAC,IAAIM,GAAoB,EAAE,GACzE,oBAAoB,WACpB,kBAAmB,IACnB,cAAe,GACf,YAAa2B,EAAUrB,EAAUH,CAAG,EACpC,cAAe,CAAC,CAAE,WAAAyB,KAAiB,CAC7BA,IACEjC,KAAmBiC,CAAU,EAC7BpC,GAAA,MAAAA,EAAkB,eACpBA,EAAiB,cAAcoC,CAAU,EAG/C,EACA,eAAa,SACb,UAAWP,EACT,yGACAH,CAAA,EAED,GAAGhB,CAAA,CAAA,CACN,CAAA,EAGJoB,EAACO,EAAA,CACC,QAAS,CAAE,GAAGhB,CAAA,EACd,MAAAf,EACA,KAAM,KACN,MAAOJ,GAAS,EAChB,SAAAD,EACA,IAAK,OAAOc,CAAS,EACrB,IAAK,OAAOC,CAAS,EACrB,SAAUC,CAAA,CAAA,CACZ,EACF,IACC,MAAA,CAAI,UAAWY,EAAG,uBAAwBJ,CAAa,EACrD,SAAA,CAAAV,GACCe,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CP,CAAQ,EACpE,SAAAY,EAAqB9B,EAAQW,EAAW,EAAK,CAAA,CAChD,EAEDC,GACCc,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CN,CAAS,EACrE,SAAAW,EAAqB9B,EAAQY,EAAW,EAAK,CAAA,CAChD,CAAA,CAAA,CAEJ,CAAA,EACF,CAEJ,CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSliderMarks.js","sources":["../../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/useSliderMarks.ts"],"sourcesContent":["interface UseSliderMarks {\n marks: number[]\n onChange?: (value: number) => void\n value: number | undefined\n}\n\nexport const useSliderMarks = ({ marks, onChange, value }: UseSliderMarks) => {\n const sliderMin = Math.min(...marks)\n const sliderMax = Math.max(...marks)\n\n const handleChangeSlider = (value?: number) => {\n if (!value) {\n return\n }\n if (onChange) onChange(value)\n }\n\n const handleBlur = () => {\n if (value && value > sliderMax) {\n onChange?.(sliderMax)\n }\n }\n\n return {\n handleChangeSlider,\n handleBlur,\n sliderMin,\n sliderMax\n }\n}\n"],"names":["useSliderMarks","marks","onChange","value","sliderMin","sliderMax"],"mappings":"AAMO,MAAMA,EAAiB,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,MAAAC,KAA4B,CAC5E,MAAMC,EAAY,KAAK,IAAI,GAAGH,CAAK,EAC7BI,EAAY,KAAK,IAAI,GAAGJ,CAAK,EAenC,MAAO,CACL,mBAd0BE,GAAmB,CACxCA,GAGDD,KAAmBC,CAAK,CAAA,EAW5B,WARiB,IAAM,CACnBA,GAASA,EAAQE,IACnBH,GAAA,MAAAA,EAAWG,GACb,EAMA,UAAAD,EACA,UAAAC,CAAA,CAEJ"}
1
+ {"version":3,"file":"useSliderMarks.js","sources":["../../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/hooks/useSliderMarks.ts"],"sourcesContent":["interface UseSliderMarks {\n marks: number[]\n onChange?: (value: number) => void\n value: number | undefined\n}\n\nexport const useSliderMarks = ({ marks, onChange, value }: UseSliderMarks) => {\n const sliderMin = Math.min(...marks)\n const sliderMax = Math.max(...marks)\n\n const handleChangeSlider = (value?: number) => {\n if (!value) {\n return\n }\n if (onChange) onChange(value)\n }\n\n const handleBlur = () => {\n if (value && value > sliderMax) {\n onChange?.(sliderMax)\n }\n }\n\n return {\n handleChangeSlider,\n handleBlur,\n sliderMin,\n sliderMax\n }\n}\n"],"names":["useSliderMarks","marks","onChange","value","sliderMin","sliderMax"],"mappings":"AAMO,MAAMA,EAAiB,CAAC,CAAE,MAAAC,EAAO,SAAAC,EAAU,MAAAC,KAA4B,CAC5E,MAAMC,EAAY,KAAK,IAAI,GAAGH,CAAK,EAC7BI,EAAY,KAAK,IAAI,GAAGJ,CAAK,EAenC,MAAO,CACL,mBAd0BE,GAAmB,CACxCA,GAGDD,KAAmBC,CAAK,CAC9B,EAUE,WARiB,IAAM,CACnBA,GAASA,EAAQE,IACnBH,GAAA,MAAAA,EAAWG,GAEf,EAKE,UAAAD,EACA,UAAAC,CAAA,CAEJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"SliderStep.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { type SliderStepProps } from '../../model/types'\nimport { SliderInner } from '../Slider'\nimport { useSliderStep } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderStep = forwardRef<HTMLInputElement, SliderStepProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n step,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { handleBlur, sliderStep, sliderMin, sliderMax, handleChangeSlider } = useSliderStep({\n min,\n max,\n step,\n onChange\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n handleBlur(value)\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderStep","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","step","attachmentProps","additionalSuffix","readOnly","componentType","props","ref","inputId","React","inputRef","handleIconClick","_a","handleBlur","sliderStep","sliderMin","sliderMax","handleChangeSlider","useSliderStep","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"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"}
1
+ {"version":3,"file":"SliderStep.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { type SliderStepProps } from '../../model/types'\nimport { SliderInner } from '../Slider'\nimport { useSliderStep } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderStep = forwardRef<HTMLInputElement, SliderStepProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n step,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { handleBlur, sliderStep, sliderMin, sliderMax, handleChangeSlider } = useSliderStep({\n min,\n max,\n step,\n onChange\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n handleBlur(value)\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderStep","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","step","attachmentProps","additionalSuffix","readOnly","componentType","props","ref","inputId","React","inputRef","handleIconClick","_a","handleBlur","sliderStep","sliderMin","sliderMax","handleChangeSlider","useSliderStep","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSliderStep.js","sources":["../../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/hooks/useSliderStep.ts"],"sourcesContent":["interface UseSliderStep {\n min: number\n max: number\n step: number\n onChange?: (value: number) => void\n}\n\nexport const useSliderStep = ({ min, max, step, onChange }: UseSliderStep) => {\n const sliderStep = step ?? 1\n\n const sliderMin = min\n const sliderMax = max\n\n const handleBlur = (value: number | undefined) => {\n if (!value) return\n\n if (value > max) {\n if (onChange) onChange(max)\n }\n if (value < min) {\n if (onChange) onChange(min)\n }\n }\n\n const handleChangeSlider = (value?: number) => {\n if (!value) {\n return\n }\n if (onChange) onChange(value)\n }\n\n return {\n handleBlur,\n handleChangeSlider,\n sliderStep,\n sliderMin,\n sliderMax\n }\n}\n"],"names":["useSliderStep","min","max","step","onChange","value"],"mappings":"AAOO,MAAMA,EAAgB,CAAC,CAAE,IAAAC,EAAK,IAAAC,EAAK,KAAAC,EAAM,SAAAC,MAwBvC,CACL,WAnBkBC,GAA8B,CAC3CA,IAEDA,EAAQH,GACNE,KAAmBF,CAAG,EAExBG,EAAQJ,GACNG,KAAmBH,CAAG,EAC5B,EAYA,mBAT0BI,GAAmB,CACxCA,GAGDD,KAAmBC,CAAK,CAAA,EAM5B,WA1BiBF,GAAQ,EA2BzB,UAzBgBF,EA0BhB,UAzBgBC,CAyBhB"}
1
+ {"version":3,"file":"useSliderStep.js","sources":["../../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/hooks/useSliderStep.ts"],"sourcesContent":["interface UseSliderStep {\n min: number\n max: number\n step: number\n onChange?: (value: number) => void\n}\n\nexport const useSliderStep = ({ min, max, step, onChange }: UseSliderStep) => {\n const sliderStep = step ?? 1\n\n const sliderMin = min\n const sliderMax = max\n\n const handleBlur = (value: number | undefined) => {\n if (!value) return\n\n if (value > max) {\n if (onChange) onChange(max)\n }\n if (value < min) {\n if (onChange) onChange(min)\n }\n }\n\n const handleChangeSlider = (value?: number) => {\n if (!value) {\n return\n }\n if (onChange) onChange(value)\n }\n\n return {\n handleBlur,\n handleChangeSlider,\n sliderStep,\n sliderMin,\n sliderMax\n }\n}\n"],"names":["useSliderStep","min","max","step","onChange","value"],"mappings":"AAOO,MAAMA,EAAgB,CAAC,CAAE,IAAAC,EAAK,IAAAC,EAAK,KAAAC,EAAM,SAAAC,MAwBvC,CACL,WAnBkBC,GAA8B,CAC3CA,IAEDA,EAAQH,GACNE,KAAmBF,CAAG,EAExBG,EAAQJ,GACNG,KAAmBH,CAAG,EAE9B,EAWE,mBAT0BI,GAAmB,CACxCA,GAGDD,KAAmBC,CAAK,CAC9B,EAKE,WA1BiBF,GAAQ,EA2BzB,UAzBgBF,EA0BhB,UAzBgBC,CAyBhB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/switch/Switch.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Root, type SwitchProps, Thumb } from '@radix-ui/react-switch'\nimport { cn } from '$/shared/utils'\n\ntype SwitchBaseClasses = {\n root?: string\n thumb?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value: boolean) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type SwitchBaseProps = SwitchProps & {\n classes?: SwitchBaseClasses\n externalHandlers?: ExternalHandlers\n invalid?: boolean\n}\n\nexport const SwitchBase = forwardRef<HTMLButtonElement, SwitchBaseProps>(\n ({ classes, className, disabled, invalid, externalHandlers, onCheckedChange, ...props }, ref) => {\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onChange = (value: boolean) => {\n if (onCheckedChange) onCheckedChange(value)\n if (externalOnChange) externalOnChange(value)\n }\n\n return (\n <Root\n {...props}\n {...restHandlers}\n ref={ref}\n onCheckedChange={onChange}\n disabled={disabled}\n aria-invalid={invalid}\n className={cn(\n 'h-6 w-10 rounded-full bg-color-blue-grey-300 p-[2px] outline-2',\n 'outline-offset-4 outline-transparent focus:outline-primary-focus',\n 'group transition-all hover:bg-color-blue-grey-500',\n 'data-[state=checked]:bg-color-primary-default',\n 'hover:data-[state=checked]:bg-color-primary-hover',\n { 'data-[state=checked]:!bg-color-primary-disabled data-[state=unchecked]:!bg-color-blue-grey-200': disabled },\n className,\n classes?.root\n )}\n >\n <Thumb\n className={cn(\n 'block size-5 rounded-full bg-color-white',\n 'duration-100 will-change-transform',\n 'data-[state=checked]:translate-x-4',\n 'group-active:w-full data-[state=checked]:group-active:translate-x-0',\n classes?.thumb\n )}\n />\n </Root>\n )\n }\n)\nSwitchBase.displayName = 'SwitchBase'\n"],"names":["SwitchBase","forwardRef","classes","className","disabled","invalid","externalHandlers","onCheckedChange","props","ref","externalOnChange","restHandlers","jsx","Root","value","cn","Thumb"],"mappings":"8NAsBO,MAAMA,EAAaC,EACxB,CAAC,CAAE,QAAAC,EAAS,UAAAC,EAAW,SAAAC,EAAU,QAAAC,EAAS,iBAAAC,EAAkB,gBAAAC,EAAiB,GAAGC,CAAA,EAASC,IAAQ,CAC/F,KAAM,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBL,GAAoB,CAAA,EAO5E,OACEM,EAACC,EAAA,CACE,GAAGL,EACH,GAAGG,EACJ,IAAAF,EACA,gBAVcK,GAAmB,CAC/BP,KAAiCO,CAAK,EACtCJ,KAAmCI,CAAK,CAAA,EAS1C,SAAAV,EACA,eAAcC,EACd,UAAWU,EACT,iEACA,mEACA,oDACA,gDACA,oDACA,CAAE,iGAAkGX,CAAA,EACpGD,EACAD,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAAU,EAACI,EAAA,CACC,UAAWD,EACT,2CACA,qCACA,qCACA,sEACAb,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,CACF,CAAA,CACF,CAGN,EACAF,EAAW,YAAc"}
1
+ {"version":3,"file":"Switch.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/switch/Switch.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { Root, type SwitchProps, Thumb } from '@radix-ui/react-switch'\nimport { cn } from '$/shared/utils'\n\ntype SwitchBaseClasses = {\n root?: string\n thumb?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value: boolean) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type SwitchBaseProps = SwitchProps & {\n classes?: SwitchBaseClasses\n externalHandlers?: ExternalHandlers\n invalid?: boolean\n}\n\nexport const SwitchBase = forwardRef<HTMLButtonElement, SwitchBaseProps>(\n ({ classes, className, disabled, invalid, externalHandlers, onCheckedChange, ...props }, ref) => {\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onChange = (value: boolean) => {\n if (onCheckedChange) onCheckedChange(value)\n if (externalOnChange) externalOnChange(value)\n }\n\n return (\n <Root\n {...props}\n {...restHandlers}\n ref={ref}\n onCheckedChange={onChange}\n disabled={disabled}\n aria-invalid={invalid}\n className={cn(\n 'h-6 w-10 rounded-full bg-color-blue-grey-300 p-[2px] outline-2',\n 'outline-offset-4 outline-transparent focus:outline-primary-focus',\n 'group transition-all hover:bg-color-blue-grey-500',\n 'data-[state=checked]:bg-color-primary-default',\n 'hover:data-[state=checked]:bg-color-primary-hover',\n { 'data-[state=checked]:!bg-color-primary-disabled data-[state=unchecked]:!bg-color-blue-grey-200': disabled },\n className,\n classes?.root\n )}\n >\n <Thumb\n className={cn(\n 'block size-5 rounded-full bg-color-white',\n 'duration-100 will-change-transform',\n 'data-[state=checked]:translate-x-4',\n 'group-active:w-full data-[state=checked]:group-active:translate-x-0',\n classes?.thumb\n )}\n />\n </Root>\n )\n }\n)\nSwitchBase.displayName = 'SwitchBase'\n"],"names":["SwitchBase","forwardRef","classes","className","disabled","invalid","externalHandlers","onCheckedChange","props","ref","externalOnChange","restHandlers","jsx","Root","value","cn","Thumb"],"mappings":"8NAsBO,MAAMA,EAAaC,EACxB,CAAC,CAAE,QAAAC,EAAS,UAAAC,EAAW,SAAAC,EAAU,QAAAC,EAAS,iBAAAC,EAAkB,gBAAAC,EAAiB,GAAGC,CAAA,EAASC,IAAQ,CAC/F,KAAM,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBL,GAAoB,CAAA,EAO5E,OACEM,EAACC,EAAA,CACE,GAAGL,EACH,GAAGG,EACJ,IAAAF,EACA,gBAVcK,GAAmB,CAC/BP,KAAiCO,CAAK,EACtCJ,KAAmCI,CAAK,CAC9C,EAQI,SAAAV,EACA,eAAcC,EACd,UAAWU,EACT,iEACA,mEACA,oDACA,gDACA,oDACA,CAAE,iGAAkGX,CAAA,EACpGD,EACAD,GAAA,YAAAA,EAAS,IAAA,EAGX,SAAAU,EAACI,EAAA,CACC,UAAWD,EACT,2CACA,qCACA,qCACA,sEACAb,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,CACF,CAAA,CAGN,CACF,EACAF,EAAW,YAAc"}
@@ -1 +1 @@
1
- {"version":3,"file":"Textarea.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/textarea/Textarea.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\nimport { FieldAttachment } from '../../ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\ntype TextareaBaseClasses = {\n container?: string\n textarea?: string\n label?: string\n}\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void\n onClick?: (event: React.MouseEvent<HTMLTextAreaElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void\n}\n\nexport type TextareaBaseProps = Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size' | 'className'> & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: TextareaBaseClasses\n /**\n * Отображаемый placeholder\n */\n label: string\n /**\n * Отображение не валидного поля\n */\n invalid?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const TextareaBase = forwardRef<HTMLTextAreaElement, TextareaBaseProps>(\n ({ label, value, invalid, disabled, classes, attachmentProps, rows = 4, externalHandlers, onChange, ...props }, ref) => {\n const id = useId()\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onValueChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (onChange) onChange(event)\n if (externalOnChange) externalOnChange(event)\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full items-start gap-x-4 rounded-sm bg-color-blue-grey-100 pb-4 pl-4 pr-1 pt-2',\n '[&_label]:focus-within:text-color-tetriary',\n 'hover:bg-color-blue-grey-200',\n 'border-[1px] border-transparent focus-within:border-blue-grey-800',\n {\n 'border-secondary-default': invalid\n },\n classes?.container\n )}\n data-test-id='textarea-root'\n >\n <div className='flex w-full flex-col'>\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-s pointer-events-none',\n 'text-color-blue-grey-600 duration-100',\n {\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n <textarea\n {...props}\n {...restHandlers}\n rows={rows}\n disabled={disabled}\n value={value ?? ''}\n ref={ref}\n id={id}\n onChange={onValueChange}\n className={cn(\n 'customScrollbar-y peer desk-body-regular-l w-full overflow-y-auto bg-color-transparent',\n 'resize-none text-color-dark outline-none placeholder:text-color-blue-grey-600',\n {\n 'placeholder:text-color-disabled': disabled\n },\n classes?.textarea\n )}\n />\n </div>\n {attachmentProps && <FieldAttachment {...attachmentProps} />}\n </div>\n )\n }\n)\nTextareaBase.displayName = 'TextareaBase'\n"],"names":["TextareaBase","forwardRef","label","value","invalid","disabled","classes","attachmentProps","rows","externalHandlers","onChange","props","ref","id","useId","externalOnChange","restHandlers","onValueChange","event","jsxs","cn","jsx","FieldAttachment"],"mappings":"2NA2CO,MAAMA,EAAeC,EAC1B,CAAC,CAAE,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,gBAAAC,EAAiB,KAAAC,EAAO,EAAG,iBAAAC,EAAkB,SAAAC,EAAU,GAAGC,CAAA,EAASC,IAAQ,CACtH,MAAMC,EAAKC,EAAA,EAEL,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBP,GAAoB,CAAA,EAEtEQ,EAAiBC,GAAkD,CACnER,KAAmBQ,CAAK,EACxBH,KAAmCG,CAAK,CAAA,EAG9C,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,iGACA,6CACA,+BACA,oEACA,CACE,2BAA4BhB,CAAA,EAE9BE,GAAA,YAAAA,EAAS,SAAA,EAEX,eAAa,gBAEb,SAAA,CAAAa,EAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAE,EAAC,QAAA,CACC,QAASR,EACT,UAAWO,EACT,0CACA,wCACA,CACE,sBAAuBf,CAAA,EAEzBC,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAJ,CAAA,CAAA,EAEHmB,EAAC,WAAA,CACE,GAAGV,EACH,GAAGK,EACJ,KAAAR,EACA,SAAAH,EACA,MAAOF,GAAS,GAChB,IAAAS,EACA,GAAAC,EACA,SAAUI,EACV,UAAWG,EACT,yFACA,gFACA,CACE,kCAAmCf,CAAA,EAErCC,GAAA,YAAAA,EAAS,QAAA,CACX,CAAA,CACF,EACF,EACCC,GAAmBc,EAACC,EAAA,CAAiB,GAAGf,CAAA,CAAiB,CAAA,CAAA,CAAA,CAC5D,CAGN,EACAP,EAAa,YAAc"}
1
+ {"version":3,"file":"Textarea.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/textarea/Textarea.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\nimport { FieldAttachment } from '../../ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\ntype TextareaBaseClasses = {\n container?: string\n textarea?: string\n label?: string\n}\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void\n onClick?: (event: React.MouseEvent<HTMLTextAreaElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void\n}\n\nexport type TextareaBaseProps = Omit<React.TextareaHTMLAttributes<HTMLTextAreaElement>, 'size' | 'className'> & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: TextareaBaseClasses\n /**\n * Отображаемый placeholder\n */\n label: string\n /**\n * Отображение не валидного поля\n */\n invalid?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const TextareaBase = forwardRef<HTMLTextAreaElement, TextareaBaseProps>(\n ({ label, value, invalid, disabled, classes, attachmentProps, rows = 4, externalHandlers, onChange, ...props }, ref) => {\n const id = useId()\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onValueChange = (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (onChange) onChange(event)\n if (externalOnChange) externalOnChange(event)\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full items-start gap-x-4 rounded-sm bg-color-blue-grey-100 pb-4 pl-4 pr-1 pt-2',\n '[&_label]:focus-within:text-color-tetriary',\n 'hover:bg-color-blue-grey-200',\n 'border-[1px] border-transparent focus-within:border-blue-grey-800',\n {\n 'border-secondary-default': invalid\n },\n classes?.container\n )}\n data-test-id='textarea-root'\n >\n <div className='flex w-full flex-col'>\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-s pointer-events-none',\n 'text-color-blue-grey-600 duration-100',\n {\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n <textarea\n {...props}\n {...restHandlers}\n rows={rows}\n disabled={disabled}\n value={value ?? ''}\n ref={ref}\n id={id}\n onChange={onValueChange}\n className={cn(\n 'customScrollbar-y peer desk-body-regular-l w-full overflow-y-auto bg-color-transparent',\n 'resize-none text-color-dark outline-none placeholder:text-color-blue-grey-600',\n {\n 'placeholder:text-color-disabled': disabled\n },\n classes?.textarea\n )}\n />\n </div>\n {attachmentProps && <FieldAttachment {...attachmentProps} />}\n </div>\n )\n }\n)\nTextareaBase.displayName = 'TextareaBase'\n"],"names":["TextareaBase","forwardRef","label","value","invalid","disabled","classes","attachmentProps","rows","externalHandlers","onChange","props","ref","id","useId","externalOnChange","restHandlers","onValueChange","event","jsxs","cn","jsx","FieldAttachment"],"mappings":"2NA2CO,MAAMA,EAAeC,EAC1B,CAAC,CAAE,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,gBAAAC,EAAiB,KAAAC,EAAO,EAAG,iBAAAC,EAAkB,SAAAC,EAAU,GAAGC,CAAA,EAASC,IAAQ,CACtH,MAAMC,EAAKC,EAAA,EAEL,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBP,GAAoB,CAAA,EAEtEQ,EAAiBC,GAAkD,CACnER,KAAmBQ,CAAK,EACxBH,KAAmCG,CAAK,CAC9C,EAEA,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,iGACA,6CACA,+BACA,oEACA,CACE,2BAA4BhB,CAAA,EAE9BE,GAAA,YAAAA,EAAS,SAAA,EAEX,eAAa,gBAEb,SAAA,CAAAa,EAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAE,EAAC,QAAA,CACC,QAASR,EACT,UAAWO,EACT,0CACA,wCACA,CACE,sBAAuBf,CAAA,EAEzBC,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAJ,CAAA,CAAA,EAEHmB,EAAC,WAAA,CACE,GAAGV,EACH,GAAGK,EACJ,KAAAR,EACA,SAAAH,EACA,MAAOF,GAAS,GAChB,IAAAS,EACA,GAAAC,EACA,SAAUI,EACV,UAAWG,EACT,yFACA,gFACA,CACE,kCAAmCf,CAAA,EAErCC,GAAA,YAAAA,EAAS,QAAA,CACX,CAAA,CACF,EACF,EACCC,GAAmBc,EAACC,EAAA,CAAiB,GAAGf,CAAA,CAAiB,CAAA,CAAA,CAAA,CAGhE,CACF,EACAP,EAAa,YAAc"}