@scbt-ecom/ui 0.95.1 → 0.95.2
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.
- package/dist/lib/configs/tailwindConfigBase.js +1 -1
- package/dist/lib/configs/tailwindConfigBase.js.map +1 -1
- package/dist/lib/configs/tailwindPresets/resetPreset.js +1 -1
- package/dist/lib/configs/tailwindPresets/resetPreset.js.map +1 -1
- package/dist/lib/exports/widget.js +1 -1
- package/dist/lib/shared/hooks/useClickOutside.js +1 -1
- package/dist/lib/shared/hooks/useClickOutside.js.map +1 -1
- package/dist/lib/shared/style.css +1 -1
- package/dist/lib/shared/ui/brandLogos/BrandLogos.js +1 -1
- package/dist/lib/shared/ui/brandLogos/BrandLogos.js.map +1 -1
- package/dist/lib/shared/ui/calendar/Calendar.js +1 -1
- package/dist/lib/shared/ui/calendar/Calendar.js.map +1 -1
- package/dist/lib/shared/ui/calendar/ui/Navigation.js +1 -1
- package/dist/lib/shared/ui/calendar/ui/Navigation.js.map +1 -1
- package/dist/lib/shared/ui/calendar/ui/selectDate/ui/Trigger.js +1 -1
- package/dist/lib/shared/ui/calendar/ui/selectDate/ui/Trigger.js.map +1 -1
- package/dist/lib/shared/ui/carousel/CarouselBase.js +1 -1
- package/dist/lib/shared/ui/carousel/CarouselBase.js.map +1 -1
- package/dist/lib/shared/ui/carousel/model/helpers.js +1 -1
- package/dist/lib/shared/ui/carousel/model/helpers.js.map +1 -1
- package/dist/lib/shared/ui/carousel/ui/CarouselContent.js +1 -1
- package/dist/lib/shared/ui/carousel/ui/CarouselContent.js.map +1 -1
- package/dist/lib/shared/ui/dialog/Dialog.js +1 -1
- package/dist/lib/shared/ui/dialog/Dialog.js.map +1 -1
- package/dist/lib/shared/ui/dropdownList/DropdownList.js +1 -1
- package/dist/lib/shared/ui/dropdownList/DropdownList.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/autocomplete/Autocomplete.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/autocomplete/Autocomplete.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/checkbox/CheckboxControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/checkbox/CheckboxControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/combobox/ComboboxControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/combobox/ComboboxControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/range.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/range.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/single.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/dayPickerControl/single.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/model/helper.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/model/helper.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/ui/Editor.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/ui/Editor.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/SetColor.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/SetColor.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/SetCoreCommands.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/SetCoreCommands.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/input/InputControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/input/InputControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/input/MaskInputControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/input/MaskInputControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/ui/MenuTrigger.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/ui/MenuTrigger.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/inputOtp/InputOtpControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/inputOtp/InputOtpControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/radio/RadioGroupControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/radio/RadioGroupControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/select/SelectControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/select/SelectControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/slider/SliderControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/slider/SliderControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/switch/SwitchControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/switch/SwitchControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/textarea/TextareaControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/textarea/TextareaControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/uploader/UploaderControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/uploader/UploaderControl.js.map +1 -1
- package/dist/lib/shared/ui/formElements/ui/fieldAttachment/ui/ValidateSlot.js +1 -1
- package/dist/lib/shared/ui/formElements/ui/fieldAttachment/ui/ValidateSlot.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/combobox/combobox.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/dayPicker/DayPicker.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/index.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/index.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/input/Input.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/input/Input.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/select/Select.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/select/Select.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/select/ui/Chip.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/select/ui/Chip.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderStep/SliderStep.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/UploaderBase.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/model/hooks/useUploader.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/model/hooks/useUploader.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/ui/UploaderFile.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/ui/UploaderFile.js.map +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/ui/UploaderFilename.js +1 -1
- package/dist/lib/shared/ui/formElements/uncontrolled/uploader/ui/UploaderFilename.js.map +1 -1
- package/dist/lib/shared/ui/hint/Hint.js +1 -1
- package/dist/lib/shared/ui/hint/Hint.js.map +1 -1
- package/dist/lib/shared/ui/modal/ui/ModalHeader.js +1 -1
- package/dist/lib/shared/ui/modal/ui/ModalHeader.js.map +1 -1
- package/dist/lib/shared/ui/popover/Popover.js +1 -1
- package/dist/lib/shared/ui/popover/Popover.js.map +1 -1
- package/dist/lib/shared/ui/slot/ui/SlotClone.js +1 -1
- package/dist/lib/shared/ui/slot/ui/SlotClone.js.map +1 -1
- package/dist/lib/shared/ui/table/Desktop.js +1 -1
- package/dist/lib/shared/ui/table/Desktop.js.map +1 -1
- package/dist/lib/shared/ui/table/Table.js +1 -1
- package/dist/lib/shared/ui/table/Table.js.map +1 -1
- package/dist/lib/shared/ui/table/model/TableUtils.js +1 -1
- package/dist/lib/shared/ui/table/model/TableUtils.js.map +1 -1
- package/dist/lib/shared/ui/table/ui/dataTableColumnHeader/DataTableColumnHeader.js +1 -1
- package/dist/lib/shared/ui/table/ui/dataTableColumnHeader/DataTableColumnHeader.js.map +1 -1
- package/dist/lib/shared/ui/table/ui/editableCell/EditableCell.js +1 -1
- package/dist/lib/shared/ui/table/ui/editableCell/EditableCell.js.map +1 -1
- package/dist/lib/shared/utils/cn.js +1 -1
- package/dist/lib/shared/utils/cn.js.map +1 -1
- package/dist/lib/shared/validation/base/base.constants.js +1 -1
- package/dist/lib/shared/validation/base/base.constants.js.map +1 -1
- package/dist/lib/shared/validation/base/date.validators.js +1 -1
- package/dist/lib/shared/validation/base/date.validators.js.map +1 -1
- package/dist/lib/shared/validation/base/email.validators.js +1 -1
- package/dist/lib/shared/validation/base/email.validators.js.map +1 -1
- package/dist/lib/shared/validation/base/phone.validators.js +1 -1
- package/dist/lib/shared/validation/base/phone.validators.js.map +1 -1
- package/dist/lib/shared/validation/base/regex.validators.js +1 -1
- package/dist/lib/shared/validation/base/regex.validators.js.map +1 -1
- package/dist/lib/shared/validation/base/url.validators.js +1 -1
- package/dist/lib/shared/validation/base/url.validators.js.map +1 -1
- package/dist/lib/widgets/authProvider/AuthProvider.js +1 -1
- package/dist/lib/widgets/authProvider/AuthProvider.js.map +1 -1
- package/dist/lib/widgets/authProvider/ui/Esia.js +1 -1
- package/dist/lib/widgets/authProvider/ui/Esia.js.map +1 -1
- package/dist/lib/widgets/authProvider/ui/MobileId.js +1 -1
- package/dist/lib/widgets/authProvider/ui/MobileId.js.map +1 -1
- package/dist/lib/widgets/authProvider/ui/ui/AuthWrapper.js +1 -1
- package/dist/lib/widgets/authProvider/ui/ui/AuthWrapper.js.map +1 -1
- package/dist/lib/widgets/authProvider/ui/ui/Links.js +1 -1
- package/dist/lib/widgets/authProvider/ui/ui/Links.js.map +1 -1
- package/dist/lib/widgets/banner/index.js +1 -1
- package/dist/lib/widgets/banner/ui/banners/BannerImageFull.js +1 -1
- package/dist/lib/widgets/banner/ui/banners/BannerImageFull.js.map +1 -1
- package/dist/lib/widgets/banner/ui/banners/BannerWithSeparateImg.js +1 -1
- package/dist/lib/widgets/banner/ui/banners/BannerWithSeparateImg.js.map +1 -1
- package/dist/lib/widgets/banner/ui/banners/ui/Advantages.js +1 -1
- package/dist/lib/widgets/banner/ui/banners/ui/Advantages.js.map +1 -1
- package/dist/lib/widgets/benefit/Benefit.js +1 -1
- package/dist/lib/widgets/benefit/Benefit.js.map +1 -1
- package/dist/lib/widgets/benefit/ui/BenefitItem.js +1 -1
- package/dist/lib/widgets/benefit/ui/BenefitItem.js.map +1 -1
- package/dist/lib/widgets/breadcrumbs/Breadcrumb.js +1 -1
- package/dist/lib/widgets/breadcrumbs/Breadcrumb.js.map +1 -1
- package/dist/lib/widgets/breadcrumbs/Breadcrumbs.js +1 -1
- package/dist/lib/widgets/breadcrumbs/Breadcrumbs.js.map +1 -1
- package/dist/lib/widgets/buttonWithHandlers/ButtonWithHandlers.js +1 -1
- package/dist/lib/widgets/buttonWithHandlers/ButtonWithHandlers.js.map +1 -1
- package/dist/lib/widgets/buttonWithHandlers/model/useButtonHandler.js +1 -1
- package/dist/lib/widgets/buttonWithHandlers/model/useButtonHandler.js.map +1 -1
- package/dist/lib/widgets/calculator/Calculator.js +1 -1
- package/dist/lib/widgets/calculator/Calculator.js.map +1 -1
- package/dist/lib/widgets/calculator/model/helpers.js +1 -1
- package/dist/lib/widgets/calculator/model/helpers.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorFields/hooks/useAdditionalSlider.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorFields/hooks/useAdditionalSlider.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorFields/ui/AdditionalSlider.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorFields/ui/AdditionalSlider.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorFields/ui/CalculatorModal.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorFields/ui/CalculatorModal.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/CalculatorInfo.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/AssistHint.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/AssistHint.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoHead.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/CalculatorInfoHead.js.map +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.js +1 -1
- package/dist/lib/widgets/calculator/ui/calculatorInfo/ui/InfoListItem.js.map +1 -1
- package/dist/lib/widgets/fallbacksView/FallbacksView.js +1 -1
- package/dist/lib/widgets/fallbacksView/FallbacksView.js.map +1 -1
- package/dist/lib/widgets/fallbacksView/model/helpers.js +1 -1
- package/dist/lib/widgets/fallbacksView/model/helpers.js.map +1 -1
- package/dist/lib/widgets/fieldMapper/FieldMapper.js +1 -1
- package/dist/lib/widgets/fieldMapper/FieldMapper.js.map +1 -1
- package/dist/lib/widgets/footer/Footer.js +1 -1
- package/dist/lib/widgets/footer/Footer.js.map +1 -1
- package/dist/lib/widgets/footer/ui/FooterLogo.js +1 -1
- package/dist/lib/widgets/footer/ui/FooterLogo.js.map +1 -1
- package/dist/lib/widgets/footer/ui/NavLinks.js +1 -1
- package/dist/lib/widgets/footer/ui/NavLinks.js.map +1 -1
- package/dist/lib/widgets/footer/ui/PhonesBlock.js +1 -1
- package/dist/lib/widgets/footer/ui/PhonesBlock.js.map +1 -1
- package/dist/lib/widgets/footer/ui/SiteMap.js +1 -1
- package/dist/lib/widgets/footer/ui/SiteMap.js.map +1 -1
- package/dist/lib/widgets/footer/ui/SocialLinks.js +1 -1
- package/dist/lib/widgets/footer/ui/SocialLinks.js.map +1 -1
- package/dist/lib/widgets/header/Header.js +1 -1
- package/dist/lib/widgets/header/Header.js.map +1 -1
- package/dist/lib/widgets/header/model/helpers.js +1 -1
- package/dist/lib/widgets/header/model/helpers.js.map +1 -1
- package/dist/lib/widgets/index.js +1 -1
- package/dist/lib/widgets/infoBlock/InfoBlock.js +1 -1
- package/dist/lib/widgets/infoBlock/InfoBlock.js.map +1 -1
- package/dist/lib/widgets/infoBlock/ui/LinksList.js +1 -1
- package/dist/lib/widgets/infoBlock/ui/LinksList.js.map +1 -1
- package/dist/lib/widgets/infoBlock/ui/RootContent.js +1 -1
- package/dist/lib/widgets/infoBlock/ui/RootContent.js.map +1 -1
- package/dist/lib/widgets/interLinking/InterLinking.js +1 -1
- package/dist/lib/widgets/interLinking/InterLinking.js.map +1 -1
- package/dist/lib/widgets/interLinking/ui/ColumnGroup.js +1 -1
- package/dist/lib/widgets/interLinking/ui/ColumnGroup.js.map +1 -1
- package/dist/lib/widgets/interLinking/ui/LinksList.js +1 -1
- package/dist/lib/widgets/interLinking/ui/LinksList.js.map +1 -1
- package/dist/lib/widgets/longBanner/LongBanner.js +1 -1
- package/dist/lib/widgets/longBanner/LongBanner.js.map +1 -1
- package/dist/lib/widgets/longBanner/ui/TextItem.js +1 -1
- package/dist/lib/widgets/longBanner/ui/TextItem.js.map +1 -1
- package/dist/lib/widgets/model/helpers.js +2 -2
- package/dist/lib/widgets/model/helpers.js.map +1 -1
- package/dist/lib/widgets/seoHeader/SeoHeader.js +1 -1
- package/dist/lib/widgets/seoHeader/SeoHeader.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/CategoriesDesktop.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/rootTab/RootTab.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/rootTab/RootTab.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/tab/ui/content/TabContent.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/tab/ui/content/TabContent.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/CategoriesMobile.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/CategoriesMobile.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/menu/Menu.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/menu/Menu.js.map +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/menu/MenuItem.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/mobile/menu/MenuItem.js.map +1 -1
- package/dist/lib/widgets/stepper/Stepper.js +1 -1
- package/dist/lib/widgets/stepper/Stepper.js.map +1 -1
- package/dist/lib/widgets/stepper/ui/StepperCarousel.js +1 -1
- package/dist/lib/widgets/stepper/ui/StepperCarousel.js.map +1 -1
- package/dist/lib/widgets/usefulInfo/UsefulInfo.js +1 -1
- package/dist/lib/widgets/usefulInfo/UsefulInfo.js.map +1 -1
- package/dist/lib/widgets/usefulInfo/ui/subEntities/documents/Documents.js +1 -1
- package/dist/lib/widgets/usefulInfo/ui/subEntities/documents/Documents.js.map +1 -1
- package/dist/lib/widgets/usefulInfo/ui/subEntities/documents/ui/document/Document.js +1 -1
- package/dist/lib/widgets/usefulInfo/ui/subEntities/documents/ui/document/Document.js.map +1 -1
- package/dist/lib/widgets/usefulInfo/ui/subEntities/html/Html.js +1 -1
- package/dist/lib/widgets/usefulInfo/ui/subEntities/html/Html.js.map +1 -1
- package/dist/lib/widgets/usefulInfo/ui/subEntities/table/Table.js +1 -1
- package/dist/lib/widgets/usefulInfo/ui/subEntities/table/Table.js.map +1 -1
- package/dist/lib/widgets/userFeedback/UserFeedback.js +1 -1
- package/dist/lib/widgets/userFeedback/UserFeedback.js.map +1 -1
- package/dist/lib/widgets/userFeedback/ui/FeedbackTrigger.js +1 -1
- package/dist/lib/widgets/userFeedback/ui/FeedbackTrigger.js.map +1 -1
- package/dist/lib/widgets/userFeedback/ui/Finally.js +1 -1
- package/dist/lib/widgets/userFeedback/ui/Finally.js.map +1 -1
- package/dist/lib/widgets/userFeedback/ui/SelectRating.js +1 -1
- package/dist/lib/widgets/userFeedback/ui/SelectRating.js.map +1 -1
- package/dist/node_modules/@hookform/resolvers/dist/resolvers.js +2 -0
- package/dist/node_modules/@hookform/resolvers/dist/resolvers.js.map +1 -0
- package/dist/node_modules/@hookform/resolvers/zod/dist/zod.js +1 -1
- package/dist/node_modules/@hookform/resolvers/zod/dist/zod.js.map +1 -1
- package/dist/node_modules/@tanstack/query-core/build/modern/queryObserver.js +1 -1
- package/dist/node_modules/@tanstack/query-core/build/modern/queryObserver.js.map +1 -1
- package/dist/node_modules/@tiptap/react/dist/index.js.map +1 -1
- package/dist/node_modules/prosemirror-model/dist/index.js +3 -3
- package/dist/node_modules/prosemirror-model/dist/index.js.map +1 -1
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2 -0
- package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/dist/node_modules/tailwindcss/plugin.js +1 -1
- package/dist/node_modules/tailwindcss-animate/index.js +2 -0
- package/dist/node_modules/tailwindcss-animate/index.js.map +1 -0
- package/dist/src/shared/utils/getDynamicSchema.js +1 -1
- package/dist/src/shared/utils/getDynamicSchema.js.map +1 -1
- package/dist/stats.html +1 -1
- package/package.json +5 -5
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as m,jsx as t}from"react/jsx-runtime";import{useDevice as q}from"../../hooks/useDevice.js";import"react";import{cn as r}from"../../utils/cn.js";import
|
|
1
|
+
import{jsxs as m,jsx as t}from"react/jsx-runtime";import{useDevice as q}from"../../hooks/useDevice.js";import"react";import{cn as r}from"../../utils/cn.js";import{Heading as z}from"../heading/Heading.js";import{useArrowNavigation as E}from"./model/hooks/useArrowNavigation.js";import{useDotsNavigation as F}from"./model/hooks/useDotsNavigation.js";import{useCarousel as G}from"./model/hooks/useCarousel.js";import{defaultCarouselOptions as A,defaultNavArrowOptions as h,defaultDotsOptions as b,defaultAutoPlayOptions as J}from"./model/helpers.js";import{ArrowNavigationButton as l}from"./ui/ArrowNavigationButton.js";import"../button/Button.js";import{CarouselContent as D}from"./ui/CarouselContent.js";import{ContainerWithNavigation as K}from"./ui/ContainerWithNavigation.js";const no=({dotsOptions:x=b,navArrowOptions:k=h,carouselOptions:B=A,heading:p,autoPlayOptions:P,setVisibleIndex:y,visibleIndex:a,children:d,classes:o,...j})=>{const H={...A,...B},M={...J,...P},W={...h,...k},f={...b,...x},{emblaApi:u,navigationHandler:v,emblaRef:w}=G({carouselOptions:H,autoPlayOptions:M}),N=F({emblaApi:u,navigationHandler:v,setVisibleIndex:y}),{prevBtnDisabled:g,nextBtnDisabled:C,onClickNavigationButton:i}=E({emblaApi:u,navigationHandler:v}),{isMobile:R,isDesktop:V}=q(),{deskVisible:L,mobVisible:T,position:n}=W??{},e=L&&V||T&&R,O=!!p||e&&n==="top-right";return m("div",{className:r("flex flex-col",o==null?void 0:o.root),...j,children:[O&&m("div",{className:r("flex items-center justify-between gap-6",{"mb-6":O},o==null?void 0:o.header),children:[!!p&&t(z,{as:"h2",className:r(o==null?void 0:o.heading),children:"Другие предложения"}),e&&n==="top-right"&&m("div",{className:r("ml-auto flex items-center gap-2",o==null?void 0:o.arrowsNavWrapper),children:[t(l,{mode:"prev",onClick:i,disabled:g,classes:o==null?void 0:o.arrowLeftClasses}),t(l,{mode:"next",onClick:i,disabled:C,classes:o==null?void 0:o.arrowRightClasses})]})]}),e&&n==="center"?t(K,{onClickNavigationButton:i,prevBtnDisabled:g,nextBtnDisabled:C,classes:o==null?void 0:o.containerWithNavClasses,children:t(D,{visibleIndex:a,dotsOptions:f,ref:w,dotsProps:N,classes:o==null?void 0:o.carouselContentClasses,children:d})}):t(D,{visibleIndex:a,dotsOptions:f,ref:w,dotsProps:N,classes:o==null?void 0:o.carouselContentClasses,children:d})]})};export{no as CarouselBase};
|
|
2
2
|
//# sourceMappingURL=CarouselBase.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselBase.js","sources":["../../../../../lib/shared/ui/carousel/CarouselBase.tsx"],"sourcesContent":["import { type HTMLAttributes, type ReactNode } from 'react'\nimport { type EmblaOptionsType } from 'embla-carousel'\nimport type { AutoplayOptionsType } from 'embla-carousel-autoplay'\nimport { useDevice } from '../../hooks'\nimport { Heading } from '../heading'\nimport {\n defaultAutoPlayOptions,\n defaultCarouselOptions,\n defaultDotsOptions,\n defaultNavArrowOptions,\n type DotsOptions,\n type NavArrowOptions,\n useArrowNavigation,\n useCarousel,\n useDotsNavigation\n} from './model'\nimport { ArrowNavigationButton, type ArrowNavigationButtonClasses, CarouselContent, type CarouselContentClasses } from './ui'\nimport { ContainerWithNavigation, type ContainerWithNavigationClasses } from './ui/ContainerWithNavigation'\nimport { cn } from '$/shared/utils'\n\nexport type CarouselClasses = {\n root?: string\n header?: string\n heading?: string\n arrowsNavWrapper?: string\n arrowLeftClasses?: ArrowNavigationButtonClasses\n arrowRightClasses?: ArrowNavigationButtonClasses\n containerWithNavClasses?: ContainerWithNavigationClasses\n carouselContentClasses?: CarouselContentClasses\n}\n\nexport interface CarouselBaseProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n heading?: string\n carouselOptions?: EmblaOptionsType\n dotsOptions?: DotsOptions\n navArrowOptions?: NavArrowOptions\n autoPlayOptions?: AutoplayOptionsType\n setVisibleIndex: (index: number) => void\n visibleIndex: number\n classes?: CarouselClasses\n}\n\nexport const CarouselBase = ({\n dotsOptions = defaultDotsOptions,\n navArrowOptions = defaultNavArrowOptions,\n carouselOptions = defaultCarouselOptions,\n heading,\n autoPlayOptions,\n setVisibleIndex,\n visibleIndex,\n children,\n classes,\n ...props\n}: CarouselBaseProps) => {\n const mergedCarouselOptions = { ...defaultCarouselOptions, ...carouselOptions }\n const mergedAutoPlayOptions = { ...defaultAutoPlayOptions, ...autoPlayOptions }\n const mergedNavArrowOptions = { ...defaultNavArrowOptions, ...navArrowOptions }\n const mergedDotsOptions = { ...defaultDotsOptions, ...dotsOptions }\n\n const { emblaApi, navigationHandler, emblaRef } = useCarousel({\n carouselOptions: mergedCarouselOptions,\n autoPlayOptions: mergedAutoPlayOptions\n })\n\n const dotsProps = useDotsNavigation({ emblaApi, navigationHandler, setVisibleIndex })\n const { prevBtnDisabled, nextBtnDisabled, onClickNavigationButton } = useArrowNavigation({\n emblaApi,\n navigationHandler\n })\n\n const { isMobile, isDesktop } = useDevice()\n const { deskVisible, mobVisible, position: navArrowPosition } = mergedNavArrowOptions ?? {}\n\n //Отображения стрелок если переданы и мобильное разрешение\n const withNavArrowsOnMob = mobVisible && isMobile\n //Отображения стрелок если переданы и полноэкранное разрешение\n const winNavArrowsOnDesk = deskVisible && isDesktop\n //Отображения стрелок если переданы\n const winNavArrows = winNavArrowsOnDesk || withNavArrowsOnMob\n\n const withHeadingAndArrowsTop = Boolean(heading) || (winNavArrows && navArrowPosition === 'top-right')\n\n return (\n <div className={cn('flex flex-col', classes?.root)} {...props}>\n {withHeadingAndArrowsTop && (\n <div className={cn('flex items-center justify-between gap-6', { 'mb-6': withHeadingAndArrowsTop }, classes?.header)}>\n {Boolean(heading) && (\n <Heading as='h2' className={cn(classes?.heading)}>\n Другие предложения\n </Heading>\n )}\n\n {winNavArrows && navArrowPosition === 'top-right' && (\n <div className={cn('ml-auto flex items-center gap-2', classes?.arrowsNavWrapper)}>\n <ArrowNavigationButton\n mode='prev'\n onClick={onClickNavigationButton}\n disabled={prevBtnDisabled}\n classes={classes?.arrowLeftClasses}\n />\n <ArrowNavigationButton\n mode='next'\n onClick={onClickNavigationButton}\n disabled={nextBtnDisabled}\n classes={classes?.arrowRightClasses}\n />\n </div>\n )}\n </div>\n )}\n\n {winNavArrows && navArrowPosition === 'center' ? (\n <ContainerWithNavigation\n onClickNavigationButton={onClickNavigationButton}\n prevBtnDisabled={prevBtnDisabled}\n nextBtnDisabled={nextBtnDisabled}\n classes={classes?.containerWithNavClasses}\n >\n <CarouselContent\n visibleIndex={visibleIndex}\n dotsOptions={mergedDotsOptions}\n ref={emblaRef}\n dotsProps={dotsProps}\n classes={classes?.carouselContentClasses}\n >\n {children}\n </CarouselContent>\n </ContainerWithNavigation>\n ) : (\n <CarouselContent\n visibleIndex={visibleIndex}\n dotsOptions={mergedDotsOptions}\n ref={emblaRef}\n dotsProps={dotsProps}\n classes={classes?.carouselContentClasses}\n >\n {children}\n </CarouselContent>\n )}\n </div>\n )\n}\n"],"names":["CarouselBase","dotsOptions","defaultDotsOptions","navArrowOptions","defaultNavArrowOptions","carouselOptions","defaultCarouselOptions","heading","autoPlayOptions","setVisibleIndex","visibleIndex","children","classes","props","mergedCarouselOptions","mergedAutoPlayOptions","defaultAutoPlayOptions","mergedNavArrowOptions","mergedDotsOptions","emblaApi","navigationHandler","emblaRef","useCarousel","dotsProps","useDotsNavigation","prevBtnDisabled","nextBtnDisabled","onClickNavigationButton","useArrowNavigation","isMobile","isDesktop","useDevice","deskVisible","mobVisible","navArrowPosition","winNavArrows","withHeadingAndArrowsTop","jsxs","cn","jsx","Heading","ArrowNavigationButton","ContainerWithNavigation","CarouselContent"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CarouselBase.js","sources":["../../../../../lib/shared/ui/carousel/CarouselBase.tsx"],"sourcesContent":["import { type HTMLAttributes, type ReactNode } from 'react'\nimport { type EmblaOptionsType } from 'embla-carousel'\nimport type { AutoplayOptionsType } from 'embla-carousel-autoplay'\nimport { useDevice } from '../../hooks'\nimport { Heading } from '../heading'\nimport {\n defaultAutoPlayOptions,\n defaultCarouselOptions,\n defaultDotsOptions,\n defaultNavArrowOptions,\n type DotsOptions,\n type NavArrowOptions,\n useArrowNavigation,\n useCarousel,\n useDotsNavigation\n} from './model'\nimport { ArrowNavigationButton, type ArrowNavigationButtonClasses, CarouselContent, type CarouselContentClasses } from './ui'\nimport { ContainerWithNavigation, type ContainerWithNavigationClasses } from './ui/ContainerWithNavigation'\nimport { cn } from '$/shared/utils'\n\nexport type CarouselClasses = {\n root?: string\n header?: string\n heading?: string\n arrowsNavWrapper?: string\n arrowLeftClasses?: ArrowNavigationButtonClasses\n arrowRightClasses?: ArrowNavigationButtonClasses\n containerWithNavClasses?: ContainerWithNavigationClasses\n carouselContentClasses?: CarouselContentClasses\n}\n\nexport interface CarouselBaseProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode\n heading?: string\n carouselOptions?: EmblaOptionsType\n dotsOptions?: DotsOptions\n navArrowOptions?: NavArrowOptions\n autoPlayOptions?: AutoplayOptionsType\n setVisibleIndex: (index: number) => void\n visibleIndex: number\n classes?: CarouselClasses\n}\n\nexport const CarouselBase = ({\n dotsOptions = defaultDotsOptions,\n navArrowOptions = defaultNavArrowOptions,\n carouselOptions = defaultCarouselOptions,\n heading,\n autoPlayOptions,\n setVisibleIndex,\n visibleIndex,\n children,\n classes,\n ...props\n}: CarouselBaseProps) => {\n const mergedCarouselOptions = { ...defaultCarouselOptions, ...carouselOptions }\n const mergedAutoPlayOptions = { ...defaultAutoPlayOptions, ...autoPlayOptions }\n const mergedNavArrowOptions = { ...defaultNavArrowOptions, ...navArrowOptions }\n const mergedDotsOptions = { ...defaultDotsOptions, ...dotsOptions }\n\n const { emblaApi, navigationHandler, emblaRef } = useCarousel({\n carouselOptions: mergedCarouselOptions,\n autoPlayOptions: mergedAutoPlayOptions\n })\n\n const dotsProps = useDotsNavigation({ emblaApi, navigationHandler, setVisibleIndex })\n const { prevBtnDisabled, nextBtnDisabled, onClickNavigationButton } = useArrowNavigation({\n emblaApi,\n navigationHandler\n })\n\n const { isMobile, isDesktop } = useDevice()\n const { deskVisible, mobVisible, position: navArrowPosition } = mergedNavArrowOptions ?? {}\n\n //Отображения стрелок если переданы и мобильное разрешение\n const withNavArrowsOnMob = mobVisible && isMobile\n //Отображения стрелок если переданы и полноэкранное разрешение\n const winNavArrowsOnDesk = deskVisible && isDesktop\n //Отображения стрелок если переданы\n const winNavArrows = winNavArrowsOnDesk || withNavArrowsOnMob\n\n const withHeadingAndArrowsTop = Boolean(heading) || (winNavArrows && navArrowPosition === 'top-right')\n\n return (\n <div className={cn('flex flex-col', classes?.root)} {...props}>\n {withHeadingAndArrowsTop && (\n <div className={cn('flex items-center justify-between gap-6', { 'mb-6': withHeadingAndArrowsTop }, classes?.header)}>\n {Boolean(heading) && (\n <Heading as='h2' className={cn(classes?.heading)}>\n Другие предложения\n </Heading>\n )}\n\n {winNavArrows && navArrowPosition === 'top-right' && (\n <div className={cn('ml-auto flex items-center gap-2', classes?.arrowsNavWrapper)}>\n <ArrowNavigationButton\n mode='prev'\n onClick={onClickNavigationButton}\n disabled={prevBtnDisabled}\n classes={classes?.arrowLeftClasses}\n />\n <ArrowNavigationButton\n mode='next'\n onClick={onClickNavigationButton}\n disabled={nextBtnDisabled}\n classes={classes?.arrowRightClasses}\n />\n </div>\n )}\n </div>\n )}\n\n {winNavArrows && navArrowPosition === 'center' ? (\n <ContainerWithNavigation\n onClickNavigationButton={onClickNavigationButton}\n prevBtnDisabled={prevBtnDisabled}\n nextBtnDisabled={nextBtnDisabled}\n classes={classes?.containerWithNavClasses}\n >\n <CarouselContent\n visibleIndex={visibleIndex}\n dotsOptions={mergedDotsOptions}\n ref={emblaRef}\n dotsProps={dotsProps}\n classes={classes?.carouselContentClasses}\n >\n {children}\n </CarouselContent>\n </ContainerWithNavigation>\n ) : (\n <CarouselContent\n visibleIndex={visibleIndex}\n dotsOptions={mergedDotsOptions}\n ref={emblaRef}\n dotsProps={dotsProps}\n classes={classes?.carouselContentClasses}\n >\n {children}\n </CarouselContent>\n )}\n </div>\n )\n}\n"],"names":["CarouselBase","dotsOptions","defaultDotsOptions","navArrowOptions","defaultNavArrowOptions","carouselOptions","defaultCarouselOptions","heading","autoPlayOptions","setVisibleIndex","visibleIndex","children","classes","props","mergedCarouselOptions","mergedAutoPlayOptions","defaultAutoPlayOptions","mergedNavArrowOptions","mergedDotsOptions","emblaApi","navigationHandler","emblaRef","useCarousel","dotsProps","useDotsNavigation","prevBtnDisabled","nextBtnDisabled","onClickNavigationButton","useArrowNavigation","isMobile","isDesktop","useDevice","deskVisible","mobVisible","navArrowPosition","winNavArrows","withHeadingAndArrowsTop","jsxs","cn","jsx","Heading","ArrowNavigationButton","ContainerWithNavigation","CarouselContent"],"mappings":"ywBA2CO,MAAMA,GAAe,CAAC,CAC3B,YAAAC,EAAcC,EACd,gBAAAC,EAAkBC,EAClB,gBAAAC,EAAkBC,EAClB,QAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,aAAAC,EACA,SAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAAyB,CACvB,MAAMC,EAAwB,CAAE,GAAGR,EAAwB,GAAGD,CAAA,EACxDU,EAAwB,CAAE,GAAGC,EAAwB,GAAGR,CAAA,EACxDS,EAAwB,CAAE,GAAGb,EAAwB,GAAGD,CAAA,EACxDe,EAAoB,CAAE,GAAGhB,EAAoB,GAAGD,CAAA,EAEhD,CAAE,SAAAkB,EAAU,kBAAAC,EAAmB,SAAAC,CAAA,EAAaC,EAAY,CAC5D,gBAAiBR,EACjB,gBAAiBC,CAAA,CAClB,EAEKQ,EAAYC,EAAkB,CAAE,SAAAL,EAAU,kBAAAC,EAAmB,gBAAAX,EAAiB,EAC9E,CAAE,gBAAAgB,EAAiB,gBAAAC,EAAiB,wBAAAC,CAAA,EAA4BC,EAAmB,CACvF,SAAAT,EACA,kBAAAC,CAAA,CACD,EAEK,CAAE,SAAAS,EAAU,UAAAC,CAAA,EAAcC,EAAA,EAC1B,CAAE,YAAAC,EAAa,WAAAC,EAAY,SAAUC,CAAA,EAAqBjB,GAAyB,CAAA,EAOnFkB,EAFqBH,GAAeF,GAFfG,GAAcJ,EAMnCO,EAA0B,EAAQ7B,GAAa4B,GAAgBD,IAAqB,YAE1F,OACEG,EAAC,OAAI,UAAWC,EAAG,gBAAiB1B,GAAA,YAAAA,EAAS,IAAI,EAAI,GAAGC,EACrD,SAAA,CAAAuB,GACCC,EAAC,MAAA,CAAI,UAAWC,EAAG,0CAA2C,CAAE,OAAQF,CAAA,EAA2BxB,GAAA,YAAAA,EAAS,MAAM,EAC/G,SAAA,CAAA,EAAQL,GACPgC,EAACC,EAAA,CAAQ,GAAG,KAAK,UAAWF,EAAG1B,GAAA,YAAAA,EAAS,OAAO,EAAG,SAAA,oBAAA,CAElD,EAGDuB,GAAgBD,IAAqB,aACpCG,EAAC,MAAA,CAAI,UAAWC,EAAG,kCAAmC1B,GAAA,YAAAA,EAAS,gBAAgB,EAC7E,SAAA,CAAA2B,EAACE,EAAA,CACC,KAAK,OACL,QAASd,EACT,SAAUF,EACV,QAASb,GAAA,YAAAA,EAAS,gBAAA,CAAA,EAEpB2B,EAACE,EAAA,CACC,KAAK,OACL,QAASd,EACT,SAAUD,EACV,QAASd,GAAA,YAAAA,EAAS,iBAAA,CAAA,CACpB,CAAA,CACF,CAAA,EAEJ,EAGDuB,GAAgBD,IAAqB,SACpCK,EAACG,EAAA,CACC,wBAAAf,EACA,gBAAAF,EACA,gBAAAC,EACA,QAASd,GAAA,YAAAA,EAAS,wBAElB,SAAA2B,EAACI,EAAA,CACC,aAAAjC,EACA,YAAaQ,EACb,IAAKG,EACL,UAAAE,EACA,QAASX,GAAA,YAAAA,EAAS,uBAEjB,SAAAD,CAAA,CAAA,CACH,CAAA,EAGF4B,EAACI,EAAA,CACC,aAAAjC,EACA,YAAaQ,EACb,IAAKG,EACL,UAAAE,EACA,QAASX,GAAA,YAAAA,EAAS,uBAEjB,SAAAD,CAAA,CAAA,CACH,EAEJ,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as t}from"react/jsx-runtime";import"react";import{SlideProductCard as r}from"../ui/slideVariants/SlideProductCard.js";import{SlideOnlyImage as o}from"../ui/slideVariants/SlideOnlyImage.js";import{SlideFullScreen as i}from"../ui/slideVariants/SlideFullScreen.js";import"../ui/CarouselContent.js";const c={dragFree:!0,loop:!1,align:"start",slidesToScroll:1},m={position:"center",deskVisible:!0,mobVisible:!0},f={position:"top-right",deskVisible:!0,mobVisible:!1},p={active:!0},S=e=>{switch(e.variant){case"productCard":return t(r,{...e});case"onlyImage":return t(o,{...e});case"fullScreen":return t(i,{...e})}};export{p as defaultAutoPlayOptions,c as defaultCarouselOptions,m as defaultDotsOptions,f as defaultNavArrowOptions,S as renderSlideVariant};
|
|
2
2
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../../../../lib/shared/ui/carousel/model/helpers.tsx"],"sourcesContent":["import type { EmblaOptionsType } from 'embla-carousel'\nimport type { AutoplayOptionsType } from 'embla-carousel-autoplay'\nimport { SlideFullScreen, SlideOnlyImage, SlideProductCard } from '../ui'\nimport type { CarouselSlideVariant, DotsOptions, NavArrowOptions } from './types'\nimport type { DiscriminatedUnion } from '$/shared/types'\n\nexport const defaultCarouselOptions: EmblaOptionsType = {\n dragFree: true,\n loop: false,\n align: 'start',\n slidesToScroll: 1\n}\n\nexport const defaultDotsOptions: DotsOptions = {\n position: 'center',\n deskVisible: true,\n mobVisible: true\n}\n\nexport const defaultNavArrowOptions: NavArrowOptions = {\n position: 'top-right',\n deskVisible: true,\n mobVisible: false\n}\n\nexport const defaultAutoPlayOptions: AutoplayOptionsType = {\n active: true\n}\n\nexport const renderSlideVariant = (props: DiscriminatedUnion<'variant', CarouselSlideVariant>) => {\n switch (props.variant) {\n case 'productCard':\n return <SlideProductCard {...props} />\n case 'onlyImage':\n return <SlideOnlyImage {...props} />\n case 'fullScreen':\n return <SlideFullScreen {...props} />\n }\n}\n"],"names":["defaultCarouselOptions","defaultDotsOptions","defaultNavArrowOptions","defaultAutoPlayOptions","renderSlideVariant","props","jsx","SlideProductCard","SlideOnlyImage","SlideFullScreen"],"mappings":"
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../../../../lib/shared/ui/carousel/model/helpers.tsx"],"sourcesContent":["import type { EmblaOptionsType } from 'embla-carousel'\nimport type { AutoplayOptionsType } from 'embla-carousel-autoplay'\nimport { SlideFullScreen, SlideOnlyImage, SlideProductCard } from '../ui'\nimport type { CarouselSlideVariant, DotsOptions, NavArrowOptions } from './types'\nimport type { DiscriminatedUnion } from '$/shared/types'\n\nexport const defaultCarouselOptions: EmblaOptionsType = {\n dragFree: true,\n loop: false,\n align: 'start',\n slidesToScroll: 1\n}\n\nexport const defaultDotsOptions: DotsOptions = {\n position: 'center',\n deskVisible: true,\n mobVisible: true\n}\n\nexport const defaultNavArrowOptions: NavArrowOptions = {\n position: 'top-right',\n deskVisible: true,\n mobVisible: false\n}\n\nexport const defaultAutoPlayOptions: AutoplayOptionsType = {\n active: true\n}\n\nexport const renderSlideVariant = (props: DiscriminatedUnion<'variant', CarouselSlideVariant>) => {\n switch (props.variant) {\n case 'productCard':\n return <SlideProductCard {...props} />\n case 'onlyImage':\n return <SlideOnlyImage {...props} />\n case 'fullScreen':\n return <SlideFullScreen {...props} />\n }\n}\n"],"names":["defaultCarouselOptions","defaultDotsOptions","defaultNavArrowOptions","defaultAutoPlayOptions","renderSlideVariant","props","jsx","SlideProductCard","SlideOnlyImage","SlideFullScreen"],"mappings":"kTAMO,MAAMA,EAA2C,CACtD,SAAU,GACV,KAAM,GACN,MAAO,QACP,eAAgB,CAClB,EAEaC,EAAkC,CAC7C,SAAU,SACV,YAAa,GACb,WAAY,EACd,EAEaC,EAA0C,CACrD,SAAU,YACV,YAAa,GACb,WAAY,EACd,EAEaC,EAA8C,CACzD,OAAQ,EACV,EAEaC,EAAsBC,GAA+D,CAChG,OAAQA,EAAM,QAAA,CACZ,IAAK,cACH,OAAOC,EAACC,EAAA,CAAkB,GAAGF,CAAA,CAAO,EACtC,IAAK,YACH,OAAOC,EAACE,EAAA,CAAgB,GAAGH,CAAA,CAAO,EACpC,IAAK,aACH,OAAOC,EAACG,EAAA,CAAiB,GAAGJ,CAAA,CAAO,CAAA,CAEzC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as l,jsx as t}from"react/jsx-runtime";import{forwardRef as x}from"react";import{DotsNavigations as a}from"./DotsNavigations.js";import{useDevice as w}from"../../../hooks/useDevice.js";import{cn as i}from"../../../utils/cn.js";
|
|
1
|
+
import{jsxs as l,jsx as t}from"react/jsx-runtime";import{forwardRef as x}from"react";import{DotsNavigations as a}from"./DotsNavigations.js";import{useDevice as w}from"../../../hooks/useDevice.js";import{cn as i}from"../../../utils/cn.js";const j=x(({visibleIndex:r,classes:o,children:n,dotsProps:e,dotsOptions:m},p)=>{const{isMobile:d,isDesktop:f}=w(),{mobVisible:s,deskVisible:u,...v}=m??{},D=s&&d,b=u&&f,h={visibleIndex:r,...e};return l("div",{className:i("mx-auto overflow-hidden",o==null?void 0:o.slidesOverlay),ref:p,children:[t("div",{className:i("flex touch-pan-y gap-6",o==null?void 0:o.slidesWrapper),children:n}),(b||D)&&t(a,{...h,...v})]})});export{j as CarouselContent};
|
|
2
2
|
//# sourceMappingURL=CarouselContent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselContent.js","sources":["../../../../../../lib/shared/ui/carousel/ui/CarouselContent.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from 'react'\nimport type { DotsOptions, UseDotsNavigationReturn } from '../model'\nimport { DotsNavigations, type DotsNavigationsClasses } from './DotsNavigations'\nimport { useDevice } from '$/shared/hooks'\nimport { cn } from '$/shared/utils'\n\nexport type CarouselContentClasses = {\n dotsClasses?: DotsNavigationsClasses\n slidesOverlay?: string\n slidesWrapper?: string\n}\n\nexport interface CarouselContentProps {\n classes?: CarouselContentClasses\n children: ReactNode\n dotsProps: UseDotsNavigationReturn\n dotsOptions: DotsOptions\n visibleIndex: number\n}\n\nexport const CarouselContent = forwardRef<HTMLDivElement, CarouselContentProps>(\n ({ visibleIndex, classes, children, dotsProps, dotsOptions }, ref) => {\n const { isMobile, isDesktop } = useDevice()\n const { mobVisible, deskVisible, ...dotsRestOptions } = dotsOptions ?? {}\n\n //Отображения точек если переданы и мобильное разрешение\n const withDotsOnMob = mobVisible && isMobile\n //Отображения точек если переданы и полноэкранное разрешение\n const withDotsOnDesk = deskVisible && isDesktop\n\n const dotsFullProps = {\n visibleIndex,\n ...dotsProps\n }\n\n return (\n <div className={cn('mx-auto overflow-hidden', classes?.slidesOverlay)} ref={ref}>\n <div className={cn('flex touch-pan-y gap-6', classes?.slidesWrapper)}>{children}</div>\n {(withDotsOnDesk || withDotsOnMob) && <DotsNavigations {...dotsFullProps} {...dotsRestOptions} />}\n </div>\n )\n }\n)\n"],"names":["CarouselContent","forwardRef","visibleIndex","classes","children","dotsProps","dotsOptions","ref","isMobile","isDesktop","useDevice","mobVisible","deskVisible","dotsRestOptions","withDotsOnMob","withDotsOnDesk","dotsFullProps","jsxs","cn","jsx","DotsNavigations"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CarouselContent.js","sources":["../../../../../../lib/shared/ui/carousel/ui/CarouselContent.tsx"],"sourcesContent":["import { forwardRef, type ReactNode } from 'react'\nimport type { DotsOptions, UseDotsNavigationReturn } from '../model'\nimport { DotsNavigations, type DotsNavigationsClasses } from './DotsNavigations'\nimport { useDevice } from '$/shared/hooks'\nimport { cn } from '$/shared/utils'\n\nexport type CarouselContentClasses = {\n dotsClasses?: DotsNavigationsClasses\n slidesOverlay?: string\n slidesWrapper?: string\n}\n\nexport interface CarouselContentProps {\n classes?: CarouselContentClasses\n children: ReactNode\n dotsProps: UseDotsNavigationReturn\n dotsOptions: DotsOptions\n visibleIndex: number\n}\n\nexport const CarouselContent = forwardRef<HTMLDivElement, CarouselContentProps>(\n ({ visibleIndex, classes, children, dotsProps, dotsOptions }, ref) => {\n const { isMobile, isDesktop } = useDevice()\n const { mobVisible, deskVisible, ...dotsRestOptions } = dotsOptions ?? {}\n\n //Отображения точек если переданы и мобильное разрешение\n const withDotsOnMob = mobVisible && isMobile\n //Отображения точек если переданы и полноэкранное разрешение\n const withDotsOnDesk = deskVisible && isDesktop\n\n const dotsFullProps = {\n visibleIndex,\n ...dotsProps\n }\n\n return (\n <div className={cn('mx-auto overflow-hidden', classes?.slidesOverlay)} ref={ref}>\n <div className={cn('flex touch-pan-y gap-6', classes?.slidesWrapper)}>{children}</div>\n {(withDotsOnDesk || withDotsOnMob) && <DotsNavigations {...dotsFullProps} {...dotsRestOptions} />}\n </div>\n )\n }\n)\n"],"names":["CarouselContent","forwardRef","visibleIndex","classes","children","dotsProps","dotsOptions","ref","isMobile","isDesktop","useDevice","mobVisible","deskVisible","dotsRestOptions","withDotsOnMob","withDotsOnDesk","dotsFullProps","jsxs","cn","jsx","DotsNavigations"],"mappings":"8OAoBO,MAAMA,EAAkBC,EAC7B,CAAC,CAAE,aAAAC,EAAc,QAAAC,EAAS,SAAAC,EAAU,UAAAC,EAAW,YAAAC,CAAA,EAAeC,IAAQ,CACpE,KAAM,CAAE,SAAAC,EAAU,UAAAC,CAAA,EAAcC,EAAA,EAC1B,CAAE,WAAAC,EAAY,YAAAC,EAAa,GAAGC,CAAA,EAAoBP,GAAe,CAAA,EAGjEQ,EAAgBH,GAAcH,EAE9BO,EAAiBH,GAAeH,EAEhCO,EAAgB,CACpB,aAAAd,EACA,GAAGG,CAAA,EAGL,OACEY,EAAC,OAAI,UAAWC,EAAG,0BAA2Bf,GAAA,YAAAA,EAAS,aAAa,EAAG,IAAAI,EACrE,SAAA,CAAAY,EAAC,OAAI,UAAWD,EAAG,yBAA0Bf,GAAA,YAAAA,EAAS,aAAa,EAAI,SAAAC,EAAS,GAC9EW,GAAkBD,IAAkBK,EAACC,GAAiB,GAAGJ,EAAgB,GAAGH,CAAA,CAAiB,CAAA,EACjG,CAEJ,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as o,jsxs as s}from"react/jsx-runtime";import{useRef as l}from"react";import{createPortal as u}from"react-dom";import{useClickOutside as x}from"../../hooks/useClickOutside.js";import
|
|
1
|
+
import{jsx as o,jsxs as s}from"react/jsx-runtime";import{useRef as l}from"react";import{createPortal as u}from"react-dom";import{useClickOutside as x}from"../../hooks/useClickOutside.js";import{cn as g}from"../../utils/cn.js";import"../button/Button.js";import"../buttonIcon/ButtonIcon.js";import"../calendar/Calendar.js";import"../calendar/model/utils.js";import"../accordion/Accordion.js";import"../modal/ui/IframeModalContent.js";import"../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as b}from"../icon/Icon.js";import"../table/ui/primitives/Primitives.js";import{Heading as h}from"../heading/Heading.js";import"../carousel/ui/CarouselContent.js";import"../slot/Slot.js";import"../formElements/uncontrolled/autocomplete/Autocomplete.js";import"../formElements/uncontrolled/checkbox/Checkbox.js";import"../dropdownList/ui/dropdownItem/DropdownItem.js";import"../formElements/uncontrolled/input/Input.js";import"../formElements/uncontrolled/dayPicker/DayPicker.js";import"../formElements/uncontrolled/inputOtp/InputOtpBase.js";import"../formElements/uncontrolled/maskInput/MaskInput.js";import"../formElements/uncontrolled/radio/RadioGroup.js";import"../formElements/uncontrolled/radio/ui/RadioItem.js";import"../formElements/uncontrolled/select/Select.js";import"../formElements/uncontrolled/slider/SliderBase.js";import"../formElements/uncontrolled/switch/Switch.js";import"../formElements/uncontrolled/textarea/Textarea.js";import"../formElements/uncontrolled/uploader/UploaderBase.js";import"../formElements/controlled/editor/ui/Editor.js";import"../formElements/controlled/input/MaskInputControl.js";const _=({className:n,children:c,title:e,portal:i=(d=>(d=globalThis==null?void 0:globalThis.document)==null?void 0:d.body)(),...a})=>{const r=l(null),m=l(null),t=()=>{r.current&&r.current.close()};x(m,t);const p=o("dialog",{ref:r,...a,className:"group z-10 border-none",onKeyDown:f=>{f.key==="Escape"&&t()},children:o("div",{className:"fixed inset-0 flex items-center justify-center bg-color-overlay",children:s("div",{ref:m,className:g("w-full bg-color-white px-4 py-6 shadow-sm desktop:max-w-[600px] desktop:rounded-md desktop:px-6 desktop:py-8","rounded-tl-md rounded-tr-md mobile:absolute mobile:bottom-0",n),children:[s("div",{className:"flex items-start justify-between gap-4",children:[e&&o(h,{as:"h3",className:"flex-1 text-color-dark",children:e}),o(b,{onClick:t,name:"general/close",className:"ml-auto size-6 cursor-pointer text-icon-dark-hover"})]}),o("div",{className:"mt-4",children:c})]})})});return i?u(p,i):p};export{_ as Dialog};
|
|
2
2
|
//# sourceMappingURL=Dialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dialog.js","sources":["../../../../../lib/shared/ui/dialog/Dialog.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { createPortal } from 'react-dom'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Heading, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface DialogProps extends React.DialogHTMLAttributes<HTMLDialogElement> {\n title?: string\n portal?: HTMLElement\n}\n\nexport const Dialog = ({ className, children, title, portal = globalThis?.document?.body, ...props }: DialogProps) => {\n const dialogRef = useRef<HTMLDialogElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n\n const onClose = () => {\n if (!dialogRef.current) return\n\n dialogRef.current.close()\n }\n\n useClickOutside(contentRef, onClose)\n\n const dialog = (\n <dialog\n ref={dialogRef}\n {...props}\n className='group z-10 border-none'\n onKeyDown={(event) => {\n if (event.key === 'Escape') {\n onClose()\n }\n }}\n >\n <div className='fixed inset-0 flex items-center justify-center bg-color-overlay'>\n <div\n ref={contentRef}\n className={cn(\n 'w-full bg-color-white px-4 py-6 shadow-sm desktop:max-w-[600px] desktop:rounded-md desktop:px-6 desktop:py-8',\n 'rounded-tl-md rounded-tr-md mobile:absolute mobile:bottom-0',\n className\n )}\n >\n <div className='flex items-start justify-between gap-4'>\n {title && (\n <Heading as='h3' className='flex-1 text-color-dark'>\n {title}\n </Heading>\n )}\n <Icon onClick={onClose} name='general/close' className='ml-auto size-6 cursor-pointer text-icon-dark-hover' />\n </div>\n <div className='mt-4'>{children}</div>\n </div>\n </div>\n </dialog>\n )\n\n return portal ? createPortal(dialog, portal) : dialog\n}\n"],"names":["Dialog","className","children","title","portal","_a","props","dialogRef","useRef","contentRef","onClose","useClickOutside","dialog","jsx","event","jsxs","cn","Heading","Icon","createPortal"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Dialog.js","sources":["../../../../../lib/shared/ui/dialog/Dialog.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { createPortal } from 'react-dom'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Heading, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface DialogProps extends React.DialogHTMLAttributes<HTMLDialogElement> {\n title?: string\n portal?: HTMLElement\n}\n\nexport const Dialog = ({ className, children, title, portal = globalThis?.document?.body, ...props }: DialogProps) => {\n const dialogRef = useRef<HTMLDialogElement>(null)\n const contentRef = useRef<HTMLDivElement>(null)\n\n const onClose = () => {\n if (!dialogRef.current) return\n\n dialogRef.current.close()\n }\n\n useClickOutside(contentRef, onClose)\n\n const dialog = (\n <dialog\n ref={dialogRef}\n {...props}\n className='group z-10 border-none'\n onKeyDown={(event) => {\n if (event.key === 'Escape') {\n onClose()\n }\n }}\n >\n <div className='fixed inset-0 flex items-center justify-center bg-color-overlay'>\n <div\n ref={contentRef}\n className={cn(\n 'w-full bg-color-white px-4 py-6 shadow-sm desktop:max-w-[600px] desktop:rounded-md desktop:px-6 desktop:py-8',\n 'rounded-tl-md rounded-tr-md mobile:absolute mobile:bottom-0',\n className\n )}\n >\n <div className='flex items-start justify-between gap-4'>\n {title && (\n <Heading as='h3' className='flex-1 text-color-dark'>\n {title}\n </Heading>\n )}\n <Icon onClick={onClose} name='general/close' className='ml-auto size-6 cursor-pointer text-icon-dark-hover' />\n </div>\n <div className='mt-4'>{children}</div>\n </div>\n </div>\n </dialog>\n )\n\n return portal ? createPortal(dialog, portal) : dialog\n}\n"],"names":["Dialog","className","children","title","portal","_a","props","dialogRef","useRef","contentRef","onClose","useClickOutside","dialog","jsx","event","jsxs","cn","Heading","Icon","createPortal"],"mappings":"0lDAWO,MAAMA,EAAS,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,MAAAC,EAAO,OAAAC,GAASC,MAAA,mCAAY,WAAZ,YAAAA,EAAsB,QAAM,GAAGC,CAAA,IAAyB,CACpH,MAAMC,EAAYC,EAA0B,IAAI,EAC1CC,EAAaD,EAAuB,IAAI,EAExCE,EAAU,IAAM,CACfH,EAAU,SAEfA,EAAU,QAAQ,MAAA,CACpB,EAEAI,EAAgBF,EAAYC,CAAO,EAEnC,MAAME,EACJC,EAAC,SAAA,CACC,IAAKN,EACJ,GAAGD,EACJ,UAAU,yBACV,UAAYQ,GAAU,CAChBA,EAAM,MAAQ,UAChBJ,EAAA,CAEJ,EAEA,SAAAG,EAAC,MAAA,CAAI,UAAU,kEACb,SAAAE,EAAC,MAAA,CACC,IAAKN,EACL,UAAWO,EACT,+GACA,8DACAf,CAAA,EAGF,SAAA,CAAAc,EAAC,MAAA,CAAI,UAAU,yCACZ,SAAA,CAAAZ,KACEc,EAAA,CAAQ,GAAG,KAAK,UAAU,yBACxB,SAAAd,EACH,IAEDe,EAAA,CAAK,QAASR,EAAS,KAAK,gBAAgB,UAAU,oDAAA,CAAqD,CAAA,EAC9G,EACAG,EAAC,MAAA,CAAI,UAAU,OAAQ,SAAAX,CAAA,CAAS,CAAA,CAAA,CAAA,CAClC,CACF,CAAA,CAAA,EAIJ,OAAOE,EAASe,EAAaP,EAAQR,CAAM,EAAIQ,CACjD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{useRef as v}from"react";import{useKeyboardNavigation as b}from"./hooks/useKeyboardNavigation.js";import{isOptionActive as l}from"./model/utils.js";import{DropdownItem as _}from"./ui/dropdownItem/DropdownItem.js";import{useClickOutside as g}from"../../hooks/useClickOutside.js";import{cn as y}from"../../utils/cn.js";const j=({options:e,multiple:m,onPick:f,value:p,className:d,displayValue:c,classes:o,...x})=>{const w=v(null),{refs:u,focusedIndex:a,setFocusedIndex:r}=b({options:e,multiple:m,onPick:f});return g(w,()=>r(-1)),i("ul",{...x,ref:u.setRoot(),className:y("customScrollbar-y mt-1 max-h-[264px] w-full overflow-y-auto scroll-smooth rounded-md bg-color-white p-1 shadow-[0_8px_20px_0px_rgba(41,41,41,0.08)]",o==null?void 0:o.root,d),children:e.map((n,t)=>{const h=l(n,p);return i(_,{ref:u.setReference,item:n,active:h,focused:a===t,multiple:m,onPick:f,displayValue:c,onMouseEnter:()=>r(t),onMouseLeave:()=>r(-1),classes:o==null?void 0:o.item},t)})})};export{j as DropdownList};
|
|
2
2
|
//# sourceMappingURL=DropdownList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropdownList.js","sources":["../../../../../lib/shared/ui/dropdownList/DropdownList.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { useKeyboardNavigation } from './hooks'\nimport { isOptionActive } from './model'\nimport { DropdownItem, type DropdownItemClasses, type DropdownItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { cn } from '$/shared/utils'\n\nexport type DropdownListClasses = {\n root?: string\n item?: DropdownItemClasses\n}\n\nexport interface DropdownListProps<Multi extends boolean> extends React.HTMLAttributes<HTMLUListElement> {\n options: DropdownItemOption[]\n /**\n * Значения выбранные по умолчанию\n */\n value?: Multi extends true ? DropdownItemOption[] : DropdownItemOption | null\n /**\n * Функция при выборе значения из списка\n * @param item\n */\n onPick?: (item: DropdownItemOption) => void\n /**\n * Поддержка множественного выбора\n */\n multiple: Multi\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: DropdownItemOption) => string\n /**\n * Дополнительные стили\n */\n classes?: DropdownListClasses\n}\n\nexport const DropdownList = <Multi extends boolean>({\n options,\n multiple,\n onPick,\n value,\n className,\n displayValue,\n classes,\n ...props\n}: DropdownListProps<Multi>) => {\n const ref = useRef<HTMLUListElement>(null)\n\n const { refs, focusedIndex, setFocusedIndex } = useKeyboardNavigation<HTMLUListElement, HTMLLIElement>({\n options,\n multiple,\n onPick\n })\n\n useClickOutside(ref, () => setFocusedIndex(-1))\n\n return (\n <ul\n {...props}\n ref={refs.setRoot()}\n className={cn(\n 'customScrollbar-y mt-1 max-h-[264px] w-full overflow-y-auto scroll-smooth rounded-md bg-color-white p-1 shadow-[0_8px_20px_0px_rgba(41,41,41,0.08)]',\n classes?.root,\n className\n )}\n >\n {options.map((option, index) => {\n const active = isOptionActive(option, value)\n\n return (\n <DropdownItem\n ref={refs.setReference}\n key={index}\n item={option}\n active={active}\n focused={focusedIndex === index}\n multiple={multiple}\n onPick={onPick}\n displayValue={displayValue}\n onMouseEnter={() => setFocusedIndex(index)}\n onMouseLeave={() => setFocusedIndex(-1)}\n classes={classes?.item}\n />\n )\n })}\n </ul>\n )\n}\n"],"names":["DropdownList","options","multiple","onPick","value","className","displayValue","classes","props","ref","useRef","refs","focusedIndex","setFocusedIndex","useKeyboardNavigation","useClickOutside","jsx","cn","option","index","active","isOptionActive","DropdownItem"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DropdownList.js","sources":["../../../../../lib/shared/ui/dropdownList/DropdownList.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { useKeyboardNavigation } from './hooks'\nimport { isOptionActive } from './model'\nimport { DropdownItem, type DropdownItemClasses, type DropdownItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { cn } from '$/shared/utils'\n\nexport type DropdownListClasses = {\n root?: string\n item?: DropdownItemClasses\n}\n\nexport interface DropdownListProps<Multi extends boolean> extends React.HTMLAttributes<HTMLUListElement> {\n options: DropdownItemOption[]\n /**\n * Значения выбранные по умолчанию\n */\n value?: Multi extends true ? DropdownItemOption[] : DropdownItemOption | null\n /**\n * Функция при выборе значения из списка\n * @param item\n */\n onPick?: (item: DropdownItemOption) => void\n /**\n * Поддержка множественного выбора\n */\n multiple: Multi\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: DropdownItemOption) => string\n /**\n * Дополнительные стили\n */\n classes?: DropdownListClasses\n}\n\nexport const DropdownList = <Multi extends boolean>({\n options,\n multiple,\n onPick,\n value,\n className,\n displayValue,\n classes,\n ...props\n}: DropdownListProps<Multi>) => {\n const ref = useRef<HTMLUListElement>(null)\n\n const { refs, focusedIndex, setFocusedIndex } = useKeyboardNavigation<HTMLUListElement, HTMLLIElement>({\n options,\n multiple,\n onPick\n })\n\n useClickOutside(ref, () => setFocusedIndex(-1))\n\n return (\n <ul\n {...props}\n ref={refs.setRoot()}\n className={cn(\n 'customScrollbar-y mt-1 max-h-[264px] w-full overflow-y-auto scroll-smooth rounded-md bg-color-white p-1 shadow-[0_8px_20px_0px_rgba(41,41,41,0.08)]',\n classes?.root,\n className\n )}\n >\n {options.map((option, index) => {\n const active = isOptionActive(option, value)\n\n return (\n <DropdownItem\n ref={refs.setReference}\n key={index}\n item={option}\n active={active}\n focused={focusedIndex === index}\n multiple={multiple}\n onPick={onPick}\n displayValue={displayValue}\n onMouseEnter={() => setFocusedIndex(index)}\n onMouseLeave={() => setFocusedIndex(-1)}\n classes={classes?.item}\n />\n )\n })}\n </ul>\n )\n}\n"],"names":["DropdownList","options","multiple","onPick","value","className","displayValue","classes","props","ref","useRef","refs","focusedIndex","setFocusedIndex","useKeyboardNavigation","useClickOutside","jsx","cn","option","index","active","isOptionActive","DropdownItem"],"mappings":"2WAqCO,MAAMA,EAAe,CAAwB,CAClD,QAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EACA,UAAAC,EACA,aAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAAgC,CAC9B,MAAMC,EAAMC,EAAyB,IAAI,EAEnC,CAAE,KAAAC,EAAM,aAAAC,EAAc,gBAAAC,CAAA,EAAoBC,EAAuD,CACrG,QAAAb,EACA,SAAAC,EACA,OAAAC,CAAA,CACD,EAED,OAAAY,EAAgBN,EAAK,IAAMI,EAAgB,EAAE,CAAC,EAG5CG,EAAC,KAAA,CACE,GAAGR,EACJ,IAAKG,EAAK,QAAA,EACV,UAAWM,EACT,sJACAV,GAAA,YAAAA,EAAS,KACTF,CAAA,EAGD,SAAAJ,EAAQ,IAAI,CAACiB,EAAQC,IAAU,CAC9B,MAAMC,EAASC,EAAeH,EAAQd,CAAK,EAE3C,OACEY,EAACM,EAAA,CACC,IAAKX,EAAK,aAEV,KAAMO,EACN,OAAAE,EACA,QAASR,IAAiBO,EAC1B,SAAAjB,EACA,OAAAC,EACA,aAAAG,EACA,aAAc,IAAMO,EAAgBM,CAAK,EACzC,aAAc,IAAMN,EAAgB,EAAE,EACtC,QAASN,GAAA,YAAAA,EAAS,IAAA,EATbY,CAAA,CAYX,CAAC,CAAA,CAAA,CAGP"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as j,jsx as o}from"react/jsx-runtime";import{useController as v}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{cn as w}from"../../../../utils/cn.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react";import"
|
|
1
|
+
import{jsxs as j,jsx as o}from"react/jsx-runtime";import{useController as v}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{cn as w}from"../../../../utils/cn.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import{AutocompleteBase as A}from"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"../../uncontrolled/select/Select.js";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import{MessageView as C}from"../../ui/MessageView.js";const tt=({control:r,name:m,defaultValue:i,disabled:p,helperText:e,rules:s,shouldUnregister:l,classes:n,immediate:a=!0,...c})=>{const{field:f,fieldState:u}=v({control:r,name:m,defaultValue:i,disabled:p,rules:s,shouldUnregister:l}),{error:t,invalid:d}=u,{container:x,message:g}=n||{};return j("div",{className:w("w-full",x),children:[o(A,{...c,...f,immediate:a,invalid:d}),o(C,{className:g,text:(t==null?void 0:t.message)||e,intent:t?"error":"simple"})]})};export{tt as AutocompleteControl};
|
|
2
2
|
//# sourceMappingURL=Autocomplete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/autocomplete/Autocomplete.tsx"],"sourcesContent":["import { type Control, type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { MessageView } from '../../ui'\nimport { AutocompleteBase, type AutocompleteBaseProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type AutocompleteControlProps<\n TFieldValues extends FieldValues,\n T,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<AutocompleteBaseProps<T>, 'classes'> & {\n control: Control<TFieldValues>\n helperText?: string\n classes?: AutocompleteBaseProps<T>['classes'] & {\n container?: string\n message?: string\n }\n }\n\nexport const AutocompleteControl = <TFieldValues extends FieldValues, T>({\n control,\n name,\n defaultValue,\n disabled,\n helperText,\n rules,\n shouldUnregister,\n classes,\n immediate = true,\n ...props\n}: AutocompleteControlProps<TFieldValues, T>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister\n })\n\n const { error, invalid } = fieldState\n const { container, message } = classes || {}\n\n return (\n <div className={cn('w-full', container)}>\n <AutocompleteBase {...props} {...field} immediate={immediate} invalid={invalid} />\n <MessageView className={message} text={error?.message || helperText} intent={error ? 'error' : 'simple'} />\n </div>\n )\n}\n"],"names":["AutocompleteControl","control","name","defaultValue","disabled","helperText","rules","shouldUnregister","classes","immediate","props","field","fieldState","useController","error","invalid","container","message","cn","jsx","AutocompleteBase","MessageView"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Autocomplete.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/autocomplete/Autocomplete.tsx"],"sourcesContent":["import { type Control, type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { MessageView } from '../../ui'\nimport { AutocompleteBase, type AutocompleteBaseProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type AutocompleteControlProps<\n TFieldValues extends FieldValues,\n T,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<AutocompleteBaseProps<T>, 'classes'> & {\n control: Control<TFieldValues>\n helperText?: string\n classes?: AutocompleteBaseProps<T>['classes'] & {\n container?: string\n message?: string\n }\n }\n\nexport const AutocompleteControl = <TFieldValues extends FieldValues, T>({\n control,\n name,\n defaultValue,\n disabled,\n helperText,\n rules,\n shouldUnregister,\n classes,\n immediate = true,\n ...props\n}: AutocompleteControlProps<TFieldValues, T>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister\n })\n\n const { error, invalid } = fieldState\n const { container, message } = classes || {}\n\n return (\n <div className={cn('w-full', container)}>\n <AutocompleteBase {...props} {...field} immediate={immediate} invalid={invalid} />\n <MessageView className={message} text={error?.message || helperText} intent={error ? 'error' : 'simple'} />\n </div>\n )\n}\n"],"names":["AutocompleteControl","control","name","defaultValue","disabled","helperText","rules","shouldUnregister","classes","immediate","props","field","fieldState","useController","error","invalid","container","message","cn","jsx","AutocompleteBase","MessageView"],"mappings":"k+CAmBO,MAAMA,GAAsB,CAAsC,CACvE,QAAAC,EACA,KAAAC,EACA,aAAAC,EACA,SAAAC,EACA,WAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,QAAAC,EACA,UAAAC,EAAY,GACZ,GAAGC,CACL,IAAiD,CAC/C,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAZ,EACA,KAAAC,EACA,aAAAC,EACA,SAAAC,EACA,MAAAE,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAO,EAAO,QAAAC,CAAA,EAAYH,EACrB,CAAE,UAAAI,EAAW,QAAAC,CAAA,EAAYT,GAAW,CAAA,EAE1C,SACG,MAAA,CAAI,UAAWU,EAAG,SAAUF,CAAS,EACpC,SAAA,CAAAG,EAACC,GAAkB,GAAGV,EAAQ,GAAGC,EAAO,UAAAF,EAAsB,QAAAM,EAAkB,EAChFI,EAACE,EAAA,CAAY,UAAWJ,EAAS,MAAMH,GAAA,YAAAA,EAAO,UAAWT,EAAY,OAAQS,EAAQ,QAAU,QAAA,CAAU,CAAA,EAC3G,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as i,jsx as t}from"react/jsx-runtime";import{useId as w}from"react";import{useController as B}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{CheckboxBase as I}from"../../uncontrolled/checkbox/Checkbox.js";import{cn as e}from"../../../../utils/cn.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"
|
|
1
|
+
import{jsxs as i,jsx as t}from"react/jsx-runtime";import{useId as w}from"react";import{useController as B}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{CheckboxBase as I}from"../../uncontrolled/checkbox/Checkbox.js";import{cn as e}from"../../../../utils/cn.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"../../uncontrolled/select/Select.js";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import{MessageView as M}from"../../ui/MessageView.js";const lo=({control:s,classes:p,className:l,name:a,rules:c,shouldUnregister:n,defaultValue:d,disabled:o,children:x,helperText:f,...g})=>{const{field:h,fieldState:k}=B({control:s,name:a,rules:c,shouldUnregister:n,defaultValue:d,disabled:o}),{container:C,message:u,label:b,...v}=p||{},{value:y,onChange:N,...j}=h,{invalid:F,error:r}=k,m=w();return i("div",{className:e("flex flex-col gap-y-2",l),children:[i("div",{className:e("flex items-center justify-items-start gap-x-3",C),children:[t(I,{id:m,checked:y,onCheckedChange:N,invalid:F,classes:v,...g,...j}),t("label",{htmlFor:m,className:e("mob-body-regular-s text-color-dark","desktop:desk-body-regular-m desktop:gap-x-4",{"text-color-disabled":o},b),children:x})]}),t(M,{text:r?r.message:f,className:u,intent:r?"error":"simple",disabled:o})]})};export{lo as CheckboxControl};
|
|
2
2
|
//# sourceMappingURL=CheckboxControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CheckboxControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/checkbox/CheckboxControl.tsx"],"sourcesContent":["'use client'\n\nimport { useId } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { CheckboxBase, type CheckboxBaseProps } from '../../uncontrolled/checkbox'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype CheckboxControlClasses = CheckboxBaseProps['classes'] & {\n container?: string\n message?: string\n label?: string\n}\n\nexport type CheckboxControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<CheckboxBaseProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Отображаемый лейбл\n */\n children: React.ReactElement | string\n /**\n * Дополнительные стили компонента\n */\n classes?: CheckboxControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n }\n\nexport const CheckboxControl = <TFieldValues extends FieldValues = FieldValues>({\n control,\n classes,\n className,\n name,\n rules,\n shouldUnregister,\n defaultValue,\n disabled,\n children,\n helperText,\n ...props\n}: CheckboxControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n shouldUnregister,\n defaultValue,\n disabled\n })\n\n const { container, message, label, ...restClasses } = classes || {}\n const { value, onChange, ...restField } = field\n const { invalid, error } = fieldState\n\n const id = useId()\n\n return (\n <div className={cn('flex flex-col gap-y-2', className)}>\n <div className={cn('flex items-center justify-items-start gap-x-3', container)}>\n <CheckboxBase\n id={id}\n checked={value}\n onCheckedChange={onChange}\n invalid={invalid}\n classes={restClasses}\n {...props}\n {...restField}\n />\n <label\n htmlFor={id}\n className={cn(\n 'mob-body-regular-s text-color-dark',\n 'desktop:desk-body-regular-m desktop:gap-x-4',\n {\n 'text-color-disabled': disabled\n },\n label\n )}\n >\n {children}\n </label>\n </div>\n <MessageView\n text={error ? error.message : helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["CheckboxControl","control","classes","className","name","rules","shouldUnregister","defaultValue","disabled","children","helperText","props","field","fieldState","useController","container","message","label","restClasses","value","onChange","restField","invalid","error","id","useId","cn","jsxs","jsx","CheckboxBase","MessageView"],"mappings":"
|
|
1
|
+
{"version":3,"file":"CheckboxControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/checkbox/CheckboxControl.tsx"],"sourcesContent":["'use client'\n\nimport { useId } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { CheckboxBase, type CheckboxBaseProps } from '../../uncontrolled/checkbox'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype CheckboxControlClasses = CheckboxBaseProps['classes'] & {\n container?: string\n message?: string\n label?: string\n}\n\nexport type CheckboxControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<CheckboxBaseProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Отображаемый лейбл\n */\n children: React.ReactElement | string\n /**\n * Дополнительные стили компонента\n */\n classes?: CheckboxControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n }\n\nexport const CheckboxControl = <TFieldValues extends FieldValues = FieldValues>({\n control,\n classes,\n className,\n name,\n rules,\n shouldUnregister,\n defaultValue,\n disabled,\n children,\n helperText,\n ...props\n}: CheckboxControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n shouldUnregister,\n defaultValue,\n disabled\n })\n\n const { container, message, label, ...restClasses } = classes || {}\n const { value, onChange, ...restField } = field\n const { invalid, error } = fieldState\n\n const id = useId()\n\n return (\n <div className={cn('flex flex-col gap-y-2', className)}>\n <div className={cn('flex items-center justify-items-start gap-x-3', container)}>\n <CheckboxBase\n id={id}\n checked={value}\n onCheckedChange={onChange}\n invalid={invalid}\n classes={restClasses}\n {...props}\n {...restField}\n />\n <label\n htmlFor={id}\n className={cn(\n 'mob-body-regular-s text-color-dark',\n 'desktop:desk-body-regular-m desktop:gap-x-4',\n {\n 'text-color-disabled': disabled\n },\n label\n )}\n >\n {children}\n </label>\n </div>\n <MessageView\n text={error ? error.message : helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["CheckboxControl","control","classes","className","name","rules","shouldUnregister","defaultValue","disabled","children","helperText","props","field","fieldState","useController","container","message","label","restClasses","value","onChange","restField","invalid","error","id","useId","cn","jsxs","jsx","CheckboxBase","MessageView"],"mappings":"8+CAqCO,MAAMA,GAAkB,CAAiD,CAC9E,QAAAC,EACA,QAAAC,EACA,UAAAC,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,SAAAC,EACA,SAAAC,EACA,WAAAC,EACA,GAAGC,CACL,IAA0C,CACxC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAb,EACA,KAAAG,EACA,MAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,SAAAC,CAAA,CACD,EAEK,CAAE,UAAAO,EAAW,QAAAC,EAAS,MAAAC,EAAO,GAAGC,CAAA,EAAgBhB,GAAW,CAAA,EAC3D,CAAE,MAAAiB,EAAO,SAAAC,EAAU,GAAGC,GAAcT,EACpC,CAAE,QAAAU,EAAS,MAAAC,CAAA,EAAUV,EAErBW,EAAKC,EAAA,EAEX,SACG,MAAA,CAAI,UAAWC,EAAG,wBAAyBvB,CAAS,EACnD,SAAA,CAAAwB,EAAC,MAAA,CAAI,UAAWD,EAAG,gDAAiDX,CAAS,EAC3E,SAAA,CAAAa,EAACC,EAAA,CACC,GAAAL,EACA,QAASL,EACT,gBAAiBC,EACjB,QAAAE,EACA,QAASJ,EACR,GAAGP,EACH,GAAGU,CAAA,CAAA,EAENO,EAAC,QAAA,CACC,QAASJ,EACT,UAAWE,EACT,qCACA,8CACA,CACE,sBAAuBlB,CAAA,EAEzBS,CAAA,EAGD,SAAAR,CAAA,CAAA,CACH,EACF,EACAmB,EAACE,EAAA,CACC,KAAMP,EAAQA,EAAM,QAAUb,EAC9B,UAAWM,EACX,OAAQO,EAAQ,QAAU,SAC1B,SAAAf,CAAA,CAAA,CACF,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as G,jsx as e}from"react/jsx-runtime";import{useMemo as S}from"react";import{useController as T}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{Combobox as k}from"../../uncontrolled/combobox/combobox.js";import{cn as q}from"../../../../utils/cn.js";import{TypeGuards as s}from"../../../../utils/typeGuards.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"
|
|
1
|
+
import{jsxs as G,jsx as e}from"react/jsx-runtime";import{useMemo as S}from"react";import{useController as T}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{Combobox as k}from"../../uncontrolled/combobox/combobox.js";import{cn as q}from"../../../../utils/cn.js";import{TypeGuards as s}from"../../../../utils/typeGuards.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"../../uncontrolled/select/Select.js";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{MessageView as z}from"../../ui/MessageView.js";const go=({control:n,className:l,name:c,rules:f,shouldUnregister:a,disabled:t,defaultValue:g,options:m,helperText:x,returnValue:r,classes:C,...d})=>{const{field:b,fieldState:h}=T({control:n,name:c,rules:f,shouldUnregister:a,disabled:t,defaultValue:g}),{error:i,invalid:u}=h,{value:p,onChange:y,...j}=b,{root:w,combobox:A,message:M}=C??{},N=o=>{s.isArray(o)||y(r&&o?r(o):(o==null?void 0:o.value)??null)},F=S(()=>s.isArray(p)?null:m.find(o=>(r?r(o):o.value)===p)??null,[m,p]);return G("div",{className:q("w-full items-start gap-y-2",w,l),children:[e(k,{...d,...j,options:m,value:F,onChange:N,invalid:u,disabled:t,multiple:!1,classes:A}),e(z,{text:i?i.message:x,className:M,intent:i?"error":"simple",disabled:t})]})};export{go as ComboboxControl};
|
|
2
2
|
//# sourceMappingURL=ComboboxControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/combobox/ComboboxControl.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport {\n type ChangeHandler,\n Combobox,\n type ComboboxClasses,\n type ComboboxItemOption,\n type ComboboxProps,\n type ComboboxValue\n} from '../../uncontrolled/combobox'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn, TypeGuards } from '$/shared/utils'\n\nexport type ComboboxControlClasses = {\n root?: string\n message?: string\n combobox?: ComboboxClasses\n}\n\nexport type ComboboxControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n ComboboxProps<false> & {\n control: Control<TFieldValues>\n helperText?: string\n returnValue?: (option: ComboboxItemOption) => string | null\n classes?: ComboboxControlClasses\n }\n\nexport const ComboboxControl = <TFieldValues extends FieldValues>({\n control,\n className,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue,\n options,\n helperText,\n returnValue,\n classes,\n ...props\n}: ComboboxControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue\n })\n\n const { error, invalid } = fieldState\n const { value, onChange, ...restField } = field\n\n const { root, combobox, message } = classes ?? {}\n\n const onValueChange: ChangeHandler<false> = (value) => {\n if (TypeGuards.isArray(value)) return\n\n onChange(returnValue && value ? returnValue(value) : (value?.value ?? null))\n }\n\n const selected = useMemo<ComboboxValue<false>>(() => {\n if (TypeGuards.isArray(value)) return null\n\n return options.find((option) => (returnValue ? returnValue(option) : option.value) === value) ?? null\n }, [options, value])\n\n return (\n <div className={cn('w-full items-start gap-y-2', root, className)}>\n <Combobox\n {...props}\n {...restField}\n options={options}\n value={selected}\n onChange={onValueChange}\n invalid={invalid}\n disabled={disabled}\n multiple={false}\n classes={combobox}\n />\n <MessageView\n text={error ? error.message : helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["ComboboxControl","control","className","name","rules","shouldUnregister","disabled","defaultValue","options","helperText","returnValue","classes","props","field","fieldState","useController","error","invalid","value","onChange","restField","root","combobox","message","onValueChange","TypeGuards","selected","useMemo","option","cn","jsx","Combobox","MessageView"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ComboboxControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/combobox/ComboboxControl.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport {\n type ChangeHandler,\n Combobox,\n type ComboboxClasses,\n type ComboboxItemOption,\n type ComboboxProps,\n type ComboboxValue\n} from '../../uncontrolled/combobox'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn, TypeGuards } from '$/shared/utils'\n\nexport type ComboboxControlClasses = {\n root?: string\n message?: string\n combobox?: ComboboxClasses\n}\n\nexport type ComboboxControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n ComboboxProps<false> & {\n control: Control<TFieldValues>\n helperText?: string\n returnValue?: (option: ComboboxItemOption) => string | null\n classes?: ComboboxControlClasses\n }\n\nexport const ComboboxControl = <TFieldValues extends FieldValues>({\n control,\n className,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue,\n options,\n helperText,\n returnValue,\n classes,\n ...props\n}: ComboboxControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n shouldUnregister,\n disabled,\n defaultValue\n })\n\n const { error, invalid } = fieldState\n const { value, onChange, ...restField } = field\n\n const { root, combobox, message } = classes ?? {}\n\n const onValueChange: ChangeHandler<false> = (value) => {\n if (TypeGuards.isArray(value)) return\n\n onChange(returnValue && value ? returnValue(value) : (value?.value ?? null))\n }\n\n const selected = useMemo<ComboboxValue<false>>(() => {\n if (TypeGuards.isArray(value)) return null\n\n return options.find((option) => (returnValue ? returnValue(option) : option.value) === value) ?? null\n }, [options, value])\n\n return (\n <div className={cn('w-full items-start gap-y-2', root, className)}>\n <Combobox\n {...props}\n {...restField}\n options={options}\n value={selected}\n onChange={onValueChange}\n invalid={invalid}\n disabled={disabled}\n multiple={false}\n classes={combobox}\n />\n <MessageView\n text={error ? error.message : helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["ComboboxControl","control","className","name","rules","shouldUnregister","disabled","defaultValue","options","helperText","returnValue","classes","props","field","fieldState","useController","error","invalid","value","onChange","restField","root","combobox","message","onValueChange","TypeGuards","selected","useMemo","option","cn","jsx","Combobox","MessageView"],"mappings":"ylDA8BO,MAAMA,GAAkB,CAAmC,CAChE,QAAAC,EACA,UAAAC,EACA,KAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,EACA,QAAAC,EACA,WAAAC,EACA,YAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAA0C,CACxC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAd,EACA,KAAAE,EACA,MAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,aAAAC,CAAA,CACD,EAEK,CAAE,MAAAS,EAAO,QAAAC,CAAA,EAAYH,EACrB,CAAE,MAAAI,EAAO,SAAAC,EAAU,GAAGC,GAAcP,EAEpC,CAAE,KAAAQ,EAAM,SAAAC,EAAU,QAAAC,CAAA,EAAYZ,GAAW,CAAA,EAEzCa,EAAuCN,GAAU,CACjDO,EAAW,QAAQP,CAAK,GAE5BC,EAAST,GAAeQ,EAAQR,EAAYQ,CAAK,GAAKA,GAAAA,YAAAA,EAAO,QAAS,IAAK,CAC7E,EAEMQ,EAAWC,EAA8B,IACzCF,EAAW,QAAQP,CAAK,EAAU,KAE/BV,EAAQ,KAAMoB,IAAYlB,EAAcA,EAAYkB,CAAM,EAAIA,EAAO,SAAWV,CAAK,GAAK,KAChG,CAACV,EAASU,CAAK,CAAC,EAEnB,SACG,MAAA,CAAI,UAAWW,EAAG,6BAA8BR,EAAMnB,CAAS,EAC9D,SAAA,CAAA4B,EAACC,EAAA,CACE,GAAGnB,EACH,GAAGQ,EACJ,QAAAZ,EACA,MAAOkB,EACP,SAAUF,EACV,QAAAP,EACA,SAAAX,EACA,SAAU,GACV,QAASgB,CAAA,CAAA,EAEXQ,EAACE,EAAA,CACC,KAAMhB,EAAQA,EAAM,QAAUP,EAC9B,UAAWc,EACX,OAAQP,EAAQ,QAAU,SAC1B,SAAAV,CAAA,CAAA,CACF,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as P,jsx as r}from"react/jsx-runtime";import{useState as S}from"react";import{useController as j}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{SingleDayPicker as k}from"./single.js";import{cn as y}from"../../../../utils/cn.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"
|
|
1
|
+
import{jsxs as P,jsx as r}from"react/jsx-runtime";import{useState as S}from"react";import{useController as j}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{SingleDayPicker as k}from"./single.js";import{cn as y}from"../../../../utils/cn.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import"../../../calendar/Calendar.js";import"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"../../uncontrolled/select/Select.js";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import{MessageView as N}from"../../ui/MessageView.js";const nt=({control:i,name:m,disabled:o,rules:e,shouldUnregister:p,defaultValue:s,inputProps:n,helperText:a,classes:l,...c})=>{const{field:f,fieldState:u}=j({control:i,name:m,defaultValue:s,disabled:o,rules:e,shouldUnregister:p}),{value:g,onChange:h,...C}=f,{error:t,invalid:d}=u,{message:v,container:x,...w}=l||{},[D,M]=S(new Date);return P("div",{className:y("w-full",x),children:[r(k,{...c,value:g??"",onChange:h,month:D,onMonthChange:M,classes:w,inputProps:{...n,...C,invalid:d}}),r(N,{text:(t==null?void 0:t.message)||a,className:v,intent:t?"error":"simple",disabled:o})]})};export{nt as DayPickerControl};
|
|
2
2
|
//# sourceMappingURL=dayPickerControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dayPickerControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.tsx"],"sourcesContent":["'use client'\n\nimport { useState } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { SingleDayPicker } from './single'\nimport { type Calendar, type MaskInputProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\ntype DayPickerControlClasses = MaskInputProps['classes'] & {\n message?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type DayPickerControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<CalendarProps, 'selected' | 'onSelect' | 'mode'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Свойства отображаемого Input поля\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Дополнительный текст\n */\n helperText?: string\n /**\n * Дополнительные стили компонента\n */\n classes?: DayPickerControlClasses\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n }\n\nexport const DayPickerControl = <T extends FieldValues = FieldValues>({\n control,\n name,\n disabled,\n rules,\n shouldUnregister,\n defaultValue,\n inputProps,\n helperText,\n classes,\n ...props\n}: DayPickerControlProps<T>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister\n })\n\n const { value, onChange, ...restField } = field\n const { error, invalid } = fieldState\n const { message, container, ...restClasses } = classes || {}\n\n const [month, setMonth] = useState<Date>(new Date())\n\n return (\n <div className={cn('w-full', container)}>\n <SingleDayPicker\n {...props}\n value={value ?? ''}\n onChange={onChange}\n month={month}\n onMonthChange={setMonth}\n classes={restClasses}\n inputProps={{\n ...inputProps,\n ...restField,\n invalid\n }}\n />\n <MessageView\n text={error?.message || helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["DayPickerControl","control","name","disabled","rules","shouldUnregister","defaultValue","inputProps","helperText","classes","props","field","fieldState","useController","value","onChange","restField","error","invalid","message","container","restClasses","month","setMonth","useState","cn","jsx","SingleDayPicker","MessageView"],"mappings":"
|
|
1
|
+
{"version":3,"file":"dayPickerControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/dayPickerControl.tsx"],"sourcesContent":["'use client'\n\nimport { useState } from 'react'\nimport { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { SingleDayPicker } from './single'\nimport { type Calendar, type MaskInputProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\ntype DayPickerControlClasses = MaskInputProps['classes'] & {\n message?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type DayPickerControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<CalendarProps, 'selected' | 'onSelect' | 'mode'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Свойства отображаемого Input поля\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Дополнительный текст\n */\n helperText?: string\n /**\n * Дополнительные стили компонента\n */\n classes?: DayPickerControlClasses\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n }\n\nexport const DayPickerControl = <T extends FieldValues = FieldValues>({\n control,\n name,\n disabled,\n rules,\n shouldUnregister,\n defaultValue,\n inputProps,\n helperText,\n classes,\n ...props\n}: DayPickerControlProps<T>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n disabled,\n rules,\n shouldUnregister\n })\n\n const { value, onChange, ...restField } = field\n const { error, invalid } = fieldState\n const { message, container, ...restClasses } = classes || {}\n\n const [month, setMonth] = useState<Date>(new Date())\n\n return (\n <div className={cn('w-full', container)}>\n <SingleDayPicker\n {...props}\n value={value ?? ''}\n onChange={onChange}\n month={month}\n onMonthChange={setMonth}\n classes={restClasses}\n inputProps={{\n ...inputProps,\n ...restField,\n invalid\n }}\n />\n <MessageView\n text={error?.message || helperText}\n className={message}\n intent={error ? 'error' : 'simple'}\n disabled={disabled}\n />\n </div>\n )\n}\n"],"names":["DayPickerControl","control","name","disabled","rules","shouldUnregister","defaultValue","inputProps","helperText","classes","props","field","fieldState","useController","value","onChange","restField","error","invalid","message","container","restClasses","month","setMonth","useState","cn","jsx","SingleDayPicker","MessageView"],"mappings":"wgDAgDO,MAAMA,GAAmB,CAAsC,CACpE,QAAAC,EACA,KAAAC,EACA,SAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,aAAAC,EACA,WAAAC,EACA,WAAAC,EACA,QAAAC,EACA,GAAGC,CACL,IAAgC,CAC9B,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAZ,EACA,KAAAC,EACA,aAAAI,EACA,SAAAH,EACA,MAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAS,EAAO,SAAAC,EAAU,GAAGC,GAAcL,EACpC,CAAE,MAAAM,EAAO,QAAAC,CAAA,EAAYN,EACrB,CAAE,QAAAO,EAAS,UAAAC,EAAW,GAAGC,CAAA,EAAgBZ,GAAW,CAAA,EAEpD,CAACa,EAAOC,CAAQ,EAAIC,EAAe,IAAI,IAAM,EAEnD,SACG,MAAA,CAAI,UAAWC,EAAG,SAAUL,CAAS,EACpC,SAAA,CAAAM,EAACC,EAAA,CACE,GAAGjB,EACJ,MAAOI,GAAS,GAChB,SAAAC,EACA,MAAAO,EACA,cAAeC,EACf,QAASF,EACT,WAAY,CACV,GAAGd,EACH,GAAGS,EACH,QAAAE,CAAA,CACF,CAAA,EAEFQ,EAACE,EAAA,CACC,MAAMX,GAAA,YAAAA,EAAO,UAAWT,EACxB,UAAWW,EACX,OAAQF,EAAQ,QAAU,SAC1B,SAAAd,CAAA,CAAA,CACF,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import"react/jsx-runtime";import"
|
|
1
|
+
import"react/jsx-runtime";import"../../../../button/Button.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../calendar/Calendar.js";import{formatDateToLocaleString as m}from"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"react";import"react-dom";import"../../../../modal/ui/IframeModalContent.js";import"../../../../../../../node_modules/react-hot-toast/dist/index.js";import"../../../../table/ui/primitives/Primitives.js";import"../../../../carousel/ui/CarouselContent.js";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";import"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"../../../uncontrolled/select/Select.js";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../editor/ui/Editor.js";import"../../input/MaskInputControl.js";function F(o,t){switch(o){case"range":const[r,i]=Object.values(t).map(p=>new Date(p));return[r?m(r):void 0,i?m(i):void 0].join("-");case"single":default:const e=t?new Date(t):new Date;return t?m(e):""}}function G(o,t){switch(o){case"range":if(t){const r=Object.entries(t).map(([i,e])=>[i,new Date(e)]);return Object.fromEntries(r)}return{};case"single":default:return t?new Date(t):new Date}}export{G as getCurrentDate,F as getInitialValue};
|
|
2
2
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.ts"],"sourcesContent":["import type { DateRange } from 'react-day-picker'\nimport { formatDateToLocaleString } from '$/shared/ui'\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\n/**\n * Функция для получения инит состояния поля ввода\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n */\nexport function getInitialValue(mode: 'single', value?: string): string\nexport function getInitialValue(mode: 'range', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'multiple', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'single' | 'multiple' | 'range', value?: IsoDateRange | string) {\n switch (mode) {\n case 'range':\n const [from, to] = Object.values(value as IsoDateRange).map((date) => new Date(date))\n\n return [from ? formatDateToLocaleString(from) : undefined, to ? formatDateToLocaleString(to) : undefined].join('-')\n case 'single':\n default:\n const date = value ? new Date(value as string) : new Date()\n\n return value ? formatDateToLocaleString(date) : ''\n }\n}\n\n/**\n * Функция для получения объекта даты по текущему состоянию\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n *\n * @returns Date если mode 'single'\n * @returns DateRange если mode 'range'\n */\nexport function getCurrentDate(mode: 'single', value?: string): Date\nexport function getCurrentDate(mode: 'range', value?: IsoDateRange): DateRange\nexport function getCurrentDate(mode: 'multiple', value?: IsoDateRange): Date\nexport function getCurrentDate(mode: 'single' | 'multiple' | 'range', value?: string | IsoDateRange): Date | DateRange {\n switch (mode) {\n case 'range':\n if (value) {\n const entries = Object.entries(value as IsoDateRange).map(([key, value]) => [key, new Date(value)])\n\n return Object.fromEntries(entries)\n }\n\n return {} as DateRange\n case 'single':\n default:\n return value ? new Date(value as string) : new Date()\n }\n}\n"],"names":["getInitialValue","mode","value","from","to","date","formatDateToLocaleString","getCurrentDate","entries","key"],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/model/utils.ts"],"sourcesContent":["import type { DateRange } from 'react-day-picker'\nimport { formatDateToLocaleString } from '$/shared/ui'\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\n/**\n * Функция для получения инит состояния поля ввода\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n */\nexport function getInitialValue(mode: 'single', value?: string): string\nexport function getInitialValue(mode: 'range', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'multiple', value?: IsoDateRange): string\nexport function getInitialValue(mode: 'single' | 'multiple' | 'range', value?: IsoDateRange | string) {\n switch (mode) {\n case 'range':\n const [from, to] = Object.values(value as IsoDateRange).map((date) => new Date(date))\n\n return [from ? formatDateToLocaleString(from) : undefined, to ? formatDateToLocaleString(to) : undefined].join('-')\n case 'single':\n default:\n const date = value ? new Date(value as string) : new Date()\n\n return value ? formatDateToLocaleString(date) : ''\n }\n}\n\n/**\n * Функция для получения объекта даты по текущему состоянию\n * @param mode режим календаря (single | range)\n * @param value текущее состояние поля\n *\n * @returns Date если mode 'single'\n * @returns DateRange если mode 'range'\n */\nexport function getCurrentDate(mode: 'single', value?: string): Date\nexport function getCurrentDate(mode: 'range', value?: IsoDateRange): DateRange\nexport function getCurrentDate(mode: 'multiple', value?: IsoDateRange): Date\nexport function getCurrentDate(mode: 'single' | 'multiple' | 'range', value?: string | IsoDateRange): Date | DateRange {\n switch (mode) {\n case 'range':\n if (value) {\n const entries = Object.entries(value as IsoDateRange).map(([key, value]) => [key, new Date(value)])\n\n return Object.fromEntries(entries)\n }\n\n return {} as DateRange\n case 'single':\n default:\n return value ? new Date(value as string) : new Date()\n }\n}\n"],"names":["getInitialValue","mode","value","from","to","date","formatDateToLocaleString","getCurrentDate","entries","key"],"mappings":"41CAgBO,SAASA,EAAgBC,EAAuCC,EAA+B,CACpG,OAAQD,EAAA,CACN,IAAK,QACH,KAAM,CAACE,EAAMC,CAAE,EAAI,OAAO,OAAOF,CAAqB,EAAE,IAAKG,GAAS,IAAI,KAAKA,CAAI,CAAC,EAEpF,MAAO,CAACF,EAAOG,EAAyBH,CAAI,EAAI,OAAWC,EAAKE,EAAyBF,CAAE,EAAI,MAAS,EAAE,KAAK,GAAG,EACpH,IAAK,SACL,QACE,MAAMC,EAAOH,EAAQ,IAAI,KAAKA,CAAe,MAAQ,KAErD,OAAOA,EAAQI,EAAyBD,CAAI,EAAI,EAAA,CAEtD,CAaO,SAASE,EAAeN,EAAuCC,EAAiD,CACrH,OAAQD,EAAA,CACN,IAAK,QACH,GAAIC,EAAO,CACT,MAAMM,EAAU,OAAO,QAAQN,CAAqB,EAAE,IAAI,CAAC,CAACO,EAAKP,CAAK,IAAM,CAACO,EAAK,IAAI,KAAKP,CAAK,CAAC,CAAC,EAElG,OAAO,OAAO,YAAYM,CAAO,CACnC,CAEA,MAAO,CAAA,EACT,IAAK,SACL,QACE,OAAON,EAAQ,IAAI,KAAKA,CAAe,MAAQ,IAAK,CAE1D"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as _,jsx as l}from"react/jsx-runtime";import{useRef as j,useState as c}from"react";import{RANGE_MASK as x,SINGLE_VALIDATION_REGEX as T}from"./model/constants.js";import{getCurrentDate as y,getInitialValue as G}from"./model/utils.js";import{useClickOutside as L}from"../../../../hooks/useClickOutside.js";import
|
|
1
|
+
import{jsxs as _,jsx as l}from"react/jsx-runtime";import{useRef as j,useState as c}from"react";import{RANGE_MASK as x,SINGLE_VALIDATION_REGEX as T}from"./model/constants.js";import{getCurrentDate as y,getInitialValue as G}from"./model/utils.js";import{useClickOutside as L}from"../../../../hooks/useClickOutside.js";import{cn as d}from"../../../../utils/cn.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import{Calendar as P}from"../../../calendar/Calendar.js";import{DATE_VISIBLE_PATTERN as a}from"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"react-dom";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as $}from"../../../icon/Icon.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import{MaskInput as q}from"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"../../uncontrolled/select/Select.js";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import{parse as h}from"../../../../../../node_modules/date-fns/parse.js";import{isValid as w}from"../../../../../../node_modules/date-fns/isValid.js";import{formatDate as I}from"../../../../../../node_modules/date-fns/format.js";const bt=({inputProps:C,classes:n,value:f,onChange:p,...R})=>{const u=j(null),{calendar:E,...O}=n||{},[S,m]=c(!1),V=()=>{m(t=>!t)},[D,s]=c(new Date),b=y("range",f),[N,g]=c(G("range",f));L(u,()=>m(!1));const A=t=>{const{value:r}=t.target;if(g(r),!r.length)return p({from:"",to:""});const e=r.split("-");if(e.some(o=>!T.test(o)))return;const i=[["from",h(e[0],a,new Date)],["to",h(e[1],a,new Date)]];if(i.every(([,o])=>w(o))){const o=Object.fromEntries(i.map(([k,v])=>[k,v.toISOString()]));p(o),s(i[Math.round(Math.random())][1])}},M=t=>{s(t.from||t.to||new Date);const r=Object.entries(t).reduce((e,[i,o])=>({...e,[i]:o?o.toISOString():""}),{});p(r),g(`${I(r.from||"",a)}-${I(r.to||"",a)}`),t.from&&t.to&&m(!1)};return _("div",{ref:u,className:d("relative w-full",n==null?void 0:n.container),children:[l(q,{mask:x,...C,classes:O,value:N,onChange:A,onFocus:()=>m(!0),attachmentProps:{icon:l($,{name:"general/calendar",className:"text-icon-blue-grey-600"}),onClickIcon:V}}),S&&l(P,{...R,required:!0,mode:"range",month:D,onMonthChange:s,selected:b,onSelect:M,className:d("absolute right-0 top-full",E)})]})};export{bt as RangeDayPicker};
|
|
2
2
|
//# sourceMappingURL=range.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/range.tsx"],"sourcesContent":["'use client'\n\nimport { useRef, useState } from 'react'\nimport { type DateRange } from 'react-day-picker'\nimport { format, isValid, parse } from 'date-fns'\nimport { getCurrentDate, getInitialValue, RANGE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype RangeDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\ntype RangeDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: RangeDayPickerClasses\n /**\n * Управляемое значение\n */\n value: IsoDateRange\n /**\n * Функция для управления значением\n */\n onChange: (value: IsoDateRange) => void\n}\n\nexport const RangeDayPicker = ({ inputProps, classes, value, onChange, ...props }: RangeDayPickerProps) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const [month, setMonth] = useState<Date>(new Date())\n const date = getCurrentDate('range', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('range', value))\n\n useClickOutside(containerRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (!value.length) {\n return onChange({\n from: '',\n to: ''\n })\n }\n\n const isoDateRange = value.split('-')\n\n if (isoDateRange.some((date) => !SINGLE_VALIDATION_REGEX.test(date))) {\n return\n }\n\n const dateRangeEntries = [\n ['from', parse(isoDateRange[0], DATE_VISIBLE_PATTERN, new Date())],\n ['to', parse(isoDateRange[1], DATE_VISIBLE_PATTERN, new Date())]\n ] as [string, Date][]\n\n if (dateRangeEntries.every(([, date]) => isValid(date))) {\n const dateRange = Object.fromEntries(dateRangeEntries.map(([key, value]) => [key, value.toISOString()]))\n\n onChange(dateRange)\n setMonth(dateRangeEntries[Math.round(Math.random())][1])\n }\n }\n\n const onDateChange = (newDate: DateRange) => {\n setMonth(newDate.from || newDate.to || new Date())\n\n const isoDateRange = Object.entries(newDate).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: value ? value.toISOString() : ''\n }),\n {} as IsoDateRange\n )\n\n onChange(isoDateRange)\n setVisibleValue(\n `${format(isoDateRange.from || '', DATE_VISIBLE_PATTERN)}-${format(isoDateRange.to || '', DATE_VISIBLE_PATTERN)}`\n )\n\n if (newDate.from && newDate.to) {\n setCalendarOpen(false)\n }\n }\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={RANGE_MASK}\n {...inputProps}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n onFocus={() => setCalendarOpen(true)}\n attachmentProps={{\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange\n }}\n />\n {calendarOpen && (\n <Calendar\n {...props}\n required\n mode='range'\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n className={cn('absolute right-0 top-full', calendar)}\n />\n )}\n </div>\n )\n}\n"],"names":["RangeDayPicker","inputProps","classes","value","onChange","props","containerRef","useRef","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","month","setMonth","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useClickOutside","onVisibleValueChange","event","isoDateRange","SINGLE_VALIDATION_REGEX","dateRangeEntries","parse","DATE_VISIBLE_PATTERN","isValid","dateRange","key","onDateChange","newDate","acc","format","jsxs","cn","jsx","MaskInput","RANGE_MASK","Icon","Calendar"],"mappings":"
|
|
1
|
+
{"version":3,"file":"range.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/range.tsx"],"sourcesContent":["'use client'\n\nimport { useRef, useState } from 'react'\nimport { type DateRange } from 'react-day-picker'\nimport { format, isValid, parse } from 'date-fns'\nimport { getCurrentDate, getInitialValue, RANGE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype RangeDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype IsoDateRange = {\n from?: string\n to?: string\n}\n\ntype RangeDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: RangeDayPickerClasses\n /**\n * Управляемое значение\n */\n value: IsoDateRange\n /**\n * Функция для управления значением\n */\n onChange: (value: IsoDateRange) => void\n}\n\nexport const RangeDayPicker = ({ inputProps, classes, value, onChange, ...props }: RangeDayPickerProps) => {\n const containerRef = useRef<HTMLDivElement>(null)\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const [month, setMonth] = useState<Date>(new Date())\n const date = getCurrentDate('range', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('range', value))\n\n useClickOutside(containerRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (!value.length) {\n return onChange({\n from: '',\n to: ''\n })\n }\n\n const isoDateRange = value.split('-')\n\n if (isoDateRange.some((date) => !SINGLE_VALIDATION_REGEX.test(date))) {\n return\n }\n\n const dateRangeEntries = [\n ['from', parse(isoDateRange[0], DATE_VISIBLE_PATTERN, new Date())],\n ['to', parse(isoDateRange[1], DATE_VISIBLE_PATTERN, new Date())]\n ] as [string, Date][]\n\n if (dateRangeEntries.every(([, date]) => isValid(date))) {\n const dateRange = Object.fromEntries(dateRangeEntries.map(([key, value]) => [key, value.toISOString()]))\n\n onChange(dateRange)\n setMonth(dateRangeEntries[Math.round(Math.random())][1])\n }\n }\n\n const onDateChange = (newDate: DateRange) => {\n setMonth(newDate.from || newDate.to || new Date())\n\n const isoDateRange = Object.entries(newDate).reduce(\n (acc, [key, value]) => ({\n ...acc,\n [key]: value ? value.toISOString() : ''\n }),\n {} as IsoDateRange\n )\n\n onChange(isoDateRange)\n setVisibleValue(\n `${format(isoDateRange.from || '', DATE_VISIBLE_PATTERN)}-${format(isoDateRange.to || '', DATE_VISIBLE_PATTERN)}`\n )\n\n if (newDate.from && newDate.to) {\n setCalendarOpen(false)\n }\n }\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={RANGE_MASK}\n {...inputProps}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n onFocus={() => setCalendarOpen(true)}\n attachmentProps={{\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange\n }}\n />\n {calendarOpen && (\n <Calendar\n {...props}\n required\n mode='range'\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n className={cn('absolute right-0 top-full', calendar)}\n />\n )}\n </div>\n )\n}\n"],"names":["RangeDayPicker","inputProps","classes","value","onChange","props","containerRef","useRef","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","month","setMonth","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useClickOutside","onVisibleValueChange","event","isoDateRange","SINGLE_VALIDATION_REGEX","dateRangeEntries","parse","DATE_VISIBLE_PATTERN","isValid","dateRange","key","onDateChange","newDate","acc","format","jsxs","cn","jsx","MaskInput","RANGE_MASK","Icon","Calendar"],"mappings":"o4DAwCO,MAAMA,GAAiB,CAAC,CAAE,WAAAC,EAAY,QAAAC,EAAS,MAAAC,EAAO,SAAAC,EAAU,GAAGC,KAAiC,CACzG,MAAMC,EAAeC,EAAuB,IAAI,EAC1C,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAgBP,GAAW,CAAA,EAE1C,CAACQ,EAAcC,CAAe,EAAIC,EAAkB,EAAK,EACzDC,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CACjC,EAEM,CAACC,EAAOC,CAAQ,EAAIJ,EAAe,IAAI,IAAM,EAC7CK,EAAOC,EAAe,QAASf,CAAK,EAEpC,CAACgB,EAAcC,CAAe,EAAIR,EAAiBS,EAAgB,QAASlB,CAAK,CAAC,EAExFmB,EAAgBhB,EAAc,IAAMK,EAAgB,EAAK,CAAC,EAE1D,MAAMY,EAAwBC,GAA+C,CAC3E,KAAM,CAAE,MAAArB,CAAAA,EAAUqB,EAAM,OAIxB,GAFAJ,EAAgBjB,CAAK,EAEjB,CAACA,EAAM,OACT,OAAOC,EAAS,CACd,KAAM,GACN,GAAI,EAAA,CACL,EAGH,MAAMqB,EAAetB,EAAM,MAAM,GAAG,EAEpC,GAAIsB,EAAa,KAAMR,GAAS,CAACS,EAAwB,KAAKT,CAAI,CAAC,EACjE,OAGF,MAAMU,EAAmB,CACvB,CAAC,OAAQC,EAAMH,EAAa,CAAC,EAAGI,EAAsB,IAAI,IAAM,CAAC,EACjE,CAAC,KAAMD,EAAMH,EAAa,CAAC,EAAGI,EAAsB,IAAI,IAAM,CAAC,CAAA,EAGjE,GAAIF,EAAiB,MAAM,CAAC,CAAA,CAAGV,CAAI,IAAMa,EAAQb,CAAI,CAAC,EAAG,CACvD,MAAMc,EAAY,OAAO,YAAYJ,EAAiB,IAAI,CAAC,CAACK,EAAK7B,CAAK,IAAM,CAAC6B,EAAK7B,EAAM,YAAA,CAAa,CAAC,CAAC,EAEvGC,EAAS2B,CAAS,EAClBf,EAASW,EAAiB,KAAK,MAAM,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CACzD,CACF,EAEMM,EAAgBC,GAAuB,CAC3ClB,EAASkB,EAAQ,MAAQA,EAAQ,IAAM,IAAI,IAAM,EAEjD,MAAMT,EAAe,OAAO,QAAQS,CAAO,EAAE,OAC3C,CAACC,EAAK,CAACH,EAAK7B,CAAK,KAAO,CACtB,GAAGgC,EACH,CAACH,CAAG,EAAG7B,EAAQA,EAAM,cAAgB,EAAA,GAEvC,CAAA,CAAC,EAGHC,EAASqB,CAAY,EACrBL,EACE,GAAGgB,EAAOX,EAAa,MAAQ,GAAII,CAAoB,CAAC,IAAIO,EAAOX,EAAa,IAAM,GAAII,CAAoB,CAAC,EAAA,EAG7GK,EAAQ,MAAQA,EAAQ,IAC1BvB,EAAgB,EAAK,CAEzB,EAEA,OACE0B,EAAC,OAAI,IAAK/B,EAAc,UAAWgC,EAAG,kBAAmBpC,GAAA,YAAAA,EAAS,SAAS,EACzE,SAAA,CAAAqC,EAACC,EAAA,CACC,KAAMC,EACL,GAAGxC,EACJ,QAASQ,EACT,MAAOU,EACP,SAAUI,EACV,QAAS,IAAMZ,EAAgB,EAAI,EACnC,gBAAiB,CACf,KAAM4B,EAACG,EAAA,CAAK,KAAK,mBAAmB,UAAU,0BAA0B,EACxE,YAAa7B,CAAA,CACf,CAAA,EAEDH,GACC6B,EAACI,EAAA,CACE,GAAGtC,EACJ,SAAQ,GACR,KAAK,QACL,MAAAU,EACA,cAAeC,EACf,SAAUC,EACV,SAAUgB,EACV,UAAWK,EAAG,4BAA6B9B,CAAQ,CAAA,CAAA,CACrD,EAEJ,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as G,jsx as f}from"react/jsx-runtime";import{useRef as L,useState as E,useEffect as P}from"react";import{createPortal as j}from"react-dom";import{useFloating as K}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{SINGLE_MASK as q,SINGLE_VALIDATION_REGEX as B}from"./model/constants.js";import{getCurrentDate as H,getInitialValue as I}from"./model/utils.js";import{useClickOutside as U}from"../../../../hooks/useClickOutside.js";import
|
|
1
|
+
import{jsxs as G,jsx as f}from"react/jsx-runtime";import{useRef as L,useState as E,useEffect as P}from"react";import{createPortal as j}from"react-dom";import{useFloating as K}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{SINGLE_MASK as q,SINGLE_VALIDATION_REGEX as B}from"./model/constants.js";import{getCurrentDate as H,getInitialValue as I}from"./model/utils.js";import{useClickOutside as U}from"../../../../hooks/useClickOutside.js";import{cn as y}from"../../../../utils/cn.js";import{mergeRefs as X}from"../../../../utils/mergeRefs.js";import{TypeGuards as b}from"../../../../utils/typeGuards.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import{Calendar as v}from"../../../calendar/Calendar.js";import{DATE_VISIBLE_PATTERN as D}from"../../../calendar/model/utils.js";import"../../../accordion/Accordion.js";import"../../../modal/ui/IframeModalContent.js";import"../../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as z}from"../../../icon/Icon.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../../uncontrolled/autocomplete/Autocomplete.js";import"../../uncontrolled/checkbox/Checkbox.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import"../../uncontrolled/input/Input.js";import"../../uncontrolled/dayPicker/DayPicker.js";import"../../uncontrolled/inputOtp/InputOtpBase.js";import{MaskInput as J}from"../../uncontrolled/maskInput/MaskInput.js";import"../../uncontrolled/radio/RadioGroup.js";import"../../uncontrolled/radio/ui/RadioItem.js";import"../../uncontrolled/select/Select.js";import"../../uncontrolled/slider/SliderBase.js";import"../../uncontrolled/switch/Switch.js";import"../../uncontrolled/textarea/Textarea.js";import"../../uncontrolled/uploader/UploaderBase.js";import"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import{autoUpdate as Q}from"../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js";import{flip as W,offset as Y}from"../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js";import{parse as Z}from"../../../../../../node_modules/date-fns/parse.js";import{isValid as $}from"../../../../../../node_modules/date-fns/isValid.js";import{formatDate as h}from"../../../../../../node_modules/date-fns/format.js";const Ht=({inputProps:s,classes:i,value:e,onChange:n,externalHandlers:O,month:V,onMonthChange:r,...x})=>{const{onChange:m,onFocus:c,...A}=O||{},d=L(null),{refs:u,floatingStyles:N}=K({placement:"bottom-end",middleware:[W({boundary:"clippingAncestors",crossAxis:!1}),Y(0)],whileElementsMounted:Q}),{calendar:k,...C}=i||{},[R,a]=E(!1),g=()=>{a(t=>!t)},w=H("single",e),[F,p]=E(I("single",e));P(()=>{e&&!b.isStringEmpty(e)&&(p(I("single",e)),r&&r(new Date(e)))},[e]),U(d,()=>a(!1));const T=t=>{const{value:o}=t.target;if(p(o),b.isStringEmpty(o))return n("");if(!B.test(o))return;const l=Z(o,D,new Date);if($(l)){const S=l.toISOString();n(S),r&&r(l),m&&m(S)}},_=t=>{r&&r(t);const o=t.toISOString();n(o),p(h(t,D)),a(!1),m&&m(o)};return G("div",{ref:u.setReference,className:y("relative w-full",i==null?void 0:i.container),children:[f(J,{mask:q,...s,...A,classes:C,value:F,onChange:T,autoComplete:"off",onFocus:t=>{a(!0),c&&c(t)},onKeyDown:t=>{t.key==="Enter"&&g()},attachmentProps:{disabled:s.disabled,icon:f(z,{name:"general/calendar",className:"text-icon-blue-grey-600"}),onClickIcon:g,...s.attachmentProps}}),R&&j(f(v,{ref:X(d,u.setFloating),...x,required:!0,mode:"single",style:{...N,width:"max-content"},month:V,onMonthChange:r,selected:w,onSelect:_,className:y(k),"data-test-id":"calendar"}),document.body)]})};export{Ht as SingleDayPicker};
|
|
2
2
|
//# sourceMappingURL=single.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"single.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/single.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { format, isValid, parse } from 'date-fns'\nimport { type ExternalHandlers } from './dayPickerControl'\nimport { getCurrentDate, getInitialValue, SINGLE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn, mergeRefs, TypeGuards } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype SingleDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype SingleDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: SingleDayPickerClasses\n /**\n * Управляемое значение\n */\n value: string\n /**\n * Функция для управления значением\n */\n onChange: (value: string) => void\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const SingleDayPicker = ({\n inputProps,\n classes,\n value,\n onChange,\n externalHandlers,\n month,\n onMonthChange,\n ...props\n}: SingleDayPickerProps) => {\n const { onChange: externalOnChange, onFocus: externalOnFocus, ...restHandlers } = externalHandlers || {}\n\n const calendarRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating({\n placement: 'bottom-end',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(0)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const date = getCurrentDate('single', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('single', value))\n\n useEffect(() => {\n if (value && !TypeGuards.isStringEmpty(value)) {\n setVisibleValue(getInitialValue('single', value))\n if (onMonthChange) onMonthChange(new Date(value))\n }\n }, [value])\n\n useClickOutside(calendarRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (TypeGuards.isStringEmpty(value)) {\n return onChange('')\n }\n\n if (!SINGLE_VALIDATION_REGEX.test(value)) {\n return\n }\n\n const date = parse(value, DATE_VISIBLE_PATTERN, new Date())\n\n if (isValid(date)) {\n const isoDate = date.toISOString()\n\n onChange(isoDate)\n if (onMonthChange) onMonthChange(date)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n }\n\n const onDateChange = (newDate: Date) => {\n if (onMonthChange) onMonthChange(newDate)\n\n const isoDate = newDate.toISOString()\n\n onChange(isoDate)\n setVisibleValue(format(newDate, DATE_VISIBLE_PATTERN))\n setCalendarOpen(false)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={SINGLE_MASK}\n {...inputProps}\n {...restHandlers}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n autoComplete='off'\n onFocus={(event) => {\n setCalendarOpen(true)\n if (externalOnFocus) externalOnFocus(event)\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n onCalendarOpenChange()\n }\n }}\n attachmentProps={{\n disabled: inputProps.disabled,\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange,\n ...inputProps.attachmentProps\n }}\n />\n {calendarOpen &&\n createPortal(\n <Calendar\n // @ts-expect-error asdf\n ref={mergeRefs(calendarRef, refs.setFloating)}\n {...props}\n required\n mode='single'\n style={{\n ...floatingStyles,\n width: 'max-content'\n }}\n month={month}\n onMonthChange={onMonthChange}\n selected={date}\n onSelect={onDateChange}\n className={cn(calendar)}\n data-test-id='calendar'\n />,\n document.body\n )}\n </div>\n )\n}\n"],"names":["SingleDayPicker","inputProps","classes","value","onChange","externalHandlers","month","onMonthChange","props","externalOnChange","externalOnFocus","restHandlers","calendarRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useEffect","TypeGuards","useClickOutside","onVisibleValueChange","event","SINGLE_VALIDATION_REGEX","parse","DATE_VISIBLE_PATTERN","isValid","isoDate","onDateChange","newDate","format","jsxs","cn","jsx","MaskInput","SINGLE_MASK","Icon","createPortal","Calendar","mergeRefs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"single.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/dayPickerControl/single.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { format, isValid, parse } from 'date-fns'\nimport { type ExternalHandlers } from './dayPickerControl'\nimport { getCurrentDate, getInitialValue, SINGLE_MASK, SINGLE_VALIDATION_REGEX } from './model'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn, mergeRefs, TypeGuards } from '$/shared/utils'\n\ntype CalendarProps = React.ComponentPropsWithoutRef<typeof Calendar>\n\ntype SingleDayPickerClasses = MaskInputProps['classes'] & {\n calendar?: string\n}\n\ntype SingleDayPickerProps = Omit<CalendarProps, 'mode'> & {\n /**\n * Свойства Input компонента\n */\n inputProps: Omit<MaskInputProps, 'mask'>\n /**\n * Стили внутренних компонентов\n */\n classes?: SingleDayPickerClasses\n /**\n * Управляемое значение\n */\n value: string\n /**\n * Функция для управления значением\n */\n onChange: (value: string) => void\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const SingleDayPicker = ({\n inputProps,\n classes,\n value,\n onChange,\n externalHandlers,\n month,\n onMonthChange,\n ...props\n}: SingleDayPickerProps) => {\n const { onChange: externalOnChange, onFocus: externalOnFocus, ...restHandlers } = externalHandlers || {}\n\n const calendarRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating({\n placement: 'bottom-end',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(0)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { calendar, ...restClasses } = classes || {}\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(false)\n\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const date = getCurrentDate('single', value)\n\n const [visibleValue, setVisibleValue] = useState<string>(getInitialValue('single', value))\n\n useEffect(() => {\n if (value && !TypeGuards.isStringEmpty(value)) {\n setVisibleValue(getInitialValue('single', value))\n if (onMonthChange) onMonthChange(new Date(value))\n }\n }, [value])\n\n useClickOutside(calendarRef, () => setCalendarOpen(false))\n\n const onVisibleValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const { value } = event.target\n\n setVisibleValue(value)\n\n if (TypeGuards.isStringEmpty(value)) {\n return onChange('')\n }\n\n if (!SINGLE_VALIDATION_REGEX.test(value)) {\n return\n }\n\n const date = parse(value, DATE_VISIBLE_PATTERN, new Date())\n\n if (isValid(date)) {\n const isoDate = date.toISOString()\n\n onChange(isoDate)\n if (onMonthChange) onMonthChange(date)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n }\n\n const onDateChange = (newDate: Date) => {\n if (onMonthChange) onMonthChange(newDate)\n\n const isoDate = newDate.toISOString()\n\n onChange(isoDate)\n setVisibleValue(format(newDate, DATE_VISIBLE_PATTERN))\n setCalendarOpen(false)\n\n if (externalOnChange) externalOnChange(isoDate)\n }\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.container)}>\n <MaskInput\n mask={SINGLE_MASK}\n {...inputProps}\n {...restHandlers}\n classes={restClasses}\n value={visibleValue}\n onChange={onVisibleValueChange}\n autoComplete='off'\n onFocus={(event) => {\n setCalendarOpen(true)\n if (externalOnFocus) externalOnFocus(event)\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n onCalendarOpenChange()\n }\n }}\n attachmentProps={{\n disabled: inputProps.disabled,\n icon: <Icon name='general/calendar' className='text-icon-blue-grey-600' />,\n onClickIcon: onCalendarOpenChange,\n ...inputProps.attachmentProps\n }}\n />\n {calendarOpen &&\n createPortal(\n <Calendar\n // @ts-expect-error asdf\n ref={mergeRefs(calendarRef, refs.setFloating)}\n {...props}\n required\n mode='single'\n style={{\n ...floatingStyles,\n width: 'max-content'\n }}\n month={month}\n onMonthChange={onMonthChange}\n selected={date}\n onSelect={onDateChange}\n className={cn(calendar)}\n data-test-id='calendar'\n />,\n document.body\n )}\n </div>\n )\n}\n"],"names":["SingleDayPicker","inputProps","classes","value","onChange","externalHandlers","month","onMonthChange","props","externalOnChange","externalOnFocus","restHandlers","calendarRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","calendar","restClasses","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","date","getCurrentDate","visibleValue","setVisibleValue","getInitialValue","useEffect","TypeGuards","useClickOutside","onVisibleValueChange","event","SINGLE_VALIDATION_REGEX","parse","DATE_VISIBLE_PATTERN","isValid","isoDate","onDateChange","newDate","format","jsxs","cn","jsx","MaskInput","SINGLE_MASK","Icon","createPortal","Calendar","mergeRefs"],"mappings":"y2EAyCO,MAAMA,GAAkB,CAAC,CAC9B,WAAAC,EACA,QAAAC,EACA,MAAAC,EACA,SAAAC,EACA,iBAAAC,EACA,MAAAC,EACA,cAAAC,EACA,GAAGC,CACL,IAA4B,CAC1B,KAAM,CAAE,SAAUC,EAAkB,QAASC,EAAiB,GAAGC,CAAA,EAAiBN,GAAoB,CAAA,EAEhGO,EAAcC,EAAuB,IAAI,EAEzC,CAAE,KAAAC,EAAM,eAAAC,CAAA,EAAmBC,EAAY,CAC3C,UAAW,aACX,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,EAAO,CAAC,CAAA,EAEV,qBAAsBC,CAAA,CACvB,EAEK,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAgBnB,GAAW,CAAA,EAE1C,CAACoB,EAAcC,CAAe,EAAIC,EAAkB,EAAK,EAEzDC,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CACjC,EAEMC,EAAOC,EAAe,SAAUzB,CAAK,EAErC,CAAC0B,EAAcC,CAAe,EAAIN,EAAiBO,EAAgB,SAAU5B,CAAK,CAAC,EAEzF6B,EAAU,IAAM,CACV7B,GAAS,CAAC8B,EAAW,cAAc9B,CAAK,IAC1C2B,EAAgBC,EAAgB,SAAU5B,CAAK,CAAC,EAC5CI,GAAeA,EAAc,IAAI,KAAKJ,CAAK,CAAC,EAEpD,EAAG,CAACA,CAAK,CAAC,EAEV+B,EAAgBtB,EAAa,IAAMW,EAAgB,EAAK,CAAC,EAEzD,MAAMY,EAAwBC,GAA+C,CAC3E,KAAM,CAAE,MAAAjC,CAAAA,EAAUiC,EAAM,OAIxB,GAFAN,EAAgB3B,CAAK,EAEjB8B,EAAW,cAAc9B,CAAK,EAChC,OAAOC,EAAS,EAAE,EAGpB,GAAI,CAACiC,EAAwB,KAAKlC,CAAK,EACrC,OAGF,MAAMwB,EAAOW,EAAMnC,EAAOoC,EAAsB,IAAI,IAAM,EAE1D,GAAIC,EAAQb,CAAI,EAAG,CACjB,MAAMc,EAAUd,EAAK,YAAA,EAErBvB,EAASqC,CAAO,EACZlC,KAA6BoB,CAAI,EAEjClB,KAAmCgC,CAAO,CAChD,CACF,EAEMC,EAAgBC,GAAkB,CAClCpC,KAA6BoC,CAAO,EAExC,MAAMF,EAAUE,EAAQ,YAAA,EAExBvC,EAASqC,CAAO,EAChBX,EAAgBc,EAAOD,EAASJ,CAAoB,CAAC,EACrDhB,EAAgB,EAAK,EAEjBd,KAAmCgC,CAAO,CAChD,EAEA,OACEI,EAAC,MAAA,CAAI,IAAK/B,EAAK,aAAc,UAAWgC,EAAG,kBAAmB5C,GAAA,YAAAA,EAAS,SAAS,EAC9E,SAAA,CAAA6C,EAACC,EAAA,CACC,KAAMC,EACL,GAAGhD,EACH,GAAGU,EACJ,QAASU,EACT,MAAOQ,EACP,SAAUM,EACV,aAAa,MACb,QAAUC,GAAU,CAClBb,EAAgB,EAAI,EAChBb,KAAiC0B,CAAK,CAC5C,EACA,UAAYA,GAAU,CAChBA,EAAM,MAAQ,SAChBX,EAAA,CAEJ,EACA,gBAAiB,CACf,SAAUxB,EAAW,SACrB,KAAM8C,EAACG,EAAA,CAAK,KAAK,mBAAmB,UAAU,0BAA0B,EACxE,YAAazB,EACb,GAAGxB,EAAW,eAAA,CAChB,CAAA,EAEDqB,GACC6B,EACEJ,EAACK,EAAA,CAEC,IAAKC,EAAUzC,EAAaE,EAAK,WAAW,EAC3C,GAAGN,EACJ,SAAQ,GACR,KAAK,SACL,MAAO,CACL,GAAGO,EACH,MAAO,aAAA,EAET,MAAAT,EACA,cAAAC,EACA,SAAUoB,EACV,SAAUe,EACV,UAAWI,EAAG1B,CAAQ,EACtB,eAAa,UAAA,CAAA,EAEf,SAAS,IAAA,CACX,EACJ,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as o}from"react/jsx-runtime";import"
|
|
1
|
+
import{jsx as o}from"react/jsx-runtime";import"../../../../button/Button.js";import"../../../../buttonIcon/ButtonIcon.js";import"../../../../calendar/Calendar.js";import"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"react";import"react-dom";import"../../../../modal/ui/IframeModalContent.js";import"../../../../../../../node_modules/react-hot-toast/dist/index.js";import{Icon as e}from"../../../../icon/Icon.js";import"../../../../table/ui/primitives/Primitives.js";import"../../../../carousel/ui/CarouselContent.js";import"../../../../slot/Slot.js";import"../../../uncontrolled/autocomplete/Autocomplete.js";import"../../../uncontrolled/checkbox/Checkbox.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";import"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"../../../uncontrolled/select/Select.js";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../ui/Editor.js";import"../../input/MaskInputControl.js";const P=[{shortcuts:["ctrl","alt","3"],level:3},{shortcuts:["ctrl","alt","4"],level:4}],j={3:"mob-title-bold-l desktop:desk-title-bold-l",4:"mob-title-bold-m desktop:desk-title-bold-s"},D=["#292929","#FFFFFF","#40465A","#5A6E85","#A9B6C5","#94A4B7","#003790","#042E73","#809BC7","#76BC21","#F49F00","#F42500"],M=i=>[{label:"Жирный текст",icon:o(e,{name:"editor/bold",className:"size-4"}),onClick:()=>i.chain().focus().toggleBold().run(),isActive:i.isActive("bold")},{label:"Курсивный текст",icon:o(e,{name:"editor/italic",className:"size-4"}),onClick:()=>i.chain().focus().toggleItalic().run(),isActive:i.isActive("italic")},{label:"Подчеркнутый текст",icon:o(e,{name:"editor/underline",className:"size-4"}),onClick:()=>i.chain().focus().toggleUnderline().run(),isActive:i.isActive("underline")},{label:"Зачеркнутый текст",icon:o(e,{name:"editor/strikethrough",className:"size-4"}),onClick:()=>i.chain().focus().toggleStrike().run(),isActive:i.isActive("strike")},{label:"Обычный текст",icon:o(e,{name:"editor/typography",className:"size-4"}),onClick:()=>i.chain().focus().setParagraph().run()},{label:"Маркированный список",icon:o(e,{name:"editor/list",className:"size-4"}),onClick:()=>i.chain().focus().toggleBulletList().run(),isActive:i.isActive("bulletList")},{label:"Перенос строки",icon:o(e,{name:"arrows/arrowDownRight",className:"size-4"}),onClick:()=>i.chain().focus().setHardBreak().run()},{label:"Отменить",icon:o(e,{name:"editor/undo",className:"size-4"}),onClick:()=>i.chain().focus().undo().run()},{label:"Вернуть",icon:o(e,{name:"editor/redo",className:"size-4"}),onClick:()=>i.chain().focus().redo().run()},{label:"Очистить стили и теги",icon:o(e,{name:"editor/removeFormatting",className:"size-4"}),onClick:()=>i.chain().focus().clearNodes().unsetAllMarks().run()},{label:"Удалить все",icon:o(e,{name:"general/close",className:"size-4"}),onClick:()=>i.commands.clearContent()}];export{D as editorAllowedColors,j as editorHeadingClasses,P as headingsOptions,M as renderEditorPanel};
|
|
2
2
|
//# sourceMappingURL=helper.js.map
|