@scbt-ecom/ui 0.111.3 → 0.113.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/exports/ui.js +1 -1
- package/dist/lib/exports/widget.js +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/dialog/Dialog.js +1 -1
- package/dist/lib/shared/ui/dialog/Dialog.js.map +1 -1
- package/dist/lib/shared/ui/divider/Divider.js +2 -0
- package/dist/lib/shared/ui/divider/Divider.js.map +1 -0
- package/dist/lib/shared/ui/divider/index.js +2 -0
- 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/EditorControl.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/EditorControl.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/editor/ui/commands/SetFontSize.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/SetFontSize.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/setCustomLink.js +1 -1
- package/dist/lib/shared/ui/formElements/controlled/editor/ui/commands/setCustomLink.js.map +1 -1
- package/dist/lib/shared/ui/formElements/controlled/index.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/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/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/index.js +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/inputCurrency/InputCurrency.js +2 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.js.map +1 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/index.js +2 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/index.js.map +1 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/useCurrencyControl.js +2 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/useCurrencyControl.js.map +1 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/useCurrencyFormat.js +2 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/useCurrencyFormat.js.map +1 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/index.js +2 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/index.js.map +1 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/ui/CurrencyIcon.js +2 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/ui/CurrencyIcon.js.map +1 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/ui/index.js +2 -0
- package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/ui/index.js.map +1 -0
- 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/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/index.js +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/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/base.validators.js +1 -1
- package/dist/lib/shared/validation/base/base.validators.js.map +1 -1
- package/dist/lib/shared/validation/base/currency.validators.js +2 -0
- package/dist/lib/shared/validation/base/currency.validators.js.map +1 -0
- 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/regex.validators.js +1 -1
- package/dist/lib/shared/validation/base/regex.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/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/calculator/Calculator.js +1 -1
- package/dist/lib/widgets/calculator/Calculator.js.map +1 -1
- package/dist/lib/widgets/calculator/CalculatorView.js +1 -1
- package/dist/lib/widgets/calculator/CalculatorView.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/dynamicForm/DynamicForm.js +1 -1
- package/dist/lib/widgets/dynamicForm/DynamicForm.js.map +1 -1
- package/dist/lib/widgets/dynamicFormDialog/DynamicFormDialog.js +1 -1
- package/dist/lib/widgets/dynamicFormDialog/DynamicFormDialog.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/CategoryTabs.js +1 -1
- package/dist/lib/widgets/seoHeader/ui/desktop/CategoryTabs.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/table/Table.js +1 -1
- package/dist/lib/widgets/table/Table.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/experts/Experts.js +1 -1
- package/dist/lib/widgets/usefulInfo/ui/subEntities/experts/Experts.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/lib/widgets/userFeedback/ui/UserReview.js +1 -1
- package/dist/lib/widgets/userFeedback/ui/UserReview.js.map +1 -1
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +1 -1
- package/dist/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +1 -1
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.js +1 -1
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.js.map +1 -1
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js +2 -0
- package/dist/node_modules/@floating-ui/react/dist/floating-ui.react.utils.js.map +1 -0
- package/dist/stats.html +1 -1
- package/dist/types/lib/shared/ui/divider/Divider.d.ts +25 -0
- package/dist/types/lib/shared/ui/divider/index.d.ts +1 -0
- package/dist/types/lib/shared/ui/formElements/controlled/index.d.ts +2 -2
- package/dist/types/lib/shared/ui/formElements/controlled/inputCurrency/InputCurrencyControl.d.ts +11 -23
- package/dist/types/lib/shared/ui/formElements/controlled/inputCurrency/index.d.ts +1 -1
- package/dist/types/lib/shared/ui/formElements/index.d.ts +1 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/index.d.ts +1 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.d.ts +37 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/index.d.ts +2 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/useCurrencyControl.d.ts +15 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/useCurrencyFormat.d.ts +1 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/inputCurrency/index.d.ts +1 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/inputCurrency/ui/CurrencyIcon.d.ts +14 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/inputCurrency/ui/index.d.ts +1 -0
- package/dist/types/lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.d.ts +3 -0
- package/dist/types/lib/shared/ui/index.d.ts +1 -0
- package/dist/types/lib/shared/validation/base/base.constants.d.ts +1 -0
- package/dist/types/lib/shared/validation/base/base.validators.d.ts +2 -0
- package/dist/types/lib/shared/validation/base/currency.validators.d.ts +69 -0
- package/dist/types/lib/shared/validation/index.d.ts +1 -0
- package/package.json +4 -3
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/model/helpers.js +0 -2
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/model/helpers.js.map +0 -1
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/model/useInputCurrency.js +0 -2
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/model/useInputCurrency.js.map +0 -1
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/ui/MenuTrigger.js +0 -2
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/ui/MenuTrigger.js.map +0 -1
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/ui/OptionList.js +0 -2
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/ui/OptionList.js.map +0 -1
- package/dist/lib/shared/ui/formElements/controlled/inputCurrency/ui/index.js +0 -2
- package/dist/types/lib/shared/ui/formElements/controlled/inputCurrency/model/helpers.d.ts +0 -3
- package/dist/types/lib/shared/ui/formElements/controlled/inputCurrency/model/useInputCurrency.d.ts +0 -10
- package/dist/types/lib/shared/ui/formElements/controlled/inputCurrency/ui/MenuTrigger.d.ts +0 -7
- package/dist/types/lib/shared/ui/formElements/controlled/inputCurrency/ui/OptionList.d.ts +0 -8
- package/dist/types/lib/shared/ui/formElements/controlled/inputCurrency/ui/index.d.ts +0 -2
- /package/dist/lib/shared/ui/{formElements/controlled/inputCurrency/ui → divider}/index.js.map +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{AutocompleteBase as t}from"./uncontrolled/autocomplete/Autocomplete.js";import{CheckboxBase as p}from"./uncontrolled/checkbox/Checkbox.js";import{Combobox as m}from"./uncontrolled/combobox/combobox.js";import{DayPickerBase as f}from"./uncontrolled/dayPicker/DayPicker.js";import{InputBase as l}from"./uncontrolled/input/Input.js";import{InputOtpBase as d}from"./uncontrolled/inputOtp/InputOtpBase.js";import{MaskInput as
|
|
1
|
+
import{AutocompleteBase as t}from"./uncontrolled/autocomplete/Autocomplete.js";import{CheckboxBase as p}from"./uncontrolled/checkbox/Checkbox.js";import{Combobox as m}from"./uncontrolled/combobox/combobox.js";import{DayPickerBase as f}from"./uncontrolled/dayPicker/DayPicker.js";import{InputBase as l}from"./uncontrolled/input/Input.js";import{InputOtpBase as d}from"./uncontrolled/inputOtp/InputOtpBase.js";import{MaskInput as u}from"./uncontrolled/maskInput/MaskInput.js";import{RadioGroupBase as B}from"./uncontrolled/radio/RadioGroup.js";import{RadioItem as c}from"./uncontrolled/radio/ui/RadioItem.js";import{RadioItemCard as y}from"./uncontrolled/radio/ui/RadioItemCard.js";import{RadioItemTab as R}from"./uncontrolled/radio/ui/RadioItemTab.js";import{SliderBase as T}from"./uncontrolled/slider/SliderBase.js";import{SwitchBase as A}from"./uncontrolled/switch/Switch.js";import{TextareaBase as S}from"./uncontrolled/textarea/Textarea.js";import{UploaderBase as M}from"./uncontrolled/uploader/UploaderBase.js";import{bytesToMegabytes as U,megabytesToBytes as w}from"./uncontrolled/uploader/model/helpers.js";import{InputCurrencyBase as z}from"./uncontrolled/inputCurrency/InputCurrency.js";import{Uncontrolled as F}from"./uncontrolled/index.js";import{AutocompleteControl as q}from"./controlled/autocomplete/Autocomplete.js";import{CheckboxControl as H}from"./controlled/checkbox/CheckboxControl.js";import{DadataOrganization as K}from"./controlled/dadata/party/DadataOrganization.js";import{DadataAddress as N}from"./controlled/dadata/address/DadataAddress.js";import{DadataAuto as V}from"./controlled/dadata/auto/DadataAuto.js";import{DadataCountry as X}from"./controlled/dadata/country/DadataCountry.js";import{DadataFio as Z}from"./controlled/dadata/fio/DadataFio.js";import{DayPickerControl as $}from"./controlled/dayPickerControl/dayPickerControl.js";import{EditorControl as ro}from"./controlled/editor/EditorControl.js";import{InputControl as eo}from"./controlled/input/InputControl.js";import{MaskInputControl as ao}from"./controlled/input/MaskInputControl.js";import{InputCurrencyControl as xo}from"./controlled/inputCurrency/InputCurrencyControl.js";import{InputOtpControl as no}from"./controlled/inputOtp/InputOtpControl.js";import{RadioGroupControl as Co}from"./controlled/radio/RadioGroupControl.js";import{RadioGroupTabControl as uo}from"./controlled/radio/RadioGroupTabControl.js";import{RadioGroupCardControl as Bo}from"./controlled/radio/RadioGroupCardControl.js";import{SliderControl as co}from"./controlled/slider/SliderControl.js";import{SwitchControl as yo}from"./controlled/switch/SwitchControl.js";import{TextareaControl as Ro}from"./controlled/textarea/TextareaControl.js";import{UploaderControl as To}from"./controlled/uploader/UploaderControl.js";import{ComboboxControl as Ao}from"./controlled/combobox/ComboboxControl.js";import{Controlled as So}from"./controlled/index.js";export{t as AutocompleteBase,q as AutocompleteControl,p as CheckboxBase,H as CheckboxControl,m as Combobox,Ao as ComboboxControl,So as Controlled,N as DadataAddress,V as DadataAuto,X as DadataCountry,Z as DadataFio,K as DadataOrganization,f as DayPickerBase,$ as DayPickerControl,ro as EditorControl,l as InputBase,eo as InputControl,z as InputCurrencyBase,xo as InputCurrencyControl,d as InputOtpBase,no as InputOtpControl,u as MaskInput,ao as MaskInputControl,B as RadioGroupBase,Bo as RadioGroupCardControl,Co as RadioGroupControl,uo as RadioGroupTabControl,c as RadioItem,y as RadioItemCard,R as RadioItemTab,T as SliderBase,co as SliderControl,A as SwitchBase,yo as SwitchControl,S as TextareaBase,Ro as TextareaControl,F as Uncontrolled,M as UploaderBase,To as UploaderControl,U as bytesToMegabytes,w as megabytesToBytes};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -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"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"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"../../../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";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const
|
|
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"../../../uncontrolled/combobox/combobox.js";import"../../../uncontrolled/dayPicker/DayPicker.js";import"../../../uncontrolled/input/Input.js";import"../../../uncontrolled/inputOtp/InputOtpBase.js";import"../../../uncontrolled/maskInput/MaskInput.js";import"../../../uncontrolled/radio/RadioGroup.js";import"../../../uncontrolled/radio/ui/RadioItem.js";import"../../../uncontrolled/slider/SliderBase.js";import"../../../uncontrolled/switch/Switch.js";import"../../../uncontrolled/textarea/Textarea.js";import"../../../uncontrolled/uploader/UploaderBase.js";import"../../../uncontrolled/inputCurrency/InputCurrency.js";import"../../../controlled/editor/ui/Editor.js";import"../../../controlled/input/MaskInputControl.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const U=({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{U 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":"+kDAUO,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 C}from"react/jsx-runtime";import{forwardRef as S,useState as q}from"react";import{useDebounceValue as D}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{Combobox as O}from"../combobox/combobox.js";import"../dayPicker/DayPicker.js";import"../input/Input.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"../../../dropdownList/ui/dropdownItem/DropdownItem.js";const
|
|
1
|
+
import{jsx as C}from"react/jsx-runtime";import{forwardRef as S,useState as q}from"react";import{useDebounceValue as D}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{Combobox as O}from"../combobox/combobox.js";import"../dayPicker/DayPicker.js";import"../input/Input.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"../inputCurrency/InputCurrency.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";const ot=S(({formatter:u,query:c,queryOptions:a,value:m,displayValue:o,limit:t=0,onChange:r,strategy:e="input-first",...f},b)=>{const[h,l]=q(m??""),n=e==="input-first"?m??"":h,d=e==="input-first"?r:l,p=D(n,100),g={enabled:t>0?p.length>=t:!0,...a},{data:s}=c(p,g),x=s?s.map(u):[];return C(O,{...f,ref:b,options:x,searchable:!0,filterDisabled:!0,inputValue:n,onInputChange:d,multiple:!1,displayValue:o,onChange:i=>{i&&r&&r(o?o(i):i.label)},empty:p.length<t?`Введите более ${t} символов для поиска`:void 0})});export{ot 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, useState } from 'react'\nimport { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query'\nimport type { AutocompleteItemOption } from './types'\nimport { useDebounceValue } from '$/shared/hooks'\nimport { Combobox, type ComboboxProps, type ComboboxValue } from '$/shared/ui'\n\nexport interface AutocompleteBaseProps<TData>\n extends Omit<\n ComboboxProps<false>,\n 'options' | 'inputValue' | 'onInputChange' | 'searchable' | 'multiple' | 'value' | 'onChange'\n > {\n /**\n * Функция для запроса основанная на [@tanstack/query](https://tanstack.com/query/latest/docs/framework/react/overview)\n */\n query: (query: string, options?: Partial<UseQueryOptions<TData[]>>) => UseQueryResult<TData[]>\n /**\n * Параметры запроса\n */\n queryOptions?: Partial<UseQueryOptions<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 * Стратегия управления полем\n * @variation `input-first` - источником правды является инпут\n * @variation `select-first` - источником правды является список\n * @default input-first\n */\n strategy?: 'input-first' | 'select-first'\n limit?: number\n}\n\nexport const AutocompleteBase = forwardRef(\n <TData,>(\n {\n formatter,\n query,\n queryOptions: initialQueryOptions,\n value,\n displayValue,\n limit = 0,\n onChange,\n strategy = 'input-first',\n ...props\n }: AutocompleteBaseProps<TData>,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const [search, setSearch] = useState<string>(value ?? '')\n\n const inputValue = strategy === 'input-first' ? (value ?? '') : search\n const onInputChange = strategy === 'input-first' ? onChange : setSearch\n\n const debounceSearch = useDebounceValue(inputValue, 100)\n\n const queryOptions: Partial<UseQueryOptions<TData[]>> = {\n enabled: limit > 0 ? debounceSearch.length >= limit : true,\n ...initialQueryOptions\n }\n\n const { data } = query(debounceSearch, queryOptions)\n\n const options = data ? data.map(formatter) : []\n\n const onValueChange = (value: ComboboxValue<false>) => {\n if (!value) return\n\n if (onChange) onChange(displayValue ? displayValue(value) : value.label)\n }\n\n return (\n <Combobox\n {...props}\n ref={ref}\n options={options}\n searchable\n filterDisabled\n inputValue={inputValue}\n onInputChange={onInputChange}\n multiple={false}\n displayValue={displayValue}\n onChange={onValueChange}\n empty={debounceSearch.length < limit ? `Введите более ${limit} символов для поиска` : undefined}\n />\n )\n }\n) as <TData>(props: AutocompleteBaseProps<TData> & { ref: React.Ref<HTMLInputElement> }) => React.JSX.Element\n"],"names":["AutocompleteBase","forwardRef","formatter","query","initialQueryOptions","value","displayValue","limit","onChange","strategy","props","ref","search","setSearch","useState","inputValue","onInputChange","debounceSearch","useDebounceValue","queryOptions","data","options","jsx","Combobox"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Autocomplete.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/autocomplete/Autocomplete.tsx"],"sourcesContent":["import { forwardRef, useState } from 'react'\nimport { type UseQueryOptions, type UseQueryResult } from '@tanstack/react-query'\nimport type { AutocompleteItemOption } from './types'\nimport { useDebounceValue } from '$/shared/hooks'\nimport { Combobox, type ComboboxProps, type ComboboxValue } from '$/shared/ui'\n\nexport interface AutocompleteBaseProps<TData>\n extends Omit<\n ComboboxProps<false>,\n 'options' | 'inputValue' | 'onInputChange' | 'searchable' | 'multiple' | 'value' | 'onChange'\n > {\n /**\n * Функция для запроса основанная на [@tanstack/query](https://tanstack.com/query/latest/docs/framework/react/overview)\n */\n query: (query: string, options?: Partial<UseQueryOptions<TData[]>>) => UseQueryResult<TData[]>\n /**\n * Параметры запроса\n */\n queryOptions?: Partial<UseQueryOptions<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 * Стратегия управления полем\n * @variation `input-first` - источником правды является инпут\n * @variation `select-first` - источником правды является список\n * @default input-first\n */\n strategy?: 'input-first' | 'select-first'\n limit?: number\n}\n\nexport const AutocompleteBase = forwardRef(\n <TData,>(\n {\n formatter,\n query,\n queryOptions: initialQueryOptions,\n value,\n displayValue,\n limit = 0,\n onChange,\n strategy = 'input-first',\n ...props\n }: AutocompleteBaseProps<TData>,\n ref: React.ForwardedRef<HTMLInputElement>\n ) => {\n const [search, setSearch] = useState<string>(value ?? '')\n\n const inputValue = strategy === 'input-first' ? (value ?? '') : search\n const onInputChange = strategy === 'input-first' ? onChange : setSearch\n\n const debounceSearch = useDebounceValue(inputValue, 100)\n\n const queryOptions: Partial<UseQueryOptions<TData[]>> = {\n enabled: limit > 0 ? debounceSearch.length >= limit : true,\n ...initialQueryOptions\n }\n\n const { data } = query(debounceSearch, queryOptions)\n\n const options = data ? data.map(formatter) : []\n\n const onValueChange = (value: ComboboxValue<false>) => {\n if (!value) return\n\n if (onChange) onChange(displayValue ? displayValue(value) : value.label)\n }\n\n return (\n <Combobox\n {...props}\n ref={ref}\n options={options}\n searchable\n filterDisabled\n inputValue={inputValue}\n onInputChange={onInputChange}\n multiple={false}\n displayValue={displayValue}\n onChange={onValueChange}\n empty={debounceSearch.length < limit ? `Введите более ${limit} символов для поиска` : undefined}\n />\n )\n }\n) as <TData>(props: AutocompleteBaseProps<TData> & { ref: React.Ref<HTMLInputElement> }) => React.JSX.Element\n"],"names":["AutocompleteBase","forwardRef","formatter","query","initialQueryOptions","value","displayValue","limit","onChange","strategy","props","ref","search","setSearch","useState","inputValue","onInputChange","debounceSearch","useDebounceValue","queryOptions","data","options","jsx","Combobox"],"mappings":"qsCAyCO,MAAMA,GAAmBC,EAC9B,CACE,CACE,UAAAC,EACA,MAAAC,EACA,aAAcC,EACd,MAAAC,EACA,aAAAC,EACA,MAAAC,EAAQ,EACR,SAAAC,EACA,SAAAC,EAAW,cACX,GAAGC,CAAA,EAELC,IACG,CACH,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAiBT,GAAS,EAAE,EAElDU,EAAaN,IAAa,cAAiBJ,GAAS,GAAMO,EAC1DI,EAAgBP,IAAa,cAAgBD,EAAWK,EAExDI,EAAiBC,EAAiBH,EAAY,GAAG,EAEjDI,EAAkD,CACtD,QAASZ,EAAQ,EAAIU,EAAe,QAAUV,EAAQ,GACtD,GAAGH,CAAA,EAGC,CAAE,KAAAgB,CAAA,EAASjB,EAAMc,EAAgBE,CAAY,EAE7CE,EAAUD,EAAOA,EAAK,IAAIlB,CAAS,EAAI,CAAA,EAQ7C,OACEoB,EAACC,EAAA,CACE,GAAGb,EACJ,IAAAC,EACA,QAAAU,EACA,WAAU,GACV,eAAc,GACd,WAAAN,EACA,cAAAC,EACA,SAAU,GACV,aAAAV,EACA,SAjBmBD,GAAgC,CAChDA,GAEDG,GAAUA,EAASF,EAAeA,EAAaD,CAAK,EAAIA,EAAM,KAAK,CACzE,EAcI,MAAOY,EAAe,OAASV,EAAQ,iBAAiBA,CAAK,uBAAyB,MAAA,CAAA,CAG5F,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"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"../combobox/combobox.js";import"../dayPicker/DayPicker.js";import"../input/Input.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"../../../dropdownList/ui/dropdownItem/DropdownItem.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};
|
|
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"../combobox/combobox.js";import"../dayPicker/DayPicker.js";import"../input/Input.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"../inputCurrency/InputCurrency.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.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":"0zCAmCO,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 s,jsx as r}from"react/jsx-runtime";import{forwardRef as G}from"react";import{useFloating as J}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{useCombobox as Q}from"./hooks/useCombobox.js";import{useKeyboardNavigation as T}from"./hooks/useKeyboardNavigation.js";import{useClickOutside as V}from"../../../../hooks/useClickOutside.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 W}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 X}from"../input/Input.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"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{DropdownList as Y}from"../../../dropdownList/DropdownList.js";import{Portal as Z}from"../../../portal/Portal.js";import{AnimatePresence as _}from"../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";import{motion as $}from"../../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";import{autoUpdate as x}from"../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js";import{flip as l,offset as H}from"../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js";const oo=({options:R,multiple:f,value:p,onChange:a,defaultOpen:k,attachmentProps:v,searchable:m,invalid:g,displayValue:C,label:N,disabled:u,readOnly:h,className:P,externalHandlers:o,inputValue:b,filterDisabled:A,onInputChange:B,empty:F,classes:t,portal:O=document.body},j)=>{var y;const{floating:z,...D}=(t==null?void 0:t.list)??{},{refs:i,floatingStyles:L}=J({placement:"bottom-start",strategy:"absolute",middleware:[l({boundary:"clippingAncestors",crossAxis:!1}),H(4)],whileElementsMounted:x}),{open:w,setOpen:n,state:E,changeHandler:K,options:M,search:S,onInputChange:U,comboboxDisplayValue:d}=Q({multiple:f,value:p,onChange:a,searchable:m,defaultOpen:k,displayValue:C,initialOptions:R,filterDisabled:A,externalHandlers:o,externalInputValue:b,externalOnInputChange:B});T({ref:i.domReference,openChangeHandler:n});const q=()=>p?f&&m?d(p):m?S:d(p):"";return V(i.floating,()=>n(!1)),s("div",{ref:i.setReference,className:e("relative w-full",t==null?void 0:t.root,P),children:[r(X,{ref:j,label:N,invalid:g,readOnly:h||!m,value:b||q(),onChange:U,disabled:u,onClick:c=>{var I;n(!0),(I=o==null?void 0:o.clickHandler)==null||I.call(o,c)},onBlur:o==null?void 0:o.blurHandler,onFocus:o==null?void 0:o.focusHandler,classes:{input:e({"cursor-pointer":!m,"cursor-default":u,"pointer-events-none":u||h}),...t==null?void 0:t.input},autoComplete:"off",attachmentProps:{icon:r(W,{name:"arrows/arrowRight",className:e("size-6 rotate-90 text-color-blue-grey-600 duration-100",{"-rotate-90":w,"text-color-negative":g})}),onClickIcon:()=>n(c=>!c),...v},"data-test-id":"combobox-input"}),r(Z,{root:O,children:r(_,{children:w&&r($.div,{ref:i.setFloating,initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},className:e("z-[1000]",z),style:{...L,width:(y=i.reference.current)==null?void 0:y.getBoundingClientRect().width},children:r(Y,{empty:F,options:M,multiple:f,onPick:K,value:E,displayValue:C,classes:D,target:i.domReference})})})})]})},
|
|
1
|
+
import{jsxs as s,jsx as r}from"react/jsx-runtime";import{forwardRef as G}from"react";import{useFloating as J}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import{useCombobox as Q}from"./hooks/useCombobox.js";import{useKeyboardNavigation as T}from"./hooks/useKeyboardNavigation.js";import{useClickOutside as V}from"../../../../hooks/useClickOutside.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 W}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 X}from"../input/Input.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"../inputCurrency/InputCurrency.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{DropdownList as Y}from"../../../dropdownList/DropdownList.js";import{Portal as Z}from"../../../portal/Portal.js";import{AnimatePresence as _}from"../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";import{motion as $}from"../../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";import{autoUpdate as x}from"../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js";import{flip as l,offset as H}from"../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js";const oo=({options:R,multiple:f,value:p,onChange:a,defaultOpen:k,attachmentProps:v,searchable:m,invalid:g,displayValue:C,label:N,disabled:u,readOnly:h,className:P,externalHandlers:o,inputValue:b,filterDisabled:A,onInputChange:B,empty:F,classes:t,portal:O=document.body},j)=>{var y;const{floating:z,...D}=(t==null?void 0:t.list)??{},{refs:i,floatingStyles:L}=J({placement:"bottom-start",strategy:"absolute",middleware:[l({boundary:"clippingAncestors",crossAxis:!1}),H(4)],whileElementsMounted:x}),{open:w,setOpen:n,state:E,changeHandler:K,options:M,search:S,onInputChange:U,comboboxDisplayValue:d}=Q({multiple:f,value:p,onChange:a,searchable:m,defaultOpen:k,displayValue:C,initialOptions:R,filterDisabled:A,externalHandlers:o,externalInputValue:b,externalOnInputChange:B});T({ref:i.domReference,openChangeHandler:n});const q=()=>p?f&&m?d(p):m?S:d(p):"";return V(i.floating,()=>n(!1)),s("div",{ref:i.setReference,className:e("relative w-full",t==null?void 0:t.root,P),children:[r(X,{ref:j,label:N,invalid:g,readOnly:h||!m,value:b||q(),onChange:U,disabled:u,onClick:c=>{var I;n(!0),(I=o==null?void 0:o.clickHandler)==null||I.call(o,c)},onBlur:o==null?void 0:o.blurHandler,onFocus:o==null?void 0:o.focusHandler,classes:{input:e({"cursor-pointer":!m,"cursor-default":u,"pointer-events-none":u||h}),...t==null?void 0:t.input},autoComplete:"off",attachmentProps:{icon:r(W,{name:"arrows/arrowRight",className:e("size-6 rotate-90 text-color-blue-grey-600 duration-100",{"-rotate-90":w,"text-color-negative":g})}),onClickIcon:()=>n(c=>!c),...v},"data-test-id":"combobox-input"}),r(Z,{root:O,children:r(_,{children:w&&r($.div,{ref:i.setFloating,initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},className:e("z-[1000]",z),style:{...L,width:(y=i.reference.current)==null?void 0:y.getBoundingClientRect().width},children:r(Y,{empty:F,options:M,multiple:f,onPick:K,value:E,displayValue:C,classes:D,target:i.domReference})})})})]})},To=G(oo);export{To 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 { type ForwardedRef, forwardRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox, useKeyboardNavigation } 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 { DropdownList, Icon, Portal } from '$/shared/ui'\nimport { 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 } 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>\n extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'>,\n Record<`data-${string}`, unknown> {\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 * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Выключить фильтрацию списка\n */\n filterDisabled?: boolean\n /**\n * Включить рендеринг в портале\n * @property {false | HTMLElement} portal document.body\n */\n portal?: false | HTMLElement\n}\n\nconst InnerComponent = <Multi extends boolean>(\n {\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 inputValue,\n filterDisabled,\n onInputChange: externalInputChangeHandler,\n empty,\n classes,\n portal = document.body\n }: ComboboxProps<Multi>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const { refs, floatingStyles } = useFloating<HTMLDivElement>({\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, comboboxDisplayValue } = useCombobox({\n multiple,\n value,\n onChange,\n searchable,\n defaultOpen,\n displayValue,\n initialOptions,\n filterDisabled,\n externalHandlers,\n externalInputValue: inputValue,\n externalOnInputChange: externalInputChangeHandler\n })\n\n useKeyboardNavigation({ ref: refs.domReference, openChangeHandler: setOpen })\n\n const getLabel = () => {\n if (!value) return ''\n\n if (multiple && searchable) {\n return comboboxDisplayValue(value)\n } else if (searchable) {\n return search\n } else {\n return comboboxDisplayValue(value)\n }\n }\n\n useClickOutside(refs.floating, () => setOpen(false))\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={ref}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={inputValue || getLabel()}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n setOpen(true)\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 'text-color-negative': invalid\n })}\n />\n ),\n onClickIcon: () => setOpen((prev) => !prev),\n ...attachmentProps\n }}\n data-test-id='combobox-input'\n />\n\n <Portal root={portal}>\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={{\n ...floatingStyles,\n width: refs.reference.current?.getBoundingClientRect().width\n }}\n >\n <DropdownList\n empty={empty}\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n target={refs.domReference}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </Portal>\n </div>\n )\n}\n\nexport const Combobox = forwardRef(InnerComponent) as <Multi extends boolean>(\n props: ComboboxProps<Multi> & { ref?: ForwardedRef<HTMLInputElement> }\n) => React.JSX.Element\n"],"names":["InnerComponent","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","inputValue","filterDisabled","externalInputChangeHandler","empty","classes","portal","ref","floating","dropdownClasses","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","comboboxDisplayValue","useCombobox","useKeyboardNavigation","getLabel","useClickOutside","jsxs","cn","jsx","InputBase","event","_a","Icon","prev","Portal","AnimatePresence","motion","DropdownList","Combobox","forwardRef"],"mappings":"
|
|
1
|
+
{"version":3,"file":"combobox.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/combobox/combobox.tsx"],"sourcesContent":["import { type ForwardedRef, forwardRef } from 'react'\nimport { autoUpdate, flip, offset, useFloating } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { useCombobox, useKeyboardNavigation } 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 { DropdownList, Icon, Portal } from '$/shared/ui'\nimport { 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 } 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>\n extends Omit<DropdownListProps<Multi>, 'options' | 'value' | 'onChange'>,\n Record<`data-${string}`, unknown> {\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 * Функция для изменения значения поиска\n */\n onInputChange?: (value: string) => void\n /**\n * Значение инпута\n */\n inputValue?: string\n /**\n * Выключить фильтрацию списка\n */\n filterDisabled?: boolean\n /**\n * Включить рендеринг в портале\n * @property {false | HTMLElement} portal document.body\n */\n portal?: false | HTMLElement\n}\n\nconst InnerComponent = <Multi extends boolean>(\n {\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 inputValue,\n filterDisabled,\n onInputChange: externalInputChangeHandler,\n empty,\n classes,\n portal = document.body\n }: ComboboxProps<Multi>,\n ref: ForwardedRef<HTMLInputElement>\n) => {\n const { floating, ...dropdownClasses } = classes?.list ?? {}\n\n const { refs, floatingStyles } = useFloating<HTMLDivElement>({\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, comboboxDisplayValue } = useCombobox({\n multiple,\n value,\n onChange,\n searchable,\n defaultOpen,\n displayValue,\n initialOptions,\n filterDisabled,\n externalHandlers,\n externalInputValue: inputValue,\n externalOnInputChange: externalInputChangeHandler\n })\n\n useKeyboardNavigation({ ref: refs.domReference, openChangeHandler: setOpen })\n\n const getLabel = () => {\n if (!value) return ''\n\n if (multiple && searchable) {\n return comboboxDisplayValue(value)\n } else if (searchable) {\n return search\n } else {\n return comboboxDisplayValue(value)\n }\n }\n\n useClickOutside(refs.floating, () => setOpen(false))\n\n return (\n <div ref={refs.setReference} className={cn('relative w-full', classes?.root, className)}>\n <InputBase\n ref={ref}\n label={label}\n invalid={invalid}\n readOnly={readOnly || !searchable}\n value={inputValue || getLabel()}\n onChange={onInputChange}\n disabled={disabled}\n onClick={(event) => {\n setOpen(true)\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 'text-color-negative': invalid\n })}\n />\n ),\n onClickIcon: () => setOpen((prev) => !prev),\n ...attachmentProps\n }}\n data-test-id='combobox-input'\n />\n\n <Portal root={portal}>\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={{\n ...floatingStyles,\n width: refs.reference.current?.getBoundingClientRect().width\n }}\n >\n <DropdownList\n empty={empty}\n options={options}\n multiple={multiple}\n onPick={changeHandler}\n value={state}\n displayValue={displayValue}\n classes={dropdownClasses}\n target={refs.domReference}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </Portal>\n </div>\n )\n}\n\nexport const Combobox = forwardRef(InnerComponent) as <Multi extends boolean>(\n props: ComboboxProps<Multi> & { ref?: ForwardedRef<HTMLInputElement> }\n) => React.JSX.Element\n"],"names":["InnerComponent","initialOptions","multiple","value","onChange","defaultOpen","attachmentProps","searchable","invalid","displayValue","label","disabled","readOnly","className","externalHandlers","inputValue","filterDisabled","externalInputChangeHandler","empty","classes","portal","ref","floating","dropdownClasses","refs","floatingStyles","useFloating","flip","offset","autoUpdate","open","setOpen","state","changeHandler","options","search","onInputChange","comboboxDisplayValue","useCombobox","useKeyboardNavigation","getLabel","useClickOutside","jsxs","cn","jsx","InputBase","event","_a","Icon","prev","Portal","AnimatePresence","motion","DropdownList","Combobox","forwardRef"],"mappings":"8kEAsGA,MAAMA,GAAiB,CACrB,CACE,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,WAAAC,EACA,eAAAC,EACA,cAAeC,EACf,MAAAC,EACA,QAAAC,EACA,OAAAC,EAAS,SAAS,IACpB,EACAC,IACG,OACH,KAAM,CAAE,SAAAC,EAAU,GAAGC,IAAoBJ,GAAA,YAAAA,EAAS,OAAQ,CAAA,EAEpD,CAAE,KAAAK,EAAM,eAAAC,CAAA,EAAmBC,EAA4B,CAC3D,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,EAAe,qBAAAC,CAAA,EAAyBC,EAAY,CAChH,SAAApC,EACA,MAAAC,EACA,SAAAC,EACA,WAAAG,EACA,YAAAF,EACA,aAAAI,EACA,eAAAR,EACA,eAAAe,EACA,iBAAAF,EACA,mBAAoBC,EACpB,sBAAuBE,CAAA,CACxB,EAEDsB,EAAsB,CAAE,IAAKf,EAAK,aAAc,kBAAmBO,EAAS,EAE5E,MAAMS,EAAW,IACVrC,EAEDD,GAAYK,EACP8B,EAAqBlC,CAAK,EACxBI,EACF4B,EAEAE,EAAqBlC,CAAK,EAPhB,GAWrB,OAAAsC,EAAgBjB,EAAK,SAAU,IAAMO,EAAQ,EAAK,CAAC,EAGjDW,EAAC,MAAA,CAAI,IAAKlB,EAAK,aAAc,UAAWmB,EAAG,kBAAmBxB,GAAA,YAAAA,EAAS,KAAMN,CAAS,EACpF,SAAA,CAAA+B,EAACC,EAAA,CACC,IAAAxB,EACA,MAAAX,EACA,QAAAF,EACA,SAAUI,GAAY,CAACL,EACvB,MAAOQ,GAAcyB,EAAA,EACrB,SAAUJ,EACV,SAAAzB,EACA,QAAUmC,GAAU,OAClBf,EAAQ,EAAI,GACZgB,EAAAjC,GAAA,YAAAA,EAAkB,eAAlB,MAAAiC,EAAA,KAAAjC,EAAiCgC,EACnC,EACA,OAAQhC,GAAA,YAAAA,EAAkB,YAC1B,QAASA,GAAA,YAAAA,EAAkB,aAC3B,QAAS,CACP,MAAO6B,EAAG,CACR,iBAAkB,CAACpC,EACnB,iBAAkBI,EAClB,sBAAuBA,GAAYC,CAAA,CACpC,EACD,GAAGO,GAAA,YAAAA,EAAS,KAAA,EAEd,aAAa,MACb,gBAAiB,CACf,KACEyB,EAACI,EAAA,CACC,KAAK,oBACL,UAAWL,EAAG,yDAA0D,CACtE,aAAcb,EACd,sBAAuBtB,CAAA,CACxB,CAAA,CAAA,EAGL,YAAa,IAAMuB,EAASkB,GAAS,CAACA,CAAI,EAC1C,GAAG3C,CAAA,EAEL,eAAa,gBAAA,CAAA,IAGd4C,EAAA,CAAO,KAAM9B,EACZ,SAAAwB,EAACO,GACE,SAAArB,GACCc,EAACQ,EAAO,IAAP,CACC,IAAK5B,EAAK,YACV,QAAS,CAAE,QAAS,CAAA,EACpB,QAAS,CAAE,QAAS,CAAA,EACpB,WAAY,CAAE,SAAU,EAAA,EACxB,UAAWmB,EAAG,WAAYrB,CAAQ,EAClC,MAAO,CACL,GAAGG,EACH,OAAOsB,EAAAvB,EAAK,UAAU,UAAf,YAAAuB,EAAwB,wBAAwB,KAAA,EAGzD,SAAAH,EAACS,EAAA,CACC,MAAAnC,EACA,QAAAgB,EACA,SAAAhC,EACA,OAAQ+B,EACR,MAAOD,EACP,aAAAvB,EACA,QAASc,EACT,OAAQC,EAAK,YAAA,CAAA,CACf,CAAA,EAGN,CAAA,CACF,CAAA,EACF,CAEJ,EAEa8B,GAAWC,EAAWvD,EAAc"}
|
|
@@ -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{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"../combobox/combobox.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"../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{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};
|
|
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"../combobox/combobox.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"../slider/SliderBase.js";import"../switch/Switch.js";import"../textarea/Textarea.js";import"../uploader/UploaderBase.js";import"../inputCurrency/InputCurrency.js";import"../../controlled/editor/ui/Editor.js";import"../../controlled/input/MaskInputControl.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.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":"wuDA4CO,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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as R,jsx as t}from"react/jsx-runtime";import{forwardRef as v}from"react";import{useFloating as F,useClick as O,useInteractions as b}from"../../../../../../node_modules/@floating-ui/react/dist/floating-ui.react.js";import"../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{cn as c}from"../../../../utils/cn.js";import{DropdownList as A}from"../../../dropdownList/DropdownList.js";import{InputBase as B}from"../input/Input.js";import{useCurrencyControl as M}from"./hooks/useCurrencyControl.js";import{useCurrencyFormat as j}from"./hooks/useCurrencyFormat.js";import{CurrencyIcon as L}from"./ui/CurrencyIcon.js";import{useClickOutside as N}from"../../../../hooks/useClickOutside.js";import{Portal as z}from"../../../portal/Portal.js";import{mergeRefs as D}from"../../../../utils/mergeRefs.js";import{autoUpdate as E}from"../../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.js";import{flip as H,offset as S}from"../../../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js";import{AnimatePresence as U}from"../../../../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.js";import{motion as q}from"../../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";const io=v(({classes:o,value:e,onChange:u,currencies:m,portal:d=document.body,attachmentProps:l,...g},s)=>{var a;const{currency:p,onCurrencyChange:C,onInputChange:y,open:n,setOpen:i}=M({currencies:m,value:e,onChange:u}),{refs:r,floatingStyles:h,context:w}=F({middleware:[H({boundary:"clippingAncestors",crossAxis:!1}),S(4)],whileElementsMounted:E,open:n,onOpenChange:i}),k=O(w,{ignoreMouse:!0,keyboardHandlers:!0,stickIfOpen:!0}),{getReferenceProps:x,getFloatingProps:I}=b([k]);N(r.floating,()=>i(!1));const f=j(e.value);return R("div",{...x({ref:r.setReference,className:c("relative w-full",o==null?void 0:o.root)}),children:[t(B,{ref:D(s,f),...g,autoComplete:"off",inputMode:"decimal",value:e.value,onChange:y,classes:o==null?void 0:o.input,attachmentProps:{classes:{icon:"flex items-center gap-2 w-max"},icon:t(L,{currency:p,open:n}),onClickIcon:()=>i(P=>!P),...l}}),t(z,{root:d,children:t(U,{children:n&&t(q.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.1},...I({ref:r.setFloating,className:c("z-[1000]"),style:{...h,width:(a=r.reference.current)==null?void 0:a.getBoundingClientRect().width}}),children:t(A,{target:f,options:m,value:p,onPick:C,classes:o==null?void 0:o.dropdownList})})})})]})});export{io as InputCurrencyBase};
|
|
2
|
+
//# sourceMappingURL=InputCurrency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputCurrency.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/inputCurrency/InputCurrency.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { autoUpdate, flip, offset, useClick, useFloating, useInteractions } from '@floating-ui/react'\nimport { AnimatePresence, motion } from 'framer-motion'\nimport { type DropdownItemOption, DropdownList, type DropdownListProps } from '../../../dropdownList'\nimport { InputBase, type InputBaseProps } from '../input'\nimport { useCurrencyControl, useCurrencyFormat } from './hooks'\nimport { CurrencyIcon } from './ui'\nimport { useClickOutside } from '$/shared/hooks'\nimport { Portal } from '$/shared/ui/portal'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport type CurrencyValue = {\n value: string\n currency: string | null\n}\n\ntype InputCurrencyBaseClasses = {\n root?: string\n input?: InputBaseProps['classes']\n dropdownList?: DropdownListProps['classes']\n}\n\nexport interface InputCurrencyBaseProps extends Omit<InputBaseProps, 'value' | 'onChange' | 'classes'> {\n /**\n * Выбранное значение\n */\n value: CurrencyValue\n /**\n * Функция для изменения значения\n * @param value\n */\n onChange: (value: CurrencyValue) => void\n /**\n * Список валют для выбора\n */\n currencies: DropdownItemOption[]\n /**\n * Дополнительные стили для переопределения\n */\n classes?: InputCurrencyBaseClasses\n /**\n * Включить рендеринг в портале\n * @property {false | HTMLElement} portal document.body\n */\n portal?: false | HTMLElement\n}\n\nexport const InputCurrencyBase = forwardRef<HTMLInputElement, InputCurrencyBaseProps>(\n ({ classes, value, onChange, currencies, portal = document.body, attachmentProps, ...props }, ref) => {\n const { currency, onCurrencyChange, onInputChange, open, setOpen } = useCurrencyControl({ currencies, value, onChange })\n\n const { refs, floatingStyles, context } = useFloating({\n middleware: [\n flip({\n boundary: 'clippingAncestors',\n crossAxis: false\n }),\n offset(4)\n ],\n whileElementsMounted: autoUpdate,\n open,\n onOpenChange: setOpen\n })\n\n const click = useClick(context, {\n ignoreMouse: true,\n keyboardHandlers: true,\n stickIfOpen: true\n })\n\n const { getReferenceProps, getFloatingProps } = useInteractions([click])\n\n useClickOutside(refs.floating, () => setOpen(false))\n\n const formatRef = useCurrencyFormat(value.value)\n\n return (\n <div\n {...getReferenceProps({\n ref: refs.setReference,\n className: cn('relative w-full', classes?.root)\n })}\n >\n <InputBase\n ref={mergeRefs(ref, formatRef)}\n {...props}\n autoComplete='off'\n inputMode='decimal'\n value={value.value}\n onChange={onInputChange}\n classes={classes?.input}\n attachmentProps={{\n classes: {\n icon: 'flex items-center gap-2 w-max'\n },\n icon: <CurrencyIcon currency={currency} open={open} />,\n onClickIcon: () => setOpen((prev) => !prev),\n ...attachmentProps\n }}\n />\n <Portal root={portal}>\n <AnimatePresence>\n {open && (\n <motion.div\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n transition={{ duration: 0.1 }}\n {...getFloatingProps({\n ref: refs.setFloating,\n className: cn('z-[1000]'),\n style: {\n ...floatingStyles,\n width: refs.reference.current?.getBoundingClientRect().width\n }\n })}\n >\n <DropdownList\n target={formatRef}\n options={currencies}\n value={currency}\n onPick={onCurrencyChange}\n classes={classes?.dropdownList}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </Portal>\n </div>\n )\n }\n)\n"],"names":["InputCurrencyBase","forwardRef","classes","value","onChange","currencies","portal","attachmentProps","props","ref","currency","onCurrencyChange","onInputChange","open","setOpen","useCurrencyControl","refs","floatingStyles","context","useFloating","flip","offset","autoUpdate","click","useClick","getReferenceProps","getFloatingProps","useInteractions","useClickOutside","formatRef","useCurrencyFormat","jsxs","cn","jsx","InputBase","mergeRefs","CurrencyIcon","prev","Portal","AnimatePresence","motion","_a","DropdownList"],"mappings":"ovCA+CO,MAAMA,GAAoBC,EAC/B,CAAC,CAAE,QAAAC,EAAS,MAAAC,EAAO,SAAAC,EAAU,WAAAC,EAAY,OAAAC,EAAS,SAAS,KAAM,gBAAAC,EAAiB,GAAGC,CAAA,EAASC,IAAQ,OACpG,KAAM,CAAE,SAAAC,EAAU,iBAAAC,EAAkB,cAAAC,EAAe,KAAAC,EAAM,QAAAC,GAAYC,EAAmB,CAAE,WAAAV,EAAY,MAAAF,EAAO,SAAAC,CAAA,CAAU,EAEjH,CAAE,KAAAY,EAAM,eAAAC,EAAgB,QAAAC,CAAA,EAAYC,EAAY,CACpD,WAAY,CACVC,EAAK,CACH,SAAU,oBACV,UAAW,EAAA,CACZ,EACDC,EAAO,CAAC,CAAA,EAEV,qBAAsBC,EACtB,KAAAT,EACA,aAAcC,CAAA,CACf,EAEKS,EAAQC,EAASN,EAAS,CAC9B,YAAa,GACb,iBAAkB,GAClB,YAAa,EAAA,CACd,EAEK,CAAE,kBAAAO,EAAmB,iBAAAC,CAAA,EAAqBC,EAAgB,CAACJ,CAAK,CAAC,EAEvEK,EAAgBZ,EAAK,SAAU,IAAMF,EAAQ,EAAK,CAAC,EAEnD,MAAMe,EAAYC,EAAkB3B,EAAM,KAAK,EAE/C,OACE4B,EAAC,MAAA,CACE,GAAGN,EAAkB,CACpB,IAAKT,EAAK,aACV,UAAWgB,EAAG,kBAAmB9B,GAAA,YAAAA,EAAS,IAAI,CAAA,CAC/C,EAED,SAAA,CAAA+B,EAACC,EAAA,CACC,IAAKC,EAAU1B,EAAKoB,CAAS,EAC5B,GAAGrB,EACJ,aAAa,MACb,UAAU,UACV,MAAOL,EAAM,MACb,SAAUS,EACV,QAASV,GAAA,YAAAA,EAAS,MAClB,gBAAiB,CACf,QAAS,CACP,KAAM,+BAAA,EAER,KAAM+B,EAACG,EAAA,CAAa,SAAA1B,EAAoB,KAAAG,CAAA,CAAY,EACpD,YAAa,IAAMC,EAASuB,GAAS,CAACA,CAAI,EAC1C,GAAG9B,CAAA,CACL,CAAA,IAED+B,EAAA,CAAO,KAAMhC,EACZ,SAAA2B,EAACM,GACE,SAAA1B,GACCoB,EAACO,EAAO,IAAP,CACC,QAAS,CAAE,QAAS,CAAA,EACpB,QAAS,CAAE,QAAS,CAAA,EACpB,WAAY,CAAE,SAAU,EAAA,EACvB,GAAGd,EAAiB,CACnB,IAAKV,EAAK,YACV,UAAWgB,EAAG,UAAU,EACxB,MAAO,CACL,GAAGf,EACH,OAAOwB,EAAAzB,EAAK,UAAU,UAAf,YAAAyB,EAAwB,wBAAwB,KAAA,CACzD,CACD,EAED,SAAAR,EAACS,EAAA,CACC,OAAQb,EACR,QAASxB,EACT,MAAOK,EACP,OAAQC,EACR,QAAST,GAAA,YAAAA,EAAS,YAAA,CAAA,CACpB,CAAA,EAGN,CAAA,CACF,CAAA,CAAA,CAAA,CAGN,CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/useCurrencyControl.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useState as p,useMemo as s}from"react";const g=({value:r,currencies:t,onChange:c})=>{const[a,o]=p(!1),u=s(()=>{const n=new Map;for(const e of t)e.value&&n.set(e.value,e);return n},[t]);return{currency:s(()=>r.currency?u.get(r.currency)??null:null,[r,u]),open:a,setOpen:o,onCurrencyChange:n=>{o(!1),c({...r,currency:n.value})},onInputChange:n=>{const e=n.target.value;/[^0-9\-.eE]/g.test(e)||c({...r,value:e})}}};export{g as useCurrencyControl};
|
|
2
|
+
//# sourceMappingURL=useCurrencyControl.js.map
|
package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/useCurrencyControl.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCurrencyControl.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/useCurrencyControl.ts"],"sourcesContent":["import { useMemo, useState } from 'react'\nimport type { CurrencyValue } from '../InputCurrency'\nimport type { DropdownItemOption } from '$/shared/ui/dropdownList'\n\ninterface UseCurrencyControlProps {\n value: CurrencyValue\n currencies: DropdownItemOption[]\n onChange: (value: CurrencyValue) => void\n}\n\nexport const useCurrencyControl = ({ value, currencies, onChange }: UseCurrencyControlProps) => {\n const [open, setOpen] = useState<boolean>(false)\n\n const currenciesMap = useMemo<Map<string, DropdownItemOption>>(() => {\n const map = new Map<string, DropdownItemOption>()\n\n for (const currency of currencies) {\n if (currency.value) map.set(currency.value, currency)\n }\n\n return map\n }, [currencies])\n\n const currency = useMemo<DropdownItemOption | null>(\n () => (value.currency ? (currenciesMap.get(value.currency) ?? null) : null),\n [value, currenciesMap]\n )\n\n const onInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const v = event.target.value\n\n if (/[^0-9\\-.eE]/g.test(v)) return\n\n onChange({ ...value, value: v })\n }\n\n const onCurrencyChange = (currency: DropdownItemOption) => {\n setOpen(false)\n onChange({ ...value, currency: currency.value })\n }\n\n return { currency, open, setOpen, onCurrencyChange, onInputChange }\n}\n"],"names":["useCurrencyControl","value","currencies","onChange","open","setOpen","useState","currenciesMap","useMemo","map","currency","event","v"],"mappings":"8CAUO,MAAMA,EAAqB,CAAC,CAAE,MAAAC,EAAO,WAAAC,EAAY,SAAAC,KAAwC,CAC9F,KAAM,CAACC,EAAMC,CAAO,EAAIC,EAAkB,EAAK,EAEzCC,EAAgBC,EAAyC,IAAM,CACnE,MAAMC,MAAU,IAEhB,UAAWC,KAAYR,EACjBQ,EAAS,OAAOD,EAAI,IAAIC,EAAS,MAAOA,CAAQ,EAGtD,OAAOD,CACT,EAAG,CAACP,CAAU,CAAC,EAoBf,MAAO,CAAE,SAlBQM,EACf,IAAOP,EAAM,SAAYM,EAAc,IAAIN,EAAM,QAAQ,GAAK,KAAQ,KACtE,CAACA,EAAOM,CAAa,CAAA,EAgBJ,KAAAH,EAAM,QAAAC,EAAS,iBALRK,GAAiC,CACzDL,EAAQ,EAAK,EACbF,EAAS,CAAE,GAAGF,EAAO,SAAUS,EAAS,MAAO,CACjD,EAEoD,cAb7BC,GAA+C,CACpE,MAAMC,EAAID,EAAM,OAAO,MAEnB,eAAe,KAAKC,CAAC,GAEzBT,EAAS,CAAE,GAAGF,EAAO,MAAOW,EAAG,CACjC,CAOoD,CACtD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useRef as i,useEffect as c}from"react";const l=new Intl.NumberFormat("ru-RU",{style:"decimal",maximumFractionDigits:2,minimumFractionDigits:2}),f=n=>{const t=i(null);return c(()=>{if(!t.current)return;const r=t.current,e=new AbortController,s=()=>{r.value=n},a=()=>{const{value:u}=r,o=parseFloat(u.replace(/[^\d.-]/g,""));isNaN(o)||(r.value=l.format(o))};return r.addEventListener("focus",s,{signal:e.signal}),r.addEventListener("blur",a,{signal:e.signal}),()=>{e.abort()}},[n]),t};export{f as useCurrencyFormat};
|
|
2
|
+
//# sourceMappingURL=useCurrencyFormat.js.map
|
package/dist/lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/useCurrencyFormat.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCurrencyFormat.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/inputCurrency/hooks/useCurrencyFormat.ts"],"sourcesContent":["import { useEffect, useRef } from 'react'\n\nconst formatter = new Intl.NumberFormat('ru-RU', {\n style: 'decimal',\n maximumFractionDigits: 2,\n minimumFractionDigits: 2\n})\n\nexport const useCurrencyFormat = (value: string) => {\n const ref = useRef<HTMLInputElement>(null)\n\n useEffect(() => {\n if (!ref.current) return\n\n const target = ref.current\n const abortController = new AbortController()\n\n const onFocus = () => {\n target.value = value\n }\n\n const onBlur = () => {\n const { value } = target\n const numeric = parseFloat(value.replace(/[^\\d.-]/g, ''))\n\n if (!isNaN(numeric)) {\n target.value = formatter.format(numeric)\n }\n }\n\n target.addEventListener('focus', onFocus, { signal: abortController.signal })\n target.addEventListener('blur', onBlur, { signal: abortController.signal })\n\n return () => {\n abortController.abort()\n }\n }, [value])\n\n return ref\n}\n"],"names":["formatter","useCurrencyFormat","value","ref","useRef","useEffect","target","abortController","onFocus","onBlur","numeric"],"mappings":"8CAEA,MAAMA,EAAY,IAAI,KAAK,aAAa,QAAS,CAC/C,MAAO,UACP,sBAAuB,EACvB,sBAAuB,CACzB,CAAC,EAEYC,EAAqBC,GAAkB,CAClD,MAAMC,EAAMC,EAAyB,IAAI,EAEzC,OAAAC,EAAU,IAAM,CACd,GAAI,CAACF,EAAI,QAAS,OAElB,MAAMG,EAASH,EAAI,QACbI,EAAkB,IAAI,gBAEtBC,EAAU,IAAM,CACpBF,EAAO,MAAQJ,CACjB,EAEMO,EAAS,IAAM,CACnB,KAAM,CAAE,MAAAP,CAAAA,EAAUI,EACZI,EAAU,WAAWR,EAAM,QAAQ,WAAY,EAAE,CAAC,EAEnD,MAAMQ,CAAO,IAChBJ,EAAO,MAAQN,EAAU,OAAOU,CAAO,EAE3C,EAEA,OAAAJ,EAAO,iBAAiB,QAASE,EAAS,CAAE,OAAQD,EAAgB,OAAQ,EAC5ED,EAAO,iBAAiB,OAAQG,EAAQ,CAAE,OAAQF,EAAgB,OAAQ,EAEnE,IAAM,CACXA,EAAgB,MAAA,CAClB,CACF,EAAG,CAACL,CAAK,CAAC,EAEHC,CACT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsxs as i,Fragment as d,jsx as t}from"react/jsx-runtime";import{cn as m}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 c}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"../../combobox/combobox.js";import"../../dayPicker/DayPicker.js";import"../../input/Input.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"../InputCurrency.js";import"../../../controlled/editor/ui/Editor.js";import"../../../controlled/input/MaskInputControl.js";import"../../../../dropdownList/ui/dropdownItem/DropdownItem.js";import{Divider as g}from"../../../../divider/Divider.js";const X=({currency:o,classes:p,open:e})=>{var r;const{divider:a,root:l,icon:s,label:n}=p??{};return i(d,{children:[t(g,{color:"bg-color-blue-grey-500",height:16,className:a}),i("div",{className:m("desk-body-regular-l flex items-center gap-1 text-color-tetriary",l),children:[(r=o==null?void 0:o.attachment)==null?void 0:r.left,t("span",{className:n,children:o?o.label:"CUR"}),t(c,{name:"arrows/arrowRight",className:m("size-6 rotate-90 duration-100",{"-rotate-90":e},s)})]})]})};export{X as CurrencyIcon};
|
|
2
|
+
//# sourceMappingURL=CurrencyIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CurrencyIcon.js","sources":["../../../../../../../../lib/shared/ui/formElements/uncontrolled/inputCurrency/ui/CurrencyIcon.tsx"],"sourcesContent":["import { Icon } from '$/shared/ui'\nimport { Divider } from '$/shared/ui/divider'\nimport { type DropdownItemOption } from '$/shared/ui/dropdownList'\nimport { cn } from '$/shared/utils'\n\ntype CurrencyIconClasses = {\n root?: string\n divider?: string\n label?: string\n icon?: string\n}\n\nexport interface CurrencyIconProps {\n currency: DropdownItemOption | null\n classes?: CurrencyIconClasses\n open: boolean\n}\n\nexport const CurrencyIcon = ({ currency, classes, open }: CurrencyIconProps) => {\n const { divider, root, icon, label } = classes ?? {}\n\n return (\n <>\n <Divider color='bg-color-blue-grey-500' height={16} className={divider} />\n <div className={cn('desk-body-regular-l flex items-center gap-1 text-color-tetriary', root)}>\n {currency?.attachment?.left}\n <span className={label}>{currency ? currency.label : 'CUR'}</span>\n <Icon\n name='arrows/arrowRight'\n className={cn(\n 'size-6 rotate-90 duration-100',\n {\n '-rotate-90': open\n },\n icon\n )}\n />\n </div>\n </>\n )\n}\n"],"names":["CurrencyIcon","currency","classes","open","divider","root","icon","label","jsxs","Fragment","jsx","Divider","cn","_a","Icon"],"mappings":"o2CAkBO,MAAMA,EAAe,CAAC,CAAE,SAAAC,EAAU,QAAAC,EAAS,KAAAC,KAA8B,OAC9E,KAAM,CAAE,QAAAC,EAAS,KAAAC,EAAM,KAAAC,EAAM,MAAAC,CAAA,EAAUL,GAAW,CAAA,EAElD,OACEM,EAAAC,EAAA,CACE,SAAA,CAAAC,EAACC,GAAQ,MAAM,yBAAyB,OAAQ,GAAI,UAAWP,EAAS,IACvE,MAAA,CAAI,UAAWQ,EAAG,kEAAmEP,CAAI,EACvF,SAAA,EAAAQ,EAAAZ,GAAA,YAAAA,EAAU,aAAV,YAAAY,EAAsB,OACtB,OAAA,CAAK,UAAWN,EAAQ,SAAAN,EAAWA,EAAS,MAAQ,MAAM,EAC3DS,EAACI,EAAA,CACC,KAAK,oBACL,UAAWF,EACT,gCACA,CACE,aAAcT,CAAA,EAEhBG,CAAA,CACF,CAAA,CACF,CAAA,CACF,CAAA,EACF,CAEJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as
|
|
1
|
+
import{jsx as m}from"react/jsx-runtime";import{forwardRef as a}from"react";import{useInputMask as n}from"../../../../../../node_modules/use-mask-input/dist/index.js";import{InputBase as p}from"../input/Input.js";import{defaultMask as u}from"./model/constants.js";import{defaultDefinitions as k}from"./model/mask/utils.js";import{mergeRefs as d}from"../../../../utils/mergeRefs.js";const M=a(({mask:o,externalMaskDefinitions:r,options:t,...e},s)=>{const f=u.get(o),i=n({mask:f??o,options:{jitMasking:!1,definitions:{...k,...r},...t}});return m(p,{ref:d(i,s),...e})});M.displayName="MaskInput";export{M 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, defaultMask, type Mask } from './model'\nimport type { NonNullable } from '$/shared/types'\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: NonNullable<Mask>\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
|
|
1
|
+
{"version":3,"file":"MaskInput.js","sources":["../../../../../../../lib/shared/ui/formElements/uncontrolled/maskInput/MaskInput.tsx"],"sourcesContent":["import { forwardRef } from 'react'\nimport { type Options, useInputMask } from 'use-mask-input'\nimport { InputBase, type InputBaseProps } from '../input'\nimport { defaultDefinitions, defaultMask, type Mask } from './model'\nimport type { NonNullable } from '$/shared/types'\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: NonNullable<Mask>\n /**\n * дополнительные валидаторы спец символов в маске\n */\n externalMaskDefinitions?: Record<string, Definition>\n options?: Options\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>(\n ({ mask, externalMaskDefinitions, options, ...props }, ref) => {\n const regularMask = defaultMask.get(mask)\n\n const maskedRef = useInputMask({\n mask: regularMask ?? mask,\n options: {\n jitMasking: false,\n definitions: {\n ...defaultDefinitions,\n ...externalMaskDefinitions\n },\n ...options\n }\n })\n\n return <InputBase ref={mergeRefs(maskedRef, ref)} {...props} />\n }\n)\nMaskInput.displayName = 'MaskInput'\n"],"names":["MaskInput","forwardRef","mask","externalMaskDefinitions","options","props","ref","regularMask","defaultMask","maskedRef","useInputMask","defaultDefinitions","jsx","InputBase","mergeRefs"],"mappings":"6XAoCO,MAAMA,EAAYC,EACvB,CAAC,CAAE,KAAAC,EAAM,wBAAAC,EAAyB,QAAAC,EAAS,GAAGC,CAAA,EAASC,IAAQ,CAC7D,MAAMC,EAAcC,EAAY,IAAIN,CAAI,EAElCO,EAAYC,EAAa,CAC7B,KAAMH,GAAeL,EACrB,QAAS,CACP,WAAY,GACZ,YAAa,CACX,GAAGS,EACH,GAAGR,CAAA,EAEL,GAAGC,CAAA,CACL,CACD,EAED,OAAOQ,EAACC,GAAU,IAAKC,EAAUL,EAAWH,CAAG,EAAI,GAAGD,EAAO,CAC/D,CACF,EACAL,EAAU,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as g,jsx as c}from"react/jsx-runtime";import*as N from"react";import{forwardRef as K}from"react";import{NumericFormat as Q}from"../../../../../../../../node_modules/react-number-format/dist/react-number-format.es.js";import{getInputSliderSuffix as n}from"../../model/helpers/getInputSliderSuffix.js";import{SliderInner as T}from"../Slider.js";import{useSliderAlgorithmic as U}from"./hooks/useSliderAlgorithmic.js";import{cn as m}from"../../../../../../utils/cn.js";import{mergeRefs as W}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 X}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"../../../combobox/combobox.js";import"../../../dayPicker/DayPicker.js";import{InputBase as Y}from"../../../input/Input.js";import"../../../inputOtp/InputOtpBase.js";import"../../../maskInput/MaskInput.js";import"../../../radio/RadioGroup.js";import"../../../radio/ui/RadioItem.js";import"../../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";const Z=c(X,{name:"general/edit",className:"size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800"}),
|
|
1
|
+
import{jsxs as g,jsx as c}from"react/jsx-runtime";import*as N from"react";import{forwardRef as K}from"react";import{NumericFormat as Q}from"../../../../../../../../node_modules/react-number-format/dist/react-number-format.es.js";import{getInputSliderSuffix as n}from"../../model/helpers/getInputSliderSuffix.js";import{SliderInner as T}from"../Slider.js";import{useSliderAlgorithmic as U}from"./hooks/useSliderAlgorithmic.js";import{cn as m}from"../../../../../../utils/cn.js";import{mergeRefs as W}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 X}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"../../../combobox/combobox.js";import"../../../dayPicker/DayPicker.js";import{InputBase as Y}from"../../../input/Input.js";import"../../../inputOtp/InputOtpBase.js";import"../../../maskInput/MaskInput.js";import"../../../radio/RadioGroup.js";import"../../../radio/ui/RadioItem.js";import"../../SliderBase.js";import"../../../switch/Switch.js";import"../../../textarea/Textarea.js";import"../../../uploader/UploaderBase.js";import"../../../inputCurrency/InputCurrency.js";import"../../../../controlled/editor/ui/Editor.js";import"../../../../controlled/input/MaskInputControl.js";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const Z=c(X,{name:"general/edit",className:"size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800"}),Vi=K(({classes:h,invalid:k,externalHandlers:i,disabled:b,value:u,onChange:e,min:p,max:s,suffix:d,label:w,attachmentProps:t,additionalSuffix:S,readOnly:f,componentType:B,...r},C)=>{const y=N.useId(),l=N.useRef(null),v=()=>{var o;(o=l==null?void 0:l.current)==null||o.focus()},{handleBlur:R,sliderValue:j,sliderStep:A,sliderMin:F,sliderMax:M,handleChangeSlider:V}=U({min:p,max:s,defaultValue:0,value:u,onChange:e}),{root:$,slider:z,textLeft:G,textRight:L,inputRoot:q,textContainer:D,input:E,field:J}=h||{};return g("div",{"aria-label":B,className:m("flex w-full flex-col gap-1",$),children:[g("div",{className:m("relative w-full select-none",{"select-none":f},J),children:[c(Y,{label:w,value:u,attachmentProps:{onClickIcon:f?void 0:(t==null?void 0:t.onClickIcon)||v,icon:f?void 0:(t==null?void 0:t.icon)||Z,...t},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...q},onBlur:o=>{R(u),r!=null&&r.onBlur&&(r==null||r.onBlur(o)),i!=null&&i.onBlur&&i.onBlur(o)},onClick:i==null?void 0:i.onClick,onFocus:i==null?void 0:i.onBlur,renderValues:()=>c(Q,{id:y,readOnly:f,"aria-invalid":k?"true":"false",value:u,disabled:b,suffix:` ${n(d,u)} ${S??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:W(l,C),onValueChange:({floatValue:o})=>{var I;o!==void 0&&(e&&e(o),(I=i==null?void 0:i.onInputChange)==null||I.call(i,o))},"data-test-id":"slider",className:m("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",E),...r})}),c(T,{classes:{...z},step:A,value:j,disabled:b,min:Number(F),max:Number(M),onChange:V,externalHandlers:i})]}),g("div",{className:m("flex justify-between",D),children:[p&&c("span",{className:m("desk-body-regular-m text-color-tetriary",G),children:n(d,p,!1)}),s&&c("span",{className:m("desk-body-regular-m text-color-tetriary",L),children:n(d,s,!1)})]})]})});export{Vi as SliderAlgorithmic};
|
|
2
2
|
//# sourceMappingURL=SliderAlgorithmic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SliderAlgorithmic.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { type SliderAlgorithmicProps } from '../../model/types'\nimport { SliderInner } from '../Slider'\nimport { useSliderAlgorithmic } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderAlgorithmic = forwardRef<HTMLInputElement, SliderAlgorithmicProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { handleBlur, sliderValue, sliderStep, sliderMin, sliderMax, handleChangeSlider } = useSliderAlgorithmic({\n min,\n max,\n defaultValue: 0,\n value,\n onChange\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n handleBlur(value)\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue !== undefined) {\n if (onChange) onChange(floatValue)\n externalHandlers?.onInputChange?.(floatValue)\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={sliderValue}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n externalHandlers={externalHandlers}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderAlgorithmic","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","attachmentProps","additionalSuffix","readOnly","componentType","props","ref","inputId","React","inputRef","handleIconClick","_a","handleBlur","sliderValue","sliderStep","sliderMin","sliderMax","handleChangeSlider","useSliderAlgorithmic","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SliderAlgorithmic.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderAlgorithmic/SliderAlgorithmic.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { type SliderAlgorithmicProps } from '../../model/types'\nimport { SliderInner } from '../Slider'\nimport { useSliderAlgorithmic } from './hooks'\nimport { Icon, InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nconst defaultIcon = (\n <Icon\n name='general/edit'\n className='size-[19px] text-icon-blue-grey-600 transition-[color] group-focus-within/icon:text-icon-blue-grey-800'\n />\n)\n\nexport const SliderAlgorithmic = forwardRef<HTMLInputElement, SliderAlgorithmicProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n min,\n max,\n suffix,\n label,\n attachmentProps,\n additionalSuffix,\n readOnly,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const handleIconClick = () => {\n inputRef?.current?.focus()\n }\n\n const { handleBlur, sliderValue, sliderStep, sliderMin, sliderMax, handleChangeSlider } = useSliderAlgorithmic({\n min,\n max,\n defaultValue: 0,\n value,\n onChange\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', { ['select-none']: readOnly }, field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n onClickIcon: readOnly ? undefined : attachmentProps?.onClickIcon || handleIconClick,\n icon: readOnly ? undefined : attachmentProps?.icon || defaultIcon,\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onBlur={(e) => {\n handleBlur(value)\n if (props?.onBlur) props?.onBlur(e)\n if (externalHandlers?.onBlur) externalHandlers.onBlur(e)\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly={readOnly}\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue !== undefined) {\n if (onChange) onChange(floatValue)\n externalHandlers?.onInputChange?.(floatValue)\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n step={sliderStep}\n value={sliderValue}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n externalHandlers={externalHandlers}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {min && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, min, false)}\n </span>\n )}\n {max && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, max, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["defaultIcon","jsx","Icon","SliderAlgorithmic","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","min","max","suffix","label","attachmentProps","additionalSuffix","readOnly","componentType","props","ref","inputId","React","inputRef","handleIconClick","_a","handleBlur","sliderValue","sliderStep","sliderMin","sliderMax","handleChangeSlider","useSliderAlgorithmic","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"0zDAUA,MAAMA,EACJC,EAACC,EAAA,CACC,KAAK,eACL,UAAU,wGAAA,CACZ,EAGWC,GAAoBC,EAC/B,CACE,CACE,QAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,IAAAC,EACA,IAAAC,EACA,OAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,cAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUC,EAAM,MAAA,EAEhBC,EAAWD,EAAM,OAAyB,IAAI,EAE9CE,EAAkB,IAAM,QAC5BC,EAAAF,GAAA,YAAAA,EAAU,UAAV,MAAAE,EAAmB,OACrB,EAEM,CAAE,WAAAC,EAAY,YAAAC,EAAa,WAAAC,EAAY,UAAAC,EAAW,UAAAC,EAAW,mBAAAC,CAAA,EAAuBC,EAAqB,CAC7G,IAAArB,EACA,IAAAC,EACA,aAAc,EACd,MAAAH,EACA,SAAAC,CAAA,CACD,EAEK,CAAE,KAAAuB,EAAM,OAAAC,EAAQ,SAAAC,EAAU,UAAAC,EAAW,UAAAC,EAAW,cAAAC,EAAe,MAAAC,EAAO,MAAAC,CAAA,EAAUnC,GAAW,CAAA,EAEjG,OACEoC,EAAC,OAAI,aAAYvB,EAAe,UAAWwB,EAAG,6BAA8BT,CAAI,EAC9E,SAAA,CAAAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,8BAA+B,CAAG,cAAgBzB,CAAA,EAAYuB,CAAK,EACpF,SAAA,CAAAvC,EAAC0C,EAAA,CACC,MAAA7B,EACA,MAAAL,EACA,gBAAiB,CACf,YAAaQ,EAAW,QAAYF,GAAA,YAAAA,EAAiB,cAAeS,EACpE,KAAMP,EAAW,QAAYF,GAAA,YAAAA,EAAiB,OAAQf,EACtD,GAAGe,CAAA,EAEL,QAAS,CACP,UAAW,qFACX,GAAGsB,CAAA,EAEL,OAASO,GAAM,CACblB,EAAWjB,CAAK,EACZU,GAAA,MAAAA,EAAO,SAAQA,GAAA,MAAAA,EAAO,OAAOyB,IAC7BrC,GAAA,MAAAA,EAAkB,QAAQA,EAAiB,OAAOqC,CAAC,CACzD,EACA,QAASrC,GAAA,YAAAA,EAAkB,QAC3B,QAASA,GAAA,YAAAA,EAAkB,OAC3B,aAAc,IACZN,EAAC4C,EAAA,CACC,GAAIxB,EACJ,SAAAJ,EACA,eAAcX,EAAU,OAAS,QACjC,MAAAG,EACA,SAAAD,EACA,OAAQ,IAAIsC,EAAqBjC,EAAQJ,CAAK,CAAC,IAAIO,GAAoB,EAAE,GACzE,oBAAoB,WACpB,kBAAmB,IACnB,cAAe,GACf,YAAa+B,EAAUxB,EAAUH,CAAG,EACpC,cAAe,CAAC,CAAE,WAAA4B,KAAiB,OAC7BA,IAAe,SACbtC,KAAmBsC,CAAU,GACjCvB,EAAAlB,GAAA,YAAAA,EAAkB,gBAAlB,MAAAkB,EAAA,KAAAlB,EAAkCyC,GAEtC,EACA,eAAa,SACb,UAAWN,EACT,yGAEAH,CAAA,EAED,GAAGpB,CAAA,CAAA,CACN,CAAA,EAGJlB,EAACgD,EAAA,CACC,QAAS,CAAE,GAAGf,CAAA,EACd,KAAMN,EACN,MAAOD,EACP,SAAAnB,EACA,IAAK,OAAOqB,CAAS,EACrB,IAAK,OAAOC,CAAS,EACrB,SAAUC,EACV,iBAAAxB,CAAA,CAAA,CACF,EACF,IACC,MAAA,CAAI,UAAWmC,EAAG,uBAAwBJ,CAAa,EACrD,SAAA,CAAA3B,GACCV,EAAC,OAAA,CAAK,UAAWyC,EAAG,0CAA2CP,CAAQ,EACpE,SAAAW,EAAqBjC,EAAQF,EAAK,EAAK,CAAA,CAC1C,EAEDC,GACCX,EAAC,OAAA,CAAK,UAAWyC,EAAG,0CAA2CN,CAAS,EACrE,SAAAU,EAAqBjC,EAAQD,EAAK,EAAK,CAAA,CAC1C,CAAA,CAAA,CAEJ,CAAA,EACF,CAEJ,CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsxs as f,jsx as m}from"react/jsx-runtime";import*as d from"react";import{forwardRef as O}from"react";import{NumericFormat as P}from"../../../../../../../../node_modules/react-number-format/dist/react-number-format.es.js";import{getInputSliderSuffix as e}from"../../model/helpers/getInputSliderSuffix.js";import{SliderInner as q}from"../Slider.js";import{useSliderMarks as z}from"./hooks/useSliderMarks.js";import{cn as i}from"../../../../../../utils/cn.js";import{mergeRefs as A}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"../../../../../table/ui/primitives/Primitives.js";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../slot/Slot.js";import"../../../autocomplete/Autocomplete.js";import"../../../checkbox/Checkbox.js";import"../../../combobox/combobox.js";import"../../../dayPicker/DayPicker.js";import{InputBase as D}from"../../../input/Input.js";import"../../../inputOtp/InputOtpBase.js";import"../../../maskInput/MaskInput.js";import"../../../radio/RadioGroup.js";import"../../../radio/ui/RadioItem.js";import"../../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";const
|
|
1
|
+
import{jsxs as f,jsx as m}from"react/jsx-runtime";import*as d from"react";import{forwardRef as O}from"react";import{NumericFormat as P}from"../../../../../../../../node_modules/react-number-format/dist/react-number-format.es.js";import{getInputSliderSuffix as e}from"../../model/helpers/getInputSliderSuffix.js";import{SliderInner as q}from"../Slider.js";import{useSliderMarks as z}from"./hooks/useSliderMarks.js";import{cn as i}from"../../../../../../utils/cn.js";import{mergeRefs as A}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"../../../../../table/ui/primitives/Primitives.js";import"../../../../../carousel/ui/CarouselContent.js";import"../../../../../slot/Slot.js";import"../../../autocomplete/Autocomplete.js";import"../../../checkbox/Checkbox.js";import"../../../combobox/combobox.js";import"../../../dayPicker/DayPicker.js";import{InputBase as D}from"../../../input/Input.js";import"../../../inputOtp/InputOtpBase.js";import"../../../maskInput/MaskInput.js";import"../../../radio/RadioGroup.js";import"../../../radio/ui/RadioItem.js";import"../../SliderBase.js";import"../../../switch/Switch.js";import"../../../textarea/Textarea.js";import"../../../uploader/UploaderBase.js";import"../../../inputCurrency/InputCurrency.js";import"../../../../controlled/editor/ui/Editor.js";import"../../../../controlled/input/MaskInputControl.js";import"../../../../../dropdownList/ui/dropdownItem/DropdownItem.js";const So=O(({classes:g,invalid:n,externalHandlers:o,disabled:l,value:t,onChange:p,suffix:u,label:b,marks:h,attachmentProps:N,additionalSuffix:y,componentType:a,...w},I)=>{const R=d.useId(),S=d.useRef(null),{sliderMin:s,sliderMax:c,handleChangeSlider:k,handleBlur:B}=z({marks:h,onChange:p,value:t}),{root:C,slider:M,textLeft:j,textRight:v,inputRoot:F,textContainer:$,input:G,field:L}=g||{};return f("div",{"aria-label":a,className:i("flex w-full flex-col gap-1",C),children:[f("div",{className:i("relative w-full select-none",L),children:[m(D,{label:b,value:t,attachmentProps:{...N},classes:{container:"border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800",...F},onClick:o==null?void 0:o.onClick,onFocus:o==null?void 0:o.onBlur,onBlur:r=>{o!=null&&o.onBlur&&(o==null||o.onBlur(r)),B()},renderValues:()=>m(P,{id:R,readOnly:!0,"aria-invalid":n?"true":"false",value:t,disabled:l,suffix:` ${e(u,t)} ${y??""}`,thousandsGroupStyle:"thousand",thousandSeparator:" ",allowNegative:!1,getInputRef:A(S,I),onValueChange:({floatValue:r})=>{r&&(p&&p(r),o!=null&&o.onInputChange&&o.onInputChange(r))},"data-test-id":"slider",className:i("group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all",G),...w})}),m(q,{classes:{...M},marks:h,step:null,value:t??0,disabled:l,min:Number(s),max:Number(c),onChange:k})]}),f("div",{className:i("flex justify-between",$),children:[s&&m("span",{className:i("desk-body-regular-m text-color-tetriary",j),children:e(u,s,!1)}),c&&m("span",{className:i("desk-body-regular-m text-color-tetriary",v),children:e(u,c,!1)})]})]})});export{So as SliderMarks};
|
|
2
2
|
//# sourceMappingURL=SliderMarks.js.map
|
package/dist/lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SliderMarks.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { type SliderMarksProps } from '../../model/types'\nimport { SliderInner } from '../../ui/Slider'\nimport { useSliderMarks } from './hooks/useSliderMarks'\nimport { InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport const SliderMarks = forwardRef<HTMLInputElement, SliderMarksProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n suffix,\n label,\n marks,\n attachmentProps,\n additionalSuffix,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const { sliderMin, sliderMax, handleChangeSlider, handleBlur } = useSliderMarks({\n marks,\n onChange,\n value\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n onBlur={(e) => {\n if (externalHandlers?.onBlur) {\n externalHandlers?.onBlur(e)\n }\n handleBlur()\n }}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n marks={marks}\n step={null}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {sliderMin && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, sliderMin, false)}\n </span>\n )}\n {sliderMax && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, sliderMax, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["SliderMarks","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","suffix","label","marks","attachmentProps","additionalSuffix","componentType","props","ref","inputId","React","inputRef","sliderMin","sliderMax","handleChangeSlider","handleBlur","useSliderMarks","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","jsx","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SliderMarks.js","sources":["../../../../../../../../../lib/shared/ui/formElements/uncontrolled/slider/ui/sliderMarks/SliderMarks.tsx"],"sourcesContent":["import * as React from 'react'\nimport { forwardRef } from 'react'\nimport { NumericFormat } from 'react-number-format'\nimport { getInputSliderSuffix } from '../../model/helpers'\nimport { type SliderMarksProps } from '../../model/types'\nimport { SliderInner } from '../../ui/Slider'\nimport { useSliderMarks } from './hooks/useSliderMarks'\nimport { InputBase } from '$/shared/ui'\nimport { cn, mergeRefs } from '$/shared/utils'\n\nexport const SliderMarks = forwardRef<HTMLInputElement, SliderMarksProps>(\n (\n {\n classes,\n invalid,\n externalHandlers,\n disabled,\n value,\n onChange,\n suffix,\n label,\n marks,\n attachmentProps,\n additionalSuffix,\n componentType,\n ...props\n },\n ref\n ) => {\n const inputId = React.useId()\n\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const { sliderMin, sliderMax, handleChangeSlider, handleBlur } = useSliderMarks({\n marks,\n onChange,\n value\n })\n\n const { root, slider, textLeft, textRight, inputRoot, textContainer, input, field } = classes || {}\n return (\n <div aria-label={componentType} className={cn('flex w-full flex-col gap-1', root)}>\n <div className={cn('relative w-full select-none', field)}>\n <InputBase\n label={label}\n value={value}\n attachmentProps={{\n ...attachmentProps\n }}\n classes={{\n container: 'border-[1px] bg-color-white border-blue-grey-500 focus-within:border-blue-grey-800',\n ...inputRoot\n }}\n onClick={externalHandlers?.onClick}\n onFocus={externalHandlers?.onBlur}\n onBlur={(e) => {\n if (externalHandlers?.onBlur) {\n externalHandlers?.onBlur(e)\n }\n handleBlur()\n }}\n renderValues={() => (\n <NumericFormat\n id={inputId}\n readOnly\n aria-invalid={invalid ? 'true' : 'false'}\n value={value}\n disabled={disabled}\n suffix={` ${getInputSliderSuffix(suffix, value)} ${additionalSuffix ?? ''}`}\n thousandsGroupStyle='thousand'\n thousandSeparator={' '}\n allowNegative={false}\n getInputRef={mergeRefs(inputRef, ref)}\n onValueChange={({ floatValue }) => {\n if (floatValue) {\n if (onChange) onChange(floatValue)\n if (externalHandlers?.onInputChange) {\n externalHandlers.onInputChange(floatValue)\n }\n }\n }}\n data-test-id='slider'\n className={cn(\n 'group/slider desk-title-bold-s w-full bg-color-transparent text-color-dark outline-none transition-all',\n input\n )}\n {...props}\n />\n )}\n />\n <SliderInner\n classes={{ ...slider }}\n marks={marks}\n step={null}\n value={value ?? 0}\n disabled={disabled}\n min={Number(sliderMin)}\n max={Number(sliderMax)}\n onChange={handleChangeSlider}\n />\n </div>\n <div className={cn('flex justify-between', textContainer)}>\n {sliderMin && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textLeft)}>\n {getInputSliderSuffix(suffix, sliderMin, false)}\n </span>\n )}\n {sliderMax && (\n <span className={cn('desk-body-regular-m text-color-tetriary', textRight)}>\n {getInputSliderSuffix(suffix, sliderMax, false)}\n </span>\n )}\n </div>\n </div>\n )\n }\n)\n"],"names":["SliderMarks","forwardRef","classes","invalid","externalHandlers","disabled","value","onChange","suffix","label","marks","attachmentProps","additionalSuffix","componentType","props","ref","inputId","React","inputRef","sliderMin","sliderMax","handleChangeSlider","handleBlur","useSliderMarks","root","slider","textLeft","textRight","inputRoot","textContainer","input","field","jsxs","cn","jsx","InputBase","e","NumericFormat","getInputSliderSuffix","mergeRefs","floatValue","SliderInner"],"mappings":"2vDAUO,MAAMA,GAAcC,EACzB,CACE,CACE,QAAAC,EACA,QAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,MAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EACA,MAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,cAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUC,EAAM,MAAA,EAEhBC,EAAWD,EAAM,OAAyB,IAAI,EAE9C,CAAE,UAAAE,EAAW,UAAAC,EAAW,mBAAAC,EAAoB,WAAAC,CAAA,EAAeC,EAAe,CAC9E,MAAAb,EACA,SAAAH,EACA,MAAAD,CAAA,CACD,EAEK,CAAE,KAAAkB,EAAM,OAAAC,EAAQ,SAAAC,EAAU,UAAAC,EAAW,UAAAC,EAAW,cAAAC,EAAe,MAAAC,EAAO,MAAAC,CAAA,EAAU7B,GAAW,CAAA,EACjG,OACE8B,EAAC,OAAI,aAAYnB,EAAe,UAAWoB,EAAG,6BAA8BT,CAAI,EAC9E,SAAA,CAAAQ,EAAC,MAAA,CAAI,UAAWC,EAAG,8BAA+BF,CAAK,EACrD,SAAA,CAAAG,EAACC,EAAA,CACC,MAAA1B,EACA,MAAAH,EACA,gBAAiB,CACf,GAAGK,CAAA,EAEL,QAAS,CACP,UAAW,qFACX,GAAGiB,CAAA,EAEL,QAASxB,GAAA,YAAAA,EAAkB,QAC3B,QAASA,GAAA,YAAAA,EAAkB,OAC3B,OAASgC,GAAM,CACThC,GAAA,MAAAA,EAAkB,SACpBA,GAAA,MAAAA,EAAkB,OAAOgC,IAE3Bd,EAAA,CACF,EACA,aAAc,IACZY,EAACG,EAAA,CACC,GAAIrB,EACJ,SAAQ,GACR,eAAcb,EAAU,OAAS,QACjC,MAAAG,EACA,SAAAD,EACA,OAAQ,IAAIiC,EAAqB9B,EAAQF,CAAK,CAAC,IAAIM,GAAoB,EAAE,GACzE,oBAAoB,WACpB,kBAAmB,IACnB,cAAe,GACf,YAAa2B,EAAUrB,EAAUH,CAAG,EACpC,cAAe,CAAC,CAAE,WAAAyB,KAAiB,CAC7BA,IACEjC,KAAmBiC,CAAU,EAC7BpC,GAAA,MAAAA,EAAkB,eACpBA,EAAiB,cAAcoC,CAAU,EAG/C,EACA,eAAa,SACb,UAAWP,EACT,yGACAH,CAAA,EAED,GAAGhB,CAAA,CAAA,CACN,CAAA,EAGJoB,EAACO,EAAA,CACC,QAAS,CAAE,GAAGhB,CAAA,EACd,MAAAf,EACA,KAAM,KACN,MAAOJ,GAAS,EAChB,SAAAD,EACA,IAAK,OAAOc,CAAS,EACrB,IAAK,OAAOC,CAAS,EACrB,SAAUC,CAAA,CAAA,CACZ,EACF,IACC,MAAA,CAAI,UAAWY,EAAG,uBAAwBJ,CAAa,EACrD,SAAA,CAAAV,GACCe,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CP,CAAQ,EACpE,SAAAY,EAAqB9B,EAAQW,EAAW,EAAK,CAAA,CAChD,EAEDC,GACCc,EAAC,OAAA,CAAK,UAAWD,EAAG,0CAA2CN,CAAS,EACrE,SAAAW,EAAqB9B,EAAQY,EAAW,EAAK,CAAA,CAChD,CAAA,CAAA,CAEJ,CAAA,EACF,CAEJ,CACF"}
|