@scbt-ecom/ui 0.95.0 → 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextareaControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/textarea/TextareaControl.tsx"],"sourcesContent":["import { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { TextareaBase, type TextareaBaseProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype TextareaControlClasses = TextareaBaseProps['classes'] & {\n root?: string\n message?: string\n}\n\nexport type TextareaControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<TextareaBaseProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительные стили компонента\n */\n classes?: TextareaControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n }\n\nexport const TextareaControl = <TFieldValues extends FieldValues = FieldValues>({\n classes,\n control,\n name,\n rules,\n disabled,\n defaultValue,\n shouldUnregister,\n helperText,\n ...props\n}: TextareaControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n disabled,\n defaultValue,\n shouldUnregister\n })\n\n const { error, invalid, isTouched } = fieldState\n const { message, root, ...restClasses } = classes || {}\n\n return (\n <div className={cn('w-full', root)}>\n <TextareaBase\n {...props}\n {...field}\n aria-invalid={invalid}\n invalid={invalid}\n classes={restClasses}\n attachmentProps={{\n invalid,\n isTouched,\n withValidateIcons: true,\n ...props.attachmentProps\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":["TextareaControl","classes","control","name","rules","disabled","defaultValue","shouldUnregister","helperText","props","field","fieldState","useController","error","invalid","isTouched","message","root","restClasses","cn","jsx","TextareaBase","MessageView"],"mappings":"
|
|
1
|
+
{"version":3,"file":"TextareaControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/textarea/TextareaControl.tsx"],"sourcesContent":["import { type Control, type FieldPath, type FieldValues, useController, type UseControllerProps } from 'react-hook-form'\nimport { TextareaBase, type TextareaBaseProps } from '$/shared/ui'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype TextareaControlClasses = TextareaBaseProps['classes'] & {\n root?: string\n message?: string\n}\n\nexport type TextareaControlProps<\n TFieldValues extends FieldValues = FieldValues,\n TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<TextareaBaseProps, 'classes'> & {\n /**\n * Контрол объект для управления полем\n */\n control: Control<TFieldValues>\n /**\n * Дополнительные стили компонента\n */\n classes?: TextareaControlClasses\n /**\n * Дополнительный текст\n */\n helperText?: string\n }\n\nexport const TextareaControl = <TFieldValues extends FieldValues = FieldValues>({\n classes,\n control,\n name,\n rules,\n disabled,\n defaultValue,\n shouldUnregister,\n helperText,\n ...props\n}: TextareaControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n rules,\n disabled,\n defaultValue,\n shouldUnregister\n })\n\n const { error, invalid, isTouched } = fieldState\n const { message, root, ...restClasses } = classes || {}\n\n return (\n <div className={cn('w-full', root)}>\n <TextareaBase\n {...props}\n {...field}\n aria-invalid={invalid}\n invalid={invalid}\n classes={restClasses}\n attachmentProps={{\n invalid,\n isTouched,\n withValidateIcons: true,\n ...props.attachmentProps\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":["TextareaControl","classes","control","name","rules","disabled","defaultValue","shouldUnregister","helperText","props","field","fieldState","useController","error","invalid","isTouched","message","root","restClasses","cn","jsx","TextareaBase","MessageView"],"mappings":"89CA6BO,MAAMA,GAAkB,CAAiD,CAC9E,QAAAC,EACA,QAAAC,EACA,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,aAAAC,EACA,iBAAAC,EACA,WAAAC,EACA,GAAGC,CACL,IAA0C,CACxC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAV,EACA,KAAAC,EACA,MAAAC,EACA,SAAAC,EACA,aAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAM,EAAO,QAAAC,EAAS,UAAAC,CAAA,EAAcJ,EAChC,CAAE,QAAAK,EAAS,KAAAC,EAAM,GAAGC,CAAA,EAAgBjB,GAAW,CAAA,EAErD,SACG,MAAA,CAAI,UAAWkB,EAAG,SAAUF,CAAI,EAC/B,SAAA,CAAAG,EAACC,EAAA,CACE,GAAGZ,EACH,GAAGC,EACJ,eAAcI,EACd,QAAAA,EACA,QAASI,EACT,gBAAiB,CACf,QAAAJ,EACA,UAAAC,EACA,kBAAmB,GACnB,GAAGN,EAAM,eAAA,CACX,CAAA,EAEFW,EAACE,EAAA,CACC,MAAMT,GAAA,YAAAA,EAAO,UAAWL,EACxB,UAAWQ,EACX,OAAQH,EAAQ,QAAU,SAC1B,SAAAR,CAAA,CAAA,CACF,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as C,jsx as t}from"react/jsx-runtime";import{useController as j}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{UploaderBase as v}from"../../uncontrolled/uploader/UploaderBase.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 C,jsx as t}from"react/jsx-runtime";import{useController as j}from"../../../../../../node_modules/react-hook-form/dist/index.esm.js";import{UploaderBase as v}from"../../uncontrolled/uploader/UploaderBase.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"../../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"../editor/ui/Editor.js";import"../input/MaskInputControl.js";import{MessageView as N}from"../../ui/MessageView.js";const oo=({control:m,name:i,defaultValue:p,rules:e,shouldUnregister:s,classes:l,helperText:a,disabled:r,...n})=>{const{field:c,fieldState:f}=j({control:m,name:i,defaultValue:p,rules:e,shouldUnregister:s}),{error:o,invalid:d}=f,{message:x,container:g,...u}=l||{};return C("div",{className:w("w-full",g),children:[t(v,{...n,...c,invalid:d,disabled:r,classes:u}),t(N,{text:(o==null?void 0:o.message)||a,className:x,intent:o?"error":"simple",disabled:r})]})};export{oo as UploaderControl};
|
|
2
2
|
//# sourceMappingURL=UploaderControl.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploaderControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/uploader/UploaderControl.tsx"],"sourcesContent":["import { type Control, type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { UploaderBase, type UploaderBaseProps } from '../../uncontrolled/uploader'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype UploaderControlClasses = UploaderBaseProps & {\n message?: string\n container?: string\n}\n\nexport type UploaderControlProps<\n TFieldValues extends FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<UploaderBaseProps, 'name'> & {\n control: Control<TFieldValues>\n classes?: UploaderControlClasses\n }\n\nexport const UploaderControl = <TFieldValues extends FieldValues>({\n control,\n name,\n defaultValue,\n rules,\n shouldUnregister,\n classes,\n helperText,\n disabled,\n ...props\n}: UploaderControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n rules,\n shouldUnregister\n })\n\n const { error, invalid } = fieldState\n\n const { message, container, ...restClasses } = classes || {}\n\n return (\n <div className={cn('w-full', container)}>\n <UploaderBase {...props} {...field} invalid={invalid} disabled={disabled} classes={restClasses} />\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":["UploaderControl","control","name","defaultValue","rules","shouldUnregister","classes","helperText","disabled","props","field","fieldState","useController","error","invalid","message","container","restClasses","cn","jsx","UploaderBase","MessageView"],"mappings":"
|
|
1
|
+
{"version":3,"file":"UploaderControl.js","sources":["../../../../../../../lib/shared/ui/formElements/controlled/uploader/UploaderControl.tsx"],"sourcesContent":["import { type Control, type FieldValues, type Path, useController, type UseControllerProps } from 'react-hook-form'\nimport { UploaderBase, type UploaderBaseProps } from '../../uncontrolled/uploader'\nimport { MessageView } from '$/shared/ui/formElements/ui'\nimport { cn } from '$/shared/utils'\n\ntype UploaderControlClasses = UploaderBaseProps & {\n message?: string\n container?: string\n}\n\nexport type UploaderControlProps<\n TFieldValues extends FieldValues,\n TName extends Path<TFieldValues> = Path<TFieldValues>\n> = UseControllerProps<TFieldValues, TName> &\n Omit<UploaderBaseProps, 'name'> & {\n control: Control<TFieldValues>\n classes?: UploaderControlClasses\n }\n\nexport const UploaderControl = <TFieldValues extends FieldValues>({\n control,\n name,\n defaultValue,\n rules,\n shouldUnregister,\n classes,\n helperText,\n disabled,\n ...props\n}: UploaderControlProps<TFieldValues>) => {\n const { field, fieldState } = useController({\n control,\n name,\n defaultValue,\n rules,\n shouldUnregister\n })\n\n const { error, invalid } = fieldState\n\n const { message, container, ...restClasses } = classes || {}\n\n return (\n <div className={cn('w-full', container)}>\n <UploaderBase {...props} {...field} invalid={invalid} disabled={disabled} classes={restClasses} />\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":["UploaderControl","control","name","defaultValue","rules","shouldUnregister","classes","helperText","disabled","props","field","fieldState","useController","error","invalid","message","container","restClasses","cn","jsx","UploaderBase","MessageView"],"mappings":"89CAmBO,MAAMA,GAAkB,CAAmC,CAChE,QAAAC,EACA,KAAAC,EACA,aAAAC,EACA,MAAAC,EACA,iBAAAC,EACA,QAAAC,EACA,WAAAC,EACA,SAAAC,EACA,GAAGC,CACL,IAA0C,CACxC,KAAM,CAAE,MAAAC,EAAO,WAAAC,CAAA,EAAeC,EAAc,CAC1C,QAAAX,EACA,KAAAC,EACA,aAAAC,EACA,MAAAC,EACA,iBAAAC,CAAA,CACD,EAEK,CAAE,MAAAQ,EAAO,QAAAC,CAAA,EAAYH,EAErB,CAAE,QAAAI,EAAS,UAAAC,EAAW,GAAGC,CAAA,EAAgBX,GAAW,CAAA,EAE1D,SACG,MAAA,CAAI,UAAWY,EAAG,SAAUF,CAAS,EACpC,SAAA,CAAAG,EAACC,EAAA,CAAc,GAAGX,EAAQ,GAAGC,EAAO,QAAAI,EAAkB,SAAAN,EAAoB,QAASS,EAAa,EAChGE,EAACE,EAAA,CACC,MAAMR,GAAA,YAAAA,EAAO,UAAWN,EACxB,UAAWQ,EACX,OAAQF,EAAQ,QAAU,SAC1B,SAAAL,CAAA,CAAA,CACF,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as f,Fragment as x,jsx as r}from"react/jsx-runtime";import{cn as t}from"../../../../../utils/cn.js";import"../../../../button/Button.js";import"../../../../buttonIcon/ButtonIcon.js";import{Badge as c}from"../../../../badge/Badge.js";import"../../../../calendar/Calendar.js";import"../../../../calendar/model/utils.js";import"../../../../accordion/Accordion.js";import"react";import"
|
|
1
|
+
import{jsxs as f,Fragment as x,jsx as r}from"react/jsx-runtime";import{cn as t}from"../../../../../utils/cn.js";import"../../../../button/Button.js";import"../../../../buttonIcon/ButtonIcon.js";import{Badge as c}from"../../../../badge/Badge.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 n}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"../../../controlled/editor/ui/Editor.js";import"../../../controlled/input/MaskInputControl.js";const T=({badge:i,withValidateIcons:m,isValid:p,isInvalid:e,classes:o})=>f(x,{children:[p&&m&&r(n,{name:"general/check",className:t("size-6 text-icon-positive-default",o==null?void 0:o.successIcon)}),e&&m&&r(n,{name:"info/warningCircle",className:t("size-5 text-icon-secondary-default",o==null?void 0:o.errorIcon)}),i&&!p&&r(c,{className:t("bg-color-positive text-color-white",o==null?void 0:o.badge),children:i})]});export{T as ValidateSlot};
|
|
2
2
|
//# sourceMappingURL=ValidateSlot.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ValidateSlot.js","sources":["../../../../../../../../lib/shared/ui/formElements/ui/fieldAttachment/ui/ValidateSlot.tsx"],"sourcesContent":["import { type IFieldAttachmentProps, type TFieldAttachmentClasses } from '../FieldAttachment'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface IValidateSlotProps extends Pick<IFieldAttachmentProps, 'badge' | 'withValidateIcons'> {\n isValid?: boolean\n isInvalid?: boolean\n classes?: Pick<TFieldAttachmentClasses, 'badge' | 'errorIcon' | 'successIcon'>\n}\n\nexport const ValidateSlot = ({ badge, withValidateIcons, isValid, isInvalid, classes }: IValidateSlotProps) => {\n return (\n <>\n {isValid && withValidateIcons && (\n <Icon name='general/check' className={cn('size-6 text-icon-positive-default', classes?.successIcon)} />\n )}\n {isInvalid && withValidateIcons && (\n <Icon name='info/warningCircle' className={cn('size-5 text-icon-secondary-default', classes?.errorIcon)} />\n )}\n {badge && !isValid && <Badge className={cn('bg-color-positive text-color-white', classes?.badge)}>{badge}</Badge>}\n </>\n )\n}\n"],"names":["ValidateSlot","badge","withValidateIcons","isValid","isInvalid","classes","jsxs","Fragment","jsx","Icon","cn","Badge"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ValidateSlot.js","sources":["../../../../../../../../lib/shared/ui/formElements/ui/fieldAttachment/ui/ValidateSlot.tsx"],"sourcesContent":["import { type IFieldAttachmentProps, type TFieldAttachmentClasses } from '../FieldAttachment'\nimport { Badge, Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport interface IValidateSlotProps extends Pick<IFieldAttachmentProps, 'badge' | 'withValidateIcons'> {\n isValid?: boolean\n isInvalid?: boolean\n classes?: Pick<TFieldAttachmentClasses, 'badge' | 'errorIcon' | 'successIcon'>\n}\n\nexport const ValidateSlot = ({ badge, withValidateIcons, isValid, isInvalid, classes }: IValidateSlotProps) => {\n return (\n <>\n {isValid && withValidateIcons && (\n <Icon name='general/check' className={cn('size-6 text-icon-positive-default', classes?.successIcon)} />\n )}\n {isInvalid && withValidateIcons && (\n <Icon name='info/warningCircle' className={cn('size-5 text-icon-secondary-default', classes?.errorIcon)} />\n )}\n {badge && !isValid && <Badge className={cn('bg-color-positive text-color-white', classes?.badge)}>{badge}</Badge>}\n </>\n )\n}\n"],"names":["ValidateSlot","badge","withValidateIcons","isValid","isInvalid","classes","jsxs","Fragment","jsx","Icon","cn","Badge"],"mappings":"8gDAUO,MAAMA,EAAe,CAAC,CAAE,MAAAC,EAAO,kBAAAC,EAAmB,QAAAC,EAAS,UAAAC,EAAW,QAAAC,KAEzEC,EAAAC,EAAA,CACG,SAAA,CAAAJ,GAAWD,GACVM,EAACC,EAAA,CAAK,KAAK,gBAAgB,UAAWC,EAAG,oCAAqCL,GAAA,YAAAA,EAAS,WAAW,CAAA,CAAG,EAEtGD,GAAaF,GACZM,EAACC,EAAA,CAAK,KAAK,qBAAqB,UAAWC,EAAG,qCAAsCL,GAAA,YAAAA,EAAS,SAAS,CAAA,CAAG,EAE1GJ,GAAS,CAACE,GAAWK,EAACG,EAAA,CAAM,UAAWD,EAAG,qCAAsCL,GAAA,YAAAA,EAAS,KAAK,EAAI,SAAAJ,CAAA,CAAM,CAAA,EAC3G"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as A}from"react/jsx-runtime";import{forwardRef as C}from"react";import
|
|
1
|
+
import{jsx as A}from"react/jsx-runtime";import{forwardRef as C}from"react";import{useDebounceValue as S}from"../../../../hooks/useDebounce.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"../checkbox/Checkbox.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import"../input/Input.js";import"../dayPicker/DayPicker.js";import"../inputOtp/InputOtpBase.js";import"../maskInput/MaskInput.js";import"../radio/RadioGroup.js";import"../radio/ui/RadioItem.js";import{SelectBase as B}from"../select/Select.js";import"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../uploader/UploaderBase.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";const $=C(({formatter:c,query:f,value:p,displayValue:i,onChange:m,externalHandlers:o,...u},b)=>{const h=S(p||"",100),{data:r}=f(h),s=r?r.map(c):[],g=t=>{!t||Array.isArray(t)||m&&m(i?i(t):t.label)};return A(B,{...u,ref:b,options:s,filterDisabled:!0,inputValue:p,onInputChange:m,isSearchable:!0,isMulti:!1,displayValue:i,externalHandlers:{onChange:t=>{g(t),o!=null&&o.onChange&&(o==null||o.onChange(t))},...o}})});export{$ as AutocompleteBase};
|
|
2
2
|
//# sourceMappingURL=Autocomplete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Autocomplete.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type UseQueryResult } from '@tanstack/react-query'\nimport type { AutocompleteItemOption } from './types'\nimport { useDebounceValue } from '$/shared/hooks'\nimport { SelectBase, type SelectBaseProps } from '$/shared/ui'\n\nexport interface AutocompleteBaseProps<TData>\n extends Omit<\n SelectBaseProps<boolean>,\n 'options' | 'inputValue' | 'onInputChange' | 'isSearchable' | 'isMulti' | 'value' | 'onChange'\n > {\n /**\n * Функция для запроса основанная на [@tanstack/query](https://tanstack.com/query/latest/docs/framework/react/overview)\n */\n query: (query: string) => UseQueryResult<TData[]>\n /**\n * Позволяет форматировать данные\n */\n formatter: (item: TData, index: number, array: TData[]) => AutocompleteItemOption<TData>\n /**\n * Значение инпута\n */\n value?: string\n /**\n * Handler инпута\n */\n onChange?: (value: string) => void\n}\n\nexport const AutocompleteBase = forwardRef(\n <TData,>(\n { formatter, query, value, displayValue, onChange, externalHandlers, ...props }: AutocompleteBaseProps<TData>,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const debounceSearch = useDebounceValue(value || '', 100)\n\n const { data } = query(debounceSearch)\n\n const options = data ? data.map(formatter) : []\n\n const onValueChange = (value?: AutocompleteItemOption<TData> | AutocompleteItemOption<TData>[]) => {\n if (!value || Array.isArray(value)) return\n\n if (onChange) onChange(displayValue ? displayValue(value) : value.label)\n }\n\n return (\n <SelectBase\n {...props}\n ref={ref}\n options={options}\n filterDisabled\n inputValue={value}\n onInputChange={onChange}\n isSearchable\n isMulti={false}\n displayValue={displayValue}\n externalHandlers={{\n onChange: (value) => {\n onValueChange(value)\n if (externalHandlers?.onChange) externalHandlers?.onChange(value)\n },\n ...externalHandlers\n }}\n />\n )\n }\n) as <TData>(props: AutocompleteBaseProps<TData> & { ref: React.Ref<HTMLInputElement> }) => React.JSX.Element\n"],"names":["AutocompleteBase","forwardRef","formatter","query","value","displayValue","onChange","externalHandlers","props","ref","debounceSearch","useDebounceValue","data","options","onValueChange","jsx","SelectBase"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Autocomplete.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type UseQueryResult } from '@tanstack/react-query'\nimport type { AutocompleteItemOption } from './types'\nimport { useDebounceValue } from '$/shared/hooks'\nimport { SelectBase, type SelectBaseProps } from '$/shared/ui'\n\nexport interface AutocompleteBaseProps<TData>\n extends Omit<\n SelectBaseProps<boolean>,\n 'options' | 'inputValue' | 'onInputChange' | 'isSearchable' | 'isMulti' | 'value' | 'onChange'\n > {\n /**\n * Функция для запроса основанная на [@tanstack/query](https://tanstack.com/query/latest/docs/framework/react/overview)\n */\n query: (query: string) => UseQueryResult<TData[]>\n /**\n * Позволяет форматировать данные\n */\n formatter: (item: TData, index: number, array: TData[]) => AutocompleteItemOption<TData>\n /**\n * Значение инпута\n */\n value?: string\n /**\n * Handler инпута\n */\n onChange?: (value: string) => void\n}\n\nexport const AutocompleteBase = forwardRef(\n <TData,>(\n { formatter, query, value, displayValue, onChange, externalHandlers, ...props }: AutocompleteBaseProps<TData>,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const debounceSearch = useDebounceValue(value || '', 100)\n\n const { data } = query(debounceSearch)\n\n const options = data ? data.map(formatter) : []\n\n const onValueChange = (value?: AutocompleteItemOption<TData> | AutocompleteItemOption<TData>[]) => {\n if (!value || Array.isArray(value)) return\n\n if (onChange) onChange(displayValue ? displayValue(value) : value.label)\n }\n\n return (\n <SelectBase\n {...props}\n ref={ref}\n options={options}\n filterDisabled\n inputValue={value}\n onInputChange={onChange}\n isSearchable\n isMulti={false}\n displayValue={displayValue}\n externalHandlers={{\n onChange: (value) => {\n onValueChange(value)\n if (externalHandlers?.onChange) externalHandlers?.onChange(value)\n },\n ...externalHandlers\n }}\n />\n )\n }\n) as <TData>(props: AutocompleteBaseProps<TData> & { ref: React.Ref<HTMLInputElement> }) => React.JSX.Element\n"],"names":["AutocompleteBase","forwardRef","formatter","query","value","displayValue","onChange","externalHandlers","props","ref","debounceSearch","useDebounceValue","data","options","onValueChange","jsx","SelectBase"],"mappings":"2oCA6BO,MAAMA,EAAmBC,EAC9B,CACE,CAAE,UAAAC,EAAW,MAAAC,EAAO,MAAAC,EAAO,aAAAC,EAAc,SAAAC,EAAU,iBAAAC,EAAkB,GAAGC,CAAA,EACxEC,IACG,CACH,MAAMC,EAAiBC,EAAiBP,GAAS,GAAI,GAAG,EAElD,CAAE,KAAAQ,CAAA,EAAST,EAAMO,CAAc,EAE/BG,EAAUD,EAAOA,EAAK,IAAIV,CAAS,EAAI,CAAA,EAEvCY,EAAiBV,GAA4E,CAC7F,CAACA,GAAS,MAAM,QAAQA,CAAK,GAE7BE,GAAUA,EAASD,EAAeA,EAAaD,CAAK,EAAIA,EAAM,KAAK,CACzE,EAEA,OACEW,EAACC,EAAA,CACE,GAAGR,EACJ,IAAAC,EACA,QAAAI,EACA,eAAc,GACd,WAAYT,EACZ,cAAeE,EACf,aAAY,GACZ,QAAS,GACT,aAAAD,EACA,iBAAkB,CAChB,SAAWD,GAAU,CACnBU,EAAcV,CAAK,EACfG,GAAA,MAAAA,EAAkB,WAAUA,GAAA,MAAAA,EAAkB,SAASH,GAC7D,EACA,GAAGG,CAAA,CACL,CAAA,CAGN,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as t}from"react/jsx-runtime";import{forwardRef as b}from"react";import{Checkbox as c,CheckboxIndicator as l}from"../../../../../../node_modules/@radix-ui/react-checkbox/dist/index.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{jsx as t}from"react/jsx-runtime";import{forwardRef as b}from"react";import{Checkbox as c,CheckboxIndicator as l}from"../../../../../../node_modules/@radix-ui/react-checkbox/dist/index.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{Icon as g}from"../../../icon/Icon.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../autocomplete/Autocomplete.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import"../input/Input.js";import"../dayPicker/DayPicker.js";import"../inputOtp/InputOtpBase.js";import"../maskInput/MaskInput.js";import"../radio/RadioGroup.js";import"../radio/ui/RadioItem.js";import"../select/Select.js";import"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../uploader/UploaderBase.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";const u=b(({classes:r,className:d,invalid:i,disabled:m,externalHandlers:p,...o},f)=>{const{onChange:a,...h}=p||{};return t(c,{...o,...h,onCheckedChange:n=>{o.onCheckedChange&&o.onCheckedChange(n),a&&a(n)},disabled:m,ref:f,"aria-invalid":i,className:e("flex h-6 max-h-6 min-h-6 w-6 min-w-6 max-w-6 items-center justify-center rounded-full","relative rounded-sm border-2 border-blue-grey-700 outline-none",'after:left-1/2 after:top-1/2 after:h-10 after:w-10 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[""]',"after:absolute after:rounded-full [&:not(:disabled)]:hover:after:bg-color-primary-tr-hover","after:duration-100 [&:not(:disabled)]:active:after:bg-color-primary-tr-pressed","after:-z-10 [&:not(:disabled)]:focus:after:bg-color-primary-tr-focus",{"border-negative":i,"disabled:border-0 disabled:bg-color-blue-grey-300":m},r==null?void 0:r.root,d),children:t(l,{className:e("h-6 w-6 rounded-sm bg-color-primary-default group-disabled:bg-color-primary-disabled",r==null?void 0:r.indicator),children:t(g,{name:"general/check",className:e("size-6 text-icon-white",r==null?void 0:r.icon)})})})});u.displayName="CheckboxBase";export{u as CheckboxBase};
|
|
2
2
|
//# sourceMappingURL=Checkbox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type CheckboxProps as CheckboxPrimitiveProps, type CheckedState, Indicator, Root } from '@radix-ui/react-checkbox'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type CheckboxBaseClasses = {\n root?: string\n indicator?: string\n icon?: string\n}\n\nexport type { CheckedState }\n\ntype ExternalHandlers = {\n onChange?: (value: CheckedState) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type CheckboxBaseProps = CheckboxPrimitiveProps & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: CheckboxBaseClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const CheckboxBase = forwardRef<HTMLButtonElement, CheckboxBaseProps>(\n ({ classes, className, invalid, disabled, externalHandlers, ...props }, ref) => {\n const { onChange, ...restHandlers } = externalHandlers || {}\n\n const onCheckedChange = (value: CheckedState) => {\n if (props.onCheckedChange) props.onCheckedChange(value)\n if (onChange) onChange(value)\n }\n\n return (\n <Root\n {...props}\n {...restHandlers}\n onCheckedChange={onCheckedChange}\n disabled={disabled}\n ref={ref}\n aria-invalid={invalid}\n className={cn(\n 'flex h-6 max-h-6 min-h-6 w-6 min-w-6 max-w-6 items-center justify-center rounded-full',\n 'relative rounded-sm border-2 border-blue-grey-700 outline-none',\n 'after:left-1/2 after:top-1/2 after:h-10 after:w-10 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[\"\"]',\n 'after:absolute after:rounded-full [&:not(:disabled)]:hover:after:bg-color-primary-tr-hover',\n 'after:duration-100 [&:not(:disabled)]:active:after:bg-color-primary-tr-pressed',\n 'after:-z-10 [&:not(:disabled)]:focus:after:bg-color-primary-tr-focus',\n {\n 'border-negative': invalid,\n 'disabled:border-0 disabled:bg-color-blue-grey-300': disabled\n },\n classes?.root,\n className\n )}\n >\n <Indicator\n className={cn(\n 'h-6 w-6 rounded-sm bg-color-primary-default group-disabled:bg-color-primary-disabled',\n classes?.indicator\n )}\n >\n <Icon name='general/check' className={cn('size-6 text-icon-white', classes?.icon)} />\n </Indicator>\n </Root>\n )\n }\n)\nCheckboxBase.displayName = 'CheckboxBase'\n"],"names":["CheckboxBase","forwardRef","classes","className","invalid","disabled","externalHandlers","props","ref","onChange","restHandlers","jsx","Root","value","cn","Indicator","Icon"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/checkbox/Checkbox.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type CheckboxProps as CheckboxPrimitiveProps, type CheckedState, Indicator, Root } from '@radix-ui/react-checkbox'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\nexport type CheckboxBaseClasses = {\n root?: string\n indicator?: string\n icon?: string\n}\n\nexport type { CheckedState }\n\ntype ExternalHandlers = {\n onChange?: (value: CheckedState) => void\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLButtonElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLButtonElement>) => void\n}\n\nexport type CheckboxBaseProps = CheckboxPrimitiveProps & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: CheckboxBaseClasses\n /**\n * Свойство для отображения не валидного поля\n */\n invalid?: boolean\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const CheckboxBase = forwardRef<HTMLButtonElement, CheckboxBaseProps>(\n ({ classes, className, invalid, disabled, externalHandlers, ...props }, ref) => {\n const { onChange, ...restHandlers } = externalHandlers || {}\n\n const onCheckedChange = (value: CheckedState) => {\n if (props.onCheckedChange) props.onCheckedChange(value)\n if (onChange) onChange(value)\n }\n\n return (\n <Root\n {...props}\n {...restHandlers}\n onCheckedChange={onCheckedChange}\n disabled={disabled}\n ref={ref}\n aria-invalid={invalid}\n className={cn(\n 'flex h-6 max-h-6 min-h-6 w-6 min-w-6 max-w-6 items-center justify-center rounded-full',\n 'relative rounded-sm border-2 border-blue-grey-700 outline-none',\n 'after:left-1/2 after:top-1/2 after:h-10 after:w-10 after:-translate-x-1/2 after:-translate-y-1/2 after:content-[\"\"]',\n 'after:absolute after:rounded-full [&:not(:disabled)]:hover:after:bg-color-primary-tr-hover',\n 'after:duration-100 [&:not(:disabled)]:active:after:bg-color-primary-tr-pressed',\n 'after:-z-10 [&:not(:disabled)]:focus:after:bg-color-primary-tr-focus',\n {\n 'border-negative': invalid,\n 'disabled:border-0 disabled:bg-color-blue-grey-300': disabled\n },\n classes?.root,\n className\n )}\n >\n <Indicator\n className={cn(\n 'h-6 w-6 rounded-sm bg-color-primary-default group-disabled:bg-color-primary-disabled',\n classes?.indicator\n )}\n >\n <Icon name='general/check' className={cn('size-6 text-icon-white', classes?.icon)} />\n </Indicator>\n </Root>\n )\n }\n)\nCheckboxBase.displayName = 'CheckboxBase'\n"],"names":["CheckboxBase","forwardRef","classes","className","invalid","disabled","externalHandlers","props","ref","onChange","restHandlers","jsx","Root","value","cn","Indicator","Icon"],"mappings":"4wCAmCO,MAAMA,EAAeC,EAC1B,CAAC,CAAE,QAAAC,EAAS,UAAAC,EAAW,QAAAC,EAAS,SAAAC,EAAU,iBAAAC,EAAkB,GAAGC,CAAA,EAASC,IAAQ,CAC9E,KAAM,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAiBJ,GAAoB,CAAA,EAO1D,OACEK,EAACC,EAAA,CACE,GAAGL,EACH,GAAGG,EACJ,gBATqBG,GAAwB,CAC3CN,EAAM,iBAAiBA,EAAM,gBAAgBM,CAAK,EAClDJ,KAAmBI,CAAK,CAC9B,EAOI,SAAAR,EACA,IAAAG,EACA,eAAcJ,EACd,UAAWU,EACT,wFACA,iEACA,sHACA,6FACA,iFACA,uEACA,CACE,kBAAmBV,EACnB,oDAAqDC,CAAA,EAEvDH,GAAA,YAAAA,EAAS,KACTC,CAAA,EAGF,SAAAQ,EAACI,EAAA,CACC,UAAWD,EACT,uFACAZ,GAAA,YAAAA,EAAS,SAAA,EAGX,SAAAS,EAACK,GAAK,KAAK,gBAAgB,UAAWF,EAAG,yBAA0BZ,GAAA,YAAAA,EAAS,IAAI,CAAA,CAAG,CAAA,CAAA,CACrF,CAAA,CAGN,CACF,EACAF,EAAa,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as L,jsx as i}from"react/jsx-runtime";import{useRef as M}from"react";import{useFloating as S}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{useCombobox as U}from"./hooks/useCombobox.js";import{useClickOutside as q}from"../../../../hooks/useClickOutside.js";import
|
|
1
|
+
import{jsxs as L,jsx as i}from"react/jsx-runtime";import{useRef as M}from"react";import{useFloating as S}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{useCombobox as U}from"./hooks/useCombobox.js";import{useClickOutside as q}from"../../../../hooks/useClickOutside.js";import{cn as m}from"../../../../utils/cn.js";import{mergeRefs as G}from"../../../../utils/mergeRefs.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{Icon as J}from"../../../icon/Icon.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../autocomplete/Autocomplete.js";import"../checkbox/Checkbox.js";import"../dayPicker/DayPicker.js";import{InputBase as K}from"../input/Input.js";import"../inputOtp/InputOtpBase.js";import"../maskInput/MaskInput.js";import"../radio/RadioGroup.js";import"../radio/ui/RadioItem.js";import"../select/Select.js";import"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../uploader/UploaderBase.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{DropdownList as Q}from"../../../dropdownList/DropdownList.js";import{autoUpdate as T}from"../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js";import{flip as W,offset as X}from"../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js";import{AnimatePresence as Y}from"../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";import{motion as Z}from"../../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";const Mo=({options:C,multiple:u,value:v,onChange:b,defaultOpen:d,attachmentProps:R,searchable:r,invalid:k,displayValue:c,label:A,disabled:p,readOnly:e,className:B,externalHandlers:o,classes:t})=>{var w;const{floating:F,...I}=(t==null?void 0:t.list)??{},f=M(null),{refs:g,floatingStyles:N}=S({placement:"bottom-start",strategy:"absolute",middleware:[W({boundary:"clippingAncestors",crossAxis:!1}),X(4)],whileElementsMounted:T}),{open:n,setOpen:h,state:P,changeHandler:j,options:z,search:O,onInputChange:s}=U({multiple:u,value:v,onChange:b,defaultOpen:d,searchable:r,displayValue:c,initialOptions:C,externalHandlers:o});return n?document.body.style.overflow="hidden":document.body.style.overflow="initial",q(f,()=>h(!1)),L("div",{ref:f,className:m("relative w-full",t==null?void 0:t.root,B),children:[i(K,{ref:G(g.setReference),label:A,invalid:k,readOnly:e||!r,value:O,onChange:s,disabled:p,onClick:D=>{var y;h(E=>!E),(y=o==null?void 0:o.clickHandler)==null||y.call(o,D)},onBlur:o==null?void 0:o.blurHandler,onFocus:o==null?void 0:o.focusHandler,classes:{input:m({"cursor-pointer":!r,"cursor-default":p,"pointer-events-none":p||e}),...t==null?void 0:t.input},autoComplete:"off",attachmentProps:{icon:i(J,{name:"arrows/arrowRight",className:m("size-6 rotate-90 text-color-blue-grey-600 duration-100",{"-rotate-90":n})}),...R}}),i(Y,{children:n&&i(Z.div,{ref:g.setFloating,initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},className:m("z-[1000]",F),style:{...N,width:(w=f.current)==null?void 0:w.getBoundingClientRect().width},children:i(Q,{options:z,multiple:u,onPick:j,value:P,displayValue:c,classes:I})})})]})};export{Mo as Combobox};
|
|
2
2
|
//# sourceMappingURL=combobox.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox } from './hooks'\nimport type { ChangeHandler, ComboboxValue } from './model'\nimport type { ComboboxItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon } from '$/shared/ui'\nimport { DropdownList, type DropdownListClasses, type DropdownListProps } from '$/shared/ui/dropdownList'\nimport { type IFieldAttachmentProps } from '$/shared/ui/formElements/ui'\nimport { InputBase, type InputBaseProps } from '$/shared/ui/formElements/uncontrolled/input'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type ComboboxClasses = {\n root?: string\n list?: { floating?: string } & DropdownListClasses\n input?: InputBaseProps['classes']\n}\n\nexport type ExternalHandlers<Multi extends boolean> = {\n changeHandler?: ChangeHandler<Multi>\n clickHandler?: (event: React.MouseEvent<HTMLElement>) => void\n blurHandler?: (event: React.FocusEvent<HTMLElement>) => void\n focusHandler?: (event: React.FocusEvent<HTMLElement>) => void\n inputChangeHandler?: (value: string) => void\n}\n\nexport interface ComboboxProps<Multi extends boolean> extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'> {\n /**\n * Список опций\n */\n options: ComboboxItemOption[]\n /**\n * Выбранное значение\n */\n value?: ComboboxValue<Multi>\n /**\n * Функция для изменения значения\n */\n onChange?: ChangeHandler<Multi>\n /**\n * Свойство управляющее поиском\n */\n searchable?: boolean\n /**\n * Открыть список по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<IFieldAttachmentProps>\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: ComboboxItemOption) => string\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Выключено поле\n */\n disabled?: boolean\n /**\n * Только для чтения\n */\n readOnly?: boolean\n /**\n * Дополнительные стили\n */\n classes?: ComboboxClasses\n /**\n * Дополнительные события\n */\n externalHandlers?: ExternalHandlers<Multi>\n}\n\nexport const Combobox = <Multi extends boolean>({\n options: initialOptions,\n multiple,\n value,\n onChange,\n defaultOpen,\n attachmentProps,\n searchable,\n invalid,\n displayValue,\n label,\n disabled,\n readOnly,\n className,\n externalHandlers,\n classes\n}: ComboboxProps<Multi>) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating<HTMLInputElement>({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(4)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { open, setOpen, state, changeHandler, options, search, onInputChange } = useCombobox({\n multiple,\n value,\n onChange,\n defaultOpen,\n searchable,\n displayValue,\n initialOptions,\n externalHandlers\n })\n\n if (open) {\n document.body.style.overflow = 'hidden'\n } else {\n document.body.style.overflow = 'initial'\n }\n\n useClickOutside(containerRef, () => setOpen(false))\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={mergeRefs(refs.setReference)}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={search}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n setOpen((prev) => !prev)\n externalHandlers?.clickHandler?.(event)\n }}\n onBlur={externalHandlers?.blurHandler}\n onFocus={externalHandlers?.focusHandler}\n classes={{\n input: cn({\n 'cursor-pointer': !searchable,\n 'cursor-default': disabled,\n 'pointer-events-none': disabled || readOnly\n }),\n ...classes?.input\n }}\n autoComplete='off'\n attachmentProps={{\n icon: (\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n ),\n ...attachmentProps\n }}\n />\n\n <AnimatePresence>\n {open && (\n <motion.div\n ref={refs.setFloating}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.1 }}\n className={cn('z-[1000]', floating)}\n style={{ ...floatingStyles, width: containerRef.current?.getBoundingClientRect().width }}\n >\n <DropdownList\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n"],"names":["Combobox","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","classes","floating","dropdownClasses","containerRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","useCombobox","useClickOutside","jsxs","cn","jsx","InputBase","mergeRefs","event","prev","_a","Icon","AnimatePresence","motion","DropdownList"],"mappings":"
|
|
1
|
+
{"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox } from './hooks'\nimport type { ChangeHandler, ComboboxValue } from './model'\nimport type { ComboboxItemOption } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon } from '$/shared/ui'\nimport { DropdownList, type DropdownListClasses, type DropdownListProps } from '$/shared/ui/dropdownList'\nimport { type IFieldAttachmentProps } from '$/shared/ui/formElements/ui'\nimport { InputBase, type InputBaseProps } from '$/shared/ui/formElements/uncontrolled/input'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type ComboboxClasses = {\n root?: string\n list?: { floating?: string } & DropdownListClasses\n input?: InputBaseProps['classes']\n}\n\nexport type ExternalHandlers<Multi extends boolean> = {\n changeHandler?: ChangeHandler<Multi>\n clickHandler?: (event: React.MouseEvent<HTMLElement>) => void\n blurHandler?: (event: React.FocusEvent<HTMLElement>) => void\n focusHandler?: (event: React.FocusEvent<HTMLElement>) => void\n inputChangeHandler?: (value: string) => void\n}\n\nexport interface ComboboxProps<Multi extends boolean> extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'> {\n /**\n * Список опций\n */\n options: ComboboxItemOption[]\n /**\n * Выбранное значение\n */\n value?: ComboboxValue<Multi>\n /**\n * Функция для изменения значения\n */\n onChange?: ChangeHandler<Multi>\n /**\n * Свойство управляющее поиском\n */\n searchable?: boolean\n /**\n * Открыть список по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<IFieldAttachmentProps>\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: ComboboxItemOption) => string\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Выключено поле\n */\n disabled?: boolean\n /**\n * Только для чтения\n */\n readOnly?: boolean\n /**\n * Дополнительные стили\n */\n classes?: ComboboxClasses\n /**\n * Дополнительные события\n */\n externalHandlers?: ExternalHandlers<Multi>\n}\n\nexport const Combobox = <Multi extends boolean>({\n options: initialOptions,\n multiple,\n value,\n onChange,\n defaultOpen,\n attachmentProps,\n searchable,\n invalid,\n displayValue,\n label,\n disabled,\n readOnly,\n className,\n externalHandlers,\n classes\n}: ComboboxProps<Multi>) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const { refs, floatingStyles } = useFloating<HTMLInputElement>({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(4)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const { open, setOpen, state, changeHandler, options, search, onInputChange } = useCombobox({\n multiple,\n value,\n onChange,\n defaultOpen,\n searchable,\n displayValue,\n initialOptions,\n externalHandlers\n })\n\n if (open) {\n document.body.style.overflow = 'hidden'\n } else {\n document.body.style.overflow = 'initial'\n }\n\n useClickOutside(containerRef, () => setOpen(false))\n\n return (\n <div ref={containerRef} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={mergeRefs(refs.setReference)}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={search}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n setOpen((prev) => !prev)\n externalHandlers?.clickHandler?.(event)\n }}\n onBlur={externalHandlers?.blurHandler}\n onFocus={externalHandlers?.focusHandler}\n classes={{\n input: cn({\n 'cursor-pointer': !searchable,\n 'cursor-default': disabled,\n 'pointer-events-none': disabled || readOnly\n }),\n ...classes?.input\n }}\n autoComplete='off'\n attachmentProps={{\n icon: (\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n ),\n ...attachmentProps\n }}\n />\n\n <AnimatePresence>\n {open && (\n <motion.div\n ref={refs.setFloating}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.1 }}\n className={cn('z-[1000]', floating)}\n style={{ ...floatingStyles, width: containerRef.current?.getBoundingClientRect().width }}\n >\n <DropdownList\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n )\n}\n"],"names":["Combobox","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","classes","floating","dropdownClasses","containerRef","useRef","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","useCombobox","useClickOutside","jsxs","cn","jsx","InputBase","mergeRefs","event","prev","_a","Icon","AnimatePresence","motion","DropdownList"],"mappings":"2/DAmFO,MAAMA,GAAW,CAAwB,CAC9C,QAASC,EACT,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,QAAAC,EACA,aAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,UAAAC,EACA,iBAAAC,EACA,QAAAC,CACF,IAA4B,OAC1B,KAAM,CAAE,SAAAC,EAAU,GAAGC,IAAoBF,GAAA,YAAAA,EAAS,OAAQ,CAAA,EAEpDG,EAAeC,EAAuB,IAAI,EAE1C,CAAE,KAAAC,EAAM,eAAAC,CAAA,EAAmBC,EAA8B,CAC7D,UAAW,eACX,SAAU,WACV,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,EAAO,CAAC,CAAA,EAEV,qBAAsBC,CAAA,CACvB,EAEK,CAAE,KAAAC,EAAM,QAAAC,EAAS,MAAAC,EAAO,cAAAC,EAAe,QAAAC,EAAS,OAAAC,EAAQ,cAAAC,CAAA,EAAkBC,EAAY,CAC1F,SAAA/B,EACA,MAAAC,EACA,SAAAC,EACA,YAAAC,EACA,WAAAE,EACA,aAAAE,EACA,eAAAR,EACA,iBAAAa,CAAA,CACD,EAED,OAAIY,EACF,SAAS,KAAK,MAAM,SAAW,SAE/B,SAAS,KAAK,MAAM,SAAW,UAGjCQ,EAAgBhB,EAAc,IAAMS,EAAQ,EAAK,CAAC,EAGhDQ,EAAC,MAAA,CAAI,IAAKjB,EAAc,UAAWkB,EAAG,kBAAmBrB,GAAA,YAAAA,EAAS,KAAMF,CAAS,EAC/E,SAAA,CAAAwB,EAACC,EAAA,CACC,IAAKC,EAAUnB,EAAK,YAAY,EAChC,MAAAV,EACA,QAAAF,EACA,SAAUI,GAAY,CAACL,EACvB,MAAOwB,EACP,SAAUC,EACV,SAAArB,EACA,QAAU6B,GAAU,OAClBb,EAASc,GAAS,CAACA,CAAI,GACvBC,EAAA5B,GAAA,YAAAA,EAAkB,eAAlB,MAAA4B,EAAA,KAAA5B,EAAiC0B,EACnC,EACA,OAAQ1B,GAAA,YAAAA,EAAkB,YAC1B,QAASA,GAAA,YAAAA,EAAkB,aAC3B,QAAS,CACP,MAAOsB,EAAG,CACR,iBAAkB,CAAC7B,EACnB,iBAAkBI,EAClB,sBAAuBA,GAAYC,CAAA,CACpC,EACD,GAAGG,GAAA,YAAAA,EAAS,KAAA,EAEd,aAAa,MACb,gBAAiB,CACf,KACEsB,EAACM,EAAA,CACC,KAAK,oBACL,UAAWP,EAAG,yDAA0D,CACtE,aAAcV,CAAA,CACf,CAAA,CAAA,EAGL,GAAGpB,CAAA,CACL,CAAA,EAGF+B,EAACO,GACE,SAAAlB,GACCW,EAACQ,EAAO,IAAP,CACC,IAAKzB,EAAK,YACV,QAAS,CAAE,QAAS,CAAA,EACpB,QAAS,CAAE,QAAS,CAAA,EACpB,WAAY,CAAE,SAAU,EAAA,EACxB,UAAWgB,EAAG,WAAYpB,CAAQ,EAClC,MAAO,CAAE,GAAGK,EAAgB,OAAOqB,EAAAxB,EAAa,UAAb,YAAAwB,EAAsB,wBAAwB,KAAA,EAEjF,SAAAL,EAACS,EAAA,CACC,QAAAhB,EACA,SAAA5B,EACA,OAAQ2B,EACR,MAAOD,EACP,aAAAnB,EACA,QAASQ,CAAA,CAAA,CACX,CAAA,CACF,CAEJ,CAAA,EACF,CAEJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as n,jsxs as B}from"react/jsx-runtime";import{forwardRef as F,useRef as M,useState as p}from"react";import{createPortal as T}from"react-dom";import{useClickOutside as j}from"../../../../hooks/useClickOutside.js";import
|
|
1
|
+
import{jsx as n,jsxs as B}from"react/jsx-runtime";import{forwardRef as F,useRef as M,useState as p}from"react";import{createPortal as T}from"react-dom";import{useClickOutside as j}from"../../../../hooks/useClickOutside.js";import{cn as C}from"../../../../utils/cn.js";import"../../../button/Button.js";import"../../../buttonIcon/ButtonIcon.js";import{Calendar as _}from"../../../calendar/Calendar.js";import{DATE_VISIBLE_PATTERN as c}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 q}from"../../../icon/Icon.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../autocomplete/Autocomplete.js";import"../checkbox/Checkbox.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import"../input/Input.js";import"../inputOtp/InputOtpBase.js";import{MaskInput as v}from"../maskInput/MaskInput.js";import"../radio/RadioGroup.js";import"../radio/ui/RadioItem.js";import"../select/Select.js";import"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../uploader/UploaderBase.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import{AnimatePresence as H}from"../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";import{parse as K}from"../../../../../../node_modules/date-fns/parse.js";import{isValid as L}from"../../../../../../node_modules/date-fns/isValid.js";import{formatDate as x}from"../../../../../../node_modules/date-fns/format.js";const $=F(({defaultOpen:y=!1,value:l,onChange:e,disabled:i,externalHandlers:k,classes:w,...f},O)=>{const{onChange:o,onFocus:u,...I}=k||{},d=M(null),[P,r]=p(y),D=()=>{r(t=>!t)},[S,a]=p(new Date),[R,g]=p(x(new Date,c));j(d,()=>r(!1));const V=l?new Date(l):new Date,N=t=>{if(g(t),!/^(\d{2})\.(\d{2})\.(\d{4})$/.test(t))return;const s=K(t,c,new Date);if(L(s)){const h=s.toISOString();e&&e(h),o&&o(h),a(s)}},b=t=>{a(t);const m=t.toISOString();e&&e(m),o&&o(m),g(x(t,c)),r(!1)},{root:E,input:A}=w||{};return n("div",{ref:d,className:C("relative w-full",E),children:B(H,{mode:"sync",children:[n(v,{ref:O,...f,...I,disabled:i,mask:"##.##.####",classes:A,value:R,onChange:t=>N(t.target.value),autoComplete:"off",onFocus:t=>{r(!0),u&&u(t)},onKeyDown:t=>{(t.key==="Enter"||t.key===" ")&&D()},attachmentProps:{...f.attachmentProps,icon:n(q,{name:"general/calendar",className:C("text-icon-blue-grey-600",{"text-icon-disabled":i})}),onClickIcon:D,disabled:i}}),P&&T(n(_,{required:!0,mode:"single",month:S,onMonthChange:a,selected:V,onSelect:b,className:"absolute right-0 top-full"}),document.body)]})})});$.displayName="DayPickerBase";export{$ as DayPickerBase};
|
|
2
2
|
//# sourceMappingURL=DayPicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DayPicker.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/dayPicker/DayPicker.tsx"],"sourcesContent":["import { forwardRef, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { format, isValid, parse } from 'date-fns'\nimport { AnimatePresence } from 'framer-motion'\nimport { type InputBaseClasses } from '../input/Input'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type DayPickerClasses = {\n root?: string\n input?: InputBaseClasses\n}\n\nexport type DayPickerProps = Omit<MaskInputProps, 'value' | 'onChange' | 'mask' | 'classes'> & {\n /**\n * Указывает, открыт ли календарь по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Значение поля\n */\n value?: string\n /**\n * Функция изменения значения\n */\n onChange?: (value: string) => void\n /**\n * Внешние классы которыми можно поменять стили\n */\n classes?: DayPickerClasses\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const DayPickerBase = forwardRef<HTMLInputElement, DayPickerProps>(\n ({ defaultOpen = false, value, onChange, disabled, externalHandlers, classes, ...props }, ref) => {\n const { onChange: externalOnChange, onFocus: externalOnFocus, ...restHandlers } = externalHandlers || {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(defaultOpen)\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const [month, setMonth] = useState<Date>(new Date())\n const [visibleValue, setVisibleValue] = useState<string>(format(new Date(), DATE_VISIBLE_PATTERN))\n\n useClickOutside(containerRef, () => setCalendarOpen(false))\n\n const date = value ? new Date(value) : new Date()\n\n const onValueChange = (value: string) => {\n setVisibleValue(value)\n\n const dateRegex = /^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/\n\n if (!dateRegex.test(value)) {\n return\n }\n\n const parsedDate = parse(value, DATE_VISIBLE_PATTERN, new Date())\n\n if (isValid(parsedDate)) {\n const isoDate = parsedDate.toISOString()\n\n if (onChange) onChange(isoDate)\n if (externalOnChange) externalOnChange(isoDate)\n setMonth(parsedDate)\n }\n }\n\n const onDateChange = (date: Date) => {\n setMonth(date)\n\n const isoDate = date.toISOString()\n\n if (onChange) onChange(isoDate)\n if (externalOnChange) externalOnChange(isoDate)\n\n setVisibleValue(format(date, DATE_VISIBLE_PATTERN))\n setCalendarOpen(false)\n }\n\n const { root, input } = classes || {}\n\n return (\n <div ref={containerRef} className={cn('relative w-full', root)}>\n <AnimatePresence mode='sync'>\n <MaskInput\n ref={ref}\n {...props}\n {...restHandlers}\n disabled={disabled}\n mask='##.##.####'\n classes={input}\n value={visibleValue}\n onChange={(event) => onValueChange(event.target.value)}\n autoComplete='off'\n onFocus={(event) => {\n setCalendarOpen(true)\n if (externalOnFocus) externalOnFocus(event)\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n onCalendarOpenChange()\n }\n }}\n attachmentProps={{\n ...props.attachmentProps,\n icon: (\n <Icon name='general/calendar' className={cn('text-icon-blue-grey-600', { 'text-icon-disabled': disabled })} />\n ),\n onClickIcon: onCalendarOpenChange,\n disabled\n }}\n />\n {calendarOpen &&\n createPortal(\n <Calendar\n required\n mode='single'\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n className='absolute right-0 top-full'\n />,\n document.body\n )}\n </AnimatePresence>\n </div>\n )\n }\n)\nDayPickerBase.displayName = 'DayPickerBase'\n"],"names":["DayPickerBase","forwardRef","defaultOpen","value","onChange","disabled","externalHandlers","classes","props","ref","externalOnChange","externalOnFocus","restHandlers","containerRef","useRef","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","month","setMonth","visibleValue","setVisibleValue","format","DATE_VISIBLE_PATTERN","useClickOutside","date","onValueChange","parsedDate","parse","isValid","isoDate","onDateChange","root","input","jsx","cn","jsxs","AnimatePresence","MaskInput","event","Icon","createPortal","Calendar"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DayPicker.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/dayPicker/DayPicker.tsx"],"sourcesContent":["import { forwardRef, useRef, useState } from 'react'\nimport { createPortal } from 'react-dom'\nimport { format, isValid, parse } from 'date-fns'\nimport { AnimatePresence } from 'framer-motion'\nimport { type InputBaseClasses } from '../input/Input'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Calendar, DATE_VISIBLE_PATTERN, Icon, MaskInput, type MaskInputProps } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype ExternalHandlers = {\n onChange?: (value: string) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type DayPickerClasses = {\n root?: string\n input?: InputBaseClasses\n}\n\nexport type DayPickerProps = Omit<MaskInputProps, 'value' | 'onChange' | 'mask' | 'classes'> & {\n /**\n * Указывает, открыт ли календарь по умолчанию\n */\n defaultOpen?: boolean\n /**\n * Значение поля\n */\n value?: string\n /**\n * Функция изменения значения\n */\n onChange?: (value: string) => void\n /**\n * Внешние классы которыми можно поменять стили\n */\n classes?: DayPickerClasses\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const DayPickerBase = forwardRef<HTMLInputElement, DayPickerProps>(\n ({ defaultOpen = false, value, onChange, disabled, externalHandlers, classes, ...props }, ref) => {\n const { onChange: externalOnChange, onFocus: externalOnFocus, ...restHandlers } = externalHandlers || {}\n\n const containerRef = useRef<HTMLDivElement>(null)\n\n const [calendarOpen, setCalendarOpen] = useState<boolean>(defaultOpen)\n const onCalendarOpenChange = () => {\n setCalendarOpen((prev) => !prev)\n }\n\n const [month, setMonth] = useState<Date>(new Date())\n const [visibleValue, setVisibleValue] = useState<string>(format(new Date(), DATE_VISIBLE_PATTERN))\n\n useClickOutside(containerRef, () => setCalendarOpen(false))\n\n const date = value ? new Date(value) : new Date()\n\n const onValueChange = (value: string) => {\n setVisibleValue(value)\n\n const dateRegex = /^(\\d{2})\\.(\\d{2})\\.(\\d{4})$/\n\n if (!dateRegex.test(value)) {\n return\n }\n\n const parsedDate = parse(value, DATE_VISIBLE_PATTERN, new Date())\n\n if (isValid(parsedDate)) {\n const isoDate = parsedDate.toISOString()\n\n if (onChange) onChange(isoDate)\n if (externalOnChange) externalOnChange(isoDate)\n setMonth(parsedDate)\n }\n }\n\n const onDateChange = (date: Date) => {\n setMonth(date)\n\n const isoDate = date.toISOString()\n\n if (onChange) onChange(isoDate)\n if (externalOnChange) externalOnChange(isoDate)\n\n setVisibleValue(format(date, DATE_VISIBLE_PATTERN))\n setCalendarOpen(false)\n }\n\n const { root, input } = classes || {}\n\n return (\n <div ref={containerRef} className={cn('relative w-full', root)}>\n <AnimatePresence mode='sync'>\n <MaskInput\n ref={ref}\n {...props}\n {...restHandlers}\n disabled={disabled}\n mask='##.##.####'\n classes={input}\n value={visibleValue}\n onChange={(event) => onValueChange(event.target.value)}\n autoComplete='off'\n onFocus={(event) => {\n setCalendarOpen(true)\n if (externalOnFocus) externalOnFocus(event)\n }}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n onCalendarOpenChange()\n }\n }}\n attachmentProps={{\n ...props.attachmentProps,\n icon: (\n <Icon name='general/calendar' className={cn('text-icon-blue-grey-600', { 'text-icon-disabled': disabled })} />\n ),\n onClickIcon: onCalendarOpenChange,\n disabled\n }}\n />\n {calendarOpen &&\n createPortal(\n <Calendar\n required\n mode='single'\n month={month}\n onMonthChange={setMonth}\n selected={date}\n onSelect={onDateChange}\n className='absolute right-0 top-full'\n />,\n document.body\n )}\n </AnimatePresence>\n </div>\n )\n }\n)\nDayPickerBase.displayName = 'DayPickerBase'\n"],"names":["DayPickerBase","forwardRef","defaultOpen","value","onChange","disabled","externalHandlers","classes","props","ref","externalOnChange","externalOnFocus","restHandlers","containerRef","useRef","calendarOpen","setCalendarOpen","useState","onCalendarOpenChange","prev","month","setMonth","visibleValue","setVisibleValue","format","DATE_VISIBLE_PATTERN","useClickOutside","date","onValueChange","parsedDate","parse","isValid","isoDate","onDateChange","root","input","jsx","cn","jsxs","AnimatePresence","MaskInput","event","Icon","createPortal","Calendar"],"mappings":"0rDA4CO,MAAMA,EAAgBC,EAC3B,CAAC,CAAE,YAAAC,EAAc,GAAO,MAAAC,EAAO,SAAAC,EAAU,SAAAC,EAAU,iBAAAC,EAAkB,QAAAC,EAAS,GAAGC,CAAA,EAASC,IAAQ,CAChG,KAAM,CAAE,SAAUC,EAAkB,QAASC,EAAiB,GAAGC,CAAA,EAAiBN,GAAoB,CAAA,EAEhGO,EAAeC,EAAuB,IAAI,EAE1C,CAACC,EAAcC,CAAe,EAAIC,EAAkBf,CAAW,EAC/DgB,EAAuB,IAAM,CACjCF,EAAiBG,GAAS,CAACA,CAAI,CACjC,EAEM,CAACC,EAAOC,CAAQ,EAAIJ,EAAe,IAAI,IAAM,EAC7C,CAACK,EAAcC,CAAe,EAAIN,EAAiBO,EAAO,IAAI,KAAQC,CAAoB,CAAC,EAEjGC,EAAgBb,EAAc,IAAMG,EAAgB,EAAK,CAAC,EAE1D,MAAMW,EAAOxB,EAAQ,IAAI,KAAKA,CAAK,MAAQ,KAErCyB,EAAiBzB,GAAkB,CAKvC,GAJAoB,EAAgBpB,CAAK,EAIjB,CAFc,8BAEH,KAAKA,CAAK,EACvB,OAGF,MAAM0B,EAAaC,EAAM3B,EAAOsB,EAAsB,IAAI,IAAM,EAEhE,GAAIM,EAAQF,CAAU,EAAG,CACvB,MAAMG,EAAUH,EAAW,YAAA,EAEvBzB,KAAmB4B,CAAO,EAC1BtB,KAAmCsB,CAAO,EAC9CX,EAASQ,CAAU,CACrB,CACF,EAEMI,EAAgBN,GAAe,CACnCN,EAASM,CAAI,EAEb,MAAMK,EAAUL,EAAK,YAAA,EAEjBvB,KAAmB4B,CAAO,EAC1BtB,KAAmCsB,CAAO,EAE9CT,EAAgBC,EAAOG,EAAMF,CAAoB,CAAC,EAClDT,EAAgB,EAAK,CACvB,EAEM,CAAE,KAAAkB,EAAM,MAAAC,CAAA,EAAU5B,GAAW,CAAA,EAEnC,OACE6B,EAAC,MAAA,CAAI,IAAKvB,EAAc,UAAWwB,EAAG,kBAAmBH,CAAI,EAC3D,SAAAI,EAACC,EAAA,CAAgB,KAAK,OACpB,SAAA,CAAAH,EAACI,EAAA,CACC,IAAA/B,EACC,GAAGD,EACH,GAAGI,EACJ,SAAAP,EACA,KAAK,aACL,QAAS8B,EACT,MAAOb,EACP,SAAWmB,GAAUb,EAAca,EAAM,OAAO,KAAK,EACrD,aAAa,MACb,QAAUA,GAAU,CAClBzB,EAAgB,EAAI,EAChBL,KAAiC8B,CAAK,CAC5C,EACA,UAAYA,GAAU,EAChBA,EAAM,MAAQ,SAAWA,EAAM,MAAQ,MACzCvB,EAAA,CAEJ,EACA,gBAAiB,CACf,GAAGV,EAAM,gBACT,KACE4B,EAACM,EAAA,CAAK,KAAK,mBAAmB,UAAWL,EAAG,0BAA2B,CAAE,qBAAsBhC,CAAA,CAAU,CAAA,CAAG,EAE9G,YAAaa,EACb,SAAAb,CAAA,CACF,CAAA,EAEDU,GACC4B,EACEP,EAACQ,EAAA,CACC,SAAQ,GACR,KAAK,SACL,MAAAxB,EACA,cAAeC,EACf,SAAUM,EACV,SAAUM,EACV,UAAU,2BAAA,CAAA,EAEZ,SAAS,IAAA,CACX,CAAA,CACJ,CAAA,CACF,CAEJ,CACF,EACAjC,EAAc,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{InputBase as o}from"./input/Input.js";import{MaskInput as r}from"./maskInput/MaskInput.js";import{SelectBase as m}from"./select/Select.js";import{isSingleOption as
|
|
1
|
+
import{InputBase as o}from"./input/Input.js";import{MaskInput as r}from"./maskInput/MaskInput.js";import{SelectBase as m}from"./select/Select.js";import{isSingleOption as P}from"./select/model/typeGuards.js";import{CheckboxBase as t}from"./checkbox/Checkbox.js";import{DayPickerBase as p}from"./dayPicker/DayPicker.js";import{SwitchBase as e}from"./switch/Switch.js";import{AutocompleteBase as i}from"./autocomplete/Autocomplete.js";import{SliderBase as a}from"./slider/SliderBase.js";import{RadioGroupBase as f}from"./radio/RadioGroup.js";import"./radio/ui/RadioItem.js";import"react/jsx-runtime";import"react";import{TextareaBase as s}from"./textarea/Textarea.js";import{UploaderBase as B}from"./uploader/UploaderBase.js";import{InputOtpBase as n}from"./inputOtp/InputOtpBase.js";import{Combobox as c}from"./combobox/combobox.js";const D={InputBase:o,SliderBase:a,AutocompleteBase:i,MaskInput:r,SelectBase:m,CheckboxBase:t,DayPickerBase:p,SwitchBase:e,RadioGroupBase:f,TextareaBase:s,InputOtpBase:n,UploaderBase:B,Combobox:c};export{D as Uncontrolled,P as isSingleOption};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../lib/shared/ui/formElements/uncontrolled/index.ts"],"sourcesContent":["import { InputBase } from './input'\nexport type { InputBaseProps } from './input'\nimport { MaskInput } from './maskInput'\nexport type { MaskInputProps } from './maskInput'\nimport { SelectBase } from './select'\nexport type { SelectBaseProps, SelectItemOption } from './select'\nimport { CheckboxBase } from './checkbox'\nexport type { CheckboxBaseProps, CheckedState } from './checkbox'\nimport { DayPickerBase } from './dayPicker'\nexport type { DayPickerProps } from './dayPicker'\nimport { SwitchBase } from './switch'\nexport type { SwitchBaseProps } from './switch'\nimport { AutocompleteBase } from './autocomplete'\nimport { SliderBase } from './slider'\nexport type { AutocompleteBaseProps, AutocompleteItemOption } from './autocomplete'\nimport { RadioGroupBase } from './radio'\nexport type { RadioGroupBaseProps, RadioOption } from './radio'\nimport { TextareaBase } from './textarea'\nimport { UploaderBase } from './uploader'\nexport type { TextareaBaseProps } from './textarea'\nexport { isSingleOption } from './select'\nimport { InputOtpBase } from './inputOtp'\nexport type { InputOtpBaseProps } from './inputOtp'\nimport { Combobox } from './combobox'\nexport type { ComboboxProps, ComboboxItemOption } from './combobox'\n\n/**\n * @example\n * ```ts\n * It's ok\n * import { InputBase } from '@scbt-ecom/ui'\n *\n * Not ok (tree shaking doesn't work)\n * import { Uncontrolled } from '@scbt-ecom/ui'\n * ```\n * @deprecated use Select instead\n */\nexport const Uncontrolled = {\n InputBase,\n SliderBase,\n AutocompleteBase,\n MaskInput,\n SelectBase,\n CheckboxBase,\n DayPickerBase,\n SwitchBase,\n RadioGroupBase,\n TextareaBase,\n InputOtpBase,\n UploaderBase,\n Combobox\n}\n"],"names":["Uncontrolled","InputBase","SliderBase","AutocompleteBase","MaskInput","SelectBase","CheckboxBase","DayPickerBase","SwitchBase","RadioGroupBase","TextareaBase","InputOtpBase","UploaderBase","Combobox"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../lib/shared/ui/formElements/uncontrolled/index.ts"],"sourcesContent":["import { InputBase } from './input'\nexport type { InputBaseProps } from './input'\nimport { MaskInput } from './maskInput'\nexport type { MaskInputProps } from './maskInput'\nimport { SelectBase } from './select'\nexport type { SelectBaseProps, SelectItemOption } from './select'\nimport { CheckboxBase } from './checkbox'\nexport type { CheckboxBaseProps, CheckedState } from './checkbox'\nimport { DayPickerBase } from './dayPicker'\nexport type { DayPickerProps } from './dayPicker'\nimport { SwitchBase } from './switch'\nexport type { SwitchBaseProps } from './switch'\nimport { AutocompleteBase } from './autocomplete'\nimport { SliderBase } from './slider'\nexport type { AutocompleteBaseProps, AutocompleteItemOption } from './autocomplete'\nimport { RadioGroupBase } from './radio'\nexport type { RadioGroupBaseProps, RadioOption } from './radio'\nimport { TextareaBase } from './textarea'\nimport { UploaderBase } from './uploader'\nexport type { TextareaBaseProps } from './textarea'\nexport { isSingleOption } from './select'\nimport { InputOtpBase } from './inputOtp'\nexport type { InputOtpBaseProps } from './inputOtp'\nimport { Combobox } from './combobox'\nexport type { ComboboxProps, ComboboxItemOption } from './combobox'\n\n/**\n * @example\n * ```ts\n * It's ok\n * import { InputBase } from '@scbt-ecom/ui'\n *\n * Not ok (tree shaking doesn't work)\n * import { Uncontrolled } from '@scbt-ecom/ui'\n * ```\n * @deprecated use Select instead\n */\nexport const Uncontrolled = {\n InputBase,\n SliderBase,\n AutocompleteBase,\n MaskInput,\n SelectBase,\n CheckboxBase,\n DayPickerBase,\n SwitchBase,\n RadioGroupBase,\n TextareaBase,\n InputOtpBase,\n UploaderBase,\n Combobox\n}\n"],"names":["Uncontrolled","InputBase","SliderBase","AutocompleteBase","MaskInput","SelectBase","CheckboxBase","DayPickerBase","SwitchBase","RadioGroupBase","TextareaBase","InputOtpBase","UploaderBase","Combobox"],"mappings":"g0BAqCO,MAAMA,EAAe,CAC1B,UAAAC,EACA,WAAAC,EACA,iBAAAC,EACA,UAAAC,EACA,WAAAC,EACA,aAAAC,EACA,cAAAC,EACA,WAAAC,EACA,eAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,SAAAC,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as y,jsx as t}from"react/jsx-runtime";import{forwardRef as w,useId as k}from"react";import{FieldAttachment as
|
|
1
|
+
import{jsxs as y,jsx as t}from"react/jsx-runtime";import{forwardRef as w,useId as k}from"react";import{FieldAttachment as B}from"../../ui/fieldAttachment/FieldAttachment.js";import{cn as o}from"../../../../utils/cn.js";const _=w(({label:e,value:a,invalid:p,disabled:i,classes:r,renderValues:n,attachmentProps:d,externalHandlers:h,onChange:u,...l},g)=>{const x=k(),{onChange:b,...c}=h||{},m=f=>{u&&u(f),b&&b(f)};return y("div",{className:o("relative flex w-full gap-x-4 rounded-sm bg-color-blue-grey-100","[&_label]:focus-within:top-[9px] [&_label]:focus-within:translate-y-0","[&_label]:focus-within:desk-body-regular-s","hover:bg-color-blue-grey-200","border-[1px] border-transparent focus-within:border-blue-grey-800",{"border-secondary-default":p},r==null?void 0:r.container),"data-test-id":"input-root",children:[n?t("div",{onClick:l.onClick,onBlur:l.onBlur,className:o("peer desk-body-regular-l min-h-[54px] w-full bg-color-transparent [&_input]:px-4 [&_input]:pb-[6px] [&_input]:pt-[28px]","text-color-dark outline-none placeholder:text-color-transparent","flex flex-row flex-wrap gap-2",r==null?void 0:r.renderWrapper),children:n()}):t("input",{...l,...c,onChange:m,disabled:i,value:a??"",placeholder:e,"aria-placeholder":e,"aria-invalid":p,ref:g,id:x,className:o("peer desk-body-regular-l w-full bg-color-transparent px-4 pb-[9px] pt-[25px]","text-color-dark outline-none placeholder:text-color-transparent",{hidden:!!n},r==null?void 0:r.input)}),t("label",{htmlFor:x,className:o("desk-body-regular-l pointer-events-none absolute left-4 w-[80%] truncate text-start","top-1/2 -translate-y-1/2 text-color-tetriary duration-100",{"desk-body-regular-s top-[9px] translate-y-0":!!a,"text-color-disabled":i},r==null?void 0:r.label),children:e}),d&&t(B,{...d})]})});_.displayName="InputBase";export{_ as InputBase};
|
|
2
2
|
//# sourceMappingURL=Input.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/input/Input.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\nimport { FieldAttachment } from '../../ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\nexport type InputBaseClasses = {\n container?: string\n input?: string\n label?: string\n renderWrapper?: string\n}\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type InputBaseProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'placeholder' | 'size'> & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: InputBaseClasses\n /**\n * Отображаемый placeholder\n */\n label: string\n /**\n * Отображение не валидного поля\n */\n invalid?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Рендер дополнительных значений вместо базового ввода\n */\n renderValues?: () => React.JSX.Element | null\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const InputBase = forwardRef<HTMLInputElement, InputBaseProps>(\n ({ label, value, invalid, disabled, classes, renderValues, attachmentProps, externalHandlers, onChange, ...props }, ref) => {\n const id = useId()\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) onChange(event)\n if (externalOnChange) externalOnChange(event)\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full gap-x-4 rounded-sm bg-color-blue-grey-100',\n '[&_label]:focus-within:top-[9px] [&_label]:focus-within:translate-y-0',\n '[&_label]:focus-within:desk-body-regular-s',\n '[&_label]:focus-within:text-color-tetriary',\n 'hover:bg-color-blue-grey-200',\n 'border-[1px] border-transparent focus-within:border-blue-grey-800',\n {\n 'border-secondary-default': invalid\n },\n classes?.container\n )}\n data-test-id='input-root'\n >\n {renderValues ? (\n <div\n onClick={props.onClick}\n onBlur={props.onBlur}\n className={cn(\n 'peer desk-body-regular-l min-h-[54px] w-full bg-color-transparent [&_input]:px-4 [&_input]:pb-[6px] [&_input]:pt-[28px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n 'flex flex-row flex-wrap gap-2',\n classes?.renderWrapper\n )}\n >\n {renderValues()}\n </div>\n ) : (\n <input\n {...props}\n {...restHandlers}\n onChange={onValueChange}\n disabled={disabled}\n value={value ?? ''}\n placeholder={label}\n aria-placeholder={label}\n aria-invalid={invalid}\n ref={ref}\n id={id}\n className={cn(\n 'peer desk-body-regular-l w-full bg-color-transparent px-4 pb-[9px] pt-[25px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n {\n hidden: Boolean(renderValues)\n },\n classes?.input\n )}\n />\n )}\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-l pointer-events-none absolute left-4 w-[80%] truncate text-start',\n 'top-1/2 -translate-y-1/2 text-color-
|
|
1
|
+
{"version":3,"file":"Input.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/input/Input.tsx"],"sourcesContent":["import { forwardRef, useId } from 'react'\nimport { FieldAttachment } from '../../ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { cn } from '$/shared/utils'\n\nexport type InputBaseClasses = {\n container?: string\n input?: string\n label?: string\n renderWrapper?: string\n}\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\ntype ExternalHandlers = {\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void\n onClick?: (event: React.MouseEvent<HTMLInputElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void\n}\n\nexport type InputBaseProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'placeholder' | 'size'> & {\n /**\n * Дополнительные стили внутренних компонентов\n */\n classes?: InputBaseClasses\n /**\n * Отображаемый placeholder\n */\n label: string\n /**\n * Отображение не валидного поля\n */\n invalid?: boolean\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Рендер дополнительных значений вместо базового ввода\n */\n renderValues?: () => React.JSX.Element | null\n /**\n * Дополнительные хендлеры\n */\n externalHandlers?: ExternalHandlers\n}\n\nexport const InputBase = forwardRef<HTMLInputElement, InputBaseProps>(\n ({ label, value, invalid, disabled, classes, renderValues, attachmentProps, externalHandlers, onChange, ...props }, ref) => {\n const id = useId()\n\n const { onChange: externalOnChange, ...restHandlers } = externalHandlers || {}\n\n const onValueChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChange) onChange(event)\n if (externalOnChange) externalOnChange(event)\n }\n\n return (\n <div\n className={cn(\n 'relative flex w-full gap-x-4 rounded-sm bg-color-blue-grey-100',\n '[&_label]:focus-within:top-[9px] [&_label]:focus-within:translate-y-0',\n '[&_label]:focus-within:desk-body-regular-s',\n // '[&_label]:focus-within:text-color-tetriary',\n 'hover:bg-color-blue-grey-200',\n 'border-[1px] border-transparent focus-within:border-blue-grey-800',\n {\n 'border-secondary-default': invalid\n },\n classes?.container\n )}\n data-test-id='input-root'\n >\n {renderValues ? (\n <div\n onClick={props.onClick}\n onBlur={props.onBlur}\n className={cn(\n 'peer desk-body-regular-l min-h-[54px] w-full bg-color-transparent [&_input]:px-4 [&_input]:pb-[6px] [&_input]:pt-[28px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n 'flex flex-row flex-wrap gap-2',\n classes?.renderWrapper\n )}\n >\n {renderValues()}\n </div>\n ) : (\n <input\n {...props}\n {...restHandlers}\n onChange={onValueChange}\n disabled={disabled}\n value={value ?? ''}\n placeholder={label}\n aria-placeholder={label}\n aria-invalid={invalid}\n ref={ref}\n id={id}\n className={cn(\n 'peer desk-body-regular-l w-full bg-color-transparent px-4 pb-[9px] pt-[25px]',\n 'text-color-dark outline-none placeholder:text-color-transparent',\n {\n hidden: Boolean(renderValues)\n },\n classes?.input\n )}\n />\n )}\n <label\n htmlFor={id}\n className={cn(\n 'desk-body-regular-l pointer-events-none absolute left-4 w-[80%] truncate text-start',\n 'top-1/2 -translate-y-1/2 text-color-tetriary duration-100',\n {\n 'desk-body-regular-s top-[9px] translate-y-0': Boolean(value),\n 'text-color-disabled': disabled\n },\n classes?.label\n )}\n >\n {label}\n </label>\n {attachmentProps && <FieldAttachment {...attachmentProps} />}\n </div>\n )\n }\n)\nInputBase.displayName = 'InputBase'\n"],"names":["InputBase","forwardRef","label","value","invalid","disabled","classes","renderValues","attachmentProps","externalHandlers","onChange","props","ref","id","useId","externalOnChange","restHandlers","onValueChange","event","jsxs","cn","jsx","FieldAttachment"],"mappings":"2NAgDO,MAAMA,EAAYC,EACvB,CAAC,CAAE,MAAAC,EAAO,MAAAC,EAAO,QAAAC,EAAS,SAAAC,EAAU,QAAAC,EAAS,aAAAC,EAAc,gBAAAC,EAAiB,iBAAAC,EAAkB,SAAAC,EAAU,GAAGC,CAAA,EAASC,IAAQ,CAC1H,MAAMC,EAAKC,EAAA,EAEL,CAAE,SAAUC,EAAkB,GAAGC,CAAA,EAAiBP,GAAoB,CAAA,EAEtEQ,EAAiBC,GAA+C,CAChER,KAAmBQ,CAAK,EACxBH,KAAmCG,CAAK,CAC9C,EAEA,OACEC,EAAC,MAAA,CACC,UAAWC,EACT,iEACA,wEACA,6CAEA,+BACA,oEACA,CACE,2BAA4BhB,CAAA,EAE9BE,GAAA,YAAAA,EAAS,SAAA,EAEX,eAAa,aAEZ,SAAA,CAAAC,EACCc,EAAC,MAAA,CACC,QAASV,EAAM,QACf,OAAQA,EAAM,OACd,UAAWS,EACT,0HACA,kEACA,gCACAd,GAAA,YAAAA,EAAS,aAAA,EAGV,SAAAC,EAAA,CAAa,CAAA,EAGhBc,EAAC,QAAA,CACE,GAAGV,EACH,GAAGK,EACJ,SAAUC,EACV,SAAAZ,EACA,MAAOF,GAAS,GAChB,YAAaD,EACb,mBAAkBA,EAClB,eAAcE,EACd,IAAAQ,EACA,GAAAC,EACA,UAAWO,EACT,+EACA,kEACA,CACE,OAAQ,EAAQb,CAAY,EAE9BD,GAAA,YAAAA,EAAS,KAAA,CACX,CAAA,EAGJe,EAAC,QAAA,CACC,QAASR,EACT,UAAWO,EACT,sFACA,4DACA,CACE,8CAA+C,EAAQjB,EACvD,sBAAuBE,CAAA,EAEzBC,GAAA,YAAAA,EAAS,KAAA,EAGV,SAAAJ,CAAA,CAAA,EAEFM,GAAmBa,EAACC,EAAA,CAAiB,GAAGd,CAAA,CAAiB,CAAA,CAAA,CAAA,CAGhE,CACF,EACAR,EAAU,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as s}from"react/jsx-runtime";import{forwardRef as f}from"react";import{useInputMask as m}from"use-mask-input";import{InputBase as n}from"../input/Input.js";import{defaultDefinitions as p}from"./model/mask/utils.js";import{mergeRefs as a}from"../../../../utils/mergeRefs.js";const u=f(({mask:o,externalMaskDefinitions:r,...t},e)=>{const i=m({mask:o,options:{jitMasking:!1,definitions:{...p,...r}}});return s(n,{ref:a(i,e),...t})});u.displayName="MaskInput";export{u as MaskInput};
|
|
2
2
|
//# sourceMappingURL=MaskInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaskInput.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { useInputMask } from 'use-mask-input'\nimport { InputBase, type InputBaseProps } from '../input'\nimport { defaultDefinitions } from './model/mask'\nimport { mergeRefs } from '$/shared/utils'\n\ntype Validator = (char: string) => boolean\ntype Casing = 'upper' | 'lower' | 'title'\nexport type Definition = {\n validator: string | Validator\n casing?: Casing\n cardinality?: number\n placeholder?: string\n definitionSymbol?: string\n}\n\nexport type MaskInputProps = InputBaseProps & {\n /**\n * маска, по которой будет определяться валидация символов\n */\n mask:\n | 'datetime'\n | 'email'\n | 'numeric'\n | 'currency'\n | 'decimal'\n | 'integer'\n | 'percentage'\n | 'url'\n | 'ip'\n | 'mac'\n | 'ssn'\n | 'brl-currency'\n | 'cpf'\n | 'cnpj'\n | (string & {})\n | (string[] & {})\n | null\n /**\n * дополнительные валидаторы спец символов в маске\n */\n externalMaskDefinitions?: Record<string, Definition>\n}\n\n/**\n * Компонент маски очень умный, умеет обрабатывать специальные символы\n * в том порядке, который определён маской\n * @typeParam `#` позволяет вводить только числа (regexp: `/\\d/g`)\n * @typeParam `A` позволяет вводить любые буквы русского и английского алфавита (regexp: `/[A-Za-zА-Яа-я]/g`)\n * @typeParam `C` позволяет вводить любые буквы, которые определены для использования в гос номерах автомобилей (regexp: `/([АВЕКМНОРСТУХавекмнорстух])/`)\n */\nexport const MaskInput = forwardRef<HTMLInputElement, MaskInputProps>(({ mask, externalMaskDefinitions, ...props }, ref) => {\n const maskedRef = useInputMask({\n mask,\n options: {\n jitMasking: false,\n definitions: {\n ...defaultDefinitions,\n ...externalMaskDefinitions\n }\n }\n })\n\n return <InputBase ref={mergeRefs(maskedRef, ref)} {...props} />\n})\nMaskInput.displayName = 'MaskInput'\n"],"names":["MaskInput","forwardRef","mask","externalMaskDefinitions","props","ref","maskedRef","useInputMask","defaultDefinitions","jsx","InputBase","mergeRefs"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MaskInput.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { useInputMask } from 'use-mask-input'\nimport { InputBase, type InputBaseProps } from '../input'\nimport { defaultDefinitions } from './model/mask'\nimport { mergeRefs } from '$/shared/utils'\n\ntype Validator = (char: string) => boolean\ntype Casing = 'upper' | 'lower' | 'title'\nexport type Definition = {\n validator: string | Validator\n casing?: Casing\n cardinality?: number\n placeholder?: string\n definitionSymbol?: string\n}\n\nexport type MaskInputProps = InputBaseProps & {\n /**\n * маска, по которой будет определяться валидация символов\n */\n mask:\n | 'datetime'\n | 'email'\n | 'numeric'\n | 'currency'\n | 'decimal'\n | 'integer'\n | 'percentage'\n | 'url'\n | 'ip'\n | 'mac'\n | 'ssn'\n | 'brl-currency'\n | 'cpf'\n | 'cnpj'\n | (string & {})\n | (string[] & {})\n | null\n /**\n * дополнительные валидаторы спец символов в маске\n */\n externalMaskDefinitions?: Record<string, Definition>\n}\n\n/**\n * Компонент маски очень умный, умеет обрабатывать специальные символы\n * в том порядке, который определён маской\n * @typeParam `#` позволяет вводить только числа (regexp: `/\\d/g`)\n * @typeParam `A` позволяет вводить любые буквы русского и английского алфавита (regexp: `/[A-Za-zА-Яа-я]/g`)\n * @typeParam `C` позволяет вводить любые буквы, которые определены для использования в гос номерах автомобилей (regexp: `/([АВЕКМНОРСТУХавекмнорстух])/`)\n */\nexport const MaskInput = forwardRef<HTMLInputElement, MaskInputProps>(({ mask, externalMaskDefinitions, ...props }, ref) => {\n const maskedRef = useInputMask({\n mask,\n options: {\n jitMasking: false,\n definitions: {\n ...defaultDefinitions,\n ...externalMaskDefinitions\n }\n }\n })\n\n return <InputBase ref={mergeRefs(maskedRef, ref)} {...props} />\n})\nMaskInput.displayName = 'MaskInput'\n"],"names":["MaskInput","forwardRef","mask","externalMaskDefinitions","props","ref","maskedRef","useInputMask","defaultDefinitions","jsx","InputBase","mergeRefs"],"mappings":"6RAmDO,MAAMA,EAAYC,EAA6C,CAAC,CAAE,KAAAC,EAAM,wBAAAC,EAAyB,GAAGC,CAAA,EAASC,IAAQ,CAC1H,MAAMC,EAAYC,EAAa,CAC7B,KAAAL,EACA,QAAS,CACP,WAAY,GACZ,YAAa,CACX,GAAGM,EACH,GAAGL,CAAA,CACL,CACF,CACD,EAED,OAAOM,EAACC,GAAU,IAAKC,EAAUL,EAAWD,CAAG,EAAI,GAAGD,EAAO,CAC/D,CAAC,EACDJ,EAAU,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as i,jsxs as
|
|
1
|
+
import{jsx as i,jsxs as I,Fragment as q}from"react/jsx-runtime";import{forwardRef as G,useRef as J}from"react";import{useFloating as Q}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{useSelectController as W}from"./hooks/useSelectController.js";import{SelectItem as u}from"./ui/SelectItem.js";import{cn as f}from"../../../../utils/cn.js";import{mergeRefs as X}from"../../../../utils/mergeRefs.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{Icon as Y}from"../../../icon/Icon.js";import"../../../table/ui/primitives/Primitives.js";import"../../../carousel/ui/CarouselContent.js";import"../../../slot/Slot.js";import"../autocomplete/Autocomplete.js";import"../checkbox/Checkbox.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{InputBase as Z}from"../input/Input.js";import"../dayPicker/DayPicker.js";import"../inputOtp/InputOtpBase.js";import"../maskInput/MaskInput.js";import"../radio/RadioGroup.js";import"../radio/ui/RadioItem.js";import"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../uploader/UploaderBase.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import{Combobox as M,ComboboxButton as N,ComboboxInput as x,ComboboxOptions as H}from"../../../../../../node_modules/@headlessui/react/dist/components/combobox/combobox.js";import{autoUpdate as oo}from"../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js";import{flip as to,offset as io}from"../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js";const mo=4,$o=G(({label:_,invalid:l,isMulti:m=!1,isSearchable:p,options:A,classes:D,displayValue:r,value:g,onChange:E,attachmentProps:j,virtual:d=!1,filterDisabled:k=!1,inputValue:e,onInputChange:a,externalHandlers:o,disabled:z,emptyList:h,reset:w,...S},T)=>{const{root:V,list:K,...c}=D||{},{refs:y,floatingStyles:L}=Q({placement:"bottom-start",strategy:"absolute",middleware:[to({boundary:"clippingAncestors",crossAxis:!1}),io(mo)],whileElementsMounted:oo}),b=J(null),{options:n,inputValue:C,onValueChange:O,onInputValueChange:v,selectDisplayValue:B}=W({options:A,isSearchable:p,displayValue:r,onChange:E,filterDisabled:k,externalInputValue:e,externalOnInputChange:a,externalHandlers:o});return i(M,{...S,virtual:d?{options:n}:void 0,by:"value",onBlur:o==null?void 0:o.onBlur,onFocus:o==null?void 0:o.onFocus,onClick:o==null?void 0:o.onClick,value:g||(m?[]:""),onChange:O,multiple:m,disabled:z,"aria-invalid":l,children:({disabled:U,open:F,value:R})=>{var P;const $=()=>m&&p?B(R):p?C:B(R);return I("div",{ref:b,className:f("relative w-full",V),children:[i(N,{className:"w-full",children:i(x,{ref:X(T,y.setReference),"data-test-id":"select-input",as:Z,label:_,"aria-haspopup":"listbox",ariaAutocomplete:"inline","aria-expanded":F,disabled:U,readOnly:!p,value:e||$(),autoComplete:"off",onKeyDown:t=>{t.stopPropagation(),t.nativeEvent.stopPropagation()},onChange:t=>{const{value:s}=t.target;p&&(a&&a(s),o!=null&&o.onInputChange&&o.onInputChange(s),v&&v(t))},invalid:l,classes:{input:m||!p?"cursor-pointer":void 0},attachmentProps:{icon:i(N,{as:"span",children:i(Y,{name:"arrows/arrowRight",className:f("size-6 rotate-90 text-color-blue-grey-600 duration-100",{"-rotate-90":F})})}),...j}})}),i(H,{portal:!0,"data-test-id":"select-list",ref:y.setFloating,as:"ul",style:{...L,width:(P=b.current)==null?void 0:P.getBoundingClientRect().width},className:f("customScrollbar-y z-10 mt-1","max-h-[264px] w-full overflow-y-auto bg-color-white","rounded-md p-1 shadow-[0_8px_20px_0px_rgba(41,41,41,0.08)]",K),children:d?({option:t})=>i(u,{option:t,isMulti:m,classes:{item:"w-[calc(100%-16px)]",...c},displayValue:r,motionProps:{initial:{opacity:0},animate:{opacity:1}}},t.value):n.length>0?I(q,{children:[w&&!m&&i(u,{"data-test-id":"select-item-empty",option:{value:null,label:w},isMulti:m,classes:c,displayValue:r,motionProps:{initial:{opacity:0},animate:{opacity:1}}}),n.map((t,s)=>i(u,{"data-test-id":`select-item-${s}`,option:t,isMulti:m,classes:c,displayValue:r,motionProps:{initial:{opacity:0},animate:{opacity:1}}},t.value))]}):h?h(e||C):i("p",{className:"py-4 text-center align-middle",children:"Ничего не найдено"})})]})}})});export{$o as SelectBase};
|
|
2
2
|
//# sourceMappingURL=Select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/select/Select.tsx"],"sourcesContent":["import { forwardRef, useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { Combobox, ComboboxButton, ComboboxInput, ComboboxOptions, type ComboboxProps } from '@headlessui/react'\nimport { useSelectController } from './hooks'\nimport { type SelectItemOption } from './model'\nimport { SelectItem, type SelectItemProps } from './ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon, InputBase } from '$/shared/ui'\nimport type { FieldAttachment } from '$/shared/ui/formElements/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\nexport type SelectClasses = SelectItemProps['classes'] & {\n root?: string\n list?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value?: SelectItemOption | SelectItemOption[]) => void\n onClick?: (event: React.MouseEvent<HTMLElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLElement>) => void\n onInputChange?: (value: string) => void\n}\n\nexport type SelectBaseProps<Multi extends boolean> = Omit<\n ComboboxProps<SelectItemOption, Multi, 'li'>,\n 'multiple' | 'onChange' | 'by' | 'className' | 'virtual'\n> & {\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Поддержка множественного выбора\n */\n isMulti?: Multi\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Свойство управляющее поиском\n */\n isSearchable?: boolean\n /**\n * Список отображаемых значений\n */\n options: SelectItemOption[]\n /**\n * Дополнительные стили каждого внутреннего элемента\n */\n classes?: SelectClasses\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: SelectItemOption) => string\n /**\n * Функция для изменения значения\n */\n onChange?: (value: (Multi extends true ? SelectItemOption[] : SelectItemOption) | undefined) => void\n /**\n * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Включение виртуализации списка\n */\n virtual?: boolean\n /**\n * Свойство для выключения фильтрации по поиску\n */\n filterDisabled?: boolean\n /**\n * Внешние handlers которые можно прокинуть из вне\n */\n externalHandlers?: ExternalHandlers\n /**\n * Кастомизация отображения текста при пустом списке\n */\n emptyList?: (query?: string) => React.ReactNode\n /**\n * Добавляет option который, позволяет очистить значение селекта\n */\n reset?: string\n}\n\nconst LIST_OFFSET = 4\n\nexport const SelectBase = forwardRef<HTMLInputElement, SelectBaseProps<boolean>>(\n (\n {\n label,\n invalid,\n isMulti = false,\n isSearchable,\n options: initialOptions,\n classes,\n displayValue,\n value,\n onChange,\n attachmentProps,\n virtual = false,\n filterDisabled = false,\n inputValue: externalInputValue,\n onInputChange: externalOnInputChange,\n externalHandlers,\n disabled,\n emptyList,\n reset,\n ...props\n },\n ref\n ) => {\n const { root, list, ...innerClasses } = classes || {}\n\n const { refs, floatingStyles } = useFloating({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(LIST_OFFSET)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const triggerRef = useRef<HTMLDivElement>(null)\n\n const { options, inputValue, onValueChange, onInputValueChange, selectDisplayValue } = useSelectController({\n options: initialOptions,\n isSearchable,\n isMulti,\n displayValue,\n onChange,\n filterDisabled,\n externalInputValue,\n externalOnInputChange,\n externalHandlers\n })\n\n return (\n <Combobox\n {...props}\n virtual={\n virtual\n ? {\n options\n }\n : undefined\n }\n // @ts-expect-error headless ui issue\n by='value'\n onBlur={externalHandlers?.onBlur}\n onFocus={externalHandlers?.onFocus}\n onClick={externalHandlers?.onClick}\n value={(value ? value : isMulti ? [] : '') as typeof value}\n onChange={onValueChange}\n multiple={isMulti}\n // immediate\n disabled={disabled}\n aria-invalid={invalid}\n >\n {({ disabled, open, value }) => {\n const getDisplayValue = () => {\n if (isMulti && isSearchable) {\n return selectDisplayValue(value)\n } else if (isSearchable) {\n return inputValue\n } else {\n return selectDisplayValue(value)\n }\n }\n\n return (\n <div ref={triggerRef} className={cn('relative w-full', root)}>\n <ComboboxButton className='w-full'>\n <ComboboxInput\n // @ts-expect-error asdf\n ref={mergeRefs(ref, refs.setReference)}\n data-test-id='select-input'\n as={InputBase}\n label={label}\n disabled={disabled}\n readOnly={!isSearchable}\n value={externalInputValue || getDisplayValue()}\n autoComplete='off'\n onKeyDown={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopPropagation()\n }}\n onChange={(event) => {\n const { value } = event.target\n\n if (isSearchable) {\n if (externalOnInputChange) externalOnInputChange(value)\n if (externalHandlers?.onInputChange) externalHandlers.onInputChange(value)\n if (onInputValueChange) onInputValueChange(event)\n }\n }}\n invalid={invalid}\n classes={{\n input: isMulti || !isSearchable ? 'cursor-pointer' : undefined\n }}\n // TODO: think about it\n // renderValues={\n // isMulti\n // ? (ref) => (\n // <ChipList\n // ref={ref}\n // values={value}\n // onDeleteItem={(option) => onDeleteItem(value, option)}\n // inputValue={inputValue}\n // onInputValueChange={onInputValueChange}\n // />\n // )\n // : undefined\n // }\n attachmentProps={{\n icon: (\n <ComboboxButton as='span'>\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n </ComboboxButton>\n ),\n ...attachmentProps\n }}\n />\n </ComboboxButton>\n <ComboboxOptions\n portal\n data-test-id='select-list'\n ref={refs.setFloating}\n as='ul'\n style={{\n ...floatingStyles,\n width: triggerRef.current?.getBoundingClientRect().width\n }}\n className={cn(\n 'customScrollbar-y z-10 mt-1',\n 'max-h-[264px] w-full overflow-y-auto bg-color-white',\n 'rounded-md p-1 shadow-[0_8px_20px_0px_rgba(41,41,41,0.08)]',\n list\n )}\n >\n {virtual ? (\n ({ option }) => (\n <SelectItem\n key={option.value}\n option={option}\n isMulti={isMulti}\n classes={{\n item: 'w-[calc(100%-16px)]',\n ...innerClasses\n }}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n )\n ) : options.length > 0 ? (\n <>\n {reset && !isMulti && (\n <SelectItem\n data-test-id='select-item-empty'\n option={{ value: null, label: reset }}\n isMulti={isMulti}\n classes={innerClasses}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n )}\n {options.map((option, index) => (\n <SelectItem\n data-test-id={`select-item-${index}`}\n key={option.value}\n option={option}\n isMulti={isMulti}\n classes={innerClasses}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n ))}\n </>\n ) : emptyList ? (\n emptyList(externalInputValue || inputValue)\n ) : (\n <p className='py-4 text-center align-middle'>Ничего не найдено</p>\n )}\n </ComboboxOptions>\n </div>\n )\n }}\n </Combobox>\n )\n }\n)\n"],"names":["LIST_OFFSET","SelectBase","forwardRef","label","invalid","isMulti","isSearchable","initialOptions","classes","displayValue","value","onChange","attachmentProps","virtual","filterDisabled","externalInputValue","externalOnInputChange","externalHandlers","disabled","emptyList","reset","props","ref","root","list","innerClasses","refs","floatingStyles","useFloating","flip","offset","autoUpdate","triggerRef","useRef","options","inputValue","onValueChange","onInputValueChange","selectDisplayValue","useSelectController","jsx","Combobox","open","getDisplayValue","jsxs","cn","ComboboxButton","ComboboxInput","mergeRefs","InputBase","event","Icon","ComboboxOptions","_a","option","SelectItem","Fragment","index"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Select.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/select/Select.tsx"],"sourcesContent":["import { forwardRef, useRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { Combobox, ComboboxButton, ComboboxInput, ComboboxOptions, type ComboboxProps } from '@headlessui/react'\nimport { useSelectController } from './hooks'\nimport { type SelectItemOption } from './model'\nimport { SelectItem, type SelectItemProps } from './ui'\nimport { type DeepPartial } from '$/shared/types'\nimport { Icon, InputBase } from '$/shared/ui'\nimport type { FieldAttachment } from '$/shared/ui/formElements/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\ntype FieldAttachmentProps = React.ComponentPropsWithoutRef<typeof FieldAttachment>\n\nexport type SelectClasses = SelectItemProps['classes'] & {\n root?: string\n list?: string\n}\n\nexport type ExternalHandlers = {\n onChange?: (value?: SelectItemOption | SelectItemOption[]) => void\n onClick?: (event: React.MouseEvent<HTMLElement>) => void\n onBlur?: (event: React.FocusEvent<HTMLElement>) => void\n onFocus?: (event: React.FocusEvent<HTMLElement>) => void\n onInputChange?: (value: string) => void\n}\n\nexport type SelectBaseProps<Multi extends boolean> = Omit<\n ComboboxProps<SelectItemOption, Multi, 'li'>,\n 'multiple' | 'onChange' | 'by' | 'className' | 'virtual'\n> & {\n /**\n * Отображаемый лейбл\n */\n label: string\n /**\n * Поддержка множественного выбора\n */\n isMulti?: Multi\n /**\n * Пометить поле как не валидное\n */\n invalid?: boolean\n /**\n * Свойство управляющее поиском\n */\n isSearchable?: boolean\n /**\n * Список отображаемых значений\n */\n options: SelectItemOption[]\n /**\n * Дополнительные стили каждого внутреннего элемента\n */\n classes?: SelectClasses\n /**\n * Функция для управления отображаемым значением\n */\n displayValue?: (option: SelectItemOption) => string\n /**\n * Функция для изменения значения\n */\n onChange?: (value: (Multi extends true ? SelectItemOption[] : SelectItemOption) | undefined) => void\n /**\n * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Свойства дополнительной иконки\n */\n attachmentProps?: DeepPartial<FieldAttachmentProps>\n /**\n * Включение виртуализации списка\n */\n virtual?: boolean\n /**\n * Свойство для выключения фильтрации по поиску\n */\n filterDisabled?: boolean\n /**\n * Внешние handlers которые можно прокинуть из вне\n */\n externalHandlers?: ExternalHandlers\n /**\n * Кастомизация отображения текста при пустом списке\n */\n emptyList?: (query?: string) => React.ReactNode\n /**\n * Добавляет option который, позволяет очистить значение селекта\n */\n reset?: string\n}\n\nconst LIST_OFFSET = 4\n\nexport const SelectBase = forwardRef<HTMLInputElement, SelectBaseProps<boolean>>(\n (\n {\n label,\n invalid,\n isMulti = false,\n isSearchable,\n options: initialOptions,\n classes,\n displayValue,\n value,\n onChange,\n attachmentProps,\n virtual = false,\n filterDisabled = false,\n inputValue: externalInputValue,\n onInputChange: externalOnInputChange,\n externalHandlers,\n disabled,\n emptyList,\n reset,\n ...props\n },\n ref\n ) => {\n const { root, list, ...innerClasses } = classes || {}\n\n const { refs, floatingStyles } = useFloating({\n placement: 'bottom-start',\n strategy: 'absolute',\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(LIST_OFFSET)\n ],\n whileElementsMounted: autoUpdate\n })\n\n const triggerRef = useRef<HTMLDivElement>(null)\n\n const { options, inputValue, onValueChange, onInputValueChange, selectDisplayValue } = useSelectController({\n options: initialOptions,\n isSearchable,\n isMulti,\n displayValue,\n onChange,\n filterDisabled,\n externalInputValue,\n externalOnInputChange,\n externalHandlers\n })\n\n return (\n <Combobox\n {...props}\n virtual={\n virtual\n ? {\n options\n }\n : undefined\n }\n // @ts-expect-error headless ui issue\n by='value'\n onBlur={externalHandlers?.onBlur}\n onFocus={externalHandlers?.onFocus}\n onClick={externalHandlers?.onClick}\n value={(value ? value : isMulti ? [] : '') as typeof value}\n onChange={onValueChange}\n multiple={isMulti}\n // immediate\n disabled={disabled}\n aria-invalid={invalid}\n >\n {({ disabled, open, value }) => {\n const getDisplayValue = () => {\n if (isMulti && isSearchable) {\n return selectDisplayValue(value)\n } else if (isSearchable) {\n return inputValue\n } else {\n return selectDisplayValue(value)\n }\n }\n\n return (\n <div ref={triggerRef} className={cn('relative w-full', root)}>\n <ComboboxButton className='w-full'>\n <ComboboxInput\n // @ts-expect-error asdf\n ref={mergeRefs(ref, refs.setReference)}\n data-test-id='select-input'\n as={InputBase}\n label={label}\n aria-haspopup='listbox'\n ariaAutocomplete='inline'\n aria-expanded={open}\n disabled={disabled}\n readOnly={!isSearchable}\n value={externalInputValue || getDisplayValue()}\n autoComplete='off'\n onKeyDown={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopPropagation()\n }}\n onChange={(event) => {\n const { value } = event.target\n\n if (isSearchable) {\n if (externalOnInputChange) externalOnInputChange(value)\n if (externalHandlers?.onInputChange) externalHandlers.onInputChange(value)\n if (onInputValueChange) onInputValueChange(event)\n }\n }}\n invalid={invalid}\n classes={{\n input: isMulti || !isSearchable ? 'cursor-pointer' : undefined\n }}\n // TODO: think about it\n // renderValues={\n // isMulti\n // ? (ref) => (\n // <ChipList\n // ref={ref}\n // values={value}\n // onDeleteItem={(option) => onDeleteItem(value, option)}\n // inputValue={inputValue}\n // onInputValueChange={onInputValueChange}\n // />\n // )\n // : undefined\n // }\n attachmentProps={{\n icon: (\n <ComboboxButton as='span'>\n <Icon\n name='arrows/arrowRight'\n className={cn('size-6 rotate-90 text-color-blue-grey-600 duration-100', {\n '-rotate-90': open\n })}\n />\n </ComboboxButton>\n ),\n ...attachmentProps\n }}\n />\n </ComboboxButton>\n <ComboboxOptions\n portal\n data-test-id='select-list'\n ref={refs.setFloating}\n as='ul'\n style={{\n ...floatingStyles,\n width: triggerRef.current?.getBoundingClientRect().width\n }}\n className={cn(\n 'customScrollbar-y z-10 mt-1',\n 'max-h-[264px] w-full overflow-y-auto bg-color-white',\n 'rounded-md p-1 shadow-[0_8px_20px_0px_rgba(41,41,41,0.08)]',\n list\n )}\n >\n {virtual ? (\n ({ option }) => (\n <SelectItem\n key={option.value}\n option={option}\n isMulti={isMulti}\n classes={{\n item: 'w-[calc(100%-16px)]',\n ...innerClasses\n }}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n )\n ) : options.length > 0 ? (\n <>\n {reset && !isMulti && (\n <SelectItem\n data-test-id='select-item-empty'\n option={{ value: null, label: reset }}\n isMulti={isMulti}\n classes={innerClasses}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n )}\n {options.map((option, index) => (\n <SelectItem\n data-test-id={`select-item-${index}`}\n key={option.value}\n option={option}\n isMulti={isMulti}\n classes={innerClasses}\n displayValue={displayValue}\n motionProps={{\n initial: { opacity: 0 },\n animate: { opacity: 1 }\n }}\n />\n ))}\n </>\n ) : emptyList ? (\n emptyList(externalInputValue || inputValue)\n ) : (\n <p className='py-4 text-center align-middle'>Ничего не найдено</p>\n )}\n </ComboboxOptions>\n </div>\n )\n }}\n </Combobox>\n )\n }\n)\n"],"names":["LIST_OFFSET","SelectBase","forwardRef","label","invalid","isMulti","isSearchable","initialOptions","classes","displayValue","value","onChange","attachmentProps","virtual","filterDisabled","externalInputValue","externalOnInputChange","externalHandlers","disabled","emptyList","reset","props","ref","root","list","innerClasses","refs","floatingStyles","useFloating","flip","offset","autoUpdate","triggerRef","useRef","options","inputValue","onValueChange","onInputValueChange","selectDisplayValue","useSelectController","jsx","Combobox","open","getDisplayValue","jsxs","cn","ComboboxButton","ComboboxInput","mergeRefs","InputBase","event","Icon","ComboboxOptions","_a","option","SelectItem","Fragment","index"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as e,jsx as n}from"react/jsx-runtime";import{cn as c}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 e,jsx as n}from"react/jsx-runtime";import{cn as c}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{Icon as a}from"../../../../icon/Icon.js";import"../../../../table/ui/primitives/Primitives.js";import"../../../../carousel/ui/CarouselContent.js";import"../../../../slot/Slot.js";import"../../autocomplete/Autocomplete.js";import"../../checkbox/Checkbox.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";import"../../input/Input.js";import"../../dayPicker/DayPicker.js";import"../../inputOtp/InputOtpBase.js";import"../../maskInput/MaskInput.js";import"../../radio/RadioGroup.js";import"../../radio/ui/RadioItem.js";import"../Select.js";import"../../slider/SliderBase.js";import"../../switch/Switch.js";import"../../textarea/Textarea.js";import"../../uploader/UploaderBase.js";import"../../../controlled/editor/ui/Editor.js";import"../../../controlled/input/MaskInputControl.js";const O=({data:o,displayValue:t,classes:r,onDeleteItem:p,...m})=>e("div",{...m,className:c("mob-body-regular-l flex w-fit items-center gap-x-1 whitespace-nowrap","rounded-sm bg-color-primary-tr-hover px-1 text-color-primary-default",r==null?void 0:r.chip),children:[t?t(o):o.label,n(a,{name:"general/close",className:"size-3.5 cursor-pointer",onClick:i=>{i.stopPropagation(),i.nativeEvent.stopPropagation(),p(o)}})]});export{O as ControlChip};
|
|
2
2
|
//# sourceMappingURL=Chip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chip.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/select/ui/Chip.tsx"],"sourcesContent":["import type { SelectItemOption } from '../model'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype ControlChipClasses = {\n chip?: string\n}\n\nexport interface ControlChipProps extends React.HTMLAttributes<HTMLDivElement> {\n displayValue?: (option: SelectItemOption) => string\n data: SelectItemOption\n classes?: ControlChipClasses\n onDeleteItem: (option: SelectItemOption) => void\n}\n\nexport const ControlChip = ({ data, displayValue, classes, onDeleteItem, ...props }: ControlChipProps) => (\n <div\n {...props}\n className={cn(\n 'mob-body-regular-l flex w-fit items-center gap-x-1 whitespace-nowrap',\n 'rounded-sm bg-color-primary-tr-hover px-1 text-color-primary-default',\n classes?.chip\n )}\n >\n {displayValue ? displayValue(data) : data.label}\n <Icon\n name='general/close'\n className='size-3.5 cursor-pointer'\n onClick={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopPropagation()\n\n onDeleteItem(data)\n }}\n />\n </div>\n)\n"],"names":["ControlChip","data","displayValue","classes","onDeleteItem","props","jsxs","cn","jsx","Icon","event"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Chip.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/select/ui/Chip.tsx"],"sourcesContent":["import type { SelectItemOption } from '../model'\nimport { Icon } from '$/shared/ui'\nimport { cn } from '$/shared/utils'\n\ntype ControlChipClasses = {\n chip?: string\n}\n\nexport interface ControlChipProps extends React.HTMLAttributes<HTMLDivElement> {\n displayValue?: (option: SelectItemOption) => string\n data: SelectItemOption\n classes?: ControlChipClasses\n onDeleteItem: (option: SelectItemOption) => void\n}\n\nexport const ControlChip = ({ data, displayValue, classes, onDeleteItem, ...props }: ControlChipProps) => (\n <div\n {...props}\n className={cn(\n 'mob-body-regular-l flex w-fit items-center gap-x-1 whitespace-nowrap',\n 'rounded-sm bg-color-primary-tr-hover px-1 text-color-primary-default',\n classes?.chip\n )}\n >\n {displayValue ? displayValue(data) : data.label}\n <Icon\n name='general/close'\n className='size-3.5 cursor-pointer'\n onClick={(event) => {\n event.stopPropagation()\n event.nativeEvent.stopPropagation()\n\n onDeleteItem(data)\n }}\n />\n </div>\n)\n"],"names":["ControlChip","data","displayValue","classes","onDeleteItem","props","jsxs","cn","jsx","Icon","event"],"mappings":"mvCAeO,MAAMA,EAAc,CAAC,CAAE,KAAAC,EAAM,aAAAC,EAAc,QAAAC,EAAS,aAAAC,EAAc,GAAGC,CAAA,IAC1EC,EAAC,MAAA,CACE,GAAGD,EACJ,UAAWE,EACT,uEACA,uEACAJ,GAAA,YAAAA,EAAS,IAAA,EAGV,SAAA,CAAAD,EAAeA,EAAaD,CAAI,EAAIA,EAAK,MAC1CO,EAACC,EAAA,CACC,KAAK,gBACL,UAAU,0BACV,QAAUC,GAAU,CAClBA,EAAM,gBAAA,EACNA,EAAM,YAAY,gBAAA,EAElBN,EAAaH,CAAI,CACnB,CAAA,CAAA,CACF,CAAA,CACF"}
|